通過Postman請求結果如下圖:

那我們怎么用pytest進行測驗呢?
在介面測驗,我們要用到requests包,實作代碼如下:
import pytest
import allure
import requests
class TestSimple(object):
def TestWatcher(self):
url = "http://wthrcdn.etouch.cn/weather_mini?city=成都"
r = requests.get(url)
assert r.status_code == 200
d = r.json()
print(d)
簡述:上面通過request實作了天氣的查詢,對其請求狀態做了驗證(如果HTTP狀態碼為200則認為測驗通過),并對介面請求結果進行了列印,
執行上面代碼時遇到問題:No tests were found

結果問題查詢:pytest 啟動檔案名是以test開頭,函式名是以test開頭,所以我們把上面的函式名改下,把TestWacher改為testWacher再去執行,效果如下:

相比于狀態碼,我們可能更喜歡進行關鍵字校驗,如 查詢結果中沒有wendu欄位,則視為用例失敗怎么實作?
此時可以使用pytest的xfail標記用例預期失敗,如果用例運行成功則顯示Xpassed,失敗則顯示xfailed,xfail標記并不會影響用例的運行,
添加代碼如下:
if ('wendu' not in d['data'].keys()):
pytest.xfail('回傳結果不正確,wendu=NULL')
假設我們要檢查的欄位是 wendi,而結果中沒有該欄位,此時執行效果如下:

如果我們在執行時,如何讓報告顯得更漂亮呢?這時我們可以進行美化,最終代碼如下:
@allure.feature("測驗Dome")
class TestSimple(object):
@allure.story("天氣查詢")
@allure.description('一個免費的天氣查詢介面測驗')
@allure.severity('critical')
def testWatcher(self):
url = "http://wthrcdn.etouch.cn/weather_mini?city=成都"
with allure.step("查詢天氣"):
r = requests.get(url)
assert r.status_code == 200
d = r.json()
print(d)
if ('wendu' not in d['data'].keys()):
pytest.xfail('回傳結果不正確,wendu=NULL')
常見allure報告美化總結:
@allure.feature(“測驗用例特性場景(主要功能模塊)”)
@allure.story(“feature功能模塊下的分支功能(用例名稱)”)
@allure.description(“這里是用例的描述資訊”)
@allure.severity(“測驗用例等級”)
說明:allure對用例的等級劃分成五個等級
- blocker – 阻塞缺陷(功能未實作,無法下一步)
- critical – 嚴重缺陷(功能點缺失)
- normal – 一般缺陷(邊界情況,格式錯誤)
- minor – 次要缺陷(界面錯誤與ui需求不符)
- trivial – 輕微缺陷(必需項無提示,或者提示不規范)
allure.description_html(html代碼) #提供一些HTML在測驗用例的描述部分
@allure.step(“用例步驟說明”)
使用方法:
①@allure.step() 只能以裝飾器的形式放在類或者方法上面;
②with allure.step(): 可以放在測驗用例方法里面,但測驗步驟的代碼需要被該陳述句包含;
allure.attach(body, name, attachment_type, extension)
用于向測驗報告中輸入一些附加的資訊,通常是一些測驗資料資訊,引數說明:
- body - 要寫入檔案的原始內容
- name - 包含檔案名的字串
- attachment_type - 其中一個allure.attachment_type值,可以是文本、圖片、HTML等
- extension - 提供的將用作創建檔案的擴展名
@allure.link(“URL=鏈接地址”)
@allure.issue(“URL=問題鏈接”)
@allure.testcase(“URL=用例鏈接”)
最后執行用例,并生成allure報告:

點擊特性場景,進入詳情,結果如下:

上面就實作了一個簡單的pytest介面測驗例子,但怎么引數化,怎么讓代碼層次更清晰,要不要這么low b?請關注小編后續文章,

另外,歡迎加入軟體測驗技術交流群 313782132 ~進群可領取免費軟體測驗資料以及群內測驗大牛解惑!
測驗工程師職業發展路線圖
功能測驗 — 介面測驗 — 自動化測驗 — 測驗開發 — 測驗架構師
加油吧,測驗人!如果你需要提升規劃,那就行動吧,在路上總比在起點觀望的要好,事必有法,然后有成,
資源不錯就給個推薦吧~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/225354.html
標籤:python
