首页 > 解决方案 > 我需要使用 Robot Framework 从 YAML 文件中获取值

问题描述

我试图在我的 YAML 文件中替换值,但无法使用机器人框架编写正确的字符串。

"patch_id_bw_data":
    "pronghornResponseBody":
        "shimBehaviourHeader":
            "destinationURL": ""
            "method": "PATCH"
            "targetName": "naas"
        "customHeaders": {}
        "responseBody":
            - "op": "replace"
              "path": "/serviceCharacteristic"
              "value":
                  - "name": "bandwidth"
                    "value": ""

需要在last--> "value": "200" Trying to do 中替换 200 以使用以下语法。但无法替代:

设置为字典 ${patch_id_bw_data.pronghornResponseBody.responseBody[0].value} 值=200M

标签: pythonjsonyamlrobotframework

解决方案


这是启动和运行它的一种方法:

首先通过命令行运行以下 Python 命令安装 PyYAML python 库: py -m pip install PyYAML 您可能还想查看PyYAML文档: https ://pyyaml.org/wiki/PyYAMLDocumentation

这是一个.robot执行请求的示例文件:

*** Settings ***
Library  yaml
Library  OperatingSystem
Library  Collections

*** Test Cases ***
Load YAML into Robot and edit it
  ${YAML}=  Get File  ${CURDIR}${/}data.yaml
  ${LOADED}=  yaml.Safe Load  ${YAML}
  Set To Dictionary  ${LOADED}[patch_id_bw_data][pronghornResponseBody][responseBody][0][value][0]  value=200
  ${OUTPUT}=  yaml.Dump  ${LOADED}
  Create File  newdata.yaml  ${OUTPUT}

${OUTPUT}如果您希望在测试中使用它,将已经包含新编辑的 yaml 数据,但在示例中,我们将其保存到带有Create File关键字的新文件中。

在运行此 Robot Framework 测试之前,请确保data.yaml测试文件夹中包含一个文件,其中包含您在问题中提供的示例数据。newdata.yaml运行机器人测试后,文件夹中将有一个包含200正确值字段的新文件。


推荐阅读