前言
最近想着搭建一個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
一些工具函數
