安装xlrd

下载地址:https://pypi.python.org/pypi/xlrd

安装ddt

下载地址:https://pypi.python.org/pypi/ddt/1.1.0

  1. class ExcelUtil(object):
  2. def __init__(self, excelPath, sheetName):
  3. try:
  4. self.data = xlrd.open_workbook(excelPath)
  5. except Exception as e:
  6. print(str(e))
  7. self.table = self.data.sheet_by_name(sheetName)
  8.  
  9. # get titles
  10. self.row = self.table.row_values(0)
  11.  
  12. # get rows number
  13. self.rowNum = self.table.nrows
  14.  
  15. # get columns number
  16. self.colNum = self.table.ncols
  17.  
  18. # the current column
  19. self.curRowNo = 1
  20.  
  21. def next(self):
  22. r = []
  23. while self.hasNext():
  24. s = {}
  25. col = self.table.row_values(self.curRowNo)
  26. i = self.colNum
  27. for x in range(i):
  28. s[self.row[x]] = col[x]
  29. r.append(s)
  30. self.curRowNo += 1
  31. return r
  32.  
  33. def hasNext(self):
  34. if self.rowNum == 0 or self.rowNum <= self.curRowNo:
  35. return False
  36. else:
  37. return True

在unittest框架中使用ddt进行迭代,@ddt.data接收一个可迭代的类型,来判断执行的次数,excel.next()返回的是一个数组

  1. import unittest
  2. import ddt
  3. import ExcelUtil
  4. excel = ExcelUtil("excelPath", 'Sheet1')
  5.  
  6. @ddt.ddt
  7. class DataTest(unittest.TestCase):
  8. @classmethod
  9. def setUpClass(cls):
  10. print('start')
  11.  
  12. @classmethod
  13. def tearDownClass(cls):
  14. print('stop')
  15.  
  16. @ddt.data(*excel.next())
  17. def testLogin(self, data):
  18. print(data['username'], data['password'])
  1. if __name__ == "__main__":
    suite = unittest.TestLoader().loadTestsFromTestCase(DataTest)
    unittest.TextTestRunner(verbosity=2).run(suite)

excel表格如下:

最后的输出结果为:

admin 123456.0
hjh jpmark961203

Python unittest excel数据驱动的更多相关文章

  1. Python unittest excel数据驱动 写入

    之前写过一篇关于获取excel数据进行迭代的方法,今天补充上写入的方法.由于我用的是Python3,不兼容xlutils,所以无法使用copy excel的方式来写入.这里使用xlwt3创建excel ...

  2. python Unittest+excel+ddt数据驱动测试

    #!user/bin/env python # coding=utf- # @Author : Dang # @Time : // : # @Email : @qq.com # @File : # @ ...

  3. Python Unittest与数据驱动

    python中有一个装饰器类DDT,通过它我们可以复用代码,达到数据驱动测试的目的,该类的官方介绍可以参考 http://ddt.readthedocs.io/en/latest/index.html ...

  4. python+unittest+ddt数据驱动进行接口自动化测试

    所谓数据驱动测试,简单的理解为数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变.通过使用数据驱动测试的方法,可以在需要验证多组数据测试场景中,使用外部数据源实现对输入输出与期望值的参数化,避 ...

  5. Python+unittest+excel

    接口测试设计思想: 框架结构如下: 目录如下: readme: config下的run_case_config.ini 文件说明: run_mode: 0:获取所有sheet页 1: if case_ ...

  6. python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告

    1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请求参数 ...

  7. python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(二)

    可以参考 python+requests接口自动化完整项目设计源码(一)https://www.cnblogs.com/111testing/p/9612671.html 原文地址https://ww ...

  8. python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(已弃用)

    前言 1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请 ...

  9. Python Selenium 之数据驱动测试

    数据驱动模式的测试好处相比普通模式的测试就显而易见了吧!使用数据驱动的模式,可以根据业务分解测试数据,只需定义变量,使用外部或者自定义的数据使其参数化,从而避免了使用之前测试脚本中固定的数据.可以将测 ...

随机推荐

  1. uva10689矩阵快速幂

    #include<map> #include<set> #include<cmath> #include<queue> #include<stac ...

  2. MyBatise代码自动生成时候Oralce的number类型BigDecimal问题

    使用MyBatise的代码自动生成工具时候,即便在配置文件中定义了 <javaTypeResolver> <property name="forceBigDecimals& ...

  3. 创建Vue.js对象:我的第一个Vue.js输出信息

    <!DOCTYPE html><html><head><meta charset=”utf-8″><title>Vue第一条信息</t ...

  4. 微信授权登录,关于调不起授权页面,无法响应回调方法,获取不到code 详解

    前期准备工作:申请AppId,下载资源包jar.文档等. 微信授权登录步骤: 1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据c ...

  5. PCB 中过孔和通孔焊盘的区别

    在PCB设计中,过孔VIA和焊盘PAD都可以实现相似的功能.它们都能插入元件管脚,特别是对于直插DIP)封装的的器件来说,几乎是一样的. 但是!在PCB制造中,它们的处理方法是不一样的. 1.VIA的 ...

  6. 第33课 main函数与命令行参数

    main函数的概念: 测试程序: 以上四种定义main函数的方法都是正确的. main函数的本质: 操作系统是希望main函数的有返回值的,这样可以知道main函数的退出状态. 如果程序时异常退出的, ...

  7. Zabbix proxy 3.2安装部署

    zabbix proxy 前提环境: CentOS 6 LNMP(php) 版本:Zabbix-3.2.3 proxy安装 yum install -y net-snmp \ net-snmp-dev ...

  8. I.MX6 Linux U-boot 环境变量解析

    /********************************************************************************** * I.MX6 Linux U- ...

  9. vue图片上传组件

    前言:很多项目中都需要用到图片上传功能,而其多处使用的要求,为了避免重复造轮子,让我决定花费一些时间去深入了解,最终封装了一个vue的图片上传组件.现将总结再次,希望有帮助. Layout <d ...

  10. 20155319 2016-2017-2 《Java程序设计》第六周学习总结

    20155319 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 ==第十章 输入/输出== 10.1 InputStream与OutputStream 10 ...