【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:UsersDesktopAppium softwareAppzhihu.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)
原文地址:https://www.cnblogs.com/qingbaobei7370/p/12410762.html