最近准备废弃之前用metersphere做的接口自动化,转战pytest了,先来分享下最近接触到的一个插件:pytest-assume。...在使用这个插件之前,如果一个用例里面有多个断言的话,前面的断言失败了,就不会去执行后面的断言: 接下来,看看如何使用pytest-assume插件来实现多重断言。...插件安装: `pip install pytest-assume -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com`...or `pip install pytest-assume` 使用demo: import pytest @pytest.mark.parametrize(('x', 'y'), [...> y) pytest.assume(x < y) 代码运行后,可以看到就算前面的断言失败了的话,后面的断言也会继续执行: 另外一种等价的写法: import pytest from pytest
接下来用 pytest-lazy-fixture 插件可以直接在测试用例中参数化时 pytest.mark.parametrize 中使用 fixture pytest-lazy-fixture 插件...pytest-lazy-fixture 插件是为了解决测试用例中用 @pytest.mark.parametrize 参数化调用fixture的问题,先pip安装 pip install pytest-lazy-fixture...目前使用的版本是 0.6.3 >pip show pytest-lazy-fixture Name: pytest-lazy-fixture Version: 0.6.3 Summary: It helps...to use fixtures in pytest.mark.parametrize Home-page: https://github.com/tvorog/pytest-lazy-fixture...return 1 @pytest.fixture def two(): return 2 @pytest.fixture(params=[ pytest.lazy_fixture('
Python测试框架pytest(21) 插件 单元测试覆盖率、随机执行用例 目录 1、pytest-cov(单元测试覆盖率) 1.1、安装 1.2、示例 2、pytest-random-order(随机执行用例...) 2.1、安装 2.2、参数 2.3、示例 2.4、禁用随机 2.5、禁用插件 1、pytest-cov(单元测试覆盖率) 在做单元测试时,一般都会参考代码覆盖率来衡量代码的质量。...pytest-cov 插件可用来统计单元测试覆盖率。...pytest-random-order 插件可打乱用例的执行顺序,进行随机执行。 该插件允许用户控制他们想要引入的随机性级别并禁用对测试子集的重新排序。...2.5、禁用插件 如果不想使用此插件,输入禁用插件的命令 pytest -p no:random_order 注意:默认情况下禁用随机化。
接着上一篇pytest测试框架的分享 这次主要分享的是pytest常用的插件,用好这些插件,对我们做自动化测试会起很好的作用。...pytest用到用例失败重跑的插件是pytest-rerunfailures pip install pytest-rerunfailures 代码示例如下: #!...assii大小进行执行的,但是有时候我们需要改变执行顺序才能符合我们的预期,我们可以通过pytest-ordering插件来更改执行顺序 pip install pytest-ordering 示例代码...用例比较多的时候,按顺序执行测试用例花费的时间比较长,我们可以并发执行测试用例,并发执行的插件有两个比较常用的 pytest-parallel pytest-xdist pytest-parallel...3个线程 pytest-xdist pip install pytest-xdist #运行的命令 pytest -n x x是线程数 四、测试报告插件 pytest-html是pytest常用的一个测试报告插件
Pytest测试框架另外一个优秀的特性是提供了非常丰富的第三方插件,本文章详细地阐述下这些第三方插件。...pytest-html 使用pytest-html插件可以生成HTML的测试报告,一般而言我们会把测试存储在测试工程根目录下的report文件夹下,下面详细的演示下详细的生成HTML测试报告的命令,具体如下...pytest-returnfailures pytest-returnfailures插件主要指的是针对执行的测试用例再次执行的次数,也可以把它理解为它具备重试的机制。...pytest-timeout pytest-timeout插件指的是设置被执行的测试用例执行的时间,如果被执行的TestCase执行的耗时在指定的时间范围内,那么认为是OK的,如果超过指定的时间范围,...Pytest测试框架提供的第三方插件是非常丰富的,下个文章详细的介绍下分布式执行的策略与注意事项。感谢您的阅读!
在前面的文章体系中介绍了Pytest的案例实战和插件应用,今天主要演示Pytest框架的selenium插件。...webdriver是主流的UI自动化测试框架,在Pytest的测试框架中也提供了对webdriver的支持,安装的命令为: pip3 install pytest-selenium,如下图所示: ?...coding:utf-8 import pytest def test_baidu_title(selenium): selenium.get('http://www.baidu.com/')...('kw') so.send_keys('无涯') assert so.get_attribute('value')=='无涯' 编写如上的代码后,执行如下命令,执行如上的测试脚本: pytest...coding:utf-8 import pytest @pytest.fixture() def init(selenium): selenium.get('http://www.baidu.com
Python测试框架pytest(23) 插件 pytest-picked、pytest-lazy-fixture 目录 1、pytest-picked(运行未提交的git用例) 1.1、安装 1.2、...参数 1.3、用法 1.4、示例 2、pytest-lazy-fixture(在pytest.mark.parametrize中使用fixture) 2.1、安装 2.2、示例 1、pytest-picked...pytest-picked 插件可以实现只执行未提交到 git 仓库里的测试用例。...--picked pytest --picked=first pytest --picked --mode=branch pytest --picked --mode=unstaged #...2、pytest-lazy-fixture pytest-lazy-fixture 插件,解决在测试用例中使用 @pytest.mark.parametrize 参数化时调用 fixture。
pytest-cov 先命令行安装 pytest-cov 2.10.1版本 pip install pytest-cov==2.10.1 环境要求: 1.python3.6.6 版本 备注:其它版本没试过...,甚至,用代码覆盖率来考核测试任务完成情况, 比如,代码覆盖率必须达到80%或 90%。...单元测试的方法有:语句覆盖/判定覆盖/条件覆盖/路径覆盖 先看一个简单的案例,前端实现一个功能,根据接口返回的不同code值,判断支付的结果,给用户返回提示友好的信息 前端实现功能:根据接口返回的不同code...生成html的报告 pytest —cov —cov-report=html 执行完成,在项目根目录会生成 htmlcov 目录 ? 运行 index.html 文件查看代码覆盖率 ?...想覆盖率达到100%,那得再继续写用例,让每个if分支情况都覆盖到 指定被测代码 如果我们想指定执行项目里面的某个模块,可以通过—cov=模块 来运行 pytest —cov=src >pytest -
前言 在运行用例的时候,我们可能出于某种需求,不想加载某个插件,比如我通过pip安装了一个pytest的插件。 后续我想修改插件的一些代码,于是放到项目本地,自己去注册本地插件了。...查看激活的插件 我们可以通过 --trace-config 命令插件当前运行环境中的相关插件与已激活的插件 pytest --trace-config 将获得一个扩展的测试头,其中显示激活的插件及其名称...\pytest_base_url\plugin.py 禁用插件 使用 -p 来禁用插件, 在命令行执行时如下示例 pytest -p no:NAME NAME 就是插件的名称,这意味着任何后续激活/加载命名插件的尝试都将无法工作...或者在pytest.ini 中配置 [pytest] addopts = -p no:NAME 查看插件名称 我通过 pip 安装了 pytest-base-url 插件 pytest-base-url...如果需要禁用此插件,先需要知道插件名称,注意插件名称不是你安装的名称 方法一:找到插件名称的另一种方法是查看插件的源代码。
在Pytest的测试框架中,有很丰富的插件,还是接着之前的案例继续延伸来说这部分,今天主要介绍基于Pytest测试框架的测试报告部分,其实在Pytest测试框架里面,测试报告可以使用html...的插件,也可以使用allure来生成测试报告,关于allure在使用会在下一个文章中详细的介绍它的使用。...首先来安装基于HTML测试报告的插件,插件名称为pytest-html,安装的命令为:pip3 install pytest-html,安装成功后,就会显示如下的信息: Installing collected...packages: pytest-html Successfully installed pytest-html-2.0.1 编写测试案例,以测试常用的网站为案例,具体使用的测试源码如下:.../usr/bin/python3 #coding:utf-8 import pytest import yaml import os import requests import json
在本文中,我们介绍如何安装和使用pytest第三方插件,对于如何自己开发pytest插件,我们后续写文继续更新。...通过python自带的pip命令,我们可以很轻易的安装、卸载pytest第三方插件: 安装pytest插件命令 pip install pytest-plugin_name 卸载pytest插件命令 pip...uninstall pytest-plugin_name 注:plugin_name为pytest第三方插件名称 如果第三方pytest插件安装好了,pytest将会自动的发现和加载该插件,不需要你做过多的操作...覆盖率报告,兼容分布式测试 pytest-xdist: 将测试分发到cpu和远程主机,以沙盒模式运行(允许分段错误存活),以loop on failing模式运行,在文件更改时自动重新运行失败的测试...我们可以通过下面的命令禁用pytest插件。 pytest -p no:NAME NAME为插件名称 注: 对于某些我们不需要的插件,但又不想卸载,那我们可以使用这个命令。
前言 前面一篇已经学会了使用hook函数改变pytest运行的结果,代码写在conftest.py文件,实际上就是本地的插件了。...插件开发 先新建一个工程,工程名称就是插件名称,一般以pytest-开头命名,目录结构如下 ?...,具体能实现什么功能 pytest_change_report.py 也就是之前conftest.py里面写的hook函数实现的功能 tests 用于测试本插件的相关功能,属于自测的内容 tests/...', ] } ) pytest_change_report.py 插件的核心功能,也就是之前在conftest.py用hook函数实现的功能。...当插件功能实现完成后,需要在tests目录测试自己写的插件 tests/conftest.py 文件开启pytester,专门用于测试插件的 '''pytester is needed for testing
$ pytest --reruns 5 添加重新运行的延时 要在两次重试之间添加延迟时间,请使用--reruns-delay命令行选项,其中包含您希望在下一次测试重试开始之前等待的秒数: $ pytest...(reruns=5, reruns_delay=1) def test_example(): print(1/0) 输出示例 这是使用--reruns 2和-r aR运行时插件提供的输出示例...- test2.py:28 test_example 2 rerun 注意事项 如果指定了用例的重新运行次数,则在命令行添加–reruns对这些用例是不会生效的 兼容性 这个插件可能不与类...该插件与pytest-xdist的–looponfail标志不兼容。...该插件与核心–pdb标志不兼容 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/166336.html原文链接:https://javaforall.cn
前言 本节讨论安装和使用第三方插件 插件安装 安装第三方插件很容易 pip : pip install pytest-NAME 卸载插件 pip uninstall pytest-NAME 如果安装了插件...下面是一些流行插件的注释列表: pytest-django: 编写测试 django 应用程序,使用pytest集成。...pytest-cov : 覆盖率报告,与分布式测试兼容 pytest-xdist: 要将测试分发到CPU和远程主机,要在允许分段错误存活的盒装模式下运行,要在循环失败模式下运行,要自动对文件更改重新运行失败的测试...找出哪些插件处于活动状态 如果您想知道哪些插件在您的环境中处于活动状态,可以键入: pytest --trace-config 将得到一个扩展的测试头,显示激活的插件及其名称。...它还将打印本地插件 conftest.py 文件加载时 按名称停用/注销插件 您可以阻止插件加载或注销它们: pytest -p no:NAME 这意味着任何后续的激活/加载命名插件的尝试都将不起作用。
1.下载 pytest框架有官方的报告pip install pytest-html 下载成功,那我们怎么使用呢?...2.使用 可以直接在配置文件里使用 在 pytest 配置文件中, 增加命令选项 选项: --html=....那如果我们不想要css文件怎么弄 在命令后添加--self-contained-html 在看生成结果: 已经没有css文件了 4.生成完美报告 上边我们的报告虽然生成了,但是看不太懂,所以需要我们把报告插件优化一下...这边我们选用的是,把别人已经写好的报告直接拿过来 看下我们上边下载的pytest-html插件 下载别人写好的插件:https://github.com/13691579846/pytest-html...将下载后的的pytest-html插件放入到site-packages包中覆盖之前的 然后我们再次生成报告查看一下 比原生的好了很多,但是还是还丑,还可以根据conftest.py文件接着优化,但是我们后边会选用
如果你还想从头学起Pytest,可以看看这个系列的文章哦!...https://www.cnblogs.com/poloyy/category/1690628.html 环境前提 以下先决条件才能使用pytest-rerunfailures Python 3.5,...最高 3.8, or PyPy3 pytest 5.0或更高版本 安装插件 pip3 install pytest-rerunfailures -i http://pypi.douban.com/simple...,需要指定最大重新运行的次数 小栗子 import pytest @pytest.mark.flaky(reruns=5) def test_example(): import random...() 该插件与pytest-xdist的 标志不兼容 --looponfail 该插件与核心标志不兼容 --pdb
Python测试框架pytest(22) 插件 pytest-xdist(分布式执行) 目录 1、安装 2、示例 3、原理和流程 4、解决:多进程运行次数 当测试用例非常多的时候,一条条按顺序执行测试用例...这时候就可以用到 pytest-xdist,让自动化测试用例可以分布式执行,从而大大节省测试时间。 pytest-xdist 是属于进程级别的并发。...pytest-xdist 通过一些独特的测试执行模式扩展了 pytest: (1)测试运行并行化:如果有多个CPU或主机,则可以将它们用于组合的测试运行。...(3)跨平台覆盖:可以指定不同的 Python 解释器或不同的平台,并在所有这些平台上并行运行测试。...4、pytest-xdist 和 pytest-html 联合使用 打开命令行,在该项目根目录下,输入执行命令 pytest -s -n auto --html=report.html --self-contained-html
如果你还想从头学起Pytest,可以看看这个系列的文章哦!...https://www.cnblogs.com/poloyy/category/1690628.html 前言 pytest中可以用python的assert断言,也可以写多个断言,但一个失败,后面的断言将不再执行...安装插件 pip3 install pytest-assume -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com assert...结论 可以看到,第二行断言失败之后,后面的断言也不会执行,包括正常的代码 pytest.assume多重断言 def test_add2(): pytest.assume(1 + 4 == 5)...pytest.assume(1 + 3 == 3) pytest.assume(2 + 5 == 7) pytest.assume(2 + 5 == 9) print(
使用pip安装pytest-repeat pip install pytest-repeat pytest-repeat 基本使用 test_rp.py 示例内容 def test_a1():...print("a1-------") def test_a2(): print("a2------") 命令行带参数--count=3执行,n是重复次数 pytest --count=3 test_rp.py...--repeat-scope参数类似于pytest fixture的scope参数,—repeat-scope也可以设置参数:session , module,class或者function(默认值)...--count=3 --repeat-scope=module test_rp.py mark 标记单个用例重复执行 import pytest def test_a1(): print("...a1-------") @pytest.mark.repeat(3) def test_a2(): print("a2------") 在 yaml 用例中重复运行 test_rp.yml文件内容
(后续文章再学习)2 环境配置2.1 allure-pytest插件安装pip3 install allure-pytestC:\Users\Administrator>pip3 install allure-pytestLooking...(from pytest>=4.5.0->allure-pytest) (1.1.1)Requirement already satisfied: py>=1.8.2 in d:\python37\lib...\site-packages (from pytest>=4.5.0->allure-pytest) (1.10.0)Requirement already satisfied: packaging in...d:\python37\lib\site-packages (from pytest>=4.5.0->allure-pytest) (20.8)Requirement already satisfied...(from packaging->pytest>=4.5.0->allure-pytest) (2.4.7)2.2 pytest安装pip3 install pytest这个不多说了,之前已经安装过了
领取专属 10元无门槛券
手把手带您无忧上云