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