MST

星途 面试题库

面试题:Python if语句在复杂自动化测试断言场景的运用

在一个接口自动化测试场景中,接口返回的是一个包含多个层级的JSON数据结构。例如返回数据为`{"data":{"status":"success","result":[1, 2, 3]}}`。现在要求使用if语句来断言`status`为`success`,并且`result`列表中的所有元素都大于0 ,请写出实现代码,并阐述在这种场景下如何优雅地处理可能出现的异常情况。
43.1万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

以下以Python语言为例:

import json

response_json = '{"data":{"status":"success","result":[1, 2, 3]}}'
try:
    data = json.loads(response_json)
    if "data" in data:
        sub_data = data["data"]
        if sub_data["status"] == "success" and all(num > 0 for num in sub_data["result"]):
            print("断言成功")
        else:
            print("断言失败")
    else:
        print("数据结构异常,缺少data字段")
except json.JSONDecodeError:
    print("解析JSON数据失败")

异常处理阐述

  1. JSON解析异常:使用try - except块捕获json.JSONDecodeError异常,因为如果接口返回的不是合法的JSON格式数据,json.loads会抛出此异常,此时直接提示解析失败。
  2. 数据结构异常:通过if "data" in data:判断最外层数据中是否存在data字段,若不存在,说明数据结构与预期不符,给出相应提示。这样的处理方式可以较为优雅地应对可能出现的异常情况,确保测试的稳定性和可靠性。