CN114721964A - 一种测试用例的自动生成方法、装置、设备及介质 - Google Patents

一种测试用例的自动生成方法、装置、设备及介质 Download PDF

Info

Publication number
CN114721964A
CN114721964A CN202210440383.9A CN202210440383A CN114721964A CN 114721964 A CN114721964 A CN 114721964A CN 202210440383 A CN202210440383 A CN 202210440383A CN 114721964 A CN114721964 A CN 114721964A
Authority
CN
China
Prior art keywords
information
data
node
type
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.)
Pending
Application number
CN202210440383.9A
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 International Financial Leasing Co Ltd
Original Assignee
Ping An International Financial Leasing 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 Ping An International Financial Leasing Co Ltd filed Critical Ping An International Financial Leasing Co Ltd
Priority to CN202210440383.9A priority Critical patent/CN114721964A/zh
Publication of CN114721964A publication Critical patent/CN114721964A/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种测试用例的自动生成方法、装置、设备及介质。其中,该方法包括:通过信息提取插件获取浏览器构建的页面的DOM结构;其中,所述信息提取插件为预先安装以进行操作信息抓取和元素信息抓取的插件;基于监听函数对用户在页面中的操作信息进行监听,以获取操作类型以及操作目标元素;提取所述操作目标元素的信息,并进行筛选得到操作目标元素的类型和数据;将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例。本技术方案,能够通过对操作行为、操作目标元素以及数据的分别获取,实现了用例录制过程的解耦,提高了用例录制的灵活性,减小了用例的体积。

Description

一种测试用例的自动生成方法、装置、设备及介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种测试用例的自动生成方法、装置、设备及介质。
背景技术
随着移动互联网技术的迅速发展,各种应用在编写完成后的测试需求也在逐渐增多。
自动化测试由于其效率较高,所以很受业内人士的青睐。然而,在自动化测试过程中,测试人员需要对用户操作进行定位,并定位用户操作的对象,例如页面中的某个元素,这就造成了测试人员需要具有一定的代码功底。而且在用例录制过程中需要将整个操作过程全部录制下来,这就造成操作行为和操作元素在录制过程中是固定的,所以用例的空间占用较大。
因此,如何能够降低测试人员的操作门槛,以及减小测试用例的占用空间,灵活的进行测试用例的录制,成为了业内亟待解决的技术难题。
发明内容
本发明提供了一种测试用例的自动生成方法、装置、设备及介质,能够通过对操作行为、操作目标元素以及数据的分别获取,实现了用例录制过程的解耦,提高了用例录制的灵活性,减小了用例的体积。
根据本发明的一方面,提供了一种测试用例的自动生成方法,所述方法包括:
通过信息提取插件获取浏览器构建的页面的DOM结构;其中,所述信息提取插件为预先安装以进行操作信息抓取和元素信息抓取的插件;
基于监听函数对用户在页面中的操作信息进行监听,以获取操作类型以及操作目标元素;
提取所述操作目标元素的信息,并进行筛选得到操作目标元素的类型和数据;
将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例。
可选的,基于监听函数对用户在页面中的操作信息进行监听,以获取操作类型以及操作目标元素,包括:
通过监听函数读取DOM结构根节点的接收信息;其中,所述接收信息是基于用户的操作行为由子节点产生并上报给DOM结构根节点进行处理的信息;
基于所述接收信息确定用户在页面中的操作类型以及操作目标元素。
可选的,提取所述操作目标元素的信息,并进行筛选得到操作目标元素的类型和数据,包括:
基于DOM结构提取操作目标元素的节点位置以及节点数据;
读取节点位置标注的节点类型以得到操作目标元素的类型,并基于节点数据确定操作目标元素的数据。
可选的,所述元素类型包括图片类型、文字类型、按键类型以及输入框类型;
所述操作目标元素的数据包括元素坐标、元素尺寸以及元素内容数据中的至少一种。
可选的,所述预先初始化的测试用例流程是采用可视化流程图进行显示的,所述测试用例流程中的每个测试单元采用用例节点显示;
相应的,在将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例之后,所述方法还包括:
响应于可视化流程图的用例节点修改操作,对所述用例节点封装元素类型以及数据进行修改;
基于修改后的用例节点构建成测试用例。
可选的,对用例节点修改操作包括修改用例节点的元素类型以及数据;
相应的,基于修改后的用例节点构建成测试用例,包括:
基于用例节点修改操作,得到正用例节点和反用例节点,并构建得到正测试用例和反测试用例。
根据本发明的另一方面,提供了一种测试用例的自动生成装置,包括:
获取模块,用于通过信息提取插件获取浏览器构建的页面的DOM结构;其中,所述信息提取插件为预先安装以进行操作信息抓取和元素信息抓取的插件;
监听模块,用于基于监听函数对用户在页面中的操作信息进行监听,以获取操作类型以及操作目标元素;
筛选模块,用于提取所述操作目标元素的信息,并进行筛选得到操作目标元素的类型和数据;
测试用例得到模块,用于将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的测试用例的自动生成方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的测试用例的自动生成方法。
本发明实施例的技术方案,通过信息提取插件获取浏览器构建的页面的DOM结构;基于监听函数对用户在页面中的操作信息进行监听,以获取操作类型以及操作目标元素;提取所述操作目标元素的信息,并进行筛选得到操作目标元素的类型和数据;将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例。本技术方案,能够通过对操作行为、操作目标元素以及数据的分别获取,实现了用例录制过程的解耦,提高了用例录制的灵活性,减小了用例的体积。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种测试用例的自动生成方法的流程图;
图2是根据本发明实施例二提供的一种测试用例的自动生成方法的流程图;
图3是根据本发明实施例三提供的一种测试用例的自动生成装置的结构示意图;
图4是根据本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供了一种测试用例的自动生成方法的流程图,本实施例可适用于自动生成测试用例的情况,该方法可以由测试用例的自动生成装置来执行,该测试用例的自动生成装置可以采用硬件和/或软件的形式实现,该测试用例的自动生成装置可配置于进行测试用例录制的电子设备中。如图1所示,该方法包括:
S110,通过信息提取插件获取浏览器构建的页面的DOM结构;其中,所述信息提取插件为预先安装以进行操作信息抓取和元素信息抓取的插件。
本实施例的技术方案可以由自动化测试平台执行。自动化测试平台可以配置于前段电子设备,也可以配置于后端服务器。自动化测试平台可以与信息提取插件连接,用以通过信息提取插件来获取生成测试用例所需要的信息。开发人员或产品经理等用户可以打开浏览器,通过手动或自动的方式开启信息提取插件;通过信息提取插件提取到的操作信息、操作目标元素以及数据封装至预先初始化的测试用例流程,从而得到测试用例。本方案能够通过对操作行为、操作目标元素以及数据的分别获取,实现了用例录制过程的解耦,提高了用例录制的灵活性,减小了用例的体积。
其中,信息提取插件可以为预先安装以进行操作信息抓取和元素信息抓取的插件。信息提取插件可以设置在浏览器中,可以设置自动开启或者手动开启两种开启方式。若为自动开启,则在浏览器打开时,或者浏览器打开某一测试页面时,就开启信息提取插件。若为手动开启,则需要用户通过手动点击类似于“开始录制”的按钮来开启。信息提取插件的作用是提取当前元素的定位,获取元素类型,保存用户对元素的操作,并且将数据返回自动化测试平台。
信息提取插件可以在当前浏览器根据用户在页面中的操作步骤,逐个操作获取操作信息,并在用户完成操作之后,基于页面的关闭,或者浏览器的关闭,或者用户的手动操作,来关闭信息提取插件。
其中,页面可以是浏览器构建的任意页面,也就是需要基于测试用例进行性能测试的页面,例如,搜索页面。本实施例中可以通过DOM结构把文档中所有的内容看成是一棵树。DOM结构描绘了一个层次化的节点树,本方案中,一个DOM结构对应一个页面。由于用户每次在页面上操作DOM,浏览器都会将用户操作事件上传到根节点以供浏览器进行处理,利用浏览器的这种特性,本方案提供的信息提取插件可以先通过document.documentElement获取当前页面的根节点。本实施例中自动化测试平台通过信息提取插件获取浏览器构建的页面,当页面打开时,可以通过获取DOM结构提取到整个页面的元素。
其中,操作信息可以是在当前浏览器的页面中用户根据测试步骤进行的操作行为信息,例如是点击操作,输入操作或者拖动操作等。元素信息可以是当前页面中的所有的元素。
本实施例中可以通过改造seleiumeIDE的源码,将信息提取插件和自动化测试平台绑定,通过配置明确业务类型,根据业务类型仅提取用户操作过程中涉及到的元素的类型、数据和用户的操作类型,并将数据返回给测试平台。此处,例如业务类型为对某一页面的按键响应逻辑进行测试,则可以在通过信息提取插件提取用户的操作信息时,仅提取用户的点击操作,进而获取点击操作的发生位置,以确定操作目标元素,进而确定操作目标元素所关联的目标页面。通过这样的配置,可以在用户进行整个页面的各种类型操作时,仅仅提取感兴趣的操作,从而更大程度的减小了数据的提取数量和提高了有效数据的占比。
S120,基于监听函数对用户在页面中的操作信息进行监听,以获取操作类型以及操作目标元素。
其中,监听函数可以是用来对用户在页面中发出的操作事件进行监听的函数,其可以部署在页面运行的整个功能代码中。本方案中,具体的,监听函数可以是addEventListener()。
操作类型可以是操作元素的事件类型,还可以获取操作时间等信息。操作目标元素可以包含DOM元素信息、DOM元素路径、元素尺寸以及坐标等元素信息。本实施例中信息提取插件通过document.documentElement获取根节点,然后在根节点通过监听函数addEventListener()对用户在页面中的操作信息进行监听,通过监听可以反向获取到用户操作元素的事件类型、操作时间以及操作目标元素。
S130,提取所述操作目标元素的信息,并进行筛选得到操作目标元素的类型和数据。
其中,操作目标元素的信息可以是在页面的DOM结构中,基于操作目标元素的元素节点关联的数据等信息来得到的。例如该元素节点关联有该元素的类型、数据等信息。操作目标元素可以是当前页面中操作信息的发生位置对应的操作元素。元素类型可以包括图片类型、文字类型、按键类型以及输入框类型等。操作目标元素的数据可以包括元素坐标、元素尺寸以及元素内容数据中的至少一种。示例性的,以按键为例,其数据可以包括操作目标元素所在的层级以及在显示屏中的位置;比如操作目标元素为输入框,会有输入数据的值单独作为一个数据;操作目标元素为图片,其数据可以是二进制的字节流;操作目标元素为文字,其数据可以是字符串。
本实施例中,自动化测试平台通过信息提取插件提取到操作目标元素的信息,并对获取的信息进行筛选提炼,从而得到操作目标元素的类型和数据。
S140,将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例。
其中,预先初始化的测试用例流程可以是不包含具体内容的测试用例框架。预先初始化的测试用例流程可以是采用可视化流程图进行显示的,测试用例流程中的每个测试单元可以是采用用例节点显示的。
本方案中,测试用例流程可以是由自动化测试平台生成的。例如用户可以根据测试项目的需求,预先搭建好测试用例的框架,其中可以包含一个或者多个测试单元,每一个测试单元都可输入相应的内容,例如用户的操作信息,操作目标元素的信息以及数据,从而得到实例化之后的用例节点。可以理解的,初始化过程,即为对测试用例流程的搭建或者已有内容的清除过程。
具体的,本实施例中利用django+python+seleiume webUI自动化测试框架搭建测试平台,对操作步骤进行封装,只需通过信息提取插件获取元素参数即可自动生成测试用例。
本实施例中自动化测试平台将操作信息、元素类型以及数据封装至与预先初始化的测试用例流程,从而得到测试用例。
本发明实施例的技术方案,通过信息提取插件获取浏览器构建的页面的DOM结构;基于监听函数对用户在页面中的操作信息进行监听,以获取操作类型以及操作目标元素;提取所述操作目标元素的信息,并进行筛选得到操作目标元素的类型和数据;将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例。本技术方案,能够通过对操作行为、操作目标元素以及数据的分别获取,实现了用例录制过程的解耦,提高了用例录制的灵活性,减小了用例的体积。
实施例二
图2为本发明实施例二提供的一种测试用例的自动生成方法的流程图,本实施例以上述实施例为基础进行优化。具体优化为:通过监听函数对用户在页面中的操作信息进行监听,以获取操作类型以及操作目标元素,包括:通过监听函数读取DOM结构根节点的接收信息;其中,所述接收信息是基于用户的操作行为由子节点产生并上报给DOM结构根节点进行处理的信息;基于所述接收信息确定用户在页面中的操作类型以及操作目标元素。
如图2所示,本实施例的方法具体包括如下步骤:
S210,通过信息提取插件获取浏览器构建的页面的DOM结构;其中,所述信息提取插件为预先安装以进行操作信息抓取和元素信息抓取的插件。
S220,通过监听函数读取DOM结构根节点的接收信息;其中,所述接收信息是基于用户的操作行为由子节点产生并上报给DOM结构根节点进行处理的信息。
其中,监听函数可以是用来对用户在页面中发出的操作事件进行监听的函数,其可以部署在页面运行的整个功能代码中。本方案中,具体的,监听函数可以是addEventListener()。接收信息可以是基于用户的操作行为由子节点产生并上报给DOM结构根节点进行处理的信息。本实施例中自动化测试平台根据元素提取插件在根节点通过监听函数addEventListener()对用户的操作事件进行监听,读取DOM结构根节点的基于用户的操作行为由子节点产生并上报给DOM结构根节点进行处理的信息。
S230,基于所述接收信息确定用户在页面中的操作类型以及操作目标元素。
本实施例中自动化测试平台根据元素提取插件在根节点通过监听函数addEventListener()对用户的操作事件进行监听,读取DOM结构根节点的基于用户的操作行为由子节点产生并上报给DOM结构根节点进行处理的信息;并基于接收信息确定用户在页面中的操作类型以及操作目标元素。本方案通过这样的设置,通过信息提取插件确定用户在页面中的操作类型以及操作目标元素,不需要任何代码基础,更加方便。
S240,提取所述操作目标元素的信息,并进行筛选得到操作目标元素的类型和数据。
S250,将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例。
本发明实施例的技术方案,通过信息提取插件获取浏览器构建的页面的DOM结构;通过监听函数读取DOM结构根节点的接收信息;其中,所述接收信息是基于用户的操作行为由子节点产生并上报给DOM结构根节点进行处理的信息;基于所述接收信息确定用户在页面中的操作类型以及操作目标元素。提取所述操作目标元素的信息,并进行筛选得到操作目标元素的类型和数据。将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例。本技术方案,能够通过对操作行为、操作目标元素以及数据的分别获取,实现了用例录制过程的解耦,提高了用例录制的灵活性,减小了用例的体积。同时,也通过对测试用例流程的初始化,使得被解耦的数据能够放到测试用例流程中,实现对测试用例的灵活设置。
在本实施例中,可选的,提取所述操作目标元素的信息,并进行筛选得到操作目标元素的类型和数据,包括:基于DOM结构提取操作目标元素的节点位置以及节点数据;读取节点位置标注的节点类型以得到操作目标元素的类型,并基于节点数据确定操作目标元素的数据。
其中,节点位置可以是当前页面中的操作的目标元素的位置。节点数据可以包含当前页面中的操作目标元素的坐标信息、尺寸以及节点内容数据等。节点类型可以是当前页面中的操作的目标元素的位置标注的类型。本实施例中自动化测试平台根据信息提取插件基于DOM结构提取操作目标元素的节点位置以及节点数据,读取节点位置标注的节点类型以得到页面中操作目标元素的类型,并根据节点数据确定操作目标元素的数据。
本方案通过这样的设置,可以通过信息提取插件可以仅提取到用户操作过程中涉及到的元素的类型、数据和用户的操作类型;本实施例中信息提取插件还可以将提取到的数据和元素以及逻辑参数分开传入页面,在页面可视化配置,则避免了脚本录制过程中业务、数据难以分离的缺点。
在本实施例中,可选的,所述元素类型包括图片类型、文字类型、按键类型以及输入框类型;所述操作目标元素的数据包括元素坐标、元素尺寸以及元素内容数据中的至少一种。
本方案通过这样的设置,能够基于信息提取插件获取到当前页面操作的具体的元素类型以及操作目标元素的数据信息,没有代码基础的人员也可以轻松上手,也更加方便想要学习自动化测试的人员。
在本实施例中,可选的,所述预先初始化的测试用例流程是采用可视化流程图进行显示的,所述测试用例流程中的每个测试单元采用用例节点显示;相应的,在将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例之后,所述方法还包括:响应于可视化流程图的用例节点修改操作,对所述用例节点封装元素类型以及数据进行修改;基于修改后的用例节点构建成测试用例。
其中,本实施例中的预先初始化的测试用例流程可以是采用可视化流程图进行显示,测试用例流程中的每个测试单元采用用例节点显示。用例节点修改操作可以是开发人员或产品经理对当前的用例进行修改的操作;例如,修改用例节点的元素类型以及数据等内容。本实施例中自动化测试平台响应于用户对可视化流程图的用例节点的修改操作,对用例节点封装元素类型以及数据进行修改,并根据修改后的用例节点构建成新的测试用例。
具体的,本实施例中自动化测试平台根据信息提取插件获取的所有元素类型和数据生成测试用例流程图,进入用例编辑页面,还可以根据得到的测试用例,在用例关系配置化页面对元素的类型、输入的数据以及逻辑关系进行更改,该操作只需要选择元素之后,点击页面已经配置封装好的对应关系即可,从而可以支持参数化批量生成测试用例。
本方案通过这样的设置,能够对信息提取插件提取的元素类型以及数据进行修改,从而可以根据元素配置化生成多个测试用例,测试人员只需要配置化修改对应逻辑,即可生成测试用例,也提高了用例录制的灵活性。
在本实施例中,可选的,对用例节点修改操作包括修改用例节点的元素类型以及数据;相应的,基于修改后的用例节点构建成测试用例,包括:基于用例节点修改操作,得到正用例节点和反用例节点,并构建得到正测试用例和反测试用例。
其中,正用例节点和反用例节点都可以通过修改用例节点操作得到。反测试用例可以通过勾选是否生成反向测试用例,就能够生成反测试用例。正测试用例可以是正确的测试用例,测试进行得到的结果和预期的结果相符,则说明该正测试用例通过测试。示例性的,以元素类型为输入框为例,输入框的内容原本为10,现在将输入框的内容修改为11,看当前测试用例是否报错。此外,反测试用例还可以涉及到逻辑的变更。本实施例中自动化测试平台可以根据用户的修改当前的用例,修改用例节点的类型以及数据,并且可以由当前用例,修改部分数据,就可以生成多个正反用例。
本方案通过这样的设置,用户只要根据已有的测试用例,就可以以添加参数的方式生成多个正反向测试用例,有利于提高测试覆盖率。
在本实施例中,可选的,在通过信息提取插件获取浏览器构建的页面的DOM结构之前,所述方法还包括:获取信息提取插件的插件标识信息以及插件通信协议;基于所述插件标识信息以及插件通信协议,与所述信息提取插件进行绑定。
其中,插件标识信息可以是能够体现信息提取插件的身份的标识信息;插件通信协议可以是能够与信息提取插件进行通信的协议。本实施例中自动化测试平台可以获取信息提取插件的插件标识信息以及插件通信协议,从而与信息提取插件进行绑定。
本方案通过这样的设置,自动化测试平台通过信息提取插件的插件标识信息以及插件通信协议进行绑定,便于通过信息提取插件进行提取元素等信息。
实施例三
图3为本发明实施例三提供的一种测试用例的自动生成装置的结构示意图,该装置可执行本发明任意实施例所提供的测试用例的自动生成方法,具备执行方法相应的功能模块和有益效果。如图3所示,该装置包括:
获取模块310,用于通过信息提取插件获取浏览器构建的页面的DOM结构;其中,所述信息提取插件为预先安装以进行操作信息抓取和元素信息抓取的插件;
监听模块320,用于基于监听函数对用户在页面中的操作信息进行监听,以获取操作类型以及操作目标元素;
筛选模块330,用于提取所述操作目标元素的信息,并进行筛选得到操作目标元素的类型和数据;
测试用例得到模块340,用于将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例。
可选的,监听模块320,具体用于:
通过监听函数读取DOM结构根节点的接收信息;其中,所述接收信息是基于用户的操作行为由子节点产生并上报给DOM结构根节点进行处理的信息;
基于所述接收信息确定用户在页面中的操作类型以及操作目标元素。
可选的,筛选模块330,具体用于:
基于DOM结构提取操作目标元素的节点位置以及节点数据;
读取节点位置标注的节点类型以得到操作目标元素的类型,并基于节点数据确定操作目标元素的数据。
可选的,所述元素类型包括图片类型、文字类型、按键类型以及输入框类型;所述操作目标元素的数据包括元素坐标、元素尺寸以及元素内容数据中的至少一种。
可选的,所述预先初始化的测试用例流程是采用可视化流程图进行显示的,所述测试用例流程中的每个测试单元采用用例节点显示;
相应的,所述装置还包括:修改模块,包括:
响应修改单元,用于在将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例之后,响应于可视化流程图的用例节点修改操作,对所述用例节点封装元素类型以及数据进行修改。
测试用例构建单元,用于基于修改后的用例节点构建成测试用例。
可选的,对用例节点修改操作包括修改用例节点的元素类型以及数据。
相应的,测试用例构建单元,具体用于:
基于用例节点修改操作,得到正用例节点和反用例节点,并构建得到正测试用例和反测试用例。
可选的,所述装置还包括:
插件信息获取模块,用于在通过信息提取插件获取浏览器构建的页面的DOM结构之前,获取信息提取插件的插件标识信息以及插件通信协议;
绑定模块,用于基于所述插件标识信息以及插件通信协议,与所述信息提取插件进行绑定。
本发明实施例所提供的一种测试用例的自动生成装置可执行本发明任意实施例所提供的一种测试用例的自动生成方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如测试用例的自动生成方法。
在一些实施例中,方法测试用例的自动生成可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的测试用例的自动生成方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行测试用例的自动生成方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种测试用例的自动生成方法,其特征在于,所述方法包括:
通过信息提取插件获取浏览器构建的页面的DOM结构;其中,所述信息提取插件为预先安装以进行操作信息抓取和元素信息抓取的插件;
基于监听函数对用户在页面中的操作信息进行监听,以获取操作类型以及操作目标元素;
提取所述操作目标元素的信息,并进行筛选得到操作目标元素的类型和数据;
将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例。
2.根据权利要求1所述的方法,其特征在于,基于监听函数对用户在页面中的操作信息进行监听,以获取操作类型以及操作目标元素,包括:
通过监听函数读取DOM结构根节点的接收信息;其中,所述接收信息是基于用户的操作行为由子节点产生并上报给DOM结构根节点进行处理的信息;
基于所述接收信息确定用户在页面中的操作类型以及操作目标元素。
3.根据权利要求1所述的方法,其特征在于,提取所述操作目标元素的信息,并进行筛选得到操作目标元素的类型和数据,包括:
基于DOM结构提取操作目标元素的节点位置以及节点数据;
读取节点位置标注的节点类型以得到操作目标元素的类型,并基于节点数据确定操作目标元素的数据。
4.根据权利要求3所述的方法,其特征在于,所述元素类型包括图片类型、文字类型、按键类型以及输入框类型;
所述操作目标元素的数据包括元素坐标、元素尺寸以及元素内容数据中的至少一种。
5.根据权利要求1所述的方法,其特征在于,所述预先初始化的测试用例流程是采用可视化流程图进行显示的,所述测试用例流程中的每个测试单元采用用例节点显示;
相应的,在将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例之后,所述方法还包括:
响应于可视化流程图的用例节点修改操作,对所述用例节点封装元素类型以及数据进行修改;
基于修改后的用例节点构建成测试用例。
6.根据权利要求5所述的方法,其特征在于,对用例节点修改操作包括修改用例节点的元素类型以及数据;
相应的,基于修改后的用例节点构建成测试用例,包括:
基于用例节点修改操作,得到正用例节点和反用例节点,并构建得到正测试用例和反测试用例。
7.根据权利要求1所述的方法,其特征在于,在通过信息提取插件获取浏览器构建的页面的DOM结构之前,所述方法还包括:
获取信息提取插件的插件标识信息以及插件通信协议;
基于所述插件标识信息以及插件通信协议,与所述信息提取插件进行绑定。
8.一种测试用例的自动生成装置,其特征在于,所述装置包括:
获取模块,用于通过信息提取插件获取浏览器构建的页面的DOM结构;其中,所述信息提取插件为预先安装以进行操作信息抓取和元素信息抓取的插件;
监听模块,用于基于监听函数对用户在页面中的操作信息进行监听,以获取操作类型以及操作目标元素;
筛选模块,用于提取所述操作目标元素的信息,并进行筛选得到操作目标元素的类型和数据;测试用例得到模块,用于将所述操作信息、所述元素类型以及所述数据封装至预先初始化的测试用例流程,得到测试用例。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的测试用例的自动生成方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的测试用例的自动生成方法。
CN202210440383.9A 2022-04-25 2022-04-25 一种测试用例的自动生成方法、装置、设备及介质 Pending CN114721964A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210440383.9A CN114721964A (zh) 2022-04-25 2022-04-25 一种测试用例的自动生成方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210440383.9A CN114721964A (zh) 2022-04-25 2022-04-25 一种测试用例的自动生成方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN114721964A true CN114721964A (zh) 2022-07-08

Family

ID=82245322

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210440383.9A Pending CN114721964A (zh) 2022-04-25 2022-04-25 一种测试用例的自动生成方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114721964A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116776024A (zh) * 2023-05-24 2023-09-19 深圳海规网络科技有限公司 页面自动化实现方法、装置、计算机设备及存储介质
CN118520191A (zh) * 2024-07-23 2024-08-20 深圳市银雁科技有限公司 一种网页元素的处理方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116776024A (zh) * 2023-05-24 2023-09-19 深圳海规网络科技有限公司 页面自动化实现方法、装置、计算机设备及存储介质
CN118520191A (zh) * 2024-07-23 2024-08-20 深圳市银雁科技有限公司 一种网页元素的处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN114721964A (zh) 一种测试用例的自动生成方法、装置、设备及介质
US8745521B2 (en) System and method for annotating graphical user interface
CN112835579A (zh) 确定界面代码的方法、装置、电子设备和存储介质
CN113963186A (zh) 目标检测模型的训练方法、目标检测方法及相关装置
CN115618234A (zh) 一种模型训练方法、装置、设备及存储介质
CN114445047A (zh) 工作流生成方法、装置、电子设备及存储介质
CN112199261A (zh) 应用程序性能分析方法及装置、电子设备
CN117724980A (zh) 软件框架性能的测试方法、装置、电子设备和存储介质
CN112597012A (zh) 应用程序的遍历方法、装置、电子设备和存储介质
CN115905016A (zh) 一种BIOS Setup搜索功能测试方法、装置、电子设备及存储介质
CN115186738B (zh) 模型训练方法、装置和存储介质
CN116089308A (zh) 一种软件测试用例的生成方法、装置、设备及介质
CN114168119B (zh) 代码文件编辑方法、装置、电子设备以及存储介质
CN116150517A (zh) 页面处理方法及装置、电子设备和介质
CN115665285A (zh) 数据处理方法、装置、电子设备及存储介质
CN115328736A (zh) 一种探针部署方法、装置、设备和存储介质
CN114428747A (zh) 一种用户界面测试方法、装置、服务器及存储介质
CN109948251B (zh) 基于cad的数据处理方法、装置、设备及存储介质
CN114912582A (zh) 模型生产方法、装置、电子设备以及存储介质
CN113495753B (zh) 项目的标签获取方法、装置、电子设备及存储介质
CN113835893B (zh) 数据处理的方法、装置、设备、存储介质及程序产品
CN115242688B (zh) 一种网络故障检测方法、装置以及介质
CN116225943A (zh) 交互界面测试方法、装置、电子设备及存储介质
CN117251196A (zh) 一种数据维护方法、装置、设备及存储介质
CN115687141A (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