页面对象自动生成技术
页面对象自动生成技术,属于典型的“自动化你的自动化”的应用场景。它的基本思路是,你不用再手工维护 Page Class 了,只需要提供 Web 的 URL,它就会自动帮你生成这个页面上所有控件的定位信息,并自动生成 Page Class。
需要注意的是,那些依赖于数据的动态页面对象也会被包含在自动生成的 Page Class 里,而这种动态页面对象通常不应该包含在 Page Class 里,所以,往往需要以手工的方式删除。
工具:
商用自动化工具,比如 UFT,已经支持页面对象自动生成功能了,同时还能够对 Page Class 进行版本管理。
免费的 Katalon Studio,已经提供了类似的页面对象库管理功能。
robotframework
GUI 测试数据自动生成
GUI 测试数据自动生成,指的由机器自动生成测试用例的输入数据。
1)根据 GUI 输入数据类型,以及对应的自定义规则库自动生成测试输入数据;
2)对于需要组合多个测试输入数据的场景,测试数据自动生成可以自动完成多个测试数据的笛卡尔积组合,然后再以人工的方式剔除掉非法的数据组合
无头浏览器
无头浏览器,即 Headless Browser,是一种没有界面的浏览器。无头浏览器,其实是一个特殊的浏览器,你可以把它简单地想象成是运行在内存中的浏览器。它拥有完整的浏览器内核,包括 JavaScript 解析引擎、渲染引擎等。与普通浏览器最大的不同是,无头浏览器执行过程中看不到运行的界面,但是你依然可以用 GUI 测试框架的截图功能截取它执行中的页面。
优势:
测试执行速度更快、减少对测试执行的干扰、简化测试执行环境的搭建、在单机环境实现测试的并发执行
目前,Headless Chrome 结合 Puppeteer 是最先进的无头浏览器方案。Puppeteer 是一个 Node 库,提供了高级别的 API 封装,这些 API 会通过 Chrome DevTools Protocol 与 Headless Chrome 的交互达到自动化操作的目的。