python测试框架-->pytest测试框架之简介、安装与准备(一)

1、pytest介绍

  • pytest是一个非常成熟的全功能的Python测试框架
    • 简单灵活,容易上手
    • 支持参数化
    • 测试用例的skip和xfail,自动失败重试等处理
    • 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/ appnium等自动化测试、接口自动化测试(pytest+requests)
    • pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest allure(完美html测试报告生成),pytest-xdist(多CPU分发)等
    • 可以很好的和jenkins集成
  • pytest能够支持简单的单元测试和复杂的功能测试
  • pytest可以结合Requests实现接口测试;结合Selenium、Appium 实现自动化功能测试
  • 使用pytest结合Allure集成到Jenkins中可以实现持续集成
  • pytest支持315种以上的插件

2、Pytest官方文档

文档:https://docs.pytest.org/en/latest/contents.html#toc

3、为什么要选择Pytest

  • 丰富的第三方插件
    • Allure报告
    • 多线程
    • 顺序控制
  • 简单灵活
  • 兼容Unittest
  • 定制化插件开发

3、Pytest环境安装

PS:前提:本地已配置完成Python环境

第一种方式:在命令行输入

pip install pytest

python测试框架-->pytest测试框架之简介、安装与准备(一)_第1张图片

第二种方式 :PyCharm直接安装

python测试框架-->pytest测试框架之简介、安装与准备(一)_第2张图片

4、安装Pytest第三方库(用不到的库可以不安装)

Pytest第三方库学习文档::https://pypi.org/search/?q=pytest
# pytest安装与依赖
pip install pytest
#升级Pytest
pip install -U pytest
#界面美化
pip install pytest-sugar
# 重新运行出错的测试用例
pip install pytest-rerunfailures
#进行多任务、同时并发执行测试用例
pip install pytest-xdist
# 对测试用例进行断言
pip install pytest-assume
# 会生成html测试报告
pip install pytest-html
# 控制用例执行顺序
pip install pytest-ordering
# 用例随机执行
pip install pytest-random-order
# 查看所有第三方库
pip list
#查看Pytest帮助文档
pytest -h

5、Pytest运行方式

Pytest运行规则,对文件名、类名、函数名命名有一定的规范

  1. 文件以test_或者_test开头
  2. 类名Test开头
  3. 测试用例以test_

6、Pytest实战

#test_sample.py
def inc(x):
    return x + 1


def test_answer():
    assert inc(3) == 5

执行结果如下:

$ pytest
============================= test session starts =============================
collected 1 items

test_sample.py F

================================== FAILURES ===================================
_________________________________ test_answer _________________________________

    def test_answer():
>       assert inc(3) == 5
E       assert 4 == 5
E        +  where 4 = inc(3)

test_sample.py:5: AssertionError
========================== 1 failed in 0.04 seconds ===========================

以上是我学习的笔记,简单分享一下,希望对大家有帮助~~~

你可能感兴趣的:(Pytest测试框架,python)