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