時隔已久,再次冒煙,自動化測試工作仍在繼續(xù),自動化測試中的數(shù)據(jù)驅(qū)動技術(shù)尤為重要,不然咋去實現(xiàn)數(shù)據(jù)分離呢,對吧,這里就簡單介紹下與傳統(tǒng)unittest自動化測試框架匹配的DDT數(shù)據(jù)驅(qū)動技術(shù)。
話不多說,先擼一波源碼,其實整體代碼并不多
ddt源碼
通過源碼的說明,基本可以了解個大概了,其核心用法就是利用裝飾器來實現(xiàn)功能的復(fù)用及擴(kuò)展延續(xù),以此來實現(xiàn)數(shù)據(jù)驅(qū)動,現(xiàn)在簡單介紹下其主要函數(shù)的基本使用場景。
1. @ddt(cls) ,其服務(wù)于unittest類裝飾器,主要功能是判斷該類中是否具有相應(yīng) ddt 裝飾的方法,如有則利用自省機(jī)制,實現(xiàn)測試用例命名
mk_test_name
、 數(shù)據(jù)回填
_add_tests_from_data
并通過 add_test 添加至unittest的容器TestSuite中去,然后執(zhí)行得到testResult,流程非常清晰。
2. @file_data(PATH) ,其主要是通過 process_file_data 方法實現(xiàn)數(shù)據(jù)解析,這里通過 _add_tests_from_data 實現(xiàn)測試數(shù)據(jù)回填,通過源碼可以得知目前文件只支持 Yaml 和 JSON 數(shù)據(jù)文件,想擴(kuò)展其它文件比如 xml 等直接改源碼就行
3. @date(* value ),簡單粗暴的直觀實現(xiàn)數(shù)據(jù)驅(qū)動,直接將可迭代對象傳參,進(jìn)行數(shù)據(jù)傳遞,數(shù)據(jù)之間用逗號“ , ”隔離,代表一組數(shù)據(jù),此時如果實現(xiàn) unpack, 則更加細(xì)化的實現(xiàn)數(shù)據(jù)驅(qū)動,切記每組數(shù)據(jù)對應(yīng)相應(yīng)的形參。
4. 實例
測試結(jié)果:
至此關(guān)于ddt的數(shù)據(jù)驅(qū)動暫時告一段落了,后面還會介紹基于excel、sql等相關(guān)的數(shù)據(jù)驅(qū)動內(nèi)容,并進(jìn)行對比總結(jié),拭目以待~
總結(jié)
以上所述是小編給大家介紹的python自動化測試之DDT數(shù)據(jù)驅(qū)動的實現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
