Pytest
Pytest是python的一个测试工具, 可以用于所有类型和级别的软件测试。Pytest是一个可以自动查找到你编写的用例并运行后输出结果的测试框架。
Pytest特点
1. 是一个命令行工具, 编写用例简单,可读性强.
2. 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
2. 支持单元测试和功能测试.
3. 支持参数化.
4. 执行测试过程中可以将某些测试跳过,或者对某些预期失败的Case标记成失败
5. 支持重复执行失败的Case.
6. 支持运行由Unittest编写的测试Case
7. 具有很多第三方插件,并且可以自定义扩展
8. 方便的和持续集成工具集成.
9. 可以运行以test开头或test结尾的包 文件和方法
10. 可以使用assert进行断言
pytest安装
安装命令: pip install -U pytest
参数解释:
-U 是upgrade, 表示已安装就升级为最新版本.
安装成功校验: pytest --version # 会展示当前已安装版本
注意:测试的脚本文件中的测试函数或者测试类必须以test开头,否则测试函数不执行
pytest 的简单使用:
import pytest
import requests
# 测试函数必须是以 test 开头
def test_baidu():
r = requests.get('http://www.baidu.com')
print(r.status_code)
# 使用断言 若是 返回的状态码不是 200 则抛出错误信息为 访问出错
assert r.status_code == 200, '访问出错'
# 当需要编写多个测试样例的时候,我们可以将其放到一个测试类当中,如: 测试类必须以 Test开头 测试类中的测试方法也要以 test 开头 并且不能带有 init 方法
class TestItcast(object):
def testItcast(self):
r = requests.get('http://www.itheima.com/')
assert r.status_code == 100
def test_two(self):
x = "hello"
assert hasattr(x, 'check')
命令行运行语句
模式1:直接运行test_se.py文件中的所有cases:
pytest test_se.py
模式2:运行test_se.py文件中的TestClassOne这个class下的两个cases:
pytest test_se.py::TestClassOne
模式3:运行test_se.py文件中的TestClassTwo这个class下的test_one:
pytest test_se.py::TestClassTwo::test_one
1.断言处理
1.1 什么是断言
断言就是用来检测程序是否正确, 若条件为假,就中断程序执行.
1.2 使用场景
- 使用assert语句
- 断言预期的异常
- 断言预期的警告
1.3异常断言
在测试过程中,对某些方法进行测试时,预测输入某些特定数据,会抛出特定异常,若出现特定异常,则用例执行通过。对这类特定异常的断言,可以采用pytest中的**pytest.raises()**进行处理。
Pytest.raises() 测试抛出的异常是否是预期的异常类型,否则测试不会通过
Pytest.raises(expected_exception, args, kwargs) 参数解释
-
expected_exception : 预期的异常信息
# 可以把异常信息存储到一个变量中, 变量的类型为异常类, 包含异常的type, value或者traceback等信息. # match 参数作用 是匹配输出的异常信息是否和 match 中设置的值一样 不一样 出抛出错误 (即设置了这个参数的话,需要错误类型和信息都一样才会通过测试) # match 参数匹配异常的信息的机制是和 正则里面的match方法一样的 (从头开始匹配) # with pytest.raises(TypeError,match='1568') as e: with pytest.raises(TypeError,match='传') as e: # with pytest.raises(ValueError,match='df') as e: leap_year.is_leap_year('15')
有时候我们可能需要在测试用到产生的异常信息, 我们可以把异常信息存储到一个变量中, 变量的类型为异常类, 包含异常的type, value或者traceback等信息.
如上面的 as e 其中 e 就是存储的异常信息
1.4 警告断言
pytest中对警告进行断言采用pytest.warns()方法,其断言的方法与pytest.raises()类似。pytest.warns()除了能断言告警外,还能够捕获告警信息,并对捕获的告警信息进行分类处理,可以设定出现特定告警信息时,则用例执行失败。
1. 使用方法
pytest.warns(expected_warning, *args, match, **kwargs)
- expected_warning 预期的警告
- DeprecationWarning 弃用警告
- UserWarning 用户警告
- match 可以自定义的警告内容
2. 直接抛出警告
# make_warnings.py
import warnings
def make_warn():
# 抛出
warnings
今天的文章测试学习笔记之–pytest使用和断言处理以及setup,theardown使用[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/88764.html