pytest测试框架系列 |
您所在的位置:网站首页 › pytest断言封装 › pytest测试框架系列 |
前言
测试用例的预期结果是用例不可缺少的一部分,那么断言就是自动化测试不可缺少的一步,一个没有断言的用例,自动化测试的就没有意义了。那什么是断言呢?简单来讲就是实际结果和期望结果去对比,符合预期那就测试pass,不符合预期那就测试 failedPytest里面使用关键字assert,断言为一个表达式,只要表达式的最终结果为True,那么断言通过,用例执行成功,否则用例执行失败
Assert 常用断言方式
pytest里面断言实际上就是python里面的assert断言方法,常用的有以下几种 assert xx 判断xx为真assert not xx 判断xx不为真assert a in b 判断b包含aassert a == b 判断a等于bassert a != b 判断a不等于b示例: # _*_coding:utf-8 _*_ # @Time :2021/7/2 21:27 # @Author : king # @File :test_assert.py # @Software :PyCharm # @blog :https://blog.csdn.net/u010454117 # @WeChat Official Account: 【测试开发知识库】 import pytest def func(a): if a > 2: return True else: return False def test_01(): """断言xx为真""" a = 3 b = 1 assert func(a) def test_02(): """断言 b 包含 a""" a = "king" b = "hello king" assert a in b def test_03(): """断言相等""" a = "king" b = "king" assert a == b def test_04(): """断言不等于""" a = 1 b = 2 assert a != b if __name__ == "__main__": pytest.main()命令行输入: pytest -s test_assert.py 执行结果如下: 那么断言都能正常进行吗?所以接下来我们讲解一下异常断言 Pytest 异常断言Excepiton 除了支持对代码正常运行的结果断言之外,Pytest也能够对 Exception 和 Warnning 进行断言,来断定某种条件下,一定会出现某种异常或者警告。在功能测试和集成测试中,这两类断言用的不多,这里简单介绍一下。对于异常的断言,Pytest的语法是:with pytest.raises(异常类型),可以看下面的这个例子: def test_zero_division(): with pytest.raises(ZeroDivisionError): 1 / 0这个测试用例断言运算表达式1除以0会产生ZeroDivisionError异常。除了对异常类型进行断言,还可以对异常信息进行断言,比如: # _*_coding:utf-8 _*_ # @Time :2021/7/2 21:43 # @Author : king # @File :test_except_assert.py # @Software :PyCharm # @blog :https://blog.csdn.net/u010454117 # @WeChat Official Account: 【测试开发知识库】 import pytest def test_zero_division(): """断言异常""" with pytest.raises(ZeroDivisionError) as excinfo: 1 / 0 # 断言异常类型type assert excinfo.type == ZeroDivisionError # 断言异常value值 assert "division by zero" in str(excinfo.value)命令行输入: pytest -s test_except_assert.py 执行结果如下: 关于更多的Exception和Warnning的断言可以参考Pytest的官方文档: Exception和Warnning的断言 Pytest的官方文档 我们再来看下下面这个断言失败你发现啥了呢? 命令行输入: pytest -s test_assert_fail.py 执行结果如下: 如果觉得文章不错,欢迎关注微信公众号,微信公众号每天推送相关测试技术文章 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |