2021-06-27 pytest单元测试框架

pytest 介绍

* python里面单元测试框架---unittest

* pytest基于unittest衍生出来的新的单元测试框架,兼容unittest测试用例

* 相对于unittest来说更简单、效率更高

* 可以重复执行失败的测试用例函数,也支持跳过用例的执行,并且支持参数化

pytest环境配置

【1】pycharm  中安装pytest库文件

【pip】指令安装

        pip install pytest     //安装   控制台进入python 37\Scripts  文件下执行

        pip install -U pytest        //升级安装最新版本

【3】验证

        pytest --version  //如果报非外部命令,重启电脑

pytest 使用规范

* python文件必须以test_ 开头  //  test_Pytest

* 类名必须以Test开头,并且类中不要出现init()初始化函数

* 测试用例函数必须以test开头

        class TestJiSuanQi:

                #加法函数

                def add(self,a,b):

                        return a+b

               #测试用例函数

                def test_add(self):

                        s = self.add(3,5)

                        assert 8==s

pytest基本使用

* 按照规范编写代码

* 运行 命令行:pytest ---->执行所有的py测试文件

断言使用

  • assert关键词

    • a == b

    • a != b

    • True

    • a in b 包含

assert断言可以叠加使用,但是第一个不通过的时候,下面的不会再继续执行
* 可以借助于assume来完成
* 安装assume库文件
    assume(a == b)

各个执行命令

* pytest 执行当前文件夹及子文件夹中所有以test_开头的测试文件

* pytest xxx.py 执行某个文件

* pytest -v -s -v详细信息 -s打印信息

* pytest -q(quiet安静) 静默执行

* pytest xxx.py::类名::测试用例函数名 ---执行某一个测试用例函数

* -x 失败即停止 --maxfail=5 失败达到5个的时候停止

* -k 类名----指定执行某个测试用例类下面的测试用例函数

* 失败后重试 安装库文件pytest-rerunfailures --reruns=3 重试几次 --reruns-delay=5 延时5秒再试

* 多进程运行 安装pytest-xdist库文件,支持多进程运行的库文件 ###执行命令后控制台内容解析 见word文档图片

mark标记

* 跳过某些用例的执行

* @mark.skip('原因') mark中自带的函数

* 冒烟测试用例 通过自定义mark的形式完成 pytest -m 自定义标记

* 参数化 mark.parametrize() 传递的是list列表,多个数据使用元组传递

setup和teardown函数

* 函数级别:有多少个测试用例函数 将会执行多少次

* 类级别:类开始的时候执行一次,结束的时候执行一次

setup teardown
setup_class teardown_class

pytest生成html测试报告

* 安装pytest-html库文件

* --html=./report/jisuanqi.html

fixture标签

场景:测试之前准备工作:准备测试数据 读取数据库;给测试用例函数传递数据;使用更加灵活

普通函数(不要以test_开头)加注解@pytest.fixture()
​
fixture是可以有返回值的,如果没return,默认返回None。用例调用fixture的返回值,直接就是把fixture的函数名称当成变量名称
​
scope作用域:测试用例函数 类 py文件
params参数 list
autouse自动使用fixture 默认False
​
* 作用域
    函数function
        * 它的作用范围是每个测试用例调用了,执行测试之前运行一次
    类class
        * class里所有用例开始前执行一次
    py文件module
        * 当前.py脚本里面所有用例开始前只执行一次
​
* autouse自动使用
    默认False,添加这个属性,在测试用例函数中不调用fixture函数,也能自动使用
​
* 参数化 返回值
    params---list  字典
    request ---- request.param获取一条数据
    测试用例函数只需要通过调用fixture函数名就可以

pytest配置文件

pytest.ini必须是这个名字 --->初次创建这种文件右上角会提示安装install plugins插件

[pytest] 开头
addopts 表示指令参数 多个之间空格隔开
testpaths 表示py文件所在文件夹
python_files = test_*.py以test_开头的所有python文件
python_classes = Test*以Test开头的类
python_functions = test_*以test_开头的函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值