前言 本节讨论安装和使用第三方插件 插件安装 安装第三方插件很容易 pip : pip install pytest-NAME 卸载插件 pip uninstall pytest-NAME 如果安装了插件...下面是一些流行插件的注释列表: pytest-django: 编写测试 django 应用程序,使用pytest集成。...在测试模块中加载插件 您可以在conftest文件中 使用 pytest_plugins : pytest_plugins = ("myapp.testsupport.myplugin",) 当加载测试模块或...名字 pytest_plugins 是保留的,不应用作自定义插件模块的名称。...找出哪些插件处于活动状态 如果您想知道哪些插件在您的环境中处于活动状态,可以键入: pytest --trace-config 将得到一个扩展的测试头,显示激活的插件及其名称。
最近准备废弃之前用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测试框架的分享 这次主要分享的是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,可以看看这个系列的文章哦!...最高 3.8, or PyPy3 pytest 5.0或更高版本 安装插件 pip3 install pytest-rerunfailures -i http://pypi.douban.com/simple...要重新运行所有测试失败,使用 --reruns 命令行选项,并指定要运行测试的最大次数: pytest --reruns 5 -s 知识点 运行失败的fixture或setup_class也将重新执行...添加重新运行的延时 要在两次重试之间增加延迟时间,使用 --reruns-delay 命令行选项,指定下次测试重新开始之前等待的秒数 pytest --reruns 5 --reruns-delay...fixture装饰器一起使用: @pytest.fixture() 该插件与pytest-xdist的 标志不兼容 --looponfail 该插件与核心标志不兼容 --pdb
Pytest测试框架另外一个优秀的特性是提供了非常丰富的第三方插件,本文章详细地阐述下这些第三方插件。...pytest-html 使用pytest-html插件可以生成HTML的测试报告,一般而言我们会把测试存储在测试工程根目录下的report文件夹下,下面详细的演示下详细的生成HTML测试报告的命令,具体如下...就会显示失败,使用该插件执行的命令为“--timeout”,执行命令具体如下。...这个插件一般建议慎重使用,实际工作中被执行的TestCase耗时都会在几秒,如果没有明确的要求,只要执行的耗时在可以接受的范围内,都是可以的。...如果确实有明确的要求,比如被执行的每个TestCas执行耗时不能超过1秒,可以使用该插件来满足这个需求。
如果你还想从头学起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)...结论 可以看到,第二行即使断言失败,后面的断言还是会继续执行 这有助于我们分析和查看到底一共有哪些断言是失败的 而且最后的代码也还会正常执行,比直接用assert更高效
在前面的文章体系中介绍了Pytest的案例实战和插件应用,今天主要演示Pytest框架的selenium插件。...webdriver是主流的UI自动化测试框架,在Pytest的测试框架中也提供了对webdriver的支持,安装的命令为: pip3 install pytest-selenium,如下图所示: ?...,执行如下命令,执行如上的测试脚本: pytest -v test_ui.py(#python模块文件) --driver Chrome 执行命令后的输出信息: ?...在unittest的测试框架中存在测试固件,也就是初始化以及清理的操作,在Pytest也可以通过fixture来完成这样的一个效果,让测试脚本更加关注于具体的业务流程和逻辑操作,而不需要关心打开浏览器这样的一个操作...,在unittest的测试框架中其实利用类的继承思想,也是可以很好的对测试固件setUp()和tearDown()进行很好的分离,不过在Pytest的测试框架中,这样的一个过程更加简单和直接,几行代码就能够很轻松的搞定
前言 测试用例参数化的时候,使用 pytest.mark.parametrize 参数化传测试数据,如果我们想引用前面 不同fixture 返回的数据当测试用例的入参,前面一篇用fixture 参数化...接下来用 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...Required-by: parametrize 使用示例 参数化的时候,其中一些测试数据,来源于前面的 fixture import pytest # 作者-上海悠悠 QQ交流群:717225969
(后续文章再学习)2 环境配置2.1 allure-pytest插件安装pip3 install allure-pytestC:\Users\Administrator>pip3 install allure-pytestLooking...2.3 allure文件下载下载地址:https://github.com/allure-framework/allure2/releases;allure是一个命令行工具;图片往下找,找到下载链接,这里使用的...,比如:pytest -n auto --alluredir=allure我只运行以上代码,所以我指定了要运行的脚本为:test_xxx.py,报告存放路径在当前脚本的路径:pytest -n auto...,生成一个allure的文件夹:图片可以看到有很多文件,我们需要使用allure命令来显示测试报告:图片allure serve allure(venv) F:\pytest_study\test_case...Press to exit使用以上命令会自动打开报告,如下:图片4.4 指定报告生成的端口上边的运行方式,生成的端口是自动的随机的,那如何生成指定端口呢?
如果你还想从头学起Pytest,可以看看这个系列的文章哦!...结合之前讲到的失败重跑、输出html报告插件来敲命令行 两种方式皆可,等号或空格 count=2 count 2 pytest --html=report.html --self-contained-html...如果需要验证偶现问题,可以一次又一次地运行相同的测试直到失败,这个插件将很有用 可以将pytest的 选项与pytest-repeat结合使用,以强制测试运行程序在第一次失败时停止 -x py.test...@pytest.mark.repeat(count) 如果要在代码中将某些测试用例标记为执行重复多次,可以使用 @pytest.mark.repeat(count) @pytest.mark.repeat...兼容性问题 pytest-repeat不能与unittest.TestCase测试类一起使用。无论--count设置多少,这些测试始终仅运行一次,并显示警告
) 用例之间是独立的,用例之间没有依赖关系,用例可以完全独立运行【独立运行】 用例执行没有顺序,随机顺序都能正常执行【随机执行】 每个用例都能重复运行,运行结果不会影响其他用例【不影响其他用例】 插件安装...这样可以加快开发速度或使用远程计算机的特殊资源。 --looponfail:在子进程中重复运行测试。 每次运行之后,pytest都会等到项目中的文件更改后再运行之前失败的测试。...可以看到,执行一条用例大概1s(因为每个用例都加了 sleep(1) ),一共30条用例,总共运行30s;那么如果有1000条用例,执行时间就真的是1000s 使用分布式测试的命令和所需执行时间 pytest...知识点 可以看到,最终运行时间只需要6s,我的电脑是真6核,假12核 -n auto:可以自动检测到系统的CPU核数;从测试结果来看,检测到的是逻辑处理器的数量,即假12核 使用auto等于利用了所有CPU...虽然pytest-xdist没有内置的支持来确保会话范围的夹具仅执行一次,但是可以通过使用锁定文件进行进程间通信来实现。
前言 在运行用例的时候,我们可能出于某种需求,不想加载某个插件,比如我通过pip安装了一个pytest的插件。 后续我想修改插件的一些代码,于是放到项目本地,自己去注册本地插件了。...这样就需要禁用 pip 安装的那个插件。...查看激活的插件 我们可以通过 --trace-config 命令插件当前运行环境中的相关插件与已激活的插件 pytest --trace-config 将获得一个扩展的测试头,其中显示激活的插件及其名称...\pytest_base_url\plugin.py 禁用插件 使用 -p 来禁用插件, 在命令行执行时如下示例 pytest -p no:NAME NAME 就是插件的名称,这意味着任何后续激活/加载命名插件的尝试都将无法工作...如果需要禁用此插件,先需要知道插件名称,注意插件名称不是你安装的名称 方法一:找到插件名称的另一种方法是查看插件的源代码。
如果你还想从头学起Pytest,可以看看这个系列的文章哦!...https://www.cnblogs.com/poloyy/category/1690628.html 环境前提 Python3.6+ 安装插件 pip3 install pytest-html -i...http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 快速入门 pytest --html=report.html 会在当前目录下创建一个...report.html的测试报告 合并CSS 上面命令生成的报告,css是独立的,分享报告的时候样式会丢失,为了更好的分享发邮件展示报告,可以把css样式合并到html里 pytest --html=report.html...--self-contained-html 注意事项 在将文件或链接添加到独立报告时,插件会发出warnings; 在html测试报告中可能无法按预期显示文件或链接
如果你还想从头学起Pytest,可以看看这个系列的文章哦!...对于管理层来说,测试报告当然是越直观、简洁、数据清晰越好,而Allure就满足以上这么多点,而且很好的和pytest集成了 相比于pytest-html来说,Allure的报告真的是十全十美鸭!!...唯一不足的就是,拓展功能需要在测试用例集上加装饰器 安装插件 pip3 install allure-pytest -i http://pypi.douban.com/simple/ --trusted-host...====") 最外层的test_1.py import pytest @pytest.mark.parametrize("n", list(range(5))) def test_get_info(...要在测试完成后查看实际报告,需要使用Allure命令行来让测试结果生成报告 allure serve allure 然后就会自动在默认浏览器中显示生成的报告 ?
安装: pip3 install pytest-rerunfailures 重新运行所有失败用例 要重新运行所有测试失败的用例,请使用--reruns命令行选项,并指定要运行测试的最大次数:...$ pytest --reruns 5 添加重新运行的延时 要在两次重试之间添加延迟时间,请使用--reruns-delay命令行选项,其中包含您希望在下一次测试重试开始之前等待的秒数: $ pytest...这是使用--reruns 2和-r aR运行时插件提供的输出示例 test2.py ⨯...,则在命令行添加–reruns对这些用例是不会生效的 兼容性 这个插件可能不与类,模块和封装级夹具一起使用。...该插件与pytest-xdist的–looponfail标志不兼容。
在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 编写测试案例,以测试常用的网站为案例,具体使用的测试源码如下:...,执行命令: pytest -v -s --html=report.html 执行如上的命令后,就会显示执行的结果信息以及生成对应的HTML测试报告,如下图所示: ?
在本文中,我们介绍如何安装和使用pytest第三方插件,对于如何自己开发pytest插件,我们后续写文继续更新。...通过python自带的pip命令,我们可以很轻易的安装、卸载pytest第三方插件: 安装pytest插件命令 pip install pytest-plugin_name 卸载pytest插件命令 pip...下面我们看一下一些常用的插件及介绍: pytest-django: 为django应用编写测试,使用pytest集成 Pytest-twisted: 为twisted应用编写测试 Pytest-cov:...根据官方的说明:并不建议在非根conftest.py文件中使用pytest_plugins变量来加载指定的插件,所以这种方式大家了解一下,不熟悉pytest底层机制的人,不建议使用。...我们可以通过下面的命令禁用pytest插件。 pytest -p no:NAME NAME为插件名称 注: 对于某些我们不需要的插件,但又不想卸载,那我们可以使用这个命令。
前言 前面一篇已经学会了使用hook函数改变pytest运行的结果,代码写在conftest.py文件,实际上就是本地的插件了。...当有一天你公司的小伙伴觉得你写的还不错,或者更多的小伙伴想要你这个功能,于是你就想着放到github上,写成一个插件,方便小伙伴使用pip去安装。...后者是下载源码包然后在本地安装,不会安装该包的相关依赖包 README.rst README 文档,告诉用户如何使用你的插件,具体能实现什么功能 pytest_change_report.py 也就是之前...cd到插件的项目目录,使用pip安装 pip install ....,这样你写的插件就能被其它小伙伴学习和使用了。
Python测试框架pytest(23) 插件 pytest-picked、pytest-lazy-fixture 目录 1、pytest-picked(运行未提交的git用例) 1.1、安装 1.2、...但是每次新增用例后,希望只执行未提交到 git 仓库里的用例。 pytest-picked 插件可以实现只执行未提交到 git 仓库里的测试用例。...1.1、安装 在命令行中运行以下命令进行安装: pip install pytest-picked 或者(使用国内的豆瓣源,数据会定期同步国外官网,速度快。)...运行结果:只运行新增的2个文件用例 2、使用参数(--picked=first) 命令行输入执行命令 pytest --picked=first 运行结果:首先运行修改后的测试文件,之后运行所有未修改的测试文件...2、pytest-lazy-fixture pytest-lazy-fixture 插件,解决在测试用例中使用 @pytest.mark.parametrize 参数化时调用 fixture。
1.下载 pytest框架有官方的报告pip install pytest-html 下载成功,那我们怎么使用呢?...2.使用 可以直接在配置文件里使用 在 pytest 配置文件中, 增加命令选项 选项: --html=....css文件,那如果我们不想要css文件怎么弄 在命令后添加--self-contained-html 在看生成结果: 已经没有css文件了 4.生成完美报告 上边我们的报告虽然生成了,但是看不太懂,...所以需要我们把报告插件优化一下 这边我们选用的是,把别人已经写好的报告直接拿过来 看下我们上边下载的pytest-html插件 下载别人写好的插件:https://github.com/13691579846.../pytest-html 将下载后的的pytest-html插件放入到site-packages包中覆盖之前的 然后我们再次生成报告查看一下 比原生的好了很多,但是还是还丑,还可以根据conftest.py
领取专属 10元无门槛券
手把手带您无忧上云