在接口自动化测试领域,使用Excel管理测试数据是一种常见的做法。本文将分享一个实际案例,介绍在Python自动化测试框架中,如何从响应结果中提取所需数据,并探讨在处理JSON格式数据时遇到的一个典型问题及其解决方案。
首先,让我们了解测试数据的基本格式。在Excel中,我们定义了一个名为extract_data
的字段,用于指定要从响应中提取哪些数据。例如,我们可能需要从响应中提取一个名为token
的字段。
为了实现这一功能,我编写了一个名为HandleExtractData
的Python类。该类包含一个extract_data
方法,接收响应结果(一个字典)和待提取数据的规则(一个字符串)。下面是代码的核心部分:
class HandleExtractData:
def __init__(self):
pass
def extract_data(self, response: dict, extract_data: str):
if extract_data:
extract_data = extract_data if isinstance(extract_data, dict) else json.loads(extract_data)
for key, val in extract_data.items():
value = jsonpath(response, val)[0]
setattr(HandleAttr, key, value)
else:
print("Excel中该字段为空,无需提取数据")
处理逻辑如下:
-
检查
extract_data
是否为空。如果不为空,继续下一步;否则,输出提示信息。 -
如果
extract_data
是字符串格式,使用json.loads()
将其转换为字典。 -
遍历
extract_data
中的每个键值对,使用jsonpath
库从响应结果中提取对应的值。 -
将提取到的值设置为全局变量,以便在后续接口中使用。
然而,在最初编写测试用例时,我犯了一个小错误:在extract_data
的JSON字符串中使用了单引号,而不是标准JSON格式所要求的双引号。这导致运行时出现了以下错误:
Python/Json:Expecting property name enclosed in double quotes
经过一番排查,我最终发现了问题所在,并进行了修正。将单引号替换为双引号后,代码成功运行。
通过这个案例,我们可以看到,在处理JSON数据时,严格遵守格式规范是非常重要的。同时,我们也可以利用Python的强大库来实现灵活的数据提取和处理。希望这个案例能对你有所帮助。
标签:提取,Python,data,JSON,数据处理,格式,extract From: https://www.cnblogs.com/sjxforfree/p/18172469