我需要使用Robot Framework从YAML文件中获取值

时间:2019-08-29 08:48:14

标签: python json yaml robotframework

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

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

需要用200替换last--> "value": "200" 尝试使用以下语法。但无法替代:

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

1 个答案:

答案 0 :(得分:2)

这是一种使其启动并运行的方法:

首先通过运行以下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