一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

测试用例组件处理方法及其装置、设备、介质、产品与流程

2022-11-13 13:38:56 来源:中国专利 TAG:


1.本技术涉及软件工程技术领域,尤其涉及一种测试用例组件处理方法及其相应的装置、计算机设备、计算机可读存储介质,以及计算机程序产品。


背景技术:

2.软件开发工作流中,相同的功能模块需要不同的人(开发人员、测试人员)进行测试,且相同的功能模块可能会被重复测试多次(开发环境、测试环境、预发布环境、生产环境),浪费了大量的人力资源。而且,项目上线后,只能通过报障的方式,被动发现问题,带来不小的损失。
3.针对以上问题,可以通过构造可复用的测试用例来解决,测试用例本质上是一种仿真用户操作过程的脚本,通过运行测试用例,生成用户操作过程作为于目标页面,产生相应的测试数据,便可进行测试结果分析。
4.测试用例的构造,通常采用如下方式来实现:
5.第一种方式中,通过sdk或图像识别工具来获取元素在屏幕中的位置信息和操作信息,再通过位置信息和操作信息生成测试脚本,即测试用例。在脚本运行时,通过位置信息来定位元素,然后根据操作类型来操作定位的元素;这种方案主要存在两大问题。首先是由于图像识别工具本身的兼容问题和浏览器的尺寸问题,经常出现定位不准确,导致测试脚本运行失败;其次是尽管这种方案也能在一定程度上生成测试脚本,但由于可断言的场景比较少,导致生成的代码适用性较低。
6.第二种方式是在第一种方式的基础上,通过可视化界面的方式来输入元素的信息,包括位置信息和配置信息,至于其底层的原理则与第一种方式一致,都是通过位置信息来对元素进行定位。这种方案依然没有解决“精准定位”的问题。而且,通过输入的方式去写用例,很容易打断使用者原来的测试思路,使得测试工作和用例录制相隔离,依然为测试工作者带来了额外的工作。
7.总结而论,以上两种方法存在如下共同的问题:
8.首先,通过元素在屏幕上的位置来对元素进行定位,定位不够精确,经常会导致测试脚本的运行失败。比如下面的几个场景:同一个元素在不同分辨率下的位置信息会有差异;指定界面位置的元素在滑动滚动条后,其位置信息会发生变化,导致定位失败。
9.其次,不是真正意义上的“生成代码”,由于依赖图像识别、用户输入等操作,产生用例的过程依然耗时很长。
10.此外,由于构造用例所依赖的信息的局限性,导致缺少开发、生产上的闭环,通常只针对非正式环境,例如:开发环境、测试环境等。
11.可见,传统技术在构造测试用例时,存在用例适应能力差、用例适应范围受限、编制耗时较长等不足,亟待改进。


技术实现要素:

12.本技术的目的在于解决上述问题而提供一种测试用例组件处理方法及其相应的装置、计算机设备、计算机可读存储介质、计算机程序产品、适应本技术的各个目的,采用如下技术方案:
13.一个方面,适应本技术的目的之一而提供一种测试用例组件处理方法,包括:
14.加载待测试网页以启动预先植入其中的监听模块;
15.由所述监听模块响应待测试网页的操作事件,生成描述每个操作事件相对应的数据体,所述数据体包含被操作的网页元素及其对应的操作信息;
16.根据每个数据体构造其页面组件显示到组件编辑页面中,其中将每个页面组件的操作信息设置为可编辑项;
17.响应基于任意页面组件的可编辑项触发的编辑事件,更新所述页面组件相对应的数据体,所述页面组件适用于确定测试用例所采用的数据体。
18.可选的,响应基于任意页面组件的可编辑项触发的编辑事件,更新所述页面组件相对应的数据体,所述页面组件适用于确定测试用例所采用的数据体之后,包括:
19.响应用例编辑指令,加载所述待测试页面相对应的用例编辑页面;
20.根据组件添加指令获取所述页面组件或由所述页面组件构成的组件结构体,将其中各个页面组件显示到所述用例编辑页面的编辑区中;
21.响应用例生成指令,根据所述编辑区中的页面组件及其排列顺序生成相应的测试用例;
22.响应用例执行指令,运行所述测试用例以对所述待测试网页实施测试,以获取测试结果。
23.可选的,响应用例编辑指令,加载所述待测试页面相对应的用例编辑页面之前,包括:
24.显示结构体编辑界面,其中包含待测试页面的所有数据体相对应的页面组件;
25.响应用户定义指令,将用户选定的页面组件添加至所述结构体编辑界面中的目标区域;
26.响应结构体生成指令,将所述目标区域中的所有页面组件定义为组件结构体的成员,生成相应的组件结构体。
27.可选的,生成描述每个操作事件相对应的数据体,包括:
28.获取所述操作事件相对应的网页元素和操作信息,所述操作信息包括操作行为和/或与操作行为相对应的操作数据;
29.对应所述操作事件构造相应的数据体,在数据体中将所述操作信息中的操作行为和/或操作数据设置为可编辑项。
30.可选的,根据每个数据体构造其页面组件显示到组件编辑页面中,包括:
31.针对每个操作事件相对应的数据体构造页面组件,所述页面组件中包含元素标识区和操作信息区,所述操作信息区中包含有可编辑控件;
32.从待测试网页的元素选择器中读取所述数据体所封装的网页元素的标识信息,为所述元素标识区赋值;
33.将所述数据体中所封装的可编辑项,为所述可编辑控件赋值;
34.将所述页面组件渲染至所述组件编辑页面中显示。
35.可选的,响应基于任意页面组件的可编辑项触发的编辑事件,更新所述页面组件相对应的数据体,所述页面组件适用于确定测试用例所采用的数据体,包括:
36.响应基于任意页面组件的可编辑项触发的编辑事件,确定相应的编辑后数据;
37.以所述编辑后数据更新被编辑的页面组件的数据体中相应的可编辑项的数据。
38.可选的,加载待测试网页以启动预先植入其中的监听模块,包括:
39.根据待测试页面的网络地址获取待测试页面的源代码;
40.向所述源代码植入监听模块相对应的代码,获得待测试页面的更新代码;
41.解析运行所述更新代码以加载待测试页面,在加载过程中启动所述监听模块。
42.另一方面,适应本技术的目的之一而提供一种测试用例组件处理装置,包括加载启动模块、监听处理模块、构造显示模块,以及编辑更新模块,其中,所述加载启动模块,用于加载待测试网页以启动预先植入其中的监听模块;所述监听处理模块,用于由所述监听模块响应待测试网页的操作事件,生成描述每个操作事件相对应的数据体,所述数据体包含被操作的网页元素及其对应的操作信息;所述构造显示模块,用于根据每个数据体构造其页面组件显示到组件编辑页面中,其中将每个页面组件的操作信息设置为可编辑项;所述编辑更新模块,用于响应基于任意页面组件的可编辑项触发的编辑事件,更新所述页面组件相对应的数据体,所述页面组件适用于确定测试用例所采用的数据体。
43.可选的,本技术的测试用例组件处理装置,后于所述编辑更新模块,包括:用户编辑模块,用于响应用例编辑指令,加载所述待测试页面相对应的用例编辑页面;组件添加模块,用于根据组件添加指令获取所述页面组件或由所述页面组件构成的组件结构体,将其中各个页面组件显示到所述用例编辑页面的编辑区中;用例生成模块,用于响应用例生成指令,根据所述编辑区中的页面组件及其排列顺序生成相应的测试用例;用例执行模块,用于响应用例执行指令,运行所述测试用例以对所述待测试网页实施测试,以获取测试结果。
44.可选的,本技术的测试用例组件处理装置,先于所述用户编辑模块,包括:界面显示模块,用于显示结构体编辑界面,其中包含待测试页面的所有数据体相对应的页面组件;用户定义模块,用于响应用户定义指令,将用户选定的页面组件添加至所述结构体编辑界面中的目标区域;结构体生成模块,用于响应结构体生成指令,将所述目标区域中的所有页面组件定义为组件结构体的成员,生成相应的组件结构体。
45.可选的,所述监听处理模块,包括:事件处理单元,用于获取所述操作事件相对应的网页元素和操作信息,所述操作信息包括操作行为和/或与操作行为相对应的操作数据;数据体构造单元,用于对应所述操作事件构造相应的数据体,在数据体中将所述操作信息中的操作行为和/或操作数据设置为可编辑项。
46.可选的,所述构造显示模块,包括:组件构造单元,用于针对每个操作事件相对应的数据体构造页面组件,所述页面组件中包含元素标识区和操作信息区,所述操作信息区中包含有可编辑控件;标识赋值单元,用于从待测试网页的元素选择器中读取所述数据体所封装的网页元素的标识信息,为所述元素标识区赋值;编辑项赋值单元,用于将所述数据体中所封装的可编辑项,为所述可编辑控件赋值;渲染显示单元,用于将所述页面组件渲染至所述组件编辑页面中显示。
47.可选的,所述编辑更新模块,包括:数据确定单元,用于响应基于任意页面组件的
可编辑项触发的编辑事件,确定相应的编辑后数据;数据更新单元,用于以所述编辑后数据更新被编辑的页面组件的数据体中相应的可编辑项的数据。
48.可选的,所述加载启动模块,包括:代码获取单元,用于根据待测试页面的网络地址获取待测试页面的源代码;代码植入单元,用于向所述源代码植入监听模块相对应的代码,获得待测试页面的更新代码;解析运行单元,用于解析运行所述更新代码以加载待测试页面,在加载过程中启动所述监听模块。
49.又一方面,适应本技术的目的之一而提供的一种计算机设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本技术所述的测试用例组件处理方法的步骤。
50.又一方面,适应本技术的另一目的而提供的一种计算机可读存储介质,其以计算机可读指令的形式存储有依据所述的测试用例组件处理方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
51.又一方面,适应本技术的另一目的而提供的一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本技术任意一种实施例中所述测试用例组件处理方法的步骤。
52.相对于现有技术,本技术具有多方面优势,包括但不限于:
53.首先,本技术先在待测试页面中植入用于捕捉操作事件的监听模块,在监听模块启动后,对应待测试网页的每个操作事件生成相应的数据体,然后根据数据体构造出编辑测试用例所需的页面组件,每个页面组件实际上表示对相应的网页元素执行操作相对应操作信息,页面组件可以显示于组件编辑页面中供编辑所述的操作信息,从而允许修改数据体中的可编辑项的数据,在编辑后可以更新相应的数据体,在这个过程中,基于操作事件确定数据体可以使由此获得的页面组件能够精准地对应到待测试网页中的相应网页元素,后续根据页面组件生成测试用例后,便可实现对待测试网页中的网页元素的精准定位操作,而不会因为待测试网页被滚动、显示器分辨率变化等界面变动因素导致定位不准,使测试用例具有更强的鲁棒性,可以兼容绝大部分场景而适于被广泛复用。
54.其次,由于所述数据体本身属于代码数据,可以方便地转换为页面组件,而页面组件又适用于确定测试用例所采用的数据体,因而,允许用户可以通过鼠标操作或触控操作等简易操作方式组装多个页面组件而编制出测试用例,操作便利,使测试用例的编辑过程更为高效快速,降低编制测试用例的耗时。
55.再者,由于数据体中允许定义操作信息,在构造测试用例时,可以通过页面组件对操作信息进行修改,因而,可以对相关网页元素的操作行为、断言、输入内容等进行适应性的修改,使所生成的测试用例更能适配不同环境,例如预发布环境、生产环境等,从而拓宽了测试用例的可复用范围。
附图说明
56.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
57.图1为本技术的测试用例组件处理方法的一种实施例的流程示意图。
58.图2为本技术示例性的用于编辑页面组件的图形用户界面的示意图。
59.图3为本技术实施例中构造及执行测试用例的流程示意图。
60.图4为本技术实施例中构造组件结构体的流程示意图。
61.图5为本技术实施例中构造页面组件的流程示意图。
62.图6为本技术实施例中加载待测试网页的流程示意图。
63.图7为本技术的测试用例组件处理装置的原理框图;
64.图8为本技术所采用的一种计算机设备的结构示意图。
具体实施方式
65.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能解释为对本技术的限制。
66.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
67.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
68.本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;pcs(personal communications service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;pda(personal digital assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或gps(global positioning system,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是pda、mid(mobile internet device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
69.本技术所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具
备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
70.需要指出的是,本技术所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本技术的网络部署方式的实施方式。
71.本技术的一个或数个技术特征,除非明文指定,既可部署于服务器实施而由客户端远程调用获取服务器提供的在线服务接口来实施访问,也可直接部署并运行于客户端来实施访问。
72.本技术所涉及的各种数据,除非明文指定,既可远程存储于服务器,也可存储于本地终端设备,只要其适于被本技术的技术方案所调用即可。
73.本领域技术人员对此应当知晓:本技术的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本技术所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
74.本技术即将揭示的各个实施例,除非明文指出彼此之间的相互排斥关系,否则,各个实施例所涉的相关技术特征可以交叉结合而灵活构造出新的实施例,只要这种结合不背离本技术的创造精神且可满足现有技术中的需求或解决现有技术中的某方面的不足即可。对此变通,本领域技术人员应当知晓。
75.本技术的一种测试用例组件处理方法,可被编程为计算机程序产品,部署于客户端或服务器中运行而实现,请参阅图1,本技术的测试用例组件处理方法在其一种实施例中,包括如下步骤:
76.步骤s1100、加载待测试网页以启动预先植入其中的监听模块;
77.当需要针对一个目标网页实施测试时,可以先为该目标网页建立相应的测试用例,测试用例可以通过仿真一个个作用于所述目标网页的操作事件,来实施对所述目标网页的测试。
78.为了方便构造所述的测试用例,本技术中,允许通过组织对应各个所述的操作事件的页面组件来完善生成测试用例所需的相关要素,相关操作事件的仿真的基础,可以基于所述目标网页来捕捉,因而,可以将所述目标网页作为待测试网页,通过本技术的技术手段来捕捉待测试网页的相关操作事件,根据各个操作事件构造相应的数据体,对应各个数据体将其表现为界面可操作的页面组件,后续便可利用页面组件建搭建测试用例,再根据页面组件的组织关系来生成相应的测试用例相对应的脚本。
79.一种实施例中,为了实现对待测试网页中所实施的操作事件的捕捉,可以事先在待测试网页植入专用的监听模块,该监听模块被设置为适于捕捉作用在所述待测试网页的操作事件,从而获得操作事件相对应的操作行为和操作信息,于是,当在浏览器中加载待测试网页时,随着监听模块相对应的代码被解析运行,便可启动所述监听模块,使监听模块可
以开始工作,以启动对待测试网页的操作事件的捕捉。
80.步骤s1200、由所述监听模块响应待测试网页的操作事件,生成描述每个操作事件相对应的数据体,所述数据体包含被操作的网页元素及其对应的操作信息;
81.监听模块被启动后始终处于监听状态,当待测试网页中触发操作事件时,监听模块便可获得操作事件相对应的操作信息,其中包括该操作事件相对应的操作行为及其他可能的网页元素,操作数据、断言行为等。所述的操作行为,一般是点击行为,包括鼠标单击或双击行为、指点单击或双击行为、输入行为等常见的网页操作行为。所述的网页元素,是操作事件的操作行为所作用的网页元素,例如按键控件、文本框、标签、图像等。所述的操作数据,一般是用户输入的数据,例如在用户在待测试页面的一个文本框中执行输入行为后出现的文本数据。所述的断言行为,通常是对应操作行为而提供的自定义指令,例如对应一个点击行为将操作事件所对应的网页元素设置为不可见状态的指令。
82.根据以上过程,一个实施例中,生成描述每个操作事件相对应的数据体,包括:
83.一种实施例中,监听模块可以通过监听所述的操作事件,从操作事件的函数体的参数中获得所述的操作信息中的一部分或全部,例如获得所述的操作行为。另一实施例中,监听模块也可以通过待测试网页相对应的元素选择器(css元素选择器),调用操作事件所指定的网页元素的属性,来获得相应的操作数据,例如所述文本框中的文本内容。
84.监听模块在获得一个操作事件相对应的操作信息后,便可对应该操作事件构造其数据体。一种实施例中,可以采用预先定义的数据结构,以脚本语言对所述操作事件进行描述,使其包含对所述的操作信息的各个构成的具体描述,来获得相应的数据体。例如,可以按照如下代码,生成一个操作事件相对应的数据体及其注释文本如下:
[0085][0086][0087]
根据以上示例性的数据体可以看出,该数据体可以被表示为测试用例中的一个仿真操作事件序列中的一个特定操作事件相对应的数据体,其中明确了操作事件所作用的网页元素以及相应的操作行为和对应的操作数据,也就明确了所有必要的操作信息。由此可见,所述数据体是对待测试网页中实施的操作事件相对应的操作信息的封装,可以用于组建测试用例,在测试用例运行时实现对相应操作事件的仿真模拟。
[0088]
步骤s1210、获取所述操作事件相对应的网页元素和操作信息,所述操作信息包括操作行为和/或与操作行为相对应的操作数据;
[0089]
步骤s1220、对应所述操作事件构造相应的数据体,在数据体中将所述操作信息中的操作行为和/或操作数据设置为可编辑项。所述的可编辑项一般是事先协议设定的,例如前述示例中的actions字段中的内容,便被默认为可编辑项。
[0090]
不难理解,用户可以通过在待测试网页中实施整个操作过程,从而触发一系列的操作事件,对应产生一系列的数据体,这些数据体便可以用于构造测试用例。
[0091]
步骤s1300、根据每个数据体构造其页面组件显示到组件编辑页面中,其中将每个页面组件的操作信息设置为可编辑项;
[0092]
为了方便用户生成测试用例,本技术先对应将每个数据体表示为页面组件,然后在组件编辑页面中提供各个相应的页面组件,在页面组件中显示其对应的数据体中的操作信息,通过向用户开放数据体中的操作信息的编辑权限,来接收用户对所述页面组件的编辑修改,从而实现对相应的数据体的操作信息的修改。
[0093]
如图2所示,用户在待测试页面中连续触发多个操作事件之后,在后台对应产生多个数据体,相应构造出多个页面组件,陆续呈现在组件编辑页面中,用户可以随时对该组件编辑页面中的任意页面组件中的任意操作信息进行编辑,实现对相应的数据体中的操作信息的修改。
[0094]
构造所述的页面组件时,可以根据预先设定的样式来生成,例如,图2所示的组件编辑界面中的页面组件,其包括元素标识区和操作信息区,所述元素标识区中,主要用于展示无需键盘输入进行修改的项,例如展示出方便辨识网页元素的唯一性标识及其序号;所述操作信息区中,则展示操作行为选择控件、操作数据编辑控件、断言行为选择控件等,也即,操作信息区主要用于展示相应的数据体中的操作信息,当然,其他实施例中,还可以按需在操作信息区中展示增加、删除操作行为相对应的控件,恕不详述。
[0095]
不难理解,根据图2所示,在组件编辑页面中展示根据数据体构造的页面组件后,数据体中的各种操作信息,当其映射到相应的页面组件中时,实际上被设置成可编辑项,因而,用户可以通过操作各个可编辑项相对应的控件,例如所述的操作行为选择控件、操作数据编辑控件、断言行为选择控件等,实现对各个可编辑项的修改。
[0096]
一种实施例中,在所述的组件编辑页面中,可以进一步允许用户通过拖放指令移动其中的各个页面组件,以便实现对各个页面组件的排序位置的调整,从而改变其相应的序号,以便后续反映到数据体及根据这些数据体生成的测试用例中。
[0097]
步骤s1400、响应基于任意页面组件的可编辑项触发的编辑事件,更新所述页面组件相对应的数据体,所述页面组件适用于确定测试用例所采用的数据体。
[0098]
当用户针对所述组件编辑页面中的任意页面组件的任意可编辑项进行编辑修改,使相应的可编辑项的数据发生更新时,便可触发相应的编辑事件。不难理解,编辑事件的触发,意味着相应的可编辑项的数据已经发生改变,因而,可以响应该编辑事件,以相应的数据更新所述数据体中的相应项,使得数据体中的各项数据随着用户的编辑而发生适应性的修正,从而实现允许用户对各个数据体进行调整。可以看出,对于因应每个操作事件生成的数据体来说,由于可以通过对组件编辑页面中与所述数据体相对应的页面组件进行编辑修改,大大提升了对测试脚本中的操作事件相对应的代码的构造的便利度。
[0099]
一种实施例中,对于用户调整所述页面组件的顺序的行为,将相应改变各个数据体中的序号,例如前述示例中的sort字段,以便在构造测试用例时可以根据这一字段对数据体进行按序调用生成。
[0100]
另一实施例中,可以为组件编辑界面设置一个生成控件,当用户操作所述生成控件时,便根据组件编辑页面中各个页面组件所对应的数据体及其排序信息,转换生成相应的测试用例。所述测试用例中,包含对所述各个数据体的引用,当该测试用例被运行时,便可根据各个数据体提供的描述,仿真触发相应的操作事件,从而实现对待测试页面的测试。
[0101]
根据以上实施例不难看出,本技术具有多方面优势,包括但不限于:
[0102]
首先,本技术先在待测试页面中植入用于捕捉操作事件的监听模块,在监听模块启动后,对应待测试网页的每个操作事件生成相应的数据体,然后根据数据体构造出编辑测试用例所需的页面组件,每个页面组件实际上表示对相应的网页元素执行操作相对应操作信息,页面组件可以显示于组件编辑页面中供编辑所述的操作信息,从而允许修改数据体中的可编辑项的数据,在编辑后可以更新相应的数据体,在这个过程中,基于操作事件确定数据体可以使由此获得的页面组件能够精准地对应到待测试网页中的相应网页元素,后续根据页面组件生成测试用例后,便可实现对待测试网页中的网页元素的精准定位操作,而不会因为待测试网页被滚动、显示器分辨率变化等界面变动因素导致定位不准,使测试用例具有更强的鲁棒性,可以兼容绝大部分场景而适于被广泛复用。
[0103]
其次,由于所述数据体本身属于代码数据,可以方便地转换为页面组件,而页面组件又适用于确定测试用例所采用的数据体,因而,允许用户可以通过鼠标操作或触控操作等简易操作方式组装多个页面组件而编制出测试用例,操作便利,使测试用例的编辑过程更为高效快速,降低编制测试用例的耗时。
[0104]
再者,由于数据体中允许定义操作信息,在构造测试用例时,可以通过页面组件对操作信息进行修改,因而,可以对相关网页元素的操作行为、断言、输入内容等进行适应性的修改,使所生成的测试用例更能适配不同环境,例如预发布环境、生产环境等,从而拓宽了测试用例的可复用范围。
[0105]
可选的,响应基于任意页面组件的可编辑项触发的编辑事件,更新所述页面组件相对应的数据体,所述页面组件适用于确定测试用例所采用的数据体之后,请参阅图3,包括:
[0106]
步骤s2100、响应用例编辑指令,加载所述待测试页面相对应的用例编辑页面;
[0107]
本技术中,每个待测试网页中产生的各个操作事件相对应的数据体,均可以进行保存以便进行复用,用户可以按需对数据体进行编辑,并利用数据体构造测试用例。
[0108]
一种实施例中,可以为待测试页面提供一个相应的用例编辑页面,以便用户可以通过用例编辑页面调用待测试页面的各个数据体相应的页面组件,通过修改各个页面组件及其排列关系,来定义出新的测试用例。
[0109]
另一实施例中,所述用例编辑页面可以是本技术前文所述的组件编辑页面。
[0110]
当用户希望进行测试用例的编写时,可以直接针对待测试页面触发用例编辑指令,后台响应该用例编辑指令,便在浏览器中加载与该待测试页面相对应的用例编辑页面。
[0111]
一种实施例中,适应全新编制测试用例的情况,所述用例编辑页面可以是空白界面,由用户逐一添加待测试页面的页面组件来构造新的测试用例。另一实施例中,加载所述
用例编辑页面时,可以同时加载事先为所述待测试页面生成的测试用例,将该测试用例相对应的各个数据体的页面组件相应显示于该用例编辑页面中,以便在此基础上对页面组件进行编辑以生成新的测试用例。
[0112]
步骤s2200、根据组件添加指令获取所述页面组件或由所述页面组件构成的组件结构体,将其中各个页面组件显示到所述用例编辑页面的编辑区中;
[0113]
一种实施例中,当所述用例编辑页面直接使用所述的组件编辑页面时,可以将用户在待测试页面中执行操作相对应的操作事件理解为用户触发组件添加指令,从而,将对应所述操作事件而产生的添加到组件编辑页面的页面组件,视为根据该组件添加指令而获得的页面组件,由此获得的页面组件,添加到用例编辑页面(组件编辑页面)相应的编辑区中。
[0114]
另一实施例中,当所述用例编辑页面是独立于所述组件编辑页面的其他页面时,可以对应待测试网页提供一个操作入口,当用户触控所述操作入口时,视为触发组件添加指令,相应便加载待测试页面相对应的各个数据体,将其解析为各个相应的页面组件供用户选择,然后将用户选择的页面组件逐一添加到用例编辑页面的编辑区中。
[0115]
为了便于方便用户集成多个操作事件相对应的页面组件,实现批量地将页面组件添加到所述的用例编辑页面中,一个实施例中,可以允许用户预选将多个页面组件定义为组件结构体,当用户触控所述操作入口而列出各个页面组件供用户选择时,在相应的页面组件列表中不仅可以显示各个页面组件,而且也显示各个所述的组件结构体,由此,用户可以选择一个或多个页面组件,也可以选择一个或多个所述的组件结构体添加到所述用例编辑页面的编辑区中。可见对于功能相对完整的多个操作事件相对应的页面组件来说,采用这种方式供用户引用,可以大大提升用户编写测试用例的效率。
[0116]
步骤s2300、响应用例生成指令,根据所述编辑区中的页面组件及其排列顺序生成相应的测试用例;
[0117]
不难理解,对于显示在用例编辑页面中的所有页面组件,用户均可对其中的可编辑项进行所期望的修改,最后获得满意的结果,然后,可以通过生成控件之类的入口,触发用例生成指令,由此触发后台程序根据用例编辑页面中的全部页面组件相对应的数据体以及这些页面组件的先后顺序,转换生成相应的脚本文件,从而获得相应的测试用例。
[0118]
在转换生成每个数据体相对应的脚本时,可以依照预设的转换规则实施而对应获得一个语句,例如,针对前文示例的数据体代码,经转换后,可以获得如下形式的语句:
[0119]
cy.get(

#email’).eq(0).click().type(

myinput’);
[0120]
以上语句表示,作为位序为0的首先执行的语句,针对元素选择器中的#email网页元素执行点击行为(click),且以字符串myinput为输入的操作数据。不难理解,每个数据体均被转换为单个语句,非常简洁易读。
[0121]
步骤s2400、响应用例执行指令,运行所述测试用例以对所述待测试网页实施测试,以获取测试结果。
[0122]
生成所述的测试用例后,可以向用户开放用例运行入口,用户通过该用例运行入口触发相应的用例执行指令,后台进程响应该用例执行指令,而对待测试页面适用所述的测试用例,通过测试用例的运行,仿真出测试用例中与各个数据体相对应的操作事件,对待测试页面实施一系列的操作,在这个过程中,获取测试结果,所述测试结果可以测试报告或
者测试视频的形式提供并存档,以供测试人员进一步分析。
[0123]
根据以上实施例,不难看出,在数据体及其相应的可视化的页面组件的帮助下,测试用户编制测试用例变得更为简便,可以通过对页面组件进行直观简便的编辑和调整,而快速定制出测试用例,对于不同环境来说,即使对测试用例略有不同,也可通过以上过程,在数据体的基础上,或者在旧有的测试用例的基础上,基于页面组件操作,快速定义出新的更具环境适应性的测试用例,从而可以大幅提升待测试网页的测试效率。
[0124]
可选的,响应用例编辑指令,加载所述待测试页面相对应的用例编辑页面之前,请参阅图4,包括:
[0125]
步骤s3100、显示结构体编辑界面,其中包含待测试页面的所有数据体相对应的页面组件;
[0126]
为了便于用户定义组件结构体,可以提供一个结构体编辑界面,通过向用户开放一个结构体编辑入口,而在用户操作该入口之后显示该结构体编辑界面。在结构体编辑界面中,显示出待测试页面的所有数据体相对应的页面组件的标识,所述标识可以由页面组件所对应的网页元素的标识及其操作行为构成以起到明示用户的作用,并且可以将这些页面组件配置为可拖放至目标区域的活动模块。
[0127]
步骤s3200、响应用户定义指令,将用户选定的页面组件添加至所述结构体编辑界面中的目标区域;
[0128]
如前所述,结构体编辑界面中的各个页面组件被配置为可拖放的活动模块,因而,允许用户选定其中的一个或多个页面组件,单次或多次地将其选定的页面组件拖放到所述结构体编辑界面的目标区域中,在目标区域中进行有序排列,其中,用户的拖放操作被解析为用户定义指令,当触发所述的用户定义指令时,便在后台将用户已经选定的页面组件添加至一个缓存区中以备调用。
[0129]
步骤s3300、响应结构体生成指令,将所述目标区域中的所有页面组件定义为组件结构体的成员,生成相应的组件结构体。
[0130]
当用户完成所述目标区域中的各个页面组件的增删配置和顺序调整之后,便可通过预先提供的控件触发结构体生成指令,后台响应该结构体生成指令,便从所述缓存区中获取所述目标区域中的所有页面组件,将其视为组件结构体的成员,生成相应的组件结构体,组件结构体中的各个页面组件,按照其在目标区域中的顺序进行有序排列。
[0131]
用户可以按照以上方式定义出一个或多个所述的组件结构体,后续便可以组件结构体为单位批量添加页面组件,从而更快速地构造测试用例。
[0132]
根据以上实施例可以知晓,允许用户自定义组件结构体,将共同配合完成相对独立的功能的一系列操作事件相对应的数据体的页面组件定义为同一组件结构体,由此,不同组件结构体可以复用同一页面组件,而且基于组件结构体又可实现对多个页面组件的批量调用,不仅提升了各个页面组件的可复用性,而且也大大提升测试用例的编写效率。
[0133]
可选的,根据每个数据体构造其页面组件显示到组件编辑页面中,请参阅图5,包括:
[0134]
步骤s1310、针对每个操作事件相对应的数据体构造页面组件,所述页面组件中包含元素标识区和操作信息区,所述操作信息区中包含有可编辑控件;
[0135]
当对应待测试页面中的一个操作事件产生了其相应的数据体之后,便可以根据该
数据体构造获得相应的页面组件以便显示于所述组件编辑页面中。
[0136]
所述的页面组件,如图2所示,包含一个元素标识区和一个操作信息区,所述元素标识区可以用于指示相应的网页元素,所述的操作信息区可以用于显示相应的操作信息,并且为操作信息中的各种具体信息例如操作行为、操作数据、断言行为等提供相应的所述可编辑控件以便编辑。
[0137]
步骤s1320、从待测试网页的元素选择器中读取所述数据体所封装的网页元素的标识信息,为所述元素标识区赋值;
[0138]
如前文对数据体的代码的示例可知,每个数据体中,均包含有对其相应的操作事件所操作的网页元素的描述,例如label、selector等字段,其中label是网页元素的标签,用于标识元素,因而可以label的值为所述元素标识区赋值,使元素标识区可以供识别出相应的网页元素。label标签的内容,可以通过selector所指定的标识,从元素选择器中确定相应的网页元素的对象,然后通过对象中的相应属性值来获取。
[0139]
步骤s1330、将所述数据体中所封装的可编辑项,为所述可编辑控件赋值;
[0140]
对于所述数据体中所封装的可编辑项,主要是其中的actions字段所封装每一项内容,可以逐一为其提供相应的可编辑控件,包括如前所述的操作行为选择控件、操作数据编辑控件、断言行为选择控件等,然后,将actions中的各个数据相应设置为各个可编辑控件的默认值,以便用户在默认值的基础上进行修改。
[0141]
步骤s1340、将所述页面组件渲染至所述组件编辑页面中显示。
[0142]
当完成对所述页面组件中的元素标识区和操作信息区的赋值后,便可将页面组件渲染至所述组件编辑页面中,从而使其成为可视化组件,供用户进行编辑。
[0143]
根据以上实施例不难理解,本技术通过构造所述页面组件,使数据体以可视化的方式进行呈现,使用户可以基于元素选择器确定网页元素,以网页元素为对象定义需要仿真的操作事件,将对测试用例所需调用的数据体的定义精准地具体化到网页元素,使由此而编制的测试用例不会因为待测试网页版本变动和分辨率变化等因素而出现定位不准的情况,不仅方便用户构造测试用例,而且使测试用例的应用更具兼容性,确保测试用例可以适应多种环境而稳健运行。
[0144]
可选的,响应基于任意页面组件的可编辑项触发的编辑事件,更新所述页面组件相对应的数据体,所述页面组件适用于确定测试用例所采用的数据体,包括:
[0145]
步骤s1410、响应基于任意页面组件的可编辑项触发的编辑事件,确定相应的编辑后数据;
[0146]
如前所述,在所述的组件编辑页面中,用户针对任意页面组件的任意可编辑项所触发的编辑事件,均可以被反映到相应的数据体中,因而,当触发一个所述的编辑事件之后,后台便获取该编辑事件所作用的页面组件的相应可编辑项的编辑后数据,以便用于实现对数据体的更新。
[0147]
步骤s1420、以所述编辑后数据更新被编辑的页面组件的数据体中相应的可编辑项的数据。
[0148]
对应的,将所述编辑后数据替换相应的数据体中的相应字段中的对应内容,便可实现对数据体的更新,由此使用户可以通过对页面组件中的相应可编辑项进行修改,便可实现对相应的数据体的定义的修改。
[0149]
根据以上实施例不难看出,本技术基于可视化的页面组件中的操作信息区内的可编辑项的修改,便可实现对代码化的数据体的修改,可提升代码编辑效率,也能改善用户体验。
[0150]
可选的,加载待测试网页以启动预先植入其中的监听模块,请参阅图6,包括:
[0151]
步骤s1110、根据待测试页面的网络地址获取待测试页面的源代码;
[0152]
当用户需要为一个待测试用户编写测试用例时,通常会在浏览器中输入待测试页面的网络地址,浏览器于是访问该网络地址而获得待测试页面的源代码。
[0153]
步骤s1120、向所述源代码植入监听模块相对应的代码,获得待测试页面的更新代码;
[0154]
为了实施本技术的其他后续步骤,在所述源代码的基础上,由本技术预置的插件向所述待测试页面植入本技术的监听模块相对应的代码,从而获得待测试页面的更新代码。不难理解,所述监听模块的植入,并不对待测试页面的源代码所能实现的功能构成任何破坏。
[0155]
步骤s1130、解析运行所述更新代码以加载待测试页面,在加载过程中启动所述监听模块。
[0156]
当完成监听模块的植入后,便可由浏览器对待测试页面的更新代码进行解析,在解析过程中加载显示待测试页面,同时在加载过程中,随着监听模块的代码被解析执行而启动所述的监听模块,使本技术的监听模块可以开始捕捉作用于所述待测试页面的操作事件。
[0157]
根据以上实施例可以理解,本技术的技术方案方便实现,对源代码无功能性破坏,具有适应不同浏览器的可移植性。
[0158]
请参阅图7,适应本技术的目的之一而提供一种测试用例组件处理装置,是对本技术的测试用例组件处理方法的功能化体现,该装置包括:加载启动模块1100、监听处理模块1200、构造显示模块1300,以及编辑更新模块1400,其中,所述加载启动模块1100,用于加载待测试网页以启动预先植入其中的监听模块;所述监听处理模块1200,用于由所述监听模块响应待测试网页的操作事件,生成描述每个操作事件相对应的数据体,所述数据体包含被操作的网页元素及其对应的操作信息;所述构造显示模块1300,用于根据每个数据体构造其页面组件显示到组件编辑页面中,其中将每个页面组件的操作信息设置为可编辑项;所述编辑更新模块1400,用于响应基于任意页面组件的可编辑项触发的编辑事件,更新所述页面组件相对应的数据体,所述页面组件适用于确定测试用例所采用的数据体。
[0159]
可选的,本技术的测试用例组件处理装置,后于所述编辑更新模块1400,包括:用户编辑模块,用于响应用例编辑指令,加载所述待测试页面相对应的用例编辑页面;组件添加模块,用于根据组件添加指令获取所述页面组件或由所述页面组件构成的组件结构体,将其中各个页面组件显示到所述用例编辑页面的编辑区中;用例生成模块,用于响应用例生成指令,根据所述编辑区中的页面组件及其排列顺序生成相应的测试用例;用例执行模块,用于响应用例执行指令,运行所述测试用例以对所述待测试网页实施测试,以获取测试结果。
[0160]
可选的,本技术的测试用例组件处理装置,先于所述用户编辑模块,包括:界面显示模块,用于显示结构体编辑界面,其中包含待测试页面的所有数据体相对应的页面组件;
用户定义模块,用于响应用户定义指令,将用户选定的页面组件添加至所述结构体编辑界面中的目标区域;结构体生成模块,用于响应结构体生成指令,将所述目标区域中的所有页面组件定义为组件结构体的成员,生成相应的组件结构体。
[0161]
可选的,所述监听处理模块1200,包括:事件处理单元,用于获取所述操作事件相对应的网页元素和操作信息,所述操作信息包括操作行为和/或与操作行为相对应的操作数据;数据体构造单元,用于对应所述操作事件构造相应的数据体,在数据体中将所述操作信息中的操作行为和/或操作数据设置为可编辑项。
[0162]
可选的,所述构造显示模块1300,包括:组件构造单元,用于针对每个操作事件相对应的数据体构造页面组件,所述页面组件中包含元素标识区和操作信息区,所述操作信息区中包含有可编辑控件;标识赋值单元,用于从待测试网页的元素选择器中读取所述数据体所封装的网页元素的标识信息,为所述元素标识区赋值;编辑项赋值单元,用于将所述数据体中所封装的可编辑项,为所述可编辑控件赋值;渲染显示单元,用于将所述页面组件渲染至所述组件编辑页面中显示。
[0163]
可选的,所述编辑更新模块1400,包括:数据确定单元,用于响应基于任意页面组件的可编辑项触发的编辑事件,确定相应的编辑后数据;数据更新单元,用于以所述编辑后数据更新被编辑的页面组件的数据体中相应的可编辑项的数据。
[0164]
可选的,所述加载启动模块1100,包括:代码获取单元,用于根据待测试页面的网络地址获取待测试页面的源代码;代码植入单元,用于向所述源代码植入监听模块相对应的代码,获得待测试页面的更新代码;解析运行单元,用于解析运行所述更新代码以加载待测试页面,在加载过程中启动所述监听模块。
[0165]
为解决上述技术问题,本技术实施例还提供计算机设备。如图8所示,该计算机设备包括通过系统总线连接的处理器、计算机可读存储介质、存储器和网络接口。其中,该计算机设备的计算机可读存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种商品搜索类目识别方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行本技术的测试用例组件处理方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0166]
本实施方式中处理器用于执行图7中的各个模块及其子模块的具体功能,存储器存储有执行上述模块或子模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有本技术的测试用例组件处理装置中执行所有模块/子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
[0167]
本技术还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本技术任一实施例的测试用例组件处理方法的步骤。
[0168]
本技术还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被一个或多个处理器执行时实现本技术任一实施例所述方法的步骤。
[0169]
本领域普通技术人员可以理解实现本技术上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等计算机可读存储介质,或随机存储记忆体(random access memory,ram)等。
[0170]
综上所述,本技术精准对应网页元素进行数据体定义,通过采用页面组件表示待测试页面的操作事件的数据体以供构造测试用例,改进了测试用例的生成方式,可以提升测试用例的适应能力,拓宽测试用例的适用范围,提升测试用例的生成效率。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献