可以用Pytest.Mark在测试代码里打标签,这样子可以选择性的运行某些程序。但是想将标签写在yaml文件里,要怎么在代码内实现依据yaml 文件某类标签来运行?

要实现在代码中读取yaml文件中的标签,并根据这些标签选择性地运行测试程序,你可以按照以下步骤进行:

  1. 创建一个yaml文件,例如"test_tags.yaml",在文件中定义标签信息,例如:
tags:
  - smoke
  - regression
  - api
  1. 在pytest测试代码中,使用pytest的fixture功能读取yaml文件中的标签信息,代码示例如下:
import pytest
import yaml

@pytest.fixture(scope='session')
def tags_config():
    with open('test_tags.yaml', 'r') as file:
        tags = yaml.safe_load(file)
    return tags

  1. 在测试用例中,使用pytest提供的marker功能,根据yaml文件中的标签信息选中需要运行的测试用例,代码示例如下:
import pytest

@pytest.mark.usefixtures("tags_config")
def test_example(tags_config):
    if 'smoke' in tags_config['tags']:
        # 执行smoke标签的测试用例
        pass

    if 'regression' in tags_config['tags']:
        # 执行regression标签的测试用例
        pass
    
    if 'api' in tags_config['tags']:
        # 执行api标签的测试用例
        pass

  1. 运行pytest命令时,添加-m参数指定要运行的标签,例如:
pytest -m "smoke"

这样就可以根据yaml文件中的标签信息选择性地运行测试用例了。希望以上信息对你有帮助,如果有其他问题,请随时提出。