CN114297055A - 一种基于智能学习的WebUI自动化测试方法 - Google Patents
一种基于智能学习的WebUI自动化测试方法 Download PDFInfo
- Publication number
- CN114297055A CN114297055A CN202111553559.3A CN202111553559A CN114297055A CN 114297055 A CN114297055 A CN 114297055A CN 202111553559 A CN202111553559 A CN 202111553559A CN 114297055 A CN114297055 A CN 114297055A
- Authority
- CN
- China
- Prior art keywords
- test
- item
- tested
- node information
- intelligent learning
- 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.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 362
- 230000006870 function Effects 0.000 claims description 49
- 238000000034 method Methods 0.000 claims description 47
- 230000008569 process Effects 0.000 claims description 38
- 238000013515 script Methods 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 12
- 238000012423 maintenance Methods 0.000 description 10
- 230000002159 abnormal effect Effects 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种基于智能学习的WebUI自动化测试方法,包括录制功能模块的节点信息;生成功能模块导航路径,生成关键节点信息;向待测试项进行多次传值以进行第一阶段智能学习,得到第一测试规格和第一测试项;根据待学习路径获取功能模块的标签,并将标签存储在待测试项中;依次遍历待测试项,以进行第二阶段智能学习,得到第二测试规格和第二测试项;第二测试项与第一测试项不同;根据第一测试规格、至少一个第一测试项、第二测试规格以及至少一个第二测试项输出正向测试用例、反向测试用例及输入规格。本申请只需一次简单的页面配置操作即可自动生成测试结果与测试报告,解决了目前WebUI自动化测试开发成本高且对专业要求高的问题。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种基于智能学习的WebUI自动化测试方法。
背景技术
WebUI即网络产品界面Website User Interface的简称,一般包括常见的网站设计如电商网站、社交网站、网络软件如邮箱、Saas(Software-as-a-Service的缩写名称,意思为软件即服务,也就是通过网络提供软件服务)产品等的界面设计。WebUI设计与常见网站建设的区别是,常见的网站建设是以功能为中心进行设计的,而WebUI更注重人与网站的互动和体验,是以人为中心进行设计的。为确保这些网站或网络软件的界面能为用户提供正常的访问或浏览功能,对其进行测试显得非常重要。
目前WebUI自动化测试主要包括正向测试和反向测试(又称为异常测试),一种实现方式中,自动化测试主要依靠手动获取当前测试页面(html)的具体代码信息。例如,首先需要打开浏览器及开启开发者工具,之后选择具体输入框,再找到该输入框的具体id或者name或者绝对路径(xpath),以进行元素定位。元素定位后,开发人员对输入框进行单独传值,根据人工传值的过程及结果形成测试用例,最后用测试用例对系统进行测试,以生成测试结果及测试报告。但以上操作需要对于专业技术有较高的要求,而且非常耗时,开发成本非常高。
此外,在进行反向测试(异常测试)时,一个简单的输入框就可能有10种异常测试点,这些异常测试点都需要研发人员手动根据当前页面功能进行异常测试用例开发,工作量可能是正向测试的几倍,并且当该测试页面增加其他配置项或修改其他元素时,对于后续维护工作也是非常困难,综上,目前WebUI自动化测试的开发成本非常高且对自动化测试专业要求很高,维护不方便。
发明内容
本申请提供一种基于智能学习的WebUI自动化测试方法,以解决目前WebUI自动化测试开发成本高且对自动化测试专业要求高、维护不方便的问题。
一种基于智能学习的WebUI自动化测试方法,包括:
一种基于智能学习的WebUI自动化测试方法,包括:
录制用户在被测试页面上点击过的所有功能模块的节点信息,所述节点信息为在所有所述功能模块的对应操作的集合;
根据所述节点信息生成所述被测试页面的功能模块导航路径,以及,根据所述节点信息生成关键节点信息,所述关键节点信息为被测试页面中待测试项的集合,所述待测试项是所述被测试页面中要进行测试的一个或多个功能模块;
将多个所述功能模块导航路径进行存储以形成待学习路径;
将多个所述关键节点信息进行存储以形成待学习节点项;
根据所述待学习节点项向待测试项进行多次传值以进行第一阶段智能学习,得到第一测试规格和第一测试项;
根据所述待学习路径获取功能模块的标签,并将所述标签存储在所述待测试项中;依次遍历所述待测试项,以进行第二阶段智能学习,得到第二测试规格和第二测试项;所述第二测试项与所述第一测试项不同;
根据所述第一测试规格、至少一个所述第一测试项、所述第二测试规格以及至少一个所述第二测试项输出正向测试用例、反向测试用例及输入规格。
进一步地,根据所述待学习节点项向待测试项进行多次传值以进行第一阶段智能学习,得到第一测试规格和第一测试项,包括:
结合所述待学习节点项向所述待测试项进行组合输入,得到过程值;
将所述过程值与预设的预期值比较;
如果所述过程值与所述预期值相匹配,自动生成所述第一测试规格和所述第一测试项;
如果所述过程值与所述预期值不匹配,减少所述组合输入,并重新计算所述过程值,直到所有组合完成所述第一阶段智能学习。
进一步地,根据所述第一测试规格、所述第一测试项、所述第二测试规格以及所述第二测试项输出正向测试用例、反向测试用例及输入规格,包括:
将所述第一测试项与所述第二测试项进行与运算,得到第一测试集合与第二测试集合;所述第一测试集合为所述第一测试项与所述第二测试项的交集,所述第二测试集合为所述交集之外的数据的集合;
按照预设规则及算法、所述第一测试规格以及所述第二测试规格生成输入规格;
对所述第一测试集合按照所述输入规格进行测试,生成过程测试结果;
如果所述过程测试结果与预设的预期测试结果一致,输出正向测试用例;
如果所述过程测试结果与预设的预期测试结果不一致,输出反向测试用例并对所述反向测试用例进行跟踪;
对所述第二测试集合进行所述第二阶段智能学习,并记录学习结果。
进一步地,根据所述节点信息生成所述被测试页面的功能模块导航路径,以及根据所述节点信息生成关键节点信息,包括:
捕捉所述功能模块导航路径,所述功能模块导航路径是由所述节点信息和所述被测试页面中的被测试模块分析得出的;
获取所述功能模块导航路径得到被测试操作,以及,记录所述被测试操作分析出所述被测试模块的关键节点信息及功能点信息,以通过所述关键节点信息及所述功能点信息对所述功能模块导航路径进行定位;所述功能点信息为可操作性组件的集合。
进一步地,基于智能学习的WebUI自动化测试方法,还包括:
生成WebUI自动化测试脚本,所述WebUI自动化测试脚本是对用户操作和所述关键节点信息分析得出的。
进一步地,基于智能学习的WebUI自动化测试方法,还包括:分析所述关键节点信息以对目标测试点进行定位。
进一步地,根据所述关键节点信息对目标测试点进行定位,包括:
所述关键节点信息包括类型、id号、输入值;
读取所述关键节点信息以获取到所述类型;
分析所述类型及所述id号以对所述目标测试点进行定位。
进一步地,在开启WebUI监听功能之前,还包括:
提交浏览器与所述被测试页面的功能配置项,提交完成后点击自动定位,以开始WebUI自动化测试。
进一步地,在进行所述第一阶段智能学习和所述第二阶段智能学习之前,还包括:判断自动化测试结果与人工测试结果的一致性,如果一致,则自动生成一份自动化执行脚本。
进一步地,基于智能学习的WebUI自动化测试方法,还包括:在所述被测试页面中输入所述正向测试用例、所述反向测试用例及所述输入规格以生成智能学习自动化测试脚本。
由以上技术方案可知,本申请提供一种基于智能学习的WebUI自动化测试方法,包括录制用户在被测试页面上点击过的所有功能模块的节点信息;根据节点信息生成被测试页面的功能模块导航路径,以及,根据节点信息生成关键节点信息;将多个功能模块导航路径进行存储以形成待学习路径;将多个关键节点信息进行存储以形成待学习节点项;根据待学习节点项向待测试项进行多次传值以进行第一阶段智能学习,得到第一测试规格和第一测试项;根据待学习路径获取功能模块的标签,并将标签存储在待测试项中;依次遍历待测试项,以进行第二阶段智能学习,得到第二测试规格和第二测试项;第二测试项与第一测试项不同;根据第一测试规格、至少一个第一测试项、第二测试规格以及至少一个第二测试项输出正向测试用例、反向测试用例及输入规格。本申请只需一次简单的页面配置操作即可自动生成测试结果与测试报告,解决了目前WebUI自动化测试开发成本高且对自动化测试专业要求高的问题,当被测试页面功能页面发生改动时,通过本申请方法也能自动判断并自动调整测试用例,解决了目前WebUI自动化测试维护不方便的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的基于智能学习的WebUI自动化测试方法逻辑示意图;
图2为本申请实施例提供的两个阶段智能学习的逻辑关系图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。
为了解决目前WebUI自动化测试开发成本高且对自动化测试专业要求高、维护不方便的问题,本申请实施例提供一种基于智能学习的WebUI自动化测试方法,具体包括以下内容:
录制用户在被测试页面上点击过的所有功能模块的节点信息。在录制用户在被测试页面上点击过的所有功能模块的节点信息之前,还包括开启WebUI监听功能,并获取被测试页面。用户登录被测试页面后,会进行一些点击操作,其中,节点信息为在所有功能模块的对应操作的集合。本申请实施例中,在实施测试时,测试人员无需进行任何编程操作,只需要打开浏览器,正确登录被测试页面后,点击要测试的功能页面,提交浏览器与被测试页面的功能配置项,提交完成后点击自动定位,以开始WebUI自动化测试。
用户在被测试页面上点击过的所有功能模块的节点信息录制完成后,根据节点信息生成被测试页面的功能模块导航路径,以及,根据节点信息生成关键节点信息。其中,关键节点信息被测试页面中待测试项的集合,待测试项是被测试页面中要进行测试的一个或多个功能模块。
在一些实施例中,根据节点信息生成被测试页面的功能模块导航路径,以及根据节点信息生成关键节点信息,可以包括如下步骤:捕捉功能模块导航路径,功能模块导航路径是由节点信息和被测试页面中的被测试模块分析得出的;获取功能模块导航路径得到被测试操作,以及,记录被测试操作分析出被测试模块的关键节点信息及功能点信息,以通过关键节点信息及功能点信息对功能模块导航路径进行定位。其中,功能点信息为可操作性组件的集合。
为了便于进一步理解上述步骤,下面结合附图和具体实例对上述步骤的详细操作过程进行举例说明。
参见图1,图1为本申请实施例提供的基于智能学习的WebUI自动化测试方法逻辑示意图,开始自动测试时,首先开启WebUI监听功能,捕获用户操作内容。例如,可以通过Request URL方式捕获浏览器输入栏中访问的被测试页面,并记录浏览器中输入的被测试页面,即用户访问地址。
获取到用户准备测试的页面即被测试页面后,用户点击要测试的功能页面,可以捕获到用户点击页面导航链接的节点信息及功能点信息。例如,一级菜单为:<a href="javascript:;"id="menu2"target="Main_content"onclick="tree_content_control(2,2,this)">策略配置</a>;二级菜单为<a id="sd10"class="nodeSel"href="?g=sec_session_limit_show"title="策略配置>会话控制管理"target="Main_content"onclick="javascript:d.s(10);">会话控制管理</a>;根据用户点击操作可以获得页面导航链接的节点关键信息如id、title和树形结构关系,为后面自动学习留下操作路径,这样就可以获取到被测试模块的路径。
获取到被测试模块的路径之后,捕获用户的功能操作。例如,以点击新建操作为例,点击新建操作后,进行配置,之后点击提交,也是根据页面关键节点信息获取当前操作模块路径的节点信息。例如操作语句可以为<input type="text"name="limit_name"id="count_cid"class="input middle"value="">,文本输入框中可以输入数据,虽然最初并不知道操作的对象类型是什么,是可以通过关键节点信息如type、id、value来进行自主学习,并且通过用户操作获取了向当前对象传输的数据。
在一些实施例中,通过上述步骤获取到被测试页面、被测试模块(功能点信息)、用户操作后,可以通过用户的操作捕获到关键节点信息,之后通过对用户操作和关键节点信息可以分析,还可以自动生成WebUI自动化测试用例,方便用户直接使用。测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。对此环节自动化生成的测试用例及脚本本申请不作具体限定,例如,可以不进行自动学习,具体可以根据实际情况和需求而定。
在另一些实施例中,根据上述的自动化测试用例,还可以将自动化测试用例生成的自动化测试结果与人工测试的结果进行比对,如果自动化测试结果与人工测试结果的一致,证明执行无误,可以按照预先设定的规则自动生成一份自动化执行脚本。
通过关键节点信息及功能点信息对功能模块导航路径进行定位时,例如,在实际操作过程中,操作相关过程记录如下:“地址address=被测试页面;打开浏览器,访问被测试页面:driver.get(地址address);点击导航链接:通过记录的一级和二级菜单的名称和title生成点击脚本”,通过上述操作,根据被测试页面中的关键节点信息,测试系统获取到type类型为文本格式,即可以通过关键节点信息及功能点信息对功能模块导航路径进行定位。
在一些实施例中,本申请还可以根据关键节点信息对目标测试点进行定位。目标测试点可以是被测试模块的任意一个待测试项,根据关键节点信息对目标测试点进行定位可以通过如下方式实现:如关键节点信息可以包括类型、id号、输入值,读取关键节点信息以获取到类型;分析类型及id号以对目标测试点进行定位。
现有的WebUI屏幕自动录制只是简单的屏幕录制,无法自适应其他显示器,其他测试人员在自己的电脑上无法使用录制的脚本,导致易用性很差,且当被测试设备更换版本后,脚本将再也无法使用。而本申请实施例的方法使用被测试页面的关键节点信息进行定位操作,从根本上解决了此问题,不管页面大小怎么变,任意测试人员使用任何大小的显示器,或更换另外其他用户的测试版本,都可以精准操作关键节点信息进行自动化测试,有效的增强了自动化测试的易用性,并减少了自动化测试的维护操作。
根据节点信息生成被测试页面的功能模块导航路径,以及根据节点信息生成关键节点信息后,将多个功能模块导航路径进行存储以形成待学习路径;将多个关键节点信息进行存储以形成待学习节点项。具体地,在录制用户用户在被测试页面上点击过的所有功能模块的节点信息后,可以捕捉到当前被测试模块的导航路径,将被测试模块的导航路径进行存储,形成待学习路径。同时,将被测试页面的关键节点信息也进行存储,形成待学习节点项。
例如,在一些实施例中,被测试模块的导航路径为“策略配置-对象管理-地址对象”,本申请实施例可以根据一级、二级、三级菜单的名称或title自动生成导航路径的链接并存储到待学习路径中(如待学习路径为Wait_Navigation)。再如,被测试模块的操作可以为“点击新建-填写名称-填写描述-填写IP地址-填写排除IP地址-点击提交”,一种形成待学习节点项的方式可以为,将“点击新建”中按钮title存储在待学习节点项中(如待学习节点项为Wait_Option),将名称、描述、IP地址、排除IP地址的name、id、type存储在待学习节点项中(如可以存储为Wait_Name,Wait_Desc,Wait_IP,Wait_exclude_IP)中。
待学习路径和待学习节点项生成后,使用待学习路径(Wait_Navigation)可以找到被测试模块的页面,根据待学习节点项(Wait_Option)进行点击新建操作,可以打开新建地址对象的页面。接下来即可进行智能学习阶段。
本申请实施例中,智能学习分为两个学习阶段,分别为第一阶段智能学习和第二阶段智能学习,现对两个阶段的学习分别进行介绍。
第一阶段智能学习:根据待学习节点项向待测试项进行多次传值以进行第一阶段智能学习,得到第一测试规格和第一测试项。可以通过如下步骤进行第一阶段智能学习:结合待学习节点项向待测试项进行组合输入,得到过程值;将过程值与预设的预期值比较;如果过程值与预期值相匹配,自动生成第一测试规格和第一测试项;如果过程值与预期值不匹配,减少组合输入,并重新计算过程值,直到所有组合完成第一阶段智能学习。
具体地,第一阶段智能学习又可以称为深度学习,关键节点信息为被测试页面中待测试项的集合。在记录到被测试模块所在页面后,可以直接跳转到被测试页面,在用户进行操作过程中,通过本申请实施例的方法可以自动获取到当前页面所有的操作框,并可以与被测试模块预先设定的待测试项功能相关操作取交集,结合待学习节点项向待测试项进行组合输入,得到过程值,如对于文本框对象,可以进行多种组合输入(正向输入、反向输入)等,得到过程值,并将过程值与计算出的预期值比较是否匹配,判断当前输入框的测试结果是否符合预期,如果符合预期则自动生成第一测试规格和第一测试项,如果不符合预期,则减少组合输入方式,重新计算,直到所有组合均以学习完成。
在第一阶段智能学习(深度学习)中,是对待学习节点项中的数据逐一进行智能学习。待学习节点项中的Wait_Name数据可以包含如下信息:待测试项名称(名称)、输入框类型(text)、输入框ID(id),在实际操作场景中,根据输入框ID(id)可以找到当前输入框的位置(如element_by_id(id)),根据输入框的类型(text)可以确定为输入文本数据,如果操作框的类型是check或combox则会自动判断是使用输入操作还是选择勾选操作。在确定类型和ID后,可以向待测试项进行传值(如数字、字母、汉字、特殊字符,输入框长度限制)。
一种实现方式中,可以通过如下方式实现上述过程,例如:
1.在操作框中写入32个字符并点击提交,页面提示输入信息错误,捕获弹出框内容为失败(根据弹出框的图标进行判断(告警图标、通过图标)),将此项操作记录到反向测试用例中入BUG(A);
2.在操作框中写入随机特殊字符(!@#)并点击提交,页面提示输入非法字符,捕获到弹出内容为失败,将此项操作记录到反向测试用例中,如BUG(A、B);
3.在操作框中输入62个字符,点击提交,页面提示输入信息过长,捕获到弹出框内容为失败,将此项操作记录到反向测试用例中,如BUG(A、B、C),并可以根据二分法(本次输入数据长度除以2,进行下次测试),进行重新测试输入框长度;
4.在操作框中1.输入31个数字,点击提交,页面提示操作成功,捕获到弹出框内容为成功,将侧向操作记录记录到正向测试用例中,如PASS(A);
根据以上多次尝试输入,同时判断弹出框内容,可以智能学习出第一测试规格和第一测试项,通过深度学习可以判断出第一测试规格如type类型、确定传值范围、确定可输入长度(如可以得到当前待测试项的规格Capacity允许输入数字、字母,长度规格为31个,不允许输入任何特殊字符和汉字)、以及可以获得当前被测试页面所有被测试模块(如输入框、复选框、单选框等)的第一测试项如正向测试用例数据PASS列表和反向测试用例BUG列表等。
在一些实施例中,还可以将测试出的第一测试规格和被测试页面的被测试模块进行关联,这样,在以后的测试中,如果再遇到类型为text的被测试模块可以优先使用本次学习结果,减少再次学习时间。同时,还可以预先按照实际需求规定,再遇到name为名称的被测试模块时必须使用本次学习结果,如规格不一致,则为测试发现的BUG(输入框规格不统一)。
在第一阶段智能学习中,通过对待学习节点项中的数据逐一进行智能学习,可以得到关键节点信息中各个被测试模块中待测试项的第一测试规格和第一测试项,如通过第一阶段智能学习获取到各个被测试模块的传值范围、可输入长度、相关测试规格等,第一阶段智能学习完成后,即可继续进行第二阶段智能学习。
第二阶段智能学习:根据待学习路径获取功能模块的标签,并将标签存储在待测试项中;依次遍历待测试项,以进行第二阶段智能学习,得到第二测试规格和第二测试项,第二测试项不同于第一测试项。第二阶段智能学习又可以称为扩展学习,主要是基于第一阶段智能学习的基础上,对被测试模块的待测试项进行扩展学习。
例如,使用待学习路径(如Wait_Navigation)找到被测试模块页面,根据待学习节点项(Wait_Option)信息如“名称为新建,绝对路径位置为://*[@id="toolbar_obj_address"]/div/a[1]/span/span[1]”,根据绝对路径的位置可以知道上层有多组标签(标签的标注形式可以为div/下面a带标记),之后,自动获取div下所有标签,准备进行第二阶段智能学习即扩展学习。
在一些实施例中,扩展学习可以通过获取其他可操作性按钮,主要对新建、编辑、查询、删除等操作进行学习。在扩展学习阶段中,会自动捕获功能按钮,如自动获取被测试页面所有功能性按钮(增加、编辑、查询、删除等)和可操作链接,逐一进行点击操作,如相应的操作可以为:
//*[@id="toolbar_obj_address"]/div/a[1]/span/span[1]:新建按钮;
//*[@id="toolbar_obj_address"]/div/a[2]/span/span[1]:编辑按钮;
//*[@id="toolbar_obj_address"]/div/a[3]/span/span[1]:查询按钮”;
……
//*[@id="toolbar_obj_address"]/div/a[x]/span/span[1]:其他操作按钮;
将以上获取到的标签存在待测试项中,如(Wait_text(新建、编辑、查看、XXXX)),依次遍历Wait_text中的待测试项,进行扩展智能学习。每一项功能按钮点击完成后,自动学习会判断是否弹出新的可操作页面或提示信息,在可操作页面获取关键节点(text/combox/check/input/button)等信息。对新捕获的关键节点信息可以进行多种组合自动化输入操作,对其他关键节点,扩展学习会根据不同类型节点逐一进行学习。
例如,一种实现方式中,获取到查询按钮后,先获取当前页面所有表单数据,然后点击查询按钮,弹出查询框,捕获查询框中关键节点(text文本类型),判断节点类型(text文本类型)、尝试输入表单数据中的一项数据,点击关键节点信息(button/提交/确定/查询),获取当前页面所有data,查看是否符合预期(data_name是否等于输入的信息)。如果符合预期,则刚才获取的表单数据为内容数据,进行多种组合输入(正向输入、反向输入),如果不符合预期,则重新选择表单数据进行输入。同时,还可以将学习到预期结果成功的操作,自动生成WebUI自动化测试用例。也就是说,在扩展学习过程中,可以通过对页面的一些判断捕获被测试页面的可操作信息。
在第二阶段智能学习中,可以依次将当前被测试页面中的所有待测试项(如新建、编辑、删除、查询)所有可操作项进行扩展测试,并且当出现增加输入框或减少输入框时,对被测试页面进行自动分析时即可知道当前页面是否有变化,同时,结合第一阶段智能学习的深度测试便知道输入框内容限制是否有修改,即当页面出现修改时,也会自动判断,修改自身的测试用例,大大减少维护和定位修改的时间成本,无须研发人员投入,只需要重新执行测试即可。从而,本申请实施例中解决了现有WebUI自动化开发时,每一个功能点(如增、删、改、查)都需要开发人员去编程、工作量翻倍的情况,通过本申请实施例提供的智能学习的WebUI自动化测试方法将实现WebUI自动化智能学习,并输出相关正向和反向测试执行脚本,解决了开发成本高、维护不方便的问题。
同时,本申请实施例的智能自动化学习,从脚本录制到智能学习,均不需要测试人员具有较高的技术水平,并且可以自动生成测试用例,从而解决目前自动化测试开发成本高、维护不方便,对自动化测试专业要求比较高的缺陷。
两个阶段的智能学习结束后,将智能学习的测试数据与预期结果进行比对,包括根据第一测试规格、至少一个第一测试项(实际学习过程中可能会有多个第一测试项)、第二测试规格以及至少一个第二测试项(实际学习过程中也可能会有多个第二测试项)输出正向测试用例、反向测试用例及输入规格。具体地,可以通过如下步骤输出正向测试用例、反向测试用例及输入规格:将第一测试项与第二测试项进行与运算,得到第一测试集合与第二测试集合;第一测试集合为第一测试项与第二测试项的交集,第二测试集合为交集之外的数据的集合;按照预设规则及算法、第一测试规格以及第二测试规格生成输入规格;对第一测试集合按照输入规格进行测试,生成过程测试结果;如果过程测试结果与预设的预期测试结果一致,输出正向测试用例;如果过程测试结果与预设的预期测试结果不一致,输出反向测试用例并对反向测试用例进行跟踪;对第二测试集合进行第二阶段智能学习,并记录学习结果。
在一些实施例中,在第一阶段智能学习中获取第一测试规格与第一测试项,在第二阶段智能学习中第二测试规格与第一测试项,可以将两个阶段智能学习中的测试项进行与运算。如果得到相同的待测试项(即第一测试集合),例如名称、描述、IP、排除IP等,对相同的待测试项使用输入规格进行测试。
在实际测试场景中,可以预先拟定一些测试规则,例如,如果两个阶段智能学习相同的待测试项可以优先使用智能测试结果(如输入规格)进行测试,如果测试结果不一致,则为软件缺陷BUG,可以根据实际情况提单跟踪。如果有不相同的待测试项,结合图1,在第二阶段智能学习的过程中如果存在不相同的待测试项,则继续进行深度学习(第一阶段智能学习),并记录智能学习结果。参见图2,也就是说,在实际进行智能学习的过程中,先进行第一阶段智能学习,再第一阶段智能学习的基础上再进行第二阶段智能学习;而在第二阶段智能学习过程中,又包含了第一阶段智能学习,两个阶段的智能学习相辅相成。
正向测试用例、反向测试用例及输入规格生成后,本申请实施例还包括根据正向测试用例、反向测试用例及输入规格对被测试页面进行测试,生成测试结果与测试报告。在被测试页面中输入正向测试用例、反向测试用例及输入规格以生成智能学习自动化测试脚本。
具体地,通过第一阶段智能学习的深度学习,可以完全模拟出用户在实际测试中的操作步骤,解决了现有WebUI自动化开发时,花费时间成本非常高的缺陷(现有技术正向测试和反向测试必须手动编写,而且当一个测试页面有十几项或者几十项输入框时,工作量时非常庞大的),结合第一阶段智能学习和第二阶段智能学习,通过计算得到正向测试列表和反向测试列表(异常测试)和输入规格,自动生成完整的一项测试用例,生成测试结合与测试报告,这样,可以大大减少了研发成员的开发成本,并且通过学习到输入规格可以大大减少后面编写用例的时间,例如再编写地址组对象、服务对象时,部分测试项完全可以复用本次学习的测试例和规格,从而有效减少研发成员的工作量。
本申请提供一种基于智能学习的WebUI自动化测试方法,包括录制用户在被测试页面上点击过的所有功能模块的节点信息;根据节点信息生成被测试页面的功能模块导航路径,以及,根据节点信息生成关键节点信息;将多个功能模块导航路径进行存储以形成待学习路径;将多个关键节点信息进行存储以形成待学习节点项;根据待学习节点项向待测试项进行多次传值以进行第一阶段智能学习,得到第一测试规格和第一测试项;根据待学习路径获取功能模块的标签,并将标签存储在待测试项中;依次遍历待测试项,以进行第二阶段智能学习,得到第二测试规格和第二测试项;第二测试项与第一测试项不同;根据第一测试规格、至少一个第一测试项、第二测试规格以及至少一个第二测试项输出正向测试用例、反向测试用例及输入规格。本申请只需一次简单的页面配置操作即可自动生成测试结果与测试报告,解决了目前WebUI自动化测试开发成本高且对自动化测试专业要求高的问题,当被测试页面功能页面发生改动时,通过本申请方法也能自动判断并自动调整测试用例,解决了目前WebUI自动化测试维护不方便的问题。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种基于智能学习的WebUI自动化测试方法,其特征在于,包括:
录制用户在被测试页面上点击过的所有功能模块的节点信息,所述节点信息为在所有所述功能模块的对应操作的集合;
根据所述节点信息生成所述被测试页面的功能模块导航路径,以及,根据所述节点信息生成关键节点信息,所述关键节点信息为被测试页面中待测试项的集合,所述待测试项是所述被测试页面中要进行测试的一个或多个功能模块;
将多个所述功能模块导航路径进行存储以形成待学习路径;
将多个所述关键节点信息进行存储以形成待学习节点项;
根据所述待学习节点项向待测试项进行多次传值以进行第一阶段智能学习,得到第一测试规格和第一测试项;
根据所述待学习路径获取功能模块的标签,并将所述标签存储在所述待测试项中;依次遍历所述待测试项,以进行第二阶段智能学习,得到第二测试规格和第二测试项;所述第二测试项与所述第一测试项不同;
根据所述第一测试规格、至少一个所述第一测试项、所述第二测试规格以及至少一个所述第二测试项输出正向测试用例、反向测试用例及输入规格。
2.根据权利要求1所述的基于智能学习的WebUI自动化测试方法,其特征在于,根据所述待学习节点项向待测试项进行多次传值以进行第一阶段智能学习,得到第一测试规格和第一测试项,包括:
结合所述待学习节点项向所述待测试项进行组合输入,得到过程值;
将所述过程值与预设的预期值比较;
如果所述过程值与所述预期值相匹配,自动生成所述第一测试规格和所述第一测试项;
如果所述过程值与所述预期值不匹配,减少所述组合输入,并重新计算所述过程值,直到所有组合完成所述第一阶段智能学习。
3.根据权利要求1所述的基于智能学习的WebUI自动化测试方法,其特征在于,根据所述第一测试规格、所述第一测试项、所述第二测试规格以及所述第二测试项输出正向测试用例、反向测试用例及输入规格,包括:
将所述第一测试项与所述第二测试项进行与运算,得到第一测试集合与第二测试集合;所述第一测试集合为所述第一测试项与所述第二测试项的交集,所述第二测试集合为所述交集之外的数据的集合;
按照预设规则及算法、所述第一测试规格以及所述第二测试规格生成输入规格;
对所述第一测试集合按照所述输入规格进行测试,生成过程测试结果;
如果所述过程测试结果与预设的预期测试结果一致,输出正向测试用例;
如果所述过程测试结果与预设的预期测试结果不一致,输出反向测试用例并对所述反向测试用例进行跟踪;
对所述第二测试集合进行所述第二阶段智能学习,并记录学习结果。
4.根据权利要求1所述的基于智能学习的WebUI自动化测试方法,其特征在于,根据所述节点信息生成所述被测试页面的功能模块导航路径,以及根据所述节点信息生成关键节点信息,包括:
捕捉所述功能模块导航路径,所述功能模块导航路径是由所述节点信息和所述被测试页面中的被测试模块分析得出的;
获取所述功能模块导航路径得到被测试操作,以及,记录所述被测试操作分析出所述被测试模块的关键节点信息及功能点信息,以通过所述关键节点信息及所述功能点信息对所述功能模块导航路径进行定位;所述功能点信息为可操作性组件的集合。
5.根据权利要求4所述的基于智能学习的WebUI自动化测试方法,其特征在于,还包括:
生成WebUI自动化测试脚本,所述WebUI自动化测试脚本是对用户操作和所述关键节点信息分析得出的。
6.根据权利要求4所述的基于智能学习的WebUI自动化测试方法,其特征在于,还包括:分析所述关键节点信息以对目标测试点进行定位。
7.根据权利要求6所述的基于智能学习的WebUI自动化测试方法,其特征在于,根据所述关键节点信息对目标测试点进行定位,包括:
所述关键节点信息包括类型、id号、输入值;
读取所述关键节点信息以获取到所述类型;
分析所述类型及所述id号以对所述目标测试点进行定位。
8.根据权利要求1所述的基于智能学习的WebUI自动化测试方法,其特征在于,在开启WebUI监听功能之前,还包括:
提交浏览器与所述被测试页面的功能配置项,提交完成后点击自动定位,以开始WebUI自动化测试。
9.根据权利要求1所述的基于智能学习的WebUI自动化测试方法,其特征在于,在进行所述第一阶段智能学习和所述第二阶段智能学习之前,还包括:判断自动化测试结果与人工测试结果的一致性,如果一致,则自动生成一份自动化执行脚本。
10.根据权利要求1所述的基于智能学习的WebUI自动化测试方法,其特征在于,还包括:在所述被测试页面中输入所述正向测试用例、所述反向测试用例及所述输入规格以生成智能学习自动化测试脚本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111553559.3A CN114297055B (zh) | 2021-12-17 | 2021-12-17 | 一种基于智能学习的WebUI自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111553559.3A CN114297055B (zh) | 2021-12-17 | 2021-12-17 | 一种基于智能学习的WebUI自动化测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114297055A true CN114297055A (zh) | 2022-04-08 |
CN114297055B CN114297055B (zh) | 2024-11-22 |
Family
ID=80967386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111553559.3A Active CN114297055B (zh) | 2021-12-17 | 2021-12-17 | 一种基于智能学习的WebUI自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114297055B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114780420A (zh) * | 2022-04-28 | 2022-07-22 | 武汉思普崚技术有限公司 | 一种基于测试例自动测试的方法、装置、设备及存储介质 |
CN118069537A (zh) * | 2024-04-17 | 2024-05-24 | 江苏华存电子科技有限公司 | 一种自动追溯软件bug的测试工具和测试方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426612A (zh) * | 2017-09-04 | 2019-03-05 | 上海仪电(集团)有限公司中央研究院 | 一种基于智能机器学习的自动化用例开发系统 |
US20190278699A1 (en) * | 2018-03-08 | 2019-09-12 | Mayank Mohan Sharma | System and method for automated software test case designing based on Machine Learning (ML) |
KR20190135074A (ko) * | 2018-05-28 | 2019-12-06 | 슈어소프트테크주식회사 | 딥러닝 알고리즘 및 트리를 이용한 ui테스팅 자동화 방법 및 동일 방법으로 구현된 장치 |
CN111831533A (zh) * | 2019-04-15 | 2020-10-27 | 西安邮电大学 | 一种基于导航图的Web应用测试用例生成方法 |
CN112732579A (zh) * | 2021-01-11 | 2021-04-30 | 深圳市瑞云科技有限公司 | 一种WebUI的自动化测试方法和系统 |
US11068387B1 (en) * | 2020-04-20 | 2021-07-20 | Webomates Inc. | Classifying a test case executed on a software |
-
2021
- 2021-12-17 CN CN202111553559.3A patent/CN114297055B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426612A (zh) * | 2017-09-04 | 2019-03-05 | 上海仪电(集团)有限公司中央研究院 | 一种基于智能机器学习的自动化用例开发系统 |
US20190278699A1 (en) * | 2018-03-08 | 2019-09-12 | Mayank Mohan Sharma | System and method for automated software test case designing based on Machine Learning (ML) |
KR20190135074A (ko) * | 2018-05-28 | 2019-12-06 | 슈어소프트테크주식회사 | 딥러닝 알고리즘 및 트리를 이용한 ui테스팅 자동화 방법 및 동일 방법으로 구현된 장치 |
CN111831533A (zh) * | 2019-04-15 | 2020-10-27 | 西安邮电大学 | 一种基于导航图的Web应用测试用例生成方法 |
US11068387B1 (en) * | 2020-04-20 | 2021-07-20 | Webomates Inc. | Classifying a test case executed on a software |
CN112732579A (zh) * | 2021-01-11 | 2021-04-30 | 深圳市瑞云科技有限公司 | 一种WebUI的自动化测试方法和系统 |
Non-Patent Citations (1)
Title |
---|
张冬敏;阎保平;: "Web应用测试集成环境的研究与设计", 计算机应用与软件, no. 08, 15 August 2007 (2007-08-15) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114780420A (zh) * | 2022-04-28 | 2022-07-22 | 武汉思普崚技术有限公司 | 一种基于测试例自动测试的方法、装置、设备及存储介质 |
CN118069537A (zh) * | 2024-04-17 | 2024-05-24 | 江苏华存电子科技有限公司 | 一种自动追溯软件bug的测试工具和测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114297055B (zh) | 2024-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928772B (zh) | 一种测试方法及装置 | |
US20230104928A1 (en) | Executable network troubleshooting procedure | |
CN106844217B (zh) | 对应用的控件进行埋点的方法及装置、可读存储介质 | |
Vos et al. | testar–scriptless testing through graphical user interface | |
WO2018010552A1 (zh) | 测试方法和装置 | |
CN108763076A (zh) | 一种软件自动测试方法、装置、设备及介质 | |
CN108683562A (zh) | 异常检测定位方法、装置、计算机设备及存储介质 | |
US20220374339A1 (en) | Techniques for visual software test automation management | |
US20220374334A1 (en) | Techniques for visual software test automation management | |
CN102567201B (zh) | 跨模型的图形用户界面测试脚本自动修复方法 | |
US9417991B2 (en) | Translation verification testing | |
US10437717B2 (en) | Defect reporting in application testing | |
CN102411538B (zh) | 基于事件可达性模型的图形用户界面测试脚本修复方法 | |
CN114297055A (zh) | 一种基于智能学习的WebUI自动化测试方法 | |
US20220374338A1 (en) | Techniques for visual software test automation management | |
CN112882933A (zh) | 脚本录制方法、装置、设备及存储介质 | |
CN115658452B (zh) | 埋点校验方法、埋点校验装置、可读存储介质、电子设备 | |
CN114490337A (zh) | 调测方法、调测平台、设备及存储介质 | |
CN119718908A (zh) | 一种ui自动化测试的方法及系统 | |
Lee et al. | Test command auto-wait mechanisms for record and playback-style web application testing | |
CN118760613A (zh) | 测试用例自动生成方法、装置、电子设备及存储介质 | |
Mahmud et al. | Combining language and app ui analysis for the automated assessment of bug reproduction steps | |
JP2021015481A (ja) | 情報処理プログラム、情報処理方法、及び情報処理装置 | |
CN116955140A (zh) | Sdk测试方法、装置、设备及存储介质 | |
CN118377726B (zh) | web应用自动化测试方法、计算机装置 |
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 |