CN114398283A - 用户界面的自动化测试方法、装置、电子设备及存储介质 - Google Patents

用户界面的自动化测试方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114398283A
CN114398283A CN202210057030.0A CN202210057030A CN114398283A CN 114398283 A CN114398283 A CN 114398283A CN 202210057030 A CN202210057030 A CN 202210057030A CN 114398283 A CN114398283 A CN 114398283A
Authority
CN
China
Prior art keywords
test
test case
execution process
interface
process information
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
CN202210057030.0A
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.)
Ping An Health Insurance Company of China Ltd
Original Assignee
Ping An Health Insurance Company of China 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 Ping An Health Insurance Company of China Ltd filed Critical Ping An Health Insurance Company of China Ltd
Priority to CN202210057030.0A priority Critical patent/CN114398283A/zh
Publication of CN114398283A publication Critical patent/CN114398283A/zh
Pending legal-status Critical Current

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/3688Test management for test execution, e.g. scheduling of test suites
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种用户界面的自动化测试方法、装置、电子设备及存储介质,其方法包括:记录并存储人工运行待测试界面的源测试用例的执行过程信息;运行测试插件,读取源测试用例及其执行过程信息;解析读取的源测试用例及其执行过程信息,根据解析结果进行测试用例的智能化扩展;基于扩展得到的衍生测试用例,生成测试脚本;执行测试脚本,得到用户界面的自动化测试结果。本申请能够在执行完用例的同时,通过智能化手段,准备好自动化测试相关数据,大量减少测试用例编写的工作量及成本;在待测试界面的功能发生变更时,能自动联想扩展测试用例,不需要对测试用例做高成本的维护工作;本申请测试效率高、测试成本低,实用性强。

Description

用户界面的自动化测试方法、装置、电子设备及存储介质
技术领域
本申请涉及软件测试技术领域,具体涉及一种用户界面的自动化测试方法、装置、电子设备及存储介质。
背景技术
自动化测试是把以人为驱动的页面测试行为转化为机器执行的一种过程,自动化测试能够很大程度降低回归测试的成本,当发生一个局部影响较大功能的调整或整体的重构、优化时,需要对整个***进行全量回归测试,自动化测试能在这些场景中大量节省成本,让软件质量在迭代上线中得到很好的保障。
现有业内用户界面(User Interface,UI)自动化测试流程,先做测试用例评审,由人工跑完整个测试用例流程,整个测试通过后,上线功能,然后将人工跑完的测试用例编写成自动化测试脚本。如果软件功能发生变更,需要重复此操作,即先人工跑完测试用例,然后维护脚本。在这个过程中,编写脚本的工程师和人工跑测试用例的工程师通常不是同一人时,这使得人力成本大幅增长,且需要工作人员熟悉整个用例中涉及的大量元素,这会造成大量重复的工作;在一些测试时,需要大量的用例编写,甚至是上百个维度数据的随机组合,人工编写脚本较高,当发生功能变更时,脚本维护成本高。
发明内容
针对上述问题,本申请实施例提供了一种用户界面的自动化测试方法、装置、电子设备及存储介质,以克服或者至少部分克服现有技术的不足之处。
第一方面,本申请实施例提供了一种用户界面的自动化测试方法,包括:
记录并存储人工运行待测试界面的源测试用例的执行过程信息;
运行测试插件,读取所述源测试用例及其执行过程信息;
解析读取的源测试用例及其执行过程信息,根据解析结果进行测试用例的智能化扩展;
基于扩展得到的衍生测试用例,生成测试脚本;
执行所述测试脚本,得到用户界面的自动化测试结果。
第二方面,本申请实施例还提供一种用户界面的自动化测试装置,所述装置包括:
记录单元,用于记录并存储人工运行待测试界面的源测试用例的执行过程信息;
读取单元,用于运行测试插件,读取所述源测试用例及其执行过程信息;
扩展单元,用于解析读取的目标测试用例及其执行过程信息;根据解析结果进行测试用例的智能化扩展;
脚本化单元,用于基于扩展得到的衍生测试用例,生成测试脚本;
执行单元,用于执行所述测试脚本,得到用户界面的自动化测试结果。
第三方面,本申请实施例还提供了一种电子设备,包括:处理器;以及存储有计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行上述任一的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个计算机程序,所述一个或多个计算机程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行上述任一的方法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本申请通过将人工执行测试用例的执行过程信息记录下来,在自动测试时,对记录的测试用例及其执行过程信息进行读取和解析,根据解析结果智能化的扩展出更多的测试用例,并根据扩展出的衍生测试用例生成测试脚本,最后,执行测试脚本,即可得到待测试界面的自动化测试结果。本申请能够自动记录测试工程师,执行测试用例的整个过程,能方便测试工程师跟踪记录测试过程;在执行完用例的同时,通过智能化手段,准备好自动化测试相关数据,大量减少测试用例编写的工作量及成本;在待测试界面的功能发生变更时,能自动联想扩展测试用例,不需要对测试用例做高成本的维护工作;且针对一个测试项目,能够获得人工执行用例的情况和自动化测试运行的情况,以便进行对比,形成人工与自动化的对比结果,以便对测试过程进行优化;且本申请测试效率高、测试成本低,实用性强。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了根据本申请的一个实施例的用户界面的自动化测试方法的流程示意图;
图2示出了根据本申请的另一个实施例的用户界面的自动化测试方法的流程示意图;
图3示出了根据本申请的一个实施例的用户界面的自动化测试装置的结构示意图;
图4为本申请实施例中一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
现有业内用户界面(User Interface,UI)自动化测试流程,先做测试用例评审,由人工跑完整个测试用例流程,整个测试通过后,上线功能,然后将人工跑完的测试用例编写成自动化测试脚本。如果软件功能发生变更,需要重复此操作,即先人工跑完测试用例,然后维护脚本。在这个过程中,编写脚本的工程师和人工跑测试用例的工程师通常不是同一人时,这使得人力成本大幅增长,且需要工作人员熟悉整个用例中涉及的大量元素,这会造成大量重复的工作;在一些测试时,需要大量的用例编写,甚至是上百个维度数据的随机组合,人工编写脚本较高,当发生功能变更时,脚本维护成本高。
针对上述问题,本申请提供一种用户界面的自动化测试方法,该方法通过将人工执行测试用例的执行过程信息记录下来,在自动测试时,对记录的测试用例及其执行过程信息进行读取和解析,根据解析结果智能化的扩展出更多的测试用例,并根据扩展出的衍生测试用例生成测试脚本,最后,执行测试脚本,即可得到待测试界面的自动化测试结果。
图1示出了根据本申请的一个实施例的用户界面的自动化测试方法的流程示意图,从图1可以看出,本申请至少包括步骤S110~步骤S150:
步骤S110:记录并存储人工运行待测试界面的源测试用例的执行过程信息。
软件在版本上线前要通过验收测试,以保证质量。传统技术中,对于用户界面的测试都是通过人工进行,为了节约人力成本和时间成本,用户界面的自动化测试称为研究的热点,自动化测试是把以人为驱动的页面测试行为转化为机器执行的一种过程。
现有的自动化测试流程主要分为两步,先由人工编程测试用例,并做测试用例评审,由人工跑完整测试用例流程;然后将人工跑完的测试用例编写成自动化测试脚本,然后将测试用例与脚本进行关联对照,实现基于测试用例执行自动化测试的目标。当软件有功能发生变更,需要重复上述操作,即先人工跑完测试用例,然后维护脚本,编写脚本工程师和人工跑测试用例的工程师通常不是一组工作人员时,这个过程会造成人力成本会大幅增长,维护脚本的工作人员需要熟悉整个用例中涉及的元素,导致出现重复的工作成本出现,如果需要更大量的用例编写,上百个维度的数据随机组合,人工编写脚本经济成本和时间成本都很高。尤其是当新版本发布时,测试脚本维护成本会显著增大。
对此,本申请提供了一种用户界面的自动化测试方法,该方法能够自动记录人工运行待测试界面的测试用例的执行过程信息,在人工运行测试用例的过程中,进行测试用例的智能化拓展,实现了测试脚本的自动生成,实现了用户界面的自动化测试,本申请测试效率高、测试成本低,实用性强。
首先,针对一个待测试界面进行少量测试用例的人工运行,本申请中,将这些少量测试用量记为源测试用例,在人工运行源测试用例时,记录人工操作过程中,记录测试用例执行过程信息,执行过程信息包括测试用例操作过程与结果;并将测试用例与其执行过程信息对应的存储起来。在本申请的一些实施例中,可以将这些数据都记录到特意设定的数据库中,以便后续步骤读取调用。
步骤S120:运行测试插件,读取所述源测试用例及其执行过程信息。
在对待测试界面进行自动化测试时,响应自动化测试指令,读取待测试界面的源测试用例及其执行过程信息。
测试用例可以理解为通过自然语言描述针对待测软件或界面的具体测试操作,可以由具备非常丰富的业务背景知识的测试人员站在用户的角度编制。
测试用例的执行过程信息主要是指人工在执行运行测试用例时的操作,如点击元素触发事件或获取焦点,获取元素的路径信息,输入框里的输入内容,事件触发的后端接口返回数据,这些都会被记录下来。
读取时,将读取测试用例,以及该测试用例的执行过程信息。在读取时,可以从指定区域,如数据库中读取已经存在的待测试界面的源测试用例及其执行过程信息。
测试插件为现有技术中的,软件的测试插件,如谷歌插件,其可通过访问下述网址获得:http://code.***.com/chrome/extensions/getstarted.html。
步骤S130:解析读取的源测试用例及其执行过程信息,根据解析结果进行测试用例的智能化扩展。
对读取到的源测试用例及其执行过程信息进行解析,得到源测试用例的具体内容,以及人工运行时的执行过程信息,该步骤是为了形成一个模板,以便后续对源测试用例进行智能化扩展时使用。
测试用例通常是按照一定的格式编写的,对于解析的过程,可以反向解析,如根据测试用例的编写格式,生成一个解析模板,通过这个解析模板对测试用例进行识别,即可得到目标信息。
由于对一个软件或界面的测试,需要很多的测试用例,在人工运行阶段,只是运行了少量的测试用例,对此,本申请可以基于对源测试用例及其执行过程信息的解析的基础上,进行智能化扩展,以得到更多的测试用例。这里可以理解为将源测试用例作为模板,根据模板的信息,扩展出更多的测试用例。
如对于一个项目,所需要的测试用例通常在6个以上,在本申请中,人工运行阶段可以只运行一个,其余通过智能化扩展得来。
对于智能化扩展的过程,可以根据解析出的源测试用例的结果,如自动随机补充所需要的信息。
步骤S140:基于扩展得到的衍生测试用例,生成测试脚本。
在得到若干衍生测试用例后,可自动生成测试脚本。在一个待测试软件或界面中,需要测试的项目有很多,这里可以将得到的衍生测试用例按照项目分组,并生成每个测试用例的执行过程,以生成测试脚本。
对于测试脚本的录制与生成参考selenium IDE。Selenium IDE(集成开发环境)是Selenium Suite下的开源Web自动化测试工具。与Selenium WebDriver和RC不同,它不需要任何编程逻辑来编写其测试脚本,而只需记录与浏览器的交互以创建测试用例。之后可以使用播放选项重新运行测试用例。
步骤S150:执行所述测试脚本,得到用户界面的自动化测试结果。
在得到测试脚本后,可执行测试脚本,具体执行的是,上述通过扩展得到的衍生测试用例,并将各衍生测试用例与对应的执行结果一一对应进行存储,在所有测试用例执行后,可得到用户界面的自动化测试结果,若一个项目的测试用例的测试结果均为通过,则可确定用户界面的自动化测试结果为通过;若一个项目的至少一个测试用例的测试结果为不通过,则对于该项目需要复核。
由图1所示的方法可以看出,本申请通过将人工执行测试用例的执行过程信息记录下来,在自动测试时,对记录的测试用例及其执行过程信息进行读取和解析,根据解析结果智能化的扩展出更多的测试用例,并根据扩展出的衍生测试用例生成测试脚本,最后,执行测试脚本,即可得到待测试界面的自动化测试结果。本申请能够自动记录测试工程师,执行测试用例的整个过程,能方便测试工程师跟踪记录测试过程;在执行完用例的同时,通过智能化手段,准备好自动化测试相关数据,大量减少测试用例编写的工作量及成本;在待测试界面的功能发生变更时,能自动联想扩展测试用例,不需要对测试用例做高成本的维护工作;且针对一个测试项目,能够获得人工执行用例的情况和自动化测试运行的情况,以便进行对比,形成人工与自动化的对比结果,以便对测试过程进行优化;且本申请测试效率高、测试成本低,实用性强。
在本申请的一些实施例中,在上述方法中,所述记录并存储人工运行测试用例的执行过程信息包括:确定对所述待测试界面中各界面组件的人工操作信息;记录并存储所述人工操作信息,其中,所述人工操作信息包括但不限于人工对各组件的操作形式、操作顺序、在各组件内填写的信息等。
待测试界面由多个界面组件组成,如文字、图像,在这些文字和图像中承载多个填写项、可选择项等等。在人工测试时,测试工程师会将测试用例中的信息添加到待测试界面中,本申请要记录并存储人工运行测试用例的执行过程信息,不仅包括上述的具体添加到待测试界面中的内容,还包括用户进行的操作,如记录人工测试过程中,点击元素触发事件或获取焦点,获取元素的xpath路径信息,输入框里的输入内容,事件触发的后端接口返回数据,这些都会被记录下来。
以待测试项目为验证登录为例,测试工程师会在待测试界面填写用户名、密码等元素,这时可将这些信息均记录下来,具体记录的信息包括但不限于:1、用户名元素xpath:#username获取焦点;2、输入内容admin1;3、密码元素xpath:#password获取焦点;4、输入内容admin2;5、点击登录按钮元素xpath:button.signin-button;6、后端接口返回内容{data:{},status:success},如此当一个测试用例就执行完,同时整个过程被记录下来了。
在本申请的一些实施例中,为了后续解析方便,可以将这些数据按照一定的预设格式或数据结构进行存储,以便后续解析。
在本申请的一些实施例中,在上述方法中,所述运行测试插件,读取所述源测试用例及其执行过程信息,包括:确定待测试界面的若干测试项目;根据所述测试项目,在数据库中进行检索,得到与所述测试项目对应的至少一个源测试用例,并读取其执行过程信息;或,确定待测试界面的身份信息;根据所述身份信息,在数据库中进行检索,得到与所述测试项目一致的至少一个源测试用例,并读取其执行过程信息。
也就是说,当将源测试用例及其执行过程信息存在数据中时,可通过在数据库中进行检索,得到源测试用例及其执行过程信息。
一个测试用例可以针对一个待测试界面中的一个项目进行编写,也可以针对一个待测试界面编写,如果是前者,可以根据待测试界面的项目信息,如名称、身份编码等在数据库中检索确定源测试用例及其执行过程结果;如果是后者,可以直接根据待测试界面的身份信息,如软件名称、身份编码等在数据库中检索确定源测试用例及其执行过程结果。
在本申请的一些实施例中,所述解析读取的源测试用例及其执行过程信息包括:根据预设格式解析源测试用例的执行过程信息,得到多个元素及对应的元素属性值。
仍然以上述的登录验证为例,多个元素就包括用户名元素和密码元素,其中用户名元素对应的元素属性值为输入内容admin1;密码元素对应的元素属性值为输入内容admin2。
在对测试用例及其人工运行情况进行存储时,通常是以一定的预设格式或者是数据结构进行存储的,在解析读取的源测试用例及其执行过程信息中,可以依据逆向思维,采用存储时的预设格式对测试用例的执行过程信息进行解析,得到测试用例的多个元素,以及每个元素对应的元素属性值。
仍然以前述的待测试项目为验证登录为例,存储的格式可以为但不限于表1的形式。
表1:
Figure BDA0003476784060000071
Figure BDA0003476784060000081
注:表1只是示例性的说明,在实际中,通常以类似编程语法的数据结构进行存储。
表1将测试用例以及测试用例的人工执行过程均记录下来,当一个测试用例就执行完,同时整个过程被记录下来了。
当然,测试用例的描述和存储方式并不限于表1的描述方式,而能够采用任意一种描述方式。但是,一旦选择一种描述方式后,测试用例中的所有描述内容都会采用该种描述方式描述。从表1可以看出测试用例的编写和存储依据预设格式进行,并且非计算机专业人员也能读懂其描述语言。依据上述预设格式进行存储,在解析的时候,可以依据逆向思维,如采用表头为表1格式的表去过滤其中的信息,得到测试用例的元素、每个元素对应的元素属性值;进一步的,在需要的时候,也可以过滤出用户对每个元素进行的操作。在本申请的一些实施例中,在上述方法中,所述根据解析结果对测试用例进行智能化扩展包括:
根据得到的多个元素,以及各元素对应的属性值的格式,随机生成多组元素属性值;将各组中各元素属性值回归到所述源测试用例的各元素中,得到衍生测试用例。
在对测试用例进行智能化扩展的过程中,首先依据前述解析的方法,确定一个测试用例中包含几个元素,如前述的验证登录过程,共包含两个元素,其一是用户名,其二是密码。
然后随机生成多组元素属性值,每组元素属性值分别包含该测试用例的所有元素,且在生成多组元素属性值时,需要根据每个元素对应的元素属性值,确定其是否有特殊的格式要求,如果没有,后续可随机生成,如果有,则依据其特殊格式。
最后将每组元素属性值中的各元素属性值回归得到测试用例的元素对应的元素属性值中,即可得到衍生测试用例。
输入内容可以随机生成以及进行自由组合等,比如,一组测试用例的用户名为admin,密码为123456;另一组测试用例的用户名为123456,密码为admin等等,然后将这些数据回归到测试用例中,即可扩展出成千上百个相似的测试用例出来。在本申请的一些实施例中,所述方法还包括:将所述测试脚本的运行情况展示在可视化界面上,以便用户查看。
测试工程师在进行测试的过程中,有时需要查看各个测试用例的运行情况,这时可以通过可视化界面查看自动化测试运行情况。如dashboard,dashboard是商业智能仪表盘(business intelligence dashboard,BI dashboard)的简称,它是一般商业智能都拥有的实现数据可视化的模块,是向企业展示度量信息和关键业务指标(KPI)现状的数据虚拟化工具,非常适合软件的自动化测试。
在本申请的一些实施例中,在上述方法中,在所述基于扩展得到的衍生测试用例,生成测试脚本的步骤之前,还包括:获取生成的衍生测试用例的数量;响应于数量干预指令,对衍生测试用例的数量进行调整;其中,所述调整指令是人为根据已有的测试结果确定的。
也就是说,在整个自动化测试过程中,还可以进行人为的优化。测试工程师可以根据已存在的预测试用例扩展数量,即衍生测试用例的数量,以及已经跑完的测试用例的测试结果,对测试用例的数量进行人为的干预。在接到人为设置的数量干预指令,可根据该指令进一步推算合理的测试用例的数量,在进行后续测试时,对测试用例的数量进行增减。
图2示出了根据本申请另一个实施例的用户界面的自动化测试装置的流程示意图,从图2可以看出,本实施例包括:
运行谷歌浏览器,运行谷歌测试插件。
记录并存储人工运行待测试界面的源测试用例的执行过程信息,存储于数据库中。
开启自动化测试,从数据库中读取待测试界面的源测试用例及其执行过程信息。
解析源测试用例的执行过程信息,生成更多的衍生测试用例。
响应于数量干预指令,对衍生测试用例的数量进行调整。
对衍生测试用例进行脚本化,并执行新生成的脚本,得到待测试界面的自动化测试结果。
并将衍生测试用例以及测试结果存入数据库中。
从数据库中调取数据,可视化展示测试结果;此外,还可以对存储于数据库中的测试用例进行人工干预。
图3示出了根据本申请的一个实施例的用户界面的自动化测试装置的结构示意图,从图3可以看出,所述用户界面的自动化测试装置300包括:
记录单元310,用于记录并存储人工运行待测试界面的源测试用例的执行过程信息;
读取单元320,用于运行测试插件,读取所述源测试用例及其执行过程信息;
扩展单元330,用于解析读取的目标测试用例及其执行过程信息;根据解析结果进行测试用例的智能化扩展;
脚本化单元340,用于基于扩展得到的衍生测试用例,生成测试脚本;
执行单元350,用于执行所述测试脚本,得到用户界面的自动化测试结果。
在本申请的一些实施例中,在上述装置中,记录单元310,用于确定对所述待测试界面中各界面组件的人工操作信息;记录并存储所述人工操作信息,其中,所述人工操作信息包括人工对各组件的操作形式、操作顺序、在各组件内填写的信息。
在本申请的一些实施例中,在上述装置中,读取单元320,用于确定待测试界面的若干测试项目;根据所述测试项目,在数据库中进行检索,得到与所述测试项目对应的至少一个源测试用例,并读取其执行过程信息;或,确定待测试界面的身份信息;根据所述身份信息,在数据库中进行检索,得到与所述测试项目一致的至少一个源测试用例,并读取其执行过程信息。
在本申请的一些实施例中,在上述装置中,扩展单元330,用于根据预设格式解析源测试用例的执行过程信息,得到多个元素及对应的元素属性值。
在本申请的一些实施例中,在上述装置中,扩展单元330,用于随机生成多组元素属性值;将各组中各元素属性值回归到所述源测试用例中,得到衍生测试用例。
在本申请的一些实施例中,上述装置还包括:展示单元,用于将所述测试脚本的运行情况展示在可视化界面上。
在本申请的一些实施例中,上述装置还包括:用例数量调整单元,用于在所述基于扩展得到的衍生测试用例,生成测试脚本的步骤之前,获取生成的衍生测试用例的数量;响应于数量干预指令,对衍生测试用例的数量进行调整,其中,所述调整指令是人为根据已有的测试结果确定的。
能够理解,上述用户界面的自动化测试装置,能够实现前述实施例中提供的用户界面的自动化测试方法的各个步骤,关于用户界面的自动化测试方法的相关阐释均适用于用户界面的自动化测试装置,此处不再赘述。
图4是本申请的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成用户界面的自动化测试装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
记录并存储人工运行待测试界面的源测试用例的执行过程信息;
运行测试插件,读取所述源测试用例及其执行过程信息;
解析读取的源测试用例及其执行过程信息,根据解析结果进行测试用例的智能化扩展;
基于扩展得到的衍生测试用例,生成测试脚本;
执行所述测试脚本,得到用户界面的自动化测试结果。
上述如本申请图3所示实施例揭示的用户界面的自动化测试装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图3中用户界面的自动化测试装置执行的方法,并实现用户界面的自动化测试装置在图3所示实施例的功能,本申请实施例在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图3所示实施例中用户界面的自动化测试装置执行的方法,并具体用于执行:
记录并存储人工运行待测试界面的源测试用例的执行过程信息;
运行测试插件,读取所述源测试用例及其执行过程信息;
解析读取的源测试用例及其执行过程信息,根据解析结果进行测试用例的智能化扩展;
基于扩展得到的衍生测试用例,生成测试脚本;
执行所述测试脚本,得到用户界面的自动化测试结果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种用户界面的自动化测试方法,其特征在于,包括:
记录并存储人工运行待测试界面的源测试用例的执行过程信息;
运行测试插件,读取所述源测试用例及其执行过程信息;
解析读取的源测试用例及其执行过程信息,根据解析结果进行测试用例的智能化扩展;
基于扩展得到的衍生测试用例,生成测试脚本;
执行所述测试脚本,得到用户界面的自动化测试结果。
2.根据权利要求1所述的方法,其特征在于,所述记录并存储人工运行测试用例的执行过程信息包括:
确定对所述待测试界面中各界面组件的人工操作信息;
记录并存储所述人工操作信息,其中,所述人工操作信息包括人工对各组件的操作形式、操作顺序、在各组件内填写的信息。
3.根据权利要求1所述的方法,其特征在于,所述运行测试插件,读取所述源测试用例及其执行过程信息,包括:
确定待测试界面的若干测试项目;根据所述测试项目,在数据库中进行检索,得到与所述测试项目对应的至少一个源测试用例,并读取其执行过程信息;
或,
确定待测试界面的身份信息;根据所述身份信息,在数据库中进行检索,得到与所述测试项目一致的至少一个源测试用例,并读取其执行过程信息。
4.根据权利要求1所述的方法,其特征在于,所述解析读取的源测试用例及其执行过程信息,包括:
根据预设格式解析源测试用例的执行过程信息,得到多个元素及对应的元素属性值。
5.根据权利要求4所述的方法,其特征在于,所述根据解析结果对测试用例进行智能化扩展包括:
根据得到的多个元素,以及各元素对应的属性值的格式,随机生成多组元素属性值;
将各组中各元素属性值回归到所述源测试用例的各元素中,得到衍生测试用例。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述测试脚本的运行情况展示在可视化界面上。
7.根据权利要求1所述的方法,其特征在于,在所述基于扩展得到的衍生测试用例,生成测试脚本的步骤之前,还包括:
获取生成的衍生测试用例的数量;
响应于数量干预指令,对衍生测试用例的数量进行调整,其中,所述调整指令是人为根据已有的测试结果确定的。
8.一种用户界面的自动化测试装置,其特征在于,所述装置包括:
记录单元,用于记录并存储人工运行待测试界面的源测试用例的执行过程信息;
读取单元,用于运行测试插件,读取所述源测试用例及其执行过程信息;
扩展单元,用于解析读取的目标测试用例及其执行过程信息;根据解析结果进行测试用例的智能化扩展;
脚本化单元,用于基于扩展得到的衍生测试用例,生成测试脚本;
执行单元,用于执行所述测试脚本,得到用户界面的自动化测试结果。
9.一种电子设备,包括:
处理器;以及
存储有计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行所述权利要求1~7任一项所述方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个计算机程序,所述一个或多个计算机程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行所述权利要求1~7任一项所述方法。
CN202210057030.0A 2022-01-18 2022-01-18 用户界面的自动化测试方法、装置、电子设备及存储介质 Pending CN114398283A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210057030.0A CN114398283A (zh) 2022-01-18 2022-01-18 用户界面的自动化测试方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210057030.0A CN114398283A (zh) 2022-01-18 2022-01-18 用户界面的自动化测试方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114398283A true CN114398283A (zh) 2022-04-26

Family

ID=81230610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210057030.0A Pending CN114398283A (zh) 2022-01-18 2022-01-18 用户界面的自动化测试方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114398283A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468050A (zh) * 2021-06-30 2021-10-01 杭州群核信息技术有限公司 基于画布的测试方法、装置、计算机设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468050A (zh) * 2021-06-30 2021-10-01 杭州群核信息技术有限公司 基于画布的测试方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN110309071B (zh) 测试代码的生成方法及模块、测试方法及***
CN109614324B (zh) 一种测试用例生成方法和装置
CN109542789B (zh) 一种代码覆盖率统计方法及装置
CN104035863B (zh) 一种浏览器测试方法及装置
CN108804305A (zh) 一种自动化测试的方法及装置
CN113051155A (zh) 一种自动化测试平台的控制***和控制方法
CN112433948A (zh) 一种基于网络数据分析的仿真测试***及方法
CN107480056B (zh) 一种软件测试方法和装置
CN106959919B (zh) 基于测试路径图的软件测试方法及装置
CN114398283A (zh) 用户界面的自动化测试方法、装置、电子设备及存储介质
US8850407B2 (en) Test script generation
US11106571B2 (en) Identification of input object in a graphical user interface
EP4261692A1 (en) Self-learning application test automation
CN112306870A (zh) 一种基于直播app的数据处理方法和装置
CN116383025A (zh) 基于Jmeter的性能测试方法、装置、设备及介质
CN111382069A (zh) 一种数据流测试方法及***
CN114490413A (zh) 测试数据的准备方法及装置、存储介质和电子设备
CN109857665B (zh) 一种测试用例的测试执行方法及装置
CN113672509A (zh) 自动化测试方法、装置、测试平台及存储介质
CN107844484B (zh) 一种识别曝光代码的方法和装置
Chen et al. Research on Page Object Generation Approach for Web Application Testing.
CN117827644A (zh) 自动化测试方法、自动化测试装置
CN110825628A (zh) 一种基于流程图生成测试脚本的方法及装置
CN116089191A (zh) 接口测试方法、装置、处理器及电子设备
CN117931632A (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