摘要:前言由于某測試平臺非???,導(dǎo)致創(chuàng)建了十個接口測試用例后便無法繼續(xù)創(chuàng)建測試用例。因此本文便利用的單元測試功能,完整實現(xiàn)了類似的接口黑盒測試功能。身邊用戶接口測試判斷返回列表中用戶是否只有十個最后,在函數(shù)中調(diào)用進行測試。
前言
由于某測試平臺非??樱瑢?dǎo)致創(chuàng)建了十個HTTP接口測試用例后便無法繼續(xù)創(chuàng)建測試用例。因此本文便利用Python的單元測試功能,完整實現(xiàn)了類似的接口黑盒測試功能。
測試環(huán)境Python3.6 Pycharm2017
本文默認讀者擁有上述環(huán)境,不再闡述環(huán)境搭建問題
1.創(chuàng)建測試代碼文件,新建普通Python文件即可
2.復(fù)制如下代碼,本代碼大致原理會在下文講到,本代碼僅為示例,如需運行,需要自行編寫相應(yīng)后端代碼
import unittest import requests import json URL = "http://xxx:9000" # 針對登錄模塊的測試類 class Login_Module(unittest.TestCase): # 獲取sessionID def get_session(self): r = requests.post(URL + "/login", data={"realPhone": "18890000000", "password": "123456"}) return json.loads(r.text)["data"] # 登錄接口測試 def test_login(self): r = requests.post(URL + "/login", data={"realPhone": "18890000000", "password": "123456"}) obj = json.loads(r.text) self.assertEqual(obj["code"], 0) # 判斷返回結(jié)果碼是否為0 # 身邊用戶接口測試 def test_near_user(self): r = requests.get(URL + "/nearuser", params={"sessionID": self.get_session()}) obj = json.loads(r.text) self.assertEqual(len(obj["data"]), 10) # 判斷返回列表中用戶是否只有十個 if __name__ == "__main__": unittest.main()
3.新建PythonTest運行環(huán)境(此步驟并非必須,只是為了更好的測試展示效果,需要配置)
此處需要注意target文件選擇包含測試代碼的文件
4.運行單元測試,如果最終結(jié)果為綠色,代表所有測試樣例均已通過
如果是Python初始環(huán)境,那么很有可能不存在requests這個PythonHTTP請求庫,需要打開CMD窗口,運行
pip install requests -i https://pypi.douban.com/simple
如果還欠缺其他庫,可按照格式,將requests替換掉即可
代碼解釋上述代碼包含一個測試類,這個測試類繼承了unittest.TestCase。這是一種python unittest的規(guī)范格式。
class Login_Module(unittest.TestCase):
下面第一個方法是作為工具方法存在的,由于方法名不以test開頭,因此在測試時該方法并不會作為測試方法參與測試,但是可以被其他測試方法調(diào)用。
這個方法的主要目的是獲取sessionID,在我的項目邏輯中存在sessionID這樣一個標識符,用來表示用戶的身份信息。(類似于WEB開發(fā)中的Session)
# 獲取sessionID def get_session(self): r = requests.post(URL + "/login", data={"realPhone": "18890000000", "password": "123456"}) return json.loads(r.text)["data"]
此處的重點是如下兩個函數(shù)
#這段代碼post代表post方法,post函數(shù)的第一個參數(shù)代表接口URL地址,第二個參數(shù)代表數(shù)據(jù)信息 requests.post(URL + "/login", data={"realPhone": "18890000000", "password": "123456"}) #這段代碼loads代表將返回的相應(yīng)字符串轉(zhuǎn)化為python字典數(shù)據(jù)類型,然后["data"]就可以取出屬性為data的數(shù)據(jù) return json.loads(r.text)["data"]
在上述的過程中,發(fā)現(xiàn)需要知道相應(yīng)信息的結(jié)構(gòu)才能更好地進行測試,但是由于接口不完善,有時候可能無法得到完整的接口信息,這時候就需要使用print函數(shù)自行打印接口返回信息
print(json.loads(r.text))
然后看下面的第二個函數(shù),這個函數(shù)主要和第一個函數(shù)相同,只是有一點不同,這個函數(shù)通過assertEqual進行了斷言,如果斷言成功,則繼續(xù)執(zhí)行。如果斷言失敗,則會停止執(zhí)行,輸出該測試用例的相應(yīng)信息。
# 登錄接口測試 def test_login(self): r = requests.post(URL + "/login", data={"realPhone": "18890000000", "password": "123456"}) obj = json.loads(r.text) self.assertEqual(obj["code"], 0) # 判斷返回結(jié)果碼是否為0
接下來看第三個函數(shù),這個函數(shù)的特色在于這個函數(shù)所對應(yīng)的接口的請求方式不是POST而是GET,針對GET請求,大體上方式還是一致的,只是數(shù)據(jù)參數(shù)名由data變成了params。
# 身邊用戶接口測試 def test_near_user(self): r = requests.get(URL + "/nearuser", params={"sessionID": self.get_session()}) obj = json.loads(r.text) self.assertEqual(len(obj["data"]), 10) # 判斷返回列表中用戶是否只有十個
最后,在main函數(shù)中調(diào)用unittest.main()進行測試。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/41695.html
摘要:前言由于某測試平臺非常坑,導(dǎo)致創(chuàng)建了十個接口測試用例后便無法繼續(xù)創(chuàng)建測試用例。因此本文便利用的單元測試功能,完整實現(xiàn)了類似的接口黑盒測試功能。身邊用戶接口測試判斷返回列表中用戶是否只有十個最后,在函數(shù)中調(diào)用進行測試。 前言 由于某測試平臺非常坑,導(dǎo)致創(chuàng)建了十個HTTP接口測試用例后便無法繼續(xù)創(chuàng)建測試用例。因此本文便利用Python的單元測試功能,完整實現(xiàn)了類似的接口黑盒測試功能。 測試...
摘要:配置觸發(fā)器的函數(shù)可以通過請求觸發(fā)執(zhí)行。目前函數(shù)計算的觸發(fā)器支持等編程語言,并不同程度支持對應(yīng)的框架,具體內(nèi)容請參看參考文檔。編寫處理函數(shù)編寫處理函數(shù)的時候一定注意配置了觸發(fā)器的函數(shù)接口與普通函數(shù)接口不同。 摘要: Web 應(yīng)用(Serverless web backend) 是函數(shù)計算很重要的一個使用場景。相比于傳統(tǒng)的在服務(wù)器上搭建 web 應(yīng)用,函數(shù)計算無需您管理服務(wù)器等基礎(chǔ)設(shè)施,只...
摘要:由于蘋果原生蛋疼的協(xié)議致使本來很簡單的個推送服務(wù)讓人望而卻步。直到蘋果最近的協(xié)議的出現(xiàn)才有所改善。如果推送失敗后蘋果的推送服務(wù)器會返回個錯誤的信息。結(jié)語雖然通過使用來實現(xiàn)蘋果的推送服務(wù)是個比較簡單的事情甚至會覺得比較枯燥無味的事情。 原文地址: http://52sox.com/python-use-h... 說起蘋果的推送,可能很多開發(fā)人員就開始頭疼了,因為實現(xiàn)蘋果推送服務(wù)是1個比較...
摘要:頁面數(shù)據(jù)說明性能測試參數(shù)請求的類型,例如。當前請求失敗的數(shù)量。中間值,單位毫秒,一半的服務(wù)器響應(yīng)時間低于該值,而另一半高于該值。平均值,單位毫秒,所有請求的平均響應(yīng)時間。單個請求的大小,單位字節(jié)。 寫在前面:此文章在通過學(xué)習、實踐網(wǎng)絡(luò)資料寫成,相關(guān)鏈接在文章結(jié)尾。 一、簡介 1、locust是一種可用python編寫腳本的開源壓測工具(實質(zhì)是由python下的一些庫構(gòu)成),可定義用戶行...
閱讀 2593·2021-11-22 09:34
閱讀 3573·2021-11-15 11:37
閱讀 2380·2021-09-13 10:37
閱讀 2142·2021-09-04 16:40
閱讀 1646·2021-09-02 15:40
閱讀 2485·2019-08-30 13:14
閱讀 3360·2019-08-29 13:42
閱讀 1960·2019-08-29 13:02