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 ...
随机推荐
- kettle Spoon.bat闪退解决办法
1.Java环境配置问题 java_home:D:\Program Files\Java\jdk1.7.0_25(安装jdk路径) classpath:.;%java_home%\lib\dt.jar ...
- python常用模块:包的使用、init作用、相对导入绝对导入与内置函数
今天主要讲的内容有: 一.包的详解二.相对导入和绝对导入三.内置模块补充 一.包的详解 1.包是什么 包其实也是一个模块,只不过是一个大的模块下包含一堆模块的载体 本质上也是一个文件夹,与普通文件的区 ...
- fragment初步认识
- three.js之创建一个几何体
<html> <head> <title>My first three.js app</title> <style> body { marg ...
- 1.Shell脚本
1.Shell脚本 可以将Shell终端解释器当作人与计算机硬件之间的“翻译官”,它作为用户与Linux系统内部的通信媒介,除了能够支持各种变量与参数外,还提供了诸如循环.分支等高级编 程语言才有的控 ...
- C/C++常见问题汇总
问题1.数组和指针的区别 数组名不可以作为左值 char * p1 = "Hello World" ; //分配字符串常量,然后赋给 p1 ,一个指针型变量,是左值 ] = &qu ...
- [BZOJ 1095] [ZJOI2007]Hide 捉迷藏——线段树+括号序列(强..)
神做法-%dalao,写的超详细 konjac的博客. 如果觉得上面链接的代码不够优秀好看,欢迎回来看本蒟蒻代码- CODE WITH ANNOTATION 代码中−6-6−6表示左括号'[',用−9 ...
- idea 2017 破解方法
一.先进入Intellij IDEA的官网:https://www.jetbrains.com,下载安装 二.破解. 网上的破解方法较多,总结下来大概有下面几种办法供大家作为参考 声明:破解用于学习和 ...
- MessagePack Java Jackson 序列化和反序列化 POJO 为 MessagePack 的数组类型用来与 msgpack-java:0.6 保持兼容性
在 msgpack-java 0.6 或者早期的版本中,POJO 在 MessagePack 中被序列化和反序列化为数组变量. 变量的顺序是基于 Java 类中变量的内部顺序了,这种本来是一种原生的序 ...
- hdu 5792 World is Exploding 树状数组+离散化+容斥
World is Exploding Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...