pytest参数化

前端之家收集整理的这篇文章主要介绍了pytest参数化前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Pytest可以在多个级别上实现测试参数化

一.@pytest.fixture装饰器调用参数

示例

import pytest
from selenium  webdriver
from time  sleep    

@pytest.fixture(scope="module",params=[pythonjava"])
def modarg(request):
    param = request.param
    # print(f"setup modarg {param}")
    yield param
     print(f"teardown modarg {param}")
 test_login(modarg):
    dr = webdriver.Chrome()
    dr.get('https://www.baidu.com')
    dr.find_element_by_id(kw).send_keys(modarg)
    dr.find_element_by_id(su).click()
    sleep(2)
    print(modarg)
    dr.quit()

执行:

pytest -v -s xxx.py

 

二. @pytest.mark.parametrize :参数化测试功能

示例1

 sleep
@pytest.mark.parametrize(
    username,[
    
    ]
)

 test_login(username):
    dr =).send_keys(username)
    dr.find_element_by_id((username)
    dr.quit()

执行方式同上!

 多参数示例2:

username,passwordadminadmin123),(guestguest123 test_login(username,password):
    dr = webdriver.Chrome()
    dr.maximize_window()
    dr.get()
    js = document.querySelector('#u1 > a.s-top-login-btn.c-btn.c-btn-primary.c-btn-mini.lb').click()
    dr.execute_script(js)
    sleep(1)
    js1 = document.querySelector('#TANGRAM__PSP_11__footerULoginBtn').click()
    dr.execute_script(js1)
    sleep(1TANGRAM__PSP_11__userNameTANGRAM__PSP_11__password).send_keys(password)
    js2 = document.querySelector('#TANGRAM__PSP_11__submit').click()
    dr.execute_script(js2)
    sleep(2(username)
    (password)
    dr.quit()

执行:

 

猜你在找的Pytest相关文章