unittest框架(三)unittest+yaml数据驱动
生活随笔
收集整理的這篇文章主要介紹了
unittest框架(三)unittest+yaml数据驱动
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習完了如何用yaml文件管理用例,如何進行單元測試,如何產生漂亮的測試報告,那么結合這幾點,我們簡單學習下unittest+yaml數據驅動來測試。
第一步:首先,我們建一個yaml文件,管理用例,以/api/user/login登錄接口為例。
第二步:新建python文件,編寫邏輯代碼
import unittest,requests import ddt from BeautifulReport import BeautifulReport as bf from urllib import parse @ddt.ddt #告訴這個類要使用ddt了 class Login(unittest.TestCase):base_url = 'http://118.24.3.40/'@ddt.file_data('login.yaml')#ddt幫你讀文件,獲取文件內容,循環調用函數def test_request(self,**kwargs):detail = kwargs.get('detail','沒寫用例描述')self._testMethodDoc = detail #動態的用例描述url = kwargs.get('url')#urlurl = parse.urljoin(self.base_url,url)#拼接好urlmethod = kwargs.get('method','get')#請求方式,默認是get,以防用戶未在yaml用例里沒寫請求方式data = kwargs.get('data',{}) #請求參數,沒有數據的時候默認給一個空字典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#因為接口有異常的情況下, 可能返回的不是json串,會報錯,所以將res轉為text類型else:res = requests.post(url,data=data,cookies=cookie,headers=header).textexcept Exception as e:print('接口請求出錯')res = efor c in check:self.assertIn(c,res,msg='預計結果不符,預期結果【%s】,實際結果【%s】'%(c,res))sutie = unittest.TestSuite() sutie.addTest(unittest.makeSuite(Login)) run = bf(sutie) run.report('login_test','登錄測試用例') # print(run.success_count) #通過的次數 # print(run.failure_count) #失敗的次數?
轉載于:https://www.cnblogs.com/mululu/p/9235186.html
總結
以上是生活随笔為你收集整理的unittest框架(三)unittest+yaml数据驱动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Golang新开发者要注意的陷阱和常见错
- 下一篇: Java JDBC数据库 之 DBUti