httprunner3原始碼解讀(1)簡單介紹原始碼模組內容

Silent丿丶黑羽發表於2021-11-04

前言

最近想著搭建一個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

一些工具函式

相關文章