基于Python的接口自動化-01

為什么要做接口測試

當前互聯(lián)網(wǎng)產(chǎn)品迭代速度越來越快,由之前的2-3個月到個把月,再到班車制,甚至更短,每次發(fā)版之前都需要對所有功能進行回歸測試,在人力資源有限的情況下,做自動化測試很有必要。由于UI更新較快,如若頁面交互比較復雜,UI自動化測試將變得更加難以維護,相較之,接口自動化就顯得比較簡單且易于維護。此外,UI自動化測試其操作的也是數(shù)據(jù),因此接口自動化是最簡單的

如何做接口測試

本文主要討論通過request庫模擬發(fā)送Http請求,主要是get、post請求,同時使用unittest庫來寫測試case,首先需要導入這兩個庫哦

import requests,unittest

簡單介紹一下get、post請求的區(qū)別吧

get:1.從服務(wù)端獲取數(shù)據(jù) 2.其請求的參數(shù)拼接在url地址后,所以可能導致信息的泄露,因此是非常不安全的

post:1.向服務(wù)端發(fā)送數(shù)據(jù),可能導致服務(wù)端數(shù)據(jù)的變更 2.其請求的數(shù)據(jù)在請求的body里面,較get請求安全些

模擬get請求

querystring = {"key":"value"}

response =requests.get(test_url,params=querystring)

模擬post請求

data={

"key1":"value1",

"key2":"value2"

}

//一般情況下是json格式的數(shù)據(jù),記得兩個參數(shù)間應(yīng)用逗號隔開

headers = {

'Content-Type': "application/json",

'Cache-Control': "no-cache",

'cookie':"***********”

}

//這些參數(shù)可通過抓包工具,如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) 一般不用這種方法,知道就行了

測試中肯定會有一件頭疼的事情,那就是有依賴的業(yè)務(wù)如何測試,比如很多都是基于登錄狀態(tài)的

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請求可以實現(xiàn)了,自動化測試當然少不了斷言了,代碼沒有人的主觀判斷,這個時候要用到assert,assertEqual,assertNotEqual,assertTrue,assertIsNone,assertIsInstance等方法

python中assert斷言是聲明其布爾值必須為真的判定,如果發(fā)生異常就說明表達示為假。assert TRUE,“ERRORMSG”

斷言

摘自:https://blog.csdn.net/qq1124794084/article/details/51668672

今天就先寫這么多,當然還有很多事情可以做

如發(fā)送測試報告,借助HTMLTestRunner

如mock測試數(shù)據(jù)

等等

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容