目录
前言
- 应用场景:在写自动化case时,数据与脚本分离,数据尽量不要在脚死
参数介绍
单条数据传参
# -*- coding: utf-8 -*-
# @Time : 2021/10/10
# @Author : 大海
import pytest
# 测试数据,存放在list
user_data = ["chrome", "firefox"]
@pytest.fixture(params=user_data)
def open_browser(request):
return request.param
def test_register(open_browser):
print("打开{}浏览器".format(open_browser))
if __name__ == '__main__':
pytest.main(["-s", "test_10.py"])
多条数据传参
# -*- coding: utf-8 -*-
# @Time : 2021/10/10
# @Author : 大海
# @File : test_12.py
import pytest
# 测试数据,存放在字典中,最外层必须是列表
user_data = [{'user': '大海', 'pwd': '12345'}, {'user': '小白', 'pwd': '67890'}]
@pytest.fixture(params=user_data)
def open_browser(request):
# request.param 可以接收传入的参数
print('这是param', request.param)
# 一个字典相当于一条参数,通过key获取字典中的值
print('用户名:{}'.format(request.param['user']))
print('密码:{}'.format(request.param['pwd']))
return request.param
def test_register(open_browser):
# open_browser 就是返回值 request.param
print('用户名:{} 密码:{}'.format(open_browser['user'], open_browser['pwd']))
if __name__ == '__main__':
pytest.main(["-s", "test_12.py"])
这篇博客介绍了如何在Python的pytest框架中实现参数化的单元测试。通过`@pytest.fixture(params)`装饰器,可以方便地为测试用例传递单条或多条数据。在示例中,展示了如何将浏览器类型作为测试数据,并在测试注册功能时动态地打开不同浏览器。此外,还演示了如何处理字典形式的数据参数,从中提取用户名和密码进行测试。
921

被折叠的 条评论
为什么被折叠?



