【介面自動化測試實戰】python+requests+Pytest+Excel+Allure(持續更新中。。。)
- 2022 年 2 月 26 日
- 筆記
- C-01【自動化測試】, C-02→ 介面自動化實戰, 自動化測試
前言
不知道該如何設計自動化框架?
不知道怎麼搭建持續集成環境?
下面帶大家一起來盤盤它?走起 ~~
一、先來了解下pytest
- pytest 是非常成熟全功能的Python測試框架。
- 可以覆蓋unittest能做到的各種各樣場景,比如:單元測試、web測試、app測試、介面測試等等。
- pytest是個插件化的平台,它比unittest更強大也在此。目前已經有大量第三方插件擴展和增強它的功能
- 你可以根據自己需求,訂製化開發出自己的插件
- 可以很好的和CI工具進行結合
pytest與unittest區別:
帶你清楚了解pytest和unittest://www.cnblogs.com/upstudy/p/15921090.html
為什麼選擇pytest而不是unittest,相信大家通過上面的文章心裏面已經有了答案。
任何框架、工具的出現都是為了解決某些問題,pytest的操作簡單,功能強大也致使它成為主流。
二、需要具備的基礎知識
python基礎
待更新
liunx基礎
待更新
git基礎
待更新
三、開發環境準備
python/pycharm安裝及環境配置
//www.cnblogs.com/upstudy/p/15938978.html
java安裝及環境配置
//www.cnblogs.com/upstudy/p/15940591.html
linux環境
待更新
tomcat部署及配置
待更新
jenkins安裝配置
待更新
git安裝配置
待更新
Allure安裝配置
- 百度網盤下載地址:
鏈接://pan.baidu.com/s/1fTbi3QMDeJeJdbMd4EQPig
提取碼:ss11
- 配置環境變數
- 驗證Allure,如下圖說明配置成功
需要的依賴包安裝
pip安裝一下依賴包(例如:pip install pytest
)
allure-pytest==2.8.36
allure-python-commons==2.8.36
configparser==5.0.0
PyMySQL==0.9.3
pytest==5.4.3
pytest-html==2.1.1
pytest-metadata==1.11.0
regex==2020.11.13
requests==2.25.1
requests-toolbelt==0.9.1
xlrd==1.2.0
xlwt==1.3.0
pyDes==2.0.1
ruamel.yaml==0.17.10
快速安裝技巧
將上面內容存入一個txt文件中,直接pip install 安裝
pip install -r requirements.txt
四、介面自動化實戰(設計項目目錄)
目錄結構
├── base // 工具
│ ├── api_requests.py // requests請求封裝
│ ├── asert_contrast.py // 斷言封裝
│ ├── log.py // 日誌封裝
│ ├── public.py // 常用路徑等操作封裝
│ └── read_data.py // 讀取文件數據
├── config // 配置文件
│ └── config.yml // 環境配置
├── data // 文檔
│ ├── └── demo.yml // 測試數據
│ └── …
├── log // 日誌文件
├── page // api方法封裝
│ ├── └── demo.py // 用例方法
│ └── login.py // 登錄封裝
├── report // 測試報告生成路徑
├── test_case // 用例腳本
│ ├── └── test_demo.py // excel用例腳本編寫
│ └── …
├── excel_data // excel用例
│ ├── demo.xlsx // excel用例文件
│ └── …
├── conftest.py // pytest自定義命令行參數,切換環境
├── pytest.ini // pytest配置文件
├── README.md // 幫助文檔
├── requirements.txt // 依賴包
├── run_all.py // 調試執行
└── 架構設計.xmind //導圖
五、方法封裝
**自動化測試框架(以下源碼請聯繫作者獲取) **
封裝requests請求方法
導入requests包,使用requests.request()方法,進行封裝請求方法到ApiRequest類中:
註:此封裝方法需要根據請求的方式(GET/POST),來傳入封裝的方法中進行請求。
封裝公共方法
封裝獲取文件路徑的公共方法,便於拼接文件路徑
封裝讀取文件方法
- yaml文件讀取封裝,需要傳入文件參數來獲取文件數據
- excel文件讀取封裝,也需要傳入文件路徑,直接繼承ReadYaml即可
調試成功列印數據:
斷言封裝
傳入介面相應的數據及預期結果,進行判斷
封裝log日誌方法
日誌封裝中需要傳入日誌項目名及日誌等級,以便靈活調整日誌資訊
調試成功列印數據:
數據文件(配置文件/測試用例數據文件)
- config環境配置文件
- yaml測試數據文件
- excel測試數據文件
六、編寫自動化用例腳本
test_case目錄中新建用例文件,並編寫用例
導入相應包,編寫用例類及測試用例
運行調試自動化腳本
使用Allure輸出自動化測試報告
七、持續集成
部署jenkins環境
待更新
配置jenkins並安裝必要插件
待更新
上傳程式碼到git
待更新
jenkins配置自動化項目
待更新
運行調試項目
待更新
優化自動化項目
待更新
八、其他自動化框架
無需寫程式碼的自動化框架
介面自動化框架
介面自動化測試框架【windows版】: jmeter + ant + jenkins
待更新
介面自動化測試框架【linux版】: jmeter + ant + jenkins
待更新
介面自動化測試框架: jmeter + maven + jenkins
待更新
UI自動化框架
UI自動化框架RobotFramework+Selenium2Library庫
待更新
要寫程式碼的介面自動化框架
介面自動化框架
介面自動化測試框架:python+request+pytest+allure
待更新
介面自動化測試框架:python+request+unittest+allure
待更新
介面自動化測試框架:java+httpclient+testng+allure
待更新
UI自動化框架
UI自動化框架:python+selenium/appium+pytest+allure
待更新
UI自動化框架:python+selenium/appium+unittest+allure
待更新