📝 Pytest教程

21篇技术文档
  Pytest教程

📅  最后修改于: 2020-11-06 05:18:53        🧑  作者: Mango

Pytest是一个基于Python的测试框架。它主要用于编写API测试用例。本教程可帮助您了解-安装pytest。pytest的各种概念和功能。示例程序。在本教程结束时,您应该能够开始使用pytest编写测试用例。本教程旨在通过为他们的技能组合添加强大的测试框架,使希望在其QA Automation职业生涯中进一步迈进的IT专业人士和学生受益。先决条件开始本教程的先决条件是-熟悉任何编程语言。基本...

  Pytest-简介

📅  最后修改于: 2020-11-06 05:19:07        🧑  作者: Mango

Pytest是一个基于Python的测试框架,用于编写和执行测试代码。在当今的REST服务中,pytest主要用于API测试,即使我们可以使用pytest编写简单到复杂的测试,即我们可以编写代码来测试API,数据库,UI等。Pytest的优点Pytest的优点如下-Pytest可以并行运行多个测试,从而减少了测试套件的执行时间。如果没有明确提及,Pytest有自己的方法来自动检测测试文件和测试功能...

  Pytest-环境设置

📅  最后修改于: 2020-11-06 05:19:20        🧑  作者: Mango

在本章中,我们将学习如何安装pytest。要开始安装,请执行以下命令-我们可以安装任何版本的pytest。在这里,2.9.1是我们正在安装的版本。要安装最新版本的pytest,请执行以下命令-使用以下命令确认安装,以显示pytest的帮助部分。...

  识别测试文件和测试功能

📅  最后修改于: 2020-11-06 05:19:34        🧑  作者: Mango

在不提及文件名的情况下运行pytest将在当前目录和子目录中运行所有格式为test _*。py或* _test.py的文件。 Pytest自动将那些文件标识为测试文件。我们可以通过显式提及pytest来运行其他文件名。Pytest要求测试函数名称以test开头。 pytest不会将格式不是test *的函数名视为测试函数。我们不能明确地让pytest将不是以test开头的任何函数视为test函数。...

  Pytest-从基本测试开始

📅  最后修改于: 2020-11-06 05:19:54        🧑  作者: Mango

现在,我们将从第一个pytest程序开始。我们将首先创建一个目录,从而在该目录中创建测试文件。让我们按照下面显示的步骤操作-创建一个名为Automation的新目录,并在命令行中导航到该目录。创建一个名为test_square.py的文件,并将以下代码添加到该文件中。使用以下命令运行测试-上面的命令将生成以下输出-请参阅结果的第一行。它显示文件名和结果。 F表示测试失败,而dot(。)表示测试成功...

  Pytest-文件执行

📅  最后修改于: 2020-11-06 05:20:13        🧑  作者: Mango

在本章中,我们将学习如何执行单个测试文件和多个测试文件。我们已经创建了一个测试文件test_square.py。使用以下代码创建一个新的测试文件test_compare.py-现在要运行所有文件(此处为2个文件)中的所有测试,我们需要运行以下命令-上面的命令将从test_square.py和test_compare.py运行测试。输出将生成如下-要从特定文件执行测试,请使用以下语法-现在,运行以下...

  执行测试套件的子集

📅  最后修改于: 2020-11-06 05:20:26        🧑  作者: Mango

在实际情况下,我们将有多个测试文件,并且每个文件将具有许多测试。测试将涵盖各种模块和功能。假设我们只想运行一组特定的测试;我们如何去做?Pytest提供了两种方法来运行测试套件的子集。根据测试名称的子字符串匹配选择要运行的测试。根据所应用的标记选择要运行的测试组。在后面的章节中,我们将通过示例解释这两个问题。...

  测试名称的子字符串匹配

📅  最后修改于: 2020-11-06 05:20:41        🧑  作者: Mango

要执行包含名称字符串的测试,我们可以使用以下语法--k <substring>表示要在测试名称中搜索的子字符串。现在,运行以下命令-这将执行所有名称中带有单词“ great”的测试名称。在这种情况下,它们是test_greater()和test_greater_equal()。请参阅下面的结果。在结果中,我们可以看到取消选择了3个测试。这是因为这些测试名称中没有包含单词great。注–测试函数的名...

  Pytest-对测试进行分组

📅  最后修改于: 2020-11-06 05:21:01        🧑  作者: Mango

在本章中,我们将学习如何使用标记对测试进行分组。Pytest允许我们在测试功能上使用标记。标记用于设置各种功能/属性以测试功能。 Pytest提供了许多内置标记,例如xfail,skip和parametrize。除此之外,用户可以创建自己的标记名称。使用下面给出的语法将标记应用于测试-要使用标记,我们必须在测试文件中导入pytest模块。我们可以为测试定义自己的标记名,然后使用这些标记名运行测试。...

  Pytest-灯具

📅  最后修改于: 2020-11-06 05:21:22        🧑  作者: Mango

夹具是函数,将在应用它的每个测试函数之前运行。夹具用于向测试提供一些数据,例如数据库连接,要测试的URL和某种输入数据。因此,我们不必为每个测试运行相同的代码,而是可以将fixture函数附加到测试,它将在执行每个测试之前运行并将数据返回给测试。一个函数被标记为固定装置-测试函数可以通过提及灯具名称作为输入参数来使用灯具。创建文件test_div_by_3_6.py并将以下代码添加到其中在这里,我...

  Pytest-Conftest.py

📅  最后修改于: 2020-11-06 05:21:40        🧑  作者: Mango

我们可以在此文件中定义灯具功能,以使它们可以跨多个测试文件访问。创建一个新文件conftest.py并将以下代码添加到其中-编辑test_div_by_3_6.py删除固定函数-创建一个新文件test_div_by_13.py-现在,我们有文件test_div_by_3_6.py和test_div_by_13.py利用在conftest.py定义的夹具。通过执行以下命令来运行测试-上面的命令将产生...

  Pytest-参数化测试

📅  最后修改于: 2020-11-06 05:21:56        🧑  作者: Mango

完成测试的参数化以针对多组输入运行测试。我们可以通过使用以下标记来做到这一点-将以下代码复制到名为test_multiplication.py的文件中-在这里,测试将输入乘以11,然后将结果与预期输出进行比较。该测试有4组输入,每组都有2个值-一组是要乘以11的数字,另一组是预期结果。通过运行以下命令执行测试-上面的命令将生成以下输出-...

  Pytest-Xfail /跳过测试

📅  最后修改于: 2020-11-06 05:22:13        🧑  作者: Mango

在本章中,我们将学习Pytest中的Skip和Xfail测试。现在,考虑以下情况-由于某些原因,测试在一段时间内不相关。正在实施一项新功能,我们已经为该功能添加了测试。在这些情况下,我们可以选择xfail测试或跳过测试。Pytest将执行xfailed测试,但不会被视为部分失败或通过测试。即使测试失败,也不会打印这些测试的详细信息(请记住pytest通常会打印失败的测试详细信息)。我们可以使用以下...

  Pytest-N次测试失败后停止Test Suite

📅  最后修改于: 2020-11-06 05:22:31        🧑  作者: Mango

在实际情况下,一旦准备好部署新版本的代码,便会首先将其部署到预生产/登台环境中。然后在其上运行测试套件。仅当测试套件通过时,该代码才有资格部署到生产中。如果存在测试失败(无论是一次还是多次),则该代码尚未准备就绪。因此,如果我们想在n次测试失败后立即停止执行测试套件,该怎么办。这可以在pytest中使用maxfail完成。在n次测试失败后立即停止执行测试套件的语法如下-使用以下代码创建文件test...

  Pytest-并行运行测试

📅  最后修改于: 2020-11-06 05:22:45        🧑  作者: Mango

默认情况下,pytest按顺序运行测试。在实际情况下,一个测试套件将具有许多测试文件,并且每个文件将具有一堆测试。这将导致大量的执行时间。为了克服这个问题,pytest为我们提供了并行运行测试的选项。为此,我们需要首先安装pytest-xdist插件。通过运行以下命令安装pytest-xdist-现在,我们可以使用语法pytest -n <num>来运行测试。-n <num>通过使用多个工作程序运...