接口自動化腳本
接口自動化是是可以完全貼合 整個自動化測試框架的
可以結合 pytest 以及 unittest 進行接口框架的編寫
接口自動化測試體現流程
項目頁面 - 接口文檔 - 接口用例 - python腳本 - pytest框架 - 用例執行 - 測試報告 - 結果分析 - jenkins集成
搭建測試框架的思路
核心技術:request發起請求,yaml作為配置,Excel寫入用例,數據驅動結合pytest對用例管理,
git管理代碼,jenkins持續集成,或者是docker容器
先對代碼封裝
import requests
import json
import pytest
class Test_Case:
def test_home_page(self):
# 確定url
url = 'http://mp-meiduo-python.itheima.net/'
# 發起請求
res = requests.get(url=url)
assert res.status_code == 200
def test_login(self):
# 登錄url
url = 'http://mp-meiduo-python.itheima.net/login/'
# 傳入請求頭
data = {
'username': 'admin',
'pwd': 'admin'
}
# 如果請求類型 為json 就需要轉碼
# data = json.dumps(data)
res = requests.post(url=url, data=data)
assert res.status_code == 200
if __name__ == '__main__':
# 執行指定接口測試用例文件 或生產測試報告
pytest.main(['-s','test.py','--html=my_case.html'])
結合數據驅動
class Test_Case:
@pytest.mark.parametrize('url',[
('http://mp-meiduo-python.itheima.net/')
])
def test_home_page(self,url):
res = requests.get(url=url)
assert res.status_code == 200
@pytest.mark.parametrize('url,data',[
('http://mp-meiduo-python.itheima.net/login/',{'username': 'admin',
'pwd': 'admin'})
])
def test_login(self,url,data):
url = url
data =data
# data = json.dumps(data)
res = requests.post(url=url, data=data)
assert res.status_code == 200
if __name__ == '__main__':
pytest.main(['-sv','test.py','--html=my_case.html'])