我们可以将测试数据用excel存储,再用ddt去传入,不过我们需要安装对应的库,因为python是无法操作excel的

1.安装第三方库xlrd

2.创建一个excel表格,将需要测试的数据保存

3.封装读取excel

# coding:utf-8
import xlrd
class ExcelUtil():
def __init__(self, excelPath, sheetName="Sheet1"):
self.data = xlrd.open_workbook(excelPath)
self.table = self.data.sheet_by_name(sheetName)
# 获取第一行作为key值
self.keys = self.table.row_values(0)
# 获取总行数
self.rowNum = self.table.nrows
# 获取总列数
self.colNum = self.table.ncols
def dict_data(self):
if self.rowNum <= 1:
print("总行数小于1")
else:
r = []
j=1
for i in range(self.rowNum-1):
s = {}
# 从第二行取对应values值
values = self.table.row_values(j)
for x in range(self.colNum):
s[self.keys[x]] = values[x]
r.append(s)
j+=1
return r
if __name__ == "__main__":
filepath = "data_excel"
#sheetName = "Sheet1"
data = ExcelUtil(filepath)
print data.dict_data()
for i in data.dict_data():
print i

4.ddt和excel结合

from selenium import webdriver
from common.base import BasePage
from page.page_login import LoginPage,login_url
from common.read_excel_ddt import ExcelUtil
import unittest
import ddt #用excle表格传入
filepath="data_excel.xlsx"
data=ExcelUtil(filepath)
datadict=data.dict_data()
print datadict @ddt.ddt
class Login_test(unittest.TestCase):
'''登录页面的测试用例''' @classmethod
def setUpClass(cls):
#只打开一次浏览器
cls.driver=webdriver.Firefox()
#实例化page_login中的LoginPage类
cls.login_driver=LoginPage(cls.driver)
cls.driver.open(login_url) def setUp(self):
#每次都从登录页开始
self.driver.get(login_url) def tearDown(self):
#每次清空登录的cookie,数据还原
self.driver.delete_all_cookies()
@classmethod
def tearDownClass(cls):
#关闭浏览器
cls.driver.quit() def login_case(self,user,psw,exc):
'''登录的流程'''
self.login_driver.input_username(user)
self.login_driver.input_password(psw)
self.login_driver.click_submit()
result=self.login_driver.is_login_sucess()#获取结果
#如果用excel的话 由于返回的是0,1所以需要用bool
except_result=bool(exc)
self.assertEqual(result,except_result)#断言    @ddt.data(*datadict)#把excel中的数据挨个传入
def test_login_01(self,data):
'''登陆失败用例:输入正确的账户,错误的密码'''
     self.login_case(data["username"],data["psw"],data["expect"])
    def test_login_02(self,data):
'''登陆失败用例:输入正确的账户,正确的密码'''
    self.login_case(data["username"],data["psw"],data["expect"])
if __name__=="__main__":
unittest.main()

数据驱动ddt+excel数据读取的更多相关文章

  1. python + Excel数据读取(更新)

    data.xlsx 数据如下: import xlrd#1.读取Excel数据# table = xlrd.open_workbook("data.xlsx","r&qu ...

  2. 自己封装的Java excel数据读取方法

    package org.webdriver.autotest.data; import jxl.Workbook; import jxl.Sheet; import jxl.Cell; import ...

  3. python应用_读取Excel数据列表输出【一】

    python能使用xlrd模块实现对Excel数据的读取,且按照想要的输出形式. 1.准备Excel数据如下: 2.下面主要是对Excel数据读取后以双列表(每一行是一个用例为一个列表,再一个个案例组 ...

  4. Pandas 数据读取

    1.读取table # 读取普通分隔数据:read_table # 可以读取txt,csv import os os.chdir('F:/') #首先设置一下读取的路径 data1 = pd.read ...

  5. 数据驱动 - 不同数据源的读取方式(ddt、数据文件、mysql)

    1. ddt 装饰器传参 2. ddt 读取数据文件 3. 读取 txt 文件 4. 读取 excel 文件 5. 连接 mysql 1. ddt 装饰器传参 python 的数据驱动模块 ddt 安 ...

  6. java的poi技术读取Excel数据到MySQL

    这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 ...

  7. DataTable to Excel(使用NPOI、EPPlus将数据表中的数据读取到excel格式内存中)

    /// <summary> /// DataTable to Excel(将数据表中的数据读取到excel格式内存中) /// </summary> /// <param ...

  8. .NET读取Excel数据,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序

    解决.NET读取Excel数据时,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序的操作: 1. 检查本机是否安装Office Access,如果未安装去去h ...

  9. oledbdataadapter 读取excel数据时,有的单元格内容不能读出

    表现:excel中某列中,有的单元格左上角有绿色箭头标志,有的没有,c#编写读取程序,但是只能读取出带绿色箭头的单元格中的内容,其余不带的读取不到内容 原因:excel中单元格因为是文本格式而存储了数 ...

随机推荐

  1. OFBiz:component-load.xml

    component-load.xml定义了OFBiz的组件载入位置,默认的是通过目录来设置: <component-loader xmlns:xsi="http://www.w3.or ...

  2. Ubuntu和windows文件共享问题

    ubuntu访问windows共享文件夹(ubuntu桌面系统):          最简单的方法,随便打开一个文件夹,按Ctrl+L,然后地址栏敲smb://xxx.xxx.xxx.xxx(wind ...

  3. 使用CXF实现基于Rest方式的WebService

    本文介绍使用CXF实现基于Rest方式的WebService(CXF的版本是3.0.0) 一. 前言 Java有三种WebService规范:Jax-WS,Jax-RS,Jaxm 1. Jax-WS( ...

  4. 转MQTT压力测试之Tsung的使用

    转自:http://www.cnblogs.com/lingyejun/p/7941271.html nTsung测试工具的基本测试命令为 Tsung -f  ~/.tsung/mqtt.xml -l ...

  5. MySQL主从配置的一些总结

    有很多朋友做了mysql主从也有一段时间了,但是有时候也走了不少弯路,时间也浪费了不少,主要问题是没有查阅其他的主机配置的相关资料,而仅仅是看了配置文档,下面是作者对主从配置的一些总结. AD: 20 ...

  6. 如何查看Linux操作系统的位数

    如何查看Linux操作系统的位数 1.编程实现: 在程序中返回sizeof(int)的值,返回的结果是操作系统的字节数.若返回4则是32位操作系统,返回8即是64位. 2.2.getconf命令: g ...

  7. location if (.....) #if与中括号之间要有空格

    [root@web01 default]# /app/server/nginx/sbin/nginx -t nginx: [emerg] unknown directive nginx: config ...

  8. 微服务实战-使用API Gateway

    当你决定将应用作为一组微服务时,需要决定应用客户端如何与微服务交互.在单体式程序中,通常只有一组冗余的或者负载均衡的服务提供点.在微服务架构中,每一个微服务暴露一组细粒度的服务提供点.在本篇文章中,我 ...

  9. 每日英语:When Social Skills Are A Warning

    An uncle starts believing all your sarcastic comments. Or a kindhearted friend never understands any ...

  10. glibc中malloc()的空间overhead

    在linux下调用malloc()分配内存的时候,实际占用的内存与请求的内存尺寸的关系是什么呢,这个需要研究一下glibc中malloc()的实现.现在常见linux发行版中带的glibc中采用的都是 ...