简介

  在进行软件接口测试或设计自动化测试框架时,一个不比可避免的过程就是: 参数化,在利用python进行自动化测试开发时,通常会使用excel来做数据管理,利用xlrd、xlwt开源包来读写excel。例如:当我们登录的账号有多个的时候,我们一般用

excel 存放测试数据,本篇文章介绍,python 读取excel 方法,并保存为字典格式。

官网

  通过官网来查看如何使用python读取Excel,python excel官网: http://www.python-excel.org/

1、以下是翻译后的官网文档:

2、点击“文档”

3、点击“安装说明”

4、根据以上安装说明,进行准备

环境准备

1、以下是小编环境是:

操作系统:win10

python环境:python3.7

2、根据官方文档先安装 xlrd 模块,打开 cmd,输入 pip install xlrd 在线安装

3、出现红色圈的内容表示xlrd安装成功

python对Excel的基本操作

1、打开电子表格文件以进行数据提取,官方文档API

2、通过工作表索引、名称获取内容

3、实例1

(1)Excel内容

(2)代码实现

(3)运行结果

(4)参考代码1

 # coding=utf-
# .先设置编码,utf-8可支持中英文,如上,一般放在第一行 # .注释:包括记录创建时间,创建人,项目名称。
'''
Created on --
@author: 北京-宏哥
Project:学习和使用python读取Excel
'''
# .导入模块
import xlrd if __name__ == '__main__': # excel文件全路径
xlPath = "C:\\Users\\DELL\\Desktop\\test.xlsx"
# 用于读取excel
xlBook = xlrd.open_workbook(xlPath)
# 获取excel工作簿数
count = len(xlBook.sheets())
print(u"工作簿数为: ", count)
# 获取 表 数据的行列数
table = xlBook.sheets()[]
nrows = table.nrows
ncols = table.ncols
print(u"表数据行列为(%d, %d)" % (nrows, ncols))
# 循环读取数据
for i in range(, nrows):
rowValues = table.row_values(i) # 按行读取数据
# 输出读取的数据
for data in rowValues:
print(data, " ",)
print("")

4、参考代码2

 # coding=utf-
# .先设置编码,utf-8可支持中英文,如上,一般放在第一行 # .注释:包括记录创建时间,创建人,项目名称。
'''
Created on --
@author: 北京-宏哥
Project:学习和使用python读取Excel
'''
# .导入模块
import xlrd if __name__ == '__main__':
# 打开 exlce 表格,参数是文件路径
data = xlrd.open_workbook('C:\\Users\\DELL\\Desktop\\test.xlsx')
# table = data.sheets()[] # 通过索引顺序获取
# table = data.sheet_by_index() # 通过索引顺序获取
table = data.sheet_by_name(u'Sheet1') # 通过名称获取
nrows = table.nrows # 获取总行数
ncols = table.ncols # 获取总列数
# 获取一行或一列的值,参数是第几行
print(table.row_values()) # 获取第一行值
print(table.col_values()) # 获取第一列值

5、以上代码运行结果

Excel存放数据(参数)

1、在 excel 中存放数据,第一行为标题,也就是对应字典里面的 key 值,如登录的参数:username,password

封装读取参数或者数据方法

1、最终读取的数据是多个字典的 list 类型数据,第一行数据就是字典里的 key 值,从第二行开始一一对应 value 值

2、封装好的代码如下:

3、运行结果

小结

1、在安装xlrd模块的时候后边,还有一些黄色的警告,小伙伴们不需要的担心,翻译看一下,是需要更新pip

2、将提示的命令选中后,回车,另起一行粘贴,运行即可将pip更新到最新版本

3、小伙伴们可能发现在运行结果的显示:只有出现数字就会有个.0,解决办法:

  如果 excel 数据中有纯数字的一定要右键》设置单元格格式》文本格式,要不然读取的数据是浮点数(先设置单元格格式后编辑,编辑成功左上角有个小三角图标)

  修改单元格式,运行代码结果:可以清楚看到.0没有了

4、好了关于python读取Excel的内容,就先讲解到这个,有兴趣可以看其官方文档对表格进行合并、样式设置等等系列动作!!!

python接口自动化(三十七)-封装与调用--读取excel 数据(详解)的更多相关文章

  1. python接口自动化(二十三)--unittest断言——上(详解)

    简介 在测试用例中,执行完测试用例后,最后一步是判断测试结果是 pass 还是 fail,自动化测试脚本里面一般把这种生成测试结果的方法称为断言(assert).用 unittest 组件测试用例的时 ...

  2. python接口自动化(十九)--Json 数据处理---实战(详解)

    简介 上一篇说了关于json数据处理,是为了断言方便,这篇就带各位小伙伴实战一下.首先捋一下思路,然后根据思路一步一步的去实现和实战,不要一开始就盲目的动手和无头苍蝇一样到处乱撞,撞得头破血流后而放弃 ...

  3. python接口自动化(十三)--cookie绕过验证码登录(详解)

    简介 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接).获取不到也没关系,可以通过添加cookie的方式绕过验证码.(注意:并不是所有的 ...

  4. python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)

    简介 有些 post 的请求参数是 json 格式的,这个前面发送post 请求里面提到过,需要导入 json模块处理.现在企业公司一般常见的接口因为json数据容易处理,所以绝大多数返回数据也是 j ...

  5. python接口自动化三(登录绕开验证码及发帖)

    前言 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接). 获取不到也没关系,可以通过添加cookie的方式绕过验证码. 但是这里需要明确 ...

  6. python接口自动化(十)--post请求四种传送正文方式(详解)

    简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...

  7. python接口自动化-参数化

    原文地址https://www.cnblogs.com/yoyoketang/p/6891710.html python接口自动化 -参数关联(一)https://www.cnblogs.com/11 ...

  8. python接口自动化1-发送get请求

    前言 requests模块,也就是老污龟,为啥叫它老污龟呢,因为这个官网上的logo就是这只污龟,接下来就是学习它了. 一.环境安装 1.用pip安装requests模块 >>pip in ...

  9. python接口自动化8-参数化

    前言 前面一篇实现了参数的关联,那种只是记流水账的完成功能,不便于维护,也没什么可读性,接下来这篇可以把每一个动作写成一个函数,这样更方便了. 参数化的思维只需记住一点:不要写死 (由于博客园登录机制 ...

随机推荐

  1. TXT文本写入数据库

    load data local infile "D:/abc.txt" into table lee; leedabao.txt内容如下,中间用Tab隔开: 2 yuanpeng ...

  2. android android:duplicateParentState="true" "false"

    今天要做一个效果.组件RelativeLayout上有两个TextView.这两个TextView具有不同的颜色值,如今要的效果是,当RelativeLayout被点击时,整个item有高亮背景. 同 ...

  3. js如何获取手机的屏幕尺寸

    var width = $(document.body).outerWidth();//手机的屏幕宽 var height = $(window).innerHeight(); //手机的屏幕高

  4. eclipse的maven、Scala环境搭建

    最近重新搭建了一下maven+Scala的环境,发现很多东西都不记得了,于是重新记录一遍. 嫌搭建麻烦的话也可以直接下载Scala官方做好的环境http://scala-ide.org/downloa ...

  5. 阿里妈妈-RAP项目的实践(2)

    接口详情 (id: 32872) Mock数据 接口名称 datalist1 请求类型 get 请求Url /datas/list1 接口描述 数据列表 请求参数列表 变量名 含义 类型 备注 响应参 ...

  6. Mac终端操作SVN指令

    1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录)   例如:svn checkout svn://192.168.1.1/pro/domain    ...

  7. Codeforces Round #376 (Div. 2) C. Socks —— 并查集 + 贪心

    题目链接:http://codeforces.com/contest/731/problem/C 题解: 1.看题目时,大概知道,不同的袜子会因为要在同一天穿而差生了关联(或者叫相互制约), 其中一条 ...

  8. 看 迪杰斯特拉(Dijsktra)算法体会

    迪杰斯特拉 看啊哈算法中迪杰斯特拉算法体会: 算法思路 : 1.先找到源头到其他点的最短路: 2.以最短路作为中转点进行比较,用一个dis数组保存源头到他的最优距离 3.用循环进行最优筛选: #inc ...

  9. ++i和i++的效率孰优孰劣

    在内建数据类型的情况下,效率没有区别: 在自定义数据类型的情况下,++i效率更高! 分析: (自定义数据类型的情况下) ++i返回对象的引用: i++总是要创建一个临时对象,在退出函数时还要销毁它,而 ...

  10. JS搜索商品(跟外卖app店内搜索商品一样) ,keyup函数和click函数调用

    HTML: input输入框: <input id="sea" type="text"> JS: //点击搜索商品 $('#mys').click( ...