转 基于Excel参数化你的Selenium2测试
转载:https://blog.csdn.net/zhusongziye/article/details/80100375
前言
今天我们就如何使用xlrd模块来进行python selenium2 + excel自动化测试过程中的参数化进行演示说明,以解决大家在自动化测试实践过程中参数化的疑问。
环境安装
xlrd是python用于读取excel的第三方扩展包,因此在使用xlrd前,需要使用以下命令来安装xlrd。
pip install xlrd
xlrd基本用法
导入扩展包
import xlrd
打开excel文件
excel = xlrd.open_workbook(u'excelFile.xls')
获取工作表
# 通过索引顺序获取
table = excel.sheets()[0]
table = excel.sheet_by_index(0)
# 通过工作表名获取
table = excel.sheet_by_name(u'Sheet1')
获取行数和列数
# 获取行数
nrows = table.nrows
# 获取列数
ncols = table.ncols
获取整行或整列的值
# 其中i为行号, j为列号# 行号、列号索引从0开始
row_values = table.row_values(i)
col_values = table.col_values(j)
获取指定单元格数据
# i-行号, j-列号
value = table.cell(i, j).value
# 例如获取第一行、第一列的数据
value = table.cell(0, 0).value
循环行遍历列表数据
# 先获取行数
nrows = table.nrows
# 遍历打印所有行数据
for i in range(0, nrows):
print table.row_values(i)
至此我们将xlrd基本常用的技巧和方法都一一列举完毕,下面我们一起看一下如何利用xlrd来实现python selenium2自动化测试参数化。
代码示例
我们以上一章我们的第一个python selenium2测试代码为蓝本,进行改造,从excel中读取以下格式的数据来进行测试, 请将下列表格数据存入名为baidu_search.xlsx的excel文件。
序号 | 搜索词 | 期望结果 |
---|---|---|
1 | 开源优测 | 开源优测_百度搜索 |
2 | 别啊 | 别啊_百度搜索 |
3 | 尼玛,能不能动手分享下? | 尼玛,能不能动手分享下?_百度搜索 |
# 将以下代码保存到first_webdriver.py中
#-*- coding:utf-8 -*-
from selenium import webdriver
import unittest
import HTMLTestRunner import sys
from time import sleep
import xlrd
reload(sys)
sys.setdefaultencoding("utf-8")
class LoadBaiduSearchTestData:
def __init__(self, path):
self.path = path
def load_data(self):
# 打开excel文件
excel = xlrd.open_workbook(self.path)
# 获取第一个工作表
table = excel.sheets()[0]
# 获取行数
nrows = table.nrows
# 从第二行开始遍历数据
# 存入一个list中
test_data = []
for i in range(1, nrows):
test_data.append(table.row_values(i))
# 返回读取的数据列表
return test_data
class BaiduTest(unittest.TestCase):
"""百度首页搜索测试用例"""
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url = u"http://www.baidu.com"
self.path = u"baidu_search.xlsx"
def test_baidu_search(self):
driver = self.driver
print u"开始[case_0001]百度搜索"
# 加载测试数据
test_excel = LoadBaiduSearchTestData(self.path)
data = test_excel.load_data()
print data
# 循环参数化
for d in data:
# 打开百度首页
driver.get(self.base_url)
# 验证标题
self.assertEqual(driver.title, u"百度一下,你就知道")
sleep(1)
driver.find_element_by_id("kw").clear()
# 参数化 搜索词
driver.find_element_by_id("kw").send_keys(d[1])
sleep(1)
driver.find_element_by_id("su").click()
sleep(1)
# 参数化 验证搜索结果标题
self.assertEqual(driver.title, d[2])
sleep(2)
def tearDown(self):
self.driver.quit() if __name__ == '__main__':
testunit = unittest.TestSuite()
testunit.addTest(BaiduTest('test_baidu_search'))
# 定义报告输出路径
htmlPath = u"testReport.html"
fp = file(htmlPath, "wb")
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
title=u"百度测试",
description=u"测试用例结果")
runner.run(testunit)
fp.close()
总结
在上文中,我们详细的描述了xlrd操作excel的各种方法和技巧,以及封装xlrd读取excel实现在python selenium自动化测试过程参数化相应的输入数据和期望结果。
最重要的还是需要大家自己多练习相关的代码,并能做相应的扩展, 同时要去有针对性的学习对应的库,深入了解其使用方法和技巧,甚至原理。
转 基于Excel参数化你的Selenium2测试的更多相关文章
- 基于Excel参数化你的Selenium2测试-xlrd
本篇文章转载至苦叶子: 前言 今天我们就如何使用xlrd模块来进行python selenium2 + excel自动化测试过程中的参数化进行演示说明,以解决大家在自动化测试实践过程中参数化的疑问 ...
- 基于Excel参数化你的Selenium2测试代码
- 基于excel的接口自动化测试框架:支持参数化、关联等
1. 框架结构说明 2. 框架代码实现 action 包 case_action.py business_process 包 main_process.py util 包 global_var.py ...
- [其他] 蒙特卡洛(Monte Carlo)模拟手把手教基于EXCEL与Crystal Ball的蒙特卡洛成本模拟过程实例:
http://www.cqt8.com/soft/html/723.html下载,官网下载 (转帖)1.定义: 蒙特卡洛(Monte Carlo)模拟是一种通过设定随机过程,反复生成时间序列,计算参数 ...
- 10月12号 晚八点 Speed-BI 云平台-基于Excel数据源的管理驾驶舱构建全过程,腾讯课堂开课啦
认真地做了一大摞一大摞的报表,老板没时间看?努力把能反馈的内容都融汇进图表里,老板嫌复杂?做了几个简单的报表,老板一眼就觉得信息不全面?每个报表都用了各种各样的图表,老板却毫无兴趣?明明很努力了,为什 ...
- PowerDesigner数据库设计PDM基于Excel的导入导出总结
经常用到pdm来管理代码,一两张表,手写一下还凑合,一旦表多了,就慌了.于是,开始学习用vbs进行Excel的来快速导入导出操作PDM就变得很紧急了,搜罗了网络上的很多vbs脚本,各有各的优点,但对于 ...
- 基于USB3.0的双目相机测试小结之CC1605配合CS5642 双目 500w摄像头
基于USB3.0的双目相机测试小结之CC1605配合CS5642 双目 500w摄像头 CC1605双目相机评估板可以配合使用柴草电子绝大多数摄像头应用 如:OV5640.OV5642.MT9P03 ...
- 基于linux下的NIST数字测试包安装过程
基于linux下的NIST数字测试包安装过程 1. 首先解决windows文件不能粘贴到Ubuntu的问题 选择利用VMware Tools进行解决 打开虚拟机VMware Workstation,启 ...
- 《数据分析实战:基于EXCEL和SPSS系列工具的实践》一1.4 数据分析的流程
本节书摘来华章计算机<数据分析实战:基于EXCEL和SPSS系列工具的实践>一书中的第1章 ,第1.4节,纪贺元 著 更多章节内容可以访问云栖社区"华章计算机"公众号查 ...
随机推荐
- Git远程仓库地址变更本地如何修改
以项目test为例: 老地址:http://192.168.1.1:9797/john/test.git 新地址:http://git.xxx.xxx/john/test.git 远程仓库名称: or ...
- iOS 渐变提示。错误弹出提示 几秒自动消失
//事例 CGRect alertFarm = CGRectMake(,,,); [self noticeAlert:_bgView withNoticeStr:@"登录成功" w ...
- 【.NET 深呼吸】在 .net core app 中使用 Composition
.NET 中的 Composition ,即 MEF.MEF 说得简单一点,就是它可以在运行阶段动态地发现类型,用于组件扩展方面特别合适. .NET Core App 的默认框架并不提供 MEF 有关 ...
- .NET领域最为流行的IOC框架之一Autofac WebAPI2使用Autofac实现IOC属性注入完美解决方案 AutoFac容器初步
.NET领域最为流行的IOC框架之一Autofac 一.前言 Autofac是.NET领域最为流行的IOC框架之一,微软的Orchad开源程序使用的就是Autofac,Nopcommerce开源程 ...
- TensorFlow+Keras 02 深度学习的原理
1 神经传递的原理 人类的神经元传递及其作用: 这里有几个关键概念: 树突 - 接受信息 轴突 - 输出信息 突触 - 传递信息 将其延伸到神经元中,示意图如下: 将上图整理成数学公式,则有 y = ...
- SNF软件开发机器人2018最新更新内容
SNF软件开发机器人从10月份到现在的更新升级情况如下: 1 表单 表单控件占多列时,宽度默认0,自适应宽度2 excel导出 部分excel导出方法移动到框架中,可通用获取3 生成代码 生成的代码, ...
- tp5.0中及其常用方法的一些函数方法(自己看)和技巧(不断添加中)
1.目录结构 2.路由 3..控制器 4.模型写法 5.视图标签 6.数据库操作 7.表单验证 8.分页 --------------------------- 1.目录结构 project 应用部署 ...
- Sublime text 3 格式化代码 插件
JsFormat: 重新打开sublime就能使用js格式化插件 使用方法: 1.快捷键:ctrl+alt+f 2.或者先用快捷键打开命令面板 “ctrl + shift + p”, 再输入 “For ...
- [HDFS Manual] CH2 HDFS Users Guide
2 HDFS Users Guide 2 HDFS Users Guide 2.1目的 2.2.概述 2.3.先决条件 2.4. Web Interface 2.5. Shell Command 2. ...
- Openfire 单人聊天和多人聊天(发送消息、接收消息)
Openfire 单人聊天和多人聊天(发送消息.接收消息) 一.单人聊天 1)发送消息: 首先要获取一个聊天窗口,getConnection()为获取连接connection的方法,调用getFrie ...