最近想着搭建一个API测试平台,基础的注册登录功能已经完成,就差测试框架的选型,最后还是选择了httprunner,github上已经有很多开源的httprunner测试平台,但是看了下都是基于httprunner1.5.8测试框架,1.0和3.0差距还是很大的,所以自己想集成个3.0的平台,既然要继承,读懂源码必不可少
我们先来看下源码的目录结构
是一个Python package
,这部分主要使用了fastapi
框架
├── __init__.py ├── main.py └── routers ├── __init__.py ├── debug.py ├── debugtalk.py └── deps.py
这个包做了一些内置的功能
├── __init__.py ├── comparators.py └── functions.py
在httprunner
基础上集成了别的插件
├── __init__.py ├── har2case │ ├── __init__.py │ ├── core.py │ └── utils.py ├── locust │ ├── __init__.py │ └── locustfile.py └── uploader ├── __init__.py
.har
生成一个测试用例,支持yaml/json/pytest
locust
性能测试命令行驱动执行
客户端相关方法,主要是封装 requests
.Session.request
,安全调用,输出log等, 给runner.py
调用.
提供各种处理兼容性的方法,包括让v2版本的用例能在v3版本继续运行的相关转换方法
定义了失败类型的异常信息
加载文件内容的方法
主要集成参数使之生效在测试用例中,如config
、request
、teststep
等等,构成一个可用的用例
定义各种model类,以BaseModel
为父类
各种解析方法,主要用于数值类型判断后自动转换
处理响应报文格式.
运行项目的核心
创建项目脚手架,生成框架的基本模板
测试用例的信息
一些工具函数