安装xlrd

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

安装ddt

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

class ExcelUtil(object):
def __init__(self, excelPath, sheetName):
try:
self.data = xlrd.open_workbook(excelPath)
except Exception as e:
print(str(e))
self.table = self.data.sheet_by_name(sheetName) # get titles
self.row = self.table.row_values(0) # get rows number
self.rowNum = self.table.nrows # get columns number
self.colNum = self.table.ncols # the current column
self.curRowNo = 1 def next(self):
r = []
while self.hasNext():
s = {}
col = self.table.row_values(self.curRowNo)
i = self.colNum
for x in range(i):
s[self.row[x]] = col[x]
r.append(s)
self.curRowNo += 1
return r def hasNext(self):
if self.rowNum == 0 or self.rowNum <= self.curRowNo:
return False
else:
return True

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

import unittest
import ddt
import ExcelUtil
excel = ExcelUtil("excelPath", 'Sheet1') @ddt.ddt
class DataTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
print('start') @classmethod
def tearDownClass(cls):
print('stop') @ddt.data(*excel.next())
def testLogin(self, data):
print(data['username'], data['password'])
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. 雷林鹏分享:Ruby 面向对象

    Ruby 面向对象 Ruby 是纯面向对象的语言,Ruby 中的一切都是以对象的形式出现.Ruby 中的每个值都是一个对象,即使是最原始的东西:字符串.数字,甚至连 true 和 false 都是对象 ...

  2. ObservableCollection<T> 的同类 ListCollectionView

    1:ListCollectionView : CollectionView : INotifyCollectionChanged, INotifyPropertyChanged  2:Observab ...

  3. UVA-11212 Editing a Book (IDA*)

    题目大意:将一个数字序列以最少的剪切次数粘贴成另一个数字序列. 题目分析:很显然,最坏的情况是需要n-1次剪切,搜索层数不多,但每一层的状态数目又非常庞大,适宜使用IDA*.考虑每一个序列后续不正确的 ...

  4. axis2 webservice jar包使用情况(转)

    原文地址:axis2 webservice jar包使用情况 今天使用axis2webservice,整理了下jar包,方便以后时候. axis2 webservice 服务端jar包: --> ...

  5. 【hive】时间段为五分钟的统计

    问题内容 今天遇到了一个需求,需求就是时间段为5分钟的统计.有数据的时间戳.对成交单量进行统计. 想法思路 因为数据有时间戳,可以通过from_unixtime()来获取具体的时间. 有了具体的时间, ...

  6. 二叉树的前序、中序、后序遍历 python

    话不多说,直接上代码 class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None cl ...

  7. 初试 Julia 语言 (转)

    原文地址: https://blog.csdn.net/seekiu/article/details/47397067 随着  Julia 1.0版本的推出,人工智能圈子比较炸锅, 好像这门小众语言要 ...

  8. 将 UWP 中 CommandBar 的展开方向改为向下展开

    在 UWP 中使用 CommandBar 来迅速添加一组功能按钮是非常迅速的,是 UWP 中推荐的交互方案之一.也许你能见到 CommandBar 按你所需向下展开,不过可能更多数情况会看到 Comm ...

  9. vue中去掉url地址栏中的#符号

    要去掉vue中访问地址中的#符号可以在路由器中设置路由模式为history: export default new Router({ mode:'history', routes: [ { path: ...

  10. table中tr间距的设定table合并单元格 colspan(跨列)和rowspan(跨行)

    table中的tr的默认display:table-row,虽然可以修改为display:block但是就失去了tr特有的显示效果,如(td自动对齐): 并且在tr中对起设定padding是有用的,可 ...