httprunner3源码解读(1)简单介绍源码模块内容

前言

最近想着搭建一个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

主要集成参数使之生效在测试用例中,如configrequestteststep等等,构成一个可用的用例
 

models.py

定义各种model类,以BaseModel为父类
 

parser.py

各种解析方法,主要用于数值类型判断后自动转换
 

response.py

处理响应报文格式.
 

runner

运行项目的核心
 

scaffpld.py

创建项目脚手架,生成框架的基本模板
 

testcase

测试用例的信息
 

utils.py

一些工具函数