本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。
经过 Python 测试交流群的小伙伴群策群力,teprunner 添加了一个重要功能,把 PyCharm 中的代码,通过 Git 同步到测试平台中,生成测试用例。这样,teprunner 就成了一个名副其实的pytest 脚本在线管理平台。
效果展示
项目添加 Git 仓库和 Git 分支:

点击同步按钮即可进行 Git 同步:

同步说明

为什么要把平台用例和 Git 用例独立?如果平台上面的用例可以通过 Git 进行提交代码,那么代码冲突会很难解决,这是其一。其二是平台用例的好处就是规避了 Git 管理代码的冲突问题,一般测试人员代码能力没有开发人员那么强,代码冲突解决起来是真的费时费力。其三是如果用例在平台和 Git 中都有修改,那么同步时并不知道哪一份是最新的,无法判断。
前端开发内容
router 添加路由:


给项目增加两个输入框:



表格增加两列:


给测试用例的描述添加一个链接,查看用例:

接口响应添加来源字段:

根据来源区分编辑和删除的操作权限:

用例查看页面:

Git 同步菜单:

Git 同步页面及说明:

请求后端 gitSync 接口:

后端开发内容
Project 新增字段:

Case 新增字段:

其中 filename 用于缓存在数据库中的用例代码对应的文件名(实际上是相对于 tests 目录的路径)。
数据迁移:
python manage.py makemigrations
python manage.py migrate
ProjectSerializer 添加字段:

CaseSerializer 和 CaseListSerializer 添加字段:

url 添加路由:

git_sync 视图:

Git 同步后端配置:

从 Git 拉代码:

如果 docker 中没有就 clone,如果已经存在就 checkout 到指定分支再 git pull。
同步用例:

根据数据库中的 filenames 和 git 的 filenames 进行集合化后求差集/交集,得出需要删除/添加/更新的用例集,然后分别操作数据库缓存。
读取 git 文件内容:

从文件内容提取描述和创建人:

小结
本文介绍了如何使用 Git 把 PyCharm 中的 pytest 脚本,同步到测试平台进行管理。至此,teprunner 测试平台 V1.0.0正式完成。后续会逐渐完善部署文档和用户手册,欢迎持续关注。