Python接口自动化响应结果json格式化输出+断言响应结果中指定的属性值+其他

一、Python字典
二、Python元组
三、接口响应值转为字典格式
四、接口响应值以json格式输出并添加到allure报告中
五、断言响应结果中指定的属性值
六、TypeError: string indices must be integers报错处理

一、了解Python字典

字典是另一种可变容器模型,且可存储任意类型对象。
请添加图片描述

链接:https://www.runoob.com/python/python-dictionary.html

二、了解Python元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
请添加图片描述

链接:https://www.runoob.com/python/python-tuples.html

三、接口响应值转为字典格式

# @Author: Eayonz,,定义字典,存储response的响应值
        response_dicts = dict()
        response_dicts['code'] = response.status_code
        try:
            response_dicts['body'] = response.json()
        except Exception as e:
            print(e)
            response_dicts['body'] = ''
        response_dicts['text'] = response.text
        return response_dicts

四、接口响应值以json格式输出并添加到allure报告中

# -*- coding: utf-8 -*-            
# @Author  : Eayonz
# @FileName: ConsoleJson.py
# @Software: PyCharm

"""
封装控制台以json格式化输出
"""
import json
class ConsoleJsons:

    @staticmethod
    def console_json(response):
        a = response['text']
        j = json.loads(a)
        json_dicts = json.dumps(j, indent=4, ensure_ascii=False)
        # 当返回值>1时,Python将返回值包装成元组,并返回
        return j, json_dicts
        # allure报告中添加response,以json格式化输出数据
        jresponse = ConsoleJson.ConsoleJsons.console_json(response)[1]
        allure.attach(body=
                      f"{jresponse}",
                      name="Response Data",
                      attachment_type=allure.attachment_type.TEXT)

五、断言响应结果中指定的属性值

断言响应结果中info的下一层级:min_price字段值
请添加图片描述

# 查看上面封装的方法
# 将json字符串解码成python对象(将str转化成dict),取console_json()第1个返回值
	j = ConsoleJson.ConsoleJsons.console_json(response)[0]
	assert j['info']['min_price'] > 0

六、TypeError: string indices must be integers报错处理

解释:TypeError:字符串索引必须是整数
Python按照字典格式访问,无法直接识别json,需要借助json.loads()方法将其格式化处理。

a = response['text']
# json.loads将json字符串解码成python对象(将str转化成dict)
j = json.loads(a)

补充:

# json.dumps将python对象格式化成json字符(将dict转化成str)
json_dicts = json.dumps(j)
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值