一、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)