首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

软件测试测试开发全日制|Pytest测试用例调度与运行

前言Pytest 是一个功能强大的 Python 测试框架,它具有灵活的测试用例调度运行机制。在本文中,我们将深入了解 Pytest 是如何收集、选取运行测试用例的。...测试用例的收集Pytest 中,测试用例是通过函数来表示的。为了进行测试Pytest 需要收集这些测试函数。...默认情况下,Pytest 会在当前目录及其子目录中查找文件,找到所有以 test_ 开头或以_test 结尾的文件,并收集其中的测试函数。...注:我们也可以通过pytest.ini文件来定义测试用例的命名,但我们建议按照pytest命名规则来命名测试用例。选取测试用例Pytest 提供了多种方式来选取要运行的测试用例。...pytest -n 4这将使用 4 个进程并发执行测试用例。运行顺序Pytest 默认是根据测试文件测试函数的字母顺序来执行测试用例的。

14910

《带你装B,带你飞》pytest成神之路2- 执行用例规则pycharm运行的三种姿态

pytest py.test python -m pytest   如果不带参数,在某个文件夹下执行时,它会查找该文件夹下所有的符合条件的用例(查看用例设计原则) 6....上面的例子将运行TestMyClass.test_something但不运行TestMyClass.test_method_simple 4.按节点运行 每个收集测试都分配了一个唯一的nodeid,它由模块文件名后跟说明符组成来自参数化的类名...6.从包里面运行 pytest —pyargs pkg.testing 这将导入pkg.testing并使用其文件系统位置来查找运行测试。...7.pytest -x( 遇到错误时停止测试) pytest -x test_class.py 从运行结果可以看出,本来有3个用例,第二个用例失败后就没继续往下执行了 ?...2.运行结果“.F. ” 点是代表测试通过,F是Fail的意思,1 warnings是用于pytest.main('-q test_class.py')里面参数需要传list,多个参数放list就不会有警告了

1.3K30
您找到你想要的搜索结果了吗?
是的
没有找到

干货 | 一文搞定 pytest 自动化测试框架(一)

它与 Python 自带的 Unittest 测试框架类似,但 pytest 使用起来更简洁高效,并且兼容 unittest 框架。...pytest 有以下实用特性: pytest 能够支持简单的单元测试复杂的功能测试pytest 本身支持单元测试; 可以结合 Requests 实现接口测试; 结合 Selenium、Appium...安装完 pytest 之后,编写的符合规则的测试用例都能被识别出来并且标出一个绿色的执行按钮,点击这个按钮也能执行某个方法或者某个类。...即可 创建一个 python 文件,命名以 test_ 开头(或者以 _test 结尾),创建测试方法以 test_ 开头,测试类需要以 Test 开头。...在这些文件里,pytest收集符合编写规范的函数,类以及方法,当作测试用例并且执行,执行如下: $ pytest....test_add.py ..F [100%]....self = <test_cases.test_add.TestClass

54620

聊一聊,Python自动化测试框架

pytest -m MARKEXPR # 运行匹配的测试 py.test -k stringexpr # 只收集并显示可用的测试用例,但不运行测试用例 py.test --collect-only...在上例中,有一个测试用了 pytest.mark.usefixtures装饰器来标记使用哪个 fixture,这中用法表示在开始测试前应用该 fixture 函数但不需要其返回值。...,功能是否符合预期。...py.test 框架会在测试的项目中寻找 conftest.py 文件,然后在这个文件中寻找针对整个目录的测试选项,比如是否检测并运行 doctest 以及应该使用哪种模式检测测试文件函数。...: 生成测试覆盖率报告 pytest-pep8: 检测代码是否符合 PEP8 规范 pytest-flakes: 检测代码风格 pytest-html: 生成 html 报告 pytest-randomly

3.9K40

pytest 自动化测试框架(一)

pytest 有以下实用特性: pytest 能够支持简单的单元测试复杂的功能测试pytest 本身支持单元测试; 可以结合 Requests 实现接口测试; 结合 Selenium、Appium...方法 测试函数以 test_ 开头 断言使用基本的 assert 即可 创建一个 python 文件,命名以 test_ 开头(或者以 _test 结尾),创建测试方法以 test_ 开头,测试类需要以...在这些文件里,pytest收集符合编写规范的函数,类以及方法,当作测试用例并且执行,执行如下: $ pytest .......运行参数 pytest 带有很多参数,可以使用 pytest --help 来查看帮助文档,下面介绍几种常用的参数: **参数** 读取路径下所有符合规则的文件,类,方法,函数全部执行。...从上面的结果可以看出 setup_module teardown_module 在整个模块只执行一次,setup_class teardown_class 在类里面只执行一次,setup_method

1.1K40

Pytest fixture及conftest详解

一、Pytest fixture 1.pytest fixture几个关键特性 有独立的命名,并通过声明它们从测试函数、模块、类或整个项目中的使用来激活 按模块化的方式实现,每个fixture都可以互相调用...,允许根据配置组件选项对fixture测试用例进行参数化 2.Pytest fixture定义 定义fixture跟定义普通函数差不多,唯一区别就是在函数上加个装饰器@pytest.fixture(...fixture,然后在此函数中使用一个yield语句,yield语句之前的就会在测试用例之前使用,yield之后的语句就会在测试用例执行完成之后再执行。...fixture,则就会在当前目录下所有用例之前之后会执行fixture定义的对应的操作。...警告信息在测试开始后收集,如果你在意的警告信息出现在测试尾部,则可以在信息收集前使用 recwarn.clear() 清除不需要的内容。

1.6K40

一篇文章带你了解Python常用自动化测试框架——Pytest

验收测试:指按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统 而我们这篇文章主要针对的是单元测试: Python:通常使用UnitTestPytest...来进行单元测试自动化,但Pytest已经成为主流 Java:通常使用TestngJunit来进行单元测试自动化,但Testng已经成为主流 最后我们需要明白单元测试框架的主要功能: 发现测试用例 执行测试用例...判断测试结果 生成测试报告 框架基本介绍 下面我们来简单介绍Pytest框架: pytest是一个非常成熟的单元测试框架,经过多版本的迭代,主要优点在于灵活简单 pytest具有极强的兼容性生态环境..._test结尾 # 例如我们下面的模块名命名就是正确示例 test_demo1 demo2_test # 然后我们需要注意我们模块中的测试类类名必须以Test开头,并且不能带有init方法 # 例如我们下面的类名命名就是正确示例...插件(如果之前pip了那个整体文件,这里应该是已经下载过了) pip install allure-pytest # 第三步我们就可以直接来生成allure的测试结果展示界面了 # 1.我们通常首先需要生成一个

1.2K21

一文带你了解Pytest..

:将整个软件系统看成一个整体进行测试,包括对功能、性能以及软件所运行的软硬件环境进行测试 验收测试:指按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统...而我们这篇文章主要针对的是单元测试: Python:通常使用UnitTestPytest来进行单元测试自动化,但Pytest已经成为主流 Java:通常使用TestngJunit来进行单元测试自动化...,但Testng已经成为主流 最后我们需要明白单元测试框架的主要功能: 发现测试用例 执行测试用例 判断测试结果 生成测试报告 框架基本介绍 下面我们来简单介绍Pytest框架: pytest是一个非常成熟的单元测试框架...: # 我们通常采用前后置来做一些方法前后的操作 # 如果我们采用方法层的前后置,那么它会在每个方法执行前后去执行该内容 # 如果我们采用类层的前后置,那么它会在调用这个类内所有方法的前后去执行该内容,...插件(如果之前pip了那个整体文件,这里应该是已经下载过了) pip install allure-pytest # 第三步我们就可以直接来生成allure的测试结果展示界面了 # 1.我们通常首先需要生成一个

13621

pytest文档2-用例运行规则

用例有三种方法,以下三种方法都可以,一般推荐第一个 pytest py.test python -m pytest 如果不带参数,在某个文件夹下执行时,它会查找该文件夹下所有的符合条件的用例(查看用例设计原则...-k 按关键字匹配 pytest -k “MyClass and not method” 这将运行包含与给定字符串表达式匹配的名称的测试,其中包括Python 使用文件名,类名函数名作为变量的运算符。...上面的例子将运行 TestMyClass.test_something但不运行TestMyClass.test_method_simple 4.按节点运行 每个收集测试都分配了一个唯一的nodeid,...6.从包里面运行 pytest —pyargs pkg.testing 这将导入pkg.testing并使用其文件系统位置来查找运行测试。...-x 遇到错误时停止测试 pytest -x test_class.py 从运行结果可以看出,本来有3个用例,第二个用例失败后就没继续往下执行了 D:\YOYO>pytest -x test_class.py

1K30

软件测试测试开发|Pytest都有哪些命名规则?

前言在使用Pytest进行测试时,良好的命名规范是编写清晰、易读可维护的测试用例的重要组成部分。规范的命名使得测试用例的意图更加明确,便于团队成员理解维护。...Pytest命名规范测试文件命名测试脚本文件为python文件,此外文件名命名规则为test_.py或者_test.py格式的文件,如下列均为符合pytest要求的测试文件命名规范:test_demo.pytest..._01.pytest_.pydemo_test.py01_test.py_test.py不符合测试文件命名规则的如下:test.pytestdemo.pyTest_demo.pyTestDemo.pyTest...():assert 1==1另一种则是使用类组织的在类内的测试函数,比如如下:class TestDemo:def test_func():assert 1==1测试测试函数命名规则总结为如下规则:...总结本文主要介绍了pytest命名规则,pytest命名规则非常重要,需要我们牢记命名规则,这样才能更好地使用pytest来执行测试,我们还需要记住一点,测试类中不能含有__init__方法。

14610

Python测试框架pytest(06)fixture - 依赖、重命名、request、pytestconfig

Python测试框架pytest(06) fixture 依赖、重命名、request、pytestconfig 目录 1、fixture依赖其他fixture 2、fixture重命名 3、fixture...的 name 参数对 fixture 重命名。...cls: 收集测试函数的 class(可以是None)。 instance: 收集测试函数的实例(可以是None)。 module: 收集测试函数的 python 模块对象。...fspath: 收集测试测试模块的文件系统路径。 keywords: 底层节点的关键字/标记字典。 session: pytest 会话对象。...-s test_fixture_request2.py 运行结果: 示例二:项目实战 在自动化测试执行阶段,如果想用Chrome、Firefox等分别执行同样的测试用例,可以使用如下的脚本写法。

40420

Pytest(三)Pytest执行命令

---- 先看一个额外的知识,关于可能出现的执行退出code 执行pytest可能会出现6中不同的退出code: 退出code 0: 收集并成功通过所有测试用例 退出code 1: 收集并运行了测试...,部分测试用例执行失败 退出code 2: 测试执行被用户中断 退出code 3: 执行测试中发生内部错误 退出code 4: pytest命令行使用错误 退出code 5: 没有收集测试用例...上面的示例将运行TestMyClass.test_something但不运行TestMyClass.test_method_simple 按节点id运行测试 每次执行收集到的测试用例集合都会被分配一个唯一的...--tb=no # 不使用追溯信息 5.详尽的测试结果摘要 -r标志可用于在测试会话结束时显示测试结果摘要,从而可以在拥有大量用例的测试套件中轻松获得所有失败、跳过、标记失败(xfails)...等测试结果的清晰描述。

2.9K30

Python测试框架pytest-基础演示

加参数: -v用于显示每个测试函数的执行结果,从输入中可以看到执行了test_pytest.py文件TestClass类的test_add方法,由此引出直接运行方法的命令,新加一个函数test_true...pytest -v test_pytest.py::TestClass -q 简单打印,只打印测试用例的执行结果 -s 详细打印,修改测试函数加上输出。...上面是网上看到的,经过我自己测试发现-k "关键字"里面实际是同时匹配方法类,修改代码如下。执行命令pytest -v -s -k "Two",同时匹配了类方法。...) assert 1==1 -k “类名 and not 方法名表示任意位置模糊匹配类名的所有类,并执行匹配到的这些类的所有方法,但不会执行任意位置模糊匹配的方法。...import pytest def add(x, y): return x + y class TestClass1(object): # 测试是否符合预期 def test_add

49220

Pytest系列(17)- pytest-xdist分布式测试的原理流程

master会在测试会话(test session)开始前产生一个或多个worker masterworker之间是通过execnet网关来通信的 实际编译执行测试代码的worker可能是本地机器也可能是远程机器...第二步:收集测试项用例 每个worker类似一个迷你型的pytest执行器 worker会执行一个完整的test collection过程【收集所有测试用例的过程】 然后把测试用例的ids返回给master...第五步:测试用例的执行 workers 重写了 :pytest的默认实现是循环执行所有在test session这个对象里面收集到的测试用例 pytest_runtestloop 但是在xdist...worker会在执行最后一个测试项前等待master的更多指令 如果它收到了更多测试项, 那么就可以安全的执行 , 因为这时nextitem参数已经可以确定 pytest_runtest_protocol...=load) 当workers开始/结束执行时,会把测试结果返回给master,这样其他pytest hook比如: pytest_runtest_protocol 就可以正常执行 pytest_runtest_protocol

1K20

Python测试框架pytest(21)插件 - 单元测试覆盖率、随机执行用例

Python测试框架pytest(21) 插件 单元测试覆盖率、随机执行用例 目录 1、pytest-cov(单元测试覆盖率) 1.1、安装 1.2、示例 2、pytest-random-order(随机执行用例...4、生成html覆盖率报告 输入执行命令(参数 --cov --cov-report=html): pytest --cov --cov-report=html 运行结果: 执行完成后,会在项目的根目录下生成...运行结果: 指定运行src包下的my_status.py模块 2、pytest-random-order(随机执行用例) pytest 默认运行用例的顺序是按模块用例命名的 ASCII 编码顺序执行的...--random-order-bucket={global,package,module,class,parent,grandparent,none} 在指定的测试范围内进行随机测试。...命令行执行命令 pytest -v --random-order-seed=455773 运行结果: 根据随机种子,执行顺序与上一次相同。

1K20

Python测试框架pytest(22)插件 - pytest-xdist(分布式执行)

Python测试框架pytest(22) 插件 pytest-xdist(分布式执行) 目录 1、安装 2、示例 3、原理流程 4、解决:多进程运行次数 当测试用例非常多的时候,一条条按顺序执行测试用例...分布式测试的流程: 1、创建 worker (1)master 会在测试会话(test session)开始前产生一个或多个 worker; (2)master worker 之间是通过 execnet...2、收集测试用例 (1)每个 worker 类似一个迷你型的 pytest 执行器; (2)worker 会执行一个完整的 test collection 过程(收集所有测试用例的过程); (3)然后把测试用例的...3、master 检测 workers 收集到的测试用例集 (1)master 接收到所有 worker 收集测试用例集之后,master 会进行一些完整性检查,以确保所有 worker 都收集到一样的测试用例集...传给 hook; (5)worker 会在执行最后一个测试项前等待 master 的更多指令; (6)如果它收到了更多测试项, 那么就可以安全的执行 pytest_runtest_protocol,因为这时

1K20

使用Pytest创建一个Python测试自动化项目

它的语法简洁,易读且优雅–非常适合初学者专家。您可以想象的一切都只是一个导入。自然地,Python还是测试自动化的最好的语言。它的简洁性使测试人员可以将更多的精力放在测试上,而不必在代码上。...该框架处理测试用例结构,测试执行以及通过/失败结果报告。这是可以添加额外的程序包代码(例如Selenium WebDriver)的基础。 pytest是Python最好的测试框架之一。...测试用例是作为函数而不是类编写的。测试断言失败将与实际值一起报告。插件可以添加代码覆盖率,漂亮的报告并行执行。pytest也可以与DjangoFlask等其他框架集成。...让我们遵循以下约定:tests/ $ mkdir tests $ cd tests 创建一个 为我们的第一个测试命名的Python模块,并添加以下代码:test_math.py def test_addition...pytest是如何发现我们的测试的?按名称:pytest将搜索名为 的模块中命名测试函数 。有趣的是,pytest不需要任何测试目录中的文件。

1.4K30
领券