1、unittest框架简介

首先以selenium IDE录制的一段代码为例(脚本的录制请参考其他文档),说明unittest框架的使用。

图 1

要使用unittest框架,首先需要import unittest。上述代码新建了一个Baidu类,该类继承自unittest.TestCase类。类中,setUp函数完成初始化工作,tearDown函数完成清理工作,这两个函数在以后编写测试用例时,可以为空。类中所有以test开头的函数为测试用例(unittest框架已通过代码约定好),如上图红色矩形框所示。

通过执行unittest.main(),自动完成所有以test开头的测试用例的执行。

2、unittest.TestSuite()容器

多数时候,一项测试可能包含多个测试用例。可以将多个测试用例加入unittest.TestSuite()容器,组成测试用例集,作为测试的入口。下面一个简单的例子说明TestSuite容器的使用:

图 2

上述定义了两个运算,定义了一个MyTest的类对两个运算进行测试。通过TestSuite容器将两个test测试用例联合起来,并通过TextTestRunner执行。执行结果如下:

图 3

以上的只是一个简单的例子。利用selenium IDE生成的测试脚本同样适用。假如有多个.py的测试文件,可以建立test_all.py文件,将每个.py里的测试类import进来,利用TestSuite容器将每个test类里的测试用例(test开头的类成员函数)汇总,通过runner逐个执行。此处,如果某个测试用例测试失败,并不影响其他的测试用例。

3、测试报告的生成(使用HTMLTestRunner.py)

以上介绍了如何执行测试用例及将多个测试用例加入容器一次执行,执行结果打印呈现。接下来讲述如何将测试结果生成漂亮的测试报告。供他人阅读。

HTMLTestRunner.py是Python标准库的unittest模块的一个扩展,它可以生成易于使用的HTML测试报告。下载后放入%path%/Lib下即可使用。

要使用HTMLTestRunner.py,首先要import HTMLTestRunner(如出现import错误,说明HTMLTestRunner.py的路径有问题)。将之前的runner改为HTMLTestRunner的对象,并新建文件指针fp,作为生成的报告文件。代码如下:

图 4

与2中的代码对比可以看出,改动很少,仅图中红色矩形框部分。运行生成的报告在代码的当前目录(通过修改filename字符串,也可以让报告生成在其他文件夹下,从而使目录结构更合理)。以上代码的运行报告如下图:

图 5

4、测试报告细节

在测试用例中加入注释可以使测试报告更容易阅读。另外可以通过调用time相关模块,使测试报告的文件名自动带有测试时间的标签。

对于3中的代码,可以作如下修改(图中红色矩形框):

运行后生成的报告名为:

报告内容为:

5、结构改进

一个好的测试结构应该是如下图所示,测试用例、数据、报告、all_case.py分离。test_case下存放具体的测试用例。

对于上述的结构,可以通过for循环将所有测试用例加入TestSuite容器,首先需要将test_case文件夹加入当前的path中,如下:

可以在all_case.py的目录下创建allcase_list.py,作为读取所有case的文件,allcase_list.py内容为:

此时只要在all_case.py里加入如下几行即可以读取所有的测试用例到数组alltestnames中:

通过TestSuite容器汇总所有的测试用例:

接下来只要声明runner并执行即可。

6、自动发邮件功能

将生成的测试报告自动发送到指定邮箱,以邮箱正文的方式显示,方便boss查看报告,而不用逐个打开测试报告文件。python的smtplib模块提供了邮件的功能。以下主要介绍如何将测试报告以HTML形式发送到邮件。

(1)首先导入smtplib模块:import smtplib

再导入email模块,MIMEText和Header主要用来完成邮件内容与邮件标题的定义。

from email.mime.text import MIMEText

from email.header import Header

(2)新建sendEmail.py文件,并在里边定义发送邮件的函数。sendEmail.py的内容如下:

代码包括两个函数,sendEmail(fileName)实现邮件发送,传入的参数是生成的测试报告名。sendReport()首先查找在报告目录下查找最新的测试报告,并调用sendEmail(fileName)将报告发出。

对于第4节中的代码,只要在开头import sendEmail,并在代码最后调用发送邮件的函数即可。如下:

最终的执行打印结果为:

到XX邮箱里查看,可以发现收到一封来自XXX的邮件,内容为:

clipboard17.png

以上是一个比较简单的自动化测试环境的搭建,可以以此为基础搭建复杂的、灵活的测试环境。

unittest安装教程_unittest框架与自动化测试环境的搭建相关推荐

  1. unittest安装教程_Unittest单元测试框架

    一,前言 1,单元测试 软件测试一般按阶段划分为:单元测试,集成测试,系统测试.单元测试(unit testing)是指对软件中的最小可测试单元进行检查和验证. 单元测试中单元的含义,单元就是人为规定 ...

  2. unittest安装教程_unittest模块使用方法

    unittest模块常用属性 1. unittest.TestCase类:所有的测试用例类继承的基类 定义一个测试用例类,需要继承TestCase,比如: class BaiduTest(unitte ...

  3. 1.Debussy安装 与 modelsim与debussy联调环境的搭建

    目录 1.Debussy安装 新增说明:请先阅读<2.Debussy安装 与 modelsim与debussy联调环境的搭建>再返回来看这篇文章的具体步骤,目前已完全解决问题! 博客链接: ...

  4. 2.Debussy安装 与 modelsim与debussy联调环境的搭建

    前言:因为我跟着学习的老师,使用的是行业内很久以前在用的联调工具,因为目前我们的机器中都是ModelSim Win64,无法实现Debussy与Modelsim联调实现 nWave的功能,又作者这样做 ...

  5. SAP系统和微信集成的系列教程之一:微信开发环境的搭建

    系列目录 (1) 微信开发环境的搭建 ( 本文 ) (2) 如何通过微信公众号消费API (3) 微信用户关注公众号之后,自动在SAP C4C系统创建客户主数据 (4) 如何将SAP C4C主数据变化 ...

  6. Linux的安装与Linux下PHP开发环境的搭建(LAMP)

    Linux的安装以及PHP环境的搭建 引言: 对于沉迷于windows数年的用户(比如笔者)来说,Linux中的红帽和utunbu虽然看起来和windows比较像,但是操作起来却是大不相同,需要一个适 ...

  7. 风铃发卡平台源码安装教程(宝塔面板+云服务器轻松搭建)

    风铃发卡平台源码下载地址及安装教程:点击查看 首先,安装宝塔面板,安装教程可以参考下面的文章: 阿里云服务器如何安装宝塔面板(Linux/windows系统) 腾讯云服务器如何安装宝塔面板(Linux ...

  8. HttpRunnerManager接口自动化测试框架在win环境下搭建教程

    1.下载源码 git下载:https://github.com/HttpRunner/HttpRunnerManager 网盘下载:https://pan.baidu.com/s/1bNME6xu9g ...

  9. pythonpil安装教程_Python 3.6 -win64环境安装PIL模块的教程

    PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,但API却非常简单易用. 由于PIL仅支持到Python 2.7,加上年久失修 ...

最新文章

  1. R语言使用download.file函数下载网络文件到本地(Download File from the Internet)
  2. 从宇宙、互联网和脑的关系看元宇宙的终极形态
  3. mac下android环境搭建笔记(android studio)
  4. typescript的命名空间
  5. 执行计划生成及查看的几种方法
  6. IO多路复用中select、poll、epoll之间的区别
  7. 频率法:数组排序的另一种思路
  8. 数字电路课程设计--电子钟实验报告
  9. 计算机信息技术行业代码,行业代码 是什么呢
  10. windows 域介绍
  11. android 谷歌地图显示空白,.android谷歌地图显示空白网格与缩放选项
  12. 学科前沿讲座课程总结与感悟
  13. sof_pof_jic_elf程序下载方法
  14. 爱企查青龙可跑 一个月一张爱奇艺月卡最细教程
  15. 如何解决算百分比,加起来不是100%的问题
  16. 【爬虫】python爬虫从入门到放弃
  17. 2020-10-18大二第七周
  18. Oracle视图列名可以小写吗,oracle表列名大小写
  19. 信息技术教案 计算机病毒,四年级下信息技术教案-计算机病毒知识二辽师大版.docx...
  20. 「ZBrush」零基础新手入门操作教学,记得收藏好

热门文章

  1. 程序员过年被亲戚鄙视:月薪1万5很一般,在大城市很难养活自己吧?
  2. Win10上装虚拟机运行Ubuntu16.04
  3. Pytorch——YOLOv3
  4. 段页式存储管理方式的定义
  5. 求一棵二叉树根到所有叶子节点的路径
  6. Oracle的介绍及其在安装和使用Oracle过程中可能遇到的困难及其相应的解决措施
  7. 在安装和使用Oracle过程中可能遇到的困难及其相应的解决措施
  8. C#百度OCR-本地和网络图片识别文字
  9. bool函数_有趣的函数绝无仅有
  10. PlaneTR:一种用于提取场景中3D平面特征的Transformer(ICCV 2021)