前言

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

    找不到符号异常 在控制台项目中配置Lombok 编译会报错 找不到符号 解决 方法: 父类字段ToString不了 @Data @NoArgsConstructor @AllArgsConstruct ...

  2. FastJson中JSONObject用法及常用方法总结

    本文为博主原创,未经允许不得转载: 最近一直有用到解析各种数据,主要是用FastJson进行数据解析,其中一个重要的类为JSONObject,今天有时间,所以进行总结一下: JSONobject是Fa ...

  3. 扩展的GM命令

    命令 说明 例子 .rl all 重载核心所有自定义数据表   .rl item 重载item_template   .backup a 备份Auth数据库   .backup c 备份Charact ...

  4. CSS之user-select——设置标签中的文字是否可被复制

    详细介绍请参考 http://www.css88.com/book/css/properties/user-interface/user-select.htm CSS样式 user-select:no ...

  5. CentOS7.x系统中使用Docker时,在存储方面需要注意的问题

    简述: 1.Docker 1.12.6/v17.03文档中CentOS7系统下安装时,明确说明,用于生产时,必须使用devicemapper驱动的direct-lvm模式,需要我们提前准备好块设备,以 ...

  6. 力扣(LeetCode)605. 种花问题

    假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去. 给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花 ...

  7. 使用echarts时option可以复用的方法

    其实复用option很简单,在所要展示的图形在其他需求大致一致时,即可写一个option然后设置不同的地方就好了,坐标轴.series等都可以设置,具体代码如下: var barLeft = echa ...

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

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

  9. Angular 学习笔记 (Material Datepicker)

    https://material.angular.io/components/datepicker/overview 官网介绍很清楚了,这里记入一下我比较不熟悉的. 1. moment js Angu ...

  10. guxh的python笔记二:函数基础

    1,函数的参数 1.1,查看函数的参数类型 def run(a, *args, b, **kwargs): return a + b 可以通过如下方式查看参数类型: import inspect k ...