CN110659197B - 应用程序的测试用例生成方法、装置和软件测试系统 - Google Patents
应用程序的测试用例生成方法、装置和软件测试系统 Download PDFInfo
- Publication number
- CN110659197B CN110659197B CN201810690759.5A CN201810690759A CN110659197B CN 110659197 B CN110659197 B CN 110659197B CN 201810690759 A CN201810690759 A CN 201810690759A CN 110659197 B CN110659197 B CN 110659197B
- Authority
- CN
- China
- Prior art keywords
- case
- editing
- instruction
- code
- operation object
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Abstract
本发明实施例提出一种应用程序的测试用例生成方法、装置和软件测试系统。其中方法包括:选择需要复用的第一测试用例;获取第一测试用例的用例代码,第一测试用例的用例代码中包括需要测试的各操作对象的定位方式、操作类型和操作顺序,其中定位方式支持多种操作系统;对第一测试用例的用例代码中各操作对象、各操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑;根据重新编辑后的用例代码生成第二测试用例。本发明实施例可复用已写好的测试用例,在已写好的测试用例的基础上编辑修改,减少了编写者的用例编写时间;定位方式支持多种操作系统,包括android系统和ios系统,可生成多种操作系统的测试用例。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种应用程序的测试用例生成方法、装置和软件测试系统。
背景技术
Appium是一种自动化测试开源工具,支持不同的平台(例如iOS、安卓(Android))使用同一套应用程序编程接口(Application Programming Interface,API)来编写自动化测试脚本。Appium支持多平台,包括MAC和Windows。Appium支持多语言,如果需要对某一应用程序进行用户界面(User Interface,UI)自动化测试,编程人员可以选择自己熟悉的语言编写Appium脚本。例如,在MAC平台上,通过Python语言编写Appium自动化脚本。或者在Windows平台上,通过Java语言编写Appium自动化脚本。
因此,需要具有丰富编程经验和专业知识的人员,才能基于Appium编写应用程序的自动化测试脚本。并且,如果应用程序的功能有变动,原来的用例就不可用,就需要重新编写代码脚本,重新编写工作量大,而且不便于用例脚本维护和用例脚本的复用,效率比较低。
发明内容
本发明实施例提供一种应用程序的测试用例生成方法、装置和软件测试系统,以至少解决现有技术中的一个或多个技术问题。
第一方面,本发明实施例提供了一种应用程序的测试用例生成方法,包括:选择需要复用的第一测试用例;获取所述第一测试用例的用例代码,所述第一测试用例的用例代码中包括需要测试的各操作对象的定位方式、操作类型和操作顺序,其中所述定位方式支持多种操作系统;对所述第一测试用例的用例代码中各所述操作对象、各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑;根据重新编辑后的用例代码生成第二测试用例。
在一种可能实现方式中,在获取所述第一测试用例的用例代码之后,还包括:对所述第一测试用例的用例级别、用例测试功能信息和前置用例中的至少一项进行重新编辑。
在一种可能实现方式中,对所述第一测试用例的用例代码中各所述操作对象、以及各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑,包括:在代码编辑区域,响应对第一测试用例的用例代码的编辑操作指令,对各所述操作对象、以及各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑,所述编辑操作指令包括复制、粘贴、添加、删除和替换指令中的至少一种。
在一种可能实现方式中,对所述第一测试用例的用例代码中各所述操作对象、以及各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑,包括以下至少一个步骤:在元素编辑区域,响应对各所述操作对象的定位方式类型的选择操作指令或输入操作指令,选择或输入各所述操作对象的定位方式的类型;在元素编辑区域,响应对各所述操作对象的定位方式的值的选择操作指令或输入操作指令,选择或输入各所述操作对象的定位方式的值;在元素编辑区域,响应对各所述操作对象的操作类型的选择操作指令或输入操作指令,选择或输入各所述操作对象的操作类型;在元素编辑区域,响应对各所述操作对象的操作顺序的调整操作指令,调整各所述操作对象的操作顺序;在元素编辑区域,响应删除操作对象指令或添加操作对象指令,删除或添加操作对象。
在一种可能实现方式中,用例编辑页面包括代码编辑区域和元素编辑区域,所述方法还包括:如果代码编辑区域的用例代码发生变化,则对元素编辑区域的用例元素进行同步修改;和/或,如果元素编辑区域的用例元素发生变化,则对代码编辑区域的用例代码进行同步修改。
在一种可能实现方式中,所述定位方式的类型包括id、ids、xpath、class、accessibility_id和css中至少一种。
在一种可能实现方式中,所述操作类型包括点击、读取数据、设置数据、上滑、下滑、打开Wi_Fi、关闭Wi_Fi中至少一种。
第二方面,本发明实施例提供了一种应用程序的测试用例生成装置,包括:用例选择单元,用于选择需要复用的第一测试用例;代码获取单元,用于获取所述第一测试用例的用例代码,所述第一测试用例的用例代码中包括需要测试的各操作对象的定位方式、操作类型和操作顺序,其中所述定位方式支持多种操作系统;编辑单元,用于对所述第一测试用例的用例代码中各所述操作对象、各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑;用例生成单元,用于根据重新编辑后的用例代码生成第二测试用例。
在一种可能实现方式中,所述编辑单元还用于:对所述第一测试用例的用例级别、用例测试功能信息和前置用例中的至少一项进行重新编辑。
在一种可能实现方式中,所述编辑单元包括第一编辑子单元,用于:在代码编辑区域,响应对第一测试用例的用例代码的编辑操作指令,对各所述操作对象、以及各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑,所述编辑操作指令包括复制、粘贴、添加、删除和替换指令中的至少一种。
在一种可能实现方式中,所述编辑单元包括:第二编辑子单元,用于:在元素编辑区域,响应对各所述操作对象的定位方式类型的选择操作指令或输入操作指令,选择或输入各所述操作对象的定位方式的类型;第三编辑子单元,用于:在元素编辑区域,响应对各所述操作对象的定位方式的值的选择操作指令或输入操作指令,选择或输入各所述操作对象的定位方式的值;第四编辑子单元,用于:在元素编辑区域,响应对各所述操作对象的操作类型的选择操作指令或输入操作指令,选择或输入各所述操作对象的操作类型;第五编辑子单元,用于:在元素编辑区域,响应对各所述操作对象的操作顺序的调整操作指令,调整各所述操作对象的操作顺序;第六编辑子单元,用于:在元素编辑区域,响应删除操作对象指令或添加操作对象指令,删除或添加操作对象。
在一种可能实现方式中,用例编辑页面包括代码编辑区域和元素编辑区域,所述编辑单元还用于:如果代码编辑区域的用例代码发生变化,则对元素编辑区域的用例元素进行同步修改;和/或,如果元素编辑区域的用例元素发生变化,则对代码编辑区域的用例代码进行同步修改。
在一种可能实现方式中,所述定位方式的类型包括id、ids、xpath、class、accessibility_id和css中至少一种。
在一种可能实现方式中,所述操作类型包括点击、读取数据、设置数据、上滑、下滑、打开Wi_Fi、关闭Wi_Fi中至少一种。
第三方面,本发明实施例提供了一种软件测试系统,包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述第一方面中任一所述的方法。
上述技术方案中的一个技术方案具有如下优点或有益效果:可复用已写好的测试用例,由于当前编辑的测试用例与已写好的测试用例的很多操作步骤可能是相同的,在已写好的测试用例的基础上编辑修改,减少了用例编写者的学习时间、用例的编写时间。
上述技术方案中的另一个技术方案具有如下优点或有益效果:定位方式支持多种操作系统,包括android系统和ios系统,可生成多种操作系统的测试用例。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1为本发明一实施例提供的应用程序的测试用例生成方法的流程图;
图2为本发明一实施例提供的应用程序的测试用例生成方法的编辑区域的程序页面示意图;
图3为本发明另一实施例提供的应用程序的测试用例生成方法的编辑区域的程序页面示意图;
图4为本发明另一实施例提供的应用程序的测试用例生成方法的编辑区域的程序页面示意图;
图5为本发明另一实施例提供的应用程序的测试用例生成方法的编辑区域的程序页面示意图;
图6为本发明一实施例提供的应用程序的测试用例生成装置的结构框图;
图7为本发明另一实施例提供的应用程序的测试用例生成装置的结构框图;
图8为本发明一实施例提供的软件测试系统的结构框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
图1为本发明一实施例提供的应用程序的测试用例生成方法的流程图。如图1所示,本发明实施例的应用程序的测试用例生成方法包括:步骤S110,选择需要复用的第一测试用例;步骤S120,获取所述第一测试用例的用例代码,所述第一测试用例的用例代码中包括需要测试的各操作对象的定位方式、操作类型和操作顺序,其中所述定位方式支持多种操作系统;步骤S130,对所述第一测试用例的用例代码中各所述操作对象、各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑;步骤S140,根据重新编辑后的用例代码生成第二测试用例。
在应用程序的UI自动化测试过程中,如果可以获取到为某些应用程序已写好的测试用例,可以复用该测试用例。例如,如果应用程序A1和A2具有很多相似功能,且基于Appium已经编写了A1的测试用例,可以根据A1的测试用例的用例代码重新编辑得到A2的测试用例。这样,可以减少重复编写UI自动化测试脚本的工作量,节省工作时间,提高应用程序的UI自动化测试的效率。
具体地,在测试平台上获取自动化测试用例,底层服务把标签化的测试用例组合成底层测试框架能够识别的测试用例,例如:测试用例的样式为YAML(YAML Ain't MarkupLanguage的简称)组织结构。YAML是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。它是类似于标准通用标记语言的子集XML(Extensible Markup Language,可扩展标记语言)的数据描述语言,语法比XML简单很多。
应用程序在自动化测试过程中,一般需要执行多个步骤。标签化的测试用例包括每个步骤该应用程序要操作的操作对象,例如哪个控件,每个操作对象对应的操作类型,以及对各个操作对象的操作顺序。
在测试平台上通过后台服务,可以复用已写好的测试用例生成用例代码。其中,用例代码中可以包括操作对象、操作类型和对应的操作顺序,其中,操作对象包括应用程序的各种界面元素,如窗口、对话框、菜单、滚动条、图形、条栏、内容视图、控件等。可以直接将生成的用例代码复制到用例代码编辑界面,生成标签化用例。在用例代码编辑界面,可以根据当前的应用程序的实际功能对用例代码进行重新编辑。例如添加几个步骤对应的代码或修改部分代码。另外,还可以把重新编辑后的代码放到代码编辑器进行直接调试,编辑和调试都比较方便,从而使测试效率得到很大的提升。
在一种可能实现方式中,在测试平台的编辑页面选择要测试的程序模块,输入选择的程序模块中的各操作对象的定位方式、操作类型,设置各操作对象的操作顺序,测试平台获取用户选择的程序模块中的各操作对象的定位方式、操作类型和操作顺序;根据各操作对象的定位方式、操作类型和操作顺序,生成应用程序的测试用例。
根据本发明应用程序的测试用例生成方法的一种实施方式,所述定位方式的类型包括id、ids、xpath、class、accessibility_id和css中至少一种。其中,操作对象以控件为例,id、ids、xpath、class、accessibility_id和css是控件的属性。如图2所示,在编辑页面的“找到方式”项目中选择控件的属性,并在“控件信息”中输入该属性对应的值。其中,id是控件的唯一标识;ids用于id属性值相同的控件不止一个的情形,因此需要结合index(索引)的方式对控件进行定位。Xpath是控件的XML路径。
自动化测试的目的是让机器代替人去对应用程序的控件执行点击等操作,因此自动化测试首先需要对控件进行定位。控件定位就是精确地描述控件特征并将控件特征传递给机器的过程,控件的特征就是控件的属性。基于Appium,继承自Appiumdriver类的方法,可进行控件定位。使用AppiumDriver的各种findElement方法进行控件定位。例如,使用driver.find_element_by_id根据id进行控件定位,使用driver.find_element_by_class_name根据class进行控件定位,使用driver.find_element_by_XPath根据XPath进行控件定位等。
根据本发明应用程序的测试用例生成方法的一种实施方式,所述操作类型包括点击(click)、读取数据(get_value)、设置数据(set_value)、上滑(swipe_up)、下滑(swipe_down)、打开Wi_Fi(open_Wi_Fi)、关闭Wi_Fi(close_Wi_Fi)中至少一种。图3为本发明另一实施例提供的应用程序的测试用例生成方法的编辑区域的程序页面示意图。可以在图3所示的“操作类型”的下拉选择框中选择需要设置的控制的操作类型,例如,对控件执行点击操作,则在下拉选择框中选择“click”。在测试过程中有时会出现崩溃(crash)的情况,crash是指在计算机系统压力或性能测试过程中,有时出现因某种原因宕机,或主机、程序停止工作等情况。在测试过程中很多crash可能是突然断网造成的,为了满足这种自动化场景的需要,可以在操作类型中设置开关Wi_Fi的标签,在编写自动化用例时就可以覆盖这种开关Wi_Fi的场景。“关闭Wi_Fi”是为了测试使用者网络断开,页面是否能够给出正常的提示,比如给出网络已经断开的提示信息,而不会出现crash等APP闪退现象。
在一种可能实现方式中,在获取所述第一测试用例的用例代码之后,还包括:对所述第一测试用例的用例级别、用例测试功能信息和前置用例中的至少一项进行重新编辑。其中,用例级别是指对用例模型的抽象和细化程度,例如,用例级别可设置为:level1为基本,level2为重要,level3为一般;用例测试功能信息,也称用例的info(信息),是指该用例主要做了哪些功能的测试;前置用例的编辑内容包括:该用例有没有前置用例,以及前置用例的名字等。
在一种可能实现方式中,对第一测试用例的用例代码进行重新编辑,包括元素编辑和代码编辑;所述页面元素编辑包括调整所述测试用例中各个页面元素的操作顺序、删除页面元素和/或添加页面元素;所述代码编辑包括修改各个页面元素的测试代码。用例编辑页面包括代码编辑区域和元素编辑区域。在元素编辑区域接收用户输入的所述页面元素编辑的编辑信息,在代码编辑区域接收用户输入的所述代码编辑的编辑信息,其中,所述代码编辑区域用于显示和编辑所述元素编辑区域中的各个页面元素对应的测试代码。
根据本发明应用程序的测试用例生成方法的一种实施方式,对所述第一测试用例的用例代码中各所述操作对象、以及各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑,包括:在代码编辑区域,响应对第一测试用例的用例代码的编辑操作指令,对各所述操作对象、以及各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑,所述编辑操作指令包括复制、粘贴、添加、删除和替换指令中的至少一种。
在这种实施方式中,将获取的第一测试用例的用例代码拷贝到用例编辑页面,在用例编辑页面设置有代码编辑区域,可通过直接修改用例代码的方式重新编写当前需要的测试用例。例如:可将与某个操作步骤对应的那部分代码删除,从而删除了这个操作步骤。再如:测试用户名含有非法字符的注册,应用程序的需求中禁止输入的非法字符可能发生变化,在编写测试用例时可获取已写好的相关测试用例,将测试用例代码中的非法字符按照当前的需求替换即可。
根据本发明应用程序的测试用例生成方法的一种实施方式,对所述第一测试用例的用例代码中各所述操作对象、以及各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑,包括以下至少一个步骤:在元素编辑区域,响应对各所述操作对象的定位方式类型的选择操作指令或输入操作指令,选择或输入各所述操作对象的定位方式的类型;在元素编辑区域,响应对各所述操作对象的定位方式的值的选择操作指令或输入操作指令,选择或输入各所述操作对象的定位方式的值;在元素编辑区域,响应对各所述操作对象的操作类型的选择操作指令或输入操作指令,选择或输入各所述操作对象的操作类型;在元素编辑区域,响应对各所述操作对象的操作顺序的调整操作指令,调整各所述操作对象的操作顺序;在元素编辑区域,响应删除操作对象指令或添加操作对象指令,删除或添加操作对象。
如图2所示,“步骤信息”中按顺序列出了测试用例的操作步骤;在“找到方式”的下拉选择框中可选择控件的定位方式的类型;在“控件信息”中可输入定位方式的值,如在图2中的控件信息是属性id的值;在“操作类型”的下拉选择框中可选择控件的操作类型,如在图2中的控件的操作类型set_value,也就是设置数据;set_value对应的值在“输入/获取值”中输入;在“操作”中列出了针对步骤的相关操作,包括增加、删除、顺序向上调整和顺序向下调整。
根据本发明应用程序的测试用例生成方法的一种实施方式,用例编辑页面包括代码编辑区域和元素编辑区域,所述方法还包括:如果代码编辑区域的用例代码发生变化,则对元素编辑区域的用例元素进行同步修改;和/或,如果元素编辑区域的用例元素发生变化,则对代码编辑区域的用例代码进行同步修改。
例如,在元素编辑区域删除了某一操作步骤,则在代码编辑区域也将删除的该操作步骤对应的用例代码也同步删除。又如,在代码编辑区域修改了某一操作步骤的操作类型,如将操作类型“打开Wi_Fi”修改为“关闭Wi_Fi”,则在元素编辑区域也自动将该操作步骤的操作类型做同步修改。也就是说,根据在所述元素编辑区域或者在所述代码编辑区域接收的所述用户输入的编辑信息,在所述元素编辑区域进行元素编辑信息修改的同时,在所述代码编辑区域对所述元素对应的测试代码进行同步修改。
在一种可能实现方式中,用例复用的具体流程如下:
1、点击查看已写好的用例,生成用例脚本。从用例列表中,找到需要编写的是哪个产品(APP)下的用例。然后点击生成脚本,会自动生成所选用例的脚本。生成的脚本包括:用例执行步骤描述、用例的操作对象、操作类型,而且支持调整操作步骤顺序,点击步骤顺序的上下键即可调整相应执行步骤的执行顺序。
2、选择产品线,选择模块,点击添加用例。
将步骤1中生成的用例脚本拷贝到当前编辑页面的代码编辑区域中。图4为本发明另一实施例提供的应用程序的测试用例生成方法的编辑区域的程序页面示意图。如图4所示,在项名称为“ips”的首页模块中添加用例,将步骤1中生成的用例脚本拷贝到图4所示页面下部的代码编辑区域中。
然后点击自动添加用例按钮,在代码编辑区域的下面会自动生成标签化的用例。图5为本发明另一实施例提供的应用程序的测试用例生成方法的编辑区域的程序页面示意图。点击图4中的“点击自动添加用例”按钮之后,如图5所示,在代码编辑区域的下面的元素编辑区域中,会自动生成标签化的用例。
3、编辑用例。
在元素编辑区域或者在代码编辑区域根据需要重新编辑测试用例,例如补充几步需要的操作步骤等,点击提交用例按钮即可保存成功。
如图4和图5所示,以上编辑的是android系统的测试用例,上述过程同样适用于编写ios、ipad的ui(User Interface,用户界面)自动化的用例,编辑过程是类似的,只是执行用例的设备不同,android的用例是在android机器上执行的,ios、ipad的用例是在ios、ipad的机器上执行的。由此,本发明实施例的测试平台能够统一复用两大移动端系统android和ios的测试用例,减少用例编写者的学习时间、用例的编写时间。
而且用例统一存储在测试平台上,节省了用例的维护和管理的成本,APP的测试包利用测试平台上传到云端,便于安装包的管理。
另外测试用例执行结果的截图可以上传到云端,在测试平台统一展示,便于统计用例bug转化率。比如测试100个用例,结果发现了10个bug,转化率就是10%,其中,bug是APP不能正常展示、闪退、数据不准确等情况。
此外,在用例执行过程中,可设置定时任务去执行用例,还可以编写线上APP的用例,目的为了线上APP稳定性的监控。用例执行完成后,还可以发送给执行人消息提醒,如发送钉钉消息提醒,消息中可包含超链接,点击超链接可查看该次任务执行结果的详细情况,包括执行了多少用例,成功了多少用例、失败了多少用例等信息。
上述技术方案中的一个技术方案具有如下优点或有益效果:可复用已写好的测试用例,由于当前编辑的测试用例与已写好的测试用例的很多操作步骤可能是相同的,在已写好的测试用例的基础上编辑修改,减少了用例编写者的学习时间、用例的编写时间。
上述技术方案中的另一个技术方案具有如下优点或有益效果:定位方式支持多种操作系统,包括android系统和ios系统,可生成多种操作系统的测试用例。
图6为本发明一实施例提供的应用程序的测试用例生成装置的结构框图。如图6所示,本发明实施例的应用程序的测试用例生成装置包括:用例选择单元100,用于选择需要复用的第一测试用例;代码获取单元200,用于获取所述第一测试用例的用例代码,所述第一测试用例的用例代码中包括需要测试的各操作对象的定位方式、操作类型和操作顺序,其中所述定位方式支持多种操作系统;编辑单元300,用于对所述第一测试用例的用例代码中各所述操作对象、各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑;用例生成单元400,用于根据重新编辑后的用例代码生成第二测试用例。
根据本发明应用程序的测试用例生成装置的一种实施方式,所述编辑单元还用于:对所述第一测试用例的用例级别、用例测试功能信息和前置用例中的至少一项进行重新编辑。
图7为本发明另一实施例提供的应用程序的测试用例生成装置的结构框图。如图7所示,根据本发明应用程序的测试用例生成装置的一种实施方式,所述编辑单元300包括第一编辑子单元310,用于:在代码编辑区域,响应对第一测试用例的用例代码的编辑操作指令,对各所述操作对象、以及各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑,所述编辑操作指令包括复制、粘贴、添加、删除和替换指令中的至少一种。
根据本发明应用程序的测试用例生成装置的一种实施方式,所述编辑单元300包括:第二编辑子单元320,用于:在元素编辑区域,响应对各所述操作对象的定位方式类型的选择操作指令或输入操作指令,选择或输入各所述操作对象的定位方式的类型;第三编辑子单元330,用于:在元素编辑区域,响应对各所述操作对象的定位方式的值的选择操作指令或输入操作指令,选择或输入各所述操作对象的定位方式的值;第四编辑子单元340,用于:在元素编辑区域,响应对各所述操作对象的操作类型的选择操作指令或输入操作指令,选择或输入各所述操作对象的操作类型;第五编辑子单元350,用于:在元素编辑区域,响应对各所述操作对象的操作顺序的调整操作指令,调整各所述操作对象的操作顺序;第六编辑子单元360,用于:在元素编辑区域,响应删除操作对象指令或添加操作对象指令,删除或添加操作对象。
根据本发明应用程序的测试用例生成装置的一种实施方式,用例编辑页面包括代码编辑区域和元素编辑区域,所述编辑单元300还用于:如果代码编辑区域的用例代码发生变化,则对元素编辑区域的用例元素进行同步修改;和/或,如果元素编辑区域的用例元素发生变化,则对代码编辑区域的用例代码进行同步修改。
根据本发明应用程序的测试用例生成装置的一种实施方式,所述定位方式的类型包括id、ids、xpath、class、accessibility_id和css中至少一种。
根据本发明应用程序的测试用例生成装置的一种实施方式,所述操作类型包括点击、读取数据、设置数据、上滑、下滑、打开Wi_Fi、关闭Wi_Fi中至少一种。
本发明实施例的应用程序的测试用例生成装置中各单元的功能可以参见上述方法的相关描述,在此不再赘述。
图8为本发明一实施例提供的软件测试系统的结构框图。如图8所示,该系统包括:存储器101和处理器102,存储器101内存储有可在处理器102上运行的计算机程序。所述处理器102执行所述计算机程序时实现上述实施例中的应用程序的测试用例生成方法。所述存储器101和处理器102的数量可以为一个或多个。
该系统还包括:
通信接口103,用于与外界设备进行通信,进行数据交互传输。
存储器101可能包含高速RAM存储器,也可能还包括非易失性存储器(non_volatile memory),例如至少一个磁盘存储器。
如果存储器101、处理器102和通信接口103独立实现,则存储器101、处理器102和通信接口103可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,PeripheralComponent)总线或扩展工业标准体系结构(EISA,Extended Industry StandardComponent)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器101、处理器102及通信接口103集成在一块芯片上,则存储器101、处理器102及通信接口103可以通过内部接口完成相互间的通信。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明各部分可用硬件、软件、固件或它们组合来实现。在上述实施方式中,多个步骤或方法可用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种应用程序的测试用例生成方法,其特征在于,包括:
选择需要复用的第一测试用例;
获取所述第一测试用例的用例代码,所述第一测试用例的用例代码中包括需要测试的各操作对象的定位方式、操作类型和操作顺序,其中所述定位方式支持多种操作系统,所述操作系统包括android系统和ios系统,所述定位方式用于确定各个操作对象在多种操作系统中能够执行的操作类型;
对所述第一测试用例的用例代码中各所述操作对象、各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑;
根据重新编辑后的用例代码生成第二测试用例。
2.根据权利要求1所述的方法,其特征在于,在获取所述第一测试用例的用例代码之后,还包括:对所述第一测试用例的用例级别、用例测试功能信息和前置用例中的至少一项进行重新编辑。
3.根据权利要求1所述的方法,其特征在于,对所述第一测试用例的用例代码中各所述操作对象、以及各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑,包括:
在代码编辑区域,响应对第一测试用例的用例代码的编辑操作指令,对各所述操作对象、以及各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑,所述编辑操作指令包括复制、粘贴、添加、删除和替换指令中的至少一种。
4.根据权利要求1所述的方法,其特征在于,对所述第一测试用例的用例代码中各所述操作对象、以及各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑,包括以下至少一个步骤:
在元素编辑区域,响应对各所述操作对象的定位方式类型的选择操作指令或输入操作指令,选择或输入各所述操作对象的定位方式的类型;
在元素编辑区域,响应对各所述操作对象的定位方式的值的选择操作指令或输入操作指令,选择或输入各所述操作对象的定位方式的值;
在元素编辑区域,响应对各所述操作对象的操作类型的选择操作指令或输入操作指令,选择或输入各所述操作对象的操作类型;
在元素编辑区域,响应对各所述操作对象的操作顺序的调整操作指令,调整各所述操作对象的操作顺序;
在元素编辑区域,响应删除操作对象指令或添加操作对象指令,删除或添加操作对象。
5.根据权利要求3或4所述的方法,其特征在于,用例编辑页面包括代码编辑区域和元素编辑区域,所述方法还包括:
如果代码编辑区域的用例代码发生变化,则对元素编辑区域的用例元素进行同步修改;和/或,
如果元素编辑区域的用例元素发生变化,则对代码编辑区域的用例代码进行同步修改。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述定位方式的类型包括id、ids、xpath、class、accessibility_id和css中至少一种。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述操作类型包括点击、读取数据、设置数据、上滑、下滑、打开Wi_Fi、关闭Wi_Fi中至少一种。
8.一种应用程序的测试用例生成装置,其特征在于,包括:
用例选择单元,用于选择需要复用的第一测试用例;
代码获取单元,用于获取所述第一测试用例的用例代码,所述第一测试用例的用例代码中包括需要测试的各操作对象的定位方式、操作类型和操作顺序,其中所述定位方式支持多种操作系统,所述操作系统包括android系统和ios系统,所述定位方式用于确定各个操作对象在多种操作系统中能够执行的操作类型;
编辑单元,用于对所述第一测试用例的用例代码中各所述操作对象、各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑;
用例生成单元,用于根据重新编辑后的用例代码生成第二测试用例。
9.根据权利要求8所述的装置,其特征在于,所述编辑单元还用于:对所述第一测试用例的用例级别、用例测试功能信息和前置用例中的至少一项进行重新编辑。
10.根据权利要求8所述的装置,其特征在于,所述编辑单元包括第一编辑子单元,用于:
在代码编辑区域,响应对第一测试用例的用例代码的编辑操作指令,对各所述操作对象、以及各所述操作对象的定位方式、操作类型和操作顺序中的至少一项进行重新编辑,所述编辑操作指令包括复制、粘贴、添加、删除和替换指令中的至少一种。
11.根据权利要求8所述的装置,其特征在于,所述编辑单元包括:
第二编辑子单元,用于:在元素编辑区域,响应对各所述操作对象的定位方式类型的选择操作指令或输入操作指令,选择或输入各所述操作对象的定位方式的类型;
第三编辑子单元,用于:在元素编辑区域,响应对各所述操作对象的定位方式的值的选择操作指令或输入操作指令,选择或输入各所述操作对象的定位方式的值;
第四编辑子单元,用于:在元素编辑区域,响应对各所述操作对象的操作类型的选择操作指令或输入操作指令,选择或输入各所述操作对象的操作类型;
第五编辑子单元,用于:在元素编辑区域,响应对各所述操作对象的操作顺序的调整操作指令,调整各所述操作对象的操作顺序;
第六编辑子单元,用于:在元素编辑区域,响应删除操作对象指令或添加操作对象指令,删除或添加操作对象。
12.根据权利要求10或11所述的装置,其特征在于,用例编辑页面包括代码编辑区域和元素编辑区域,所述编辑单元还用于:
如果代码编辑区域的用例代码发生变化,则对元素编辑区域的用例元素进行同步修改;和/或,
如果元素编辑区域的用例元素发生变化,则对代码编辑区域的用例代码进行同步修改。
13.根据权利要求8至11中任一项所述的装置,其特征在于,所述定位方式的类型包括id、ids、xpath、class、accessibility_id和css中至少一种。
14.根据权利要求8至11中任一项所述的装置,其特征在于,所述操作类型包括点击、读取数据、设置数据、上滑、下滑、打开Wi_Fi、关闭Wi_Fi中至少一种。
15.一种软件测试系统,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810690759.5A CN110659197B (zh) | 2018-06-28 | 2018-06-28 | 应用程序的测试用例生成方法、装置和软件测试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810690759.5A CN110659197B (zh) | 2018-06-28 | 2018-06-28 | 应用程序的测试用例生成方法、装置和软件测试系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110659197A CN110659197A (zh) | 2020-01-07 |
CN110659197B true CN110659197B (zh) | 2021-05-25 |
Family
ID=69027457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810690759.5A Active CN110659197B (zh) | 2018-06-28 | 2018-06-28 | 应用程序的测试用例生成方法、装置和软件测试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110659197B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111367791B (zh) * | 2020-02-19 | 2023-08-01 | 北京字节跳动网络技术有限公司 | 一种生成测试用例的方法、装置、介质和电子设备 |
CN112256578B (zh) * | 2020-10-23 | 2024-01-19 | 恒生电子股份有限公司 | 测试用例的管理方法及系统、电子设备、存储介质 |
CN112231229A (zh) * | 2020-11-09 | 2021-01-15 | 恩亿科(北京)数据科技有限公司 | Web UI自动化测试方法、系统、电子设备及可读存储介质 |
CN117573566B (zh) * | 2024-01-16 | 2024-04-12 | 麒麟软件有限公司 | 多系统测试用例生成方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070220341A1 (en) * | 2006-02-28 | 2007-09-20 | International Business Machines Corporation | Software testing automation framework |
CN103186457A (zh) * | 2011-12-29 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 一种自动生成测试用例的方法和装置 |
CN106649125A (zh) * | 2016-12-28 | 2017-05-10 | 上海携程国际旅行社有限公司 | 创建支持多平台的自动化测试脚本的方法及其框架系统 |
-
2018
- 2018-06-28 CN CN201810690759.5A patent/CN110659197B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070220341A1 (en) * | 2006-02-28 | 2007-09-20 | International Business Machines Corporation | Software testing automation framework |
CN103186457A (zh) * | 2011-12-29 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 一种自动生成测试用例的方法和装置 |
CN106649125A (zh) * | 2016-12-28 | 2017-05-10 | 上海携程国际旅行社有限公司 | 创建支持多平台的自动化测试脚本的方法及其框架系统 |
Non-Patent Citations (1)
Title |
---|
selenium基础操作;总要做些什么;《https://www.cnblogs.com/shangpolu/p/7929689.html》;20171130;第1-8页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110659197A (zh) | 2020-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110659197B (zh) | 应用程序的测试用例生成方法、装置和软件测试系统 | |
KR102525502B1 (ko) | 자동운전 테스트 데이터 저장 방법, 장치, 전자 기기, 저장 매체 및 프로그램 | |
US8516442B2 (en) | Graphical user interface metadata evolution tool | |
WO2018010552A1 (zh) | 测试方法和装置 | |
CN107506300B (zh) | 一种用户界面测试方法、装置、服务器和存储介质 | |
US10146672B2 (en) | Method and system for automated user interface (UI) testing through model driven techniques | |
CN104461894A (zh) | 安卓软件的操作录制装置和方法 | |
CN104375934B (zh) | 一种Android手机软件可靠性测试方法 | |
CN108874649B (zh) | 自动化测试脚本的生成方法、装置及其计算机设备 | |
US20050229161A1 (en) | Generic user interface testing framework with load-time libraries | |
CN115080398A (zh) | 一种接口自动化测试系统及方法 | |
CN111966580A (zh) | 基于人工智能的自动化测试方法、装置、设备和存储介质 | |
CN110289039B (zh) | 一种eMMC的调试方法和装置 | |
CN115658529A (zh) | 用户页面的自动化测试方法以及相关设备 | |
CN112597016A (zh) | 自动化测试脚本的录制方法、装置、设备及存储介质 | |
CN109474822B (zh) | 一种安卓电视多国语言自动化测试的方法及装置 | |
CN116719736A (zh) | 一种用于测试软件界面的测试用例生成方法及装置 | |
US8473892B1 (en) | Computer aided design system and method | |
CN113468050A (zh) | 基于画布的测试方法、装置、计算机设备及存储介质 | |
CN113986441A (zh) | 一种飞机地面站软件人机交互界面自动化测试方法 | |
US20090273605A1 (en) | Operation Checking Method in Information System, Operation Checking Program Therefor, Recording Medium, and Operation Checking System | |
CN113190445A (zh) | 接口测试方法、接口测试装置和接口测试系统 | |
CN111813673A (zh) | 硬盘填充测试方法及系统 | |
CN116128448B (zh) | Fpga工程项目的设计数据处理方法、装置、电子设备 | |
CN114546480B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |