介面自動化測試:快速敏捷迭代的業務類產品適合做介面自動化測試
前序
當前網際網路產品迭代速度越來越快,現在很多業務類產品一週發兩個版本,甚至更多。每次發版之前都需要對所有功能進行迴歸測試,在人力資源有限的情況下,做自動化測試很有必要。
由於UI更新較快,如若頁面互動比較複雜,UI自動化測試將變得更加難以維護,相較之,介面自動化就顯得比較簡單且易於維護。
此外,UI自動化測試其操作的也是資料,因此介面自動化是最簡單的,最直接的測試方法。
如何做介面測試
本文主要討論通過 request 庫模擬傳送 Http 請求,主要是 get、post 請求,同時使用 unittest 庫來寫測試 case,首先需要匯入這兩個庫 import requests, unittest。
get、post 請求的區別
get:1.從服務端獲取資料 2.其請求的引數拼接在 url 地址後,所以可能導致資訊的洩露,因此是非常不安全的。
post:1.向服務端傳送資料,可能導致服務端資料的變更 2.其請求的資料在請求的body 裡面,較 get 請求安全些。
模擬get請求
querystring = {"key":"value"}
response =requests.get(test_url,params=querystring)
模擬post請求
data={
"key1":"value1",
"key2":"value2"
}
//一般情況下是json格式的資料,記得兩個引數間應用逗號隔開
headers = {
'Content-Type': "application/json",
'Cache-Control': "no-cache",
'cookie':"***********”
}
//這些引數可通過抓包工具,如
fiddlers,charles 中 request 中獲取
response=requests.post(test_url, data=data, headers=headers)
#response=requests.post(test_url, data=data, headers=headers)
當headers裡面沒有傳必須的cookie時,可在方法裡面直接提交
#response=requests.request('POST',test_url, data=data, headers=headers)
一般不用這種方法,知道就行了
測試中肯定會有一件頭疼的事情,那就是有依賴的業務如何測試,比如很多都是基於登入狀態的。
response=requests.post(test_url, data=payload,headers=headers) //獲取請求
response_cookies=response.cookies //獲取cookies物件
session=response_cookies.get('SESSION_ID') //獲取sessionid
cookies={ //組合成cookie物件
'SESSION_ID':session
}
get、post請求可以實現了,自動化測試當然少不了斷言了,程式碼沒有人的主觀判斷。
這個時候要用到
assert,assertEqual,assertNotEqual,assertTrue,assertIsNone,assertIsInstance 等方法。
python 中 assert 斷言是宣告其布林值必須為真的判定,如果發生異常就說明表達示為假。assert TRUE,“ERRORMSG”

介面自動化測試報告
傳送測試報告,藉助 HTMLTestRunner
如 mock 測試資料,等等,後續再寫。
如何學習?學習沒有資料?請關注本公眾號,回覆「M」試試,獲得更多視訊資料和入群資格。