日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python Pytest装饰器@pytest.mark.parametrize用例数据驱动(三)

發布時間:2025/3/15 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python Pytest装饰器@pytest.mark.parametrize用例数据驱动(三) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

一、測試用例用excel管理,存放地址:C:\Users\wangli\PycharmProjects\Test\test\files\apiCase.xls

二、代碼實現如下:

1、封裝讀取excel用例數據

2、Pytest裝飾器@pytest.mark.parametrize('參數名',list)實現登錄模塊2條測試用例數據驅動

import pytest,xlrd,os,requests,json#獲取excel用例數據 def get_case_data():case_path = os.path.join(os.path.dirname(__file__), r'files\apiCase.xls')book = xlrd.open_workbook(case_path)sheet = book.sheet_by_name('sheet1名字')case = []for i in range(0, sheet.nrows):if sheet.row_values(i)[0] == 'C端登錄' and sheet.row_values(i)[3]=='YES':case.append(sheet.row_values(i))return caseclass Test(object):def setup_class(self):passdef teardown_class(self):pass#調用獲取測試用例數據case_data=get_case_data()#使用裝飾器參數化用例數據@pytest.mark.parametrize('Function,TestCase,Type,Run,URL,Headers,Parameter,SQL1,SQL2,SQL3,AssertType,Expect1,Expect2,Expect3', case_data)def test_login1(self,Function,TestCase,Type,Run,URL,Headers,Parameter,SQL1,SQL2,SQL3,AssertType,Expect1,Expect2,Expect3):r=requests.post(url=URL,headers=eval(Headers),json=eval(Parameter))response=r.json()print(response)assert eval(Expect1)['code']==response['code']assert eval(Expect1)['msg'] == response['msg']if __name__=="__main__":pytest.main(["-s","test02.py"])"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/test/test02.py ============================= test session starts ============================= platform win32 -- Python 3.5.2, pytest-5.1.2, py-1.8.0, pluggy-0.12.0 rootdir: C:\Users\wangli\PycharmProjects\Test\test plugins: allure-pytest-2.8.5, html-1.22.0, metadata-1.8.0 collected 2 itemstest02.py {'msg': '成功', 'code': 0, 'data': {'token': 'bearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9tZW1iZXItYXBpLnN0Mi50ZXN0LmxhbnhpbmthLmNvbVwvMi4wXC91c2Vyc1wvbG9naW4iLCJpYXQiOjE1NzI3NTE4MDUsImV4cCI6MTU3NDA0NzgwNSwibmJmIjoxNTcyNzUxODA1LCJqdGkiOiJpS2ZKZGdBam0xQWoyRmc1Iiwic3ViIjo1ODQ5MDIsInBydiI6IjNhN2IwNmU5NTBkMDhlMjMzMjkyMjdjN2E2YTUyMzQyYWJiNGYxOWIiLCJidXNpbmVzc190eXBlIjoiNiJ9.1bYj4VslhNMU3yjBtxccCG6fAWNwH8jhAacC6cl-f_A'}} .{'msg': '驗證碼錯誤', 'code': 220002, 'data': {}} .============================== 2 passed in 0.75s ==============================Process finished with exit code 0

通過以上實驗,我們可以看出如果模塊有100條測試用例,同樣用以上代碼可以實現測試并斷言出結果,是不是很簡單呢。

總結

以上是生活随笔為你收集整理的Python Pytest装饰器@pytest.mark.parametrize用例数据驱动(三)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。