项目地址

https://github.com/Is4everDearlls/selenium_ide_script_playback

背景

在我的思维里,自动化应该和代码脱离,这样能让测试团队里更多的小伙伴可以参与进来。所以从一开始就没想过要做成常规的那样通过代码不断 CI/CD 的形式。

前期用 Django 写了一个自动化测试平台的 demo,因为前端易用性问题搁浅了,后续也没时间写新的或进行优化。详情见:https://testerhome.com/topics/14676

其实早在 2015 年就接触过 SeleniumIDE,但 IDE 录制的脚本在回放时一直都不怎么稳定,而前面说到的平台的问题在于用例的生成与维护,后面空下来的时候无聊瞎折腾,就把 SeleniumIDE 重新装了起来,然后录制了一个脚本之后,一查看文件,好家伙,原来是个 JSON 文件,然后这个成熟的想法就诞生了,然后就有了这个项目。

功能

  1. SeleniumIDE 录制脚本回放
  2. 监听前端 console 报错,支持断言
  3. 监听脚本执行过程中页面发出的 Ajax 请求,支持响应内容的断言
  4. 支持 SeleniumIDE 脚本自带的断言方式,例如页面元素,文本断言。
  5. 支持扩展关键字,但是需要在 SeleniumIDE 手动修改脚本【插入步骤或修改关键字】
  6. allure 报表输出

还有挺多想法没有实现的,例如响应 JSONPATH 断言等

思路

基于 SeleniumIDE 插件录制的脚本,去定义对应的关键字实现方法。然后去控制脚本的执行,过程中获取日志并基于Chrome DevTools Protocol 解析操作中发生的 Ajax 请求。

基于上面信息进行断言,并将结果存于对象中,当所有步骤执行完成之后再计算所有步骤与用例断言来判断此用例是否通过。并将所有用例数据使用 Pytest 钩子函数进行断言,基于用例数据动态生成 allure 报告。


↙↙↙阅读原文可查看相关链接,并与作者交流