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

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

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

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

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

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 语言的自动化测试框架的一些设计思想和基本使用示例。其实工具的使用方法很简单,但是如何利用好这些工具来进行软件生产,则需要其它的计算机技能了。

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

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

在这里插入图片描述
上面是我收集的一些视频资源,在这个过程中帮到了我很多。如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们扣扣群【313782132 】,里面有各种软件测试资源和技术讨论。

在这里插入图片描述
当然还有面试,面试一般分为技术面和hr面,形式的话很少有群面,少部分企业可能会有一个交叉面,不过总的来说,技术面基本就是考察你的专业技术水平的,hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求,一般来讲,技术的话只要通过了技术面hr面基本上是没有问题(也有少数企业hr面会刷很多人)
我们主要来说技术面,技术面的话主要是考察专业技术知识和水平,上面也是我整理好的精选面试题。

推荐好文:

软件自动化测试工具有哪些?手工测试与自动化测试应用场景区别

【Python】自动化测试的7个步骤

自动化软件测试面试题(面试前准备篇)

【Python】自动化测试的7个步骤

论初学者自动化测试–终极指南

加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。事必有法,然后有成。

资源不错就给个推荐吧~