pytest心得体会

一、如何单独运行某条用例

在参数化测试中总有些用例失败,由于前后置数据的关系需要单独运行那条用例如何运行呢

  • 方法一:直接查看控制台运行用例 确定是[2-case_data8]
python 复制代码
pytest.main(["-sv",
             "testcase/违规告警/test_违规告警_非合同车.py::TestIllegalAlarmNonContract::test_illegal_alarm_non_contract_009[2-case_data8]"])
  • 方法二 查看allure报告 Parameters
    根据 Parameters进行拼接 2-case_data4
    注意 不要使用allure.dynamic.title(case_data["title"])或者 @allure.title()

二、参数化需要可迭代对象

参数化有点像for i in case_data其中i为实际的用例参数

这就是yaml对象中为何会写step01:让其转dict时变为一个列表

三、多个参数化使用时注意参数形式

python 复制代码
@pytest.mark.parametrize("case_data", pd.get_yaml_single_case_data(filename9, api_name))  # [{},{},]
@pytest.mark.parametrize("alarm_type", [2])

同一测试函数存在case_data,alarm_type两个参数化,他们之间是存在组合关系的,组合方式就是笛卡尔积,我想要保证alarm_type每次传2,3两个参数,参数需要写为[(2,3)]

python 复制代码
@pytest.mark.parametrize("alarm_type", [(2,3)])

这就是参数化有点像for i in case_data具体应用,保证i是我们想要的数据,若写成@pytest.mark.parametrize("alarm_type", [2,3])

形成的参数化将为[2-case_data],[3-case_data] 分别进行组合

相关推荐
我的xiaodoujiao4 天前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 24--数据驱动--参数化处理 Excel 文件 1
python·学习·测试工具·pytest
西游音月7 天前
(2)pytest+Selenium自动化测试-环境准备
selenium·测试工具·pytest
我的xiaodoujiao7 天前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 23--数据驱动--参数化处理 Yaml 文件
python·学习·测试工具·pytest
我的xiaodoujiao11 天前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 22--数据驱动--参数化处理 Json 文件
python·学习·测试工具·pytest
胜天半月子11 天前
Python自动化测试 | 快速认识并了解pytest的基本使用
服务器·python·pytest
北珣.15 天前
自动化框架pytest基础
自动化·pytest
程序员杰哥16 天前
Pytest之收集用例规则与运行指定用例
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
学习3人组17 天前
Python + requests + pytest + allure + Jenkins 构建完整的接口自动化测试框架
python·jenkins·pytest
shao91851619 天前
Gradio全解14——使用Gradio构建MCP的服务器与客户端(4)——Python包命令:uv与uvx实战
pytest·uv·1024程序员节·npx·uvx·uv pip·ruff
我的xiaodoujiao21 天前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 20--PO(POM) 设计模式和用例撰写
python·学习·测试工具·设计模式·pytest