Pytest自动化测试

这篇具有很好参考价值的文章主要介绍了Pytest自动化测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、Pytest如何安装

二、Pytest如何编写用例

三、Pytest如何运行用例

四、Pytest如何实现参数化

五、Pytest如何跳过和标记用例

六、Pytest如何失败重执行

七、Pytest如何使用夹具

八、Pytest如何进行夹具共享

九、Pytest如何设置夹具作用域


Pytest是Python中最流行的自动化测试框架之一,简单易用,而且具有丰富的插件可以不断扩展其功能,同时也提供了丰富的断言功能,使得编写测试用例更灵活。

一、Pytest如何安装

一般都使用pip来安装:

pip install pytest

二、Pytest如何编写用例

创建一个python文件(test_example.py),并编写以下代码:

# test_example.py

def add(a,b):               # 定义函数
    return a+b

def test_add():             # 编写测试用例
    assert add(1,2) == 3    # assert断言

三、Pytest如何运行用例

 打开终端,在对应的工作目录下,输入命令:

pytest test_example.py

四、Pytest如何实现参数化

import pytest

def add(a, b):
    return a + b

@pytest.mark.parametrize("a, b, expected", [(1, 2, 3), (0, 0, 0), (-1, 1, 0)])
def test_add(a, b, expected):
    result = add(a, b)
    assert result == expected

五、Pytest如何跳过和标记用例

import pytest

@pytest.mark.skip("This function is not completed yet")
def test_uncompleted_function():
    pass

@pytest.mark.slow
def test_slow_function():
    # 此处放慢测试的代码
    pass

六、Pytest如何失败重执行

首先安装失败重跑插件:pytest-rerunfailures

pip install pytest-rerunfailures

插件参数:
命令行参数:–reruns n(重新运行次数),–reruns-delay m(等待运行秒数)
装饰器参数:reruns=n(重新运行次数),reruns_delay=m(等待运行秒数)

如果想要重新执行所有测试用例,直接输入命令:

pytest --reruns 2 --reruns-delay 10 -s

上述首先设置了重新运行次数为2,并且设置了两次运行之间等待10秒。

如果想重新运行指定的测试用例,可通过装饰器来实现,命令如下:

import pytest

@pytest.mark.flaky(reruns=3,  reruns_delay=5)
def test_example():
    import random
    assert random.choice([True, False, False])

七、Pytest如何使用夹具

首先创建夹具,代码如下:

@pytest.fixture()
def test_example():
    print('case执行之前执行')
    yield
    print('case执行之后执行')

使用夹具方式1:通过参数引用

def test_case(test_example):
    print('case运行中')

使用夹具方式2:通过函数引用

@pytest.mark.usefixtures('test_example')

def test_case():
    print('case运行中')

八、Pytest如何进行夹具共享

夹具共享:conftest.fy文件,可以跨多个文件共享夹具,而且在用例模块中无需导入,pytest会自动发现conftest.py中的夹具。
fixture 优先级:当前所在模块---> 当前所在包的 conftest.py--->上级包的 conftest.py--->最上级的 conftest.py


九、Pytest如何设置夹具作用域

作用域执行的优先级:session > module > class > function

根据@pytest.fixture()中scope参数不同,作用域区分:文章来源地址https://www.toymoban.com/news/detail-783865.html

  • function(函数):默认值。每个测试用例函数执行时都会执行一次。  
  • class(类):不论有多少测试用例,整个类只会运行一次。
  • module(模块):不论有多少测试用例,整个模块(文件)下只运行一次。
  • package(包):不论有多少测试用例,整个包(文件夹)下只运行一次。
  • session:不论有多少测试用例,整个pytest下只会运行一次。

到了这里,关于Pytest自动化测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 探索pytest:Python自动化测试的新境界

    在当今的软件开发领域,测试已经不仅仅是一个简单的步骤,而是确保软件质量的核心环节。Python,作为全球最受欢迎的编程语言之一,拥有丰富的测试框架和工具。而在这其中,pytest无疑是最受欢迎和最具影响力的一个。本文将深入探讨pytest的魅力,以及它如何改变了Pyt

    2024年02月11日
    浏览(54)
  • 接口自动化测试:Python+Pytest+Requests+Allure

    本项目实现了对Daily Cost的接口测试: Python+Requests 发送和处理HTTP协议的请求接口 Pytest 作为测试执行器 YAML 管理测试数据 Allure 来生成测试报告。 本项目是参考了pytestDemo做了自己的实现。 项目结构 api : 接口封装层,如封装HTTP接口为Python接口 commom : 从文件中读取数据等各种

    2024年02月09日
    浏览(72)
  • python+appium+pytest自动化测试-参数化设置

    来自APP Android端自动化测试初学者的笔记,写的不对的地方大家多多指教哦。(所有内容均以微博V10.11.2版本作为例子) 在自动化测试用例执行过程中,经常出现执行相同的用例,但传入不同的参数,导致我们需要重复的写用例,这样会使我们的用例变得很长,冗余,很多地

    2023年04月08日
    浏览(53)
  • 接口自动化测试框架开发 (pytest+allure+aiohttp+ 用例自动生成)

    目录 前言: 第一部分(整个过程都要求是异步非阻塞的) 读取 yaml 测试用例 http 请求测试接口 收集测试数据 第二部分 动态生成 pytest 认可的测试用例 后续(yml 测试文件自动生成) 前言: 开发一个接口自动化测试框架是一个很好的方式,可以提高测试效率和准确性。在这

    2024年02月16日
    浏览(59)
  • 接口自动化测试框架开发(pytest+allure+aiohttp+ 用例自动生成)

    近期准备优先做接口测试的覆盖,为此需要开发一个测试框架,经过思考,这次依然想做点儿不一样的东西。 接口测试是比较讲究效率的,测试人员会希望很快能得到结果反馈,然而接口的数量一般都很多,而且会越来越多,所以提高执行效率很有必要 接口测试的用例其实

    2024年01月23日
    浏览(52)
  • Python 自动化测试框架unittest与pytest的区别

    📌 博客主页: 美团程序员 📌 专注于软件测试领域相关技术实践和思考,持续分享自动化软件测试开发干货知识! 📌 如果你也想学习软件测试,文末卡片有我的交流群632880530,加入我们,一起交流和学习! 引言 前面一篇文章Python单元测试框架介绍已经介绍了python单元测

    2024年02月13日
    浏览(44)
  • Python自动化测试框架:Pytest和Unittest的区别

    pytest和unittest是Python中常用的两种测试框架,它们都可以用来编写和执行测试用例,但两者在很多方面都有所不同。本文将从不同的角度来论述这些区别,以帮助大家更好地理解pytest和unittest。 1. 原理 pytest是基于Python的assert语句和Python的自省特性实现测试框架,其原理是基于

    2024年02月10日
    浏览(61)
  • python+pytest接口自动化之测试函数、测试类/测试方法的封装

    今天呢,笔者想和大家聊聊python+pytest接口自动化中将代码进行封装,只有将测试代码进行封装,才能被测试框架识别执行。 例如单个接口的请求代码如下: 假设我们需要将上面这段代码编写成测试框架能执行的测试用例,仅仅只是这样写代码显然是不够的,还需要进行如下

    2024年03月09日
    浏览(62)
  • 【码尚教育】Python自动化测试框架pytest—入门学习笔记

    目录 前言 一、pytest单元测试框架 二、 单元测试框架和自动化测试框架有什么关系 三、pytest简介 四、使用pytest默认的测试用例规则及基础应用 五、pytest测试用例的运行方式 六、pytest执行测试用例的顺序 七、如何分组执行​编辑 八、pytest跳过用例 九、pytest框架实现的一些

    2023年04月12日
    浏览(47)
  • Python+Requests+PyTest+Excel+Allure 接口自动化测试实战

    本文主要介绍了Python+Requess+PyTest+Excel+Allure 接口自动化测试实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像

    2024年02月07日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包