首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

pytest,raise_for_status失败:未引发<class 'requests.exceptions.HTTPError'>

pytest是一个Python的测试框架,用于编写和执行单元测试、集成测试和功能测试。它提供了丰富的功能和插件,使得测试编写和执行变得简单和高效。

在使用pytest进行接口测试时,当使用requests库发送请求后,可以通过调用response对象的raise_for_status()方法来检查请求是否成功。如果请求失败,即返回的HTTP状态码不是200,会引发一个requests.exceptions.HTTPError异常。

然而,如果在使用raise_for_status()方法时未引发requests.exceptions.HTTPError异常,可能有以下几个原因:

  1. 请求本身并没有失败,即返回的HTTP状态码是200。在这种情况下,可以通过response.status_code属性获取状态码,并进行相应的处理。
  2. 请求失败,但是未引发requests.exceptions.HTTPError异常。这可能是因为在发送请求时未设置verify参数,导致SSL证书验证失败。可以通过设置verify参数为False来禁用SSL证书验证,但这并不推荐,因为存在安全风险。

综上所述,当使用pytest进行接口测试时,如果raise_for_status()方法未引发requests.exceptions.HTTPError异常,可以通过检查response.status_code属性来获取请求的状态码,并根据具体情况进行处理。

腾讯云提供了丰富的云计算产品和服务,其中与接口测试相关的产品是腾讯云API网关。腾讯云API网关是一种高性能、高可用的API托管服务,可以帮助开发者轻松构建和管理API,并提供了丰富的功能,如请求转发、鉴权、流量控制、监控等。您可以通过以下链接了解更多关于腾讯云API网关的信息:https://cloud.tencent.com/product/apigateway

请注意,以上答案仅供参考,具体的解决方法和推荐产品可能因实际情况而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

软件测试测试开发全日制培训|Pytest的异常处理

前言在断言一些代码块或者函数时会引发意料之中的异常或者其他失败的异常导致程序无法运行时,使用raises捕获匹配到的异常可以让代码继续运行。...的异常处理:pytest.raisespytest.raises和with语句一起使用,成功断言到期望异常则测试通过,断言到期望异常则测试失败,如下代码中, with语句范围断言到期望异常TypeError...TypeError - 测试失败import pytestdef test_02(): with pytest.raises(TypeError) as e: print("4-2=...在pytest中,assert语句是异常断言的基础。当条件不满足时,assert会引发AssertionError异常,这有助于检测程序中的错误。...: # 异常处理代码 assert True, "除数不能为零"使用pytest.raises检查异常pytest.raises是pytest提供的一个工具,用于检查是否引发了预期的异常

12410
  • pytest的一些知识点

    or , not 和括号 失败重跑 pytest--重复执行用例 pytest-repeat 使用pip安装pytest-repeat  pip install pytest-repeat 重复执行...-repeat-scope也可以设置参数:session , module,class或者function(默认值) function(默认)范围针对每个用例重复执行,再执行下一个用例 class 以...class为用例集合单位,重复执行class里面的用例,再执行下一个 module 以模块为单位,重复执行模块里面的用例,再执行下一个 session 重复整个测试会话,即所有收集的测试执行一次,然后所有这些测试再次执行等等...(n)次失败后停止测试过程: pytest -x # stop after first failure pytest --maxfail=2 # stop after two failures...# 断言异常value值 assert "division by zero" in str(excinfo.value) 异常: excinfo 是一个异常信息实例,它是围绕实际引发的异常的包装器

    57730

    Python测试框架pytest(13)assert断言

    Python测试框架pytest(13) assert断言 目录 1、常用断言 2、异常断言 1、与 unittest 不同,pytest 使用的是 Python 自带的 assert 关键字来进行断言...2、assert 关键字后面可以接一个表达式,只要表达式的最终结果为 True,那么断言通过,用例执行成功,否则用例执行失败。 示例: 1、创建test_assert.py文件 脚本代码: #!...not True # 断言:判断是否为False def test_false_1(): assert is_prime(8) is False 2、运行结果: 2、异常断言 为了编写有关引发的异常的断言...(raises=ZeroDivisionError) def test_xfail(): 1 / 0 运行结果: 代码抛出异常,但是和 raises 指定的异常类相匹配,所以不会断言失败。...而 @pytest.mark.xfail(raises=ZeroDivisionError) 对于检查修复的错误(即可能会发生异常),使用检查断言可能会更好。

    68130

    Pytest参数选项自由执行测试用例详解(二)

    2失败 #执行后,用例1执行了,用例2执行断言失败,脚本停止,用例3没有继续执行 import pytest class TestClass(object): def test_one(self...2','test_04.py']) #执行了用例1和用例2,达到2次失败,全局停止,执行用例3 test_04.py import pytest class TestClass(object):...) pytest.main(['--lf','test_04.py']) #设置test_two用例断言失败,运行j脚本后只跑了test_two用例 import pytest class TestClass...pytest.main(['-s','--ff','test_04.py']) # 设置test_two2断言失败,首次运行脚本,优先执行test_two2, # 结果test_two2断言失败 import...,某个测试用例失败后,pytest会列举出失败信息,包括失败在哪一行、是什么失败、怎么失败的,此过程称“信息回溯”它对找到问题很有帮助,但有时也会对多余的信息感到厌烦,这时--tb=style选项就有用武之地了

    1.1K20

    Pytestpytest-assume同用例多断言,断言1失败会执行后续代码及断言2

    一般我们做自动化测试时,一个用例会写多个断言,当第一个断言失败后,后面的代码就不会执行了,于是我们引进了pytest-assume插件可以解决断言失败后继续断言的问题。...print('执行test_01断言2')和assert 1 == 2执行。.../usr/bin/env python # _*_coding:utf-8_*_ import pytest class Test(object): def test_01(self...进行断言,用法pytest.assume(预期结果 == 实际结果) 我们发现test_01用例中,第一个断言pytest.assume(0 == 1)失败时,print('执行test_01断言2')...和pytest.assume(1 == 2)仍执行了,说明同一个用例中使用pytest.assume进行断言,如果第一个断言失败了,后面的代码仍会继续执行。

    3K20

    pytest文档11-assert断言

    test_assert1.py def f(): return 3 def test_function(): assert f() == 4 断言f()函数的返回值,接下来会看到断言失败...,因为返回的值是3,判断等于4,所以失败了 $ pytest test_assert1.py =========================== test session starts ======...AssertionError ========================= 1 failed in 0.12 seconds ========================= 从报错信息可以看到断言失败原因...,会给出自己写的失败原因了E AssertionError: 判断a为偶数,当前a的值为:3 异常断言 为了写关于引发异常的断言,可以使用pytest.raises作为上下文管理器,如下 #...ZeroDivisionError # 断言异常value值 assert "division by zero" in str(excinfo.value) excinfo 是一个异常信息实例,它是围绕实际引发的异常的包装器

    1K40

    使用Pytest创建一个Python测试自动化项目

    什么是pytest? 任何功能测试自动化项目的核心都是“核心”测试框架。该框架处理测试用例结构,测试执行以及通过/失败结果报告。...pytest是Python最好的测试框架之一。它简单,可扩展且具有Python风格。测试用例是作为函数而不是类编写的。测试断言失败将与实际值一起报告。插件可以添加代码覆盖率,漂亮的报告和并行执行。...pytest是如何发现我们的测试的?按名称:pytest将搜索名为 的模块中命名的 测试函数 。有趣的是,pytest不需要任何测试目录中的文件。...test_test_.py__init__.py 测试失败 如果测试失败,会发生什么?...验证异常 pytest将未处理的异常视为测试失败。实际上,该 assert 语句仅引发异常以注册失败。如果我们要验证是否正确引发了异常该怎么办?

    1.5K30

    使用Pytest创建一个Python测试自动化项目

    什么是pytest? 任何功能测试自动化项目的核心都是“核心”测试框架。该框架处理测试用例结构,测试执行以及通过/失败结果报告。...pytest是Python最好的测试框架之一。它简单,可扩展且具有Python风格。测试用例是作为函数而不是类编写的。测试断言失败将与实际值一起报告。插件可以添加代码覆盖率,漂亮的报告和并行执行。...pytest是如何发现我们的测试的?按名称:pytest将搜索名为 的模块中命名的 测试函数 。有趣的是,pytest不需要任何测试目录中的文件。...test_*test_*.py__init__.py 测试失败 如果测试失败,会发生什么?...验证异常 pytest将未处理的异常视为测试失败。实际上,该 assert 语句仅引发异常以注册失败。如果我们要验证是否正确引发了异常该怎么办?

    1.9K10

    带你认识Pytest(五)

    skip 和 xfail 标记 实际工作中,测试用例的执行可能会依赖于一些外部条件,例如:只能运行在某个特定的操作系统(Windows),或者我们本身期望它们测试失败,例如:被某个已知的Bug所阻塞;如果我们能为这些用例提前打上标记...,我们知道这个用例会失败;例如,对某个实现的功能的测试,或者阻塞于某个已知Bug的测试; pytest默认不显示skip和xfail用例的详细信息,但我们可以通过 -r 选项来自定义这种行为:通常,我们使用一个字母作为一种类型的代表...class TestMyClass(): def test_one(self): assert True def test_two(self): assert True...def test_one(): assert Truedef test_two(): assert True xfail 标记用例为预期失败的 1.我们可以使用@pytest.mark.xfail...标记用例,表示期望这个用例执行失败; 用例会正常执行,只是失败时不再显示堆栈信息,最终的结果有两个:用例执行失败时(xfailed:符合预期的失败)、用例执行成功时(xpassed:不符合预期的成功)

    50720

    Pytest自动化测试框架

    :方法,默认为function    class:类    module:.py文件    session:会话)params:可选的参数列表,可使多个参数调用fixture功能autouse:是否默认调用该...执行顺序较高范围的 fixture(例如session会话级)比低范围的 fixture(例如function函数级或class类级)优先执行。...标记用例为预期失败@pytest.mark.xfail(reason="预期失败描述")对于功能未完成或已知有问题的用例,可以用 xfail 标记,这样即使断言失败,也不会影响其他测试用例的的执行。...执行 case 后,控制台中显示:XFAIL:表示预期失败,实际也失败XPASS:表示预期失败,实际运行没有失败 1.2.5.4....Allure的常用用法:使用方法                  说明@allure.epic()        描述史诗,即拆解的story@allure.feature()    描述功能模块@

    81210

    Python测试框架之pytest详解

    code 2 用户中断了测试的执行 Exit code 3 测试执行过程发生了内部错误 Exit code 4 pytest 命令行使用错误 Exit code 5 采集到可用测试用例文件 1.6...1.7 控制测试用例执行 1.在第N个用例失败后,结束测试执行 pytest -x # 第01次失败,就停止测试 pytest --maxfail=2 #...------->teardown_class s # 跳过函数``` 6.2 标记为预期失败函数 标记测试函数为失败函数 方法: xfail(condition=None, reason...long 还多,即使是 Ctrl+C 触发的错误,也会打印出来 6.5 执行失败的时候跳转到 PDB 执行用例的时候,跟参数 –pdb,这样失败的时候,每次遇到失败,会自动跳转到 PDB pytest...--pdb # 每次遇到失败都跳转到 PDB pytest -x --pdb # 第一次遇到失败就跳转到 PDB,结束测试执行 pytest --pdb -

    2.3K20

    pytest 测试框架学习(6):pytest.importorskip

    pytest.importorskip 含义 使用 含义 importorskip: 导入并返回请求的 module 信息;如果导入的 module 不存在,则跳过当前测试。 源码: ?...使用 导入 selenium 模块 import pytest class TestImportorSkip: def sum(self, x): return x + 1...print("skip this sum ", self.sum(4)) def test_sum(self): print(self.sum(5)) 执行 class,结果:...可以看到 该条测试已经被忽略,根据日志显示,当前我系统中存在的 selenium 版本为 3.141.0, 而我请求的最低版本为 3.150,很明显系统中存在的版本小于我要求的版本号,所以该条测试跳过执行...指定返回消息 def test_importorskip(self): sele = pytest.importorskip("selenium-python", reason="当前模块导入失败

    69720

    利用pytest hook函数实现自动化测试结果推送企业微信

    如有测试失败的情况,测试人员再去查看具体的测试报告,检查是哪个场景没有测试通过。...将获取到的各条测试结果分输出到控制台进行展示:↓(Windows本地运行效果) ③ pytest_terminal_summary方法: 分别调用CaseCount中的获取通过、失败、跳过、报错的用例条数的方法...import redis class RedisHandler: def __init__(self, host, port=6379, db=0): # 生成客户端连接,...,检测到用例执行数量") EnterpriseWechatNotification基类:用于定义发送企业微信消息的内容模板、定义调用hook_url(群机器人)发送消息方法 import os import...key={i}" for i in hook] # allure生成报告的地址,Jenkins执行时会用到,Windows暂配置allure地址 self.allure_url

    1.1K30

    日常积累 | 初识Pytest

    前半部分主要针对之前安装Python装上pip工具,后期只能使用手动安装教程(百分百有效) 后半部分主要是最近在学习基于python的pytest框架,进行记录分享,希望对大家有所帮助,后期会逐步的将这个框架学习并分享完毕...初识Pytest Pytest量python的种单元测试框果,与python自带的unittest测试框架类似,但是比uittst框架使用起来更简洁,效率更高 01. 具备大概如下特点 1....执行测试过程中可以将某些测试跳过(skip) , 或者对某些预期失败的case标记成失败 4. 支持重复执行(rerun)失败的case 5....接着输入 pytest -V校验pytest是否安装成功 ? 03. Pytest运行测试用例 1....,添加几条case,新建完毕 # -*-coding=utf-8-*- # authou:shichao class Test_API_list: def test_001(self):

    56110
    领券