什么是接口自動化測試:使用工具或代碼代替人對接口進行測試
測試項目結構(python包)
1、接口api包? 2、script:業務腳本? 3、data:數據? 4、config.py :配置文件? 5、reporter:報告
錯誤問題:
1、未打印任何東西。添加pip install pytest
2、setup,teardown的問題
關于pytest使用setUp/tearDown提示錯誤: AttributeError: ‘TestLogin‘ object has no attribute ‘login_api‘_attributeerror: 'testlogin' object has no attribut-CSDN博客
3、合同新增業務
- 封裝接口類
- 獲取驗證碼接口
- 獲取驗證碼中的uuid,傳遞給data
- 登錄接口(登錄接口類的實現,實例化對象,調用登錄接口類實現用戶登錄,(!!data參數中關于uuid的部分)
- 實現課程添加接口對象的封裝和調用(如何實現課程添加接口對登錄接口的依賴)
- 上傳合同(上傳合同接口的實現,實例化對象,調用實現合同上傳(!!:文件如何上傳))
- 新增合同(新增合同接口的實現,實例化對象,調用接口實現合同新增)
4、登錄單接口實現
- pytest的使用,setup(前置),teardown(后置)
- setup:登錄接口實例化,驗證碼的獲取,json數據中uuid的獲取
- 斷言方法的掌握
assert 200 == response.status_codeassert "錯誤" in response.textassert 500 == response.json().get('code')
- 錯誤調試
response = self.loginapi.post_login(test_data)
- 測試數據參數化:導包,準備數據文件,在測試方法上面引用數據文件
import pytest
test_data =[('admin', 'HM_2023_test', 200, '成功', 200),(" ", '123456',200,"失敗", 500),("jack666","123456",200,'錯誤',500),
]@pytest.mark.parametrize("username,password,status,message,code",test_data)def test01_login_success(self,username,password,status,message,code):test_data = {"username": username,"password": password,"code": "2",# 獲得uuid的方法"uuid":TestLoginAPI.uuid}response = self.loginapi.post_login(test_data)assert status == response.status_codeassert message in response.textassert code ==response.json().get('code')
- 數據驅動:以測試數據驅動腳本執行,維護焦點從腳本轉向測試數據文件