[发明专利]一种基于数据分离原则的UI测试框架在审
申请号: | 201711200558.4 | 申请日: | 2017-11-27 |
公开(公告)号: | CN107908564A | 公开(公告)日: | 2018-04-13 |
发明(设计)人: | 于海生;程杨 | 申请(专利权)人: | 于海生 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100012 北京市朝阳区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 数据 分离 原则 ui 测试 框架 | ||
技术领域
本发明涉及对于Web UI的自动化测试的流程改进。当前业内对于Web UI的自动化测试流程为:打开页面,寻找指定的页面元素,然后进行相应的操作,如点击、输入、下拉菜单选择、单选、复选等。本发明具体提出了一种基于数据分离原则的UI测试框架。
背景技术
当前业内对于Web UI的自动化测试用例设计普遍为粗放的使用Webdriver或其他开源框架,现有的自动化测试框架架构图中测试用例和Web操作的功能强耦合在一起,导致自动化测试没有层次处理或层次不清晰,易将测试逻辑代码和寻找页面元素的表达式夹杂在一起,且对于页面的管理没有较好的分类方式,且大多数不支持视频录像。将测试逻辑代码和寻找页面元素的表达式夹杂在一起,会带来以下问题:寻找页面元素的表达式可长可短,有时候为了能成功定位一个较复杂的页面元素,所写的表达式非常长,这会导致这个测试框架的代码非常不易读,给其他需要维护或者使用该框架的程序员带来较大的代码阅读困难;修改测试用例困难,因为代码理解较为困难,使得修改测试用例的效率非常低下。没有较好的分类方式,会导致:由于多个页面的功能写在一个类里或者同一个功能重复在不同的类里,使得已写过测试用例很难复用;加之,测试数据和测试场景的强耦合使用,如果新增测试用例便需要重写整个测试用例,使得新增测试用例的效率较低下。Web UI测试过程不支持录像,会给后期问题定位带来一定的困难。
综上所述,现有方法的缺点及本发明要解决的技术问题:
1、UI元素定位数据和测试框架逻辑强耦合在一起,导致修改及复用测试用例复杂;
2、框架无分层或分层粗放,代码粘性太大,大部分的功能都夹杂在一起,导致新增测试用例的便捷性、可扩展性和可移植性均较差;
3、问题定位不直观,只能通过log和页面截图定位问题,导致bug定位耗时较长。
发明内容
针对之前粗略的使用Webdriver等开源框架做UI自动化测试,本测试框架采用了两个维度的数据分离原则。本方法将测试框架划分为用例层、功能层、工具层、基础层,从而减少了程序员对测试框架的维护成本,方便测试用例扩展,进而提高了测试用例编写效率。在工具层提供了其他框架缺乏的录像功能,为后期问题定位提供了直观参考依据。最后,结合这些技术特色,提出并完成了数据即用例的概念,即每一条数据视为一个测试用例,极大的提高了QA开发测试用例效率。
附图说明
图1是本发明的测试框架架构图。
图2是现有的自动化测试框架架构图。
图1中,将测试框架划分为用例层、功能层、工具层、基础层,并且四个层次中又分别包含了各种子模块。
图2中,现有的测试框架仅分为用例层和基础层,层次划分不清晰且测试效率低下。
用例层
从本发明的架构图可以看出,用例层包含测试数据、测试逻辑和数据分离控制这三个模块。测试逻辑模块用于管理测试场景(即测试用例),该模块只关注于测试场景的逻辑实现。测试数据负责数据的存储和管理,数据存储采用csv文件形式,csv文件命名规则和数据存储规则如下:
1、csv文件命名必须存放在与测试用例java类名同名的文件夹内,并且csv文件必须与其对应的方法保持一致。比如,如果测试用例java类为Test.java,包含一个测试用例方法为get_user_info,则csv文件必须存在于文件夹Test内,且csv文件名为get_user_info.csv。csv文件内的每行即为一个测试用例,每行的数据参数可以由数据管理模块指定。比如,起始5个参数为测试用例运行所需的参数,后3位为测试用例运行结果判定的校验数据,诸如此类,各个参数的作用可由数据分离控制模块自行设定。
数据分离控制模块通过继承TestNG Data Provider类和自行编写csv文件处理方法完成测试数据的管理功能,运行时通过java反射得到类的名字和具体执行的方法的名字并与csv文件的名字形成关联,每个方法都有自己的数据,这样将数据和测试逻辑分离,从而使得代码清晰易读,另外对于数据的改变,QA则可以只修改数据文件而无需对逻辑代码进行关注,从而做到了易维护。
功能层
功能层是用来将Web的每个页面封装成一个java类,为框架上层的用例层提供Web页面的类支持。功能层包含四个子模块:Web页面类、页面元素功能、UI元素定位表达式、数据分离控制模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于于海生,未经于海生许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711200558.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:测试飞行任务计划软件人机交互界面的测试系统
- 下一篇:一种测试方法及设备
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置