前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pytest测试框架系列(1)-快速入门

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

作者头像
搁浅同学
发布2022-07-21 14:57:17
5410
发布2022-07-21 14:57:17
举报

前言

目前比较流行的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相关的用法!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 暴走的软件测试Tester 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、Pytest的安装
  • 二、Pytest测用例编写
  • 三、Pytest测试用例执行
  • 四、测试用例的前置和后置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档