python接口测试返回数据为字典取值方式

  • Post category:Python

Python接口测试常用的返回数据格式包括JSON、XML、字典等,其中字典返回数据在处理过程中非常灵活。下面依次介绍Python接口测试返回数据为字典取值方式的完整攻略:

1. 发送请求并获取返回数据

要获取接口返回数据,首先需要通过Python发送请求,并接收服务器返回的数据。可以使用requests库发起HTTP请求,简单示例代码如下:

import requests

url = 'http://example.com/api'
response = requests.get(url)

在这个例子中,使用requests.get()方法向接口地址发送了一个GET请求,并将返回结果存储在response变量中。

2. 解析字典类型的返回数据

通过前面的请求操作,我们已经得到了一个字典类型的接口返回数据。要对字典类型的数据进行处理,可以使用json模块来完成功能。现在我们可以通过下面的示例代码将返回的字典类型的数据转化为JSON格式数据:

import json

# 将返回数据转为JSON格式
response_json = json.loads(response.text)
print(response_json)

上述代码将字典类型的返回数据转化为JSON格式数据,并使用print()方法将其打印出来。此时我们可以清晰地看到接口返回数据的完整形态。

3. 获取特定的数据项

对于字典类型的数据,可以根据键来访问其对应的值。接口返回数据通常包含多个数据项,我们可以通过访问某个特定的键来获取其对应的值。示例代码如下:

# 获取特定数据项的值
data = response_json['data']
print(data)

上述代码中,通过response_json['data']访问数据中名为data的键,返回该数据项的值。可以使用print()方法将该值打印出来。

示例1:获取接口返回的某个用户的详细信息

下面是一个具体示例,我们需要从一个返回用户信息列表的接口中获取特定用户的详细信息。假设接口返回数据如下:

{
    'status': 'success',
    'data': [{
        'user_id': 1,
        'username': '张三',
        'age': 25,
        'gender': '男',
        'phone': '13512341234'
    },
    {
        'user_id': 2,
        'username': '李四',
        'age': 30,
        'gender': '男',
        'phone': '13612345678'
    }]
}

我们需要获取user_id1的用户详细信息。可以通过如下代码实现:

# 获取特定用户的信息
for user in response_json['data']:
    if user['user_id'] == 1:
        print(user)

上述代码中,使用for循环遍历用户信息列表,逐个判断每个用户的user_id是否等于1。如果相等,就打印出该用户的详细信息。

示例2:获取接口返回的某个商品信息

假设我们需要从一个返回商品信息的接口中获取特定商品的价格信息,接口返回数据如下:

{
    'status': 'success',
    'data': [
        {
            'product_id': 1,
            'product_name': '华为Mate40 Pro',
            'price': 5999,
            'description': '华为Mate40 Pro是一部高端旗舰手机,采用最新的麒麟9000芯片及先进的超感知徕卡电影四摄。'
        },
        {
            'product_id': 2,
            'product_name': '小米10',
            'price': 3299,
            'description': 'Xiaomi10是一款五G旗舰手机,配备高通骁龙865处理器、1080P OLED屏幕及5000mAh电池'
        }
    ]
}

我们需要获取商品名为华为Mate40 Pro的商品的价格信息,可以通过如下代码实现:

# 获取特定商品信息
for product in response_json['data']:
    if product['product_name'] == '华为Mate40 Pro':
        print(product['price'])

上述代码中,使用for循环遍历商品信息列表,逐个判断每个商品的product_name是否等于华为Mate40 Pro。如果相等,就打印出该商品的价格信息。

通过上述示例代码,我们可以非常轻易地理解如何取值一个Python字典的值,使用此技巧可以让我们实现一个全面的测试用例。