前段时间系统学习了测试专家虫师的 web 接口开发与自动化测试 -- 基于 Python 语言, 自己也模仿完成了项目, 收获颇丰由于服务端没有错误日志输出, 在定位错误接口调试过程中, postman 和 fiddler 起到了很大的作用过去单独学习这两个工具, 并没有感觉到它们的强大, 果然, 在项目实战中学习更有效率!
在已有项目的基础上, 又对所有接口进行了优化, 增加了 10 个接口: 实现了 http basic 认证版本的接口和 md5 摘要认证版本的接口另外, 实现了自动发送测试报告邮件的功能
接口测试还有一些常见的场景, 例如获取 cookie 自动登录, 对 https 接口处理, 使用 mock 模拟等, 这次项目暂时没有涉及到, 未来完善
回顾如下:
github 地址: https://github.com/yulifromchina/InterfaceTest
一项目成果展示
二项目所用技术
开发平台: windows 10 x64 + pycharm + python3.6 + mysql 5.7.21
签到系统: django 2.0.1 + django-bootstrap3-9.1.0
测试框架: requests 2.18.4
三项目具体介绍
1 发布会签到系统
发布会签到系统的功能包括: 登录发布会管理嘉宾管理签到功能
大致逻辑为: 用户登录时向服务器发起 Post 请求, 通过 django 的 auth 模块进行验证, 并把用户信息存储在服务器 session 中在登录的情况下, 用户可以浏览发布会, 嘉宾列表, 以及进入发布会管理页面后签到如果没有登录, 则无法访问这些页面 (通过 django 的 login_required 装饰器实现) 用户输入手机号签到, 后台将手机号和发布会作为联合主键到后台数据库验证, 并进行是否已签到发布会是否已经结束等判断, 最后返回签到结果
以上逻辑均通过不同的路由以及回调函数进行响应, 回调函数将数据从数据库取出, 经模板渲染后返回给浏览器显示
提供的接口如下:
2 测试框架
测试框架的结构如下:
对接口进行请求, 使用了 requests 库;
case 的组织, 使用了 unittest 测试框架;
测试报告, 使用了 htmlTestRunner 生成;
测试数据, 使用了 MySQL 数据库存储;
邮件发送, 使用了 smtplib 和 email 库
每个接口包括若干个用例, 每个接口的测试由一个 py 文件负责:
四项目总结
接口测试有一些专业的平台提供服务, 例如三剑客接口测试平台, 是使用现场的平台还是自己开发测试框架, 或者二次开发, 取决于项目的具体情况, 没有绝对的好坏通过实际完成接口, 并对接口进行编写, 加深了认识, 相信能够更好的使用工具使用 django 开发项目, 快速且结构清晰
项目中存在一个 bug 没有解决在 run_test.py 中, 目前不能 raw_*.py, http_*.py,md5_*.py 三个版本的 15 个用例一起运行, 只能分三批运行因为这三个批次的接口, 往数据库中插入的是同一批数据, 因此一起运行会造成数据污染尝试在三次运行间进行了清空数据库再重新插入数据的操作, 但是这个插入操作会失败没有定位到原因如果有大牛解决过类似情况, 望指教! 多谢!
来源: http://www.bubuko.com/infodetail-2494937.html