• 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
    java中mysql5和mysql8数据库连接方式
    【TCP】延时应答 与 捎带应答
    C++学习笔记--黑马程序员
    MiniGPT-4:用高级大型语言模型增强视觉-语言理解
    探花交友_第2章_环境搭建(新版)
    我的创作纪念日
    我最喜欢的白版应用,AI加持的新功能开源!强烈推荐
    【21天学习挑战赛】算法——插入排序
    7/26 思维+dp+后缀数组的学习
  • 原文地址:https://blog.csdn.net/weixin_42517691/article/details/126279838