一、unittest单元测试框架

1.认识单元测试

1.断言方法

  1. #计算器类
  2. #coding:utf-8
  3.  
  4. #计算器类
  5. class Count:
  6. def __init__(self,a,b):
  7. self.a=a
  8. self.b=b
  9.  
  10. #计算加法
  11. def sum(self):
  12. return self.a+self.b

创建一个Count类用于两个整数计算,通过__init__()方法对两个数进行初始化,接着创建sum()方法返回两个数相加的结果

  1. #test.py
  2. #coding:utf-8
  3.  
  4. from Demo1 import Count
  5.  
  6. #测试两个整数相加
  7. class TestCount:
  8.  
  9. def test_sum(self):
  10. try:
  11. add=Count(2,3).sum()
  12. assert(add==5),'integer addition result error!'
  13. except AssertionError as msg:
  14. print (msg)
  15. else:
  16. print ('Test pass')
  17.  
  18. #执行测试类
  19. mytest=TestCount()
  20. mytest.test_sum() 

输出结果如下所示

首先,需引入Count类,然后在test_sum()方法中调用Count类并且传入两个参数2和3,然后调用Count类中的sum()方法对两个参数做加法,并且通过assert()方法判断add()的返回值是否等于5.如果不相等则抛出自定义的“Integer addition result error!~”异常信息,如果相等则打印“Test pass!~"

2.接下来讲解如何通过unittest单元测试框架编写单元测试用例

  1. #coding:utf-8
  2.  
  3. from Demo1 import Count
  4. import unittest
  5.  
  6. #测试两个整数相加
  7. class TestCount(unittest.TestCase):
  8.  
  9. def setUp(self):
  10. print "test start"
  11.  
  12. def test_sum(self):
  13. j=Count(2,3).sum()
  14. self.assertEqual(j,5)
  15.  
  16. def tearDown(self):
  17. print "test Down"
  18.  
  19. if __name__=='__main__':
  20. 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单元测试框架)的更多相关文章

  1. Selenium实战(四)——unittest单元测试框架1

    Python中的单元测试框架包含:doctest.unittest.pyttest.nose等,使用unittest单元测试框架不需要自行定义断言失败的提示,并且当一个测试函数执行失败后,后面的测试函 ...

  2. Selenium+Python ---- 免登录、等待、unittest单元测试框架、PO模型

    1.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...

  3. Python+Selenium框架设计篇之-简单介绍unittest单元测试框架

    前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest.       unit ...

  4. Selenium基于Python web自动化基础二 -- 免登录、等待及unittest单元测试框架

    一.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...

  5. Selenium(十八):unittest单元测试框架(四) HTML测试报告

    1. HTML测试报告 对测试人员来而言,测试的产出很难衡量.换句话说,测试人员的价值比较难以量化和评估,相信这一点对软件测试人员来说深有体会.我们花费了很多时间与精力所做的自动化测试也是如此.所以, ...

  6. Selenium(十七):unittest单元测试框架(三) 脚本分析、编写Web用例

    1. 带unittest的脚本分析 也许你现在心里还有疑问,unittest框架与我们前面所编写的Web自动化测试之间有什么必然联系吗?当然有,既然unittest可以组织.运行测试用例,那么为什么不 ...

  7. 华为五年自动化测试工程详细解说:unittest单元测试框架

    一.单元测试框架说明 ​ 单元测试是指在编程中,针对程序模块的最小单元(类中的方法)进行正确性检验的测试工作.python+selenium自动化测试中通常使用unittest或者pytest作为单元 ...

  8. Python+selenium之简单介绍unittest单元测试框架

    Python+selenium之简单介绍unittest单元测试框架 一.unittest简单介绍 unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是 ...

  9. Python+Selenium ----unittest单元测试框架

    unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做“PyUnit”,是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java ...

随机推荐

  1. 原创:(一)TCP/IP学习笔记之概述

    端到端论点和命运共享其实不应该在底层,差错控制应该在应用程序附近来实现.这是因为考虑了连接,而不是传输的准确,因为差错可以根据某些算法(通信中的滤波等)来恢复,不过在大面积网络出现问题的时候有必要进行 ...

  2. java线程基础巩固---多线程与JVM内存结构的关系及Thread构造函数StackSize的理解

    继续学习一下Thread的构造函数,在上次[http://www.cnblogs.com/webor2006/p/7760422.html]已经对如下构造都已经学习过了: 多线程与JVM内存结构的关系 ...

  3. LeetCode 69 x 的平方根

    链接:https://leetcode-cn.com/problems/sqrtx 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数, ...

  4. 原生 JS实现一个简单分页插件

    最近做的一个 PC端的需求,这个需求中有一个小点,页面底部有一块列表区域,这个列表的数据量比较大,需要进行分页控制,切换页码的时候,发送一个 ajax请求,在页面无刷新的情况下,实现列表数据的刷新,所 ...

  5. Quartus 18 新手使用教程

    最近需要做个小作品,用到了Quartus 18,本人采用vhdl语言进行的开发,过程如下. 1.点击新建一个工程 ​ 2.选择工程保存的路径,填写工程名称 ​ 3.选择工程类型为空的工程 ​ 4.不添 ...

  6. HDU-3374-String Problem(最小表示法, KMP)

    链接: https://vjudge.net/problem/HDU-3374 题意: Give you a string with length N, you can generate N stri ...

  7. CSS 定位详解

    CSS 有两个最重要的基本属性,前端开发必须掌握:display 和 position position 属性的作用 position属性用来指定一个元素在网页上的位置,一共有5种定位方式,即posi ...

  8. 【Winform-自定义控件】可以使用2种半透明的颜色来填充Button

    制作一个自定义按钮,使用2种半透明的颜色来填充Button 1.添加一个自定义控件类,并改变基类,继承自Button public partial class CustomControl1 : But ...

  9. ajax上传文件(javaweb)

    前台:FormData,     formData.append("fileName",$("#file")[0].files[0];); https://ww ...

  10. 【Python之路】特别篇--ECMA对象、DOM对象、BOM对象

    ECMA对象 从传统意义上来说,ECMAScript 并不真正具有类.事实上,除了说明不存在类,在 ECMA-262 中根本没有出现“类”这个词. ECMAScript 定义了“对象定义”,逻辑上等价 ...