• YAML文件读取


    在Web UI自动化测试中,我们可以将用到的配置信息保存在YAML格式的文件中。YAML是YAML Ain't a Markup Language的缩写。YAML的语法和其他高级语言类似,它用空白符号表示缩进,特别适合用来表达配置文件。该类型文件的扩展名为“.yml”,如storm.yml。

    YAML文件的基本语法规则如下。

    ●大小写敏感。

    ●使用缩进表示层级关系。

    ●缩进不允许使用Tab键,只允许使用空格键。

    ●缩进的空格数不重要,只要相同层级的元素左对齐即可。

    ●“#”表示注释。YAML文件支持多种数据类型。

    ●对象:键-值对的集合,又称为映射(mapping)、哈希(hashes)、字典(dictionary)。

    ●数组:一组按次序排列的值,又称为序列(sequence)、列表(list)。

    PyYaml是Python中一个专门用于对YAML文件进行操作的模块。该模块同样可以借助pip来安装 

    (1)YAML对象

    1. url: "http://localhost:81/redmine/"
    2. ip: "127.0.0.1"

     

    1. import yaml
    2. with open('my_yaml_1.yml','r',encoding='utf8')as f:
    3. data=yaml.load(f,Loader=yaml.FullLoader)
    4. print(data)
    5. print(data['url'])
    6. print(data['ip'])

    可以看到,data为字典格式 

     

    (2)YAML数组

    1. - storm
    2. - sk
    3. - shadow
    4. - queen
    1. import yaml
    2. with open('my_yaml_1.yml','r',encoding='utf8')as f:
    3. data=yaml.load(f,Loader=yaml.FullLoader)
    4. print(data)

     (3)YAML复合结构

    1. websites:
    2. URL: http://localhost/
    3. IP: 127.0.0.1
    4. Port: 81
    1. import yaml
    2. with open('my_yaml_3.yml', 'r', encoding='utf8') as f:
    3. data = yaml.load(f, Loader=yaml.FullLoader)
    4. print(data)
    5. print(data['websites']['URL'])
    6. print(data['websites']['IP'])
    7. print(data['websites']['Port'])

    在Web UI自动化测试中,可以将系统用到的配置信息以复合结构保存到一个特定文件中。因此,我们可以封装一个函数来读取YAML文件的信息,文件名为“parse_yml.py

    1. import yaml
    2. '''
    3. 通过传递文件名、section和key,读取YAML文件中的内容
    4. '''
    5. def parse_yml(file, section, key):
    6. with open(file, 'r', encoding='utf8') as f:
    7. data = yaml.load(f, Loader=yaml.FullLoader)
    8. return data[section][key]
    9. if __name__ == '__main__':
    10. value = parse_yml('my_yaml_3.yml', 'websites', 'URL')
    11. print(value)

     

     

  • 相关阅读:
    Python数据结构——Tuple
    JS DataTable中导出PDF中文乱码
    基于openlayer展示mapbox样式的矢量切片
    e智团队实验室项目-第三周-经典的卷积神经网络的学习
    人工神经网络算法的应用,人工智能神经网络算法
    书签管理工具有哪些,下载使用书签插件的方法
    傅里叶变换的四种形式
    Leetcode—704.二分查找【简单】
    kettle在linux上的运行方法
    2023-05-26:golang关于垃圾回收和析构函数的选择题,多数人会选错。
  • 原文地址:https://blog.csdn.net/seanyang_/article/details/127465085