pytest框架(一)】的更多相关文章

本人之前写了一套基于unnitest框架的UI自动化框架,但是发现了pytest框架之后觉得unnitest太low,现在重头开始学pytest框架,一边学习一边记录,和大家分享,话不多说,那就先从pytest框架的精髓fixture说起吧! 简介: fixture区别于unnitest的传统单元测试(setup/teardown)有显著改进: 1.有独立的命名,并通过声明它们从测试函数.模块.类或整个项目中的使用来激活. 2.按模块化的方式实现,每个fixture都可以互相调用. 3.fixt…
前言: 之前通过重写unittest的初始化方法加入设备参数进行并发,实现了基于unittest的appium多设备并发,但是考虑到unittest的框架实在过于简陋,也不方便后期的Jenkins的持续集成,所以想换一个框架来使用. 那么通过调研,pyhon+pytest+allure 这套框架很不错,pytest是一个单元测试框架,他可以集成很多插件,包括出错重试,参数化,等.在此特别是基于他的allure插件,能够和Jenkins完美兼容,生成美观强大的测试报告. 改造思路: pytest框…
环境 python 3.7 由于3.0-3.5以下部分pytest可能有部分兼容问题安装建议2.7-2.9,3.5-最新 pip install pytest专属 pytest框架包 pip install  allure-pytest 专属allure的报告包后面会用到可以不安装这里 pip install pytest-html  pytest自己专属报告包 pip install pytest-rerunfailures 失败重跑包也是pytest专属 并发的也可以安下,利用多cpu运行调…
Pytest框架介绍.安装 pytest是python测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,功能更强大 pytest特征 1:断言提示信息更清楚 2:自动化加载函数与模块 3:支持运行由nose, unittest编写的测试case 4:支持py2.3,2.7,3.x 5:丰富的插件以及社区支持 6:支持参数化 7:支持失败重跑 8:支持多线程跑用例 9:支持分布式 pytest安装 pip安装,在cmd下面执行命令 pip ins…
背景知识,某次使用HTMLTestRunner的时候,发现一直都无法导出报告,后来查询资料发现了一些坑,现在整理一下来龙去脉. 一:pycharm默认的是pytest框架去执行unittest框架的测试用例 import unittest class AlienTest(unittest.TestCase): @classmethod def setUpClass(cls): print("TestCase start running ") def test_1_run(self):…
web自动化测试中,稳定性在整个测试运行中都至关重要,但不能保证测试脚本或者测试环境一直都能够稳定,它牵扯到诸多因素,在这里就不赘述,pytest框架相较于unittest的一大优势就在于拥有用例失败的重试机制,以此来应对环境不稳定问题或者是测试用例脚本的不稳定性问题. 一.安装 重运行机制使用到了pytest的插件,插件名称为:rerunfailures,要使用它,需要先安装此插件 pip install pytest-rerunfailures 二.使用方法 1.命令行参数形式 命令:pyt…
一.Pytest简介pytest是一个非常成熟的全功能的Python测试框架,主要有一下几个特点:1.简单灵活,容易上手,支持参数化2.能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium.appium等自动化测试,requests+pytest接口自动化测试3.pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如: pytest-selenium(集成selenium) pytest-html(完美html测试报告生成) pytest-rerunfailures(失…
Pytest框架 一.简介 pytest:基于unittest之上的单元测试框架 有什么特点? 自动发现测试模块和测试方法 断言更加方便,assert + 表达式,例如 assert 1 == 1 灵活运行指定的测试用例,标签化,适合回归.正向.冒烟.登录 (夹具)环境管理灵活.会话.模块,哪个用,哪个不用 丰富的插件,例如测试报告插件 和unittest兼容 安装 pip install pytest # 更新 pip install -U pytest # 只安装到当前用户 pip inst…
pytest框架的安装与使用 一,pytest了解 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高. 优点: 1.第一个优点肯定是简单,灵活,易上手 2.支持参数化,pytest直接使用@pytest.mark.parametrize装饰器 3.能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试.接口自动化测试(pytest+requests) 4.p…
问题描述: 使用pytest框架做接口自动化测试时,在测试用例所在的.py文件下使用pycharm的run功能可以正常跑用例,使用cmd运行窗口或Terminal则报下图中的错误: Hint: make sure your test modules/packages have valid Python names. 解决办法: 在要执行pytest 的项目根目录新建一个conftest.py文件,并添加以下几行代码,问题得到完美解决! import os import sys sys.path.…
pytest框架规则 测试文件以test_开头或者以_test结尾 测试类以Test开头,并且不能带有init方法 测试函数以test_开头 断言使用assert pytest框架运行用例 运行单个文件 运行多个文件 运行整个目录 import pytest if __name__=="__main__": # 运行单个文件,添加对应文件的路径,使用相对路径 pytest.main(['../test_requests/test_assert.py']) # ../ run_case目…
前言 大家都知道Python有自带的单元测试框架unittest,那为什么还要学习Pytest呢?先了解下Pytest优点 pytest: pytest是一个非常成熟的全功能的Python测试框架,是unittest框架的扩展,主要特点有以下几点: 1.简单灵活,非常方便的组织自动化测试用例: 2.支持参数化,可以细粒度地控制要测试的测试用例: 3.能够支持简单的单元测试和复杂的功能测试,比如web端selenium/移动端appnium等自动化测试.request接口自动化测试 4.pytes…
目录 1.什么是单元测试框架 2.单元测试框架主要做什么 3.单元测试框架和自动化测试框架有什么关系 4.Pytest测试框架说明 5.Pytest框架和Unittest框架区别 (1)Unittest (2)Pytest (3)区别 1.什么是单元测试框架 单元测试是指在软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试. 2.单元测试框架主要做什么 测试发现:从多个文件里面去找到我们需要的测试用例. 测试执行:按照一定的顺序和规则去执行测试用例,并生成结果. 测试判断:通过断…
目录 1.Pytest安装 2.Pytest常用插件 3.Pytest运行的第一个例子 4.Pytest框架的运行方式 5.在PyCharm中以Pytest的方式运行测试用例 1.Pytest安装 CMD命令窗口执行Pytest测试框架安装命令:pip install -U pytest (意思是如果没有安装,就进行安装,如果已安装就升级到最新版) 在CMD中检查Pytest测试框架是否安装成功:pytest –-version C:\Users\L>pytest --version pytes…
目录 1.Pytest参数介绍 2.Pytest框架用例命名规则 3.Pytest Exit Code说明 4.pytest.ini全局配置文件 5.Pytest执行测试用例的顺序 1.Pytest参数介绍 -v:打印用例执行的详细过程. -q:只显示整体测试结果.(显示简略过程) -s:用于显示输出调试信息,包括测试函数中print()函数输出的信息. -x,--exitfirst:在第一个错误或测试失败时立即退出. 示例:在第N个用例失败以后,结束测试执行. 第1次失败,就停止测试:pyte…
目录 1.setUp()和tearDown()函数介绍 2.setUp()和tearDown()函数作用 3.setUp()和tearDown()函数说明 4.示例 (1)方法级 (2)类级 (3)函数级 (4)模块级 1.setUp()和tearDown()函数介绍 之前学过Unittest测试框架,知道前置setup()函数和后置teardown()函数非常好用,在每次用例开始前和结束后都去执行一次. 当然还有更高级一点的setupClass()函数和teardownClass()函数,需配…
目录 1.Fixture装饰器的用途 2.Fixture参数说明 3.Fixture装饰器简单应用 4.yield执行后置函数 1.Fixture装饰器的用途 做测试前后的初始化设置,如测试数据准备,链接数据库,打开浏览器等这些操作都可以使用Fixture来实现. 测试用例的前置条件可以使用Fixture实现,比直接使用Pytest框架的setup()和teardown()函数更加灵活. Fixture是Pytest用于将测试前后进行预备,清理工作的代码分离出核心测试逻辑的一种机制! Fixtu…
目录 1.conftest.py文件介绍 2.conftest.py的注意事项 3.conftest.py的使用 4.不同位置conftest.py文件的优先级 5.conftest.py中Fixture(夹具)的作用域 6.总结 1.conftest.py文件介绍 conftest.py文件是Pytest框架里面一个很重要的东西,它可以在这个文件里面编写Fixture函数,这个Fixture函数的作用,就相当于Unittest框架里面的setup()前置函数和teardown()后置函数,虽然…
前言 pytest是一款强大的python自动化测试工具,可以胜任各种类型或者级别的软件测试工作.pytest提供了丰富的功能,包括assert重写,第三方插件,以及其他测试工具无法比拟的fixture模型.pytest是一个软件测试框架,是一款命令行工具,可以自动找到测试用例执行,并且回报测试结果.有丰富的基础库,可以大幅度提高用户编写测试用例的效率.具备扩展性,用户可以自己编写插件,或者安装第三方提供的插件.可以很容易地与其他工具集成到一起使用.比如持续集成,web自动化测试等. 下面列举了…
pytest 是 python 的一种单元测试框架,与python 自带的 unittest测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高.根据pytest 的官方网站介绍,它具有如下特点: 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考 能够支持简单的单元测试呾复杂的功能测试 支持参数化 执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的 case 标记成失败 支持重复执行(rerun)失败的 case 支持运行由 nose, unittest…
一.pytest的优势 pytest是基于unittest之上的单元测试框架,它的优势如下: 自动发现测试模块和测试方法 断言使用 assert + 表达式 可以设置测试会话级(session).模块级(module).类级(class).函数级(function)的fixture来共享测试用例的前置和后置 有丰富的插件库,目前已经700+,pytest插件地址:http://plugincompat.herokuapp.com/ 二.与unittest的对比 1.用例设计规则 unittest…
1.pytest介绍:基于unittest 之上的单元测试框架 1.1.自动发现测试模块和测试用例: unitest 需要添加用例,(泰斯特楼贷)加载器加载测试用例 pytest 只需要一条代码就可以 1.2.断言使用 assert + 表达: unitest 定义了所有的 断言方式 pytest  只需要使用一个关键字 assert + 表达式 就可以了,表达式为真则断言通过,表达式为假则断言失败 1.3.pytest 可以设置测试会话级.模块级.类级.函数级的 fixtures: 1.4.有…
一.pytest测试框架简介: pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点: 简单灵活,容易上手 支持参数化 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试.接口自动化测试(pytest+requests) pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium).pytest-html(完美html测试报告生成).pytest-rerunfailur…
pytest和unittest都是python中的测试框架,pytest相比unittest 更加的灵活,具体体现在 以下几点 1.写测试方法时不用继承类 2.前置后置放在一起 2.1如果是全局共享的前置,就会写在一个固定的文件中,(比如一个系统中打开浏览器,访问系统网址就是全局共享的前置)这个文件命名为conftest,其他的各个模块设计到的前置放在用例文件中 from selenium import webdriver import pytest from TestDatas import…
一.allure简介:一个轻量级的,灵活的,支持多语言,多平台的开源report框架 Allure基于标准的xUnit结果输出,但是添加了一些补充数据.任何报告都是通过两个步骤生成的.在测试执行期间(第一步),一个名为adapter的小库附加到测试框架中,将有关执行测试的信息保存到XML文件中.我们已经为流行的Java.PHP.Ruby.Python.Scala和c#测试框架提供了适配器.在生成报告(第二步)期间,XML文件被转换为HTML报告.这可以通过命令行工具.CI插件或构建工具来完成.…
pytest是什么 官方文档描述: pytest is a framework that makes building simple and scalable tests easy. Tests are expressive and readable-no boilerplate code required. Get started in minutes with a small unit test or complex functional test for your application…
目录 1.无条件跳过skip 2.有条件跳过skipif 3.练习 自动化测试执行过程中,我们常常出现这种情况:因为功能阻塞,未实现或者环境有问题等等原因,一些用例执行不了, 如果我们注释掉或删除掉这些测试用例,后面可能还要进行恢复操作,这时我们就可以配置跳过这些用例. Pytest测试框架中存在两个跳过测试的方法:skip和skipif . 1.无条件跳过skip skip方法为无条件跳过测试用例. 使用方法:@pytest.mark.skip标记在需要跳过的测试用例上. 2.有条件跳过ski…
Pytest失败重试就是,在执行一次测试脚本时,如果一个测试用例执行结果失败了,则重新执行该测试用例. 前提: Pytest测试框架失败重试需要下载pytest-rerunfailures插件. 安装方式:pip install pytest-rerunfailures. Pytest实现失败重试的方式: 方式一:在命令行或者main()函数中使用. pytest.main(['-vs','test_a.py','--reruns=2'])(这种方式没有实现成功,可能自己环境的问题) 或者: p…
目录 1.pytest-html插件 2.Allure测试报告 (1)Allure框架说明 (2)Allure框架的使用 1.pytest-html插件 Pytest可以通过命令行方式,生成xml/html格式的测试报告,并存储于用户指定路径. 需要用到pytest-html插件. 安装方式:执行命令pip install pytest-html. (1)插件使用方式: 命令格式:--html=用户路径/report.html 运行方式: main()函数方式: pytest.main(['--…
目录 1.Pytest参数化说明 2.Pytest参数化方式 3.parametrize装饰器参数说明 4.Pytest参数化(单个参数) 5.Pytest参数化(多个参数) 6.ids参数说明 1.Pytest参数化说明 软件测试中,输入相应值,检查期望值,是常见测试方法. 在自动化测试中,一个测试用例对应一个测试点,通常一组测试数据是无法完全覆盖测试范围的,所以需要参数化来传递多组数据. Unittest单元测试框架使用DDT进行数据驱动测试,Pytest是使用@pytest.mark.pa…