- 页面对象自动生成
页面对象模型的开发和维护是一件耗费时间和体力的事。
页面对象自动化生成技术,它非常适用于需要维护大量页面对象的中大型GUI自动化测试项目。页面对象自动化生成技术,属于典型的“自动化中的自动化”的应用场景。它的基本思路是,你不用再手工维护Page Class了,只需要提供Web的URL,它就会自动帮你生成这个页面上所用控件的定位信息,并自动生成Page Class。
需要注意的是,那些依赖于数据的动态页面对象也会包含在自动化生成的Page Class里,而这种动态页面对象通常不应该包含在Page Class里,所以往往需要以手工的方式删除。 - GUI测试数自动生成
CUI测试数据自动生成,指的由机器自动生成测试用例的输入数据。但仅仅局限以下两种情况:
- 根据GUI输入数据类型,以及对应的自定义规则库生成测试输入数据。
- 对于需要组合多个测试输入数据的场景,测试数据自动生成自动完成多个测试数据的笛卡尔积组合 ,然后再以人工的方式剔除掉非法的数据组合。
- 无头浏览器
无头浏览器,就是一个特殊的浏览器,可以把它简单的想象成是运行在内存中的浏览器。它拥有完整的浏览器内核,包括JavaScript解析引擎、渲染引擎等。于普通浏览器最大的不同是,无头浏览器执行过程看不到运行的界面,但是你依然可以用GUI测试框架的截图功能截取它执行中的页面。
无头浏览器的优点:
- 测试执行速度快。相对于普通浏览器来说,无头浏览器无需加载CSS以及渲染页面,在测试用例的执行速度上有很大的优势。
- 减少对测试执行的干扰。可以减少操作系统以及其他软件(比如杀毒软件等)不可预期的弹出框,对浏览器测试的干扰。
- 简化测试执行环节的搭建。对于大量测试用例的执行而言,可以减少对大规模Selenium Gride集群的依赖,GUI测试可以直接运行在屋界面的服务器上。
- 在单机环境实现测试的并发执行。可以在单机上很方便地运行多个无头浏览器,实现测试用例的并发执行。
缺点:
不能完全模拟真实的用户行为,而且由于没有实际完成页面的渲染,所以不太适用于需要对于页面布局进行验证的场景。同时,业界一直缺乏理想的无头浏览器方案。