自研接口测试平台(Django2+Bootstrap3+Unittest)
HttpRuleTest是一款面向 HTTP 协议的通用测试框架,只需web端维护接口测试数据,即可实现自动化测试、监控、数据统计、持续集成等多种测试需求。开发语言: python3.6,适用的操作系统:Linux/mac/Windows。
设计理念
- 降低接口自动化的维护成本,增加测试体验,提高测试效率
- 充分复用优秀的开源项目,不追求重复造轮子,而是将强大的轮子组装
- 遵循
约定大于配置
的准则,在框架功能中融入最佳工程实践 - 追求投入产出比,一份投入即可实现多种测试需求
核心特性
- 测试者通过管理接口,通过接口名去建立单接口多用例测试
- 测试者只需维护数据,数据会按照规则去生成脚本
- 测试者采用断言验证数据结果,以及可以使用接口依赖功能
- 测试者可以使用sql初始化,断言状态前,以及析构 执行
- 测试者可以通过sql获取变量或者接口依赖获取变量使用${变量名}进行替换
- 采用配置化管理访问环境和发送邮件
- 测试结果统计报告简洁清晰,附带详尽统计信息和日志记录
- 集成apschedule框架,采用crotable定时模式
- 继承 Requests 的全部特性,轻松实现 HTTP的各种测试需求
- 使用 unittest的单元测试框架,面向深层次用户可以自行扩展生成的脚本
- Web 平台化,操作便捷,避免各地管理脚本和数据的混乱
添加项目
创建模块,关联项目
添加接口
添加用例
生成任务
执行
查看报告
断言
断言配置提供了4种方式,状态码,正则加字典的方式,jsonpath,数据库字段值的校验。比对方式也提供了多种选择,有等于,不等于,包含,不包含在列表中等等。
1.状态码校验,填写关键字status_code,系统就会默认选择状态码校验
2.数据库字段值的校验,这个要配合sql一起实现。sql中配置了查询的sql,将变量值获取,选取中间态执行,然后配置断言(${item_type})(${amount})方式校验结果
(如果数据库存有”的字符串,系统自动替换成‘,所以实际结果直接写单引号就可以了;如果数据库存有,的字符串,系统自动替换成+,所以实际结果直接写+就可以了)
(如果断言的结果涵盖布尔值的时候,与其对应的常量需要填写True或者False)
3.下面两种方式用例子来介绍,下图展示了一个json的数据,我要断言到result第一个对象的couponId值。['d']['result'][0]['couponId'],遇到字典用[''],一定要用单引号,遇到数组用[]。这样就能一直遍历下去。
4.jsonpath方法,采用'.'开头,也是刚才那个字段.d.result[0].couponId,遇到字典用.遇到数组用[],这里可以用json格式化小工具去获取path。
架构组织图
关注我们
酷家乐质量效能团队热衷于技术的成长和分享,几乎每个月都会举办技术分享活动(海星日),每半年举办一次技术专题竞赛分享(火星日),并将优秀内容写成技术文章。
我们尽可能保障分享到社区的内容,是我们用心编写、精心挑选的优质文章。如果您想更全面地阅读我们的文章,请您关注我们的微信公众号"酷家乐技术质量"。