多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

7个超实用的Python自动化测试框架

更新时间:2022-07-20 09:27:11 作者:多测师 浏览:34

  随着技术的进步和自动化技术的出现,市面上出现了一些自动化测试框架。只需要进行一些适用性和效率参数的调整,这些自动化测试框架就能够开箱即用,大大节省了开发时间。而且由于这些框架被广泛使用,他们具有很好的健壮性,并且具有广泛多样的用例集和技术来轻易发现微小的缺陷。今天,我们将看一看常见的Python自动化测试框架。

7个超实用的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不是python自带模块,需要用pip安装

  nose相关执行命令:

  1、 nosetests –h查看所有nose相关命令

  2、 nosetests –s执行并捕获输出

  3、 nosetests –with-xunit输出xml结果报告

  4、 nosetests -v: 查看nose的运行信息和调试信息

  5、 nosetests -w 目录:指定一个目录运行测试

  nose 特点:

  a) 自动发现测试用例(包含[Tt]est文件以及文件包中包含test的函数)

  b) 以test开头的文件

  c) 以test开头的函数或方法

  d) 以Test开头的类

  经过研究发现,nose会自动识别[Tt]est的类、函数、文件或目录,以及TestCase的子类,匹配成功的包、任何python的源文件都会被当做测试用例。

  5、tox

  最大的特色,是自动最测试环境的管理以及使用多个解析器配置进行测试。

  6、Unittest2

  是unitest的升级版。对API进行了改善以及更好的诊断语法。

  首先,安装

  pip install unittest2

  为了以后能在unittest与unittest2之间进行切换,最好的代码编写方式如下:

  import unittest2 as unittest

  class MyTest(unittest.TestCase):

  ...

  7、mock unittest.

  mock是用来测试python的库。在python3.3版本以后,这个是一个标准库。对老版本来说,使用pip install mock进行安装。

  mock的精髓在于,你可以使用模拟的对象来替代你的系统的一部分,然后验证后续的执行是否正确。

  以上内容为大家介绍了7个超实用的Python自动化测试框架,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部