接口測試中的好幫手python-ddt介紹

前言

我們在進行接口測試時尿庐,大多數(shù)時候都是針對接口的參數(shù)設計用例進行測試,而相應的測試步驟基本相同(調(diào)用接口呢堰,檢查返回碼抄瑟,檢查返回數(shù)據(jù))。這種場景非常適合使用數(shù)據(jù)驅動的測試枉疼。數(shù)據(jù)驅動測試的理念是將測試數(shù)據(jù)和測試步驟分離開皮假,使得測試代碼更加簡潔,增加測試數(shù)據(jù)就能增加測試用例骂维,這樣使得測試更加方便快捷∪亲剩現(xiàn)本文主要介紹python中的ddt框架ddt

場景

假設現(xiàn)在有一個待測接口為創(chuàng)建用戶:CreateUser,創(chuàng)建用戶的參數(shù)信息如下:

參數(shù) 說明
username 長度3-10航闺,必填
phone 11位數(shù)字褪测,必填
email 選填
sex 默認值0猴誊,0代表男 1代表女

針對這個說明可以設計幾個測試用例如下(包括但不限于):

參數(shù)數(shù)值 (順序跟上表一致) 預期結果
"ab","13800000000", 返回400,username不符合要求
"abc","13800000001", 返回200
"abc1234567","13800000002", None, 1 返回200
"abc123456","13800000003", None, 3 返回400侮措,性別不符合要求

假設接口的授權調(diào)用已經(jīng)在MyRequst中實現(xiàn)懈叹,則調(diào)用測試接口的步驟大致如下:

import MyRequst
para={"username": "ab",
      "phone": "3800000000"
}
ret = MyRequst.post(para)
assert ret.status_code == 200
assert ret.msg == None

ddt的具體實踐

如果不使用數(shù)據(jù)驅動測試,我們的測試可能會按如下這種模式寫:

import unittest
import MyRequst

class 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可以將測試數(shù)據(jù)分離出去畏吓,代碼如下:

import unittest
from ddt import ddt, data, file_data, unpack
import MyRequst

@ddt
class TestCreateUser(unittest.TestCase):
    
    #使用外部文件作為測試數(shù)據(jù)
    @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文件中保存測試數(shù)據(jù)

{
  "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
       }
}

增加測試用例只需要在測試數(shù)據(jù)文件中增加相應dict即可墨状,無需要改動測試代碼,這樣非常便于管理庵佣,測試步驟和測試用例都非常清晰明了歉胶。
如果不想使用外部文件,ddt還提供了在data方法可以在測試用例文件中使用元祖列表等傳入測試數(shù)據(jù)巴粪,具體用法可參考官方文檔

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末通今,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子肛根,更是在濱河造成了極大的恐慌辫塌,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件派哲,死亡現(xiàn)場離奇詭異臼氨,居然都是意外死亡,警方通過查閱死者的電腦和手機芭届,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門储矩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人褂乍,你說我怎么就攤上這事持隧。” “怎么了逃片?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵屡拨,是天一觀的道長。 經(jīng)常有香客問我褥实,道長呀狼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任损离,我火速辦了婚禮哥艇,結果婚禮上,老公的妹妹穿的比我還像新娘僻澎。我一直安慰自己貌踏,他們只是感情好瓮增,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著哩俭,像睡著了一般绷跑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凡资,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天砸捏,我揣著相機與錄音,去河邊找鬼隙赁。 笑死垦藏,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的伞访。 我是一名探鬼主播掂骏,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼厚掷!你這毒婦竟也來了弟灼?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤冒黑,失蹤者是張志新(化名)和其女友劉穎田绑,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抡爹,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡掩驱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了冬竟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片欧穴。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖泵殴,靈堂內(nèi)的尸體忽然破棺而出涮帘,到底是詐尸還是另有隱情,我是刑警寧澤袋狞,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布焚辅,位于F島的核電站映屋,受9級特大地震影響苟鸯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜棚点,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一早处、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瘫析,春花似錦砌梆、人聲如沸默责。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽桃序。三九已至,卻和暖如春烂瘫,著一層夾襖步出監(jiān)牢的瞬間媒熊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工坟比, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芦鳍,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓葛账,卻偏偏與公主長得像柠衅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子籍琳,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344