前言

本篇文章,会详细分享,我搭建的关键字驱动自动化测试框架的整体技术架构组成,以及思路方案。
有建议的都可以畅所欲言,感谢!

技术架构

Python+ selenium + Excel 关键字驱动 + pytest + openpyxl + yaml + ddt + pillow + logging

功能点

  1. 通过编写 Excel 自动化测试用例,每条用例使用对应的关键字函数,实现自动化;
  2. 自动化执行过程,记录执行时间,输出执行结果,如遇执行失败,自动截图;
  3. 自动化用例执行过程,全程录制画面,用例执行完后自动保存为 GIF 图片,方便回顾执行过程;
  4. 自动化用例执行过程中,输出日志,并自动保存;
  5. 自动化用例执行前自动进行文件备份,原因是,有时候我会强制中断执行,这样可能会导致 Excel 文件损坏,那我写的用例就又得重新写一次;
  6. 自动化用例执行结束后,输出 allure 报告;
  7. 框架支持配置,如: a. 指定当前运行环境(生产环境:prod,测试环境:dev),目前是两个作用,第一个是切换不同的环境,可以运行不同的项目地址;第二个是切换不同的环境,会使用不同的变量参数,如登录账号密码; b. 指定执行浏览器,如:chrome、fixfox c. 指定断言失败后,是否继续执行后续用例

项目结构

allure-report(allure 报告)
config(项目配置)
-- init.yaml(项目配置)
-- data.yaml(变量参数)
library(关键字函数库)
-- library.py(关键字函数)
logs(日志)
screenshot_gif(用例录制)
screenshot_imgs(用例错误截图)
testcase(pytest 测试用例)
-- testcase.py(pytest 测试用例)
testcase_data(Excel 自动化测试用例)
testcase_data_temp(Excel 自动化测试用例备份)
utils(工具库)
-- excel_util.py(读取 Excel 文件)
-- logging_util.py(日志器)
-- read_yaml_util.py(读取 yaml 文件)
-- tools.py(工具)
run.py(运行主函数)
关键字函数库文档.txt(关键字函数使用文档)

框架细节

  1. 关键字函数文档

  2. pytest 测试用例,这里我只集成了一个 testcase,然后自动读取 testcase_data 所有的测试用例 excel 文件

  3. 关键字函数库,使用 python 的反射函数,可轻松调用任意的关键字函数

  4. 部分关键字函数

  1. Excel 自动化测试用例

  1. allure 报告

  1. log 日志

  1. 其实,我觉得最实用的是,用例的执行过程录制,我用了一个比较巧妙的方法,就是把每一个执行步骤,做一次截图,然后存到临时文件,等所有用例执行完,自动合并为 gif 图片,这样就可以通过简简单单的方法,实现用例执行过程的画面录制,而且感觉很炫酷,这里暂不做展示;

总结

框架,还有很多细节未展示,文章篇幅有限,这里只做思路和方案的分享。

这套框架,我觉得会是我以后自动化测试平台的核心逻辑,现在这套缺点还是挺多,亟需自动化测试平台的集成,其中最重要的是,把数据存储到数据库,方便数据管理,实现更加强大的功能;


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