pytest测试框架系列(1)-快速入门

2022-07-21 14:57:17 浏览数 (1)

前言

目前比较流行的Python的单元测试框架有Unittest和Pytest,但是由于Pytest支持各种插件,比Unittest使用简单,效率更高,使得Pytest脱颖而出。Pytest的官方文档地址:https://docs.pytest.org/en/latest/

一、Pytest的安装

在终端通过Pip命令安装即可

pip3 install -U pytest

安装完成后可通过 python3 -m pytest --version 查看pytest的版本

二、Pytest测用例编写

测试用例一般遵循三大原则:

1、测试文件以test_开头,比如test_login.py

2、测试类一般以Test开头,比如 TestLogin

3、测试方法test开头,每一个测试方法就是一个测试用例,比如test_login,例子如下

三、Pytest测试用例执行

Pytest测试用例执行有两种方式

1.主函数模式

1.运行所有的用例:pytest.main()

2. 指定模块运行:pytest.main(['-vs', 'test_login.py'])

3.指定目录:pytest.main(['-vs','./interface_testcase'])

4.通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名 组成,比如:

pytest.main(['-vs','./interface_testcase/test_interface.py::test_04_func'])

pytest.main(['-vs','./interface_testcase/test_interface.py::TestInterface::test_04_func'])

命令行模式

1.运行所有的用例:pytest

2.指定模块运行:pytest -vs test_login.py

3.指定目录:pytest -vs ./interface_testcase

4.通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名 组成

pytest -vs ./interface_testcase/test_interface.py::TestInterface::test_04_func

两种运行的情况如下:

第一种 主函数模式

第二种 命令行模式

进行测试用例所在的工程目录 ,执行命令 pytest -vs test_demo.py,执行的情况如下

四、测试用例的前置和后置

Pytest的前置后置主要通过setup/teardown/setup_class/teardown_class函数实现,前置就是测试用例的前置条件,后置一般就是测试用例执行完成后,清理环境等操作,代码如下:

代码语言:javascript复制
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pytest


class TestDemo:
    def setup(self):
        print("每次执行测试用例前执行n")

    def teardown(self):
        print("每次执行行测试用例后执行n")

    def setup_class(self):
        print("每个测试类执行前执行一次n")

    def teardown_class(self):
        print("每个测试类执行完成后执行一次n")

    def test_demo(self):
        a = 1
        b = 1
        assert a == b

    def test_demo1(self):
        a = 1
        b = 2
        assert a != b


if __name__ == "__main__":
    pytest.main(['-vs', 'test_demo.py'])

执行测试用例效果如下:

由此可以看到

setup是每个测试用例前都执行

teardown是每个测试用例后都执行

setup_class 是每个测试类前执行一次

Teardown_class 是每个测试类后执行一次

今天的Pytest知识点就讲到这里,后续会继续更新Pytest相关的用法!

0 人点赞