前言

  在自动化测试中,单纯写得测试脚本,数据往往是写死的,这样会给程序的可扩展性降低,以及成本的增加,将程序和数据进行剥离有利于提高代码的执行效率,提升工作量,因此将数据写入到Excel文件中,前置条件已在本地搭建BugFree,若没有搭建可参考BugFree本地搭建。

  下列代码实现创建Excel文件的数据,和从Excel中读取数据,并将数据传值给脚本:

 #encoding=utf-8

 from selenium import webdriver

 import xlsxwriter #往Excel表格写数据 安装cmd输入: pip install XlsxWriter,前置条件已安装pip

 import xlrd,os # xlrd模块用于读EXCEL文档数据,安装xlrd在cmd中输入pip install xlrd,前置条件已安装pip

 # 新建Excel表格
def write_content():
# 新建Excel表格
xl = xlsxwriter.Workbook(os.getcwd()+'\\testData\\testResult.xlsx') # 新建Excel表格,注意需要在当前目录下新建testData文件夹
table = xl.add_worksheet('result') # 新建一个名为result的页签
# 设置格式:行高、列宽、底色、字号等格式
blue = xl.add_format({'font_name': 'Arial', 'font_size': 10,'color': 'blue'})
red = xl.add_format({'font_name': 'Arial', 'font_size': 10,'color': 'red'})
# 设置第一行的行高为30
table.set_row(0,15)
# 设置第1列到第3列的列宽为50
table.set_column(0,2,50)
# 写数据
table.write_string(0,0,'url',blue)
table.write_string(0,1,u'用户名',blue) # 往第一行第一列写入字符串数据
table.write_string(0,2,u'密码',red)
table.write_string(1,0,u'http://localhost/index.php/site/login',blue) # 往第二行第一列写入数字,本地搭建的bugfree地址
table.write_string(1,1,'admin',blue)
table.write_string(1,2,'',red)
# 关闭Excel表格
xl.close() # 读取数据
def read_content():
# 一下脚本实现bugfree登录,测试数据从Excel读取
data = xlrd.open_workbook(os.getcwd()+'\\testData\\testResult.xlsx')
tableGet = data.sheet_by_name('result')
testData = tableGet.row_values(1) #读取第二行数据
url,username,password = testData[0],testData[1],testData[2]
print url,username,password
return url,username,password # 定义测试脚本
def bugFreeLogin(driver,url,username,password):
driver.get(url)
driver.find_element_by_id('LoginForm_username').send_keys(username)
driver.find_element_by_id('LoginForm_password').send_keys(password)
driver.find_element_by_id('SubmitLoginBTN').click() # 启动脚本
if __name__ == '__main__':
# 数据的写入
write_content()
# 数据的读取
tup_result = read_content()
# 启动脚本去执行
driver = webdriver.Firefox()
bugFreeLogin(driver,tup_result[0],tup_result[1],tup_result[2])

自动化测试-16.selenium数据的分离之Excel的使用的更多相关文章

  1. 自动化测试-17.selenium数据的分离之txt文本的写入与读取

    前言 数据量偏小时,用txt文本保存数据比较合适,以-进行区分,为什么不用:呢?原因是,我们在使用数据时,会存在url地址的情况,里面宝行:所以用-进行替代 此处附上代码 #encoding=utf- ...

  2. Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记

    背景 最近在弄 appium,然后顺便发现了 Selenium 框架和这本书,恰好这本书也介绍了一些软件测试&自动化测试的理论知识,遂拿过来学习学习.所以本文几乎没有实践内容,大多都是概念和工 ...

  3. RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)

    好久没有继续分享关于自动化测试相关的东西了,自动化在现今的测试领域已经越来越重要了,大部分公司在测试岗位招聘中都需要会相关的自动化测试知识.而 RobotFramework自动化测试框架 是自动化测试 ...

  4. RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)

    本文紧接着RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)继续分享RobotFramewor ...

  5. Java&Selenium数据驱动【DataProvider+TestNG+Excel】

    Java&Selenium数据驱动[DataProvider+TestNG+Excel] package testNGWithDataDriven; import java.io.File; ...

  6. 小白学 Python 爬虫(28):自动化测试框架 Selenium 从入门到放弃(下)

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  7. c# .Net :Excel NPOI导入导出操作教程之List集合的数据写到一个Excel文件并导出

    将List集合的数据写到一个Excel文件并导出示例: using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using System;using Sys ...

  8. 将数据导入带模板EXCEL

    在EXCEL模板里设置好样式和格式 点击事件 private void btnReport_Click(object sender, EventArgs e)        {            ...

  9. Javascript模板及其中的数据逻辑分离思想(MVC)

    #Javascript模板及其中的数据逻辑分离思想 ##需求描述 项目数据库的题目表描述了70-120道题目,并且是会变化的,要根据数据库中的数据描述,比如,选择还是填空题,是不是重点题,题目总分是多 ...

随机推荐

  1. gcc、make编译

    一 arm-linux-gcc 常用参数 https://www.cnblogs.com/zhangpengshou/p/3587751.html 二 arm-linux-objdump常用参数 ht ...

  2. JS(JavaScript)的初了解5(更新中···)

    1.函数 关键词function 首先,我们先复习一下前面的知识: var 是JS的关键字,用于声明变量,声明在内存模块完成,定义(=)是在执行模块完成. var可以在内存模块提前(JS代码执行前)完 ...

  3. linux驱动编写(pwm驱动)【转】

    本文转载自:https://blog.csdn.net/feixiaoxing/article/details/79889240 pwm方波可以用来控制很多的设备,比如它可以被用来控制电机.简单来说, ...

  4. CF438E The Child and Binary Tree

    思路 设F(x)的第x项系数为权值和为x的答案 题目中要求权值必须在集合中出现,这个不好处理,考虑再设一个C,C的第x项如果是1代表x出现在值域里,如果是0,代表x没有出现在值域里,然后由于二叉树可以 ...

  5. ComponentOne 产品经理:为什么要从C1Report迁移到FlexReport

    概述 如果你正在使用ComponentOne Enterprise 的Reports for WinForm 报表控件(C1Report),你一定会喜欢更为强大的FlexReport! FlexRep ...

  6. lnmp或者lamp环境一键安装

    参考网址:https://lnmp.org/install.html 下载并安装LNMP一键安装包: 您可以选择使用下载版(推荐美国及海外VPS或空间较小用户使用)或者完整版(推荐国内VPS使用,国内 ...

  7. JS基础概念

    JS基础概念 1. 算法及流程图 算法类型:1.算数算法:2.事务性算法(解决某个问题的方法和先后顺序). JS语法概述 1. 引入JS的方法 1.用<script src="&quo ...

  8. 利用python操作excel

    https://zhuanlan.zhihu.com/p/51292549 打开程序:https://segmentfault.com/q/1010000002441500

  9. js的缓存

    无网络的情况下,使用静态资源呈现页面的方法,只有h5的manifest 有网的情况下(可以连接到服务器的情况下),有3种判断缓存的方式. ------------------------------- ...

  10. 雷林鹏分享:jQuery EasyUI 数据网格 - 创建页脚摘要

    jQuery EasyUI 数据网格 - 创建页脚摘要 在本教程中,我们将向您展示如何在数据网格(datagrid)页脚显示摘要信息行. 为了显示页脚行,您应该设置 showFooter 属性为 tr ...