pytest
文章平均质量分 93
百度测试开发
专注于软件测试领域知识点分享
展开
-
全网火爆,接口自动化测试框架-fixture函数使用,一篇打通...
setup和teardown能实现在测试用例执行之前或之后做一些操作,但是这种是整个测试脚本全局生效的;如果想实现某些用例执行之前进行登录,某些用例执行之前不需要进行登录,这种场景我们再使用setup和teardown就无法实现了,这时候我们就需要用到fixture功能了。1、fixture函数参数说明:1)scope:fixture函数的作用域;可选值:function(默认)、class、module、sessionfunction:作用于每个方法或函数,每个方法或函数都运行一次。原创 2023-11-17 14:38:26 · 501 阅读 · 0 评论 -
全网最全,Pytest自动化测试框架-前后置操作详细,一篇带你通关...
1、Pytest 的前置与后置处理Pytest贴心的提供了类似setup、teardown的方法,并且还超过四个,一共有十种模块级别:setup_module、teardown_module;函数级别:setup_function、teardown_function,不在类中的方法;类级别:setup_class、teardown_class;方法级别:setup_method、teardown_method;方法细化级别:setup、teardown;原创 2023-11-08 14:54:12 · 798 阅读 · 0 评论 -
全网最牛,Pytest自动化测试框架-Fixture测试夹具详解(撸码实例)
1、Fixture的优势Pytest框架的Fixture测试夹具就相当于Unittest框架的setup、teardown,但相对之下它的功能更加强大和灵活。命名方式灵活,不限于unittest的setup、teardown;可以实现数据共享,多个模块跨文件共享前置后置;可以实现多个模块跨文件使用一个session来完成多个用例;可以实现unittest不能实现的功能,比如unittest中的测试用例和测试用例之间是无法传递参数和数据的,但是fixture却可以解决这个问题;原创 2023-10-27 14:29:45 · 532 阅读 · 0 评论 -
进阶高级测试专项,Pytest自动化测试框架总结(四)
1、pytest之不只是测试函数test_app能参数化,初始化函数before_test也能参数化重点:测试用例的参数化+初始化清除函数的参数化 初始化清除函数的参数化能够实现appium的多终端测试初始化清除函数的参数化,方法很多种:before_test初始化函数注入参数,因为print(f’连接appium服务{port}')里面port需要变化的。@pytest.fixture(scope=‘module’,params=[(4723,),(4727,)]):初始化清除函数的参数化。原创 2023-07-31 15:40:49 · 316 阅读 · 0 评论 -
进阶高级测试专项,Pytest自动化测试框架总结(三)
1、pytest前置条件+后置条件的两种写法使用yield关键字来是实现:推荐使用这种,因为yield关键字能返回函数的值。原创 2023-07-30 15:15:09 · 275 阅读 · 0 评论 -
进阶高级测试专项,Pytest自动化测试框架总结(二)
1、pyets种有四种级别的setup和teardownsetup_module和teardown_module,在整个测试用例所在的文件中所在的文件中所有的方法运行前和运行后运行,只运行一次—模块的setup_class和teardown_class,在整个测试文件中的一个class中所有的用例的签后运行 ----class类setup_method和teardown_method,在class内的每个方法运行前后运行 ---------方法的。原创 2023-07-28 15:37:20 · 266 阅读 · 0 评论 -
进阶高级测试专项,Pytest自动化测试框架总结(一)
1、框架简介pytest,rf(学关键字语法,报告漂亮),unitest。pytest是python的第三方单元测试框架,可以做系统测试,比unitest更简洁和高效,执行多种插件,同时兼容unittest框架,在unittest框架迁移到pytest框架的代码不需要重写代码。unittest框架迁移到pytest框架的时候不需要重写代码纯python代码的自动化测试框架2、Pytest自动化框架接口测试方案:python。原创 2023-07-27 15:18:20 · 680 阅读 · 0 评论 -
吐血整理,Pytest自动化测试框架-捕获警告信息详解(超细)
捕获警告信息可以pytest.ini使用filterwarningsini选项在文件中设置相同的选项。例如,以下配置将忽略所有用户警告,但会将所有其他警告转换为错误。当警告与列表中的多个选项匹配时,将执行最后一个匹配选项的操作。这两个-W命令行选项和filterwarningsINI选项是基于Python的版本3.2中的新函数。使用标记应用的过滤器优先于在命令行上传递或由filterwarningsini选项配置的过滤器。禁用警告摘要。原创 2023-07-21 15:56:38 · 479 阅读 · 0 评论 -
全网最牛,Pytest自动化测试-pytest.mark.parametrize参数化实战(详细)
pytest允许在多个级别启用测试参数化:@pytest.mark.parametrize:允许在测试函数或类中定义多组参数和fixturespytest_generate_tests:允许定义自定义参数化方案或扩展(拓展)参数化场景只有测试数据和期望结果不一样,但操作步骤是一样的测试用例可以用上参数化;参数化例子未参数化的代码可以看到,三个用例都是加法然后断言某个值,重复写三个类似的用例有点冗余利用参数化优化之后的代码。原创 2023-07-09 15:42:42 · 3834 阅读 · 0 评论 -
超详细,Pytest自动化测试框架 token全局设置-多套环境使用(实战)
在做自动化测试时,经常会遇到一个需求,希望在全局用例中,仅登录一次,后续所有的用例自动带上请求头部token 或者cookies。可以自定义fixture 更新内置的 requests_session, 在请求头部添加token 来实现全局登录。1、全局 token 实现在项目下 conftest.py 文件中实现先登录,更新请求头部 token全局仅登录一次,获取token,在请求头部添加 Authorization: bearer **token** 认证。原创 2023-07-05 15:27:31 · 2791 阅读 · 1 评论 -
火爆全网,Pytest自动化测试框架-测试用例执行与失败重跑(实战详细)
用例执行状态用例执行完成后,每条用例都有自己的状态,常见的状态有passed:测试通过failed:断言失败error:用例本身写的质量不行,本身代码报错(譬如:fixture不存在,fixture里面有报错)xfail:预期失败,加了 @pytest.mark.xfail()error例子1:参数不存在。原创 2023-07-03 15:34:30 · 1606 阅读 · 0 评论 -
全网超全,pytest自动化测试框架pytest.ini配置文件详细(实战)
pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行非test文件pytest里面有些文件是非test文件pytest.ini:pytest的主配置文件,可以改变pytest的默认行为conftest.py:测试用例的一些fixture配置init.py:识别该文件夹为python的package包查看pytest.ini的配置选项cmd执行找到这部分内容pytest.ini应该放哪里?原创 2023-06-30 15:28:20 · 2075 阅读 · 0 评论 -
超强,Pytest自动化测试框架 fixture 传参实战(案例)
为了提高复用性,我们在写测试用例的时候,会用到不同的fixture,比如:最常见的登录操作,大部分的用例的前置条件都是登录假设不同的用例想登录不同的测试账号,那么登录fixture就不能把账号写死,需要通过传参的方式来完成登录操作案例1:传单个参数import pytest @pytest . fixture() def login(request) : name = request . param print(f"== 账号是: {原创 2023-06-28 16:01:23 · 1442 阅读 · 0 评论 -
自动化测试用什么框架?Pytest框架 vs Unittest框架,企业使用分析......
安装方式不同unittest是python自带的库,不用安装pytest是第三方单元测试库,需要安装(pip install pytest)测试用例设计规则不同unittest里面测试类需要继承unittest.TsetCase类,且测试类必须有unittest.main()方法,测试函数必须以”test_”开头pytest不需要继承,可以是测试类,也可以是测试函数;测试文件的文件名必须以”test_”开头,或者以”_test”结尾,原创 2023-04-14 16:22:48 · 969 阅读 · 0 评论 -
超详细从入门到精通,pytest自动化测试框架实战-fixture固件高级操作(十一)
参数化fixturefixture有个params参数,允许我们传递数据。# conftest.py文件 # fixture的params参数 # 取value1时,会把依赖此fixture的用例执行一遍。# 取value2时,会把依赖此fixture的用例执行一遍。# 取value3时,会把依赖此fixture的用例执行一遍。# params有几个参数,就会将依赖此fixture的用例执行几遍。当我们需要多次调用fixture时,则可以用到fixture的参数化功能。但它并不是并发的,是串行执行的。原创 2023-04-13 16:09:39 · 566 阅读 · 0 评论 -
超详细从入门到精通,pytest自动化测试框架实战-fixture高级进阶(十)
1、fixture的autouse参数pytest当中的fixture, 默认情况下在定义好之后,需要测试用例/测试类主动请求使用,才会执行。但是它有一个参数叫做autouse,默认是False。关闭fixture的自动调用/自动执行功能。如果设置autouse=True,则表示这个fixture在它的作用域范围内都会自动化执行。分为2种情况,接下来举例说明。第1种情况:当定义的fixture在测试类内部时如果fixture设置了autouse=True,只会在测试类类内部生效。原创 2023-04-12 15:54:05 · 826 阅读 · 0 评论 -
超详细从入门到精通,pytest自动化测试框架实战-fixture多样玩法(九)
在编写测试用例,都会涉及到用例执行之前的环境准备工作,和用例执行之后的环境清理工作。代码版的测试用例也不例外。在自动化测试框架当中,我们也需要编写:用例执行之前的环境准备工作代码(前置工作代码)用例执行之后的环境清理工作(后置工作代码)通常,在自动化测试框架当中,都叫做fixture。pytest作为python语言的测试框架,它的fixture有2种实现方式。一种是xunit-style,跟unittest框架的机制非常相似,即setup/teardown系列;原创 2023-04-11 16:42:41 · 814 阅读 · 2 评论 -
超详细从入门到精通,pytest自动化测试框架实战-pytest插件的开发(八)
pytest框架采用的是插件系统的模式来设计的,pytest运行的所有流程都是基于插件实现的钩子来实现的。一个插件包含一个或多个钩子函数。编写钩子 解释了如何自己编写钩子函数的基础知识和细节。pytest通过调用插件的指定钩子来实现配置、收集、运行和报告的各个方面:内置插件:从 pytest 的内部_pytest目录加载。外部插件:通过 setuptools 入口点发现的模块。conftest.py 插件:在测试目录中自动发现的模块。原创 2023-04-10 16:18:05 · 585 阅读 · 0 评论 -
超详细从入门到精通,pytest自动化测试框架实战-测试运行钩子(七)
pytest中用例执行相关的钩子函数,所有与运行测试相关的钩子都会接收一个pytest.Item对象。收集完成后执行主运行测试循环的钩子函数。参数session:pytest 会话对象触发时机:用例收集完后执行默认钩子实现对会话 ( ) 中收集的所有项目执行 runtest 协议session.items,除非收集失败或collectonly设置了 pytest 选项。如果在任何时候pytest.exit()调用,循环将立即终止。原创 2023-04-09 15:56:20 · 682 阅读 · 0 评论 -
超详细从入门到精通,pytest自动化测试框架实战-用例收集钩子(六)
pytest 的用例收集钩子是 pytest 中比较重要的一个钩子,在 pytest 执行测试时会自动调用。Pytest中用例收集的钩子函数,收集钩子,顾名思义就是pytest在用例收集阶段会执行的钩子函数。设置pytest收集用例执行的流程,这个钩子函数一般不需要重写,除非你想自己制定pytest用例收集的流程。参数session:pytest 会话对象触发时机:收集用例之前执行,执行该钩子进行用例收集pytest默认的用例收集流程为。原创 2023-04-07 16:42:44 · 651 阅读 · 0 评论 -
超详细从入门到精通,pytest自动化测试框架实战-钩子函数(五)
pytest这个框架提供了非常多的钩子。通过这些钩子我们可以对pytest 用例收集、用例执行、报告输出等各个阶段进行干预,根据需求去开发对应的插件,以满足自己的使用场景。什么是钩子函数钩子函数在pytest称之为Hook函数,它pytest框架的开发者,为了让用户更好的去扩展开发预留的一些函数。而预留的这些函数,在整个测试执行的生命周期中特定的阶段会自动去调用执行。如下图:关于pytest中的预留钩子,可以通过开发插件,和在conftest.py去实现这些钩子。原创 2023-04-06 16:16:16 · 1164 阅读 · 0 评论 -
超详细从入门到精通,pytest自动化测试框架实战教程-allure测试报告(四)
前面介绍了pytest的用例编写、前后置方式、用例标记等方法。还有一个pytest如何集成测试报告。pytest本身是没有生成测试报告的功能,但是pytest中有很多插件,我们可以通过插件来生成测试报告。下面会给大家介绍两个生成报告的方式。一个是生成html报告,一个是集成allure报告平台来展示测试报告。生成HTML报告。原创 2023-04-04 16:17:11 · 528 阅读 · 0 评论 -
超详细从入门到精通,pytest自动化测试框架实战教程-用例标记/执行(三)
pytest可以通过标记将数据传入于测试函数中,也可以通过标记中对执行的用例做筛选pytest中内置的标记pytest标记使用需要通过pytest.mark.标记来使用,pytest中为应对各种测试场景也内置了很多的标记。1)pytest.mark.parametrize:用例参数化的标记通过parametrize可以将用例数据和用例执行的逻辑代码分离,并实现根据用例,自动生成测试用例。2)pytest.mark.skip:跳过用例执行通过skip装饰的用例,在执行的时候会无条件跳过,原创 2023-04-02 16:34:02 · 599 阅读 · 0 评论 -
超详细从入门到精通,pytest自动化测试框架实战教程(二)
pytest中用例执行的前后置处理既可以通过测试夹具(fixtrue)来实现,也可以通过xunit 风格的前后置方法来实现。下面我们一起看看如何具体使用。xunit风格的前后置方法1、函数用例的前后置方法def setup_function(function) : print("函数用例前置方法执行") def teardown_function(function) : print("函数用例后置方法执行") def test_01() : print('----用例方法01------')原创 2023-03-31 16:12:41 · 543 阅读 · 0 评论 -
超详细从入门到精通,pytest自动化测试框架实战教程(一)
pytest框架的几个重要的特点:简单易用的语法:Pytest使用类似于Python自带的assert语法来编写用例,例如assert a == b,assert not a等,没有特定的断言方法要记忆。自动发现测试:Pytest通过在文件名和函数名中查找test关键字并且按照名称规则来自动发现测试模块和测试函数,将测试模块转换为测试集。灵活的测试执行:Pytest可以在多个进程或者多线程中并发执行测试用例,可以与版本控制系统交互,可以快速过滤测试用例并跳过无需执行的用例等。原创 2023-03-30 16:33:25 · 989 阅读 · 0 评论