我正在使用python学习Robot框架。我正在寻找将数据传递到两个不同的测试用例的方法。在Java中,这很容易。我为yaml创建了一个类,并在yaml文件中提供了两个单独的测试用例的数据。如何在Python中拥有这样的架构?当我尝试在yaml文件中提供数据时,出现重复键错误。 有人可以告诉我我做错了什么,还可以建议使用单个Yaml将数据提供给多个测试用例的方法吗? Java_yaml Python_yaml
答案 0 :(得分:0)
确定您收到重复的密钥错误吗?因为有了 您提出的输入将获得一个映射值,这里不允许出现错误:
import sys
import ruamel.yaml
yaml_str = """\
Get_Request
alias : 'amway1'
session_url : 'url2'
Post_Request
alias : 'amway2'
session_url : 'url2'
"""
yaml = ruamel.yaml.YAML()
try:
data = yaml.load(yaml_str)
except Exception as e:
print(e)
给出:
mapping values are not allowed here
in "<unicode string>", line 2, column 9:
alias : 'amway1'
^ (line: 2)
这是因为您尝试使用多行普通标量作为
该YAML的开始,并且不允许使用它们(它们必须是简单的,而不是多行的)。
您可能忘了在:
和Get_Request
之后插入冒号(Post_Request
)。
Get_Request:
alias : 'amway1'
session_url : 'url2'
Post_Request:
alias : 'amway2'
session_url : 'url2'
(您还应始终以相同金额缩进您的YAML 键之前的空格,现在您有2和4个位置。那不是 生成有效YAML所必需的,解析器将接受它,但是它是 以便在人类检查您的输入时正确看到其结构。