import pytest from common.osyaml import read_yaml db = read_yaml("./db.yaml") @pytest.mark.parametrize("db",db) def test_db(db): print(db)
时间: 2024-04-15 21:30:27 浏览: 141
你的代码看起来很不错!你使用了 pytest 库来运行测试,并使用了 read_yaml 函数从 db.yaml 文件中读取参数。然后,你使用 pytest.mark.parametrize 装饰器来为测试函数提供参数化的功能。
注意,在使用 pytest.mark.parametrize 装饰器时,你需要确保参数的名称与测试函数中的参数名称一致。在你的代码中,你将参数名称都设置为了 "db",因此在测试函数中也需要使用相同的参数名称。
当你运行这个测试时,pytest 会为每个从 db.yaml 文件中读取的参数值执行一次测试函数。每次测试运行时,该参数的值将传递给测试函数,并打印出来。
如果你的 db.yaml 文件类似于以下格式:
```yaml
- db_value1
- db_value2
- db_value3
```
那么你的测试函数将会被执行三次,分别传入 db_value1、db_value2 和 db_value3 作为参数。每次执行测试函数时,都会打印出相应的参数值。
希望这可以帮助你进行基于 YAML 文件的参数化测试!如果你还有其他问题,请随时提问。
相关问题
import os import allure from page_home.login import loginPage from page_home.new_project import NewprojectPage from util.yaml_util import read_yaml from util.path_util import path import pytest # @allure.parent_suite("自建系统测试") @allure.suite("流程模块测试") @allure.sub_suite('创建用例') @allure.epic('erp系统') @allure.feature('流程测试') @allure.story('项目总监创建项目功能') class Test_ceshi: @allure.description('技术总监登录登录') @pytest.mark.parametrize("data", read_yaml(path("data/new_project.yml"))) @pytest.fixture() def Test_login(self, data, browser): print("登录测试") allure.dynamic.title(data['title']) driver = loginPage(browser) driver.login(data["name"], data["pwd"]) @allure.description('创建项目') @pytest.mark.parametrize('data', read_yaml(path('data/new_project.yml'))) @pytest.mark.usefixtures('Test_login') def Test_newproject(self,data, browser): print('测试创建项目') allure.dynamic.title(data['title']) driver = NewprojectPage(browser) driver.new_project(data['pjname'], data['pjdescribe'])
这段代码是一个测试用例,主要测试流程模块下的创建项目功能。其中使用了pytest框架和allure报告插件。在测试类Test_ceshi中,有两个测试方法:Test_login和Test_newproject。Test_login用于登录操作,通过参数化读取测试数据,使用fixture装饰器进行前置操作。Test_newproject用于创建项目操作,同样通过参数化读取测试数据,在执行之前需要先执行Test_login方法进行登录操作。
@pytest.mark.parametrize("caseinfo", YamlUtil('./requestdata/login.yaml').read_yaml()) 这样写对吗
这是一个使用 pytest.mark.parametrize 装饰器的 Python 代码片段,它从 './requestdata/login.yaml' 文件中读取 YAML 格式的数据并将其传递给测试用例。根据提供的信息,这段代码看起来是正确的。
阅读全文