从小白变高手,这7个超实用的Python自动化测试框架请收好!

栏目: 编程工具 · 发布时间: 6年前

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

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

从小白变高手,这7个超实用的Python自动化测试框架请收好!

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()

当执行该代码后,会执行文档内>>> 后面的测试代码,并与下一行的结果进行比对。执行的结果如下:

从小白变高手,这7个超实用的Python自动化测试框架请收好!

但是,如果我们把结果改一下,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()

执行的测试结果如下所示:

从小白变高手,这7个超实用的Python自动化测试框架请收好!

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

从小白变高手,这7个超实用的Python自动化测试框架请收好! 从小白变高手,这7个超实用的Python自动化测试框架请收好!

setup_class/teardown_class 在当前测试类的开始与结束执行。

setup/treadown 在每个测试方法开始与结束执行。

setup_method/teardown_method 在每个测试方法开始与结束执行,与setup/treadown级别相同。

执行pytest测试样例

执行测试样例的方法很多种,上面第一个实例是直接执行py.test,第二个实例是传递了测试文件给py.test。其实py.test有好多种方法执行测试:

从小白变高手,这7个超实用的Python自动化测试框架请收好!

4、Nose

Nose是对unittest的扩展,使得python的测试更加简单。nose自动发现测试代码并执行,nose提供了大量的插件,比如测试输出的xUnitcompatible,覆盖报表等等。

nose的详细文档: https:// nose.readthedocs.org/en /latest/

nose不是python自带模块,需要用pip安装

从小白变高手,这7个超实用的Python自动化测试框架请收好!

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

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

tox的详细文档: http:// testrun.org/tox/latest/

6、Unittest2

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

unittest2的详细文档: https:// pypi.python.org/pypi/un ittest2

首先,安装

pip install unittest2

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

import unittest2 as unittest

class MyTest(unittest.TestCase):

...

7、mock unittest.

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

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

mock的详细文档: http://www. voidspace.org.uk/python /mock/

总结:

我这篇文章,主要是讲基于 python 语言的自动化测试框架的一些设计思想和基本使用示例。其实工具的使用方法很简单,但是如何利用好这些工具来进行软件生产,则需要其它的计算机技能了。

“软件的自动化测试是有成本的,而且成本不低,基本上相当于在原有的功能开发工程 的基础上再建立一个平行的 测试开发工程 ”。

也就是说,如果你对自动化测试有你的期望值,那么就肯定是要付出相应的代价和精力的。好的东西也是需要优秀的人花大量的时间去完成的。在正式进入到自动化测试的领域之前,先要建立这样的价值观才能在软件测试这条路上走的更远。

欢迎加入  51软件测试大家庭,在这里你将获得【最新行业资讯】,【免费测试工具安装包】,【软件测试技术干货】,【面试求职技巧】... 51与你共同学习,一起成长!期待你的加入: QQ       群:      755431660


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python Machine Learning

Python Machine Learning

Sebastian Raschka / Packt Publishing - ebooks Account / 2015-9 / USD 44.99

About This Book Leverage Python' s most powerful open-source libraries for deep learning, data wrangling, and data visualization Learn effective strategies and best practices to improve and opti......一起来看看 《Python Machine Learning》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试