python - 我需要使用 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
解决方案
这是启动和运行它的一种方法:
首先通过命令行运行以下 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
正确值字段的新文件。
推荐阅读
- maven - Maven 测试在本地(OSX)运行良好,但在移除 CI 机器上根本没有运行
- jira - 如何在 Jira Service Desk 中添加报告创建状态?
- r - 是否有语法糖来在 R 中定义数据框
- git - Git CodeCommit 凭证不断出现在 Mac OS X 上的 Keychain Access 中
- php - 如何修复“laravel 分页不更新搜索”
- c++ - 有没有办法创建一个以成员函数或成员为参数的函数?
- vue-component - Vue-tabilator:如何访问制表功能?
- c# - 按五分钟时间跨度分组
- vue.js - 请帮我理解 Vue 中 props 的使用
- jquery - 数据表生成与原始列不同的列