一种用户界面自动化测试方法及系统与流程

文档序号:11918253阅读:237来源:国知局
一种用户界面自动化测试方法及系统与流程

本发明涉及应用测试领域,尤其涉及一种用户界面自动化测试方法及系统。



背景技术:

用户界面(User Interface,简称UI)测试一般包括布局测试、内容测试(包括文字和图片)、风格测试、控件测试等内容。对于布局、内容风格、字体等测试对象,通常采用静态方式进行测试,例如使用点检表结合人工观察的方式获得测试结果。而对于用户界面中的空间来说,由于其具有人机交互的特性,能够向用户提供诸如界面跳转、开关控制、文字输入等交互性功能,需要采用动态方式对UI进行测试。

现有针对UI的动态测试通常需要测试人员编写测试用例,对被测对象、测试方式、预期结果等内容进行界定,然后由测试终端执行该测试用例完成对UI测试。编写测试用例通常十分耗时,测试人员往往需要花费大量时间对测试用例进行编程和修改,实际应用中过于耗费人力成本。

录制和回放(Record and Replay)是一种简单易操作的UI自动测试方法。但是通过录制和回放的方式进行UI自动测试存在弊端:

第一,录制的测试脚本“废话”多。例如移动鼠标,本来最终目的是移动到A点,但是录制过程中,会把鼠标经过的地方都录制了,导致很多“没用”的冗余代码。

第二,录制的脚本效率不高。由于中途很多“废话”,并且是以回放人的操作的形式进行循环测试的;人的手动操作的效率肯定不够快,所以效率不高。

第三,录制的脚本不具备通用性。通常只能在一台电脑上使用,因为在不同的电脑其参考的坐标系不同。导致回放的时候无法准确的找到要操作的对象。

UI自动化测试最为重要的一件事情就是得到要操作的控件对象,比如一个textbox、button等等。必须先能够得到对象,才能够操作对象。这其实就是记录测试脚本的唯一用途,准确的得到录制对象是自动化测试的关键。

目前,很多自动化测试工具在录制测试脚本时,是通过记录点击鼠标等输入动作的屏幕坐标以及该区域控件的信息来实现录制的功能,并以此作为回放时获得对象的关键条件。这种录制方式所采集的信息相对孤立,并以一种无关联的方式在记录数据。一旦坐标发生变化,很容易出现找不到对象的情况。



技术实现要素:

针对现有技术存在的上述问题,本发明提出了一种用户界面自动化测试方法。

本发明采取如下技术方案:

一种用户界面自动化测试方法,其包括:

步骤一,获得测试脚本的录制过程;

步骤二,根据所述测试脚本执行测试操作的回放过程;

其中,所述测试脚本包括按发生的时间先后顺序记录的输入动作的序列,所述录制过程记录所述输入动作序列,所述回放过程按照时间先后顺序执行所述测试脚本中记录的输入动作序列;所述输入动作包括动作类型信息和操作对象信息;所述操作对象信息包括坐标信息和控件路径信息,所述回放过程根据所述输入动作的动作类型确定需要实施的操作动作,所述回放过程根据所述输入动作的操作对象信息确定所述操作动作的实施对象。

作为优选,所述操作对象信息还包括坐标权重值、控件路径权重值。

作为优选,所述操作对象信息还包括表示所述操作动作的实施对象是否为标准控件的控件类型信息。

作为优选,所述录制过程根据所述控件类型信息确定所述坐标权重值和所述控件路径权重值;当所述控件类型信息表示所述操作动作的实施对象为标准控件时,所述坐标权重值小于所述控件路径权重值;当所述控件类型信息表示所述操作动作的实施对象为非标准控件时,所述坐标权重值大于所述控件路径权重值;所述回放过程,在所述坐标权重值大于所述控件路径权重值时,根据所述坐标信息确定所述操作动作的实施对象,在所述坐标权重值小于所述控件路径权重值时,根据所述控件路径信息确定所述操作动作的实施对象。

作为优选,所述操作对象信息还包括匹配阈值;所述回放过程将其显示参数与录制过程的显示参数比较,当所述回放过程的显示参数与所述录制过程的显示参数的匹配度越高,则所述匹配阈值的值越大;所述回放过程,当所述匹配阈值大于50%时,可以根据所述坐标信息确定所述操作动作的实施对象。

本发明还提供了一种用户界面自动化测试系统,其特征在于:包括用于获得测试脚本的录制模块和用于根据所述测试脚本执行测试操作的回放模块;所述测试脚本包括按发生的先后顺序记录的输入动作的序列,所述录制模块记录所述输入动作序列,所述回放模块按照时间先后顺序执行所述测试脚本中记录的输入动作序列;其中,所述输入动作包括动作类型信息和操作对象信息;所述操作对象信息包括坐标信息和控件路径信息,所述回放模块包括根据所述输入动作的动作类型确定需要实施的操作动作的操作动作实施单元,所述回放模块包括根据所述输入动作的操作对象信息确定所述操作动作的实施对象的实施对象确定单元。

作为优选,所述操作对象信息还包括坐标权重值、控件路径权重值。

作为优选,所述操作对象信息还包括表示所述操作动作的实施对象是否为标准控件的控件类型信息。

作为优选,所述录制模块包括权重值确定单元,所述权重值确定单元根据所述控件类型信息确定所述坐标权重值和所述控件路径权重值;当所述控件类型信息表示所述操作动作的实施对象为标准控件时,所述坐标权重值小于所述控件路径权重值;当所述控件类型信息表示所述操作动作的实施对象为非标准控件时,所述坐标权重值大于所述控件路径权重值;所述回放模块,在所述坐标权重值大于所述控件路径权重值时,根据所述坐标信息确定所述操作动作的实施对象,在所述坐标权重值小于所述控件路径权重值时,根据所述控件路径信息确定所述操作动作的实施对象。

作为优选,所述操作对象信息还包括匹配阈值;所述回放模块还包括匹配阈值确定单元,所述匹配阈值确定单元将所述回放模块的显示参数与所述录制模块的显示参数比较,当所述回放过程的显示参数与所述录制过程的显示参数的匹配度越高,则所述匹配阈值的值越大;所述回放模块,当所述匹配阈值大于50%时,可以根据所述坐标信息确定所述操作动作的实施对象。

本发明从录制信息的完整性以及引入权重的方式出发,以较为灵活的方式适应各种场合下测试脚本的录制,并且提高了测试脚本回放的成功率。

附图说明

附图1本发明实施例的用户界面自动化测试系统示意图。

附图2本发明实施例的用户界面自动化测试方法流程图。

具体实施方式

以下具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。虽然附图中显示了本公开的示例性实施例,然而当然可以理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开并且能够将本公开的范围完整的传达给本领域的技术人员。

实施例一

一种用户界面自动化测试系统,在实际应用中用于录制、存储、回放测试人员制定的测试用例。本实施例中的用户界面自动化测试系统能够通过客户端页面或Web页面向测试人员提供制定测试方案的人机交互接口。测试人员可以将手机或电脑等操作终端连接到测试系统,在操作终端上运行被测应用并执行制定的测试方案。本实施例中的测试系统具体包括显示模块、录制模块、回放模块和存储模块。其中:

(一)显示模块

显示被测应用的界面窗口,并接收针对界面窗口中的控件对象实施的操作动作。实际应用中,显示模块可以为手机或电脑等操作终端,被测试的应用在手机或电脑等操作终端上运行并显示。测试人员可以在手机等具备触摸屏的操作终端上使用手指直接触发点击等操作动作,也可以在电脑等非触摸设备上通过鼠标点选触发点击等操作动作,或者还可以通过键盘或遥控器上的方向键/导航键控制操作焦点(例如高亮的选择框)的移动,并触发点击等操作动作。测试人员触发点击等操作动作的具体形式由操作终端所支持的操作类型据决定,自动化测试系统仅以电信号的形式接收操作终端发送的操作执行。

(二)录制模块

用于获得测试脚本。按照时间的先后顺序记录通过显示模块显示输出的界面窗口中,针对界面窗口中的控件对象实施的输入动作。经录制模块记录获得的输入动作序列作为测试脚本存放在存储模块中。

其中,输入动作包括动作类型信息和操作对象信息。动作类型信息用于标记测试人员在显示模块显示输出的界面窗口中实施的操作动作(例如长按操作、短按操作、点击操作、滑动操作、单点触控、多点触控等)。操作对象信息包括控件类型信息、坐标信息、控件路径信息、坐标权重值、控件路径权重值和匹配阈值。坐标信息用于标记测试人员在显示模块显示输出的界面窗口中实施的操作动作在界面窗口中的发生位置。控件路径信息用于标记测试人员在显示模块显示输出的界面窗口中实施的操作动作所实施的控件的路径。控件类型信息用于表示操作动作的实施对象为标准控件还是用户自定义的非标准控件。

测试人员在触发点击等操作动作后,操作终端上产生相应的操作动作事件,并且该操作动作事件会逐层传递到系统底层的窗口对象控件上。例如,如果测试人员通过触控屏触发点击事件,则产生touch事件;如果测试人员通过鼠标触发点击事件,则产生click事件。在系统底层,点击事件会触发相应的函数调用,该函数调用中包含系统获得的该点击事件的相关参数,包括点击的坐标参数及事件类型(例如长按操作、短按操作、点击操作、滑动操作、单点触控、多点触控等)。显示模块在系统底层获取该点击的坐标参数作为该操作动作的坐标信息,获取该点击对应的事件类型作为该操作动作的动作类型信息。

不同的操作终端的屏幕尺寸可能存在差异,同一窗口对象控件在不同的操作终端上显示的坐标位置可能不同。如果测试终端直接使用操作终端上获取的坐标参数,那么有可能会定位到其他窗口对象控件上去。此外,同一应用在不同终端上的客户端(例如手机客户端和电脑客户端),其界面布局通常也会有差异,窗口对象控件的大小、位置可能会相互不同,直接使用操作对象信息中的坐标信息确定窗口对象控件时,有可能会找不到或者找到错误的窗口对象控件。而界面窗口中发生的操作动作所实施的控件本质上是整个桌面控件树形结构中的一个节点元素,是完全可以用完整的路径来标识的,有了这个详尽的路径描述,可以准确的去定位并获得这个控件对象。

本实施例中的录制模块在针对UI自动化测试脚本的录制过程中所采集的操作对象信息主要有:分别是控件路径信息和坐标信息。通过增加控件路径信息,大多数情况下可以准确的定位到控件。不过也会有些特殊情况,如:出现自定义控件不能被正确识别的情况。此时,坐标信息可以通过权重的设定被引入,可以灵活的提高录制脚本的可用性。

本实施例中,通过设定坐标权重值和控件路径权重值以及匹配阈值,引入一种可灵活配置的阈值匹配方法。测试人员会对不同层级窗口中的多个窗口对象控件进行连续点击,获得一条点击路径。对于此种情况,录制模块需要分别获取各点击操作对应的动作类型信息以及该点击操作所实施的窗口对象控件的操作对象信息,并按点击的先后顺序将所有操作动作合并为一个操作动作序列,写入到测试脚本中。

操作对象信息的匹配阈值需要测试人员在录制过程之前对系统进行配置或者采用系统的默认值。控件路径权重值和控件坐标权重值可以由测试人员预先设置,或者由该系统专门的配置模块预先输入配置,再或者由录制模块的权重值确定单元,在录制模块的录制过程中根据控件类型动态确定。权重值确定单元对权重值的动态确定方法为:

获取该操作对象的控件类型信息,以判断该操作对象所实施的窗口对象控件是标准控件还是非标准控件。如果该窗口对象控件是标准控件,则权重值确定单元确定该操作对象的控件路径权重值大于坐标权重值,并且大于匹配阈值。如果该窗口对象空间是非标准控件,则权重值确定单元确定该操作对象的控件路径权重值小于坐标权重值。同时,坐标权重值大于匹配阈值。

(三)存储模块

存储模块用于存储录制模块记录的输入动作序列。本实施例中,可以采用先进先出的存储堆栈。测试人员每在显示模块显示输出的界面窗口中实施一个操作动作,录制模块就获取该操作动作的动作类型信息和操作对象信息放入该存储堆栈中存储起来。

(四)回放模块

用于根据所述测试脚本执行测试操作的回放模块。回放模块读取存储在存储模块中的操作动作序列。并按照发生的先后顺序生成测试实例,以执行该操作动作序列。需要说明的是,在生成测试用实例时回放模块需要根据测试终端的语言环境生成测试实例代码,以保证测试终端能够顺利解读并实施该测试实例代码。例如,对于执行JAVA测试用例的测试终端,回放模块需要将动作类型信息所标记的操作动作和操作对象信息所标记的窗口对象控件转换为JAVA语句,而对于执行LUA测试用例的测试终端,则回放模块需要将动作类型信息所标记的操作动作和操作对象信息所标记的窗口对象控件转换为LUA语句。该过程完全由回放模块自动执行,无效测试人员介入,由此简化了测试用例的编写复杂度。

回放模块还包括匹配阈值确定单元。匹配阈值确定单元比较回放模块和录制模块的显示参数(包括分辨率、显示区域大小等),并根据比较结果确定匹配阈值(范围0~1)。显示参数中一致的项目越多,匹配阈值的值越大,表示回放模块和录制模块的显示匹配度越高。例如,如果回放模块和录制模块的显示参数完全一致,则匹配阈值为1,表示它们高度匹配。如果回放模块和录制模块的显示参数完全不同,则匹配阈值为0。

回放过程根据所述操作对象信息来确定操作动作的实施对象,在所述坐标权重值大于所述控件路径权重值时,根据所述坐标信息确定所述操作动作的实施对象,在所述坐标权重值小于所述控件路径权重值时,根据所述控件路径信息确定所述操作动作的实施对象。而如果坐标权重值匹配阈值大于50%时,也可以根据所述坐标信息确定所述操作动作的实施对象。以下表为例:

回放模块在确定操作对象1的实施对象时,可以根据所述控件路径信息直接查找该路径对应的窗口对象控件。并且匹配阈值为0.9,因此也可以根据所述坐标信息确定需要操作的窗口对象控件在窗口中的位置,来确定窗口对象控件。

回放模块在确定操作对象2的实施对象时,可以根据所述控件路径信息直接查找该路径对应的窗口对象控件。并且匹配阈值为0.8,此也可以根据所述坐标信息确定需要操作的窗口对象控件在窗口中的位置,来确定窗口对象控件。

回放模块在确定操作对象3的实施对象时,只能根据所述控件路径信息直接查找该路径对应的窗口对象控件。因为,其匹配阈值为0.1,表示回放模块和录制模块的显示参数不匹配,不能根据坐标信息确定需要操作的窗口对象控件。

回放模块在确定操作对象4的实施对象时,只能根据所述坐标信息直接查找该路径对应的窗口对象控件。

基于本实施例的自动化测试系统的测试方法,包括用于获得测试脚本的录制过程和用于根据测试脚本执行测试操作的回放过程。

(一)录制过程

由显示模块显示输出需要测试的应用窗口界面,测试人员在被测应用的界面窗口中对窗口对象控件进行操作。录制模块根据各操作动作发生的先后顺序,获取各个操作动作的动作类型信息和操作对象信息。并按照它们发生的先后顺序存储在存储模块中。

(二)回放过程

由显示模块读取存储在存储模块中的测试脚本。按照先后顺序解读存储在测试脚本中的操作动作序列。根据操作动作类型确定需要执行的操作动作(例如长按操作、短按操作、点击操作、滑动操作、单点触控、多点触控等)。显示模块根据所述操作动作的操作对象信息确定该操作动作的实施对象。获得操作动作和实施对象以后,显示模块便可依照测试环境语言生成并运行相应的测试用例。

本发明提出了一种优化UI自动化测试脚本录制的方法,从录制信息的完整性以及引入权重的方式,以较为灵活的方式适应各种场合下脚本录制,提升回放的成功率。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1