pytest参数化
2024-10-08 00:49:24
Pytest可以在多个级别上实现测试参数化
一.@pytest.fixture装饰器调用参数
示例
import pytest
from selenium import webdriver
from time import sleep @pytest.fixture(scope="module",params=["python","java"])
def modarg(request):
param = request.param
# print(f"setup modarg {param}")
yield param
# print(f"teardown modarg {param}")
def 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
import pytest
from selenium import webdriver
from time import sleep
@pytest.mark.parametrize(
"username",
[
"python",
"java"
]
) def test_login(username):
dr = webdriver.Chrome()
dr.get('https://www.baidu.com')
dr.find_element_by_id('kw').send_keys(username)
dr.find_element_by_id('su').click()
sleep(2)
print(username)
dr.quit()
执行方式同上!
多参数示例2:
import pytest
from selenium import webdriver
from time import sleep
@pytest.mark.parametrize(
"username,password",
[
("admin","admin123"),
("guest","guest123"),
]
) def test_login(username,password):
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com')
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(1)
dr.find_element_by_id('TANGRAM__PSP_11__userName').send_keys(username)
dr.find_element_by_id('TANGRAM__PSP_11__password').send_keys(password)
js2 = "document.querySelector('#TANGRAM__PSP_11__submit').click()"
dr.execute_script(js2)
sleep(2)
print(username)
print(password)
dr.quit()
执行:
最新文章
- SAP自定义权限对象
- Python 调用 user32.dll
- 《BI那点儿事》META DATA(元数据)
- PV UV IP含义及区别
- python numpy sum函数用法
- 三种方式得到LayoutInflater
- ASP.NET MVC 过滤器Filter
- 【Android纳米学位】project 0 - 问题汇总
- js深入研究之类定义与使用
- Filter - Surge.js模板引擎过滤器
- div光标定位问题总结
- CodeForces 78D Archer's Shot
- Docker学习笔记 - Docker的容器
- 07-MYSQL多表查询
- SSD固态硬盘测试工具收集(持续更新)
- SQUAD的rnet复现踩坑记
- Keil C 中全局变量 extern 的使用
- oracle12c新特点之可插拔数据库(Pluggable Database,PDB)
- 9.1 UDP协议
- React的setState如何实现同步处理数据