CN107122295B - 测试用例脚本的生成方法和装置 - Google Patents

测试用例脚本的生成方法和装置 Download PDF

Info

Publication number
CN107122295B
CN107122295B CN201710207404.1A CN201710207404A CN107122295B CN 107122295 B CN107122295 B CN 107122295B CN 201710207404 A CN201710207404 A CN 201710207404A CN 107122295 B CN107122295 B CN 107122295B
Authority
CN
China
Prior art keywords
interface
target
list
control
test case
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
Application number
CN201710207404.1A
Other languages
English (en)
Other versions
CN107122295A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710207404.1A priority Critical patent/CN107122295B/zh
Publication of CN107122295A publication Critical patent/CN107122295A/zh
Application granted granted Critical
Publication of CN107122295B publication Critical patent/CN107122295B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

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)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种测试用例脚本的生成方法和装置。其中,该方法包括:获取目标应用的界面列表,其中,界面列表中的每个界面具有标识信息;接收对界面列表中的第一目标界面的第一预设操作;获取与第一预设操作对应的第一控件列表,其中,第一控件列表中的控件为第一目标界面中允许执行第一预设操作的控件;生成包括第一目标界面和第一控件列表的第一目标测试用例;根据第一目标测试用例生成目标应用的第一测试用例脚本。本发明解决了相关技术测试用例脚本的生成过程复杂的技术问题。

Description

测试用例脚本的生成方法和装置
技术领域
本发明涉及测试领域,具体而言,涉及一种测试用例脚本的生成方法和装置。
背景技术
目前,在测试中,测试应用的脚本的主要靠人工编写。比如,主流的测试框架包括uiautomator测试框架,robotium测试框架,Appium测试框架等,测试人员在使用这些框架进行测试用例编写时,必须人工指定每一个操作步骤,其中每一次点击、界面的验证、校验跳转测试应用的界面是否符合预期,以及编写、调试过程都需要测试人员手工编写代码进行实现,因而测试用例的生成过程比较复杂。这样,测试人员必须要有一定的编程基础,才能顺利实现测试。另外,一旦被测应用有界面发生改变,则与之相关的测试用例全部都需要修改,后期的用例维护成本较高。
针对上述的测试用例脚本的生成过程复杂的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种测试用例脚本的生成方法和装置,以至少解决相关技术测试用例脚本的生成过程复杂的技术问题。
根据本发明实施例的一个方面,提供了一种测试用例脚本的生成方法。该方法包括:获取目标应用的界面列表,其中,界面列表中的每个界面具有标识信息;接收对界面列表中的第一目标界面的第一预设操作;获取与第一预设操作对应的第一控件列表,其中,第一控件列表中的控件为第一目标界面中允许执行第一预设操作的控件;生成包括第一目标界面和第一控件列表的第一目标测试用例;根据第一目标测试用例生成目标应用的第一测试用例脚本。
根据本发明实施例的另一方面,还提供了一种测试用例脚本的生成装置。该装置包括:第一获取单元,用于获取目标应用的界面列表,其中,界面列表中的每个界面具有标识信息;接收单元,用于接收对界面列表中的第一目标界面的第一预设操作;第二获取单元,用于获取与第一预设操作对应的第一控件列表,其中,第一控件列表中的控件为第一目标界面中允许执行第一预设操作的控件;第一生成单元,用于生成包括第一目标界面和第一控件列表的第一目标测试用例;第二生成单元,用于根据第一目标测试用例生成目标应用的第一测试用例脚本。
在本发明实施例中,获取目标应用的界面列表,界面列表中的每个界面具有标识信息;接收对界面列表中的第一目标界面的第一预设操作;获取与第一预设操作对应的第一控件列表,其中,第一控件列表中的控件为第一目标界面中允许执行第一预设操作的控件;生成包括第一目标界面和第一控件列表的第一目标测试用例;根据第一目标测试用例生成目标应用的第一测试用例脚本,由于生成包括第一目标界面和第一目标界面中允许执行第一预设操作的控件的第一目标测试用例,达到了根据第一目标测试用例生成目标应用的第一测试用例脚本的目的,从而实现了简化测试用例脚本的生成过程的技术效果,进而解决了相关技术测试用例脚本的生成过程复杂的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种测试用例脚本的生成方法的硬件环境的示意图;
图2是根据本发明实施例的一种测试用例脚本的生成方法的流程图;
图3是根据本发明实施例的另一种测试用例脚本的生成方法的流程图;
图4是根据本发明实施例的另一种测试用例脚本的生成方法的流程图;
图5是根据本发明实施例的另一种测试用例脚本的生成方法的流程图;
图6是根据本发明实施例的一种根据第二控件列表中的第二目标控件获取第二目标控件的验证字段的方法的流程图;
图7是根据本发明实施例的一种验证当前界面是否为预设界面的方法的流程图;
图8是根据本发明实施例的另一种测试用例脚本的生成方法的流程图;
图9是根据本发明实施例的另一种测试用例脚本的生成方法的流程图;
图10是根据本发明实施例的另一种测试用例脚本的生成方法的流程图;
图11是根据本发明实施例的一种目标应用的目标界面的示意图;
图12是根据本发明实施例的另一种目标界面的示意图;
图13是根据本发明实施例的另一种目标界面的示意图;
图14是根据本发明实施例的另一种目标界面的示意图;
图15是根据本发明实施例的一种可选的测试用例脚本的生成装置的示意图;
图16是根据本发明实施例的另一种的测试用例脚本的生成装置的示意图;
图17是根据本发明实施例的另一种的测试用例脚本的生成装置的示意图;
图18是根据本发明实施例的另一种的测试用例脚本的生成装置的示意图;以及
图19是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种测试用例脚本的生成方法的实施例。
可选地,在本实施例中,上述测试用例脚本的生成方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。图1是根据本发明实施例的一种测试用例脚本的生成方法的硬件环境的示意图。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的测试用例脚本的生成方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的测试用例脚本的生成方法也可以是由安装在其上的客户端来执行。
图2是根据本发明实施例的一种测试用例脚本的生成方法的流程图。如图2所示,该方法可以包括以下步骤:
步骤S202,获取目标应用的界面列表。
在本申请上述步骤S202提供的技术方案中,获取目标应用的界面列表,其中,界面列表中的每个界面具有标识信息。
目标应用为被测应用,目标应用的界面列表包括目标应用的多个界面信息,比如,包括搜索界面、搜索结果界面、播放界面等信息,用于实现目标应用的不同功能。获取目标应用的界面列表为生成测试用例脚本的数据准备过程。可选地,对目标应用进行界面遍历,得到目标应用的界面列表。界面列表中的每个界面具有标识信息,该标识信息用于目标应用的界面的唯一性,比如,通过MD5值进行标识,其中,MD5值由一段字节串计算得到,可作为文件的唯一标识。可选地,该界面列表中的每个界面具有唯一的名称,从而便于将每个界面很好地区分开。
可选地,通过对目标应用进行界面遍历,获取界面列表及界面包含的可跳转的可操作控件列表等。对获取到的界面及控件进行命名,保证界面名称具有唯一性,以及控件的名称在其所在界面具有唯一性。可以将界面命名与MD5值建立映射关系,从而使得界面命名和MD5值一一对应。
步骤S204,接收对界面列表中的第一目标界面的第一预设操作。
在本申请上述步骤S204提供的技术方案中,接收对界面列表中的第一目标界面的第一预设操作。
界面列表中的每个界面具有界面信息,该界面信息可以为界面的名称、界面的标识信息等。获取界面列表中的第一目标界面,该第一目标界面可以由用户对界面列表进行选中操作得到,为测试用例中的对象。该第一目标界面可以以第一目标界面的名称或者标识信息与界面列表中的其它界面信息区分开,第一目标界面的名称可以作为第一目标界面的参数。对第一目标界面可以进行操作,比如,点击、双击、输入、左滑、右滑等操作,可选地,该第一目标界面具有默认操作。
在获取目标应用的界面列表之后,对测试用例进行规范化编写。在对测试用例进行规范化编写时,包括操作步骤和对操作步骤进行验证的验证步骤。进入界面列表中的第一目标界面,接收对第一目标界面的第一预设操作,比如,接收对第一目标界面的单击操作,该第一预设操作为测试用例中的对象。
步骤S206,获取与第一预设操作对应的第一控件列表。
在本申请上述步骤S206提供的技术方案中,获取与第一预设操作对应的第一控件列表,其中,第一控件列表中的控件为第一目标界面中允许执行第一预设操作的控件。
目标应用的界面列表和控件列表具有关联关系,也即,在对界面列表进行操作时,会关联到控件列表,控件列表由界面列表联动产生,进而跳转至对控件列表中的控件的操作。在接收对界面列表中的第一目标界面的第一预设操作之后,获取与第一预设操作对应的第一控件列表,该第一控件列表包括多个控件,比如,“我的音乐控件”、“搜索框”控件、“歌手”控件、“电台”控件等,为第一目标界面中允许执行第一预设操作的控件,为测试用例中的对象,每个控件具有属性值,每个控件的名称在第一目标界面上具有唯一性,控件的名称可以作为控件的参数。
可选地,目标应用的界面列表和操作列表具有关联关系,操作列表中包括可执行的操作方式。在界面列表中获取第一目标界面之后,根据第一目标界面中有效控件的属性将对第一目标界面可执行的操作以操作列表的形式列举出来。从操作列表中选中第一预设操作,则在第一控件列表中将第一目标界面中所有允许第一预设操作的控件都列举出来,如果操作列表中没有选择任何操作,则第一控件列表中列举出第一目标界面中的所有有效控件。
可选地,设置变量又是与第一控件列表联动的。在第一控件列表中选中某个控件之后,设置变量会将该控件的所有属性值列举出来,将该属性值以临时变量添加至变量列表中,从而实现了对属性值的保存,以便后期对该控件的属性值进行验证。
可选地,在对操作步骤进行验证时,控件列表和验证字段也是由界面列表联动产生,其中,验证字段将选中的控件的属性列举出,通过验证操作验证该控件的属性是否预设属性,该验证操作为测试用例中的对象。
步骤S208,生成包括第一目标界面和第一控件列表的第一目标测试用例。
在本申请上述步骤S208提供的技术方案中,生成包括第一目标界面和第一控件列表的第一目标测试用例。
在获取与第一预设操作对应的第一控件列表之后,生成包括第一目标界面和第一控件列表的第一目标测试用例。
可选地,为了区别测试用例中的各类对象,可以采用不同的符号将第一目标界面、第一预设操作、第一控件列表中的控件、验证操作等进行表示,比如,将第一目标界面用中括号进行标识,将第一预设操作用小括号进行标识,将第一控件列表中的控件用大括号进行标识,将验证操作用尖括号进行标识。
可选地,第一目标测试用例中的每个步骤可以符合以下规则中的一个:界面+操作+控件,也即,在对界面进行操作之后,得到界面中有效的控件;变量名+=+控件.属性,也即,验证字段将控件的属性列出,验证该控件上的属性是否等于变量名;界面+验证操作+界面,也即,验证待验证的界面是否为比较界面;界面+验证操作+变量名,也即,验证界面中的待验证的变量名是否符合预设变量名。
该实施例通过生成包括第一目标界面和第二控件列表的第一目标测试用例,从而实现了对测试用例的规范化编写,避免了编程人员手工编写测试用例的复杂过程,提高了测试用例的生成效率。
步骤S210,根据第一目标测试用例生成目标应用的第一测试用例脚本。
在本申请上述步骤S210提供的技术方案中,根据第一目标测试用例生成目标应用的第一测试用例脚本。
该第一目标测试用例包括规范化的界面模块、控件模块等。在生成包括第一目标界面和第一控件列表的第一目标测试用例之后,根据第一目标测试用例生成目标应用的第一测试用例脚本,将第一目标测试用例使用代码封装,将第一目标测试用例中对应的规范化模块转化成机器语言,从而实现了第一目标测试用例到第一测试用例脚本的映射。
通过上述步骤S202至步骤S210,获取目标应用的界面列表,界面列表中的每个界面具有标识信息;接收对界面列表中的第一目标界面的第一预设操作;获取与第一预设操作对应的第一控件列表,其中,第一控件列表中的控件为第一目标界面中允许执行第一预设操作的控件;生成包括第一目标界面和第一控件列表的第一目标测试用例;根据第一目标测试用例生成目标应用的第一测试用例脚本,由于生成包括第一目标界面和第一目标界面中允许执行第一预设操作的控件的第一目标测试用例,达到了根据第一目标测试用例生成目标应用的第一测试用例脚本的目的,从而实现了简化测试用例脚本的生成过程的技术效果,进而解决了相关技术测试用例脚本的生成过程复杂的技术问题。
作为一种可选的实施方式,步骤S204,接收对界面列表中的第一目标界面的第一预设操作包括:获取包括第一目标界面中允许执行的操作;从第一目标界面中允许执行的操作中确定第一预设操作;生成包括第一目标界面、第一控件列表和操作列表的第一目标测试用例。
图3是根据本发明实施例的另一种测试用例脚本的生成方法的流程图。如图3所示,该方法还包括以下步骤:
步骤S301,获取操作列表。
在本申请上述步骤S301提供的技术方案中,获取操作列表,其中,操作列表中的操作为第一目标界面中允许执行的操作。
界面列表中的每个界面可以执行操作,该操作可以包括但不限于单击操作、双击操作、输入操作、左滑操作、右滑操作、拖曳操作等。在获取目标应用的界面列表之后,获取操作列表,该操作列表中包括第一目标界面中允许执行的操作,也即,该操作列表与第一目标界面具有联动关系,在选中第一目标界面之后,该操作列表中包括的操作也即为确定。
可选地,除了操作列表中的明确操作之外,其余操作需要后带参数,比如,除了操作列表中的单击操作、双击操作等明确操作之外,右滑操作、左滑操作等均需带滑动的距离,拖曳操作需带拖曳的距离。
步骤S302,从操作列表中确定第一预设操作。
在本申请上述步骤S302提供的技术方案中,从操作列表中确定第一预设操作。
在获取操作列表之后,从操作列表中确定第一预设操作,进而获取与第一预设操作对应的第一控件列表。
可选地,在第一目标界面中选中操作列表中的单击操作,则在第一控件列表中将第一目标界面中所有可以点击的控件列举出来,如果操作列表中没有选中任何操作,则第一控件列表中列出第一目标界面所有有效控件。
在获取与第一预设操作对应的第一控件列表之后,生成包括第一目标界面、第一控件列表和操作列表的第一目标测试用例,进而根据第一目标测试用例生成目标应用的第一测试用例脚本。
该实施例获取与第一预设操作对应的第一控件列表之前,获取操作列表,操作列表中的操作为第一目标界面中允许执行的操作;从操作列表中确定第一预设操作;生成包括第一目标界面、第一控件列表和操作列表的第一目标测试用例,进而根据第一目标测试用例生成目标应用的第一测试用例脚本,实现了简化测试用例脚本的生成过程的技术效果。
作为一种可选的实施方式,在步骤S206,获取与第一预设操作对应的第一控件列表之后,获取包括第一控件列表中选中的第一目标控件的属性的设置变量;添加设置变量至变量列表中;生成包括第一目标界面、第一控件列表、操作列表和变量列表的第一目标测试用例。
图4是根据本发明实施例的另一种测试用例脚本的生成方法的流程图。如图4所示,该方法还包括以下步骤:
步骤S401,获取设置变量。
在本申请上述步骤S401提供的技术方案中,获取设置变量,其中,设置变量包括第一控件列表中选中的第一目标控件的属性。
在获取与第一预设操作对应的第一控件列表之后,获取设置变量,该设置变量与控件列表是联动的,该设置变量中包括控件列表中的控件的属性值,也即,在第一控件列表中选中第一目标控件之后,该设置变量会将该控件的所有属性值列举出来。可选地,该设置变量可以为文本变量、可见变量、可点击变量边界数值变量中的任意一种。
步骤S402,添加设置变量至变量列表中。
在本申请上述步骤S402提供的技术方案中,添加设置变量至变量列表中。
在获取设置变量之后,将设置变量添加至变量列表中。可选地,每个设置变量具有对应的标识按钮,通过该标识按钮将设置变量添加至变量列表中,比如,该标识按钮为设置变量旁边的“+”按钮,在用户点击“+”按钮之后,则可以将该设置变量添加至变量列表中,该实施例的变量列表包括多个变量,比如,我喜欢歌单界面.歌曲.文本,从而解决了在操作过程中需要保存临时变量的情况,以便于后期与保存的变量进行验证操作。
在获取与第一预设操作对应的第一控件列表之后,生成包括第一目标界面、第一控件列表、操作列表和变量列表的第一目标测试用例。
该实施例通过在获取与第一预设操作对应的第一控件列表之后,获取包括第一控件列表中选中的第一目标控件的属性的设置变量;添加设置变量至变量列表中;生成包括第一目标界面、第一控件列表、操作列表和变量列表的第一目标测试用例,进而根据第一目标测试用例生成目标应用的第一测试用例脚本,实现了简化测试用例脚本的生成过程的技术效果。
作为一种可选的实施方式,在生成包括第一目标界面、第一控件列表和操作列表的第一目标测试用例之后,获取界面列表中的第二目标界面对应的第二控件列表;根据第二控件列表中的第二目标控件获取第二目标控件的验证字段;生成包括第二目标界面、第二控件列表、验证字段和验证操作的第二目标测试用例;根据第二目标测试用例生成目标应用的第二测试用例脚本。
图5是根据本发明实施例的另一种测试用例脚本的生成方法的流程图。如图5所示,该方法还包括以下步骤:
步骤S501,获取界面列表中的第二目标界面对应的第二控件列表。
在本申请上述步骤S501提供的技术方案中,获取界面列表中的第二目标界面对应的第二控件列表,其中,第二目标界面在第一目标界面之后显示。
规范化测试用例除了包括操作步骤之外,还包括验证操作。在生成包括第一目标界面、第一控件列表和操作列表的第一目标测试用例之后,获取界面列表中的第二目标界面,该第二目标界面在第一目标界面之后显示,比如,第一目标界面为发现(Discover)界面,第二目标界面为播放界面。
获取目标应用的当前界面,在不确定当前界面为界面列表中的哪一个界面时,验证当前界面是否为预设界面,如果验证出当前界面为预设界面,则将预设界面确定为第二目标界面。比如,在选中歌曲播放界面之后,第二控件列表中将列举出歌曲播放界面中所有有效的控件。
第二控件列表包括多个控件,比如,可以包括“歌曲名”控件、“歌手名”控件,“音乐标签”控件,“歌词标签”控件等。
步骤S502,根据第二控件列表中的第二目标控件获取第二目标控件的验证字段。
在本申请上述步骤S502提供的技术方案中,根据第二控件列表中的第二目标控件获取第二目标控件的验证字段,其中,验证字段包括第二目标控件的属性。
在获取界面列表中的第二目标界面对应的第二控件列表之后,从第二控件列表中选中第二目标控件,则在验证字段中将该第二目标控件对应的属性全部列出,比如,当第一目标控件为“歌曲名”控件时,该验证字段包括该“歌曲名”控件的文本属性、可见属性、可点击属性、边界数值属性等。
步骤S503,生成包括第二目标界面、第二控件列表、验证字段和验证操作的第二目标测试用例。
在本申请上述步骤S503提供的技术方案中,生成包括第二目标界面、第二控件列表、验证字段和验证操作的第二目标测试用例,其中,验证操作用于根据设置变量对验证字段中的第二目标控件的目标属性进行验证。
第二目标控件中待验证的属性为目标属性,验证操作用于根据在操作步骤中保存的设置变量对验证字段中的第二目标控件的目标属性进行验证,比如,验证目标属性是否等于预设属性,或者大于预设属性,或者小于预设属性。在根据第二控件列表中的第二目标控件获取第二目标控件的验证字段之后,生成包括第二目标界面、第二控件列表、验证字段和验证操作的第二目标测试用例。
可选地,选中的验证操作为“等于”,验证第一目标控件上的文本属性是否等于预设文本,或者等于在操作步骤中设置的变量等。
步骤S504,根据第二目标测试用例生成目标应用的第二测试用例脚本。
在本申请上述步骤S504提供的技术方案中,根据第二目标测试用例生成目标应用的第二测试用例脚本。
在生成包括第二目标界面、第二控件列表、验证字段和验证操作的第二目标测试用例之后,该第二目标测试用例包括规范化的界面模块、控件模块等。在生成包括第二目标界面和第二控件列表的第二目标测试用例之后,根据第二目标测试用例生成目标应用的第二测试用例脚本,可以将第二目标测试用例中对应的规范化模块转化成机器语言,从而实现了第二目标测试用例到第二测试用例脚本的映射,测试人员只需要在验证步骤中进行简单的点击操作即可将测试用例转化为规范化的测试用例。
为明确区分目标应用中的各类对象,这里的界面用中括号[]标识,操作用小括号()标识,控件用大括号{}标识,验证操作用尖括号<>标识。
举例而言,在[discover界面](单击){我的音乐};
验证[当前界面]<等于>[我的音乐]界面;
在[我的音乐]界面(单击){我喜欢歌单};
验证[当前界面]<等于>[我喜欢歌单]界面;
在[我喜欢歌单]界面(单击){歌曲};
设置变量A=我喜欢歌单界面.歌曲.文本;
验证[当前界面]<等于>[歌曲播放]界面;
验证[歌曲播放]界面的{我的音乐}.文本<等于>变量A。
可选地,每一个步骤可以符合以下规则中的一个:界面+操作+控件,也即,在对界面进行操作之后,得到界面中有效的控件;变量名+=+控件.属性,也即,验证字段将控件的属性列出,验证该控件上的属性是否等于变量名;界面+验证操作+界面,也即,验证待验证的界面是否为比较界面;界面+验证操作+变量名,也即,验证界面中的待验证的变量名是否符合预设变量名。
该实施例在生成包括第一目标界面、第一控件列表和操作列表的第一目标测试用例之后,获取界面列表中的第二目标界面对应的第二控件列表,其中,第二目标界面在第一目标界面之后显示;根据第二控件列表中的第二目标控件获取第二目标控件的验证字段,其中,验证字段包括第二目标控件的属性;生成包括第二目标界面、第二控件列表、验证字段和验证操作的第二目标测试用例,其中,验证操作用于根据设置变量对验证字段中的第二目标控件的目标属性进行验证;根据第二目标测试用例生成目标应用的第二测试用例脚本,进而根据第一目标测试用例生成目标应用的第一测试用例脚本,实现了简化测试用例脚本的生成过程的技术效果。
作为一种可选的实施方式,步骤S502,根据第二控件列表中的第二目标控件获取第二目标控件的验证字段包括:获取目标应用的当前界面,在验证出当前界面为预设界面的情况下,根据第二目标控件获取第二目标控件的验证字段。
图6是根据本发明实施例的一种根据第二控件列表中的第二目标控件获取第二目标控件的验证字段的方法的流程图。如图6所示,该方法还包括以下步骤:
步骤S601,获取目标应用的当前界面。
在本申请上述步骤S601提供的技术方案中,获取目标应用的当前界面。
在获取界面列表中的第二目标界面对应的第二控件列表之后,根据第二控件列表中的第二目标控件获取第二目标控件的验证字段。在获取第二目标控件的验证字段时,获取目标应用的当前界面,该当前界面主要用于在不确定当前界面为哪个界面时,验证该当前界面是否等于预设界面的情况。
步骤S602,验证当前界面是否为预设界面。
在本申请上述步骤S602提供的技术方案中,验证当前界面是否为预设界面。
在获取目标应用的当前界面之后,验证当前界面是否为预设界面,如果验证出当前界面为预设界面,执行步骤S603。
步骤S603,根据第二目标控件获取第二目标控件的验证字段。
在本申请上述步骤S603提供的技术方案中,在验证出当前界面为预设界面的情况下,根据第二目标控件获取第二目标控件的验证字段。
在验证当前界面是否为预设界面之后,如果验证出当前界面为预设界面,根据第二目标控件获取第二目标控件的验证字段。比如,验证当前界面为歌曲播放界面,第二控件列表中包括了歌曲播放界面中所有有效的控件,此时选则歌曲名控件为第二目标控件,则第二目标控件的验证字段中包括该歌曲名控件的属性。
该实施例通过获取目标应用的当前界面;验证当前界面是否为预设界面;在验证出当前界面为预设界面的情况下,根据第二目标控件获取第二目标控件的验证字段,实现了根据第二控件列表中的第二目标控件获取第二目标控件的验证字段,进而生成包括第二目标界面、第二控件列表、验证字段和验证操作的第二目标测试用例,根据第二目标测试用例生成目标应用的第二测试用例脚本,实现了简化测试用例脚本的生成过程的技术效果。
作为一种可选的实施方式,步骤S602,验证当前界面是否为预设界面包括:获取当前界面的第一标识信息;获取预设界面的第二标识信息;验证第一标识信息和第二标识信息是否相同;在验证出第一标识信息和第二标识信息相同的情况下,确定当前界面为预设界面;在验证出第一标识信息和第二标识信息不相同的情况下,确定当前界面不为预设界面。
图7是根据本发明实施例的一种验证当前界面是否为预设界面的方法的流程图。如图7所示,该方法包括以下步骤:
步骤S701,获取当前界面的第一标识信息。
在本申请上述步骤S701提供的技术方案中,获取当前界面的第一标识信息。
界面列表中的每个界面具有标识信息。在获取目标应用的当前界面之后,获取当前界面的第一标识信息,该第一标识信息可以为当前界面的MD5值,通过该当前界面的MD5值可以唯一确定第一目标界面。
步骤S702,获取预设界面的第二标识信息。
在本申请上述步骤S702提供的技术方案中,获取预设界面的第二标识信息。
获取预设界面的第二标识信息,该预设界面的第二标识信息可以为预设界面的MD5值。
步骤S703,验证第一标识信息和第二标识信息是否相同。
在本申请上述步骤S703提供的技术方案中,验证第一标识信息和第二标识信息是否相同。
在获取当前界面的第一标识信息、预设界面的第二标识信息之后,验证第一标识信息和第二标识信息是否相同,从而确定当前界面是否为预设界面。
步骤S704,如果验证出第一标识信息和第二标识信息相同,则确定当前界面为预设界面。
在本申请上述步骤S704提供的技术方案中,如果验证出第一标识信息和第二标识信息相同,则确定当前界面为预设界面,也即,如果验证出当前界面的MD5值和预设界面的MD5值相同,则确定当前界面为预设界面当前界面和预设界面为同一个界面。
步骤S705,如果验证出第一标识信息和第二标识信息不相同,则确定当前界面不为预设界面。
在本申请上述步骤S705提供的技术方案中,如果验证出第一标识信息和第二标识信息不相同,比如,如果验证出当前界面的MD5值和预设界面的MD5值不相同,则确定当前界面不为预设界面。
该实施例通过获取当前界面的第一标识信息;获取预设界面的第二标识信息;验证第一标识信息和第二标识信息是否相同;如果验证出第一标识信息和第二标识信息相同,则确定当前界面为预设界面;如果验证出第一标识信息和第二标识信息不相同,则确定当前界面不为预设界面,实现了验证当前界面是否为预设界面的目的。
作为一种可选的实施方式,验证操作包括以下之一:验证目标属性是否等于设置变量中的属性;验证目标属性是否大于设置变量中的属性;验证目标属性是否小于设置变量中的属性。
验证操作用于根据操作步骤中的设置变量对验证字段中的第二目标控件的目标属性进行验证,得到目标属性与设置变量中的属性的关系,该验证操作包括界面验证和值验证。可以验证第二目标控件的目标属性是否等于设置变量中的属性,验证目标属性是否大于设置变量中的属性,验证目标属性是否小于设置变量中的属性。
举例而言,目标属性为“我喜欢歌单界面.歌曲.文本”,验证“我喜欢歌单界面.歌曲.文本”是否为设置变量中的属性,如果设置变量中的属性为已经在变量列表中添加过的“我喜欢歌单界面.歌曲.文本”,则确定目标属性等于设置变量中的属性。
需要说明的是,该实施例的上述验证操作仅为本发明实施例的优选实施方式,并不代表本发明实施例的验证操作仅包括上述方式,任何可以验证第二目标控件的目标属性与设置变量中的属性的方法,进而简化测试用例脚本的生成过程的方法,都在本发明实施例的范围之内,此处不再一一举例说明。
作为一种可选的实施方式,验证目标属性是否等于设置变量中的属性包括:验证目标属性对应的字符串是否等于设置变量中的属性对应的字符串;验证目标属性是否大于设置变量中的属性包括:将目标属性转换为第一数值;判断第一数值是否大于设置变量中的属性对应的数值;验证目标属性是否小于设置变量中的属性包括:将目标属性转换为第二数值;判断第二数值是否小于设置变量中的属性对应的数值。
验证操作包括界面验证和值验证。在界面验证中,可以获取两个界面的MD5值,判断两个界面的MD5值是否相同,如果判断出两个界面的MD5值相同,则确定两个界面为同一个界面。在验证操作的值验证中,如果是验证目标属性是否等于设置变量中的属性,可以验证目标属性对应的字符串是否等于设置变量中的属性对应的字符串;如果是验证目标属性是否大于设置变量中的属性,则判断目标属性对应的第一数值是否大于设置变量中的属性对应的数值;如果是验证目标属性是否小于设置变量中的属性,则判断目标属性对应的第一数值是否小于设置变量中的属性对应的数值,
作为一种可选的实施方式,在步骤S501,获取界面列表中的第二目标界面对应的第二控件列表之前,获取当前界面的标识信息;根据标识信息确定当前界面为界面列表中的第三目标界面;从第三目标界面与界面列表中的多个目标界面之间的跳转关系中确定第一地址,其中,第一地址用于指向第二目标界面;从第三目标界面跳转至第一地址指向的第二目标界面。
图8是根据本发明实施例的另一种测试用例脚本的生成方法的流程图。如图8所示,该方法还包括以下步骤:
步骤S801,获取当前界面的标识信息。
在本申请上述步骤S801提供的技术方案中,获取当前界面的标识信息。
在获取界面列表中的第二目标界面对应的第二控件列表之前,获取当前界面的标识信息,可以获取当前界面的MD5值。
步骤S802,根据标识信息确定当前界面为界面列表中的第三目标界面。
在本申请上述步骤S802提供的技术方案中,根据标识信息确定当前界面为界面列表中的第三目标界面。
获取当前界面的标识信息之后,确定当前界面是界面列表中的哪个界面。当界面列表中的第三目标界面的MD5值与当前界面的MD5值相等时,则确定当前界面为第三目标界面。
步骤S803,从第三目标界面与界面列表中的多个目标界面之间的跳转关系中确定第一地址。
在本申请上述步骤S803提供的技术方案中,从第三目标界面与界面列表中的多个目标界面之间的跳转关系中确定第一地址,其中,第一地址用于指向第二目标界面。
第三目标界面与界面列表中的多个目标界面之间具有跳转关系,该跳转关系可以通过地址或者目标界面的标识信息进行指示,也即,第三目标界面跳转至界面列表中的多个目标界面的跳转路径是确定的,该跳转路径可以由跳转关系计算得到。在根据标识信息确定当前界面为界面列表中的第三目标界面之后,从跳转关系中确定第一地址,该第一地址用于指向第二目标界面。可选地,该第一地址也可以为标识信息,该标识信息用于指向第二目标界面。
步骤S804,从第三目标界面跳转至第一地址指向的第二目标界面。
在本申请上述步骤S804提供的技术方案中,从第三目标界面跳转至第一地址指向的第二目标界面。
在从第三目标界面与界面列表中的多个目标界面之间的跳转关系中确定第一地址之后,从第三目标界面跳转至第一地址指向的第二目标界面。
该实施例通过在获取界面列表中的第二目标界面对应的第二控件列表之前,获取当前界面的标识信息;根据标识信息确定当前界面为界面列表中的第三目标界面;从第三目标界面与界面列表中的多个目标界面之间的跳转关系中确定第一地址,其中,第一地址用于指向第二目标界面;从第三目标界面跳转至第一地址指向的第二目标界面,实现了从目标应用的当前界面跳转至指定界面的目的。
作为一种可选的实施方式,在步骤S804,从第三目标界面跳转至第一地址指向的第二目标界面之前,从第三目标界面跳转至第四目标界面;验证第四目标界面是否为第二目标界面;在验证出第四目标界面不为第二目标界面的情况下,将第四目标界面设置为当前界面;从当前界面跳转至第一地址指向的第二目标界面。
图9是根据本发明实施例的另一种测试用例脚本的生成方法的流程图。如图9所示,该方法还包括以下步骤:
步骤S901,从第三目标界面跳转至第四目标界面。
在本申请上述步骤S901提供的技术方案中,从第三目标界面跳转至第四目标界面。
在从第三目标界面跳转至第一地址指向的第二目标界面之前,从第三目标界面跳转至第四目标界面。可选地,该第四目标界面为目标应用在运行过程中可能因为意外事件导致程序运行出错,使第二目标界面跳转至的目标界面,而并非最终需要跳转至的目标界面。
步骤S902,验证第四目标界面是否为第二目标界面。
在本申请上述步骤S902提供的技术方案中,验证第四目标界面是否为第二目标界面。
在从第三目标界面跳转至第四目标界面之后,对第四目标界面进行验证。
步骤S903,在验证出第四目标界面不为第二目标界面的情况下,将第四目标界面设置为当前界面。
在本申请上述步骤S903提供的技术方案中,在验证出第四目标界面不为第二目标界面的情况下,将第四目标界面设置为当前界面。
在验证第四目标界面是否为第二目标界面之后,如果验证出第四目标界面不为第二目标界面,将第四目标界面设置为当前界面,重新计算当前界面跳转至第二目标界面的跳转路径,也即,计算第四目标界面跳转至第二目标界面的跳转路径。
步骤S904,从当前界面跳转至第一地址指向的第二目标界面。
在本申请上述步骤S904提供的技术方案中,从当前界面跳转至第一地址指向的第二目标界面。
在将第四目标界面设置为当前界面之后,可以根据当前界面跳转至第二目标界面的跳转路径从当前界面跳转至第一地址指向的第二目标界面,直至当前界面为需要最终达到的第二目标界面。
可选地,获取界面列表中所有界面之间的跳转关系,在打开目标应用之后,首先计算当前界面的MD5值,根据MD5值确认当前界面是目标界面中的哪个界面,再由当前界面的跳转关系计算当前界面到目标界面的跳转路径,根据跳转路径使当前界面执行跳转。在当前界面执行跳转之后,验证跳转后的界面是否为目标界面,如果跳转后的界面不为目标界面,则将跳转后的界面重新设置为当前界面,再按照之前的方法重新规划界面的跳转路径,直至到达目标界面。
该实施例通过在从第三目标界面跳转至第一地址指向的第二目标界面之前,从第三目标界面跳转至第四目标界面;验证第四目标界面是否为第二目标界面;在验证出第四目标界面不为第二目标界面的情况下,将第四目标界面设置为当前界面;从当前界面跳转至第一地址指向的第二目标界面,从而实现了从目标应用的当前界面跳转至指定界面的目的。
作为一种可选的实施方式,在步骤S210,根据第一目标测试用例生成目标应用的第一测试用例脚本之后,在界面列表中存在界面改变的第五目标界面的情况下,获取目标应用的更新界面列表;接收对第五目标界面的第二预设操作;获取与第二预设操作对应的第三控件列表,其中,第三控件列表中的控件为第五目标界面中允许执行第二预设操作的控件;生成包括第五目标界面和第三控件列表的第二目标测试用例;根据第二目标测试用例生成目标应用的第二测试用例脚本。
图10是根据本发明实施例的另一种测试用例脚本的生成方法的流程图。如图10所示,该方法还包括以下步骤:
步骤S1001,获取目标应用的更新界面列表。
在本申请上述步骤S1001提供的技术方案中,在界面列表中存在界面改变的第五目标界面的情况下,获取目标应用的更新界面列表,其中,更新界面列表包括第五目标界面,第五目标界面的原始标识信息更新为第三标识信息。
在该实施例中,如果目标应用的界面列表中的界面发生改变,则需要更新原有的测试脚本。在根据第一目标测试用例生成目标应用的第一测试用例脚本之后,获取目标应用的更新界面列表,可以自动遍历获取目标应用的所有界面信息。更新界面列表中包括界面改变的第五目标界面,第五目标界面的原始标识信息被修改为第三标识信息,建立第三标识信息与第五目标界面的名称之间的映射关系。
可选地,在目标应用的界面列表中,除第五目标界面的标识信息改变之外,其它目标界面的标识信息、界面名称和与目标界面的控件列表中的控件名称都无需改变。
步骤S1002,接收对第五目标界面的第二预设操作。
在本申请上述步骤S1002提供的技术方案中,接收对第五目标界面的第二预设操作。
在获取目标应用的更新界面列表之后,接收对第五目标界面的第二预设操作,可以从更新界面列表关联的操作列表中选择第二预设操作。
步骤S1003,获取与第二预设操作对应的第三控件列表。
在本申请上述步骤S1003提供的技术方案中,获取与第二预设操作对应的第三控件列表,其中,第三控件列表中的控件为第五目标界面中允许执行第二预设操作的控件。
在接收对第五目标界面的第二预设操作之后,获取与第二预设操作对应的第三控件列表,该第三控件列表与第五目标界面具有关联关系,该第三控件列表中的控件为第五目标界面中允许执行第二预设操作的控件。
步骤S1004,生成包括第五目标界面和第三控件列表的第二目标测试用例。
在本申请上述步骤S1004提供的技术方案中,生成包括第五目标界面和第三控件列表的第二目标测试用例。
在获取与第二预设操作对应的第三控件列表之后,生成包括第五目标界面和第三控件列表的第二目标测试用例。
步骤S1005,根据第二目标测试用例生成目标应用的第二测试用例脚本。
在本申请上述步骤S1005提供的技术方案中,第二目标测试用例生成目标应用的第二测试用例脚本。
在生成包括第五目标界面和第三控件列表的第二目标测试用例之后,根据第二目标测试用例生成目标应用的第二测试用例脚本。
该实施例通过根据第一目标测试用例生成目标应用的第一测试用例脚本之后,在界面列表中存在界面改变的第五目标界面的情况下,获取目标应用的更新界面列表,更新界面列表包括第五目标界面,第五目标界面的原始标识信息更新为第三标识信息;接收对第五目标界面的第二预设操作;获取与第二预设操作对应的第三控件列表,第三控件列表中的控件为第五目标界面中允许执行第二预设操作的控件;生成包括第五目标界面和第三控件列表的第二目标测试用例;根据第二目标测试用例生成目标应用的第二测试用例脚本,从而实现了对原有第一测试用例脚本的更新,避免了测试用例的编写、调试过程复杂的问题,也避免了当目标应用中的界面发生改变时,则与之相关的测试用例需要全部修改的问题,从而更快速、方便地生成、更新测试用例脚本,达到降低用例维护成本的效果。
在该实施例中,在需要编写新的测试脚本时,只需要按照规范化编写手工用例,便可一键生成测试脚本,测试人员不再需要掌握复杂的编程技巧,测试脚本的编写效率也可得到极大的提升。
实施例2
下面结合优选的实施例对本发明的技术方案进行说明。
该实施例的测试用例脚本生成的方法包括数据准备过程、规范化编写测试用例过程、用例映射生成过程。
在数据准备的过程中,通过对目标应用的界面进行遍历,获取目标应用的界面基本信息,以及与目标应用的界面相对应的控件信息,主要包括界面的MD5值,界面中允许执行预设操作的控件,控件可以跳转的界面列表等。
对获取到的界面以及控件进行命名,从而保证界面名称的唯一性,及控件名称在所在界面的唯一性。把界面命名与MD5值建立映射关系。
在规范化编写测试用例中,根据数据准备过程中得到的信息可以得到目标应用的界面与控件,界面与控件之间的关联关系。
该实施例的测试用例包括两种操作,一种是对界面的操作,一种是操作后的验证。因而,该实施例的规范化地编写测试用例也包括操作步骤和验证步骤两部分。
下面对测试用例中的操作步骤进行举例说明。表1为规范化编写用例中的操作步骤。
表1规范化编写用例中的操作步骤
Figure BDA0001259403480000251
该实施例的操作步骤包含五个部分,分别为界面列表、操作列表、控件列表、设置变量和变量列表。界面列表即由数据准备过程中得到的所有界面的列表,操作列表和控件列表与界面列表为联动关系,控件列表中的控件为界面列表中的目标界面所允许执行预设操作的控件。例如,界面列表包括:Discover界面、搜索界面、搜索结果界面、歌曲播放界面、MV播放界面、电台播放界面等。在界面列表中选中Discover界面之后,操作列表即根据该界面中有效控件的属性将所有可能的操作都列举出来,比如,列举出单击操作、双击操作、输入操作、左滑操作、右滑操作、拖拽操作等。这时,再选中界面列表中的单击操作,则在控件列表中将Discover界面中所有可以点击的控件列举出来,比如,列举出“我的音乐”控件、“搜索框”控件、“歌手”控件、“歌单”控件、“MV”控件、“电台”控件等。
如果操作列表中没有选中任何操作,则控件列表中列出Discover界面所有有效控件。这里需要说明的是,除单击、双击这类明确操作外,其余操作需要后带参数,比如,输入操作需要后带文字,滑动操作需要后带滑动的距离等。设置变量又是与控件列表联动的,在控件列表中选中某个控件后,设置变量中会将该控件的所有属性值罗列出来,点击其右侧的+号,则可将该值添加到变量列表,从而解决了在操作过程中需要保存临时变量的情况。
下面对测试用例中的验证步骤进行举例说明。表2为规范化编写用例中的验证步骤。
表2规范化编写用例中的验证步骤
Figure BDA0001259403480000261
该实施例的验证步骤主要包含四个部分,界面列表、控件列表、验证字段和验证操作。界面列表也是由数据准备过程得到,与操作步骤中的界面列表不同的是,这里多加入一个当前界面,主要用于不确定当前界面为哪个界面时验证其是否等于指定界面的情况。控件列表和验证字段也是由界面列表联动产生。比如,界面列表包括Discover界面、搜索界面、搜索结果界面、歌曲播放界面、MV播放界面,在选中歌曲播放界面后,控件列表中将该界面中所有有效控件列出,比如,列举出“歌曲名”控件、“歌手名”控件、“音质标签”控件、“Dts”控件、“MV”控件、“歌词”控件等。此时选中“歌曲名”控件,则在验证字段中将该控件的属性列出,比如,列举出歌曲名控件对应的文本属性、可见属性、可点击属性、边界数值属性等。验证操作包括不等于操作、大于操作、小于操作等。可选地,需要验证该控件上的文本是否等于XXX,则在验证操作中选中等于,后带参数XXX或操作步骤中设置的变量A即可。
在该实施例中,测试人员只需要在操作步骤和验证步骤中进行简单的点击操作即可通过该系统将上述测试用例转化为规范化的测试用例,为明确区分各类对象,这里界面用中括号[]标识,操作用小括号()标识,控件用大括号{}标识,验证操作用尖括号<>标识:
在[discover界面](单击){我的音乐};
验证[当前界面]<等于>[我的音乐]界面;
在[我的音乐]界面(单击){我喜欢歌单};
验证[当前界面]<等于>[我喜欢歌单]界面;
在[我喜欢歌单]界面(单击){歌曲};
设置变量A=我喜欢歌单界面.歌曲.文本;
验证[当前界面]<等于>[歌曲播放]界面;
验证[歌曲播放]界面的{我的音乐}.文本<等于>变量A;
每一个步骤都必须符合以下规则中的一个:
界面+操作+控件,也即,在对界面进行操作之后,得到界面中有效的控件;
变量名+=+控件.属性,也即,验证字段将控件的属性列出,验证该控件上的属性是否等于变量名;
界面+验证操作+界面,也即,验证待验证的界面是否为比较界面;
界面+验证操作+变量名,也即,验证界面中的待验证的变量名是否符合预设变量名。
在规范化地编写测试用例之后,进行用例映射生成。需要将对应规范化模块转换成机器语言即可一键生成测试脚本,下面将对各模块进行一一说明:
第一,界面模块。通过观察用例可知,所有用例都是从一个指定界面开始的(起始界面为Discover界面),因而在打开被测应用之后,如何跳转到指定界面。可选地,在数据准备过程中已经得到所有界面间的跳转关系。在打开目标应用之后,首先计算当前界面的MD5值,确认当前界面是界面列表中的哪个界面,再由当前界面的跳转关系计算得到目标界面的跳转路径,验证执行跳转后到达界面是否为目标界面,如果验证执行跳转后到达界面不为目标界面,则将最后到达的界面设置为当前界面,再按照之前的方法重新规划路径,直至到达目标界面。
第二,控件模块。控件的操作主要包括单击,双击,滑动,拖拽等,这些在一般的测试框架中都是有现成的接口的,所以这部分的实现逻辑主要是找到指定控件,再调用指定接口进行操作即可。
第三,验证模块。该验证一般分为两种,界面验证和值验证。界面验证利用的是对数据准备过程中对界面MD5值的计算,只要两个界面的MD5值相同,则认为是同一个界面;值的验证则更为简单,如果是等于则做字符串的对比,如果是小于大于的验证则需要先将变量转化为数字再进行比对。
将以上内容使用代码实现并封装后,测试人员在编写完规范化用例后,即可通过本系统一键自动生成测试脚本。
举例而言,EnterDisplay用于表示进入界面。比如,EnterDisplay(“Discover”),用于表示进入“Discover”界面。
ClickInDisplay用于表示在界面中点击控件,第一个参数为界面名,第二个参数为控件名。比如,ClickInDisplay(“discover”,“我的音乐”),用于表示在界面“Discover”中点击控件,“Discover”为界面名,“我的音乐”为控件名。
VerifyDisplay用于表示验证界面A是否等于界面B,第一个参数界面A;第二个参数为界面B。比如VerifyDisplay(“当前界面”,“我的音乐”)用于表示验证当前界面是否等于“我的音乐”,第一个参数为“当前界面”;第二个参数为“我的音乐”。
ClickInDisplay(“我的音乐”,“我喜欢歌单”),用于表示在“我的音乐”界面中点击控件,“我的音乐”为界面名,“我喜欢歌单”为控件名。
VerifyDisplay(“当前界面”,“我喜欢歌单”),用于表示验证界面“当前界面”是否等于界面“我喜欢歌单”,第一个参数为“当前界面”;第二个参数为“我喜欢歌单”。
ClickInDisplay(“我喜欢歌单”,“歌曲”),用于表示在“我喜欢歌单”界面中点击控件,“我喜欢歌单”为界面名,“歌曲”为控件名。
VerifyDisplay(“当前界面”,“歌曲播放”),用于表示验证当前界面是否等于歌曲播放,第一个参数为当前界面;第二个参数为歌曲播放。
VerifyValue用于值验证,第一个参数为待验证变量,第二个参数为验证操作,可以为等于,大于,小于等,第三个参数为比较值。比如,(“歌曲播放.歌曲名.textt”,=,“A”),值验证,歌曲播放.歌曲名.text为待验证变量;“=”为验证操作,“A”为比较值。
该实施例在需要编写新的测试脚本时,只需要按照上述规范化编写手工用例,然后便可一键生成测试脚本,测试人员不再需要掌握复杂的编程技巧,测试脚本的编写效率也可得到极大的提升。在对原有测试脚本更新时,如果被测应用的界面发生改变,我们需要更新原有的测试脚本,则只需要简单几步即可实现脚本的更新:界面自动遍历获取被测应用所有界面信息被测应用原有界面可使用MD5值进行一一匹配,界面命名和内部控件命名都无需改变;对发生改变的界面,仍然使用原本的命名,人工更新命名与新MD5的映射关系;对于新的界面,人工对其进行命名,并建立MD5与命名的映射关系,进而测试用例重新生成测试脚本,简化了测试用例脚本生成的过程。
实施例3
本发明实施例的应用环境可以但不限于参照上述实施例中的应用环境,本实施例中对此不再赘述。本发明实施例提供了用于实施上述测试用例脚本的生成方法的一种可选的具体应用。
图11是根据本发明实施例的一种目标应用的目标界面的示意图。如图11所示,该目标应用为JOOX应用,目标界面为Discover界面。该Discover界面包括“我的音乐”控件、“歌手”控件、“歌单”控件、“MV”控件、“电台”控件。
在界面列表中选中Discover界面后,操作列表即根据该界面中有效控件的属性将所有可能的操作列举出来,这时,我们再选中单击操作,则在控件列表中将Discover界面中所有可以点击的控件列举出来,如果操作列表中没有选中任何操作,则控件列表中列出Discover界面所有有效控件。这里需要说明的是,除单击、双击这类明确操作外,其余操作需要后带参数,例如,输入操作需要后带文字,滑动操作需要后带滑动的距离等。
图12是根据本发明实施例的另一种目标界面的示意图。如图12所示,在单击图11所示界面中的“我的音乐”控件中后,进入“我的音乐”界面,“我的音乐”界面包括“我喜欢歌单”控件。
图13是根据本发明实施例的另一种目标界面的示意图。如图13所示,在单击图12所示界面中的“我喜欢歌单”控件之后,进入“我喜欢歌单”界面,“我喜欢歌单”界面,在“我喜欢歌单”界面随机点播一首歌曲(并记下该歌曲名称),进入歌曲播放界面。
图14是根据本发明实施例的另一种目标界面的示意图。如图14所示,在图14中随机点播一首歌曲之后,进入歌曲播放界面,可以随机点播一首歌曲,并记下该歌曲名称。可以在控件列表中选中某个控件后,设置变量中会将该控件的所有属性值罗列出来,点击其右侧的+号,则可将该值添加到变量列表。这样设计的目的主要是为了解决在操作过程中需要保存临时变量的情况,验证歌曲名称为点播的那首歌的名称。
可选地,在选中歌曲播放界面后,控件列表中将该界面中所有有效控件列出,此时再选中歌曲名控件,则在验证字段中将该控件的属性列出。如果我们现在需要验证该控件上的文本是否等于XXX,则在验证操作中选中等于,后带参数XXX或操作步骤中设置的变量A即可。
本发明实施例同时为每个界面、控件指定名称,之后通过结合规范化的手工测试用例,最后自动将手工用例转化为自动化脚本。测试人员不再需要掌握复杂的编程技能,测试脚本的编写也会变得十分便捷。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例4
根据本发明实施例,还提供了一种用于实施上述测试用例脚本的生成方法的测试用例脚本的生成装置。
图15是根据本发明实施例的一种可选的测试用例脚本的生成装置的示意图。如图15所示,该装置可以包括:第一获取单元10、接收单元20、第二获取单元30、第一生成单元40和第二生成单元50。
第一获取单元10,用于获取目标应用的界面列表,其中,界面列表中的每个界面具有标识信息。
接收单元20,用于接收对界面列表中的第一目标界面的第一预设操作。
第二获取单元30,用于获取与第一预设操作对应的第一控件列表,其中,第一控件列表中的控件为第一目标界面中允许执行第一预设操作的控件。
第一生成单元40,用于生成包括第一目标界面和第一控件列表的第一目标测试用例。
第二生成单元50,用于根据第一目标测试用例生成目标应用的第一测试用例脚本。
图16是根据本发明实施例的另一种的测试用例脚本的生成装置的示意图。如图16所示,该装置可以包括:第一获取单元10、接收单元20、第二获取单元30、第一生成单元40和第二生成单元50。其中,接收单元20包括:获取模块21和确定模块22。第一生成单元40包括:第一生成模块41。
需要说明的是,该实施例的第一获取单元10、接收单元20、第二获取单元30、第一生成单元40和第二生成单元50与图15所示实施例的测试用例脚本的生成装置中的作用相同,此处不再赘述。
获取模块21,用于获取操作列表,其中,操作列表中的操作为第一目标界面中允许执行的操作。
确定模块22,用于从操作列表中确定第一预设操作。
第一生成模块41,用于生成包括第一目标界面、第一控件列表和操作列表的第一目标测试用例。
图17是根据本发明实施例的另一种的测试用例脚本的生成装置的示意图。如图17所示,该装置可以包括:第一获取单元10、接收单元20、第二获取单元30、第一生成单元40和第二生成单元50。其中,接收单元20包括:获取模块21和确定模块22。其中,第一生成单元40包括:第一生成模块41。该装置还包括:第三获取单元60和添加单元70。其中,第一生成单元40还包括:第二生成模块42。
需要说明的是,该实施例的第一获取单元10、接收单元20、第二获取单元30、第一生成单元40、第二生成单元50、第三获取单元60和第一生成模块41与图16所示实施例的测试用例脚本的生成装置中的作用相同,此处不再赘述。
第三获取单元60,用于在获取与第一预设操作对应的第一控件列表之后,获取设置变量,其中,设置变量包括第一控件列表中选中的第一目标控件的属性。
添加单元70,用于添加设置变量至变量列表中。
第二生成模块42,用于生成包括第一目标界面、第一控件列表、操作列表和变量列表的第一目标测试用例。
图18是根据本发明实施例的另一种的测试用例脚本的生成装置的示意图。如图18所示,该装置可以包括:第一获取单元10、接收单元20、第二获取单元30、第一生成单元40、第二生成单元50、第三获取单元60和添加单元70。其中,接收单元20包括:获取模块21和确定模块22。其中,第一生成单元40包括:第一生成模块41和第二生成模块42。该装置还包括:第四获取单元90、第五获取单元90、第三生成单元100和第四生成单元110。
需要说明的是,该实施例的第一获取单元10、接收单元20、第二获取单元30、第一生成单元40、第二生成单元50、第三获取单元60和添加单元70,第一生成模块41和第二生成模块42与图17所示实施例的测试用例脚本的生成装置中的作用相同,此处不再赘述。
第四获取单元80,用于获取界面列表中的第二目标界面对应的第二控件列表,其中,第二目标界面在第一目标界面之后显示。
第五获取单元90,用于根据第二控件列表中的第二目标控件获取第二目标控件的验证字段,其中,验证字段包括第二目标控件的属性。
第三生成单元100,用于生成包括第二目标界面、第二控件列表、验证字段和验证操作的第二目标测试用例,其中,验证操作用于根据设置变量对验证字段中的第二目标控件的目标属性进行验证。
第四生成单元110,用于根据第二目标测试用例生成目标应用的第二测试用例脚本。
需要说明的是,该实施例中的第一获取单元10可以用于执行本申请实施例1中的步骤S202,该实施例中的接收单元20可以用于执行本申请实施例1中的步骤S204,该实施例中的第二获取单元30可以用于执行本申请实施例1中的步骤S206,该实施例中的第一生成单元40可以用于执行本申请实施例1中的步骤S208,该实施例中的第一生成单元50可以用于执行本申请实施例1中的步骤S210。
该实施例通过第一获取单元10获取目标应用的界面列表,其中,界面列表中的每个界面具有标识信息,通过接收单元20接收对界面列表中的第一目标界面的第一预设操作,通过第二获取单元30获取与第一预设操作对应的第一控件列表,其中,第一控件列表中的控件为第一目标界面中允许执行第一预设操作的控件,通过第一生成单元40生成包括第一目标界面和第一控件列表的第一目标测试用例,通过第二生成单元50根据第一目标测试用例生成目标应用的第一测试用例脚本。由于生成包括第一目标界面和第一目标界面中允许执行第一预设操作的控件的第一目标测试用例,达到了根据第一目标测试用例生成目标应用的第一测试用例脚本的目的,从而实现了简化测试用例脚本的生成过程的技术效果,进而解决了相关技术测试用例脚本的生成过程复杂的技术问题。
此处需要说明的是,上述单元和模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
实施例5
根据本发明实施例,还提供了一种用于实施上述测试用例脚本的生成方法的服务器或终端。
图19是根据本发明实施例的一种终端的结构框图。如图19所示,该终端可以包括:一个或多个(图中仅示出一个)处理器191、存储器193、以及传输装置195,如图19所示,该终端还可以包括输入输出设备197。
其中,存储器193可用于存储软件程序以及模块,如本发明实施例中的测试用例脚本的生成方法和装置对应的程序指令/模块,处理器191通过运行存储在存储器193内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的测试用例脚本的生成方法。存储器193可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器193可进一步包括相对于处理器191远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置195用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置195包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置195为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器193用于存储应用程序。
处理器191可以通过传输装置195调用存储器193存储的应用程序,以执行下述步骤:
获取目标应用的界面列表,其中,界面列表中的每个界面具有标识信息;
接收对界面列表中的第一目标界面的第一预设操作;
获取与第一预设操作对应的第一控件列表,其中,第一控件列表中的控件为第一目标界面中允许执行第一预设操作的控件;
生成包括第一目标界面和第一控件列表的第一目标测试用例;
根据第一目标测试用例生成目标应用的第一测试用例脚本。
处理器191还用于执行下述步骤:获取操作列表,其中,操作列表中的操作为第一目标界面中允许执行的操作;从操作列表中确定第一预设操作;生成包括第一目标界面、第一控件列表和操作列表的第一目标测试用例。
处理器191还用于执行下述步骤:在获取与第一预设操作对应的第一控件列表之后,获取设置变量,其中,设置变量包括第一控件列表中选中的第一目标控件的属性;添加设置变量至变量列表中;生成包括第一目标界面、第一控件列表、操作列表和变量列表的第一目标测试用例。
处理器191还用于执行下述步骤:在生成包括第一目标界面、第一控件列表和操作列表的第一目标测试用例之后,接收对界面列表中的第二目标界面的第二预设操作,其中,第二目标界面在第一目标界面之后显示;获取与第二预设操作对应的第二控件列表;根据第二控件列表中的第二目标控件获取第二目标控件的验证字段,其中,验证字段包括第二目标控件的属性;生成包括第二目标界面、第二控件列表、验证字段和验证操作的第二目标测试用例,其中,验证操作用于根据设置变量对验证字段中的第二目标控件的目标属性进行验证;根据第二目标测试用例生成目标应用的第二测试用例脚本。
处理器191还用于执行下述步骤:获取目标应用的当前界面;验证当前界面是否为预设界面;在验证出当前界面为预设界面的情况下,根据第二目标控件获取第二目标控件的验证字段。
处理器191还用于执行下述步骤:获取当前界面的第一标识信息;获取预设界面的第二标识信息;验证第一标识信息和第二标识信息是否相同;如果验证出第一标识信息和第二标识信息相同,则确定当前界面为预设界面;如果验证出第一标识信息和第二标识信息不相同,则确定当前界面不为预设界面。
处理器191还用于执行下述步骤之一:验证目标属性是否等于设置变量中的属性;验证目标属性是否大于设置变量中的属性;验证目标属性是否小于设置变量中的属性。
处理器191还用于执行下述步骤:验证目标属性对应的字符串是否等于设置变量中的属性对应的字符串;将目标属性转换为第一数值;判断第一数值是否大于设置变量中的属性对应的数值;将目标属性转换为第二数值;判断第二数值是否小于设置变量中的属性对应的数值。
处理器191还用于执行下述步骤:在获取与界面列表中的第二目标界面具有联动关系的第二控件列表之前,获取当前界面的标识信息;根据标识信息确定当前界面为界面列表中的第三目标界面;从第三目标界面与界面列表中的多个目标界面之间的跳转关系中确定第一地址,其中,第一地址用于指向第二目标界面;从第三目标界面跳转至第一地址指向的第二目标界面。
处理器191还用于执行下述步骤:在从第三目标界面跳转至第一地址指向的第二目标界面之前,从第三目标界面跳转至第四目标界面;验证第四目标界面是否为第二目标界面;在验证出第四目标界面不为第二目标界面的情况下,将第四目标界面设置为当前界面;从当前界面跳转至第一地址指向的第二目标界面。
处理器191还用于执行下述步骤:在根据第一目标测试用例生成目标应用的第一测试用例脚本之后,在界面列表中存在界面改变的第五目标界面的情况下,获取目标应用的更新界面列表,其中,更新界面列表包括第五目标界面,第五目标界面的原始标识信息更新为第三标识信息;接收对第五目标界面的第二预设操作;获取与第二预设操作对应的第三控件列表,其中,第三控件列表中的控件为第五目标界面中允许执行第二预设操作的控件;生成包括第五目标界面和第三控件列表的第二目标测试用例;根据第二目标测试用例生成目标应用的第二测试用例脚本。
采用本发明实施例,提供了一种测试用例脚本的生成的方案。获取目标应用的界面列表,界面列表中的每个界面具有标识信息;接收对界面列表中的第一目标界面的第一预设操作;获取与第一预设操作对应的第一控件列表,其中,第一控件列表中的控件为第一目标界面中允许执行第一预设操作的控件;生成包括第一目标界面和第一控件列表的第一目标测试用例;根据第一目标测试用例生成目标应用的第一测试用例脚本,由于生成包括第一目标界面和第一目标界面中允许执行第一预设操作的控件的第一目标测试用例,达到了根据第一目标测试用例生成目标应用的第一测试用例脚本的目的,从而实现了简化测试用例脚本的生成过程的技术效果,进而解决了相关技术测试用例脚本的生成过程复杂的技术问题。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图19所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图19其并不对上述电子装置的结构造成限定。例如,终端还可包括比图19中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图19所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例6
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行测试用例脚本的生成方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
获取目标应用的界面列表,其中,界面列表中的每个界面具有标识信息;
接收对界面列表中的第一目标界面的第一预设操作;
获取与第一预设操作对应的第一控件列表,其中,第一控件列表中的控件为第一目标界面中允许执行第一预设操作的控件;
生成包括第一目标界面和第一控件列表的第一目标测试用例;
根据第一目标测试用例生成目标应用的第一测试用例脚本。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:获取操作列表,其中,操作列表中的操作为第一目标界面中允许执行的操作;从操作列表中确定第一预设操作;生成包括第一目标界面、第一控件列表和操作列表的第一目标测试用例。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在获取与第一预设操作对应的第一控件列表之后,获取设置变量,其中,设置变量包括第一控件列表中选中的第一目标控件的属性;添加设置变量至变量列表中;生成包括第一目标界面、第一控件列表、操作列表和变量列表的第一目标测试用例。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在生成包括第一目标界面、第一控件列表和操作列表的第一目标测试用例之后,接收对界面列表中的第二目标界面的第二预设操作,其中,第二目标界面在第一目标界面之后显示;获取与第二预设操作对应的第二控件列表;根据第二控件列表中的第二目标控件获取第二目标控件的验证字段,其中,验证字段包括第二目标控件的属性;生成包括第二目标界面、第二控件列表、验证字段和验证操作的第二目标测试用例,其中,验证操作用于根据设置变量对验证字段中的第二目标控件的目标属性进行验证;根据第二目标测试用例生成目标应用的第二测试用例脚本。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:获取目标应用的当前界面;验证当前界面是否为预设界面;在验证出当前界面为预设界面的情况下,根据第二目标控件获取第二目标控件的验证字段。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:获取当前界面的第一标识信息;获取预设界面的第二标识信息;验证第一标识信息和第二标识信息是否相同;如果验证出第一标识信息和第二标识信息相同,则确定当前界面为预设界面;如果验证出第一标识信息和第二标识信息不相同,则确定当前界面不为预设界面。
可选地,存储介质还被设置为存储用于执行以下步骤之一的程序代码:验证目标属性是否等于设置变量中的属性;验证目标属性是否大于设置变量中的属性;验证目标属性是否小于设置变量中的属性。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:验证目标属性对应的字符串是否等于设置变量中的属性对应的字符串;将目标属性转换为第一数值;判断第一数值是否大于设置变量中的属性对应的数值;将目标属性转换为第二数值;判断第二数值是否小于设置变量中的属性对应的数值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在获取与界面列表中的第二目标界面具有联动关系的第二控件列表之前,获取当前界面的标识信息;根据标识信息确定当前界面为界面列表中的第三目标界面;从第三目标界面与界面列表中的多个目标界面之间的跳转关系中确定第一地址,其中,第一地址用于指向第二目标界面;从第三目标界面跳转至第一地址指向的第二目标界面。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在从第三目标界面跳转至第一地址指向的第二目标界面之前,从第三目标界面跳转至第四目标界面;验证第四目标界面是否为第二目标界面;在验证出第四目标界面不为第二目标界面的情况下,将第四目标界面设置为当前界面;从当前界面跳转至第一地址指向的第二目标界面。
处理器191还用于执行下述步骤:在根据第一目标测试用例生成目标应用的第一测试用例脚本之后,在界面列表中存在界面改变的第五目标界面的情况下,获取目标应用的更新界面列表,其中,更新界面列表包括第五目标界面,第五目标界面的原始标识信息更新为第三标识信息;接收对第五目标界面的第二预设操作;获取与第二预设操作对应的第三控件列表,其中,第三控件列表中的控件为第五目标界面中允许执行第二预设操作的控件;生成包括第五目标界面和第三控件列表的第二目标测试用例;根据第二目标测试用例生成目标应用的第二测试用例脚本。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (13)

1.一种测试用例脚本的生成方法,其特征在于,包括:
获取目标应用的界面列表,其中,所述界面列表中的每个界面具有标识信息;
接收对所述界面列表中的第一目标界面的第一预设操作;
获取与所述第一预设操作对应的第一控件列表,其中,所述第一控件列表中的控件为所述第一目标界面中允许执行所述第一预设操作的控件,所述界面列表与所述控件列表具有关联关系;
生成包括所述第一目标界面和所述第一控件列表的第一目标测试用例;
根据所述第一目标测试用例生成所述目标应用的第一测试用例脚本;
其中,所述接收对所述界面列表中的第一目标界面的所述第一预设操作包括:获取操作列表,其中,所述操作列表中的操作为所述第一目标界面中允许执行的操作;从所述操作列表中确定所述第一预设操作;
所述生成包括所述第一目标界面和所述第一控件列表的所述第一目标测试用例包括:生成包括所述第一目标界面、所述第一控件列表和所述操作列表的所述第一目标测试用例;
其中,所述第一目标测试用例包括:操作步骤和验证步骤,所述操作步骤包括:所述界面列表、操作列表、所述控件列表、设置变量和变量列表,所述验证步骤包括:所述界面列表、所述控件列表、验证字段和验证操作。
2.根据权利要求1所述的方法,其特征在于,
在获取与所述第一预设操作对应的所述第一控件列表之后,所述方法还包括:获取设置变量,其中,所述设置变量包括所述第一控件列表中选中的第一目标控件的属性;添加所述设置变量至变量列表中;
生成包括所述第一目标界面和所述第一控件列表的第一目标测试用例包括:生成包括所述第一目标界面、所述第一控件列表、所述操作列表和所述变量列表的所述第一目标测试用例。
3.根据权利要求2所述的方法,其特征在于,在生成包括所述第一目标界面、所述第一控件列表和所述操作列表的所述第一目标测试用例之后,所述方法还包括:
获取所述界面列表中的第二目标界面对应的第二控件列表,其中,所述第二目标界面在所述第一目标界面之后显示;
根据所述第二控件列表中的第二目标控件获取所述第二目标控件的验证字段,其中,所述验证字段包括所述第二目标控件的属性;
生成包括所述第二目标界面、所述第二控件列表、所述验证字段和验证操作的第二目标测试用例,其中,所述验证操作用于根据所述设置变量对所述验证字段中的所述第二目标控件的目标属性进行验证;
根据所述第二目标测试用例生成所述目标应用的第二测试用例脚本。
4.根据权利要求3所述的方法,其特征在于,根据所述第二控件列表中的第二目标控件获取与所述第二目标控件的所述验证字段包括:
获取所述目标应用的当前界面;
验证所述当前界面是否为预设界面;
在验证出所述当前界面为所述预设界面的情况下,根据所述第二目标控件获取所述第二目标控件的验证字段。
5.根据权利要求4所述的方法,其特征在于,验证所述当前界面是否为所述预设界面包括:
获取所述当前界面的第一标识信息;
获取所述预设界面的第二标识信息;
验证所述第一标识信息和所述第二标识信息是否相同;
如果验证出所述第一标识信息和所述第二标识信息相同,则确定所述当前界面为所述预设界面;
如果验证出所述第一标识信息和所述第二标识信息不相同,则确定所述当前界面不为所述预设界面。
6.根据权利要求3至5中任一项所述的方法,其特征在于,所述验证操作包括以下之一:
验证所述目标属性是否等于所述设置变量中的属性;
验证所述目标属性是否大于所述设置变量中的属性;
验证所述目标属性是否小于所述设置变量中的属性。
7.根据权利要求6所述的方法,其特征在于,
验证所述目标属性是否等于所述设置变量中的属性包括:验证所述目标属性对应的字符串是否等于所述设置变量中的属性对应的字符串;
验证所述目标属性是否大于所述设置变量中的属性包括:将所述目标属性转换为第一数值;判断所述第一数值是否大于所述设置变量中的属性对应的数值;
验证所述目标属性是否小于所述设置变量中的属性包括:将所述目标属性转换为第二数值;判断所述第二数值是否小于所述设置变量中的属性对应的数值。
8.根据权利要求3所述的方法,其特征在于,在获取所述界面列表中的第二目标界面对应的第二控件列表之前,所述方法还包括:
获取当前界面的标识信息;
根据所述标识信息确定所述当前界面为所述界面列表中的第三目标界面;
从所述第三目标界面与所述界面列表中的多个目标界面之间的跳转关系中确定第一地址,其中,所述第一地址用于指向所述第二目标界面;
从所述第三目标界面跳转至所述第一地址指向的所述第二目标界面。
9.根据权利要求8所述的方法,其特征在于,在从所述第三目标界面跳转至所述第一地址指向的所述第二目标界面之前,所述方法还包括:
从所述第三目标界面跳转至第四目标界面;
验证所述第四目标界面是否为所述第二目标界面;
在验证出所述第四目标界面不为所述第二目标界面的情况下,将所述第四目标界面设置为所述当前界面;
从所述当前界面跳转至所述第一地址指向的所述第二目标界面。
10.根据权利要求1所述的方法,其特征在于,在根据所述第一目标测试用例生成所述目标应用的第一测试用例脚本之后,所述方法还包括:
在所述界面列表中存在界面改变的第五目标界面的情况下,获取所述目标应用的更新界面列表,其中,所述更新界面列表包括所述第五目标界面,所述第五目标界面的原始标识信息更新为第三标识信息;
接收对所述第五目标界面的第二预设操作;
获取与所述第二预设操作对应的第三控件列表,其中,所述第三控件列表中的控件为所述第五目标界面中允许执行所述第二预设操作的控件;
生成包括所述第五目标界面和所述第三控件列表的第二目标测试用例;
根据所述第二目标测试用例生成所述目标应用的第二测试用例脚本。
11.一种测试用例脚本的生成装置,其特征在于,包括:
第一获取单元,用于获取目标应用的界面列表,其中,所述界面列表中的每个界面具有标识信息;
接收单元,用于接收对所述界面列表中的第一目标界面的第一预设操作;
第二获取单元,用于获取与所述第一预设操作对应的第一控件列表,其中,所述第一控件列表中的控件为所述第一目标界面中允许执行所述第一预设操作的控件,所述界面列表与所述控件列表具有关联关系;
第一生成单元,用于生成包括所述第一目标界面和所述第一控件列表的第一目标测试用例;
第二生成单元,用于根据所述第一目标测试用例生成所述目标应用的第一测试用例脚本;
所述接收单元包括:获取模块,用于获取操作列表,其中,所述操作列表中的操作为所述第一目标界面中允许执行的操作;确定模块,用于从所述操作列表中确定所述第一预设操作;
所述第一生成单元包括:第一生成模块,用于生成包括所述第一目标界面、所述第一控件列表和所述操作列表的所述第一目标测试用例;
其中,所述第一目标测试用例包括:操作步骤和验证步骤,所述操作步骤包括:所述界面列表、操作列表、所述控件列表、设置变量和变量列表,所述验证步骤包括:所述界面列表、所述控件列表、验证字段和验证操作。
12.根据权利要求11所述的装置,其特征在于,
所述装置还包括:第三获取单元,用于在获取与所述第一预设操作对应的所述第一控件列表之后,获取设置变量,其中,所述设置变量包括所述第一控件列表中选中的第一目标控件的属性;添加单元,用于添加所述设置变量至变量列表中;
所述第一生成单元包括:第二生成模块,用于生成包括所述第一目标界面、所述第一控件列表、所述操作列表和所述变量列表的所述第一目标测试用例。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第四获取单元,用于获取所述界面列表中的第二目标界面对应的第二控件列表,其中,所述第二目标界面在所述第一目标界面之后显示;
第五获取单元,用于根据所述第二控件列表中的第二目标控件获取所述第二目标控件的验证字段,其中,所述验证字段包括所述第二目标控件的属性;
第三生成单元,用于生成包括所述第二目标界面、所述第二控件列表、所述验证字段和验证操作的第二目标测试用例,其中,所述验证操作用于根据所述设置变量对所述验证字段中的所述第二目标控件的目标属性进行验证;
第四生成单元,用于根据所述第二目标测试用例生成所述目标应用的第二测试用例脚本。
CN201710207404.1A 2017-03-30 2017-03-30 测试用例脚本的生成方法和装置 Active CN107122295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710207404.1A CN107122295B (zh) 2017-03-30 2017-03-30 测试用例脚本的生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710207404.1A CN107122295B (zh) 2017-03-30 2017-03-30 测试用例脚本的生成方法和装置

Publications (2)

Publication Number Publication Date
CN107122295A CN107122295A (zh) 2017-09-01
CN107122295B true CN107122295B (zh) 2020-12-29

Family

ID=59724611

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710207404.1A Active CN107122295B (zh) 2017-03-30 2017-03-30 测试用例脚本的生成方法和装置

Country Status (1)

Country Link
CN (1) CN107122295B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107656233A (zh) * 2017-09-04 2018-02-02 国家电网公司 一种用于电能表软件自动测试的方法
CN110225246B (zh) * 2019-05-28 2021-07-20 北京字节跳动网络技术有限公司 事件脚本的生成方法、装置、电子设备及计算机可读存储介质
CN110618941B (zh) * 2019-09-19 2023-01-20 中国银行股份有限公司 一种界面元素处理方法及装置
CN111552634A (zh) * 2020-03-30 2020-08-18 深圳壹账通智能科技有限公司 前端系统的测试方法、装置及存储介质
CN112835787B (zh) * 2021-01-08 2022-09-27 展讯通信(上海)有限公司 应用程序界面跳转的路径纠正方法及装置、存储介质、终端
CN112783794B (zh) * 2021-02-10 2024-03-26 西南电子技术研究所(中国电子科技集团公司第十研究所) 航空通信电台软件测试系统
CN115145777B (zh) * 2022-09-02 2022-12-20 珠海妙存科技有限公司 一种测试方法、系统、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104536889A (zh) * 2014-12-26 2015-04-22 北京奇虎科技有限公司 用户界面测试的方法、用例管理平台、操作终端及系统
CN106033393A (zh) * 2015-03-13 2016-10-19 展讯通信(天津)有限公司 一种应用程序测试方法及系统以及移动终端

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9910764B2 (en) * 2013-06-24 2018-03-06 Linkedin Corporation Automated software testing
CN103544106A (zh) * 2013-10-31 2014-01-29 广东欧珀移动通信有限公司 一种基于控件生成脚本的方法及装置
CN104794050B (zh) * 2014-01-21 2018-09-18 腾讯科技(深圳)有限公司 应用程序的测试方法、装置及系统
CN104035867B (zh) * 2014-06-04 2017-06-09 重庆泰凯科技有限公司 基于Android的应用功能遍历测试方法
CN105468529B (zh) * 2015-12-15 2018-07-24 北京奇虎科技有限公司 一种安卓应用ui控件精准遍历方法和装置
CN105718370A (zh) * 2016-01-21 2016-06-29 上海斐讯数据通信技术有限公司 一种Android设备测试方法及测试装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104536889A (zh) * 2014-12-26 2015-04-22 北京奇虎科技有限公司 用户界面测试的方法、用例管理平台、操作终端及系统
CN106033393A (zh) * 2015-03-13 2016-10-19 展讯通信(天津)有限公司 一种应用程序测试方法及系统以及移动终端

Also Published As

Publication number Publication date
CN107122295A (zh) 2017-09-01

Similar Documents

Publication Publication Date Title
CN107122295B (zh) 测试用例脚本的生成方法和装置
US9934129B1 (en) Determining application test results using screenshot metadata
CN105765527B (zh) 用于定制的软件开发包(sdk)的方法和装置
US10656907B2 (en) Translation of natural language into user interface actions
CN112270149B (zh) 验证平台自动化集成方法、系统及电子设备和存储介质
CN109558525B (zh) 一种测试数据集的生成方法、装置、设备和存储介质
CN110287696A (zh) 一种反弹shell进程的检测方法、装置和设备
KR20190031030A (ko) 바이너리 파일에 기초하여 오픈소스 소프트웨어 패키지를 식별하는 방법 및 시스템
WO2016145009A1 (en) Method and system for rapid deployment and execution of customized functionality across multiple distinct platforms
CN107360265A (zh) 一种设备唯一标识码获取方法、装置及移动终端
CN114237582A (zh) 项目构建方法、装置、介质及电子设备
CN102811167B (zh) 用于基于分层名称结构的网络的方法和设备
CN115268879A (zh) 代码处理方法、装置、电子设备及存储介质
Nandaa Beginning API Development with Node. js: Build highly scalable, developer-friendly APIs for the modern web with JavaScript and Node. js
CN112286486B (zh) 智能终端上应用程序的运行方法、智能终端和存储介质
CN115544968B (zh) 一种兼容多项目设备树的方法、系统、设备和存储介质
CN105893555A (zh) 一种浏览器界面的显示方法、装置及电子设备
Nguyen Jump Start Node. js: Get Up to Speed With Node. js in a Weekend
CN109582347A (zh) 一种获取前端代码的方法及装置
CN111142735B (zh) 一种软件页面的创建方法、装置、终端设备和存储介质
CN113051336B (zh) 可视化的数据操作方法、系统、设备和介质
CN114254220A (zh) 网页视图的处理方法、装置及电子设备
Vaneetvelde Ethereum Projects for Beginners: Build blockchain-based cryptocurrencies, smart contracts, and DApps
CN111001157A (zh) 引用信息的生成方法和装置、存储介质及电子装置
CN107122665B (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