大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
5个超实用的Python自动化测试框架分别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
创新互联主营芷江网站建设的网络公司,主营网站建设方案,手机APP定制开发,芷江h5微信小程序开发搭建,芷江网站营销推广欢迎芷江等地区企业咨询
随着技术的进步和自动化技术的出现,市面上出现了一些自动化测试框架。只需要进行一些适用性和效率参数的调整,这些自动化测试框架就能够开箱即用,大大节省了开发时间。而且由于这些框架被广泛使用,他们具有很好的健壮性,并且具有广泛多样的用例集和技术来轻易发现微小的缺陷。今天,我们将看一看常见的 Python 自动化测试框架。
常见的测试框架
1、Unittest
unittest是Python内置的标准类库。它的API跟Java的JUnit、.net的NUnit,C++的CppUnit很相似。
通过继承unittest.TestCase来创建一个测试用例。
举个例:
import unittest
def fun(x):
return x + 1
class MyTest(unittest.TestCase):
def test(self):
self.assertEqual(fun(3), 4)
执行后成功。
但是,如果将期望的结果改成5,则执行的结果如下图所示:
2、 Doctest
doctest 模块会搜索那些看起来像交互式会话的 Python 代码片段,然后尝试执行并验证结果.即使从没接触过 doctest,我们也可以从这个名字中窥到一丝端倪。“它看起来就像代码里的文档字符串(docstring)一样” 如果你这么想的话,就已经对了一半了。
举个例子:
def square(x):
"""Squares x.
>>> square(2)
4
>>> square(-2)
4
>>> square(5)
25
"""
return x * x
if __name__ == '__main__':
import doctest
doctest.testmod()
当执行该代码后,会执行文档内>>> 后面的测试代码,并与下一行的结果进行比对。执行的结果如下:
但是,如果我们把结果改一下,square(2)的结果改成5,测试代码如下:
def square(x):
"""Squares x.
>>> square(2)
5
>>> square(-2)
4
>>> square(5)
25
"""
return x * x
if __name__ == '__main__':
import doctest
doctest.testmod()
执行的测试结果如下所示:
3、py.test
pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它具有如下特点:
①非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
②能够支持简单的单元测试和复杂的功能测试
③支持参数化
④执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败
⑤支持重复执行失败的case
⑥支持运行由nose, unittest编写的测试case
⑦具有很多第三方插件,并且可以自定义扩展
⑧方便的和持续集成工具集成
编写pytest测试样例
编写pytest测试样例非常简单,只需要按照下面的规则(和nose类似):
测试文件以test_开头(以_test结尾也可以)
测试类以Test开头,并且不能带有 init 方法
测试函数以test_开头
断言使用基本的assert即可
example.py
setup_class/teardown_class 在当前测试类的开始与结束执行。
setup/treadown 在每个测试方法开始与结束执行。
setup_method/teardown_method 在每个测试方法开始与结束执行,与setup/treadown级别相同。
执行pytest测试样例
执行测试样例的方法很多种,上面第一个实例是直接执行py.test,第二个实例是传递了测试文件给py.test。其实py.test有好多种方法执行测试:
4、Nose
Nose是对unittest的扩展,使得python的测试更加简单。nose自动发现测试代码并执行,nose提供了大量的插件,比如测试输出的xUnitcompatible,覆盖报表等等。
nose的详细文档: https:///latest/http://
5、Unittest2
是unitest的升级版。对API进行了改善以及更好的诊断语法。
unittest2的详细文档:https://ittest2http://www./mock/
也就是说,如果你对自动化测试有你的期望值,那么就肯定是要付出相应的代价和精力的。好的东西也是需要优秀的人花大量的时间去完成的。在正式进入到自动化测试的领域之前,先要建立这样的价值观才能在软件测试这条路上走的更远。
看完上述内容,你们掌握5个超实用的Python自动化测试框架分别是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!