post 返回代码_减少冗长代码,利用DDT轻松分离测试数据
01
前言
我們在進行接口測試時,大多數時候都是針對接口的參數設計用例進行測試,而相應的測試步驟基本相同(調用接口,檢查返回碼,檢查返回數據)。這種場景非常適合使用數據驅動的測試。數據驅動測試的理念是將測試數據和測試步驟分離開,使得測試代碼更加簡潔,增加測試數據就能增加測試用例,這樣使得測試更加方便快捷。現本文主要介紹Python中的DDT框架。
02
場景
假設現在有一個待測接口為創建用戶:CreateUser,創建用戶的參數信息如下:
針對這個說明可以設計幾個測試用例如下(包括但不限于):
假設接口的授權調用已經在MyRequst中實現,則調用測試接口的步驟大致如下:
import MyRequstpara={"username":?"ab",?"phone":?"3800000000"}ret = MyRequst.post(para)assert ret.status_code == 200assert ret.msg == None
03
DDT的具體實踐
如果不使用數據驅動測試,我們的測試可能會按如下這種模式寫:
import?unittestimport?MyRequstclass?TestCreateUser(unittest.TestCase):?def?test1(self):?para={"username":?"ab",?"phone":?"3800000000"?}?ret = MyRequst.post(para)?assert?ret.status_code ==?400?assert?ret.msg ==?"username is invalid"?def?test2(self):?para={"username":?"abc",?"phone":?"3800000001"?}?ret = MyRequst.post(para)?assert?ret.status_code ==?200?assert?ret.msg ==?None
可見測試代碼太冗長,如果想增加新的測試用例,代碼還會越來越長。而使用DDT可以將測試數據分離出去,代碼如下:
import?unittestfrom?ddt?import?ddt, data, file_data, unpackimport?MyRequst@ddtclass?TestCreateUser(unittest.TestCase):?#使用外部文件作為測試數據?@file_data('data/test_data_dict_dict.json')?def?test(self, username, phone, email, sex, code, msg):?para={"username": username,?"phone": phone,?"email": email,?"sex": sex? ?? ?? ?}?ret = MyRequst.post(para)?assert?ret.status_code == code?assert?ret.msg == msg
而其中test_data_dict_dict.json文件中保存測試數據:
{?"1":{?"username":"ab",?"phone":"3800000000",?"email":None,"sex": None,?"code":?400,?"msg":"username is invalid"?},?"2":{"username":"abc",?"phone":"3800000001",?"email":None,?"sex": None,?"code":?200,?"msg":None?}}
增加測試用例只需要在測試數據文件中增加相應dict即可,無需要改動測試代碼,這樣非常便于管理,測試步驟和測試用例都非常清晰明了。
如果不想使用外部文件,DDT還提供了在data方法可以在測試用例文件中使用元祖列表等傳入測試數據,具體用法可參考官方文檔。
通知尚腦軟件測試培訓火熱進行中
有想報名進行試聽的同學可以
關注公眾號
或
咨詢微信(15718818708)
咨詢微信(17601613679)
進行了解哦!
長按關注“北京尚腦軟件測試”助你成金總結
以上是生活随笔為你收集整理的post 返回代码_减少冗长代码,利用DDT轻松分离测试数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用aspiration造句_aspira
- 下一篇: cad显示有点暗_CAD参照的图框颜色太