pytest笔记】的更多相关文章

-v 参数显示执行过程 测试覆盖率: ldy@ldy-D214:~/workspace/socai$ pipenv run pytest tests/unit/test_models.py --cov=app/models 运行测试:ldy@ldy-D214:~/workspace/socai$ pipenv run pytest tests/functional/test_category_views.py…
按照pytest使用笔记(二)把pytest+allure配置好后,现在在jenkins配置好,先实现手动构建(立个小目标) 一,安装jenkins插件 首页->系统管理->插件管理,从“可选插件”中勾选“Allure Jenkins Plugin”,点击“直接安装”按钮,安装完成 二,Allure Commandline 配置 首页->系统管理->全局工具配置,点击“Allure Commandline安装”按钮 设置项展开界面设置内容,与下图保持一致即可,如下: 三,Job配置…
pytest学习笔记(三)   接着上一篇的内容,这里主要讲下参数化,pytest很好的支持了测试函数中变量的参数化 一.pytest的参数化 1.通过命令行来实现参数化 文档中给了一个简单的例子, test_compute.py 的测试函数如下: # content of test_compute.py def test_compute(param1): assert param1 < 4 在conftest.py中添加两个函数,一个是添加参数,一个是根据参数生成测试 # content of…
前言 在之前介绍fixture的文章中,我们使用到了conftest.py文件,那么conftest.py文件到底该如何使用呢,下面我们就来详细了解一下conftest.py文件的特点和使用方法吧 什么是conftest.py 我们之前了解了fixture,fixture可以直接定义在测试脚本中,但是有些时候,我们希望一个fixture可以被复用,这就需要对fixture进行集中管理,Pytest使用文件conftest.py集中管理固件.在复杂的项目中,可以在不同的目录层级定义conftest…
前言 在pytest中,我们可以使用mark进行用例的自定义标记,通过不同的标记实现不同的运行策略 比如我们可以标记哪些用例是生产环境执行的,哪些用例是测试环境执行的,在运行代码的时候指定对应的mark即可 实例说明 举个 # test_demo.py import pytest @pytest.mark.production def test_production(): print("生产环境测试用例") @pytest.mark.dev def test_dev1(): print…
前言 在实际的测试中,我们经常会遇到需要跳过某些测试用例的情况,pytest提供了skip和ifskip来跳过测试 下面我们就来通过一些例子看看skip和ifskip具体如何使用吧 skip的用法 使用示例:@pytest.mark.skip(reason="跳过的原因,会在执行结果中打印") 标记在测试函数中 举个 import pytest def test_1(): print("测试用例1") @pytest.mark.skip(reason="没…
前言 我们在平时做测试的时候,经常会遇到一些偶现的bug,通常我们会多次执行来复现此类bug,那么在自动化测试的时候,如何多次运行某个或某些用例呢,我们可以使用pytest-repeat这个插件来帮助我们重复的去执行用例 pytest-repeat插件 插件安装 pip命令安装 pip install pytest-repeat 使用实例 上代码 def test_demo1(): print("执行测试用例1") def test_demo2(): print("执行测试用…
前言 pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行. 常用的配置项 marks 作用:测试用例中添加了自定义标记( @pytest.mark.xxx 装饰器),如果不添加marks选项的话,就会报warnings 格式:list列表类型 写法: [pytest] # 自定义标记说明 markers = tencent: tencent toutiao: toutiao alibaba: alibaba xfail…
接着上一篇的内容,这里主要讲下参数化,pytest很好的支持了测试函数中变量的参数化 一.pytest的参数化 1.通过命令行来实现参数化 文档中给了一个简单的例子, test_compute.py 的测试函数如下: # content of test_compute.py def test_compute(param1): assert param1 < 4 在conftest.py中添加两个函数,一个是添加参数,一个是根据参数生成测试 # content of conftest.py def…
继续文档的第二章 (一)pytest中可以在命令行中静态/动态添加option,这里没什么好讲的,略过... 这里面主要讲下如何试用skip/xfail,还有incremental(包含一些列的测试步骤,如果某一步出错后,该步骤之后的所有步骤都没有任何意义了,xfail掉) 1)首先来看下怎样通过命令行来skip一些case,首先要添加个option,然后使用@pytest.mark.skipif( condition) , xfail使用@pytest.mark.xfail( conditio…
From: https://blog.csdn.net/gaowg11/article/details/54910974 由于对测试框架了解比较少,所以最近看了下pytest测试框架,对学习心得做个记录. 学习的教程是刘春明老师的文章 http://blog.csdn.net/liuchunming033/article/details/46501653 1.pytest简介 pytest是Python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框…
1.官方文档上说pytest兼容unittest时,不支持setUpModule 和 tearDownModule,但实际验证是可以的. 验证的场景是py文件中,只有一个测试类, 经验证有多个测试类,使用pytest时,setUpModule 和 tearDownModule 也不生效. 所以不知道不支持的是什么场景? 2.生成html报告 安装pytest-html 需要在cmd中执行命令:py.test test_class.py --html=./report.html 因为同时存在pyt…
组织分层: 1.普通方式,和unittest分层类似: setup_module()  # 通常放在类外 setup_class(cls) setup(self) teardown(self) teardown_class(cls) teardown_module() 2.pytest特有的分层方式 @pytest.fixture() 装饰fixture @pytest.mark.usefixtures() 使用fixture 例一: @pytest.fixture() # 默认scope是fu…
使用环境及预置条件 开发工具:pycharm 操作系统:win10 开发语言:python3.6 使用库:pytest4.0,pytest-allure-adaptor 注意不要安装allure-pytest该库,否则会出现option names {'alluredir'} already added错误 1,安装PowerShell (win10自带有,其他系统自行安装) 2,打开PowerShell,输入命令: set-executionpolicy remotesigned -s cu…
使用环境及预置条件:pycharm+win10+python3.6+pytest 1,创建示范的测试功能脚本,另存为test_sample.py,代码如下: # test_sample.py def func(x): return x + 1 def test_answer(): assert func(3) == 5 def test_answer1(): assert func(3) == 4 2,使用M-DOS进入test_sample.py脚本存放的同级目录下,输入pytest,显示结果…
前言 官方文档关于fixture功能的解释如下: The purpose of test fixtures is to provide a fixed baseline upon which tests can reliably and repeatedly execute. pytest fixtures offer dramatic improvements over the classic xUnit style of setup/teardown functions: fixtures…
前言 之前做自动化测试的时候,用的测试框架为Python自带的unittest框架,随着工作的深入,发现了另外一个框架就是pytest (官方地址文档http://www.pytest.org/en/latest/),这个框架支持的插件比较多,相对unittest来说,使用起来更加的强大,更加的方便,从今天开始就一步步学习pytest 简介 The pytest framework makes it easy to write small tests, yet scales to support…
简介 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高.并且pytest兼容unittest的用例,支持的插件也更多 安装 pip install pytest 简单上手,创建个test_sample.py文件 def func(x): return x + 1 def test_answer(): assert func(3) == 5 运行测试,直接在当前文件夹运行pytest collecte…
这两天在学习pytest,之前有小用到pytest,觉得这个测试框架很灵巧,用在实现接口自动化(pytest+requests)非常的轻便,然后很有兴致的决定学习下,然后又发现了pytest-selenium这么个神奇的东东,加上pytest-rerunfailures失败case自动执行,pytest-html完美测试报告生成,完全就解决了我的selenium测试中的难点,仔细研读了下pytest的英文文档,发现这个框架和丰富的plugins真的很好用,所以决心仔细研究下pytest,下面就开…
前面介绍的是在cmd中执行pytest,平常我们一般都是通过编译器(如pycharm)来编写用例的,写完用例后,需要调试看看是否能运行,如果每次都切换到cmd中执行,太麻烦. 因此,这一节来说下怎么在代码中执行pytest. 需要先导入pytest,并通过pytest.main()来执行. import pytest class TestClass(object): def test_one(self): x = "this" assert 'h' in x def test_two(…
在用pytest执行用例时,可以按照如下场景来执行 1.执行目录及其子目录下的所有用例 pytest filename\ 2.执行某一个py文件下的用例 pytest filename.py 3.-k 按关键字匹配 pytest test_class.py -k "TestClass and not two" 运行test_class.py中的TestClass.test_one,不运行TestClass.test_two. 4.按节点运行 每个收集的测试都分配了一个唯一的nodeid…
简介 pytest是python的一个单元测试框架,类似于unittest,相对unittest来说,pytest使用更简单,功能更强大. 安装 pip3 install -U pytest 查看版本 pytest --version 简单的测试 1.新建一个文件test_sample.py,编写如下测试用例 def func(x): return x + 1 def test_answer(): assert func(3) == 5 打开cmd窗口,进入到test_sample.py所在的文…
#!/usr/local/bin/python3 # -*- coding: utf-8 -*- import pytest __author__ = "Carp-Li" __date__ = "2020/10/10" class TestClassCase: @pytest.mark.parametrize("phone,code,msg", [ ("13250813191", "1234", "…
一.pytest框架中使用setup.teardown.更灵活按照用例级别可以分为以下几类: 1.模块级:(setup_module.teardown_module)在模块始末调用 2.函数级:(setup_function.teardown_function)在函数始末调用 在类外部 3.类级:(setup_class.teardown_class)在类始末调用 在类中 4.方法级:(setup_method.teardown_method)在方法始末调用 在类中 5.方法级:(setup.t…
前言 我们在做自动化的时候,常常有这样的需求: 执行每一条用例时,都重新启动一次浏览器 每一条用例执行结束时,都清除测试数据 在unittest中,我们可以使用 setUp() 和 tearDown() 两个方法来实现以上需求,其中 setUp() 方法用于初始化测试固件:而 tearDown() 方法用于销毁测试固件.程序会在运行每个测试用例(以 test_ 开头的方法)之前自动执行 setUp() 方法来初始化测试固件,井在每个测试用例(以 test_ 开头的方法)运行完成之后自动执行 te…
前言 个人认为,fixture是pytest最精髓的地方,也是学习pytest必会的知识点. fixture用途 用于执行测试前后的初始化操作,比如打开浏览器.准备测试数据.清除之前的测试数据等等 用于测试用例的前置条件,比如UI自动化的登录操作,读取config参数等 用于测试用例之间的参数和数据传递 fixture优势 firture相对于unittest中的setup和teardown来说应该有以下几点优势 命名方式更加的灵活,不局限于setup和teardown conftest.py…
前言 pytest作为单元测试框架,自然少不了断言功能,用过unittest的人都知道,在unittest中有丰富的断言方法,比如assertEqual().assertIn().assertTrue().assertIs()等等,而在pytest中,并没有提供特殊的断言方法,而是直接使用python自带的关键字assert来进行断言操作. 下面我们就通过一些来看看在pytest中是如何进行断言操作的吧 常用断言 Pytest里的断言实际上就是Python中的assert断言方法,常用断言方法如…
前言 我们在实际自动化测试中,某些测试用例是无法通过一组测试数据来达到验证效果的,所以需要通过参数化来传递多组数据 在unittest中,我们可以使用第三方库parameterized来对数据进行参数化,从而实现数据驱动测试 而在pytest中,也提供了功能强大的@pytest.mark.parametrize装饰器来实现数据参数化 Pytest参数化的方式 pytest有三种传参方式 @pytest.mark.parametrize() 通过装饰器方式进行参数化(最常使用) pytest.fi…
前言 在进行自动化测试的过程中,我们一定会有这样的需求:希望失败的用例可以自动重跑 在pytest中,提供了pytest-rerunfailures插件可以实现自动重跑的效果 插件安装 pip命令安装 pip install pytest-rerunfailures 使用实例 重新运行所有失败的用例 如果需要把所有失败的用例都重新运行,使用 --reruns 命令,并且制定要运行的最大次数 举个: class TestDemo(object): def setup_class(self): pr…
前言 在pytest中,如何生成html测试报告呢,pytest提供了pytest-html插件,可以帮助我们生成测试报告,当然,如果希望生成更加精美的测试报告,我们还可以使用allure生成报告,下面我们就来详细看看如何实现吧 pytest-html插件 插件安装 pip命令安装 pip install pytest-html 使用实例 使用方法很简单,在测试用例的目录下执行命令 pytest --html=reportname.html 即可 生成的报告效果如下: 合并css 使用上面的命令…