【13】Appium进阶篇-数据配置-Yaml
一、数据配置—Yaml简介
下载地址:http://pyyaml.org/wiki/PyYAML
安装完成后在python引入yaml检测是否安装成功,输入import yaml 无错误表示成功
yaml语法注意事项:注意大小写,使用缩进时不能用tab快捷键,数据键值对冒号后面要加空格,数组元素使用“-”开头
二、Yaml数据类型简介
name: zhangsan #1.纯量(scalars):单个的、不可再分的值 age: 28 wife: name: xiaoqing age: 28 children: #2.数组:一组按次序排列的值,又称为序列(sequence) / 列表(list) - name: gege age: 5 - name: didi age: 3 #3.对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
三、Yaml数据读取
①、数据读取
#coding:utf-8 import yaml f=open('lession01.yaml','r') #打开文件 data=yaml.load(f) #读取yaml文件数据 print(data) print(data['children'][0]['name']) f.close()
②、数据修改
f=open('lession01.yaml','r') #打开文件 data=yaml.load(f) #读取yaml文件数据 print(data) print('修改前内容:',data['children'][0]['name']) data['children'][0]['name']='张小强' print('修改后内容:',data['children'][0]['name']) f.close()
③、数据转化
data1={'name': 'zhangsan', 'children': [{'name': 'gege', 'age': 5}, {'name': 'didi', 'age': 3}], 'age': 28, 'wife': {'name': 'xiaoqing', 'age': 28}} print('修改前内容:',type(data1)) data2=yaml.dump(data1) print('修改前内容:',type(data2))
五、Capability配置数据与代码分离
在appium自动化测试中,可以把Capability的配置信息用yaml文件分离出来
#Capability.yaml platformName: Android platformVersion: 4.1.3 deviceName: H8U4C16B08001830 app: C:\Users\Desktop\Appium software\App\zhihu.apk noReset: False appPackage: com.tal.zhihu appActivity: com.tal.zhihu.ui.activity.SplashActivity
# coding:utf-8 import yaml #Capability_yaml.py file=open('Capability.yaml','r') data=yaml.load(file) desired_caps={} desired_caps['platformName']=data['platformName'] desired_caps['platformVersion']=data['platformVersion'] desired_caps['deviceName']=data['deviceName'] desired_caps['app']=data['app'] desired_caps['noReset']=data['noReset'] desired_caps['appPackage']=data['appPackage'] desired_caps['appActivity']=data['appActivity'] print('数据结果:',type(desired_caps),desired_caps)