來自接口測(cè)試初學(xué)者的筆記恤磷,寫的不對(duì)的地方大家多多指教哦
很多人會(huì)使用postman工具绘雁,或者熟悉python牧愁,但不一定會(huì)使用python來編寫測(cè)試用例腳本,postman里面可以完整的將python代碼復(fù)制出來红淡。
(以下所有內(nèi)容以豆瓣網(wǎng)站搜索功能為例子)
一不狮、postman接口用例轉(zhuǎn)換為python測(cè)試用例
打開postman,點(diǎn)擊右側(cè)的</>圖標(biāo)在旱,頁面右邊會(huì)顯示腳本摇零,頂部修改導(dǎo)出的語言,這邊我使用的是Python-Reqyests
復(fù)制腳本颈渊,在PyCharm中打開即可,在導(dǎo)入使用之前如果沒有reuqests庫终佛,可能會(huì)報(bào)錯(cuò)俊嗽,我們需要安裝reuqests庫。
cmd命令窗口輸入:pip install requests
導(dǎo)出后的腳本格式如下:
import requests
url = "<https://www.douban.com/search?">
payload={'q': '三體'}
files=[
]
headers = {
'Cookie': 'bid=5bBvkukAbvY'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
二铃彰、轉(zhuǎn)換為pytest測(cè)試用例
1.下面就是轉(zhuǎn)成pytest的測(cè)試用例
import requests
class TestDouban:
def test_douban(self):
url = "<https://www.douban.com/search?">
payload = {'q': '三體'}
files = []
headers = {
'Cookie': 'bid=5bBvkukAbvY'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
三绍豁、封裝POST和GET方法
在一個(gè)項(xiàng)目中,根路由的路徑是一樣的牙捉,只是不同功能對(duì)應(yīng)的具體的接口不一致竹揍,且POST和GET是目前測(cè)試用例中比較通用的方法敬飒,所以可以將根路由、POST和GET方法封裝成一個(gè)通用的類芬位,后面直接調(diào)用即可无拗。
1.common.py—公共類封裝
import requests
class Common:
def __init__(self):
# 豆瓣根路由
self.url_root = "<https://www.douban.com>"
# get請(qǐng)求,uri是接口具體地址昧碉,params是get請(qǐng)求的參數(shù)英染,如果沒有,默認(rèn)為空
def get(self, uri, params=''):
# 拼湊訪問地址
url = self.url_root + uri + params
# 通過get請(qǐng)求訪問對(duì)應(yīng)地址
response = requests.get(url)
# 返回request的response結(jié)果被饿,類型為requests的Response類型
return response
# post請(qǐng)求四康,uri是接口具體地址,params是post請(qǐng)求的參數(shù)狭握,如果沒有闪金,默認(rèn)為空
def post(self, uri, params=''):
# 拼湊訪問地址
url = self.url_root + uri
# 有參數(shù),則訪問對(duì)應(yīng)的url论颅,并賦值給默認(rèn)參數(shù)data
if len(params) > 0:
response = requests.post(url, data=params)
# 無參數(shù)哎垦,只需要訪問對(duì)應(yīng)的url即可
else:
response = requests.post(url)
# 返回request的response結(jié)果,類型為requests的Response類型
return response
2.具體接口測(cè)試用例
import requests
from common.common import Common
class TestDouban:
def setup(self):
self.com = Common()
def test_douban(self):
uri = "/search?"
payload = {'q': '三體'}
response = self.com.post(uri, payload)
# 由于file不需要嗅辣,就將file刪除了撼泛,至于hearder是否要添加可根據(jù)需求來定
執(zhí)行結(jié)果如下: