CN115481025A - 自动化测试的脚本录制方法、装置、计算机设备及介质 - Google Patents
自动化测试的脚本录制方法、装置、计算机设备及介质 Download PDFInfo
- Publication number
- CN115481025A CN115481025A CN202211142757.5A CN202211142757A CN115481025A CN 115481025 A CN115481025 A CN 115481025A CN 202211142757 A CN202211142757 A CN 202211142757A CN 115481025 A CN115481025 A CN 115481025A
- Authority
- CN
- China
- Prior art keywords
- recording
- script
- target
- selector
- determining
- 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
Links
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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- 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
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)
- Stored Programmes (AREA)
Abstract
本申请涉及一种自动化测试的脚本录制方法、装置、计算机设备及介质。该方法在获取到录制开始指令时,监听当前页面的触发事件,在触发事件满足预设条件时,确定触发事件对应的元素为目标元素,提取目标元素的文档对象模型,使用递归算法对文档对象模型进行向上查找直至找到当前页面对应根元素标签,确定目标元素对应的访问路径和位置信息,提取访问路径的属性信息,根据属性信息,确定访问路径对应的目标选择器,在获取到录制结束指令时,根据访问路径、位置信息和目标选择器,生成可执行脚本,通过触发页面信息录制得到脚本,自动化程度较高,可操作性较强,无需了解页面元素的属性,从而降低了对录制人员的能力要求,提高了测试脚本的生成效率。
Description
技术领域
本申请适用于自动化测试技术领域,尤其涉及一种自动化测试的脚本录制方法、装置、计算机设备及介质。
背景技术
目前,录制界面(User Interface,UI)测试是测试工作中很重要的一项工作,通过UI自动化测试工具可以将一些重复性高、耗时性长、简单的工作自动运行,从而减少测试人员工作量,提高测试效率。在使用UI自动化测试工具自动运行案例前,测试人员首先要编写测试脚本作为UI自动化测试案例。在录制UI自动化测试案例时,需要选取测试步骤操作的页面元素,记录其相关信息作为执行脚本的参数。
录制测试脚本的方式在使用市面上常见的自动化测试框架时,通常需要在电脑安装特定的应用程序,应用程序需要使用专门的调试包,再用数据线连接手机与电脑才能使用。自动化测试框架虽然可以辅助识别出页面元素的XPath,但需要测试人员通过硬编码的方式记录在自动化测试脚本中。另外,测试人员如果想编写出质量较高的自动化测试脚本,需要了解案例执行动作中页面元素的相关属性,包括页面地址、元素的XPath访问路径、元素的fullxpath访问路径、元素所在页面坐标位置等信息,再根据案例步骤的场景选择合适的参数编写脚本,否则,一旦页面元素发生变化导致案例执行失败,则可能需要重新编写测试脚本,因而录制的成功率较低,导致形成测试脚本的效率较差。因此,如何自动录制测试用的脚本,以提高测试脚本的生成效率成为亟待解决的问题。
发明内容
有鉴于此,本申请实施例提供了一种自动化测试的脚本录制方法、装置、计算机设备及介质,以解决如何自动录制测试用的脚本,以提高测试脚本的生成效率的问题。
第一方面,本申请实施例提供一种自动化测试的脚本录制方法,所述脚本录制方法包括:
在获取到录制开始指令时,监听当前页面的触发事件,在所述触发事件满足预设条件时,确定所述触发事件对应的元素为目标元素;
提取所述目标元素的文档对象模型,使用递归算法对所述文档对象模型进行向上查找直至查找到所述当前页面对应根元素标签,确定所述目标元素对应的访问路径和位置信息;
提取所述访问路径的属性信息,根据所述属性信息,确定所述访问路径对应的目标选择器;
在获取到录制结束指令时,根据所述访问路径、所述位置信息和所述目标选择器,生成可执行脚本。
在一实施方式中,所述脚本录制方法还包括:
通过在页面管理器中引入的JS插件与录制设备的native进行通信,得到通信结果;
在检测到所述通信结果为所述录制设备处于录制状态时,确定获取到录制开始指令。
在一实施方式中,在生成可执行脚本之后,还包括:
将所述录制设备的录制状态切换为不处于录制状态;
通过所述JS插件与所述录制设备的native进行通信的结果所述录制设备为不处于录制状态,则停止脚本录制。
在一实施方式中,监听当前页面的触发事件包括:
通过所述JS插件监听当前页面的触发事件;
在检测到所述触发事件的触发时长大于时长阈值时,确定所述触发事件满足预设条件。
在一实施方式中,在监听当前页面的触发事件之后,还包括:
若检测到所述触发事件停止触发,则确定获取到录制结束指令;
根据所述访问路径、所述位置信息和所述目标选择器,生成可执行脚本包括:
根据所述访问路径、所述位置信息和所述目标选择器,生成录制弹窗;
采集所述录制弹窗中录入的案例信息;
将所述案例信息关联所述访问路径、所述位置信息和所述目标选择器,生成可执行脚本。
在一实施方式中,确定所述触发事件对应的元素为目标元素包括:
定位所述触发事件的触发位置;
根据所述触发位置和所述当前页面中元素与位置的映射表,确定所述触发位置对应的目标元素,其中,所述目标元素为所述触发事件对应的元素。
在一实施方式中,根据所述属性信息,确定所述访问路径对应的目标选择器包括:
使用预设匹配规则与所述属性信息进行匹配,得到匹配结果;
若所述匹配结果为包含ID元素,则选择ID选择器作为目标选择器;
若所述匹配结果为层级可变,则选择class选择器作为目标选择器;
若所述匹配结果为文本节点,则获取所述目标元素的内容,并根据所述内容生成查找选择器,将所述查找选择器作为目标选择器。
第二方面,本申请实施例提供一种自动化测试的脚本录制装置,所述脚本录制装置包括:
录制元素确定模块,用于在获取到录制开始指令时,监听当前页面的触发事件,在所述触发事件满足预设条件时,确定所述触发事件对应的元素为目标元素;
录制元素解析模块,用于提取所述目标元素的文档对象模型,使用递归算法对所述文档对象模型进行向上查找直至查找到所述当前页面对应根元素标签,确定所述目标元素对应的访问路径和位置信息;
选择器确定模块,用于提取所述访问路径的属性信息,根据所述属性信息,确定所述访问路径对应的目标选择器;
脚本生成模块,用于在获取到录制结束指令时,根据所述访问路径、所述位置信息和所述目标选择器,生成可执行脚本。
在一实施方式中,所述脚本录制装置还包括:
通信模块,用于通过在页面管理器中引入的JS插件与录制设备的native进行通信,得到通信结果;
开始指令确定模块,用于在检测到所述通信结果为所述录制设备处于录制状态时,确定获取到录制开始指令。
在一实施方式中,所述脚本录制装置还包括:
状态切换模块,用于在生成可执行脚本之后,将所述录制设备的录制状态切换为不处于录制状态;
停止录制模块,用于通过所述JS插件与所述录制设备的native进行通信的结果所述录制设备为不处于录制状态,则停止脚本录制。
在一实施方式中,所述录制元素确定模块包括:
触发事件监听单元,用于通过所述JS插件监听当前页面的触发事件;
事件判定单元,用于在检测到所述触发事件的触发时长大于时长阈值时,确定所述触发事件满足预设条件。
在一实施方式中,所述脚本录制装置还包括:
结束指令确定模块,用于在监听当前页面的触发事件之后,若检测到所述触发事件停止触发,则确定获取到录制结束指令;
所述脚本生成模块包括:
弹窗生成单元,用于根据所述访问路径、所述位置信息和所述目标选择器,生成录制弹窗;
信息采集单元,用于采集所述录制弹窗中录入的案例信息;
脚本生成单元,用于将所述案例信息关联所述访问路径、所述位置信息和所述目标选择器,生成可执行脚本。
在一实施方式中,所述录制元素确定模块包括:
位置定位单元,用于定位所述触发事件的触发位置;
元素确定单元,用于根据所述触发位置和所述当前页面中元素与位置的映射表,确定所述触发位置对应的目标元素,其中,所述目标元素为所述触发事件对应的元素。
在一实施方式中,所述选择器确定模块包括:
匹配单元,用于使用预设匹配规则与所述属性信息进行匹配,得到匹配结果;
第一选择器确定单元,用于若所述匹配结果为包含ID元素,则选择ID选择器作为目标选择器;
第二选择器确定单元,用于若所述匹配结果为层级可变,则选择class选择器作为目标选择器;
第三选择器确定单元,用于若所述匹配结果为文本节点,则获取所述目标元素的内容,并根据所述内容生成查找选择器,将所述查找选择器作为目标选择器。
第三方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的脚本录制方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的脚本录制方法。
本申请实施例与现有技术相比存在的有益效果是:本申请在获取到录制开始指令时,监听当前页面的触发事件,在所述触发事件满足预设条件时,确定所述触发事件对应的元素为目标元素,提取所述目标元素的文档对象模型,使用递归算法对所述文档对象模型进行向上查找直至查找到所述当前页面对应根元素标签,确定所述目标元素对应的访问路径和位置信息,提取所述访问路径的属性信息,根据所述属性信息,确定所述访问路径对应的目标选择器,在获取到录制结束指令时,根据所述访问路径、所述位置信息和所述目标选择器,生成可执行脚本,通过触发页面信息录制得到脚本,自动化程度较高,可操作性较强,无需了解页面元素的属性,从而降低了对录制人员的能力要求,提高了测试脚本的生成效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的一种自动化测试的脚本录制方法的一应用环境示意图;
图2是本申请实施例二提供的一种自动化测试的脚本录制方法的流程示意图;
图3是本申请实施例三提供的一种自动化测试的脚本录制方法的流程示意图;
图4是本申请实施例四提供的一种自动化测试的脚本录制装置的结构示意图;
图5是本申请实施例五提供的一种计算机设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
应理解,以下实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了说明本申请的技术方案,下面通过具体实施例来进行说明。
本申请实施例一提供的一种自动化测试的脚本录制方法,可应用在如图1的应用环境中,其中,客户端与服务端进行通信。其中,客户端包括但不限于掌上电脑、桌上型计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、云端计算机设备、个人数字助理(personal digital assistant,PDA)等计算机设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
参见图2,是本申请实施例二提供的一种自动化测试的脚本录制方法的流程示意图,上述自动化测试的脚本录制方法应用于图1中的服务端,服务端对应的计算机设备能够支撑相应的客户端运行的应用程序(APP),以在客户端中展示相应的页面。本申请中页面可以为超文本标记语言(Hyper Text Markup Language,HTML)形成的HTML5页面。用户在APP展示的页面上进行相应的操作,服务端收集相应的操作信息,以执行脚本录制方法。如图2所示,该自动化测试的脚本录制方法可以包括以下步骤:
步骤S201,在获取到录制开始指令时,监听当前页面的触发事件,在触发事件满足预设条件时,确定触发事件对应的元素为目标元素。
本申请中,用户在客户端的APP中开启录制模式,也即是给出录制开始指令,与该客户端连接的服务端(即本申请的脚本录制方法的执行设备)能够在客户端给出录制开始指令后,获取到该录制开始指令,从而进入监听当前页面的触发事件的流程中。
当前页面即用户在客户端的APP中所打开的页面,该页面可以是基于HTML5所开发的页面,当前页面上展示有相应的元素,例如,图片、文字等,每个元素都对应其在当前页面中的位置。
当前页面内每个元素均可以被触发,形成一触发事件,触发可以是指通过鼠标操作、通过触屏操作或者通过其他输入设备进行相应的操作,其中,操作可以是指点击、拖拽等。
预设条件为根据需求设定的来判定目标元素的条件,由于在当前页面中可能存在多个元素,用户可能会针对某一个元素进行触发,然而可能存在误操作的情况,因而,为了避免误操作导致目标元素选取错误的情况,而设置了该预设条件。该预设条件设置的目的防止误操作,因而,可以根据对误操作的认知来设定不同的预设条件。例如,预设条件可以为一时长阈值,触发事件的触发时长小于该时长阈值,可认定为误操作,触发事件的触发时长大于或者等于该时长阈值时,可认定为正常操作。
触发事件的目的为触发当前页面中某一个元素,在触发事件满足条件时即可确定对应的元素为目标元素,也即是用户想要针对该目标元素进行录制。
可选的是,确定触发事件对应的元素为目标元素包括:
定位触发事件的触发位置;
根据触发位置和当前页面中元素与位置的映射表,确定触发位置对应的目标元素,其中,目标元素为触发事件对应的元素。
其中,针对一触发事件而言,其本质上为针对页面中某一位置处,而在该位置处可能存在元素,也可能不存在元素,因而在得到满足预设条件的触发事件后,对该触发事件发生的触发位置进行定位。其中,定位可分为相对定位、绝对定位、固定定位、静态定位,相对定位就是相对于自己以前在标准流中的位置来移动,绝对定位就是相对于body来定位。
任一页面均会有元素与位置的映射表,因而,根据定位到的出发位置即可确定出对应的元素。
步骤S202,提取目标元素的文档对象模型,使用递归算法对文档对象模型进行向上查找直至查找到当前页面对应根元素标签,确定目标元素对应的访问路径和位置信息。
本申请中,目标元素的文档对象模型(Document Object Model,DOM)即为元素的DOM,其为处理可扩展置标语言的标准编程接口,其是一种与平台和语言无关的应用程序接口(Application Programming Interface,API),它可以动态地访问程序和脚本,更新其内容、结构和www文档的风格,其中HTML和XML文档是通过说明部分定义的,文档可以进一步被处理,处理的结果可以加入到当前的页面。DOM本质上是一种基于树的API文档,它要求在处理过程中整个文档都表示在存储器中。
在进行HTML5编写页面时,每个元素均对应有DOM,基于该DOM,使用递归的方式进行向上查找,即可找到该DOM的根元素,也即是当前页面的根元素HTML标签。从该根元素HTML标签开始至元素的标签,即可确定该元素的访问路径,其中,访问路径可以包括xpath访问路径(即相对路径)、fullxpath访问路径(即绝对路径),从而可以确定该元素在当前页面中的坐标等位置信息。
步骤S203,提取访问路径的属性信息,根据属性信息,确定访问路径对应的目标选择器。
本申请中,属性信息可以是指访问路径中能够表征元素特征的信息,元素特征可以是指页面元素的类别等属性特征,例如,页面元素包含动态属性,则可以确定该页面元素为动态页面元素。第一特征区别与第二特征,第一特征可以是指页面元素中的ID属性,第二特征可以是指页面元素中的动态属性,当页面元素中含有ID属性也即是元素特征包含第一特征时,使用ID选择器生成对应页面元素的页面元素路径;当页面元素中含有动态属性也即是元素特征包含第二特征时,使用class选择器生成对应页面元素的页面元素路径。
应当理解的是,在一个页面内可以同时存在多个页面元素,相应地,在测试用例中也可以同时存在有多个页面元素,针对不同的页面元素可以使用不同的选择器来生成页面路径,从而有助于区分不同的页面元素,实现页面元素准确且高效地定位。
录制中需要用到元素路径,元素路径的生成需要依靠相应的生成规则来实现,元素路径生成规则可以根据实际应用需求来设定,实际应用需求可以是指如果应用场景中对于测试用例的要求为不包含动态元素的情况,则可以确定无需采用特定的元素路径生成规则来生成路径,例如,特定的元素路径生成规则可以是指ID选择器和class选择器对应的规则,即采用常规的路径生成规则即可。
上述的元素路径生成规则为在测试用例进行录制时使用,根据用户的选择来确定生成规则,从而使用选中元素路径生成规则来对测试用例生成页面元素路径。
可选的是,根据属性信息,确定访问路径对应的目标选择器包括:
使用预设匹配规则与属性信息进行匹配,得到匹配结果;
若匹配结果为包含ID元素,则选择ID选择器作为目标选择器;
若匹配结果为层级可变,则选择class选择器作为目标选择器;
若匹配结果为文本节点,则获取目标元素的内容,并根据内容生成查找选择器,将查找选择器作为目标选择器。
其中,预设匹配规则中可以包括匹配到ID元素、层级可变和文本节点等多种匹配条件,对应的选择器可以包括ID选择器、class选择器和文本选择器等,具体可以是,如果页面元素路径中包含ID,则考虑优先使用ID选择器生成脚本;为了为避免在业务代码中增加ID等操作,录制时识别到页面元素路径中包含一些动态元素的特征,则可以优先使用class选择器生成脚本;当页面元素被识别文本节点,且对应内容不为空,则可以记录其节点文本内容,生成查询文本选择器,并使用文本选择器生成脚本。
可见,当元素路径包含id元素时,优先使用id作为选择器,以提高脚本测试的成功率。当包含页面弹窗等常见的UI组件的class选择器时,页面中通常是动态生成的,元素xpath的层级不固定,因此优先选择class作为选择器,以提高脚本测试的成功率。当元素为文本节点时,自动生成按元素内容查找的选择器,并且忽略子层元素的序列,可以减少页面功能变化时xpath失效的概率。
步骤S204,在获取到录制结束指令时,根据访问路径、位置信息和目标选择器,生成可执行脚本。
本申请中,测试用脚本所需的基本数据为访问路径、位置信息和目标选择器,基于此可以唯一确定相应的元素,从而可以用于构成测试用脚本,用于执行实现测试。
可选的是,脚本录制方法还包括:
通过在页面管理器中引入的JS插件与录制设备的native进行通信,得到通信结果;
在检测到通信结果为录制设备处于录制状态时,确定获取到录制开始指令。
其中,上述服务端所支撑的页面需要采集用户在APP展示页面上的操作,此时,可以通过在页面管理器中引入一自定义的JS(JavaScript)插件与APP中的native进行通信,从而来获取APP中用户的操作,录制设备也即是客户端,例如,用户在APP中启动录制,相应的通过native获得通信结果为客户端处于录制状态,即获取到录制开始指令。
可选的是,在生成可执行脚本之后,还包括:
将录制设备的录制状态切换为不处于录制状态;
通过JS插件与录制设备的native进行通信的结果录制设备为不处于录制状态,则停止脚本录制。
其中,在生成了可执行脚本制后,可知录制完成,相应的录制状态切换为不处于录制状态,通过native获得通信结果为不处于录制状态,即停止脚本录制。
可选的是,监听当前页面的触发事件包括:
通过JS插件监听当前页面的触发事件;
在检测到触发事件的触发时长大于时长阈值时,确定触发事件满足预设条件。
其中,在引入JS插件的情况下,还可以将监听的功能融入该JS插件,即通过该JS插件监听页面的事件,解析该触发事件,从中获取到该触发事件的触发时长,来判断用户是长时间触发还是短时间触发,即小于时长阈值为短时间触发,大于时长阈值为长时间触发。短时间触发可能为一个误触发,因而将时长阈值作为预设条件。
本申请实施例在获取到录制开始指令时,监听当前页面的触发事件,在触发事件满足预设条件时,确定触发事件对应的元素为目标元素,提取目标元素的文档对象模型,使用递归算法对文档对象模型进行向上查找直至查找到当前页面对应根元素标签,确定目标元素对应的访问路径和位置信息,提取访问路径的属性信息,根据属性信息,确定访问路径对应的目标选择器,在获取到录制结束指令时,根据访问路径、位置信息和目标选择器,生成可执行脚本,通过触发页面信息录制得到脚本,自动化程度较高,可操作性较强,无需了解页面元素的属性,从而降低了对录制人员的能力要求,提高了测试脚本的生成效率。
参见图3,是本申请实施例三提供的一种自动化测试的脚本录制方法的流程示意图,如图3所示,该自动化测试的脚本录制方法可以包括以下步骤:
步骤S301,在获取到录制开始指令时,监听当前页面的触发事件,在触发事件满足预设条件时,确定触发事件对应的元素为目标元素。
步骤S302,提取目标元素的文档对象模型,使用递归算法对文档对象模型进行向上查找直至查找到当前页面对应根元素标签,确定目标元素对应的访问路径和位置信息。
步骤S303,提取访问路径的属性信息,根据属性信息,确定访问路径对应的目标选择器。
其中,步骤S301至步骤S303与上述步骤S201至步骤S203的内容相同,可参考步骤S201至步骤S203的描述,在此不再赘述。
步骤S304,若检测到触发事件停止触发,则确定获取到录制结束指令。
本申请中,录制时,用户需要一直触发对应的元素,也即是一直电机页面中的元素,直至达到所需的录制时长,该录制时长可以根据需求设定。需说明,如果过程中用到了上述的时长阈值,该录制时长与时长阈值可以为相等,也可以为大于该时长阈值。
在步骤S301中对触发事件进行了监听,因而可以实时获取到触发事件的触发开始时间和触发结束时间,触发结束时间也即是触发事件停止,此时可以认定该获取到录制结束指令。当然,录制结束指令也可以是用户操作APP得到,此时触发事件的触发时长可以不用满足录制时长。
步骤S305,根据访问路径、位置信息和目标选择器,生成录制弹窗。
本申请中,在触发停止后,生成相应的录制弹窗,录制弹窗中可以展示访问路径、位置信息和目标选择器等信息,同时用户可以填充相应的案例信息,以实现自定义、命名等,便于后续区分录制的脚本。
步骤S306,采集录制弹窗中录入的案例信息,将案例信息关联访问路径、位置信息和目标选择器,生成可执行脚本。
本申请中,用户在录制弹窗中录入案例信息之后,将案例信息与访问路径、位置信息和目标选择器关联,生成对应的可执行脚本,其中,案例信息除了包括命名等信息外,还可以包括脚本执行条件等信息,用于在对应的执行条件下执行对应的脚本。
本申请实施例在获取到录制开始指令时,监听当前页面的触发事件,在触发事件满足预设条件时,确定触发事件对应的元素为目标元素,提取目标元素的文档对象模型,使用递归算法对文档对象模型进行向上查找直至查找到当前页面对应根元素标签,确定目标元素对应的访问路径和位置信息,提取访问路径的属性信息,根据属性信息,确定访问路径对应的目标选择器,若检测到触发事件停止触发,则确定获取到录制结束指令,根据访问路径、位置信息和目标选择器,生成录制弹窗,采集录制弹窗中录入的案例信息,将案例信息关联访问路径、位置信息和目标选择器,生成可执行脚本,通过触发页面信息录制得到脚本,自动化程度较高,可操作性较强,无需了解页面元素的属性,从而降低了对录制人员的能力要求,提高了测试脚本的生成效率。
对应于上文实施例的自动化测试的脚本录制方法,图4示出了本申请实施例四提供的自动化测试的脚本录制装置的结构框图,上述脚本录制装置应用于图1中的服务端,服务端对应的计算机设备能够支撑相应的客户端运行的APP,以在客户端中展示相应的页面。本申请中页面可以为HTML5页面。用户在APP展示的页面上进行相应的操作,服务端收集相应的操作信息,以执行脚本录制方法。为了便于说明,仅示出了与本申请实施例相关的部分。
参见图4,该脚本录制装置包括:
录制元素确定模块41,用于在获取到录制开始指令时,监听当前页面的触发事件,在触发事件满足预设条件时,确定触发事件对应的元素为目标元素;
录制元素解析模块42,用于提取目标元素的文档对象模型,使用递归算法对文档对象模型进行向上查找直至查找到当前页面对应根元素标签,确定目标元素对应的访问路径和位置信息;
选择器确定模块43,用于提取访问路径的属性信息,根据属性信息,确定访问路径对应的目标选择器;
脚本生成模块44,用于在获取到录制结束指令时,根据访问路径、位置信息和目标选择器,生成可执行脚本。
可选的是,上述脚本录制装置还包括:
通信模块,用于通过在页面管理器中引入的JS插件与录制设备的native进行通信,得到通信结果;
开始指令确定模块,用于在检测到通信结果为录制设备处于录制状态时,确定获取到录制开始指令。
可选的是,上述脚本录制装置还包括:
状态切换模块,用于在生成可执行脚本之后,将录制设备的录制状态切换为不处于录制状态;
停止录制模块,用于通过JS插件与录制设备的native进行通信的结果录制设备为不处于录制状态,则停止脚本录制。
可选的是,上述录制元素确定模块41包括:
触发事件监听单元,用于通过JS插件监听当前页面的触发事件;
事件判定单元,用于在检测到触发事件的触发时长大于时长阈值时,确定触发事件满足预设条件。
可选的是,上述脚本录制装置还包括:
结束指令确定模块,用于在监听当前页面的触发事件之后,若检测到触发事件停止触发,则确定获取到录制结束指令;
上述脚本生成模块44包括:
弹窗生成单元,用于根据访问路径、位置信息和目标选择器,生成录制弹窗;
信息采集单元,用于采集录制弹窗中录入的案例信息;
脚本生成单元,用于将案例信息关联访问路径、位置信息和目标选择器,生成可执行脚本。
可选的是,上述录制元素确定模块41包括:
位置定位单元,用于定位触发事件的触发位置;
元素确定单元,用于根据触发位置和当前页面中元素与位置的映射表,确定触发位置对应的目标元素,其中,目标元素为触发事件对应的元素。
可选的是,上述选择器确定模块43包括:
匹配单元,用于使用预设匹配规则与属性信息进行匹配,得到匹配结果;
第一选择器确定单元,用于若匹配结果为包含ID元素,则选择ID选择器作为目标选择器;
第二选择器确定单元,用于若匹配结果为层级可变,则选择class选择器作为目标选择器;
第三选择器确定单元,用于若匹配结果为文本节点,则获取目标元素的内容,并根据内容生成查找选择器,将查找选择器作为目标选择器。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
图5为本申请实施例五提供的一种计算机设备的结构示意图。如图5所示,该实施例的计算机设备包括:至少一个处理器(图5中仅示出一个)、存储器以及存储在存储器中并可在至少一个处理器上运行的计算机程序,处理器执行计算机程序时实现上述任意各个自动化测试的脚本录制方法实施例中的步骤。
该计算机设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图5仅仅是计算机设备的举例,并不构成对计算机设备的限定,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括网络接口、显示屏和输入装置等。
所称处理器可以是CPU,该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器包括可读存储介质、内存储器等,其中,内存储器可以是计算机设备的内存,内存储器为可读存储介质中的操作***和计算机可读指令的运行提供环境。可读存储介质可以是计算机设备的硬盘,在另一些实施例中也可以是计算机设备的外部存储设备,例如,计算机设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器还可以既包括计算机设备的内部存储单元也包括外部存储设备。存储器用于存储操作***、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,该其他程序如计算机程序的程序代码等。存储器还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
本申请实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现可实现上述方法实施例中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种自动化测试的脚本录制方法,其特征在于,所述脚本录制方法包括:
在获取到录制开始指令时,监听当前页面的触发事件,在所述触发事件满足预设条件时,确定所述触发事件对应的元素为目标元素;
提取所述目标元素的文档对象模型,使用递归算法对所述文档对象模型进行向上查找直至查找到所述当前页面对应根元素标签,确定所述目标元素对应的访问路径和位置信息;
提取所述访问路径的属性信息,根据所述属性信息,确定所述访问路径对应的目标选择器;
在获取到录制结束指令时,根据所述访问路径、所述位置信息和所述目标选择器,生成可执行脚本。
2.根据权利要求1所述的脚本录制方法,其特征在于,所述脚本录制方法还包括:
通过在页面管理器中引入的JS插件与录制设备的native进行通信,得到通信结果;
在检测到所述通信结果为所述录制设备处于录制状态时,确定获取到录制开始指令。
3.根据权利要求2所述的脚本录制方法,其特征在于,在生成可执行脚本之后,还包括:
将所述录制设备的录制状态切换为不处于录制状态;
通过所述JS插件与所述录制设备的native进行通信的结果所述录制设备为不处于录制状态,则停止脚本录制。
4.根据权利要求2所述的脚本录制方法,其特征在于,监听当前页面的触发事件包括:
通过所述JS插件监听当前页面的触发事件;
在检测到所述触发事件的触发时长大于时长阈值时,确定所述触发事件满足预设条件。
5.根据权利要求1所述的脚本录制方法,其特征在于,在监听当前页面的触发事件之后,还包括:
若检测到所述触发事件停止触发,则确定获取到录制结束指令;
根据所述访问路径、所述位置信息和所述目标选择器,生成可执行脚本包括:
根据所述访问路径、所述位置信息和所述目标选择器,生成录制弹窗;
采集所述录制弹窗中录入的案例信息;
将所述案例信息关联所述访问路径、所述位置信息和所述目标选择器,生成可执行脚本。
6.根据权利要求1所述的脚本录制方法,其特征在于,确定所述触发事件对应的元素为目标元素包括:
定位所述触发事件的触发位置;
根据所述触发位置和所述当前页面中元素与位置的映射表,确定所述触发位置对应的目标元素,其中,所述目标元素为所述触发事件对应的元素。
7.根据权利要求1至6任一项所述的脚本录制方法,其特征在于,根据所述属性信息,确定所述访问路径对应的目标选择器包括:
使用预设匹配规则与所述属性信息进行匹配,得到匹配结果;
若所述匹配结果为包含ID元素,则选择ID选择器作为目标选择器;
若所述匹配结果为层级可变,则选择class选择器作为目标选择器;
若所述匹配结果为文本节点,则获取所述目标元素的内容,并根据所述内容生成查找选择器,将所述查找选择器作为目标选择器。
8.一种自动化测试的脚本录制装置,其特征在于,所述脚本录制装置包括:
录制元素确定模块,用于在获取到录制开始指令时,监听当前页面的触发事件,在所述触发事件满足预设条件时,确定所述触发事件对应的元素为目标元素;
录制元素解析模块,用于提取所述目标元素的文档对象模型,使用递归算法对所述文档对象模型进行向上查找直至查找到所述当前页面对应根元素标签,确定所述目标元素对应的访问路径和位置信息;
选择器确定模块,用于提取所述访问路径的属性信息,根据所述属性信息,确定所述访问路径对应的目标选择器;
脚本生成模块,用于在获取到录制结束指令时,根据所述访问路径、所述位置信息和所述目标选择器,生成可执行脚本。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的脚本录制方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的脚本录制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211142757.5A CN115481025A (zh) | 2022-09-20 | 2022-09-20 | 自动化测试的脚本录制方法、装置、计算机设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211142757.5A CN115481025A (zh) | 2022-09-20 | 2022-09-20 | 自动化测试的脚本录制方法、装置、计算机设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115481025A true CN115481025A (zh) | 2022-12-16 |
Family
ID=84423625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211142757.5A Pending CN115481025A (zh) | 2022-09-20 | 2022-09-20 | 自动化测试的脚本录制方法、装置、计算机设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115481025A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539773A (zh) * | 2023-11-22 | 2024-02-09 | 东风本田发动机有限公司 | 车载数据采集方法和装置 |
-
2022
- 2022-09-20 CN CN202211142757.5A patent/CN115481025A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539773A (zh) * | 2023-11-22 | 2024-02-09 | 东风本田发动机有限公司 | 车载数据采集方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7398068B2 (ja) | ソフトウェアテスト | |
CN106294134B (zh) | 代码的崩溃定位方法及装置 | |
CN113051514B (zh) | 元素的定位方法、装置、电子设备及存储介质 | |
US11436133B2 (en) | Comparable user interface object identifications | |
CN113590454A (zh) | 测试方法、装置、计算机设备和存储介质 | |
CN111679976A (zh) | 一种页面对象的查找方法及装置 | |
CN116302930A (zh) | 应用测试方法和装置 | |
CN115481025A (zh) | 自动化测试的脚本录制方法、装置、计算机设备及介质 | |
CN115905016A (zh) | 一种BIOS Setup搜索功能测试方法、装置、电子设备及存储介质 | |
CN112003647B (zh) | 一种回收光猫的检测方法、装置、设备及存储介质 | |
CN112612469A (zh) | 一种界面元素的处理方法、装置和电子设备 | |
CN110147477B (zh) | Web***的数据资源模型化提取方法、装置以及设备 | |
CN113805861A (zh) | 基于机器学习的代码生成方法、代码编辑***及存储介质 | |
CN113468050A (zh) | 基于画布的测试方法、装置、计算机设备及存储介质 | |
CN110347577B (zh) | 一种页面测试方法、装置及其设备 | |
CN112667502A (zh) | 页面测试方法、装置及介质 | |
CN113238901A (zh) | 多设备的自动化测试方法及装置、存储介质、计算机设备 | |
CN111522752A (zh) | 程序测试方法、程序测试装置、存储介质和电子设备 | |
CN110750569A (zh) | 数据提取方法、装置、设备及存储介质 | |
CN112181809B (zh) | 一种基于多种定位方法的图形用户界面自动化测试方法 | |
CN112417252B (zh) | 爬虫路径确定方法、装置、存储介质与电子设备 | |
CN115470127B (zh) | 页面兼容性处理方法、装置、计算机设备和存储介质 | |
CN110427935B (zh) | 一种网页元素识别的方法及服务器 | |
WO2024113128A1 (en) | A code branch managing system for comparing and/or updating a master code branch with a new code branch | |
CN116431486A (zh) | 应用于ui自动化的异常测试的方法、***、终端设备及存储介质 |
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 |