pytest框架简单介绍

pytest入门指南:安装、编写规则及命令行参数解析

pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:

  • 简单灵活,容易上手,文档丰富;
  • 支持参数化,可以细粒度地控制要测试的测试用例;
  • 能够支持简单的单元测试和复杂的功能测试,还可以用selenium/appnium等自动化测试、接口自动化测试(pytest+requests)
  • 具有很多第三方插件,并且可以自定义扩展,比如pytest-selenium,pytest-html等
  • 测试用例的skip和xfail处理
  • 可以很好的和CLI工具结合,例如Jenkins

1.pytest安装

安装命令如下:

pip install pytest

使用pip list命令能看到pytest即可
在这里插入图片描述

2.编写规则

编写规则有如下几点:

  1. 测试文件以test_开头,或者以_test结尾也行
  2. 测试类以Test开头,并且不能带init方法
  3. 测试函数以test_开头
  4. 断言使用基本的assert即可
    例如:
import pytest

class Testcase():
    def test_01(self):
        print('test01')

if __name__ == '__main__':
    pytest.main(['test_01.py'])

输出为:
在这里插入图片描述

若将类名称改为testcase,则结果如下:
在这里插入图片描述

3.console参数

在上面的例子里,test_01方法里会打印test01,但实际上并没有,这就需要在执行的时候加参数。参数如下所示:

参数含义
-v用于显示每个测试函数的执行结果
-q用于显示每个测试函数的执行结果
-s用于显示测试函数中print()函数的输出
-x–exitfirst,在第一个错误或测试失效时立即退出
-h帮助

例如:我们将代码改一下,便于看参数的效果:

import pytest

class Testcase():
    def test_f(self):
        print('hello')

if __name__ == '__main__':
    pytest.main(['-v','test_01.py'])

使用-v输出如下:

collecting ... collected 1 item

test_01.py::Testcase::test_f PASSED                                        [100%]

============================== 1 passed in 0.02s ==============================

使用-s输出如下:

rootdir: D:\pythonProject\my_selenium_project\testcases\pytest
collected 1 item

test_01.py hello
.

============================== 1 passed in 0.02s ==============================

使用-s和-v,输出如下:

collecting ... collected 1 item

test_01.py::Testcase::test_f hello
PASSED

============================== 1 passed in 0.02s ==============================

4.执行测试

4.1.main方法
在上一节使用过的,格式为:

  pytest.main(['module_name'])

4.2 命令行
可在pycharm的命令行执行,格式如下:

pytest -s -v test_01.py

例如:

D:\pythonProject\my_selenium_project\testcases\pytest>pytest test_01.py
======================================================================== test session starts ========================================================================
platform win32 -- Python 3.7.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: D:\pythonProject\my_selenium_project\testcases\pytest
collected 1 item                                                                                                                                                     

test_01.py .                                                                                                                                                    [100%]

========================================================================= 1 passed in 0.02s =========================================================================

4.3 配置PyCharm执行
方法为:setting->Tools->Python Integrated tools->Default test runner,将默认的unittest改为pytest即可。
在这里插入图片描述
设置了之后,点击方法或者类名旁边的执行按钮即可。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远不要矫情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值