python的unittest測试框架的扩展浅谈
生活随笔
收集整理的這篇文章主要介紹了
python的unittest測试框架的扩展浅谈
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
非常多時候測試框架須要依據(jù)測試數(shù)據(jù)來自己主動生成測試用例腳本,比方接口測試,通過不同參數(shù)構(gòu)建組合去請求接口,然后驗證返回結(jié)果。假設(shè)這樣能通過配置excel數(shù)據(jù)來驅(qū)動測試。而不用去寫一大堆的測試用例腳本代碼,減輕了維護自己主動化測試腳本的時間和成本,大概有一個思路能夠?qū)崿F(xiàn)以上想法,先寫一個通過的unittest測試基類,然后用過python的內(nèi)置type去生成自己定義的功能模塊類,再在生成的自己定義類里以setattr方法來生成每個功能模塊類下的用例方法。這樣到時收集測試報告的時候,能夠比較清晰的分類展示。
例如以下面函數(shù)是依據(jù)excel生成測試類和類下的測試用例方法,當(dāng)然假設(shè)接入平臺里測試,到最后測試完要去銷毀之前生成的類和方法
def generateTestCases(log,arglists):
? ? '''動態(tài)生成測試用例類及其方法'''? ? class_list=[]
? ? for args in arglists:
? ? ? ? custom_class = type(args['inter'], (myEwsCase,), {"__doc__":args['cases'][0]['description']})
? ? ? ? for a in args['cases']:
? ? ? ? ? ? setattr(custom_class,'test_%s'%a['testcasename'],myEwsCase.getTestFunc(log,a))
? ? ? ? class_list.append(custom_class)
? ? return class_list
def destroyTestCases(log,custom_class,arglists):? ?'''銷毀全部自己主動生成用例方法'''
? ? n=0
? ? for args in arglists:
? ? ? ? for a in args['cases']:
? ? ? ? ? ? delattr(custom_class[n],'test_%s'%a['testcasename'])
? ? ? ? n +=1
總結(jié)
以上是生活随笔為你收集整理的python的unittest測试框架的扩展浅谈的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 让浏览器变身编辑器
- 下一篇: oracle查看用户密码时间限制