Selenium 是一个用于 Web 应用程序测试的工具。Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括 IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera 等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl 等不同语言的测试脚本。
目前主流的 web 测试框架底层都是基于 selenium,这个框架开发门槛很低,是为了让组内不会开发的测试人员参与脚本编写所搭建的,很早之前就看到有人发,所以我决定也发出来让人参考参考。
框架介绍
Java + webdriver+ Maven + TestNG + ExtentReports
1.使用 Java 作为项目编程语言
2.使用 Selenium 作为 Web 项目底层服务驱动框架,实现了基于 Selenium,WebDriver 等常用操作方法的二次封装,全局智能等待,解决 ajax 异步等问题。
3.使用 Maven 作为项目类型
4.使用 TestNG 作为项目运行框架,结合 ExtentReports,利用 TestNG 的监听机制实现报表生成、邮件发送以及失败自动截图等
5.使用 JDBC 作为数据库管理工具
a.实现测试前插入业务数据,测试后删除数据
b.从数据库获取数据要素,实现字段级别的验证或者运行环境要素
6.采用 PageObject 设计模式,对象库文件参数(例如 LoginPage.xml)+ 对象类(例如 LoginPage.java)+ 逻辑操作类(例如 LoginAction.java),实现元素对象库管理,页面元素信息与代码分离
7.使用 Svn 作为仓库管理工具,方便管理项目代码
8.引入 opencv 实现元素截图比对并且 diff 验证样式以及页面数据
9.引入 tessract-OCR 实现图形验证码自动获取
10.使用 Jenkins 作为自动化持续集成平台,自动编译,自动打包,自动运行,实现 web 测试项目发布后触发自动化测试,起到回归测试的功效
环境配置
1.Windows
2.Jdk1.8 以上
3.Mozilla Firefox(Geckodriver )
4.Chrome(ChromeDriver )
5.IE(IEDriverServer)
6.Maven
7.Svn
8.VC2010 以上(ocr 要求)
9.Jenkins
一、创建对象库
对象库文件到对象类文件即实现 xml 解析装载,已做成通用脚本,这里为 PageObjectAutoCode.java 。编写完后,运行 PageObjectAutoCode.java 文件生成对象库 java 代码
二、编写逻辑操作类
三、编写测试类
四、编写 testng.xml
Testng.xml 采用总分结构控制。
分:配置测试类以及相关参数
集成到总的 testng.xml,在此配置邮件
五、业务数据绑定
编写 testng.xml 时,需要额外配置 initDbPath 以及 restoreDbPath,即两个 sql 文件的路径,是为了在用例运行前插入相关业务数据,运行结束后删除业务数据,以实现用例脚本的可重复执行。这里以 suite 为维度做数据控制,利用 testng 的监听机制实现,框架可以做到以 testcase 维度,但是会导致 sql 文件太多,不易管理。
六、报表
七、邮件
八、Jenkins 集成
九、Assert 引擎
除了标准提供的 Assert 类,额外增加了数据库比对以及图片比对,这里展示一下图片比对的效果
红色标注轮廓