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