如何在 python 中为多个测试用例编写一个 yaml?

How to write a yaml in python for multiple test cases?

我正在使用 python 学习机器人框架。我正在寻找将数据传递给两个不同测试用例的方法。在 java,这很容易。我为yaml做了一个class,并在yaml文件中给出了两个独立测试用例的数据。 Python怎么会有这样的架构?当我尝试在 yaml 文件中提供数据时,出现重复键错误。 有人可以告诉我我做错了什么,并建议使用单个 yaml 将数据提供给多个测试用例的方法吗? Java_yaml Python_yaml

您确定收到重复键错误吗?因为随着 输入您提供的内容,您将获得此处不允许的映射值错误:

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_RequestPost_Request.

之后插入冒号 (:)
Get_Request:
  alias : 'amway1'
  session_url : 'url2'

Post_Request:
  alias : 'amway2'
  session_url : 'url2'

(您还应该始终如一地缩进 YAML,缩进量相同 键前的空格,现在你有 2 和 4 个位置。那不是 必须制作有效的 YAML,解析器将接受它,但它是 以在人类检查您的输入时正确查看结构)。