【介面自動化測試實戰】python+requests+Pytest+Excel+Allure(持續更新中。。。)

前言

不知道該如何設計自動化框架?
不知道怎麼搭建持續集成環境?
下面帶大家一起來盤盤它?走起 ~~

一、先來了解下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
待更新