【自动化】Pytest自动化测试框架

微信搜索关注公众号:测试小工,第一时间获取最新软件测试技术文章

Pytest简介

pytest是一个强大的python测试框架,支持参数化,可生成html报告,并且拥有众多第三方插件,提供给用户实现不同的需求。

 

 

Pytest安装和基本使用

一、Pytest安装

pip install pytest

 

二、命名规范

  1. 测试文件需要使用test_开头

  2. 测试类需要使用Test_开头(注意,该类不能__init__()方法)

  3. 测试方法需要使用test_开头

三、运行自动化用例

  1. 运行全部自动化脚本,直接在命令行输入:pytest

  2. 运行指定路径下的全部自动化脚本:pytest path

  3. 运行单个自动化脚本:pytest -s 脚本名(-s作用是输出print打印的内容)

  4. 运行单个测试用例:pytest -s 测试脚本名::测试类名::测试用例名

四、前置和后置

1. 模块级别:

  • setup_module():在模块最开始运行,只运行一次

  • teardown_module:在模块最后运行,只运行一次

2. 类级别:

  • setup_class():在每一个类之前运行一次

  • teardown_class():在每一个类之后运行一次

3. 用例级别

  • setup():在每一条测试用例执行之前,都会执行一次该方法

  • teardown(): 在每一条测试用例执行之后,都会执行一次该方法

 

 

 

pytest装饰器

一、Pytest Fixture使用

    我们来看下下面这段代码:

【自动化】Pytest自动化测试框架_第1张图片

上述代码,描述了fixture最简单的应用:

  1. 定义了一个fixture方法run(),

  2. 在test_A()和test_B()方法运行之前,都会先运行run()方法,有点类似于setup()的作用

fixture的作用域:

    pytest.fixture(scope="")中的scope参数,可以用于指定fixture的作用域,共有以下4种:

  1. function:默认值,每个测试函数之前执行一次

  2. class: 类级,每个类之前执行一次,

  3. module:模块级,每个模块加载之前执行一次

  4. session:全局,每次测试执行一次

二、Pytest Mark使用:

pytest.mark的主要作用是用于标记测试,主要有以下用途:

  1. 使用fixture: pytest.mark.usefixture()

  2. 跳过测试方法:

     @pytest.mark.skip(), @pytest.mark.skipif()

  3. 参数化:

    @pytest.mark.parmetrize('username','password',[('张三','123456'),('李四','123456')])

【自动化】Pytest自动化测试框架_第2张图片

Pytest常用插件

pytest具有丰富的第三方插件,在这里我们列举一些常用的插件:

  1. 生成报告:pytest-html、allure-pytest

  2. 分布式运行测试:pytest-xdist

  3. 校验代码是否符合pep8规范:pytest-pep8

  4. 多重校验:pytest-assume

  5. 重复执行用例:pytest-repeat

  6. 失败重新运行:pytest-rerunfailures

 

扫描二维码,关注微信公众号【测试小工】,技术文章第一时间获取

 

【自动化】Pytest自动化测试框架_第3张图片

 

推荐阅读

福利 | JMeter性能测试视频领取

福利 | Java视频教程领取

性能测试 | JMeter核心技术:上篇

测试开发系列 | 测试开发技能树

自动化测试 | 一文搞懂如何选用自动化测试方案

测试必须懂 | 理解Cookies和Session

你可能感兴趣的:(自动化测试,测试开发,软件测试,python)