當(dāng)前位置:
首頁 >
unittest框架(三)unittest+yaml数据驱动
發(fā)布時(shí)間:2025/4/9
35
豆豆
生活随笔
收集整理的這篇文章主要介紹了
unittest框架(三)unittest+yaml数据驱动
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
學(xué)習(xí)完了如何用yaml文件管理用例,如何進(jìn)行單元測試,如何產(chǎn)生漂亮的測試報(bào)告,那么結(jié)合這幾點(diǎn),我們簡單學(xué)習(xí)下unittest+yaml數(shù)據(jù)驅(qū)動(dòng)來測試。
第一步:首先,我們建一個(gè)yaml文件,管理用例,以/api/user/login登錄接口為例。
第二步:新建python文件,編寫邏輯代碼
import unittest,requests import ddt from BeautifulReport import BeautifulReport as bf from urllib import parse @ddt.ddt #告訴這個(gè)類要使用ddt了 class Login(unittest.TestCase):base_url = 'http://118.24.3.40/'@ddt.file_data('login.yaml')#ddt幫你讀文件,獲取文件內(nèi)容,循環(huán)調(diào)用函數(shù)def test_request(self,**kwargs):detail = kwargs.get('detail','沒寫用例描述')self._testMethodDoc = detail #動(dòng)態(tài)的用例描述url = kwargs.get('url')#urlurl = parse.urljoin(self.base_url,url)#拼接好urlmethod = kwargs.get('method','get')#請求方式,默認(rèn)是get,以防用戶未在yaml用例里沒寫請求方式data = kwargs.get('data',{}) #請求參數(shù),沒有數(shù)據(jù)的時(shí)候默認(rèn)給一個(gè)空字典header = kwargs.get('header',{})#請求頭cookie = kwargs.get('cookie',{})#cookiecheck = kwargs.get('check')method = method.lower() #便于處理try:if method=='get':res = requests.get(url,params=data,cookies=cookie,headers=header).text#因?yàn)榻涌谟挟惓5那闆r下, 可能返回的不是json串,會(huì)報(bào)錯(cuò),所以將res轉(zhuǎn)為text類型else:res = requests.post(url,data=data,cookies=cookie,headers=header).textexcept Exception as e:print('接口請求出錯(cuò)')res = efor c in check:self.assertIn(c,res,msg='預(yù)計(jì)結(jié)果不符,預(yù)期結(jié)果【%s】,實(shí)際結(jié)果【%s】'%(c,res))sutie = unittest.TestSuite() sutie.addTest(unittest.makeSuite(Login)) run = bf(sutie) run.report('login_test','登錄測試用例') # print(run.success_count) #通過的次數(shù) # print(run.failure_count) #失敗的次數(shù)?
轉(zhuǎn)載于:https://www.cnblogs.com/mululu/p/9235186.html
總結(jié)
以上是生活随笔為你收集整理的unittest框架(三)unittest+yaml数据驱动的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Golang新开发者要注意的陷阱和常见错
- 下一篇: Django层级模型定义及序列化嵌套的方