• APP自动化测试-10.Appium中Desired Capabilities常用参数


    APP自动化测试-10.Appium中Desired Capabilities常用参数



    前言

    Desired Capabilities是由键值对组成的json对象,当创建自动化的session时,appium客户端将字典发送给服务器,appium服务端根据发送的信息,创建自动化测试使用driver,Desired Capabilities是移动端driver创建必须的参数,可以在脚本中直接创建字典来使用,也可以用appium inspector中直接配置,这个章节记录下Desired Capabilities比较常用的配置项。


    提示:以下是本篇文章正文内容,下面案例可供参考

    一、通用参数

    • platformName:使用的手机的操作系统,如:anroid、ios
    "platformName": "android"
    
    • 1
    • platformVersion:手机操作系统的版本,如:7.0,9.0
    "platformVersion": "7.0"
    
    • 1
    • deviceName:驱动名称
    "deviceName": "testdevice"
    
    • 1
    • app:定义.apk或者.ipa地址(绝对地址或网络地址),在指定的设备上安装指定的app
    "app": "https://www.test.com/test.apk"
    
    • 1
    • browserName:定义driver启动的浏览器类型,默认的使用Browser,通常用于配置纯web应用
    # 浏览器为默认
    "browserName": "Browser"
    # 浏览器为chrome
    "browserName": "chrome"
    
    • 1
    • 2
    • 3
    • 4
    • newCommandTimeout:Appium等待客户端发送一条置顶所需时间,如果有上传或下载安装操作,建议配置,默认60s
    "newCommandTimeout": 300
    
    • 1
    • udid:连接真机的唯一设备号,如:wndakjw1231ee,为adb devices查询出来的名称
    "udid": "wndakjw1231ee"
    
    • 1
    • noReset:在当前 session 下不会重置应用的状态。默认值为 false
    # noReset设置为true,脚本重复运行时则会保持app的状态,比如登录信息
    "noReset": True
    
    • 1
    • 2
    • fullReset:(iOS)删除所有的模拟器文件夹。(Android) 要清除 app 里的数据,请将应用卸载才能达到重置应用的效果。在 Android, 在 session 完成之后也会将应用卸载掉。默认值为 false true, false
    "fullReset": True
    
    • 1
    • dontStopAppOnReset:在使用 adb 启动应用之前,不要终止被测应用的进程。如果被测应用是被其他钩子(anchor)应用所创建的,设置该参数为 false 后,就允许钩子(anchor)应用的进程在使用 adb 启动被测应用期间仍然存在。换而言之,设置 dontStopAppOnReset 为 true 后,我们在 adb shell am start 的调用中不需要包含 -S标识(flag)。忽略该 capability 或 设置为 false 的话,就需要包含 -S 标识(flag)。默认值为 false
    # 默认参数为false,启动应用时添加了- S参数,会先kill掉应用,再去启动应用
    # 修改参数为True,启动应用时没有- S参数,不会kill掉应用,直接进入应用
    "dontStopAppOnReset": True
    
    • 1
    • 2
    • 3

    二、Android常用参数

    • appActivity:Activity 的名字是指从你的包中所要启动的 Android acticity,通常为首页activity名称,和appPackage配合使用
    "appPackage": "io.appium.android.apis",
    "appActivity": ".ApiDemos"
    
    • 1
    • 2
    • appPackage:需要运行的 Android 应用的包名,如:com.test.test
    "appPackage": "io.appium.android.apis"
    
    • 1
    • autoGrantPermissions:让Appium自动确定您的应用需要哪些权限,并在安装时将其授予应用。默认设置为 false true或false
    "autoGrantPermissions": True
    
    • 1
    • chromedriverExecutable:webdriver 可执行文件的绝对路径,纯web或混合应用测试时,用来指定driver的路径
    "chromedriverExecutable": "/Users/test/tools/chromedriver"
    
    • 1
    • avd:用来指定启动的模拟器名称(emulator模拟器)
    "avd": "Pixel_5_API_30"
    
    • 1
    • chromedriverExecutableDir:指定webdriver存放的目录,该目录下可以有多个driver,通常配合mapping一起使用
    "chromedriverExecutableDir": "/Users/test/tools/chromedriverdir",
    "chromedriverChromeMappingFile": "/Users/test/PycharmProjects/test_appium/testcase/mapping.json",
    
    • 1
    • 2
    • chromedriverChromeMappingFile:指定浏览器版本和driver版本对应版本文件的绝对路径,和chromedriverExecutableDir配合使用
    "chromedriverExecutableDir": "/Users/test/tools/chromedriverdir",
    "chromedriverChromeMappingFile": "/Users/test/PycharmProjects/test_appium/testcase/mapping.json",
    
    • 1
    • 2
    • skipDeviceInitialization:跳过设备初始化,包括:安装运行设置app或设置权限。当被测应用已经配置好权限,可以直接用于测试时可以配置为True,默认为False
    "skipDeviceInitialization": True
    
    • 1

    三、iOS常用参数

    • bundleId: 被测应用的 bundle ID 。用于在真实设备中启动测试,也用于使用其他需要 bundle ID 的关键字启动测试。在使用 bundle ID 在真实设备上执行测试时,你可以不提供 app 关键字,但你必须提供 udid 。例如:io.appium.TestApp

    • udid:连接的真实设备的唯一设备编号 (Unique device identifier)

    • autoAcceptAlerts:隐私访问权限的警告(例如 定位,联系人,照片)。默认值为 false。不支持基于 XCUITest 的测试。

    • autoDismissAlerts: 当警告弹出的时候,都会自动去点取消。包括隐私访问权限的警告(例如 定位,联系人,照片)。默认值为 false。不支持基于 XCUITest 的测试。

    • appName: 被测应用的名字。 用于支持 iOS 9 以上系统的应用的自动化。


    总结

    参数比较多,需要多加熟悉。

  • 相关阅读:
    【MySQL】深入理解MySQL索引原理(MySQL专栏启动)
    6、ByteBuffer内部结构
    Linux centos7创建文件
    vue项目中在scss代码中使用data中的变量
    软考高级系统架构设计师论文真题分析系列之:论软件架构风格
    python 函数相关概念
    微信小程序授权登陆 getUserProfile
    AWS 中文入门开发教学 37- 连接MySQL - phpMyAdmin 管理工具
    linux:数据库连接
    设计模式【1】-- 单例模式
  • 原文地址:https://blog.csdn.net/weixin_42517691/article/details/126279838