測試框架基本能力
- 項目管理:pip闪幽、 virtualenv
- 用例編寫:pytest
- 領(lǐng)域能力:app、 web涡匀、http
- 執(zhí)行調(diào)度:pytest沟使、pycharm、shell渊跋、jenkins
- 測試報告:allure2
HTTP測試能力
- 請求方法構(gòu)造:get腊嗡、post着倾、put、delete燕少、head... ...
- 請求體構(gòu)造:form卡者、json、xml客们、binary
- 響應(yīng)結(jié)果分析:status code崇决、response body、json path底挫、xpath
Requests框架特點
- 功能全面:http/https支持全面
- 使用簡單:簡單易用恒傻,不用關(guān)心底層細(xì)節(jié)
- 定制性高:借助于hook機制完成通用處理
- 官網(wǎng):https://docs.python-requests.org/zh_CN/latest/
image.png
Requests常見http請求構(gòu)造方法
import requests
r = requests.put('https://httpbin.org/put', data={'key':'value'})
r = requests.delete('https://httpbin.org/delete')
r = requests.head('https://httpbin.org/get')
r = requests.options('https://httpbin.org/get')
- 演練環(huán)境:http://httpbin.testing-studio.com
image.png
實戰(zhàn)環(huán)節(jié)
- 測試腳本
import requests
class TestDemo:
def test_get(self):
r = requests.get("http://httpbin.testing-studio.com/get")
print(r.status_code)
print(r.text)
print(r.json())
assert r.status_code == 200
- 測試結(jié)果
test_requests.py::TestDemo::test_get
============================== 1 passed in 0.76s ==============================
Process finished with exit code 0
PASSED [100%]200
{
"args": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.testing-studio.com",
"User-Agent": "python-requests/2.25.0",
"X-Forwarded-Host": "httpbin.testing-studio.com",
"X-Scheme": "https"
},
"origin": "101.205.253.7",
"url": "https://httpbin.testing-studio.com/get"
}
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.testing-studio.com', 'User-Agent': 'python-requests/2.25.0', 'X-Forwarded-Host': 'httpbin.testing-studio.com', 'X-Scheme': 'https'}, 'origin': '101.205.253.7', 'url': 'https://httpbin.testing-studio.com/get'}