前言

  在自动化测试中,单纯写得测试脚本,数据往往是写死的,这样会给程序的可扩展性降低,以及成本的增加,将程序和数据进行剥离有利于提高代码的执行效率,提升工作量,因此将数据写入到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. CSS 层级选择器

    CSS 层级选择器 注:使用空格分隔,塞选到最后一项应用. 标签选择器 下 标签选择器 父标签 --> 指定子标签添加css属性 <html> <head> <!- ...

  2. HAOI(多省联考)2019退役记

    等着回头写 算了今天先写点 Day -1 打扫下机房,不想写题,不想考试.... Day 0 上午颓了一上午 下午看下考场结果去早了 ZYZ 全员进队! Day 1 上来T1,01Tire!,开码,半 ...

  3. jQuery validator plugin之Selector

    原文 :unchecked Selector Selects all elements that are unchecked. jQuery( ":unchecked" ) Inv ...

  4. jackson中@JsonProperty、@JsonIgnore等常用注解总结

    本文为博主原创,未经允许不得转载: 最近用的比较多,把json相关的知识点都总结一下,jackjson的注解使用比较频繁, jackson的maven依赖 <dependency> < ...

  5. hduoj 1002 A + B Problem II

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 题目描述如下: A + B Problem II Time Limit: 2000/1000 M ...

  6. robot framework---时间控件取值

    项目中遇到日期控件定位不了,网上各种找,并没有适合我的,目前通过Javascript已解决了,再次做个记录,方便自己日后查找,如有同样问题的同学也可以有个参考! 先说明,不同的定位方式是看开发同学如何 ...

  7. 个人爱好:idea 项目结构呈现风格

  8. 最接近的三数之和(java实现)

    题目: 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例如 ...

  9. All You Can Code 2008 (Romanian Contest) A - Tree Search

    A - Tree Search 思路: 经典树形dp dp[i][0]表示i的子树中以i为端点的最大链 dp[i][1]表是整棵树中除去i的子树剩下的部分以i为端点的最大链 最后答案就是以i为端点的最 ...

  10. C#---装箱、拆箱的一个案例

    using System; namespace ConsoleApplication1 { interface IInterface { void Add(int num); } struct Tes ...