Appium - desired_caps 参数详解


在与 Appium service 服务建立会话的时候,手机端需要告诉服务器一些设备相关的参数,这样服务器才会根据这些参数做对应的处理。

常用参数:
desired_caps = {
    # 设备系统
    'platformName': 'Android',
    # 设备系统版本号
    'platformVersion': '18',
    # 设备名称,必须有
    'deviceName': '127.0.0.1:62001',
	
	# 说明:在参数中如果指定 app 包名路径,就不需要指定 appPackage 和 appActivity 两个参数了,会产生冲突
	# 'app' : 'C:\\Users\\Administrator\\Desktop\\123456\\moer.apk'	
	
    # 应用的包名
    'appPackage': 'tv.danmaku.bili',
    
    'appActivity': '.ui.splash.SplashActivity'
}

# 启动 APP
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
通用参数:
关键字描述实例
automationName你想使用的自动化测试引擎Appium (默认) 或 Selendroid
platformName你要测试的手机操作系统IOS,Android,Frefox
platformVersion手机操作系统版本例如:7.1 或 4.4
deviceName使用的手机类型或模拟器类型iPhone Simulator , iPad Simulator , IPhone Retina 4 -inch , Andriod Emulator , Galaxy S4 等。在iOS 上,这个关键字的值必须是使用 instruments -s devices 得到的可使用的设备名称之一。在 Android 上,这个关键字目前不起作用,必须有。
app.ipa or .apkl 文件所在的本地绝对路径或者远程路径,也可以是一个包括两者之一的 zip 。 Appium 会先尝试安装路径对应的应用在适当的真机或模拟器上。针对 Android 系统,如果你指定 appPackage 和 appActivity(具体见下面)的话,那么就可以不指定 app。会与 browserName 冲突比如 /abs/path/to/my.apk 或 http://myapp.com.app.ipa
browserName需要进行自动化测试的手机 web浏览器名称。如果是对应用进行自动化测试,这个关键字的值应该为空IOS 系统上可以用 ‘Safari’,Android 系统上可以用 ‘Chrome’,‘Chromium’,或 ‘Browser’。
newCommandTimeout设置命令超市时间,单位:秒。达到超时时间仍未接收到新的命令时 Appium 会假设客户端退出然后自动结束会话比如: 60
autoLaunchAppium 是否需要自动安装和启动应用,默认为:truetrue,false
language(Sim/Emu-only) 设定模拟器(simulator / emulator)的语言例如:fr
locale(Sim/Emu-only) 设定模拟器(simulator / emulator)的区域设置。如:fr_CA
udid链接的物理设备的唯一标识例如:1ae203187fc012g
orientation(Sim / Emu-only)在一个设定的方向模式中开始测试LANDSCAPE( 横向) 或 PORTRAIT(纵向)
noReset不要在会话前重置应用状态,默认:falsetrue,false
fullReset(ios) 删除整个模拟器目录,(Android)通过卸载 ——而不是清空数据 ——来重置应用状态,在 Android 上,这也会在会话结束后自动清除被测应用。默认值 :falsetrue,false
Android 专用参数
关键字描述实例
appActivity你要从你的应用包中启动的 Android Activity 名称。它通常需要在前面添加,(如:使用 .MainActivity 而不是 MainActivity)MainActivity , .Settings
appPackage你想运行的 Android 应用的包名比如:com.example.android.myapp
appWaitActivity你要等待启动的 Android Activity 名称SplashActivity
deviceReadyTimeout设置等待一个模拟器或真机准备就绪的超时时间5
androidCoverage用于执行测试的 instrumentation 类。作为命令 adb shell am instrument -e coverage true -w 的 -w 参数com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation
enablePerformanceLoggingChromedriver 的性能日志,默认:falsetrue , false
androidDeviceReadyTimeout等待设备在启动应用后准备就绪的超市时间,以秒为单位。/
androidDeviceSocket开发工具的 socket 名称。 只有在被测应用是一个使用 Chromium 内核的浏览器时需要。 socket 会被浏览器打开,然后 Chromedriver 把它作为开发者工具来进行连接chrome_devtools_remote
avd需要启动的 AVD ( 安卓虚拟设备 ) 名称api19
avdLaunchTimeout以毫秒为单位,等待 AVD 启动并连接到 ADB 的超时时间。 (默认值 120000)300000
avdReadyTimeout以毫秒为单位,等待 AVD 完成启动动画的超时时间。(默认值:120000)300000
avdArgs启动 AVD 时需要加入的额外参数如: -netfast
useKeyStore使用一个自动以的 keystore 来对 apk 进行重签名。默认值 : falsetrue or false
keyStorePath自定义 keystore 的路径。默认: ~/.android/debug.keystore例如:/path/to.keystore

在这里插入图片描述

IOS 特有参数


获取 appPackage 与 appActivity 的值:*
方法一:

Appium 中的安卓图标,点击打开以后, Application Path 选着 apk 路径以后就可以查看了
在这里插入图片描述

方法二:日志抓取
adb shell
root@shamu:/ # logcat | grep START

先启动需要查找的apk,再敲入以上命令,找到最后一个ActivityManager
在这里插入图片描述

方法三:aapt 工具( 推荐 )

使用aapt工具 ,适合给程序自动获取 apk 的相关信息,非常实用,
aaptsdk 自带的一个工具,在 sdk\builds-tools 目录下
1.以微信为例,命令行中切换到aapt.exe目录执行输入以下命令

aapt dump badging D:\weixin658android1060.apk

2.运行后的结果中以下两行分别是应用包名 package 和入口 activity 名称,另外可看到应用使用的权限、支持的语言等信息

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值