51Testing软件测试论坛

标题: 点点点了那么久,今年终于被公司辞退了 [打印本页]

作者: 草帽路飞UU    时间: 2022-12-5 15:51
标题: 点点点了那么久,今年终于被公司辞退了
你在学习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


  核心概念


[attach]145714[/attach]

Dataset快速入门

  先看一个小例子:


  ◆ url


  ◆ method


  ◆expected


  http://lemon.ke.qq.com


  get


  成功


  http://lemonban.com


  post


  成功


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


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


[attach]145715[/attach]

打印的结果是这样的:

[attach]145716[/attach]


保存为excel

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


[attach]145717[/attach]


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

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


[attach]145718[/attach]



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

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


[attach]145719[/attach]


表格导入:import_set

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

[attach]145720[/attach]


获取数据进行自动化测试

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


[attach]145721[/attach]



和DataSet的操作一样的:

[attach]145722[/attach]


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

  ◆ DataBook


  ◆ DataSet


  ◆ 读取, import_set, import_book


  ◆ 写入, write











作者: Miss_love    时间: 2022-12-5 16:08

作者: oliver.tang    时间: 2023-3-17 10:19
了解一下




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2