httprunner3原始碼解讀(二):目錄結構
阿新 • • 發佈:2021-10-31
上一篇簡單介紹了httprunner的主要特徵及簡單使用,從本篇開始陸續解讀httprunner3原始碼。
1、為什麼寫這系列?
- 閱讀httprunner3原始碼學習其設計思想
- 當下Python系的介面測試框架多數基於HttpRunner實現
- 記錄自己基於httprunner介面測試框架的二次開發歷程,希望也能幫到你
2、依賴庫
上一篇有講到httprunner擁抱開源,依賴requests,pytest,pydantic,allure和locust,除此外還依賴一些比較好用的第三方庫。官方文件(https://docs.httprunner.org/)
1 black==19.10b0 # python 程式碼格式化工具2 Brotli==1.0.9 # 壓縮 3 Jinja2==2.11.3 # 模板檔案,生產測試檔案 4 jmespath==0.9.5 # json 提取,語法參考 https://jmespath.org/tutorial.html 5 loguru==0.4.1 # 日誌 6 pydantic==1.8.2 # 資料型別定義,型別校驗 7 pytest==5.4.3 # 單元測試框架 8 pytest-html==2.1.1 # pytest生成html報告 9 PyYAML==5.4.1 # 解析yaml 10 allure-pytest==2.8.16 # 生成allure 報告 11 requests==2.26.0 # 請求庫 12 sentry-sdk==0.14.4 # 捕捉異常 13 locust = "^2.4.1" # 協程實現的效能測試工具
3、demo目錄
新建一個demo後最終目錄如下:
httprunner startproject demo
4、原始碼目錄
1 # https://github.com/httprunner/httprunner 2 git clone https://github.com/httprunner/httprunner.git
4.1、httprunner目錄結構分析
1 │ cli.py # 命令封裝 2 │ client.py # request封裝,請求方法邏輯 3 │ compat.py # 處理testcase格式v2和v3之間的相容性問題。 4 │ exceptions.py # 自定義異常 5 │ loader.py # 載入用例設計檔案JSON/YAML、環境變數、引數化,生成model定義的測試資料 6 │ make.py # 依據測試資料生產pytest測試檔案,並格式化生成的python程式碼 7 │ models.py # pydantic 資料模型定義 8 │ parser.py # 引數解析器,解析用例當中引用變數、自定義方法等 9 │ response.py # 響應內容處理:斷言、變數提取 10 │ runner.py # 執行/啟動器 11 │ scaffold.py # HttpRunner 腳手架 12 │ testcase.py # 測試用例的方法封裝 13 │ utils.py # 工具類 14 │ __init__.py # 部分包聚集地 15 │ __main__.py # cli 的 測試啟動檔案 16 │ 17 ├─app # FastAPI 應用程式 18 │ │ main.py 19 │ │ __init__.py 20 │ │ 21 │ └─routers 22 │ │ debug.py 23 │ │ debugtalk.py 24 │ │ deps.py 25 │ └─__init__.py 26 │ 27 ├─builtin # 內建方法、校驗比較器,供YAML/JSON用例設計檔案中testcases使用 28 │ │ comparators.py 29 │ │ functions.py 30 │ └─__init__.py 31 │ 32 └─ext 33 │ __init__.py 34 │ 35 ├─har2case # har 檔案 轉 測試用例 36 │ │ core.py 37 │ │ utils.py 38 │ └─__init__.py 39 │ 40 ├─locust # 效能測試相關[本次略過] 41 │ │ locustfile.py 42 │ └─__init__.py 43 │ 44 └─uploader # 檔案上傳 45 │ 46 └─__init__.py
4.2、框架流程
--------THE END--------