CN106874208A - 测试脚本的处理方法、装置及电子设备 - Google Patents

测试脚本的处理方法、装置及电子设备 Download PDF

Info

Publication number
CN106874208A
CN106874208A CN201710109507.4A CN201710109507A CN106874208A CN 106874208 A CN106874208 A CN 106874208A CN 201710109507 A CN201710109507 A CN 201710109507A CN 106874208 A CN106874208 A CN 106874208A
Authority
CN
China
Prior art keywords
script
sql
test script
test
recording operation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710109507.4A
Other languages
English (en)
Inventor
刘欣
王建军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201710109507.4A priority Critical patent/CN106874208A/zh
Publication of CN106874208A publication Critical patent/CN106874208A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及测试脚本的处理方法、装置及电子设备,生成测试脚本的方法包括:获取录制脚本时的脚本录制操作;根据所述脚本录制操作适配对应的自定义函数,其中所述自定义函数包含针对多种平台的实现方法;根据所述自定义函数和所述脚本录制操作生成测试脚本。本申请的技术方案能够方便灵活地生成通用、灵活的跨平台测试脚本,能实现快捷的脚本运行配置。

Description

测试脚本的处理方法、装置及电子设备
技术领域
本申请涉及软件自动化测试技术领域,具体而言,涉及测试脚本的处理方法、装置及电子设备。
背景技术
相关技术提出了一种不同种类安卓设备的自动化测试脚本运行方案。其针对不同的设备利用XML分别录制不同的运行脚本,依据多个操作脚本生成一个运行脚本。将运行脚本和解析处理包导入目标安卓设备并运行。
以上技术需要针对不同类型的设备进行脚本撰写,导致较多的重复性劳动,测试效率不高;并且需要把多个操作脚本合成为一个运行脚本,运行时将脚本和解析包导入目标安卓设备并运行,运行效率较低。
发明内容
本申请公开一种测试脚本的处理方法,能够方便灵活地生成通用、灵活的跨平台测试脚本,能实现快捷的脚本运行配置。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的第一方面,提供一种生成测试脚本的方法,包括:
获取录制脚本时的脚本录制操作;
根据所述脚本录制操作适配对应的自定义函数,其中所述自定义函数包含针对多种平台的实现方法;
根据所述自定义函数和所述脚本录制操作生成测试脚本。
根据一些实施例,所述自定义函数包括用于图像识别的自定义函数、用于功能操作的自定义函数、和/或用于操作验证的自定义函数。
根据一些实施例,若所述脚本录制操作所适配的自定义函数为用于图像识别的自定义函数,根据所述自定义函数和所述脚本录制操作生成测试脚本包括:获取所述脚本录制操作的操作位置对应的截图,将所述截图存储到本地,根据所述适配的自定义函数、所述截图在本地的存储路径生成测试脚本。
根据一些实施例,所述方法还包括,在显示界面上提供用于同步呈现被测设备的界面内容的设备屏幕区;
获取录制脚本时的脚本录制操作包括:录制脚本时监控所述设备屏幕区获取脚本录制操作。
根据一些实施例,所述方法还包括,在所述显示界面上提供用于选取测试动作的工具区;
获取录制脚本时的脚本录制操作包括:录制脚本时监控所述工具区和所述设备屏幕区获取脚本录制操作;
根据所述脚本录制操作适配对应的自定义函数包括:根据所述工具区的脚本录制操作确定对应的自定义函数。
根据一些实施例,所述自定义函数为python语言编写的函数,所述测试脚本为python语言脚本。
根据一些实施例,在根据所述自定义函数和所述脚本录制操作生成测试脚本之后,还包括:预加载设定语言的常用函数库、以及采用所述设定语言编写的自定义函数库和相关变量;
加载所述测试脚本,其中所述测试脚本包含所述自定义函数库中的自定义函数;
使用内建函数动态执行所述测试脚本中的脚本行。
根据一些实施例,所述设定语言为python语言。
根据一些实施例,使用内建函数动态执行所述测试脚本中的脚本行之前还包括,按照设定方法指定所述测试脚本所包含的脚本行的运行顺序,使用所述内建函数exec根据所述运行顺序动态执行所述测试脚本中的脚本行。
根据一些实施例,按照设定方法指定所述测试脚本所包含的脚本行的运行顺序包括,通过运行预设定配置文件指定所述测试脚本所包含的脚本行的运行顺序。
根据本发明的第二方面,提供一种生成测试脚本的装置,包括:
脚本录制操作获取单元,用于获取录制脚本时的脚本录制操作;
函数匹配单元,用于根据所述脚本录制操作适配对应的自定义函数,其中所述自定义函数包含针对多种平台的实现方法;
脚本生成单元,用于根据所述自定义函数和所述脚本录制操作生成测试脚本。
根据一些实施例,所述自定义函数包括用于图像识别的自定义函数、用于功能操作的自定义函数、和/或用于操作验证的自定义函数。
根据一些实施例,所述函数匹配单元用于:若所述脚本录制操作所适配的自定义函数为用于图像识别的自定义函数,根据所述自定义函数和所述脚本录制操作生成测试脚本包括:获取所述脚本录制操作的操作位置对应的截图,将所述截图存储到本地,根据所述适配的自定义函数、所述截图在本地的存储路径生成测试脚本。
根据一些实施例,所述装置还包括被测设备呈现单元,用于在显示界面上提供用于同步呈现被测设备的界面内容的设备屏幕区;
所述脚本录制操作获取单元用于:录制脚本时监控所述设备屏幕区获取脚本录制操作。
根据一些实施例,所述装置还包括工具单元,用于在所述显示界面上提供用于选取测试动作的工具区;
所述脚本录制操作获取单元用于:录制脚本时监控所述工具区和所述设备屏幕区获取脚本录制操作;
所述函数匹配单元用于:根据所述工具区的脚本录制操作确定对应的自定义函数。
根据一些实施例,所述自定义函数为python语言编写的函数,所述测试脚本为python语言脚本。
根据一些实施例,所述装置还包括:
预加载单元,用于在根据所述自定义函数和所述脚本录制操作生成测试脚本之后,预加载设定语言的常用函数库、以及采用所述设定语言编写的自定义函数库和相关变量;
脚本加载单元,用于加载所述测试脚本,其中所述测试脚本包含所述自定义函数库中的自定义函数;
脚本执行单元,用于使用内建函数动态执行所述测试脚本中的脚本行。
根据一些实施例,所述设定语言为python语言。
根据一些实施例,所述装置还包括脚本执行单元,用于使用内建函数exec动态执行所述测试脚本中的脚本行之前,按照设定装置指定所述测试脚本所包含的脚本行的运行顺序,使用所述内建函数exec根据所述运行顺序动态执行所述测试脚本中的脚本行。
根据一些实施例,所述脚本执行单元还用于,通过运行预设定配置文件指定所述测试脚本所包含的脚本行的运行顺序。
根据本发明的第五方面,提供一种电子设备,包括:处理器;存储器,存储用于处理器控制如上第一方面任一项操作的指令或处理如上第二方面任一项操作的指令。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请的实施例提供的技术方案能够方便灵活地生成通用、灵活的跨平台测试脚本,能实现快捷的脚本运行配置。应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
通过参照附图详细描述其示例实施例,本发明的上述和其它特征及优点将变得更加明显。
图1示出了根据本发明一实施例的生成测试脚本的方法;
图2示出了根据本发明另一实施例的生成测试脚本的方法;
图3示出了根据本发明一实施例的脚本引擎结构示意图;
图4示出了根据本发明一实施例的脚本示意图;
图5示出了根据本发明一实施例的运行测试脚本的方法;
图6示出了根据本发明一实施例的脚本运行示意图;
图7示出了根据本发明一实施例的图像识别类函数的执行流程示意图;
图8示出了根据本发明一实施例的生成测试脚本的装置的框图;
图9示出了根据本发明一实施例的运行测试脚本的装置的框图;
图10示出了根据本发明一实施例的电子设备。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了根据本发明一实施例的测试脚本的处理方法,本实施例可适用于生成自动化测试脚本的情况,如图1所示,本实施例所述的测试脚本的处理方法包括:
在步骤S110中,获取录制脚本时的脚本录制操作。
需要说明的是,本实施例所述的脚本录制操作,可以通过监测用户直接在被测设备屏幕上的操作获取,也可以是通过监控用户远程测试的操作获取,本实施例对此并不作限定。
所述录制操作为对被测设备的操作,例如对被测设备的屏幕的点击、滑动等操作。
在步骤S120中,根据所述脚本录制操作适配对应的自定义函数。
需要说明的是,所述自定义函数包含针对多种平台的实现方法。通过这种方式,在回归测试阶段回放该脚本时,可根据配置信息中被测装置的平台信息选择该自定义函数的实现方法,从而能达到跨平台测试的目的。
所述自定义函数为与所述录制操作对应的响应函数,用于根据用户的录制操作转化为向被测终端发送的操作类的控制命令,例如可包括用于图像识别的自定义函数,如wait()、exists()、touch()、swipe()、以及operate()等,用于功能操作的自定义函数keyevent()、text()、sleep()、以及pinch()等,用于操作验证的自定义函数assert_exists()、assert_not_exists()、assert_equal()、以及assert_not_equal()等。
需要说明的是,本实施例的常用函数库为开放的函数库,用户可以对进行灵活的添加。
在步骤S130中,根据所述自定义函数和所述脚本录制操作生成测试脚本。
即将所述脚本录制操作通过所述自定义函数进行封装,组织成脚本语言作为测试脚本。
需要说明的是,若所述脚本录制操作所适配的自定义函数为用于图像识别的自定义函数,根据所述自定义函数和所述脚本录制操作生成测试脚本包括:获取所述脚本录制操作的操作位置对应的截图,将所述截图存储到本地,根据所述适配的自定义函数、所述截图在本地的存储路径生成测试脚本。
图2示出了根据本发明一实施例的测试脚本的处理方法,本实施例提供了一种通用、灵活的跨平台测试脚本封装方法,使得使用者可以方便灵活地生成测试脚本,并实现了快捷的脚本运行配置和有效的脚本运行管理机制。如图2所示,本实施例所述的测试脚本的处理方法包括:
在步骤S210中,在显示界面上提供用于同步呈现被测设备的界面内容的设备屏幕区。
为了实现远程录制脚本,本实施例可在显示界面上提供用于同步呈现被测设备的界面内容的设备屏幕区。此时,获取录制脚本时的脚本录制操作可具体通过在录制脚本时监控所述设备屏幕区获取脚本录制操作实现。
在步骤S220中,在所述显示界面上提供用于选取测试动作的工具区。
在上一实施例的基础之上,还可在所述显示界面上提供用于选取测试动作的工具区。此时,获取录制脚本时的脚本录制操作,可通过录制脚本时监控所述工具区和所述设备屏幕区获取脚本录制操作实现。根据所述脚本录制操作适配对应的自定义函数,可根据所述工具区的脚本录制操作确定对应的自定义函数。
在步骤S230中,录制脚本时监控所述工具区和所述设备屏幕区获取脚本录制操作。
在步骤S240中,根据所述工具区的脚本录制操作确定对应的自定义函数,其中所述自定义函数包含针对多种平台的实现方法。
在步骤S250中,根据所述自定义函数和所述脚本录制操作生成测试脚本。
本实施例在上一实施例的基础之上,通过在显示界面上提供用于同步呈现被测设备的界面内容的设备屏幕区实现远程脚本录制,通过在所述显示界面上提供用于选取测试动作的工具区能方便地进行远程脚本录制,可对用户进行脚本录制的操作提供操作方式进行扩展、丰富和补充。
图3示出了示出了根据本实施例生成脚本以及执行该脚本进行自动化测试的一种脚本引擎,其结构示意图如图3所示。
本实施例提供的脚本引擎基于图像识别,以所述自定义函数为python语言编写的函数为例,所述测试脚本为python语言脚本,利用python的语言解释器作为脚本运行的基础工具,设计了图像识别流程和脚本运行管理机制,用户运行测试脚本之前,可以通过运行一个测试脚本运行的配置文件(python语言实现),灵活地进行脚本运行相关的配置;在本发明的方法中,还可以自由安排多个测试脚本的运行顺序,将指定的测试脚本按照自定义的顺序运行。
需要说明的是,Python是一种面向对象、直译式的计算机程序语言。它包含了一组功能完备的标准库,能够轻松完成很多常见的任务。python语法简单,功能强大。python允许通过exec和执行用字符串形式表示的代码片段,这体现了动态语言的特性。利用这种特性,可以让代码变得更灵活。本发明依据python语言的这种特性设计了一套测试脚本运行方法。
在本发明中,测试脚本使用的是python语法,并利用python语法预先封装了常用函数库。首先对本发明中运行测试脚本的基本过程进行阐述如下:
如上所述,本实施例中使用python语法封装了测试脚本中的常用函数库,使用者所撰写的测试脚本由以下两种脚本语句组成:常用函数库中的函数、python语言编写的代码。在脚本运行时,首先加载测试脚本常用函数库的函数定义,然后使用python的內建函数exec,运行测试脚本中的所有脚本行(字符串形式),由于python语言是动态执行,所要执行的脚本行将依次按脚本行间的顺序进行执行。
由于运行时已经将常用函数库加载进来,在执行测试脚本中常用函数库中定义的函数时,将自动调用常用函数库中的函数定义,利用对应测试脚本行传入对应的参数执行;在执行测试脚本中的python语言的自定义代码时,python解释器会统一按照python标准语法解释器进行正常的代码执行。
本领域普通技术人员需要明确的是,本实施例中的常用函数库是开放的,用户可以对常用函数库进行灵活的添加,用户添加自定义函数库的方法如下:
用户在自定义代码文件中(比如命名为utils.py)写出自定义函数库和相关变量,在脚本运行时,首先加载测试脚本常用函数库、自定义代码文件内容(包含有用户自定义的函数库和相关变量),然后使用python的內建函数exec,运行测试脚本中的所有脚本行。此时,脚本行中可以直接使用用户自定义函数库内的函数。
此外,由于常用函数库本质上也只是python语言的函数封装,因此可以将python语法和函数库中的函数结合使用,比如引入python语言中的循环、判断操作,使得用户可以在测试脚本中灵活定义测试逻辑。比如点击某个截图位置100次,不再需要在测试脚本中重复100次相同的函数调用,简单结合python语言的for循环逻辑,即可实现点击100次的操作,其测试脚本如图4所示。
python语言常用函数库可包括如下函数:例如图像识别类函数wait()、exists()、touch()、swipe()、以及operate()等。又如,功能操作类函数keyevent()、text()、sleep()、以及pinch()等。再如,验证类函数assert_exists()、assert_not_exists()、assert_equal()、以及assert_not_equal()等。
经过封装之后,部分函数具体解释如下:
wait():期待截图出现,没有出现则可以定义一个操作函数执行自定义操作。
参数中还包含有预设的自定义操作函数(此操作函数可以由用户定义,作为wait的参数传入)。在设备屏幕中寻找截图,找到目标区域则返回截屏中目标区域的位置,图像匹配超时仍未找到的话,则执行预设的自定义操作函数。
exists():判定截图是否在画面中存在,根据识别结果返回识别位置(或空)。
在设备屏幕中寻找截图,寻找失败返回空,寻找成功返回截屏中目标区域的位置。
touch():在设备中截图对应的位置执行设备点击操作。
在设备屏幕中寻找截图,寻找成功则在设备的目标区域的位置执行设备模拟点击操作;图像匹配超时仍未找到,则该测试脚本行报错,测试脚本终止运行。
swipe():在设备中的截图对应位置执行相应的滑动(拖动)操作。
参数中包含滑动距离和滑动方向的参数。在设备屏幕中寻找截图,寻找成功则将设备的目标区域的位置作为滑动起点,按照滑动方向和距离执行设备模拟滑动(拖动)操作;如果图像匹配超时仍未找到,则该测试脚本行报错,测试脚本终止运行。
operate():长操作,以设备中的截图对应位置为起点,按照预设轨迹进行滑动操作。
操作中包含预设长操作的操作轨迹。在设备屏幕中寻找截图,寻找成功则将设备的目标区域的位置作为滑动起点,设备按照预设长操作的操作轨迹执行模拟长操作;如果图像匹配超时仍未找到,则函数报错,脚本终止运行。
需要说明的是,对于图像识别类函数,是指脚本中包含用户预定义截图,在目标设备中找到截图对应的区域,并进行相应的操作,函数的参数包括:截图文件路径、截图辅助识别参数、结果可信度阈值、超时参数等。图像识别类函数运行过程如下:提取截图,获取当前测试对象设备的截屏图像,按照指定的图像识别方法顺序依次进行图像匹配,直到从设备截屏中获取截图对应的目标区域,目标区域和截图相似度超过阈值时,以设备的目标区域位置作为操作位置,执行对应的操作。如果图像识别一直失败,直到过了设置的超时参数都没有找到设备截屏中对应的目标区域,那么就认为脚本函数运行失败,此时测试脚本停止运行并进行相关错误提示。
本发明实施例提供了一种通用、灵活的跨平台测试脚本封装方法,使得使用者可以方便灵活地生成测试脚本,并实现了快捷的脚本运行配置和有效的脚本运行管理机制。
图5示出了根据本发明一实施例的运行测试脚本的方法,如图5所示,本实施例所述的运行测试脚本的方法包括:
在步骤S510中,预加载设定语言的常用函数库、以及采用所述设定语言编写的自定义函数库和相关变量。
需要说明的是,所述设定本实施例对所述设定并不作限定,例如可采用python语言。
在步骤S520中,加载测试脚本,其中所述测试脚本包含所述自定义函数库中的自定义函数,所述自定义函数包含针对多种平台的实现方法。
在步骤S530中,使用内建函数动态执行所述测试脚本中的脚本行。
根据本发明的一些实施例,使用内建函数(例如exec函数)动态执行所述测试脚本中的脚本行之前还可进行如下操作:按照设定方法指定所述测试脚本所包含的脚本行的运行顺序,使用所述内建函数exec根据所述运行顺序动态执行所述测试脚本中的脚本行。
其中,按照设定方法指定所述测试脚本所包含的脚本行的运行顺序,可具体通过运行预设定配置文件指定所述测试脚本所包含的脚本行的运行顺序。
本实施例脚本扩展较为灵活,可以通过加载用户自定义的函数库,快速实现脚测试本的功能扩展;计算机语言封装测试函数库,测试脚本可以结合该计算机语言和测试函数库,灵活实现测试逻辑;将跨平台设备画面提取和操作交互的实现放在函数库内实现,脚本层只需要进行通用接口的调用,用户使用时上手方便;脚本间的运行配置灵活,由于脚本内容和运行相关配置参数都在同一级的代码层运行,在脚本中可以直接更改运行参数设置,从而进行有效调试。
图6示出了根据本实施例的脚本运行示意图,如图6所示,执行图像识别类的测试脚本,进行图像识别的流程:
识别参数含有识别的时间T,待识别的截图p,等待匹配的设备。图像识别的过程是一个循环过程,记下第一次循环开始时刻t0。每次循环中,均针对设备的当前屏幕画面进行一次图像识别的过程。在单次循环中,首先对设备进行屏幕画面截图,获取截屏S,然后对待匹配的截图p和截屏S进行一次图像识别的过程,图像识别的过程,是依次使用用户自定义的各种图像识别方法(如模板匹配、基于SIFT的图像识别等)对截图p和截屏S进行图像匹配,获取到截图p在截屏S中的对应区域和该区域的中心位置,作为图像匹配的结果。
如果在单次循环中,图像匹配成功:则跳出循环,将图像匹配的结果返回给外层函数;如果在单次循环中,图像匹配失败:则判断当前时刻t是否已经超时,如果没有超时(t-t0<T),则结束本次单次循环,进入下一个单次循环。如果发现当前时刻已经超时(t-t0>T),则判定图像识别已经失败,中断循环并报错。
图8示出了根据本发明一实施例的生成测试脚本的装置的框图,如图8所示,本实施例所述的生成测试脚本的装置包括脚本录制操作获取单元810、函数匹配单元820、以及脚本生成单元830。
该脚本录制操作获取单元810被配置为,用于获取录制脚本时的脚本录制操作;
该函数匹配单元820被配置为,用于根据所述脚本录制操作适配对应的自定义函数,其中所述自定义函数包含针对多种平台的实现方法;
该脚本生成单元830被配置为,用于根据所述自定义函数和所述脚本录制操作生成测试脚本。
根据本发明的一些实施例,所述自定义函数包括用于图像识别的自定义函数、用于功能操作的自定义函数、和/或用于操作验证的自定义函数。
根据本发明的一些实施例,所述函数匹配单元用于:若所述脚本录制操作所适配的自定义函数为用于图像识别的自定义函数,根据所述自定义函数和所述脚本录制操作生成测试脚本包括:获取所述脚本录制操作的操作位置对应的截图,将所述截图存储到本地,根据所述适配的自定义函数、所述截图在本地的存储路径生成测试脚本。
根据本发明的一些实施例,所述装置还包括被测设备呈现单元(图8中未示出),用于在显示界面上提供用于同步呈现被测设备的界面内容的设备屏幕区;
所述脚本录制操作获取单元用于:录制脚本时监控所述设备屏幕区获取脚本录制操作。
根据本发明的一些实施例,所述装置还包括工具单元,用于在所述显示界面上提供用于选取测试动作的工具区;
所述脚本录制操作获取单元用于:录制脚本时监控所述工具区和所述设备屏幕区获取脚本录制操作;
所述函数匹配单元用于:根据所述工具区的脚本录制操作确定对应的自定义函数。
根据本发明的一些实施例,所述自定义函数为python语言编写的函数,所述测试脚本为python语言脚本。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本实施例提供的生成测试脚本的装置可执行本发明上述方法实施例所提供的生成测试脚本的方法,具备执行方法相应的功能模块和有益效果。
图9示出了根据本发明另一实施例的运行测试脚本的装置的框图,如图9所示,本实施例所述的运行测试脚本的装置包括:预加载单元910、脚本加载单元920、以及脚本执行单元930。
该预加载单元910被配置为,用于预加载设定语言的常用函数库、以及采用所述设定语言编写的自定义函数库和相关变量;
该脚本加载单元920被配置为,用于加载测试脚本,其中所述测试脚本包含所述自定义函数库中的自定义函数,所述自定义函数包含针对多种平台的实现方法;
该脚本执行单元930被配置为,用于使用内建函数动态执行所述测试脚本中的脚本行。
根据本发明的一些实施例,所述设定语言为python语言。
根据本发明的一些实施例,所述装置还包括脚本执行单元,用于使用内建函数(例如exec函数)动态执行所述测试脚本中的脚本行之前,按照设定装置指定所述测试脚本所包含的脚本行的运行顺序,使用所述内建函数根据所述运行顺序动态执行所述测试脚本中的脚本行。
根据本发明的一些实施例,所述脚本执行单元还用于,通过运行预设定配置文件指定所述测试脚本所包含的脚本行的运行顺序。
本实施例提供的运行测试脚本的装置可执行本发明上述方法实施例所提供的运行测试脚本的方法,具备执行方法相应的功能模块和有益效果。
图10示出了根据本发明一实施例的电子设备,如图10所示,电子设备1000可包括处理器1010、存储器1020、发射器1030及接收器1040。
存储器1020可存储用于处理器1010控制操作处理的指令。存储器1020可包括易失性或非易失性存储器,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)等,本发明对此没有限制。
处理器1010可调用存储器1020中存储的指令控制相关操作。根据一实施例,存储器1020存储用于处理器1010控制如上述生成测试脚本的方法所述的操作的指令或如上述运行测试脚本的方法所述的操作的指令。
易于理解,存储器1020还可存储用于处理器1010控制根据本发明实施例的其他操作的指令,这里不再赘述。
处理器1010还可控制发射器1030和接收器1040进行信号收发等。
根据一些实施例,本发明还提供一种非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。当存储介质中的指令由终端的处理器执行时,使得终端能够执行下述方法:获取录制脚本时的脚本录制操作;根据所述脚本录制操作适配对应的自定义函数,其中所述自定义函数包含针对多种平台的实现方法;根据所述自定义函数和所述脚本录制操作生成测试脚本。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的,因此不能用于限制本发明的保护范围。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
以上具体地示出和描述了本发明的示例性实施例。应该理解,本发明不限于所公开的实施例,相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效布置。

Claims (13)

1.一种测试脚本的处理方法,其特征在于,包括:
获取录制脚本时的脚本录制操作;
根据所述脚本录制操作适配对应的自定义函数,其中所述自定义函数包含针对多种平台的实现方法;
根据所述自定义函数和所述脚本录制操作生成测试脚本。
2.如权利要求1所述的测试脚本的处理方法,其特征在于,所述自定义函数包括用于图像识别的自定义函数、用于功能操作的自定义函数、和/或用于操作验证的自定义函数。
3.如权利要求2所述的测试脚本的处理方法,其特征在于,若所述脚本录制操作所适配的自定义函数为用于图像识别的自定义函数,根据所述自定义函数和所述脚本录制操作生成测试脚本包括:获取所述脚本录制操作的操作位置对应的截图,将所述截图存储到本地,根据所述适配的自定义函数、所述截图在本地的存储路径生成测试脚本。
4.如权利要求1所述的测试脚本的处理方法,其特征在于,所述方法还包括,在显示界面上提供用于同步呈现被测设备的界面内容的设备屏幕区;
获取录制脚本时的脚本录制操作包括:录制脚本时监控所述设备屏幕区获取脚本录制操作。
5.如权利要求4所述的测试脚本的处理方法,其特征在于,所述方法还包括,在所述显示界面上提供用于选取测试动作的工具区;
获取录制脚本时的脚本录制操作包括:录制脚本时监控所述工具区和所述设备屏幕区获取脚本录制操作;
根据所述脚本录制操作适配对应的自定义函数包括:根据所述工具区的脚本录制操作确定对应的自定义函数。
6.如权利要求1所述的测试脚本的处理方法,其特征在于,所述自定义函数为python语言编写的函数,所述测试脚本为python语言脚本。
7.如权利要求1所述的测试脚本的处理方法,其特征在于,在根据所述自定义函数和所述脚本录制操作生成测试脚本之后,还包括:
预加载设定语言的常用函数库、以及采用所述设定语言编写的自定义函数库和相关变量;
加载所述测试脚本,其中所述测试脚本包含所述自定义函数库中的自定义函数;
使用内建函数动态执行所述测试脚本中的脚本行。
8.如权利要求7所述的测试脚本的处理方法,其特征在于,所述设定语言为python语言。
9.如权利要求7所述的测试脚本的处理方法,其特征在于,使用内建函数动态执行所述测试脚本中的脚本行之前还包括:按照设定方法指定所述测试脚本所包含的脚本行的运行顺序,使用所述内建函数根据所述运行顺序动态执行所述测试脚本中的脚本行。
10.如权利要求9所述的测试脚本的处理方法,其特征在于,按照设定方法指定所述测试脚本所包含的脚本行的运行顺序包括,通过运行预设定配置文件指定所述测试脚本所包含的脚本行的运行顺序。
11.一种测试脚本的处理装置,其特征在于,包括:
脚本录制操作获取单元,用于获取录制脚本时的脚本录制操作;
函数匹配单元,用于根据所述脚本录制操作适配对应的自定义函数,其中所述自定义函数包含针对多种平台的实现方法;
脚本生成单元,用于根据所述自定义函数和所述脚本录制操作生成测试脚本。
12.如权利要求11所述的测试脚本的处理装置,其特征在于,所述装置还包括:
预加载单元,用于在根据所述自定义函数和所述脚本录制操作生成测试脚本之后,预加载设定语言的常用函数库、以及采用所述设定语言编写的自定义函数库和相关变量;
脚本加载单元,用于加载所述测试脚本,其中所述测试脚本包含所述自定义函数库中的自定义函数;
脚本执行单元,用于使用内建函数动态执行所述测试脚本中的脚本行。
13.一种电子设备,其特征在于,包括:处理器;存储器,存储用于所述处理器控制如权利要求1-10任一项操作的指令。
CN201710109507.4A 2017-02-27 2017-02-27 测试脚本的处理方法、装置及电子设备 Pending CN106874208A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710109507.4A CN106874208A (zh) 2017-02-27 2017-02-27 测试脚本的处理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710109507.4A CN106874208A (zh) 2017-02-27 2017-02-27 测试脚本的处理方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN106874208A true CN106874208A (zh) 2017-06-20

Family

ID=59168008

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710109507.4A Pending CN106874208A (zh) 2017-02-27 2017-02-27 测试脚本的处理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN106874208A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943683A (zh) * 2017-10-30 2018-04-20 北京奇虎科技有限公司 一种测试脚本生成方法、装置、电子设备及存储介质
CN109144857A (zh) * 2018-08-01 2019-01-04 武汉普利商用机器有限公司 跨平台的算法测试方法及系统
CN110083543A (zh) * 2019-05-07 2019-08-02 江苏满运软件科技有限公司 回归测试方法、装置、电子设备及存储介质
CN112749083A (zh) * 2020-12-10 2021-05-04 中国农业银行股份有限公司 一种测试脚本生成方法及装置
CN113835996A (zh) * 2020-06-24 2021-12-24 北京字节跳动网络技术有限公司 生成测试脚本的方法和装置
CN115934574A (zh) * 2023-03-02 2023-04-07 云账户技术(天津)有限公司 接口测试用例的自动化录制方法、系统、电子设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314386A (zh) * 2011-09-05 2012-01-11 百度在线网络技术(北京)有限公司 一种测试移动终端的方法与设备
CN104461894A (zh) * 2014-12-17 2015-03-25 用友软件股份有限公司 安卓软件的操作录制装置和方法
US20150135169A1 (en) * 2013-11-12 2015-05-14 Institute For Information Industry Testing device and testing method thereof
CN105740153A (zh) * 2016-02-29 2016-07-06 网易(杭州)网络有限公司 云测试方法及装置
CN105955881A (zh) * 2016-04-22 2016-09-21 百度在线网络技术(北京)有限公司 一种自动化测试步骤录制及回放方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314386A (zh) * 2011-09-05 2012-01-11 百度在线网络技术(北京)有限公司 一种测试移动终端的方法与设备
US20150135169A1 (en) * 2013-11-12 2015-05-14 Institute For Information Industry Testing device and testing method thereof
CN104461894A (zh) * 2014-12-17 2015-03-25 用友软件股份有限公司 安卓软件的操作录制装置和方法
CN105740153A (zh) * 2016-02-29 2016-07-06 网易(杭州)网络有限公司 云测试方法及装置
CN105955881A (zh) * 2016-04-22 2016-09-21 百度在线网络技术(北京)有限公司 一种自动化测试步骤录制及回放方法和装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943683A (zh) * 2017-10-30 2018-04-20 北京奇虎科技有限公司 一种测试脚本生成方法、装置、电子设备及存储介质
CN107943683B (zh) * 2017-10-30 2021-07-30 北京奇虎科技有限公司 一种测试脚本生成方法、装置、电子设备及存储介质
CN109144857A (zh) * 2018-08-01 2019-01-04 武汉普利商用机器有限公司 跨平台的算法测试方法及系统
CN110083543A (zh) * 2019-05-07 2019-08-02 江苏满运软件科技有限公司 回归测试方法、装置、电子设备及存储介质
CN110083543B (zh) * 2019-05-07 2022-08-19 江苏满运软件科技有限公司 回归测试方法、装置、电子设备及存储介质
CN113835996A (zh) * 2020-06-24 2021-12-24 北京字节跳动网络技术有限公司 生成测试脚本的方法和装置
CN112749083A (zh) * 2020-12-10 2021-05-04 中国农业银行股份有限公司 一种测试脚本生成方法及装置
CN115934574A (zh) * 2023-03-02 2023-04-07 云账户技术(天津)有限公司 接口测试用例的自动化录制方法、系统、电子设备和介质

Similar Documents

Publication Publication Date Title
CN106874208A (zh) 测试脚本的处理方法、装置及电子设备
Amalfitano et al. A gui crawling-based technique for android mobile application testing
CN102096631B (zh) 接口测试方法及装置
US9529692B2 (en) Memory management tools
US6941546B2 (en) Method and apparatus for testing a software component using an abstraction matrix
US10489274B2 (en) Using emulation to disassociate verification from stimulus in functional test
CN109254910B (zh) 一种应用程序的测试方法、装置、电子设备及存储介质
CN107133174A (zh) 测试用例代码自动生成装置与方法
US9898396B2 (en) Automated software testing and validation via graphical user interface
US20070016829A1 (en) Test case generator
CN106649084A (zh) 函数调用信息的获取方法及装置、测试设备
CN106557413A (zh) 基于代码覆盖率获取测试用例的方法和设备
US9836440B2 (en) Semantic stack trace
US7895575B2 (en) Apparatus and method for generating test driver
CN111124919A (zh) 一种用户界面的测试方法、装置、设备及存储介质
CN108664406A (zh) 移动应用的开发测试方法、终端设备及介质
CN109840205A (zh) 应用程序测试方法、装置、可读存储介质及终端设备
CN108399124A (zh) 应用测试方法、装置、计算机设备和存储介质
CN106815134A (zh) 一种app测试方法和装置
CN109783365A (zh) 自动化测试方法、装置、计算机设备及存储介质
CN107193748A (zh) 程序文件执行方法、装置、存储介质和处理器
CN108959067A (zh) 搜索引擎的测试方法、装置及计算机可读存储介质
CN111831542A (zh) Api应用调测方法及装置、存储介质
CN107122203B (zh) 一种配置文件的设置方法及装置
CN111414309A (zh) 应用程序的自动化测试方法、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170620