前言

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

    永久破解IDEA(很多license服务器都是非永久性的,太麻烦了) https://www.cnblogs.com/iathanasy/p/9469280.html,亲测. 在我们为 IDEA 等编 ...

  2. 使用docker部署ambari的若干要点

    ambari部署各个组件 使用ambari进行部署时主要需要的组件包括: ambari-server: 主要部署的控制节点,负责控制agent进行部署. mysql: server存储的数据库.也支持 ...

  3. python中多继承C3算法研究

    在python的面向对象继承问题中,单继承简单易懂,全部接受传承类的属性,并可添加自带属性, 但是,在多继承情况下,会遇到多个被继承者的顺序问题,以及多次继承后查找前几次继承者需求属性时,可能不易发现 ...

  4. linux --- 8. mysql数据库,redis 数据库

    一. mysql 数据库 1.安装方式 ①yum安装 ②源代码编译安装 ③rpm包安装 yum安装的前提条件,是准备好yum源,可以选择163源,清华源,阿里云源,等等等 .安装mariadb的yum ...

  5. .NET ActiveMQ类库

    ActiveMQ .NET类库 ActiveMQ是一种开源的,实现了JMS规范的,面向消息(MOM)的中间件,为应用程序提供高效的.可扩展的.稳定的和安全的企业级消息通信. 0. 准备 使用Nuget ...

  6. 20175312 2018-2019-2 《Java程序设计》第1周学习总结

    20175312 2018-2019-2 <Java程序设计>第1周学习总结 教材学习内容总结 已依照教材要求完成了第一章的学习,我总结的话,主要的学习量还是在安装相关软件上.其他的,比如 ...

  7. 【Mac】【环境变量】

    Mac配置环境变量的地方  1./etc/profile   (建议不修改这个文件 )  全局(公有)配置,不管是哪个用户,登录时都会读取该文件.    2./etc/bashrc    (一般在这个 ...

  8. ios外包公司——技术分享:手机应用开发步骤

    1. 确定你的创意 您的创意是否有人做过,如果有类似的app,那就要多多考虑,争取超越并且有一些独特的优化设计在其中 2. 定位应用 通过苹果的人机界面指南(Human Interface Guide ...

  9. dropna(thresh=n) 的用法

    thresh=n,保留至少有 n 个非 NA 数的行

  10. [python]windows截图

    Windows截图 截图:截取屏幕任意大小图片 下载pip install Pillow from PIL import ImageGrab # x1:开始截图的x坐标 # x2:开始截图的y坐标; ...