yaml

一、介绍

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

 

posted @ 2018-07-30 16:25  雨彡  阅读(457)  评论(0编辑  收藏  举报