51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 657|回复: 2
打印 上一主题 下一主题

[原创] 点点点了那么久,今年终于被公司辞退了

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-12-5 15:51:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你在学习python自动化测试吗?听过requests库吗?


  tablib是requests库常年维护的一个可以操作Excel等多种文件格式,将他们变成一种通用数据集的第三方库。


  tablib支持的主要数据格式有:


  ◆ xls, 老版 office 的 excel 文件格式;

  ◆ xlsx系列,新版 office 文件格式;


  ◆ json


  ◆ yaml


  ◆ html


  ◆ csv


  ◆df,pandas 的 DataFrame, 需要安装 pandas


  也就是说,tablib 能把不同格式的数据转化成一种通用的关系型数据格式,然后再各个格式之间无缝切换。


  什么叫关系型数据格式呢?


  比如:

  ◆ MySQL数据,每行数据对应着一个字段名。你可以通过这个库将数据库查询到的数据轻松存入Excel。


  ◆ Excel数据,每行数据都有一个header。


  ◆ json, 数据分为key和value


  ◆ 上面提到的都类似。


  tablib这种通用数据格式的特性解决了以前一些Excel操作库的一些问题。


  操作Excel的几个常用库:


  ◆ xlrd

  ◆ openpyxl


  这些库都是非常优秀的库,限制性也有:


  1、xlrd 的问题。他只能读,不能写。要写还得另外装库。

  2、openpyxl的问题。只支持xlsx系列的读写。因为现在大多使用这种Excel格式,所以这个问题其实可以忽略,但如果你的office软件比较老,只能用xls格式,这个库就用不了了。


  tablib的安装:


  1、安装pip install tablib

  2、导入import tablib


  核心概念




Dataset快速入门

  先看一个小例子:


  ◆ url


  ◆ method


  ◆expected


  http://lemon.ke.qq.com


  get


  成功


  http://lemonban.com


  post


  成功


  url, method, expected 是一个表的表头 header,其实就是每一列的名字,在数据库里我们称为字段名。下面的行都是数据。


  想要创建一个Excel非常的简单,只需要准备你需要的数据data, 表头header和表的名字 title:




打印的结果是这样的:



保存为excel

  要保存为excel文档,只需要像操作普通的文件一样读写就可以了,写入data.xls 或者 data.xlsx 属性里面的数据:




注意:模式需要用二进制模式wb。

  保存之后的结果是这样的:





Databook就是类似工作簿的概念,所以Databook需要的参数实际上就是上文中的 DataSet。

  如果一个Excel里只有一个表,用DataSet就够了,如果有多个表:





表格导入:import_set

  说完Excel的写操作, 接下来是读操作, 读取一个excel文件也是和普通文件读写类似,调用 import_set 方法:




获取数据进行自动化测试

  用一个例子来实战,获取excel文件里的数据,执行自动化测试程序:





和DataSet的操作一样的:




这篇我们熟悉了tablib的核心概念:

  ◆ DataBook


  ◆ DataSet


  ◆ 读取, import_set, import_book


  ◆ 写入, write










本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-10 10:21 , Processed in 0.068287 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表