草帽路飞UU 发表于 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









Miss_love 发表于 2022-12-5 16:08:22

:lol

oliver.tang 发表于 2023-3-17 10:19:05

了解一下
页: [1]
查看完整版本: 点点点了那么久,今年终于被公司辞退了