欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:pytest

柚子快報(bào)邀請(qǐng)碼778899分享:pytest

http://yzkb.51969.com/

學(xué)習(xí)視頻

https://www.bilibili.com/video/BV1py4y1t7bJ/?spm_id_from=333.337.search-card.all.click&vd_source=5d1d6a8d64d590dd81191ca4c12bf2f2

pytest插件

pytest-html (生成html格式的測(cè)試報(bào)告) pytest-xdist 測(cè)試用例分布式執(zhí)行,多cpu分發(fā) pytest-ordering 用于改變用例執(zhí)行的順序 pytest-rerunfailures 用例失敗后重跑 allure-pytest 用于生成美觀的測(cè)試報(bào)告

使用規(guī)范

1、模塊名必須以test_開(kāi)頭或者_(dá)test結(jié)尾 2、測(cè)試必須以Test開(kāi)頭,并且不能有init方法 3、測(cè)試方法必須以test開(kāi)頭

運(yùn)行

指定運(yùn)行目錄: pytest -vs testcase 指定運(yùn)行方法: pytest -vs testcase/test_interface.py::test_04_func 多線程運(yùn)行: pytest -vs testcase -n 2 失敗重跑: pytest -vs testcase --reruns 2 跳過(guò)用例: pytest -vs testcase -k “ao” 只執(zhí)行包含ao字符串的測(cè)試用例

執(zhí)行順序: 默認(rèn)執(zhí)行順序從上往下,@pytest.mark.run(order=1) 指定執(zhí)行順序

配置運(yùn)行規(guī)則,pytest.ini放在根目錄下

[pytest]

addopts = -vs --html ./report/report.html # 命令行的參數(shù),用空格分隔

testpaths = ./testcase # 測(cè)試用例執(zhí)行的路徑

python_files = test_*.py # 模塊名的規(guī)則

python_classes = Test* # 配置執(zhí)行的測(cè)試類(lèi)名

python_functions = test # 配置執(zhí)行的函數(shù)名

markers =

smoke: smoke

usermanage: usermanage

如果報(bào)unicodeDecodeError: ‘gbk’ … 需要把注釋刪掉,然后用notepad++將文件編碼轉(zhuǎn)為ANSI

分組執(zhí)行:在對(duì)應(yīng)函數(shù)上加裝飾器@pytest.mark.smoke smoke自定義的,可以隨意編寫(xiě),跟配置文件中一致 執(zhí)行命令為:`pytest -m “smoke or usermanage” # 運(yùn)行smoke和usermanage裝飾器的函數(shù)

跳過(guò)用例: 有條件跳過(guò):@pytest.mark.skip(age<18, reason=“ad”) 無(wú)條件跳過(guò):@pytest.mark.skip(reason=“ad”)

生成報(bào)告:加載配置文件addopts中

前后置和固件

setup() 每條用例執(zhí)行之前都會(huì)執(zhí)行一遍 setup_class() 所有用例執(zhí)行之前只執(zhí)行一次,如創(chuàng)建日志對(duì)象,創(chuàng)建數(shù)據(jù)庫(kù)連接,創(chuàng)建接口的請(qǐng)求對(duì)象 teardown() 每條用例執(zhí)行之后都會(huì)執(zhí)行一遍 setup_class() 所有用例執(zhí)行之后只執(zhí)行一次,如銷(xiāo)毀日志對(duì)象,銷(xiāo)毀數(shù)據(jù)庫(kù)連接,銷(xiāo)毀接口的請(qǐng)求對(duì)象

class Test():

def setup(self):

print("aaaa")

def test_01(self):

print("111")

def test_02(self):

print("333")

def teardown(self):

print("bbbb")

# 執(zhí)行結(jié)果為 aaaa 111 bbbb aaaa 333 bbbb

針對(duì)部分用例的前后置:@pytest.fixture(scope=‘fuction’, params=[“”], autouse=Fasle, ids=“”, name=“”)

參數(shù)詳解: scope:表示作用域,默認(rèn)時(shí)fuction,可選class,module,package/session params:參數(shù)化,支持list,tulp, dict autouse:自動(dòng)使用,全部方法使用,默認(rèn)時(shí)False ids:當(dāng)使用params參數(shù)化時(shí),給每一個(gè)值設(shè)置一個(gè)變量名,意義不大 name:給裝飾的方法取別名

實(shí)例:

@pytest.fixture(scope="function")

def my_fixture():

print("這是前置")

yield

print("這是后置")

class TestA:

def test_01(self):

print("222")

def test_01(self, my_fixture):

print("3333")

## 傳參

@pytest.fixture(scope="function" params=["1", "2"])

def my_fixture(request):

print("這是前置")

yield request.param

print("這是后置")

class TestA:

def test_01(self):

print("222")

# 會(huì)被執(zhí)行兩次

def test_01(self, my_fixture):

print("3333")

通過(guò)conftest.py和@pytest.fixture() 實(shí)現(xiàn)全局前置應(yīng)用,如全局登錄

conftest.py文件時(shí)單獨(dú)存放的一個(gè)家具配置文件,名稱(chēng)不能更改。且要與運(yùn)行的測(cè)試用例放到同一層級(jí),不同層級(jí)都可以創(chuàng)建一個(gè)conftest.py

# conftest.py

@pytest.fixture(scope="function" params=["1", "2"])

def my_fixture(request):

print("這是前置")

yield request.param

print("這是后置")

添加好后,同一層級(jí)和下層級(jí)的測(cè)試用例就都可以使用該fixture了

斷言 assert

assert 1==2

pytest+allure

下載: https://github.com/allure-framework/allure2/releases

[pytest]

addopts = -vs --alluredir ./temp # 命令行的參數(shù),用空格分隔

testpaths = ./testcase # 測(cè)試用例執(zhí)行的路徑

python_files = test_*.py # 模塊名的規(guī)則

python_classes = Test* # 配置執(zhí)行的測(cè)試類(lèi)名

python_functions = test # 配置執(zhí)行的函數(shù)名

markers =

smoke: smoke

usermanage: usermanage

import os

import pytest

if __name__ == '__main__':

pytest.main()

os.system('allure generate ./temp -o ./report --clean')

數(shù)據(jù)驅(qū)動(dòng)

import pytest

data_set = [(1, 1), (2, 1), (3, 1)]

@pytest.mark.parametrize("test_input,expected", data_set)

def test_is_equal(test_input, expected):

assert is_equal(test_input, expected)

或者用方法返回參數(shù)

import pytest

def data_set():

return [(1, 1), (2, 1), (3, 1)]

@pytest.mark.parametrize("test_input,expected", data_set)

def test_is_equal(test_input, expected):

assert is_equal(test_input, expected)

柚子快報(bào)邀請(qǐng)碼778899分享:pytest

http://yzkb.51969.com/

文章來(lái)源

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19130182.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄