zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    CAShapeLayer
    iOS开发多线程篇—NSOperation基本操作
    OS开发多线程篇—NSOperation简单介绍
    iOS开发多线程篇—GCD的常见用法
    iOS开发多线程篇—GCD的基本使用
    iOS开发多线程篇—线程的状态
    iOS开发多线程篇—线程间的通信
    iOS开发多线程篇—线程安全
    iOS开发多线程篇—创建线程
    iOS开发多线程篇—多线程简单介绍
  • 原文地址:https://www.cnblogs.com/simran/p/9391238.html
Copyright © 2011-2022 走看看