Pytest教程:如何使用Pytest中的断言

这篇具有很好参考价值的文章主要介绍了Pytest教程:如何使用Pytest中的断言。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在软件测试中,断言是一项至关重要的工具。它能够帮助我们判断被测程序的实际输出是否满足预期,从而保证测试质量和代码健壮性。pytest是一个流行的Python测试框架,提供了丰富的断言功能,本文将详细介绍pytest断言的使用方法、规则、语法、初级使用、高级使用、特别技巧以及注意事项,帮助大家更好地使用pytest进行软件测试。

断言规则

在介绍pytest断言之前,先来看看什么是断言。断言就是在测试代码中添加的一些判断逻辑,用于判断被测程序的实际输出是否符合预期结果。如果实际输出结果与预期不符,则断言抛出异常,测试失败;否则测试通过。

pytest断言的规则如下:

  • 如果表达式为False,则断言失败,抛出AssertionError异常;
  • 如果表达式为True,则断言成功,测试通过;
  • 如果使用assert not表达式,则当表达式为True时,断言失败,测试失败;
  • 如果使用assert <expression1> == <expression2>表达式,则当两个表达式的值相等时,断言成功,否则断言失败。

断言语法

pytest使用assert关键字作为断言语法的开头,后面跟上表达式,例如:

assert 1 + 1 == 2

上面的断言语句表示判断1+1是否等于2,如果等于,则测试通过;否则测试失败,抛出AssertionError异常。

断言的初级使用

在pytest中,最简单的断言就是使用assert关键字加上一个表达式,例如:

def test_add():
    assert 1 + 1 == 2

上述代码表示定义了一个名为test_add的测试函数,在函数内部添加了断言,判断1+1是否等于2。运行测试函数后,pytest将自动执行断言,并输出测试结果。如果断言成功,将输出PASSED,否则输出FAILED并给出错误信息。

断言的高级使用

除了简单的等于判断,pytest还提供了一系列其他类型的断言,包括:

  • assert <expression> != <expression>:判断两个表达式的值是否不相等;
  • assert <expression> > <expression>:判断第一个表达式的值是否大于第二个表达式的值;
  • assert <expression> < <expression>:判断第一个表达式的值是否小于第二个表达式的值;
  • assert <expression> >= <expression>:判断第一个表达式的值是否大于或等于第二个表达式的值;
  • assert <expression> <= <expression>:判断第一个表达式的值是否小于或等于第二个表达式的值;
  • assert <expression> in <expression>:判断第一个表达式的值是否包含在第二个表达式中;
  • assert <expression> not in <expression>:判断第一个表达式的值是否不包含在第二个表达式中;
  • assert <expression> is <expression>:判断两个对象是否是同一个对象;
  • assert <expression> is not <expression>:判断两个对象是否不是同一个对象;
  • assert <expression>:判断表达式的值是否为True;
  • assert not <expression>:判断表达式的值是否为False;
  • assert <expression1> == <expression2>:判断两个表达式的值是否相等;
  • assert <expression1> != <expression2>:判断两个表达式的值是否不相等;
  • assert <expression1> is None:判断表达式的值是否为None;
  • assert <expression1> is not None:判断表达式的值是否不为None。

特别技巧

除了上述基本的断言语法和规则,pytest还提供了一些特别技巧,方便我们更好地使用断言:

  1. 断言失败时,显示更详细的信息

有时候,我们需要在断言失败时输出更多信息,以便于调试。pytest提供了assert <expression>, message的语法,可以在断言失败时显示message信息,例如:

def test_add():
    assert 1 + 1 == 3, "1+1应该等于3"

当断言失败时,pytest将会输出assert 2 == 3 : 1+1应该等于3的错误信息。这样有利于我们快速定位错误。

  1. 断言多个条件

有时候,我们需要同时断言多个条件是否满足,可以使用pytest的assert <expression> and <expression>assert <expression> or <expression>语法。例如:

def test_add():
    a = 1+1
    b = 2+2
    assert a == 2 and b == 4

上述代码表示需要同时断言a是否等于2,b是否等于4。如果两个条件都满足,则测试通过;否则测试失败。

  1. 断言异常

有时候,我们需要测试一个函数在输入不合法参数时是否能够正确地抛出异常。pytest提供了assert raises(Exception, <expression>)语法,可以测试特定类型的异常是否抛出。例如:

def test_division():
    with pytest.raises(ZeroDivisionError):
        1 / 0

上述代码表示测试除数为0时是否能够正确地抛出ZeroDivisionError异常。如果能够抛出,则测试通过;否则测试失败。

注意事项

最后,我们来看看使用pytest进行断言时需要注意的一些事项:

  1. 断言语句必须放在测试函数中。

  2. 如果使用pytest.raises()语法测试异常,需要将异常代码放在with语句内部。

  3. 避免在测试函数中使用print()语句,因为它们可能会与pytest生成的输出混淆在一起。

  4. 断言时要尽量保证表达式简洁明了,避免出现复杂的逻辑判断。

  5. 在断言失败时输出更详细的信息,方便定位错误。

  6. 在断言时尽量提前进行验证,避免在后面出现错误而影响测试结果。

  7. 尽量使用多个小的测试函数,而不是一个大的测试函数,以便于更好地组织和管理测试用例。

总之,使用pytest进行断言是一项非常重要的工作,可以帮助我们保证软件测试的质量和代码健壮性。通过合理的使用断言语法和技巧,并注意避免一些常见的错误,我们可以更加高效和准确地进行软件测试。文章来源地址https://www.toymoban.com/news/detail-487454.html

到了这里,关于Pytest教程:如何使用Pytest中的断言的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Pytest系列- assert断言详细使用(4)

    在断言方面,pytest框架比其他类似的框架(比如unittest)更加简洁,易用,我想这是选择pytest作为自动化测试框架之一的原因之一。 pytest的assert断言支持使用python内置的assert表达式。可以理解为pytest的断言就是直接使用python自带的assert。 assert后面可以接一

    2024年02月09日
    浏览(23)
  • Pytest系列(2) - assert断言详细使用

    与unittest不同,pytest使用的是python自带的assert来进行断言 assert后面可以接一个表达式,只要表达式的最终结果为True,那么断言通过,用例执行成功,否则用例执行失败 想在抛出异常之后输出一些提示信息,执行之后就方便查看是什么原因了 执行结果 pytest 里面

    2024年01月20日
    浏览(34)
  • fiddler在软件测试中的使用(详细版)

    目录 1.抓包,辅助定位bug(web中类似谷歌浏览器F12开发调试工具) 1.1APP抓包分析 2.构建需要的测试场景(通过拦截篡改接口的请求或返回) 2.1断点篡改请求参数 2.1.1如果需要篡改请求参数,则需要在请求前设置断点 2.2.接口指向本地资源。在本地文件中配置你想要的的返回结

    2024年02月15日
    浏览(44)
  • 自动化测试中如何判断测试是否通过?详解 Pytest 测试框架的断言用法

    目录 前言: 01 — Python 原生的 assert 02 — Pytest 的 assert 优点 03 — Pytest 断言的用法 4.1 断言字符串 4.2 断言函数或者接口返回值 4.3 断言集合类型 04 — Pytest 断言 Excepiton 05 — 为断言添加自定义功能 06 — 禁止 Pytest 的 assert 特性 07 — 总结 在自动化测试中,判断测试是否通过是

    2024年02月16日
    浏览(42)
  • 软件测试|如何使用pycharm实现批量替换

    简介 PyCharm是一款功能强大的Python集成开发环境(IDE),提供了许多实用的功能来提高开发效率。其中,替换功能是一个非常有用的工具,它可以帮助开发者快速地在代码中查找并替换特定的文本。本文将详细介绍PyCharm的替换功能以及如何使用它,同时提供一些示例演示。

    2024年02月03日
    浏览(32)
  • 软件测试|如何使用Selenium处理隐藏元素

    简介 我们在使用selenium进行web自动化测试时,有时候会遇到元素被隐藏,从而无法对元素进行操作,导致我们的用例报错的情况。当我们遇到元素被隐藏的情况时,需要先对隐藏的元素进行处理,才能继续进行我们的操作,本文就为大家介绍一下如何使用selenium处理隐藏的元

    2024年01月19日
    浏览(31)
  • 软件测试|如何使用selenium操作窗口滚动条

    简介 我们在进行自动化测试工作的时候,如果页面内容过多,一次性加载耗时太长的话,会使用分段加载来加载页面内容,比如开始只加载页面顶端的内容,而如果要加载更多的数据,就需要我们向下滑动,让页面加载后续的内容;尤其是网页特别长的时候,我们往往需要滑

    2024年02月03日
    浏览(36)
  • [软件测试]如何使用Eclipse导入项目并打开

    🧑‍🎓个人介绍:大二软件生,现学JAVA、Linux、MySQL、算法  💻博客主页:渡过晚枫渡过晚枫 👓系列专栏:[编程神域 C语言],[java/初学者],[蓝桥杯] 📖阶段目标:备战2023蓝桥杯java个人赛   👻不能逃避,不能逃避,不能逃避,去成为更好的自己!👻 目录 第一阶段:安

    2024年02月04日
    浏览(35)
  • 软件测试|如何使用selenium处理iframe富文本输入框

    简介 在网页开发中,富文本框是常见的元素,用于输入富文本内容,如富文本编辑器或邮件编辑器。如果我们要使用Python和Selenium进行自动化测试或操作这种富文本框,可能会遇到一些挑战。本文将详细介绍如何使用Python和Selenium来向iframe富文本框输入内容,并提供示例代码

    2024年01月20日
    浏览(25)
  • pytest——断言后继续执行

    在编写测试用例的时候,一条用例可能会有多条断言结果,当然在自动化测试用例中也会遇到这种问题,我们普通的断言结果一旦失败后,就会出现报错,哪么如何进行多个断言呢?pytest-assume这个pytest的插件就能解决这个问题了。 pytest-assume属于pytest的一个插件,这个插件表

    2024年02月16日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包