Python接口自动化封装导出excel方法和读写excel数据

一、首先需要思考,我们在页面导出excel,用python导出如何写入文件的

封装前需要确认python导出excel接口返回的是一个什么样的数据类型
如下:我们先看下不对返回结果做处理,直接接收数据类型是一个对象,无法获取返回值

 此时我们需要对返回数据做处理,如下;
response.text # 响应文本数据(字符串)

 把返回的数据类型变成了dict,response.json()** 这样就方便我们按照字典的操作去拿数据**

但是 我们现在的操作是要获取导出文件的数据,导出excel是一个二进制文件:

response.content # 响应返回的内容(二进制)

接下来我们按思路response.content方法来把这个二进制文件写入excel中:

二、如下封装:
  1. class Export:

  2. """

  3. 导出域

  4. """

  5. def __init__(self, token):

  6. self.token = token

  7. self.headers = {

  8. 'Authorization': self.token,

  9. 'Content-Type': 'application/json;charset=UTF-8'

  10. }

  11. ```

  12. def export_sku_excel(self, payload, path):

  13. """

  14. 商品:商品明细导出

  15. """

  16. url = f'{HOST}/api/v1/commodity/exportSKU'

  17. res = client.post(url=url, json=payload, verify=False, headers=self.headers)

  18. resp = res.content

  19. with open(path, 'wb') as f: # 第一个参数是保存文件路径,不加路径就是当前路径

  20. if res.status_code == 200:

  21. return f.write(resp)

  22. else:

  23. return False

如上,先接收二进制文件,然后使用操作excel方法‘wb’写入二进制文件

以上写入文件后,测试过程我们需要再读取文件数据来断言,如下:

  1. class ExcelMethod:

  2. def __init__(self, filename):

  3. self.filename = filename

  4. def read_excel(self, row, col):

  5. """

  6. 读取导出文件的数据

  7. Returns:excel单元格数据

  8. """

  9. wb = xlrd.open_workbook(self.filename)

  10. sheet_name = wb.sheet_names()[0]

  11. sheet1 = wb.sheet_by_index(0)

  12. cellInfo = sheet1.cell_value(row, col) # 获取文件中某单元格的值

  13. return cellInfo # 返回文件单元格数据

以上是一个写入和读取导出excel的封装方法
值得注意的是,我用的是python内置库xlrd读写excel文件,xls格式文件xlrd可以读写,且xlrd使用1.几的版本,最新版本不支持xls文件,openpyxl库只支持xlsx格式文件

 还有一种方法,使用pandas库也可以读取Excel文件

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

文档获取方式:

加入我的软件测试交流群:1007119548免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值