pytest框架-介绍Mark命令运行用例。。。。

Posted shouhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest框架-介绍Mark命令运行用例。。。。相关的知识,希望对你有一定的参考价值。

1、pytest介绍:基于unittest 之上的单元测试框架

  1.1、自动发现测试模块和测试用例;

    unitest 需要添加用例,(泰斯特楼贷)加载器加载测试用例

    pytest 只需要一条代码就可以

  1.2、断言使用 assert + 表达;

    unitest 定义了所有的 断言方式

    pytest  只需要使用一个关键字 assert + 表达式 就可以了,表达式为真则通过,表达式为假则不通过断言失败

  1.3、pytest 可以设置测试会话级、模块级、类级、函数级的 fixtures;

  1.4、有丰富的插件库,目前在600个以上(框架库插件地址:http://plugincompat.herokuapp.com/)

 

2、pytest 收集测试用例规则(按照:目录-文件-函数/类)

  2.1、默认从当前目录中搜集测试用例,即在那个目录下运行pytest  命令,则从那个目录当中搜索

    2.2、搜索规则:进入目录后,在按照搜索规则搜索用例

      2.2.1、符合命名规则    test_*.py   或者   *_test.py   的文件

      2.2.2、以   test_   开头的函数名

      2.3.3、以 Test  开头的测试类(没有   _init_  函数)当中,以  test_  开头的函数

第一种:cmd  中执行  pytest 命令;先进入代码所在文件,然后执行 pytest 命令

==========   testsession starts ========:代表会话开始

python3.7:代表那个平台

pytest-5.2.1 :代表pytest版本

rootdir:代表搜索用例的地址

 

 技术图片

第二种:同第一种方法:在 pycharm 控制台的   Terminal 功能,执行  pytest 命令

命令:pytest

pytest -h     :控制台查看命令行参数

标签:aaa
pytest -m 标签名 =====通过命令行 -m 过滤用例运行
例如:pytest -m aaa

pytest -m 标签名 -s -v =====控制台搜索输出详情用例名,可以看到成功与失败提示
例如:pytest -m aaa-s -v

实例:

  技术图片

第三种:pytest 的 main 函数 (同前两种方法)

import pytest
if __name__ == __main__: pytest.main()

 

3、pytest - Mark(打标签)

   3.1、注册标签名

    3.1.1、注册方式:创建  pytest.ini 文件,在文件中按如下形式添加标签名

[pytest]
markers=
    aaa:mao yan
    bbb
    ccc
    ddd

# 标签名冒号后面可以添加注释信息必须是英文
# 红色字段为固定模式,不能改变    

    3.1.2、在测试用例/ 测试类前面加上标签:@pytest.mark.已注册的标记名

import pytest

# 单个标记
@pytest.mark.aaa
def test_aaa():
    assert 100 == 100

    3.1.3、可以在一个用例上打多个标签,多次使用:@pytest.mark.已注册的标记名

import pytest

# 多个标记
@pytest.mark.aaa
@pytest.mark.ddd
def test_bbb():
    assert 200 == 200

    3.1.3、在给类打标签,类里面的函数打标签

# 给测试类打标签
@pytest.mark.ddd
class TestDemo:
    @pytest.mark.bbb
    def test_ccc(self):
        assert 300 == 300

    @pytest.mark.ccc
    def test_ddd(self):
        assert 400 == 400

    def test_0_eee(self):
        assert 500 == 500

  3.2、方式二:

    3.2.1、在测试类里,使用以下申明(测试类下,所有用例都被打上该标签)

class TestDemo:
    # 单个标签
    pytestmark = pytest.mark.已注册标签名
    # 多个标签
    pytestmark = [pytest.mark.标签1, pytest.mark.标签1]

    3.2.2、在模块文件里(py文件下,所有测试函数和测试类里面的测试函数,都有会打上该标签)

import pytest
# 单个标签
pytestmark = pytest.mark.已注册标签名
# 多个标签
pytestmark = [pytest.mark.标签1, pytest.mark.标签1]

 

4、用例执行顺序

  4.1、文件名称 按 ASCII 码排序

  4.2、文件内容,按代码先后顺序排序

 

以上是关于pytest框架-介绍Mark命令运行用例。。。。的主要内容,如果未能解决你的问题,请参考以下文章

pytest自动化测试框架详解+mark标记+fixture夹具

pytest自动化测试框架详解+mark标记+fixture夹具

Pytest基础使用教程

pytest 进行自定义mark标记,进行分类管理执行用例

pytest之mark功能

Pytest之自定义mark