尝试用python/requests偷懒(2)-导出报表页面表格
背景:
报表功能一般带有导出excel表格功能,测试用例设计会有测试点:对比报表网页数据与excel导出数据。
需求:
将页面报表数据抓取存到excel中,便于测试点(对比报表页面与导出excel数据)的校验。
实现:
import requests
import getvalues
# url 地址
turl = "http://11.23.45.6:31002/atmbootSys/profitQuery/queryProfitData"
# 登录态信息
theaders = {
'Cookie': 'youcannotsee123456',
'CSRF-TOKEN': '123456'
}
# 报表参数
tparams ={
"dealMonth": "202201",
"branchCode": "PB110100"
}
# 访问报表
r = requests.post(turl, headers=theaders, json=tparams)
# 打印http状态码
print(r.status_code)
# 打印分隔符
print('-----------------************************')
# 将响应结果转换为json格式便于操作
resraw = r.json()
# 获取响应结果中的字段作为列值
co1value = getvalues.get_target_value('measFlag',resraw,[])
co2value = getvalues.get_target_value('PB110100',resraw,[])
# 获取响应结果中的字段作为列头
co1 = resraw['data']['header'][0]['label']
co2 = resraw['data']['header'][1]['label']
# print(type(co1value))
# print(co2value)
# print(co1)
# print(co2)
# 将两个列值组合成一个列表
r = [list(t) for t in zip(co1value, co2value)]
# 将列值、列头写入名字为‘data2.xls’的excel中
output = open('data2.xls', 'w', encoding='gbk')
output.write(co1+'\t'+co2+'\n')
for i in range(len(r)):
for j in range(len(r[i])):
output.write(str(r[i][j]))
output.write('\t')
output.write('\n')
output.close()
data2.xls展示: