Selenium 2自动化测试实战26(unittest单元测试框架)
一、unittest单元测试框架
1.认识单元测试
1.断言方法
#计算器类
#coding:utf-8 #计算器类
class Count:
def __init__(self,a,b):
self.a=a
self.b=b #计算加法
def sum(self):
return self.a+self.b
创建一个Count类用于两个整数计算,通过__init__()方法对两个数进行初始化,接着创建sum()方法返回两个数相加的结果
#test.py
#coding:utf-8 from Demo1 import Count #测试两个整数相加
class TestCount: def test_sum(self):
try:
add=Count(2,3).sum()
assert(add==5),'integer addition result error!'
except AssertionError as msg:
print (msg)
else:
print ('Test pass') #执行测试类
mytest=TestCount()
mytest.test_sum()
输出结果如下所示

首先,需引入Count类,然后在test_sum()方法中调用Count类并且传入两个参数2和3,然后调用Count类中的sum()方法对两个参数做加法,并且通过assert()方法判断add()的返回值是否等于5.如果不相等则抛出自定义的“Integer addition result error!~”异常信息,如果相等则打印“Test pass!~"
2.接下来讲解如何通过unittest单元测试框架编写单元测试用例
#coding:utf-8 from Demo1 import Count
import unittest #测试两个整数相加
class TestCount(unittest.TestCase): def setUp(self):
print "test start" def test_sum(self):
j=Count(2,3).sum()
self.assertEqual(j,5) def tearDown(self):
print "test Down" if __name__=='__main__':
unittest.main()

首先引入unittest模块,创建TestCount类继承unittest的TestCase类,可以将TestCase类看成是对特定类进行测试的集合。
setUp()方法用于测试用例执行前的初始化操作,这里只简单的打印“test start”信息。
tearDown()方法与setUp()方法相对应,用于测试用例执行之后的善后工作,这里打印“test end”信息。
在test_sum()中首先调用Count类要计算的值,调用sum()方法得到和,这里不再使用繁琐的异常处理,直接调用unittest框架所提供的assertEqual()方法对sum()的返回值进行断言,判断两者是否相等,assertEqual()方法由TestCase类继承而来。
unittest提供了全局的main()方法,使用它可以方便的将一个单元测试模块变成可以直接运行的测试脚本。main()方法使用TestLoader类来搜索所有包含在该模块中以“test”命名开头的测试方法,并且自动执行。
Python知识补充
1.python文件的后缀为.py
2..py文件即可以用来直接执行,就想一个小程序一样,也可以用来作为模块被导入
3.在Python中导入模块一般使用的是import
if__name__=="main":语句说明
if就是如果的意思,说明这个句子是一个条件语句。
__name__,__name__作为模块的内置属性,就是.py文件的调用方式。
__main__,如上所述,.py文件由两种使用方式,作为模块被调用和直接使用,如果它等于“__main__”就表示是直接使用。
Selenium 2自动化测试实战26(unittest单元测试框架)的更多相关文章
- Selenium实战(四)——unittest单元测试框架1
Python中的单元测试框架包含:doctest.unittest.pyttest.nose等,使用unittest单元测试框架不需要自行定义断言失败的提示,并且当一个测试函数执行失败后,后面的测试函 ...
- Selenium+Python ---- 免登录、等待、unittest单元测试框架、PO模型
1.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...
- Python+Selenium框架设计篇之-简单介绍unittest单元测试框架
前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest. unit ...
- Selenium基于Python web自动化基础二 -- 免登录、等待及unittest单元测试框架
一.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...
- Selenium(十八):unittest单元测试框架(四) HTML测试报告
1. HTML测试报告 对测试人员来而言,测试的产出很难衡量.换句话说,测试人员的价值比较难以量化和评估,相信这一点对软件测试人员来说深有体会.我们花费了很多时间与精力所做的自动化测试也是如此.所以, ...
- Selenium(十七):unittest单元测试框架(三) 脚本分析、编写Web用例
1. 带unittest的脚本分析 也许你现在心里还有疑问,unittest框架与我们前面所编写的Web自动化测试之间有什么必然联系吗?当然有,既然unittest可以组织.运行测试用例,那么为什么不 ...
- 华为五年自动化测试工程详细解说:unittest单元测试框架
一.单元测试框架说明 单元测试是指在编程中,针对程序模块的最小单元(类中的方法)进行正确性检验的测试工作.python+selenium自动化测试中通常使用unittest或者pytest作为单元 ...
- Python+selenium之简单介绍unittest单元测试框架
Python+selenium之简单介绍unittest单元测试框架 一.unittest简单介绍 unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是 ...
- Python+Selenium ----unittest单元测试框架
unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做“PyUnit”,是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java ...
随机推荐
- java8学习之深入函数式接口与方法引用
函数式接口: 函数式接口[FunctionalInterface]是整个Lambda表达式的一个根源,换句话来说java8中的Lambda表达式要想彻底掌握,前提是要彻底理解好函数式接口,所以这次继续 ...
- 【CF335 E】Counting Skyscrapers
题意 有一排高楼,每一栋高楼有一个正整数高度,高度为 \(i\) 的概率为 \(2^{-i}\).一栋楼的每层从下往上依次编号为 \(0,1,2,\cdots,i-1\). 为了出题,大楼之间安装了溜 ...
- codeforces 576C Points on Plane 相邻两点的欧拉距离
题意:给出n个点,要求排序后,相邻两点的欧拉距离之和小于等于2.5e9做法:由于0≤ xi, yi ≤ 1e6,所以可以将x<=1000的点分成一份,1000<x<=2000的点分成 ...
- centos7编译安装php7.3
处理问题 解决php configure: error: Cannot find ldap libraries in /usr/lib.错误 cp -frp /usr/lib64/libldap* ...
- Hadoop-No.14之文件传输的特点
文件传输特点 这是一种all-or-nothing批处理方法,所以如果文件传输过程中出现错误,则不会写入或读取任何数据.这种方法与Flume,Kafka之类的采集方法不同,后者提供一定程度的错误处理功 ...
- numpy常用矩阵操作
1.删除列 column_to_delete = [0, 1, 2] arr = np.delete(arr, [0, 1, 2], axis=1) 2.归一化 arr = normalize(arr ...
- HDU 6043 - KazaQ's Socks | 2017 Multi-University Training Contest 1
/* HDU 6043 - KazaQ's Socks [ 找规律 ] | 2017 Multi-University Training Contest 1 题意: 一共 n 双袜子编号 1~n,每天 ...
- vs2017 gitee项目无法提交同步的解决办法
下载扩展跟更新: gitee插件 然后命令行输入: git push --set-upstream origin master 参考 https://www.cnblogs.com/slwangzi ...
- vue 剪切图片上传头像,使用 cropperjs 实现
我使用的是vue,移动端的项目. 官网地址:cropperjs GitHub地址:https://github.com/fengyuanchen/cropperjs/blob/master/READM ...
- perl 数组变量(Array) 转载
Perl 变量(2)--数组 原文地址:Perl 变量(2)--数组 作者:飞鸿无痕 二.数组 数组是标量数据的有序列表. 数组可以含任意多个元素.最小的数组可以不含元素,而最大的数组可以占满全部可用 ...