一起读测试论文(2)--基于selenium+testNG的测试框架
乙醇 创建于 8 months 之前
最后更新: less than a minute 之前
阅读数: 503
今天给大家带来的论文发表于2015年,全文的主旨是在描述如何使用selenium + testNG来实现一个稳定高效的web自动化测试框架。
文章开篇还是祖传的测试论文三件套
- 为什么要做测试
- 什么是web自动化测试
- 用什么工具做web自动化测试
这里就不展开了。
后面直接上了一张模块图,并对每个模块进行了详细的说明。
Object Repository
对象库。好吧,你说你没有对象...
selenium支持多种定位业务元素的方式,不过如果页面频繁变化的话,用selenium原生的地方方式就会带来一个维护成本偏高的问题。
于是有人就提出了对象库的概念,把所有的元素定位都集中在一个地方管理,我最早是在08年左右在一个叫做QPT的自动化测试工具中了解到这个概念的,如今12年过去了,这种方式依然行之有效。
Input file
在web系统中,用户经常需要输入一些信息,比如登录时候的用户名和密码。这些输入就可以放在input file里维护,这样每次输入相同内容的时候就可以直接从文件里读取了。不过要注意的是,这里仅维护一些必填项,一些可选项我们可以用随机值的方式去代替。
Utility Section
工具库,可以分成下面几种。
User Actions File:selenium提供了一些基本的元素操作方式,比如点击,但是另外一些操作,比如选择select box等的复杂操作其实并没有提供(原文大概是这个意思,不过selenium后面的版本确实提供了多种多样的操作行为工具,比如action chains以及select的操作等,可能当年文章写作时selenium是缺乏该能力的),可以将这些操作封装起来,后面调用的时候就可以多次复用了。
Utility file: 这个文件封装了一些常用功能,比如登录登出。
Screenshot Generation:实现了用例错误时自动截图的功能。
具体截图过程如下
- 创建文件夹
- 从testNG拿执行结果
- 判断执行结果
- 如果执行失败则自动截图
- 截图用执行时间来命名
- 保存截图
Test suite
testNG提供。
Customization of test report
自定义测试报告。基本上就是用的testNG提供的html report。
Email customized report to respective person
发邮件通知相关人员。使用 Mail.jar来实现。
结果对比
文中最后给出了该框架prowork Framework对比传统方式的优势,基本上是全面碾压。
总结
可以看出框架整体的结构是非常简单的,核心思想就是尽量复用TestNG的功能,然后封装一些工具函数,增加框架的可维护性。
如果大家遇到一些技术瓶颈或是想了解最新的一些测试思潮,偶然读一些论文还是很有帮助的。