成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > python 基于DDT實現(xiàn)數(shù)據(jù)驅(qū)動測試

python 基于DDT實現(xiàn)數(shù)據(jù)驅(qū)動測試

熱門標(biāo)簽:千呼ai電話機器人免費 鎮(zhèn)江人工外呼系統(tǒng)供應(yīng)商 高德地圖標(biāo)注字母 騰訊地圖標(biāo)注有什么版本 外呼系統(tǒng)前面有錄音播放嗎 申請辦個400電話號碼 深圳網(wǎng)絡(luò)外呼系統(tǒng)代理商 400電話辦理費用收費 柳州正規(guī)電銷機器人收費

簡單介紹

​ DDT(Date Driver Test),所謂數(shù)據(jù)驅(qū)動測試,簡單來說就是由數(shù)據(jù)的改變從而驅(qū)動自動化測試的執(zhí)行,最終引起測試結(jié)果的改變。通過使用數(shù)據(jù)驅(qū)動測試的方法,可以在需要驗證多組數(shù)據(jù)測試場景中,使用外部數(shù)據(jù)源實現(xiàn)對輸入輸出與期望值的參數(shù)化,避免在測試中使用硬編碼的數(shù)據(jù),也就是測試數(shù)據(jù)和用例腳本代碼分離。

​ DDT它其實就是一個裝飾器,它會根據(jù)你傳遞進(jìn)來的數(shù)據(jù)來決定要生成幾個測試用例。

​ 🎈使用的意義

1.代碼復(fù)用率高:一個測試邏輯只需要寫一次,可以多條測試數(shù)據(jù)復(fù)用,同時提高測試腳本的編寫效率。

2.異常排查效率高:根據(jù)測試數(shù)據(jù),每條數(shù)據(jù)生成一條測試用例,用例相互分離,一條失敗的情況下不會影響其他測試用例。

3.代碼可維護(hù)性高:簡潔明了的測試框架,利于其他同事閱讀,提高代碼的可維護(hù)性。

安裝及導(dǎo)入

​ cmd命令行執(zhí)行安裝:pip install ddt

​ 直接導(dǎo)入到模塊:import ddt,或?qū)刖唧w的裝飾器:from ddt import ddt, data, unpack

使用詳解

​ 🎈三個要點:

  • @ddt:裝飾測試類
  • @data:裝飾測試用例
  • @unpack:裝飾測試用例

​ 要使用ddt的前提是要有測試用例類,然后用@ddt去裝飾測試用例類,用@data(測試數(shù)據(jù))去裝飾測試用例,如下登錄接口例子:

from ddt import ddt, data
from common.read_excel import ReadExcel
from common.my_logger import log


@ddt # 裝飾登錄測試用例類,聲明使用ddt
class LoginTestCase(unittest.TestCase):
  
  excel = ReadExcel("cases.xlsx", "login")
  cases = excel.read_data()
  
  @data(*cases)	# 裝飾測試用例
  def test_login(self, case):
    case_data = eval(case["data"])
    expected = eval(case["expected"])
    case_id = case["case_id"]
    result = login_check(*case_data)
    response = self.http.send(url=url, method=method, json=data, headers=headers)
    result = response.json()
    try:
      self.assertEqual(expected["code"], result["code"])
      self.assertEqual((expected["msg"]), result["msg"])
    except AssertionError as e:
      log.info("用例:{}--->執(zhí)行未通過".format(case["title"]))
      print("預(yù)期結(jié)果:{}".format(expected))
      print("實際結(jié)果:{}".format(result))
      raise e
    else:
      log.info("用例:{}--->執(zhí)行通過".format(case["title"]))


if __name__ == '__main__':
  unittest.main()

@ddt它做的事情其實就等同于這句代碼:LoginTestCase = ddt(LoginTestCase),把具體的類名傳給ddt,告訴ddt是這個測試用例類要使用數(shù)據(jù)驅(qū)動。

@data做的事情就是把測試數(shù)據(jù)作為一個參數(shù)傳遞給測試用例,一個數(shù)據(jù)對應(yīng)生成一條測試用例,如果data里面有多個數(shù)據(jù)那么就對應(yīng)生成多條測試用例。如果data里放的類似是元組、列表等這樣的序列類型的數(shù)據(jù),data會把他們當(dāng)成是一個整體,即一個測試數(shù)據(jù)。

​ 如果想一次傳遞多個參數(shù)給測試用例,需要自行在腳本中對數(shù)據(jù)進(jìn)行分解或者使用@unpack分解數(shù)據(jù)。如上例子中的測試用例,只使用了一個參數(shù),但這個參數(shù)case是一個字典,字典中已經(jīng)包含多個數(shù)據(jù),直接用key獲取對應(yīng)的值即可。@unpack則是可以把序列類型的數(shù)據(jù)拆分為多個,以多個參數(shù)傳給測試用例,但測試用例也需要定義同等數(shù)量的參數(shù)來接收。

​ 上面例子的測試數(shù)據(jù)cases來源是使用了openpyxl來讀取excel中的測試數(shù)據(jù)的,關(guān)于openpyxl可以看我這個系列的另外一篇隨筆。這里直接說明cases其實就是像下面這樣的一個列表:

cases = [{'case_id': 1, 'title': '正常登錄', 'data': '("test", "Test1234")', 'expected': '{"code": 0, "msg": "登錄成功"}'}, {'case_id': 2, 'title': '密碼錯誤', 'data': '("test", "123")', 'expected': '{"code": 1, "msg": "賬號或密碼不正確"}'}, {'case_id': 3, 'title': '賬戶名錯誤', 'data': '("test11", "Test1234")', 'expected': '{"code": 1, "msg": "賬號或密碼不正確"}'}]

# *解包后,一個字典就是一個測試用例數(shù)據(jù)
# 如第一個字典:{'case_id': 1, 'title': '正常登錄', 'data': '("test", "Test1234")', 'expected': '{"code": 0, "msg": "登錄成功"}'}

​ 通過*解包,它的數(shù)據(jù)就是3個字典,每次給測試用例傳入1個字典,而這個字典里就存放了一條完整的登錄接口測試用例的測試數(shù)據(jù),包括用例id、用例標(biāo)題、測試的賬號密碼、期望返回的結(jié)果。

​ 🎈小結(jié):

  • @data(a,b):a和b各運行一次用例
  • @data(*(a,b):a和b各運行一次用例,使用*解包,相當(dāng)于@data(a,b)
  • @data([a,d],[c,d])

                  如果沒有@unpack[a,b]、[c,d]都會被當(dāng)成一個參數(shù)傳入用例,即用[a,b]運行一次,用[c,d]運行一次;
                  如果有@unpack,[a,b]會被分解開,一次傳遞兩個參數(shù)給用例,用例需要定義兩個參數(shù)接收
                  @unpack可適用元組、列表或字典,但當(dāng)傳入的是字典時,字典的key和用例定義的參數(shù)名需要保持一致

​ 關(guān)鍵代碼:@file_data,傳遞文件(json/yaml)

擴(kuò)展

​ 關(guān)鍵代碼:@file_data,傳遞文件(json/yaml)

# 傳遞json
"""
json文件數(shù)據(jù)
{
	"token":123456,
	"actionName": "api.login",
	"content": {
		"user": "miki",
		"pwd": "Test123"
	}
}
"""
"""
yaml文件
test_list:
 - 11
 - 22
 - 12

sorted_list: [ 11, 12, 22 ]
"""
from ddt import *


@ddt	# 聲明使用ddt
class TestFile(unittest.TestCase):

  @file_data('D:/test/test.json')
  def test_json(self, json_data):
    print(json_data)
    
  @file_data('D:/test/test.yaml')
  def test_yaml(self, yaml_data):
    print("yaml", yaml_data)

以上就是python 基于DDT實現(xiàn)數(shù)據(jù)驅(qū)動測試的詳細(xì)內(nèi)容,更多關(guān)于python 實現(xiàn)數(shù)據(jù)驅(qū)動測試的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 利用Python如何實現(xiàn)數(shù)據(jù)驅(qū)動的接口自動化測試
  • 詳盡講述用Python的Django框架測試驅(qū)動開發(fā)的教程
  • Nodejs學(xué)習(xí)筆記之測試驅(qū)動
  • python測試驅(qū)動開發(fā)實例
  • Android開發(fā)筆記之:對實踐TDD的一些建議說明
  • QUnit jQuery的TDD框架
  • 淺談測試驅(qū)動開發(fā)TDD之爭

標(biāo)簽:海南 烏蘭察布 郴州 合肥 平頂山 哈爾濱 烏蘭察布 大慶

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python 基于DDT實現(xiàn)數(shù)據(jù)驅(qū)動測試》,本文關(guān)鍵詞  python,基于,DDT,實現(xiàn),數(shù)據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python 基于DDT實現(xiàn)數(shù)據(jù)驅(qū)動測試》相關(guān)的同類信息!
  • 本頁收集關(guān)于python 基于DDT實現(xiàn)數(shù)據(jù)驅(qū)動測試的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日韩视频在线你懂得| 亚洲影院免费观看| 国产精品扒开腿做爽爽爽男男| 欧美激情视频免费观看| 污污的视频网站在线观看| 呦呦视频在线观看| 久久久国产一区二区三区四区小说| 日本最新不卡在线| 非洲一级黄色片| 天堂av在线电影| 日本一区二区动态图| 成人综合久久| 在线播放欧美女士性生活| 亚洲色图18p| 亚洲一区二区三区自拍| 都市激情国产精品| 狠狠色狠狠色综合| 精品久久99| 麻豆网站免费在线观看| 亚洲人成网7777777国产| 成人短视频下载| 懂色av一区二区三区免费看| 亚洲免费福利一区| 天天综合网天天| 欧美日韩免费观看中文| 99在线精品视频| 韩日精品视频一区| 亚洲图片激情小说| 性8sex亚洲区入口| 国产黄页在线观看| 亚洲丝袜美腿综合| 国产免费成人在线视频| 精品91自产拍在线观看一区| 亚洲国产精品无码观看久久| 99精品视频中文字幕| 91精品在线视频观看| 国产精品国产三级国产传播| av动漫免费看| 天堂av中文在线| 国产精品麻豆视频| 国产天堂在线播放| 国产黄色在线| 中文字幕免费高清在线| 日韩一区二区a片免费观看| 91在线一区二区三区| 国产精品福利在线观看网址| 老牛影视免费一区二区| 小鲜肉gaygays免费动漫| 欧美变态视频| 中文字幕欧美日本乱码一线二线| 久久精品偷拍视频| 欧美精美视频| 精品二区三区线观看| 亚洲激情中文字幕| 成人h猎奇视频网站| 亚洲精品一区二区三区蜜桃下载| 日韩欧美三级在线观看| 亚洲天堂日韩电影| 国产成人综合精品在线| 国产美女性感在线观看懂色av| 黄色仓库视频网站| 亚洲xxx大片| 色在线中文字幕| 国产女同在线观看| 精品少妇人妻一区二区黑料社区| 日韩视频在线免费| 亚洲精品乱码久久久久久蜜桃动漫| 午夜毛片在线| 国产在线网站| 中文字幕在线亚洲三区| 免费精品视频一区二区三区| 国产最新自拍视频| 91丝袜在线| 影音先锋在线中文字幕| 亚洲一区视频| 日本a在线免费观看| 污视频在线观看免费网站| 国产欧美不卡| 4444kk亚洲人成电影在线| 亚洲第一男人天堂| 成人免费一区二区三区| √天堂8资源中文在线| 人妻体体内射精一区二区| 免费一级做a爰片久久毛片潮| 欧美大片网站| 国产91视频在线| 日本一欧美一欧美一亚洲视频| 精品国产乱子伦一区二区| 国产婷婷色一区二区三区四区| 丁香花在线影院| 欧美挠脚心网站| www.成人精品| 四虎永久免费地址| 国产三级精品三级在线观看| 欧美性感美女h网站在线观看免费| 337p日本欧洲亚洲大胆鲁鲁| 亚洲美女av黄| 欧美国产精品人人做人人爱| 四虎精品在永久在线观看| 日韩精品一区二区三区视频播放| 一级片免费网址| 欧美艾v福利视频在线观看| 久久精品男女| 五月天婷婷在线观看视频| 青青青国产视频| 五月六月丁香婷婷| 日本在线高清视频一区| 亚洲第一成人在线| www.中文字幕在线观看| 国产女人18毛片水真多成人如厕| 欧美精品网站| www.欧美激情.com| 一级特黄曰皮片视频| 成人精品国产免费网站| 一区二区三区四区在线观看国产日韩| 国产精品久久91| 日韩毛片无码永久免费看| 久久99精品久久久野外观看| 五月婷婷六月激情| 日本午夜精品理论片a级appf发布| 久久99国产成人小视频| 日本在线视频免费观看| 亚洲理论电影片| 人妻少妇一区二区三区| 日本猛少妇色xxxxx免费网站| 欧美在线啊v一区| 中文字幕在线影院| 在线免费观看日本欧美爱情大片| 天天综合中文字幕| 一区二区三区高清在线| 西游记1978| 午夜欧美巨大性欧美巨大| 印度美女freesex性hd| 永久在线免费观看| 亚洲熟女毛茸茸| 国产欧美日韩中文| 国模精品一区二区三区| 久久精品国产精品亚洲精品| 国产伦理片在线观看| 欧美一区二区三区人| 欧美精品vⅰdeose4hd| 日本全棵写真视频在线观看| 国产精品一香蕉国产线看观看| 免费吸乳羞羞网站视频| 国产女人水真多18毛片18精品| 成人国产免费视频| 欧美壮男野外gaytube| 久久久久久久久久久久91| 黄色的电影在线-骚虎影院-骚虎视频| 久久久久久久人妻无码中文字幕爆| 手机av在线播放| 国产福利一区二区三区在线视频| fc2在线中文字幕| 亚洲综合欧美日韩| 久久久女女女女999久久| 精品国产一区二区三区久久久狼牙| 欧美日韩另类丝袜其他| 欧美精品v国产精品v日韩精品| 亚洲视频网站在线| 中文字幕一区二区三区波野结| 亚洲欧美成aⅴ人在线观看| 男人天堂综合网| 亚洲综合123| 男人天堂网站| 最爽无遮挡行房视频在线| 亚洲国产岛国毛片在线| 欧美日韩亚洲第一| 成人免费黄色网| 无码人妻精品一区二区三区9厂| 精品欧美视频| 日韩一级在线播放| 一区二区精彩视频| 日本免费久久高清视频| 国产精品福利网站| 国产精品毛片久久| 性xxxxfjsxxxxx欧美| 日本欧美在线看| 先锋影音在线资源站91| 日韩精品一区二区三区中文精品| 国产熟妇久久777777| 先锋影音欧美性受| 免费观看成人鲁鲁鲁鲁鲁视频| 未满十八勿进黄网站一区不卡| 亚洲欧洲在线一区| 今天免费高清在线观看国语| 高清国语自产拍免费一区二区三区| av在线亚洲男人的天堂| 激情av一区| 浅井舞香一区二区| 亚洲日本中文字幕| ga∨成人网| 永久久久久久久| jlzzjlzz亚洲日本少妇| 国产性一乱一性一伧一色| 日日夜夜精品免费视频| 成人美女视频| 欧美黑人国产人伦爽爽爽| 精品国产乱码久久久久久樱花| 亚洲一区二区三区自拍| 日韩在线影视| 国产一线二线三线在线观看| 久久久成人精品一区二区三区| 欧洲人成人精品| 一级特级黄色片| 日韩电影免费在线观看中文字幕| 免费视频91蜜桃| 松下纱荣子在线观看| 久久精品国产亚洲高清剧情介绍| 欧美不卡视频| 性欧美videos精品| 中文一区在线观看| 免费观看精品视频| 久久久久av| 亚洲成人激情在线观看| 欧美剧在线观看| 欧美日韩成人在线视频| 97se亚洲国产综合自在线不卡| 自拍偷拍第1页| 色呦色呦色精品| 国产精品不卡视频| 成人91在线观看| 天天射天天色天天干| 黄色三级高清在线播放| 日韩欧美一级精品久久| 宅男噜噜噜66一区二区66| 你懂的视频在线看| 91网在线观看| 综合伊思人在钱三区| 蜜桃视频免费网站| 日韩a**中文字幕| 已婚少妇美妙人妻系列| 亚洲中文一区二区| 青少年xxxxx性开放hg| 最好看的2019年中文视频| 日韩中文字幕在线播放| 久久久av水蜜桃| 精品久久久久中文字幕小说| 中文字幕久久亚洲| av在线免费在线观看| 亚洲欧洲一区二区在线播放| 丁香婷婷成人| 操91在线视频| 国产日韩欧美成人| 国产精品久久久久无码av色戒| 高清亚洲成在人网站天堂| 久久久久亚洲av片无码下载蜜桃| 欧美www视频在线观看| 伊人一区二区三区| 91无套直看片红桃在线观看| 国产日韩精品一区二区浪潮av| 91成人免费看| 波多野结衣av无码| 国产免费拔擦拔擦8x高清在线人| a美女胸又www黄视频久久| 亚洲精品91美女久久久久久久| 日本一区二区动态图| 黄色aaa视频| 成人豆花视频| www.com黄色片| 性欧美16一18| 香蕉视频成人在线观看| 亚洲综合色自拍一区| 成人精品一区二区三区电影| 国产精品九九| 成人a视频在线观看| 欧美日韩经典丝袜| 中文字幕不卡av| 一区二区三区四区视频精品免费| 18视频在线观看娇喘| 香蕉视频成人在线| 日韩伦理电影网站| 日本高清不卡三区| 东方av正在进入| 国产精品乱人伦一区二区| 日韩亚洲一区二区| 亚洲精品自拍动漫在线| 奇米视频888| 亚洲第一男人av| 亚洲色图图片| 国产 国语对白 露脸| 97在线国产视频| 很污的网站在线观看| 男人av资源站| 999在线观看精品免费不卡网站| 天堂社区在线视频| 日韩女优在线播放| 久久综合久久网| 欧美亚洲另类激情另类| 天天插天天狠天天透| 亚洲视频在线观看| 97色伦亚洲国产| 亚洲精品一级二级| 久久久久精彩视频| 黄色片免费在线| 最新av免费在线| 另类一区二区| 久草网站在线| 国产成人免费视频网站视频社区| 免费在线观看一区二区| 久久免费视频精品| av不卡在线观看| 国产一区二区久久久久| 久久香蕉综合色一综合色88| 亚洲男人的天堂在线播放| 欧美成人做性视频在线播放| 羞羞色国产精品| 午夜激情在线观看视频| 欧美妇性猛交视频| 欧美 日韩 国产 一区| 精品不卡在线视频| 欧美黄色一级片视频| 午夜免费福利在线观看| 亚州成人av在线| 一级片视频免费观看| 日本a级不卡| 国产精品美女久久久久av爽| 国产精品自拍一区| 日本欧美不卡| 亚洲福利电影| 老太做爰xxxx| 在线日韩欧美| 欧美日韩精品久久久免费观看| a视频免费在线观看| 欧美丝袜一区| 私密视频在线观看| 青青操在线观看视频| 中国女人内谢69xxx视频| 欧美性受ⅹ╳╳╳黑人a性爽|