1. 程式人生 > 其它 >HttpRunner3原始碼閱讀: 1. 目錄結構分析

HttpRunner3原始碼閱讀: 1. 目錄結構分析

初衷

身處軟體測試行業的各位應該都有耳聞HttpRunner 開源測試工具/框架(介面測試),作者部落格

為什麼出這系列?

  1. 不少測試同行都建議閱讀HttpRunner,原始碼學習其設計思想。
  2. 社群當下Python系的介面測試平臺多是基於HttpRunner實現
  3. 個人想嘗試閱讀,並記錄希望也能幫到你

HttpRunner依賴庫

出自: https://github.com/httprunner/httprunner/blob/master/pyproject.toml
HttpRunner 使用了 poetry庫 來進行包管理 和打包的操作

requests = "^2.22.0"    # 請求庫
pyyaml = "^5.1.2"     # 解析yaml
jinja2 = "^2.10.3"    # 模板檔案,生產測試檔案
pydantic = "^1.4"     # 資料型別定義,型別校驗
loguru = "^0.4.1"     # 日誌
jmespath = "^0.9.5"   # json 提取
black = "^19.10b0"    # python 程式碼格式化工具
pytest = "^5.4.2"     # 單元測試框架
pytest-html = "^2.1.1"  # 簡易html報告
sentry-sdk = "^0.14.4"  # 沒get到xx[好像是版本相關的]
allure-pytest = "^2.8.16" # allure 報告
requests-toolbelt = "^0.9.1"  # 估計是上傳檔案用到的
filetype = "^1.0.7"   # 檔案型別判斷
locust = "^1.0.3"     # 協程實現的效能測試工具 [此次學習不帶它]
Brotli = "^1.0.9"   # 壓縮

1. 體驗

# 安裝
pip install httprunner

# 建立專案
httprunner startproject demo

# 執行專案
hrun demo

最終目錄結構

該系列要閱讀的內容

目錄結構分析

│  cli.py       # 命令封裝
│  client.py    # 請求方法邏輯
│  compat.py    # 處理testcase格式v2和v3之間的相容性問題。
│  exceptions.py  # 自定義異常
│  loader.py    # 載入檔案、環境變數、引數化
│  make.py      # 生產測試檔案
│  models.py    # pydantic 資料模型定義
│  parser.py    # 解析自定義語法`$name`,`${func(5)}`
│  response.py  # 響應內容處理,斷言邏輯
│  runner.py    # 執行/啟動器
│  scaffold.py  # HttpRunner 腳手架
│  testcase.py  # 測試用例的方法封裝
│  utils.py     # 工具類
│  __init__.py  # 部分包聚集地
│  __main__.py  # cli 的 測試啟動檔案
│
├─app     # FastAPI 應用程式 [可能和官方要出的平臺有點關係]
│  │  main.py
│  │  __init__.py
│  │
│  └─routers
│     │  debug.py
│     │  debugtalk.py
│     │  deps.py
│     └─__init__.py
│ 
├─builtin
│  │  comparators.py
│  │  functions.py
│  └─__init__.py
│
└─ext
   │  __init__.py
   │
   ├─har2case     # har 檔案 轉 測試用例
   │  │  core.py
   │  │  utils.py
   │  └─__init__.py
   │          
   ├─locust      # 效能測試相關[本次略過]
   │  │  locustfile.py
   │  └─__init__.py
   │
   └─uploader  # 檔案上傳
      │  
      └─__init__.py

參考資料

感謝以下內容的作者

HttpRunner - 李隆 / debugtalk

HttpRunner3.x中文文件 - 在路上

微信公眾號

作者:zy7y 出處:http://www.cnblogs.com/zy7y 本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須在文章頁面給出原文連結,否則保留追究法律責任的權利。