pytest学习

Posted testlearn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest学习相关的知识,希望对你有一定的参考价值。

1.Pytest介绍

pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但更简洁并高效。
官方网站优点简介:

  1. 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
  2. 能够支持简单的单元测试和复杂的功能测试
  3. 支持参数化
  4. 执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败
  5. 支持重复执行失败的case
  6. 支持运行由nose, unittest编写的测试case
  7. 具有很多第三方插件,并且可以自定义扩展
  8. 方便的和持续集成工具集成

2. 安装pytest

下面两种安装方式二选一即可。

1 pip install -U pytest
2 easy_install -U pytest

安装完成验证安装的版本

pytest  --version

3. 执行用例

  • 简单执行单个用例

1 # content of test_sample.py
2 
3 
4 def func(x):
5     return x + 1
6 
7 
8 def test_func():
9     assert func(3) == 5

 到该模块的目录下,输入pytest(模块的名字与执行函数必须是test开头或_test结尾,否则不会被执行,切记!),见该代码执行的结果,见截图:

技术图片

  • 执行类中的测试

 1 # content of test_class.py
 2  
 3 class TestClass:
 4     def test_one(self):
 5         x = "this"
 6         assert h in x
 7  
 8     def test_two(self):
 9         x = "hello"
10         assert hasattr(x, check)

技术图片

  • 执行目录下指定用例

 在测试中,有N个测试用例,但是我们只是想执行其中的一个用例,其它的用例不想执行,那怎么办呢?使用下面命令就可以执行单个用例

1 #   $pytest -q /path/用例名
2 pytest -q test_case2.py

4.编写测试样例与规范

  • python命名规范

1 一 包名、模块名、局部变量名、函数名
2   全小写+下划线式驼峰
3   example: this_is_var
4 二 全局变量
5   全大写+下划线式驼峰
6   example: GLOBAL_VAR
7 三 类名
8   首字母大写式驼峰,否则会报错提示语法错误
9   example: ClassName()
  • 测试用例规则

1 - 测试文件以test_开头(以_test结尾也行)
2 - 测试类以Test开头,并且不能带有__init__方法
3 - 测试函数以test_开头
4 - 断言使用基本的assert即可

 

以上是关于pytest学习的主要内容,如果未能解决你的问题,请参考以下文章

pytest文档19-doctest测试框架

学习pytest+allureUI自动化记录

pytest学习

Pytest学习 - parametrizefixturerequest的混合使用

Python学习:如何使用pytest-mock

Python学习:如何使用pytest-mock