婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python 基于DDT實現數據驅動測試

python 基于DDT實現數據驅動測試

熱門標簽:千呼ai電話機器人免費 鎮江人工外呼系統供應商 高德地圖標注字母 騰訊地圖標注有什么版本 外呼系統前面有錄音播放嗎 申請辦個400電話號碼 深圳網絡外呼系統代理商 400電話辦理費用收費 柳州正規電銷機器人收費

簡單介紹

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

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

​ 🎈使用的意義

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

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

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

安裝及導入

​ cmd命令行執行安裝:pip install ddt

​ 直接導入到模塊:import ddt,或導入具體的裝飾器:from ddt import ddt, data, unpack

使用詳解

​ 🎈三個要點:

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

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

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("用例:{}--->執行未通過".format(case["title"]))
      print("預期結果:{}".format(expected))
      print("實際結果:{}".format(result))
      raise e
    else:
      log.info("用例:{}--->執行通過".format(case["title"]))


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

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

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

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

​ 上面例子的測試數據cases來源是使用了openpyxl來讀取excel中的測試數據的,關于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": "賬號或密碼不正確"}'}]

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

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

​ 🎈小結:

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

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

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

擴展

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

# 傳遞json
"""
json文件數據
{
	"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實現數據驅動測試的詳細內容,更多關于python 實現數據驅動測試的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 利用Python如何實現數據驅動的接口自動化測試
  • 詳盡講述用Python的Django框架測試驅動開發的教程
  • Nodejs學習筆記之測試驅動
  • python測試驅動開發實例
  • Android開發筆記之:對實踐TDD的一些建議說明
  • QUnit jQuery的TDD框架
  • 淺談測試驅動開發TDD之爭

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

巨人網絡通訊聲明:本文標題《python 基于DDT實現數據驅動測試》,本文關鍵詞  python,基于,DDT,實現,數據,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python 基于DDT實現數據驅動測試》相關的同類信息!
  • 本頁收集關于python 基于DDT實現數據驅動測試的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    蜜桃久久久久久| 国产日产欧产精品推荐色| av激情亚洲男人天堂| av亚洲精华国产精华精| 色婷婷激情一区二区三区| 欧美日韩久久不卡| 精品久久人人做人人爽| 国产精品久久久久四虎| 91在线视频播放| 亚洲欧美二区三区| 午夜精品福利视频网站| 久久精品国产久精国产| 成人国产电影网| 欧美日韩综合在线| 久久丝袜美腿综合| 高清成人在线观看| 在线视频观看一区| 久久久久久久久一| 亚洲综合久久久久| 国产精品亚洲专一区二区三区| 色婷婷av一区二区三区大白胸| 国产成人av影院| 欧美日韩精品系列| 国产精品久久久一本精品| 午夜精品一区二区三区电影天堂| 懂色av一区二区三区免费观看| 欧美日韩国产综合视频在线观看| 国产欧美日韩三级| 久久精品免费看| 欧美性生活久久| 亚洲三级在线免费观看| 亚洲福利一二三区| 99re66热这里只有精品3直播| 亚洲精品一区二区三区蜜桃下载 | 亚洲地区一二三色| jizz一区二区| 欧美激情一区三区| 韩国v欧美v亚洲v日本v| 欧美日韩二区三区| 一区二区三区精品视频在线| 国产91精品免费| 久久久影视传媒| 国产精品网站在线| 韩国精品主播一区二区在线观看| 91精品国产综合久久精品麻豆| 亚洲制服丝袜av| 91成人网在线| 一区二区三区精密机械公司| av亚洲精华国产精华精华| 极品少妇xxxx精品少妇偷拍 | 国产精品视频在线看| 蜜臀久久99精品久久久画质超高清 | 国产精品不卡一区| 国产麻豆成人精品| 精品国产亚洲一区二区三区在线观看 | 激情综合五月天| 国产一区二三区| 日韩欧美成人一区二区| 美脚の诱脚舐め脚责91| 精品国产欧美一区二区| 国产一区二区影院| 国产日韩在线不卡| a亚洲天堂av| 亚洲精品国产视频| 欧美日韩一区在线观看| 午夜电影网一区| 欧美群妇大交群中文字幕| 亚洲少妇最新在线视频| 99国产精品视频免费观看| 亚洲女与黑人做爰| 在线一区二区三区四区五区 | 成人永久免费视频| 国产精品色哟哟网站| 色偷偷久久人人79超碰人人澡| 亚洲天天做日日做天天谢日日欢| 在线免费亚洲电影| 青青青伊人色综合久久| 国产亚洲婷婷免费| 国产精品影视天天线| 午夜影院久久久| 欧美电视剧在线看免费| 韩国精品在线观看| 最新不卡av在线| 538在线一区二区精品国产| 国产一区二区三区在线观看免费视频| 日本一区二区三区高清不卡| 色94色欧美sute亚洲线路二| 美女脱光内衣内裤视频久久网站 | 欧美精品一区二区三| 国产成人啪午夜精品网站男同| 综合在线观看色| 欧美一卡2卡三卡4卡5免费| 丰满少妇久久久久久久| 亚洲一区免费观看| 国产亚洲一区二区三区四区| 欧美熟乱第一页| 国产成人精品一区二| 亚洲愉拍自拍另类高清精品| 精品处破学生在线二十三| 91久久线看在观草草青青| 国产视频一区二区在线观看| 欧洲一区二区三区免费视频| 国内精品久久久久影院色| 亚洲尤物在线视频观看| 国产精品久久夜| 精品免费99久久| 欧美视频精品在线观看| 懂色av一区二区三区蜜臀| 日韩中文字幕不卡| 日本精品一区二区三区高清| 精品国产制服丝袜高跟| 欧美无砖专区一中文字| 不卡视频在线观看| 欧美久久久久中文字幕| 日韩一区二区高清| 欧美性猛交xxxx乱大交退制版| 国产91丝袜在线18| 久久精品久久99精品久久| 亚洲图片欧美色图| 亚洲视频你懂的| 中文字幕在线视频一区| 久久美女艺术照精彩视频福利播放| 欧美三级中文字幕| 色悠悠久久综合| 国产一区二区视频在线播放| 日本女优在线视频一区二区| 日韩欧美一二三四区| 欧美视频在线播放| 99久久夜色精品国产网站| 国产suv精品一区二区6| 国产盗摄一区二区三区| 国产一区二区三区四区五区美女| 麻豆freexxxx性91精品| 亚洲午夜羞羞片| 欧美日本乱大交xxxxx| a亚洲天堂av| 亚洲高清免费一级二级三级| 99久久精品国产精品久久| 国产.精品.日韩.另类.中文.在线.播放| 欧美男男青年gay1069videost| 日本强好片久久久久久aaa| 国产精品色婷婷久久58| 欧美三区免费完整视频在线观看| 国产大陆a不卡| 日韩激情av在线| 91黄视频在线| 精品免费日韩av| 一区二区三区成人| 粉嫩绯色av一区二区在线观看| 国产精品久久久久久久久果冻传媒 | 亚洲444eee在线观看| 五月激情丁香一区二区三区| 日韩一级片在线观看| 美日韩一级片在线观看| 亚洲精品成a人| 精品久久久久久综合日本欧美| 色婷婷香蕉在线一区二区| 激情偷乱视频一区二区三区| 一区二区三区.www| 精品久久人人做人人爰| 欧美性xxxxxx少妇| 97精品久久久午夜一区二区三区| 精品一区二区av| 日韩专区在线视频| 亚洲mv大片欧洲mv大片精品| 亚洲欧美一区二区三区国产精品| 久久久99免费| 精品日韩一区二区| 欧美va亚洲va香蕉在线| 4438亚洲最大| 欧美肥胖老妇做爰| 在线电影一区二区三区| 91精品国产综合久久久久久久| 777久久久精品| 91精品国产综合久久久久久漫画| 91精品婷婷国产综合久久性色| 在线精品国精品国产尤物884a| 99久久精品国产麻豆演员表| 一区二区三区在线免费播放| 亚洲啪啪综合av一区二区三区| 亚洲免费av在线| 亚洲精品免费在线观看| 一区二区三区在线视频播放| 亚洲午夜久久久久久久久电影网| 亚洲欧美另类久久久精品| 亚洲精品欧美激情| 视频一区二区国产| 久久国产福利国产秒拍| 国产在线精品一区在线观看麻豆| 91片在线免费观看| 美女被吸乳得到大胸91| 国内不卡的二区三区中文字幕| 国产精品一区二区免费不卡 | 99视频一区二区| 在线精品亚洲一区二区不卡| 欧美电影在哪看比较好| 2022国产精品视频| 18成人在线观看| 香蕉久久一区二区不卡无毒影院| 日韩av在线播放中文字幕|