CN114490315B - Web应用程序自动化测试方法和装置 - Google Patents
Web应用程序自动化测试方法和装置 Download PDFInfo
- Publication number
- CN114490315B CN114490315B CN202111545001.0A CN202111545001A CN114490315B CN 114490315 B CN114490315 B CN 114490315B CN 202111545001 A CN202111545001 A CN 202111545001A CN 114490315 B CN114490315 B CN 114490315B
- Authority
- CN
- China
- Prior art keywords
- browser
- target element
- user operation
- elements
- operation behavior
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 97
- 230000006399 behavior Effects 0.000 claims abstract description 148
- 230000008859 change Effects 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000012544 monitoring process Methods 0.000 claims abstract description 29
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 10
- 230000001427 coherent effect Effects 0.000 claims description 6
- 230000009471 action Effects 0.000 claims description 5
- 238000010998 test method Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
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
本发明提供一种Web应用程序自动化测试方法和装置。其中方法包括:监听浏览器事件,将监听到的浏览器事件转换为用户操作行为进行记录;基于浏览器页面的DOM,对浏览器页面中被施加用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录;基于浏览器页面的DOM中元素及其相邻元素和父级元素的信息,在浏览器页面中定位所记录的目标元素;将所记录的目标元素被施加的用户操作行为转换为浏览器事件,控制浏览器对目标元素执行浏览器事件;监听浏览器页面的DOM的变化频率,在变化频率稳定时结束对用户操作行为的测试。本发明可以提升对用户操作行为识别与判定的准确性,提升测试用例的稳定性,精确不受场景限制的进行自动等待。
Description
技术领域
本发明涉及自动化测试技术领域,尤其涉及一种Web应用程序自动化测试方法和装置。
背景技术
Web应用程序作为主流的客户端技术,已经被越来越广泛的使用在各种软件场景中。随着Web技术的发展,Web应用程序的复杂度越来越高,设计工具、协同文档、复杂表单等功能庞大、交互复杂的Web应用程序逐渐增多,相应的,对于Web应用程序的自动化测试需求也持续增加。
在实现Web应用程序自动化测试时,对于测试用例的开发、维护以及执行稳定性都有较高的要求。与传统客户端技术相比,Web应用程序的迭代发布频率更高,也就需要对应的自动化测试用例开发、维护效率足够高。同时,由于Web应用程序大多包含大量异步网络交互,因此测试用例执行时需要能够对抗异步网络交互带来的随机变化,保证自动化执行的稳定性以及结果的准确性。
在测试用例的开发和维护中,主要的内容集中在“操作对象”和“操作方式”两部分,例如对“按钮”进行“点击”,为了定位Web应用程序的操作对象,一般使用XPath或CSS选择器作为标志。
在测试用例的执行中,为了抵抗异步因素的影响,一般会在测试用例中进行手动或自动的等待。例如,手动等待为“等待2秒”,自动等待为“等待直到按钮出现”。
以上所描述的测试用例内容又分为手动编写和自动录制两类开发方式。手动编写即通过编写代码的方式实现测试用例,自动录制则是在特定装置的帮助下与Web应用程序进行交互,由装置录制进行的动作,并自动生成测试用例。
在现有技术中,使用XPath和CSS选择器作为标志的定位方式在实际使用中存在不易维护的问题。Web应用程序布局发生变化是非常常见的情况,但是大部分布局变化都会导致操作对象的XPath和CSS选择器发生细微变化,导致作为标志失效。
在执行过程中,手动等待的方式有较强的主观判断成分,不够精确。已有的自动等待也大多是通过判定操作对象出现或不可见作为完成等待的信号,适用场景有限。
对于提供自动录制的特定装置,对于用户操作行为的识别与判定不够准确,例如对于拖拽、连续输入等用户的连贯操作行为不能很好的识别与判定。
发明内容
本发明提供一种Web应用程序自动化测试方法和装置,用以解决现有技术中存在的缺陷,可以提升对用户操作行为识别与判定的准确性,对于用户的连贯操作行为也能够进行准确的识别与判定,可以避免Web应用程序的布局发生变化时导致定位失效的情况,可以提升测试用例的稳定性,使测试用例更加健壮且易于维护,可以精确、智能,不受场景限制,更加通用的进行自动等待。
第一方面,本发明提供一种Web应用程序自动化测试方法,包括:
对浏览器事件进行监听,将监听到的浏览器事件转换为对应的用户操作行为,对所述用户操作行为进行记录;
基于浏览器页面的文档对象模型,对所述浏览器页面中被施加所述用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录;
基于浏览器页面的文档对象模型中元素及其相邻元素和父级元素的信息,在所述浏览器页面中定位所记录的目标元素;
将所记录的所述目标元素被施加的用户操作行为转换为对应的浏览器事件,控制所述浏览器对所定位的目标元素执行所述浏览器事件;
对所述浏览器页面的文档对象模型的变化频率进行监听,在监听到所述变化频率稳定时结束对所述用户操作行为的测试。
根据本发明提供的Web应用程序自动化测试方法,所述将监听到的浏览器事件转换为对应的用户操作行为,包括:
基于预先设置的匹配规则,对监听到的浏览器事件进行匹配,得到所述浏览器事件对应的用户操作行为;
所述将所记录的所述目标元素被施加的用户操作行为转换为对应的浏览器事件,包括:
基于所述预先设置的匹配规则,对所记录的所述目标元素被施加的用户操作行为进行匹配,得到所述用户操作行为对应的浏览器事件。
根据本发明提供的Web应用程序自动化测试方法,所述基于浏览器页面的文档对象模型,对所述浏览器页面中被施加所述用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录,包括:
基于浏览器页面的文档对象模型,获取所述浏览器页面中被施加所述用户操作行为的目标元素及其相邻元素和父级元素的信息;
对所获取的目标元素及其相邻元素和父级元素的信息进行记录,并记录所获取的元素之间的关系;
所述基于浏览器页面的文档对象模型中元素及其相邻元素和父级元素的信息,在所述浏览器页面中定位所记录的目标元素,包括:
基于浏览器页面的文档对象模型,获取每一个元素及其相邻元素和父级元素的信息;
将所记录的目标元素及其相邻元素和父级元素的信息,依据所记录的元素之间的关系与对每一个所获取的元素及其相邻元素和父级元素的信息进行匹配,根据匹配的结果在所述浏览器页面的元素中确定所述目标元素。
根据本发明提供的Web应用程序自动化测试方法,对所述浏览器页面的文档对象模型的变化频率进行监听,在监听到所述变化频率稳定时结束对所述用户操作行为的测试,包括:
对所述浏览器页面的文档对象模型的变化频率进行监听;
若监听到所述变化频率小于预先设置的频率阈值,确定对所述用户操作行为的测试结束。
根据本发明提供的Web应用程序自动化测试方法,所述将所记录的所述目标元素被施加的用户操作行为转换为对应的浏览器事件,控制所述浏览器对所定位的目标元素执行所述浏览器事件,包括:
将所记录的所述目标元素被施加的用户操作行为转换为对应的浏览器事件;
对转换得到的浏览器事件进行浏览器兼容性处理;
控制所述浏览器对所定位的目标元素执行兼容性处理得到的浏览器事件。
根据本发明提供的Web应用程序自动化测试方法,所述用户操作行为包括用户的连贯操作行为。
第二方面,本发明提供一种Web应用程序自动化测试装置,包括:
行为识别模块,用于对浏览器事件进行监听,将监听到的浏览器事件转换为对应的用户操作行为,对所述用户操作行为进行记录;
元素记录模块,用于基于浏览器页面的文档对象模型,对所述浏览器页面中被施加所述用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录;
元素定位模块,用于基于浏览器页面的文档对象模型中元素及其相邻元素和父级元素的信息,在所述浏览器页面中定位所记录的目标元素;
事件执行模块,用于将所记录的所述目标元素被施加的用户操作行为转换为对应的浏览器事件,控制所述浏览器对所定位的目标元素执行所述浏览器事件;
自动等待模块,用于对所述浏览器页面的文档对象模型的变化频率进行监听,在监听到所述变化频率稳定时结束对所述用户操作行为的测试。
第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面所述Web应用程序自动化测试方法的步骤。
第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面所述Web应用程序自动化测试方法的步骤。
第五方面,本发明还提供一种计算机程序产品,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面所述Web应用程序自动化测试方法的步骤。
本发明提供的Web应用程序自动化测试方法和装置,通过在录制测试用例时将浏览器事件转换为用户操作行为,在重放测试用例进行测试时将用户操作行为转换为浏览器事件,可以提升测试用例的可读性,提升对用户操作行为识别与判定的准确性,对于用户的连贯操作行为也能够进行准确的识别与判定;通过对被施加用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录,在定位目标元素时同时考虑元素的相邻元素和父级元素的信息,可以避免仅通过单一元素进行定位在Web应用程序的布局发生变化时导致定位失效的情况,可以提升测试用例的稳定性,使测试用例更加健壮且易于维护;通过监听浏览器页面的文档对象模型的变化频率进行自动等待,来解决Web应用程序中异步交互带来的不稳定性问题,相比于手动等待方式,更为精确、智能,相比于其他基于信号的等待方式,不受场景限制,更加通用。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的Web应用程序自动化测试方法的流程示意图;
图2是本发明提供的对目标元素及其相邻元素和父级元素的信息进行记录的流程示意图;
图3是本发明提供的在浏览器页面中定位目标元素的流程示意图;
图4是本发明提供的Web应用程序自动化测试装置的组成结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图3描述Web应用程序自动化测试方法。
请参阅图1,图1是本发明提供的Web应用程序自动化测试方法的流程示意图,图1所示的Web应用程序自动化测试方法可以由Web应用程序自动化测试装置执行,Web应用程序自动化测试装置可以设置于客户端和/或服务器,例如,客户端可以为智能手机、台式计算机、笔记型计算机、平板型计算机、可穿戴设备等,服务器可以为包含独立主机的物理服务器、主机集群承载的虚拟服务器、云服务器等,本发明实施例对此不作限定。如图1所示,该Web应用程序自动化测试方法,至少包括:
101,对浏览器事件进行监听,将监听到的浏览器事件转换为对应的用户操作行为,对用户操作行为进行记录。
在本发明实施例中,浏览器事件是指浏览器中发生的一些特定交互瞬间,是实现浏览器与用户交互的唯一途径,例如鼠标点击、键盘按下、网络请求成功、页面加载以及页面报错等均可以被称为是浏览器事件。通过对浏览器事件进行监听可以获得浏览器中发生的特定交互瞬间,可以采用现有的浏览器事件监听方法对浏览器事件进行监听,本发明实施例对此不作限定,例如可以通过事件监听函数实现对浏览器事件的监听。
通过对浏览器事件进行监听获得的浏览器中发生的特定交互瞬间,可以是由用户对浏览器的操作行为,即用户操作行为触发,例如用户的输入操作触发键盘按下事件,通常用户操作行为可以触发至少一个浏览器事件,例如用户的拖拽操作可以触发鼠标按下、鼠标移动和鼠标抬起等多个浏览器事件。因此用户操作行为与浏览器事件之间存在对应关系,通过对浏览器事件进行监听可以将监听到的浏览器事件转换为对应的用户操作行为。其中,用户操作行为可以包括用户的连贯操作行为,例如拖拽操作、连续输入操作等。
可选地,可以根据用户操作行为与浏览器事件之间的对应关系,预先设置匹配规则,可以根据预先设置的匹配规则,对监听到的浏览器事件进行匹配,得到浏览器事件对应的用户操作行为,实现将监听到的浏览器事件转换为对应的用户操作行为;或者也可以根据用户操作行为与浏览器事件之间的对应关系,预先训练识别模型,可以根据预先训练的识别模型,对监听到的浏览器事件进行识别,得到浏览器事件对应的用户操作行为,实现将监听到的浏览器事件转换为对应的用户操作行为;本发明实施例对将监听到的浏览器事件转换为对应的用户操作行为的实现方法不作限定。
在本发明实施例中,在得到浏览器事件对应的用户操作行为之后,可以对所得到的用户操作行为进行记录。
102,基于浏览器页面的文档对象模型,对浏览器页面中被施加用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录。
在本发明实施例中,文档对象模型(Document Object Model,简称DOM)是W3C制定的标准接口规范,是一种处理HTML和XML文件的标准应用程序接口(ApplicationProgramming Interface,简称API)。当网页被加载时,浏览器会创建页面的文档对象模型,文档对象模型会呈现为节点树的结构,节点树主要包括元素节点、属性节点和文本节点,其中,元素节点可以为交互时用户操作的对象,属性节点可以为用户操作对象的属性,文本节点可以为用户操作对象中的文本内容,例如,元素节点为按钮,属性节点为按钮的尺寸,文本节点为按钮上显示的文字。
在将监听到的浏览器事件转换为用户操作行为并进行记录之后,可以根据浏览器页面的文档对象模型,确定浏览器页面中被施加用户操作行为的目标元素,以及所确定目标元素的相邻元素和父级元素,例如,目标元素为,其相邻元素为,父级元素为。在确定目标元素及其相邻元素和父级元素之后,可以对所确定目标元素及其相邻元素和父级元素的信息进行记录。从而完成对该用户操作行为的录制。可选地,可以对所确定目标元素及其相邻元素和父级元素的身份标识码(Identity Document,简称ID)进行记录,或者也可以对所确定目标元素及其相邻元素和父级元素的所有属性节点和文本节点的信息进行记录,本发明实施例对所记录的目标元素及其相邻元素和父级元素的信息的类型不作限定。
在本发明实施例中,在完成对Web应用程序的所有用户操作行为的录制之后,可以根据所录制的用户操作行为自动生成对Web应用程序的测试用例。
103,基于浏览器页面的文档对象模型中元素及其相邻元素和父级元素的信息,在浏览器页面中定位所记录的目标元素。
在本发明实施例中,在得到对Web应用程序的测试用例之后,可以通过对测试用例的重放,对Web应用程序进行自动测试。在对测试用例进行重放时,可以根据浏览器页面的文档对象模型,将每一个元素及其相邻元素和父级元素的信息,与所记录的目标元素及其相邻元素和父级元素的信息进行匹配,在浏览器页面的文档对象模型中定位所记录的目标元素。本发明实施例对根据浏览器页面的文档对象模型中元素及其相邻元素和父级元素的信息在浏览器页面中定位所记录的目标元素的实现方法不作限定。
可选地,若在进行录制时,所记录的为目标元素及其相邻元素和父级元素的身份标识码,在进行重放时,可以将浏览器页面的文档对象模型中的每一个元素及其相邻元素和父级元素的身份标识码,与所记录的目标元素及其相邻元素和父级元素的身份标识码进行匹配,根据匹配的结果在浏览器页面中定位所记录的目标元素;若在进行录制时,所记录的为目标元素及其相邻元素和父级元素的所有属性节点和文本节点的信息,在进行重放时,可以将浏览器页面的文档对象模型中的每一个元素及其相邻元素和父级元素的所有属性节点和文本节点的信息,与所记录的目标元素及其相邻元素和父级元素的所有属性节点和文本节点的信息进行匹配,根据匹配的结果在浏览器页面中定位所记录的目标元素。
104,将所记录的目标元素被施加的用户操作行为转换为对应的浏览器事件,控制浏览器对所定位的目标元素执行浏览器事件。
在本发明实施例中,在对测试用例进行重放时,在根据浏览器页面的文档对象模型在浏览器页面中定位所记录的目标元素之后,可以根据用户操作行为与浏览器事件之间的对应关系,将所记录的该目标元素被施加的用户操作行为转换为对应的浏览器事件。本发明实施例对将用户操作行为转换为对应的浏览器事件的实现方法不作限定。
可选地,若在进行录制时,是根据预先设置的匹配规则将浏览器事件转换为对应的用户操作行为,在进行重放时,可以根据预先设置的匹配规则,对所记录的该目标元素被施加的用户操作行为进行匹配,得到该用户操作行为对应的浏览器事件,实现将所记录的用户操作行为转换为对应的浏览器事件;若在进行录制时,是根据预先训练的识别模型将浏览器事件转换为对应的用户操作行为,在进行重放时,可以根据预先训练的识别模型,对所记录的该目标元素被施加的用户操作行为进行匹配,得到该用户操作行为对应的浏览器事件,实现将所记录的用户操作行为转换为对应的浏览器事件。
在本发明实施例中,在得到用户操作行为对应的浏览器事件之后,可以控制浏览器对所定位的目标元素执行所得到的浏览器事件。
可选地,若在测试用例的录制时和在对测试用例进行重放时所使用的浏览器的类型不同,例如,在测试用例的录制时,使用的是IE浏览器,在对测试用例进行重放时,使用的是火狐浏览器(Firefox)或者欧朋浏览器(Opera),为了消除不同类型的浏览器之间差异性的影响,在将所记录的该目标元素被施加的用户操作行为转换为对应的浏览器事件之后,还可以对转换得到的浏览器事件进行浏览器兼容性处理,并控制浏览器对所定位的目标元素执行兼容性处理得到的浏览器事件。
105,对浏览器页面的文档对象模型的变化频率进行监听,在监听到变化频率稳定时结束对用户操作行为的测试。
在本发明实施例中,在对测试用例进行重放时,当控制浏览器执行每一个用户操作行为对应的浏览器事件时,需要等待当前被执行的用户操作行为对应的浏览器事件结束之后,才能执行下一个用户操作行为对应的浏览器事件。可以通过对浏览器页面的文档对象模型的变化频率进行监听,在监听到浏览器页面的文档对象模型的变化频率稳定时,确定当前被执行的用户操作行为对应的浏览器事件结束,从而结束对该用户操作行为的测试,进行对下一个用户操作行为的测试。
可选地,针对测试用例中的每一个用户操作行为,在控制浏览器对所定位的目标元素执行该用户操作行为对应的浏览器事件之后,可以对浏览器页面的文档对象模型的变化频率进行监听,若监听到浏览器页面的文档对象模型的变化频率小于预先设置的频率阈值,则确定对该用户操作行为的测试结束,若监听到浏览器页面的文档对象模型的变化频率大于或等于预先设置的频率阈值,则继续对浏览器页面的文档对象模型的变化频率进行监听。其中预先设置的频率阈值可以根据经验设定,本发明实施例对此不作限定。
例如,用户操作行为在页面中提交一个表单,这一用户操作行为会触发一系列浏览器事件,引起一系列浏览器页面视觉上的变化,如表单关闭、展示提交成功的通知、提交成功后数据的展示等。以上这些浏览器页面视觉上的变化会对浏览器页面的文档对象模型的结构、节点数量、节点属性等造成改变。如表单关闭会减少浏览器页面的文档对象模型的节点数量,提交成功的通知会增加浏览器页面的文档对象模型的节点数量,提交成功后数据的展示会改变浏览器页面的文档对象模型的节点的文本属性。可以给每一种浏览器页面的文档对象模型的改变设置一个分数,如浏览器页面的文档对象模型的节点数量改变为2分,浏览器页面的文档对象模型的节点属性改变为1分,可以通过计算一个预先设定的时间区间内,例如1秒,浏览器页面的文档对象模型的变动分数,作为浏览器页面的文档对象模型的变化频率。若在1秒内浏览器页面的文档对象模型新增3个节点,减少2个节点,2个节点的属性发生变化,计算得到浏览器页面的文档对象模型的变动分数为(5*2)+(2*1)=12/s,即浏览器页面的文档对象模型的变化频率为12/s,若预先设置的频率阈值为2/s,则可以认为这一秒的时间浏览器页面的文档对象模型的变化频率仍未稳定。
本发明实施例提供的Web应用程序自动化测试方法,通过在录制测试用例时将浏览器事件转换为用户操作行为,在重放测试用例进行测试时将用户操作行为转换为浏览器事件,可以提升测试用例的可读性,提升对用户操作行为识别与判定的准确性,对于用户的连贯操作行为也能够进行准确的识别与判定;通过对被施加用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录,在定位目标元素时同时考虑元素的相邻元素和父级元素的信息,可以避免仅通过单一元素进行定位在Web应用程序的布局发生变化时导致定位失效的情况,可以提升测试用例的稳定性,使测试用例更加健壮且易于维护;通过监听浏览器页面的文档对象模型的变化频率进行自动等待,来解决Web应用程序中异步交互带来的不稳定性问题,相比于手动等待方式,更为精确、智能,相比于其他基于信号的等待方式,不受场景限制,更加通用。
请参阅图2,图2是本发明提供的对目标元素及其相邻元素和父级元素的信息进行记录的流程示意图,如图2所示,基于浏览器页面的文档对象模型,对浏览器页面中被施加用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录,至少包括:
201,基于浏览器页面的文档对象模型,获取浏览器页面中被施加用户操作行为的目标元素及其相邻元素和父级元素的信息。
202,对所获取的目标元素及其相邻元素和父级元素的信息进行记录,并记录所获取的元素之间的关系。
在本发明实施例中,目标元素及其相邻元素和父级元素的信息可以包括目标元素及其相邻元素和父级元素的元素节点、属性节点和文本节点等的元数据,这些元数据共同组成了目标元素的多维元数据。可以根据浏览器页面的文档对象模型,获取浏览器页面中被施加用户操作行为的目标元素的多维元数据,并对目标元素的多维元数据及其中各元素之间的关系进行记录。
请参阅图3,图3是本发明提供的在浏览器页面中定位目标元素的流程示意图,如图3所示,基于浏览器页面的文档对象模型中元素及其相邻元素和父级元素的信息,在浏览器页面中定位所记录的目标元素,至少包括:
301,基于浏览器页面的文档对象模型,获取每一个元素及其相邻元素和父级元素的信息。
302,将所记录的目标元素及其相邻元素和父级元素的信息,依据所记录的元素之间的关系与每一个所获取的元素及其相邻元素和父级元素的信息进行匹配,根据匹配的结果在浏览器页面的元素中确定目标元素。
在本发明实施例中,元素及其相邻元素和父级元素的信息可以包括该元素及其相邻元素和父级元素的元素节点、属性节点和文本节点等的元数据,这些元数据共同组成了该元素的多维元数据。可以根据浏览器页面的文档对象模型,获取浏览器页面中每一个元素的多维元数据,并将所记录的目标元素的多维元数据,依据所记录的其中各元素之间的关系与每一个所获取的元素的多维元数据进行匹配,根据匹配的结果在浏览器页面的元素中确定目标元素,实现对目标元素的定位。
例如,在录制时,浏览器页面中被施加用户操作行为的目标元素为A,其父级元素为P,相邻元素为S1和S2,在对A、P、S1和S2的元数据及他们之间的关系进行记录。在重放时,可以首先将浏览器页面中所有的元素的元数据与A的元数据进行匹配,得到所有的元素与A的匹配度,选取匹配度大于预先设定的阈值的元素A1、A2、A3作为候选元素。然后将A1、A2、A3的父级元素P1、P2、P3的元数据分别与P的元数据进行匹配,得到父级元素的匹配度,并将父级元素的匹配度累加至候选元素A1、A2、A3原来的匹配度中,得到候选元素A1、A2、A3新的匹配度。之后将A1、A2、A3的相邻元素的元数据分别与S1、S2的元数据进行匹配,得到相邻元素的匹配度,并将相邻元素的匹配度继续累加至候选元素A1、A2、A3新的匹配度中,得到候选元素A1、A2、A3最终的匹配度。对累加后的候选元素A1、A2、A3最终的匹配度进行排序,将累加后最终的匹配度最高的候选元素确定为目标元素A。
下面对本发明提供的Web应用程序自动化测试装置进行描述,下文描述的Web应用程序自动化测试装置与上文描述的Web应用程序自动化测试方法可相互对应参照。
请参阅图4,图4是本发明提供的Web应用程序自动化测试装置的组成结构示意图,图4所示的Web应用程序自动化测试装置可用来执行图1的Web应用程序自动化测试方法,如图4所示,该Web应用程序自动化测试装置至少包括:
行为识别模块410,用于对浏览器事件进行监听,将监听到的浏览器事件转换为对应的用户操作行为,对用户操作行为进行记录。
元素记录模块420,用于基于浏览器页面的文档对象模型,对浏览器页面中被施加用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录。
元素定位模块430,用于基于浏览器页面的文档对象模型中元素及其相邻元素和父级元素的信息,在浏览器页面中定位所记录的目标元素。
事件执行模块440,用于将所记录的目标元素被施加的用户操作行为转换为对应的浏览器事件,控制浏览器对所定位的目标元素执行浏览器事件。
自动等待模块450,用于对浏览器页面的文档对象模型的变化频率进行监听,在监听到变化频率稳定时结束对用户操作行为的测试。
可选地,行为识别模块410,用于基于预先设置的匹配规则,对监听到的浏览器事件进行匹配,得到浏览器事件对应的用户操作行为。
可选地,事件执行模块440,用于基于预先设置的匹配规则,对所记录的目标元素被施加的用户操作行为进行匹配,得到用户操作行为对应的浏览器事件。
可选地,元素记录模块420,包括:
第一信息获取单元,用于基于浏览器页面的文档对象模型,获取浏览器页面中被施加用户操作行为的目标元素及其相邻元素和父级元素的信息。
信息记录单元,用于对所获取的目标元素及其相邻元素和父级元素的信息进行记录,并记录所获取的元素之间的关系。
元素定位模块430,包括:
第二信息获取单元,用于基于浏览器页面的文档对象模型,获取每一个元素及其相邻元素和父级元素的信息。
元素定位单元,用于将所记录的目标元素及其相邻元素和父级元素的信息,依据所记录的元素之间的关系与对每一个所获取的元素及其相邻元素和父级元素的信息进行匹配,根据匹配的结果在浏览器页面的元素中确定目标元素。
可选地,自动等待模块450,用于对浏览器页面的文档对象模型的变化频率进行监听。
事件执行模块440,用于根据自动等待模块450的监听结果,若监听到变化频率小于预先设置的频率阈值,确定对该用户操作行为的测试结束。
可选地,事件执行模块440,包括:
行为转换单元,用于将所记录的目标元素被施加的用户操作行为转换为对应的浏览器事件。
兼容性处理单元,用于对转换得到的浏览器事件进行浏览器兼容性处理。
控制单元,用于控制浏览器对所定位的目标元素执行兼容性处理得到的浏览器事件。
可选地,用户操作行为包括用户的连贯操作行为。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(CommunicationsInterface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行Web应用程序自动化测试方法,该方法包括:
对浏览器事件进行监听,将监听到的浏览器事件转换为对应的用户操作行为,对所述用户操作行为进行记录;
基于浏览器页面的文档对象模型,对所述浏览器页面中被施加所述用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录;
基于浏览器页面的文档对象模型中元素及其相邻元素和父级元素的信息,在所述浏览器页面中定位所记录的目标元素;
将所记录的所述目标元素被施加的用户操作行为转换为对应的浏览器事件,控制所述浏览器对所定位的目标元素执行所述浏览器事件;
对所述浏览器页面的文档对象模型的变化频率进行监听,在监听到所述变化频率稳定时结束对所述用户操作行为的测试。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施所提供的Web应用程序自动化测试方法,该方法包括:
对浏览器事件进行监听,将监听到的浏览器事件转换为对应的用户操作行为,对所述用户操作行为进行记录;
基于浏览器页面的文档对象模型,对所述浏览器页面中被施加所述用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录;
基于浏览器页面的文档对象模型中元素及其相邻元素和父级元素的信息,在所述浏览器页面中定位所记录的目标元素;
将所记录的所述目标元素被施加的用户操作行为转换为对应的浏览器事件,控制所述浏览器对所定位的目标元素执行所述浏览器事件;
对所述浏览器页面的文档对象模型的变化频率进行监听,在监听到所述变化频率稳定时结束对所述用户操作行为的测试。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时能够实现上述各方法实施所提供的Web应用程序自动化测试方法,该方法包括:
对浏览器事件进行监听,将监听到的浏览器事件转换为对应的用户操作行为,对所述用户操作行为进行记录;
基于浏览器页面的文档对象模型,对所述浏览器页面中被施加所述用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录;
基于浏览器页面的文档对象模型中元素及其相邻元素和父级元素的信息,在所述浏览器页面中定位所记录的目标元素;
将所记录的所述目标元素被施加的用户操作行为转换为对应的浏览器事件,控制所述浏览器对所定位的目标元素执行所述浏览器事件;
对所述浏览器页面的文档对象模型的变化频率进行监听,在监听到所述变化频率稳定时结束对所述用户操作行为的测试。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种Web应用程序自动化测试方法,其特征在于,包括:
对浏览器事件进行监听,将监听到的浏览器事件转换为对应的用户操作行为,对所述用户操作行为进行记录;
基于浏览器页面的文档对象模型,对所述浏览器页面中被施加所述用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录;
基于浏览器页面的文档对象模型中元素及其相邻元素和父级元素的信息,在所述浏览器页面中定位所记录的目标元素;
将所记录的所述目标元素被施加的用户操作行为转换为对应的浏览器事件,控制所述浏览器对所定位的目标元素执行所述浏览器事件;
对所述浏览器页面的文档对象模型的变化频率进行监听,在监听到所述变化频率稳定时结束对所述用户操作行为的测试。
2.根据权利要求1所述的Web应用程序自动化测试方法,其特征在于,所述将监听到的浏览器事件转换为对应的用户操作行为,包括:
基于预先设置的匹配规则,对监听到的浏览器事件进行匹配,得到所述浏览器事件对应的用户操作行为;
所述将所记录的所述目标元素被施加的用户操作行为转换为对应的浏览器事件,包括:
基于所述预先设置的匹配规则,对所记录的所述目标元素被施加的用户操作行为进行匹配,得到所述用户操作行为对应的浏览器事件。
3.根据权利要求2所述的Web应用程序自动化测试方法,其特征在于,所述基于浏览器页面的文档对象模型,对所述浏览器页面中被施加所述用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录,包括:
基于浏览器页面的文档对象模型,获取所述浏览器页面中被施加所述用户操作行为的目标元素及其相邻元素和父级元素的信息;
对所获取的目标元素及其相邻元素和父级元素的信息进行记录,并记录所获取的元素之间的关系;
所述基于浏览器页面的文档对象模型中元素及其相邻元素和父级元素的信息,在所述浏览器页面中定位所记录的目标元素,包括:
基于浏览器页面的文档对象模型,获取每一个元素及其相邻元素和父级元素的信息;
将所记录的目标元素及其相邻元素和父级元素的信息,依据所记录的元素之间的关系与对每一个所获取的元素及其相邻元素和父级元素的信息进行匹配,根据匹配的结果在所述浏览器页面的元素中确定所述目标元素。
4.根据权利要求3所述的Web应用程序自动化测试方法,其特征在于,对所述浏览器页面的文档对象模型的变化频率进行监听,在监听到所述变化频率稳定时结束对所述用户操作行为的测试,包括:
对所述浏览器页面的文档对象模型的变化频率进行监听;
若监听到所述变化频率小于预先设置的频率阈值,确定对所述用户操作行为的测试结束。
5.根据权利要求1至4任一项所述的Web应用程序自动化测试方法,其特征在于,所述将所记录的所述目标元素被施加的用户操作行为转换为对应的浏览器事件,控制所述浏览器对所定位的目标元素执行所述浏览器事件,包括:
将所记录的所述目标元素被施加的用户操作行为转换为对应的浏览器事件;
对转换得到的浏览器事件进行浏览器兼容性处理;
控制所述浏览器对所定位的目标元素执行兼容性处理得到的浏览器事件。
6.根据权利要求5所述的Web应用程序自动化测试方法,其特征在于,所述用户操作行为包括用户的连贯操作行为。
7.一种Web应用程序自动化测试装置,其特征在于,包括:
行为识别模块,用于对浏览器事件进行监听,将监听到的浏览器事件转换为对应的用户操作行为,对所述用户操作行为进行记录;
元素记录模块,用于基于浏览器页面的文档对象模型,对所述浏览器页面中被施加所述用户操作行为的目标元素及其相邻元素和父级元素的信息进行记录;
元素定位模块,用于基于浏览器页面的文档对象模型中元素及其相邻元素和父级元素的信息,在所述浏览器页面中定位所记录的目标元素;
事件执行模块,用于将所记录的所述目标元素被施加的用户操作行为转换为对应的浏览器事件,控制所述浏览器对所定位的目标元素执行所述浏览器事件;
自动等待模块,用于对所述浏览器页面的文档对象模型的变化频率进行监听,在监听到所述变化频率稳定时结束对所述用户操作行为的测试。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述Web应用程序自动化测试方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述Web应用程序自动化测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111545001.0A CN114490315B (zh) | 2021-12-16 | 2021-12-16 | Web应用程序自动化测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111545001.0A CN114490315B (zh) | 2021-12-16 | 2021-12-16 | Web应用程序自动化测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114490315A CN114490315A (zh) | 2022-05-13 |
CN114490315B true CN114490315B (zh) | 2022-09-13 |
Family
ID=81494422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111545001.0A Active CN114490315B (zh) | 2021-12-16 | 2021-12-16 | Web应用程序自动化测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490315B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020246A (zh) * | 2012-12-18 | 2013-04-03 | 北京奇虎科技有限公司 | 用于浏览器的网页数据展现方法及装置 |
CN106294107A (zh) * | 2015-05-27 | 2017-01-04 | 富士通株式会社 | 生成网页页面的测试用例的方法和装置 |
CN110603525A (zh) * | 2017-03-31 | 2019-12-20 | 沃拉斯提技术解决方案公司 | Web应用程序的测试方法和系统 |
CN111104315A (zh) * | 2019-11-29 | 2020-05-05 | 京东数字科技控股有限公司 | 一种测试脚本生成方法及装置、计算机可读存储介质 |
CN112148579A (zh) * | 2019-06-26 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 一种用户界面的测试方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9524277B2 (en) * | 2013-06-27 | 2016-12-20 | Paypal, Inc. | Execution and display of events in a plurality of web browsers and devices systems and method |
US10025762B2 (en) * | 2016-06-10 | 2018-07-17 | International Business Machines Corporation | Generating a document object model (DOM) differential |
CN106599075B (zh) * | 2016-11-14 | 2019-07-09 | 武汉斗鱼网络科技有限公司 | 一种统计用户行为数据的方法及装置 |
-
2021
- 2021-12-16 CN CN202111545001.0A patent/CN114490315B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020246A (zh) * | 2012-12-18 | 2013-04-03 | 北京奇虎科技有限公司 | 用于浏览器的网页数据展现方法及装置 |
CN106294107A (zh) * | 2015-05-27 | 2017-01-04 | 富士通株式会社 | 生成网页页面的测试用例的方法和装置 |
CN110603525A (zh) * | 2017-03-31 | 2019-12-20 | 沃拉斯提技术解决方案公司 | Web应用程序的测试方法和系统 |
CN112148579A (zh) * | 2019-06-26 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 一种用户界面的测试方法和装置 |
CN111104315A (zh) * | 2019-11-29 | 2020-05-05 | 京东数字科技控股有限公司 | 一种测试脚本生成方法及装置、计算机可读存储介质 |
Non-Patent Citations (3)
Title |
---|
"Information Flow Control for Event Handling and the DOM in Web Browsers";Vineet Rajani 等;《2015 IEEE 28th Computer Security Foundations Symposium》;20150907;第366-379页 * |
"基于时间频率加权DOM的Web信息抽取方法";马瑞民 等;《长江大学学报(自然科学版)》;20110131;第8卷(第1期);第86-88页 * |
《一种Web应用跨浏览器兼容性测试方法》;韦庆杰 等;《计算机工程与应用》;20181229;第55-59页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114490315A (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9268753B2 (en) | Automated addition of accessiblity features to documents | |
US20160259773A1 (en) | System and method for identifying web elements present on a web-page | |
CN112416363B (zh) | 一种前后端crud代码的生成方法及装置 | |
US20110307488A1 (en) | Information processing apparatus, information processing method, and program | |
US20220139063A1 (en) | Filtering detected objects from an object recognition index according to extracted features | |
CN104516635A (zh) | 管理内容显示 | |
CN111679976A (zh) | 一种页面对象的查找方法及装置 | |
US20150161160A1 (en) | Application Localization | |
US20160034378A1 (en) | Method and system for testing page link addresses | |
CN115982005A (zh) | 基于人工智能的自动化测试方法和装置 | |
CN111143642A (zh) | 网页分类方法、装置、电子设备及计算机可读存储介质 | |
CN113849718A (zh) | 互联网烟草科技情报信息自动采集装置、方法与存储介质 | |
CN110020279B (zh) | 页面数据处理方法、装置及存储介质 | |
US20150169292A1 (en) | Computer-readable recording medium storing program for managing scripts, script management device, and script management method | |
CN114490315B (zh) | Web应用程序自动化测试方法和装置 | |
US20100199165A1 (en) | Updating wrapper annotations | |
JP2009230618A (ja) | 設計書作成プログラム、該装置、及び該方法 | |
CN115481025A (zh) | 自动化测试的脚本录制方法、装置、计算机设备及介质 | |
US20140245159A1 (en) | Transport script generation based on a user interface script | |
CN114780891A (zh) | 基于页面渲染贡献度的网站关键资源分析方法和装置 | |
CN113468050A (zh) | 基于画布的测试方法、装置、计算机设备及存储介质 | |
JP6142878B2 (ja) | 情報システムの性能評価装置、方法およびプログラム | |
AU2021106041A4 (en) | Methods and systems for obtaining and storing web pages | |
US11783116B2 (en) | Resembling transition identifying apparatus, resembling transition identifying method and program | |
US20230282013A1 (en) | Automated key-value pair extraction |
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 | ||
CP03 | Change of name, title or address |
Address after: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100086 Patentee after: Beijing Zhiling Haina Technology Co.,Ltd. Country or region after: China Address before: 100086 8th floor, block a, Yingdu building, No.48, Zhichun Road, Haidian District, Beijing Patentee before: Beijing zhilinghaina Technology Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |