自研接口测试平台(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。

架构组织图


comments powered by Disqus