mysql数据驱动测试_自动化测试框架-数据驱动(2)

5、使用Excel进行数据驱动测试

测试逻辑:

(1)打开百度首页,从Excel文件中读取测试数据作为搜索关键词

(2)在搜索输入框中输入读取出搜索关键词

(3)单击搜索按钮

(4)断言搜索结果页面中是否出Excel文件中提供的预期内容,包含则认为测试执行成功,否则认为失败

测试数据准备:

在本地磁盘D:\test\DataDrivenTesting目录中新建一个“测试数据.xlsx”,工作表名为“搜索数据表”,内容如下“

序号搜索词期望结果

1 邓肯 蒂姆

2 乔丹 迈克尔

3 库里 斯蒂芬

实例代码:

在Pycharm中新建一个ExcelDataDrivenProject的Python工程,工程下新建两个文件,文件名分别为ExcelUtil.py和DataDrivenByExcel.py和DataDrivenByExcel.py

ExcelUtil.py文件用于编写读取Excel的脚本,具体内容如下:

#encoding=utf-8

from openpyxl importload_workbookclassParseExcel(object):def __init__(self, excelPath, sheetName):#将要读取的excel加载到内存

self.wb =load_workbook(excelPath)#通过工作表名称获取一个工作表对象

self.sheet =self.wb.get_sheet_by_name(sheetName)#获取工作表中存在数据的区域的最大行号

self.maxRowNum =self.sheet.max_rowdefgetDatasFromSheet(self):#用于存放从工作表中读取出来的数据

dataList =[]for line inself.sheet.rows:#遍历工作表中数据区域的每一行,

#并将每行中各个单元格的数据取出存于列表tmpList中,

#然后再将存放一行数据的列表添加到最终数据列表dataList中

tmpList =[]

tmpList.append(line[1].value)

tmpList.append(line[2].value)

dataList.append(tmpList)#将获取工作表中的所有数据的迭代对象返回

#因为工作表中的第一行是标题行,所以需要去掉

return dataList[1:]if __name__ == '__main__':

excelPath= u'D:\\test\\DataDrivenTesting\\测试数据.xlsx'sheetName= u"搜索数据表"pe=ParseExcel(excelPath, sheetName)printpe.getDatasFromSheet()for i inpe.getDatasFromSheet():print i[0], i[1]

DataDrivenByExcel.py文件用于编写数据驱动测试脚本代码,具体内容如下:

#encoding=utf-8

importunittest,timeimportlogging,tracebackimportddtfrom selenium importwebdriverfrom selenium.common.exceptions importNoSuchElementExceptionfrom ExcelUtil importParseExcel#初始化日志对象

logging.basicConfig(#日志级别

level =logging.INFO,#日志格式

#时间、代码所在文件名、代码行号、日志级别名、日志信息

format = "%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s",#打印日志的时间

datefmt = "%a,%d %b %Y %H: %M: %S",#日志文件存放的目录(目录必须存在)及日志文件名

filename = "D:\\test\\DataDrivenTesting\\report.log",#打开日志文件的方式

filemode = "w")

excelPath= u"D:\\test\\DataDrivenTesting\\测试数据.xlsx"sheetName= u"搜索数据表"

#ParseExcel类的实例对象

excel =ParseExcel(excelPath,sheetName)

@ddt.ddtclassTestDemo(unittest.TestCase):defsetUp(self):

self.driver= webdriver.Ie(executable_path = "D:\\IEDriverServer")

@ddt.data(*excel.getDatasFromSheet())deftest_dataDrivenByExcel(self,data):

testdata,expectdata=tuple(data)

url= "http://www.baidu.com"self.driver.get(url)

self.driver.maximize_window()#设置隐式等待时间为10秒

self.driver.implicitly_wait(10)try:#找到搜索框,并输入测试数据

self.driver.find_element_by_id("kw").send_keys(testdata)#找到搜索按钮并单击

self.driver.find_element_by_id("su").click()

time.sleep(3)#断言期望结果是否出现在页面源代码中

self.assertTrue(expectdata inself.driver.page_source)exceptNoSuchElementException,e:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值