一、介绍
Yaml是一种简洁的非标记语言。
Yaml以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁。
基本规则:
1、大小写敏感
2、使用缩进表示层级关系
3、禁止使用tab缩进,只能使用空格键
4、缩进长度,没有限制,只要元素对齐就表示这些元素属于一个层级
5、使用#表示注释
6、字符串可以不用引号标注
三种数据结构:
1、字典
使用冒号(name: lala)表示键值对
#yaml方式一:(注意冒号后的空格)
platformName: Android
platformVersion: 5.1
#yaml方式二:
{platformName: Android,platformVersion: 5.1}
2、列表
使用连字符(-)表示,注意后面的空格
#方式一
- hello
#方式二
[hello,world,123]
3、纯量
安装示例:
pip命令:pip install PyYaml
引入库
import yaml
读取yaml文件的数据,并转换成python对象
①打开yaml文件
②使用yaml的load()函数
示例代码
fs = open(os.path.join(caps_dir,"caps.yaml"))
datas = yaml.load(fs)
示例:
caps.yaml 配置文件
-
deviceName: Android Emulator
platformName: Android
platformVersion: 5.1
appPackage: com.xxzb.fenwoo
appActivity: .activity.addition.WelcomeActivity
-
server_ip: 127.0.0.1
server_port: 4723
BaseDriver.py 读取配置文件 返回driver
import yaml
from Common.dir_config import dir_caps
import os
from appium import webdriver
def basedriver(automationName="Appium",noReset=True):
#打开配置文件
fs = open(os.path.join(dir_caps,"caps.yaml"))
#转为python字典
datas = yaml.load(fs)
# datas[0]列表是设备配置信息.datas[1]是服务器ip与端口号
# 更改系统版本为字符串-转化后是int,driver传入时读取需要为字符串
datas[0]["platfromVersion"] = str(datas[0]["platfromVersion"])
# print(datas)
#判断automationName是否要变;本来的默认值是Appium
if automationName != "Appium":
datas[0]["automationName"] = "UiAutomator2"
#判断是否要记录用户登录状态
if noReset == False:
datas[0]["noRest"] = False
server_url = 'http://{0}:{1}/wd/hub'.format(datas[1]["server_ip"],datas[1]["server_port"])
driver = webdriver.Remote(server_url,datas[0])
return driver