四 Android Capabilities讲解
本文转自:http://www.cnblogs.com/sundalian/p/5629429.html
Android Capabilities讲解
1.Capabilities介绍
可以看下之前代码里面设置的capabilities

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("automationName", "Appium");
capabilities.setCapability("platformName","Android");
capabilities.setCapability("deviceName","Android Emulator");
capabilities.setCapability("platformVersion", "4.4.2");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage", "com.example.android.contactmanager");
capabilities.setCapability("appActivity", ".ContactManager");

Desired capability是一个JSON对象,包含一组key和value值。它由客户端发送给服务端,告诉服务端期望的Capabilities(可以理解为一种能力)有哪些,然后服务端根据这些capabilities创建自动化会话(session)。
DesiredCapabilities位于这个包中:
import org.openqa.Selenium.remote.DesiredCapabilities
所以在使用DesiredCapabilities的时候需要先导入这个类。
2.通用Capabilities
.automationName
这个capability主要是定义测试引擎。当你在安卓平台上进行测试的时候,你需要确认你使用的android sdk版本,如果是小于17的话,你需要指定测试引擎为:Selendroid。如果大于等于17,你需要使用的引擎是:Appium,默认就是Appium测试引擎。具体使用代码:
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("automationName","Selendroid");
当然你也可以使用Appium的java-client库来设置capabilities,前提是你必须导入这个类:
import io.appium.java_client.remote.MobileCapabilityType
然后设置代码如下:
caps.setCapability(MobileCapabilityType.AUTOMATION_NAME,"Selendroid");
iOS无需进行这个设置,默认就是Appium引擎。
·platformName
定义测试平台的名字,通常用于移动设备。值有:Android、iOS和FirefoxOS。使用代码如下:
caps.setCapability("platformName","Android");
还可以使用java-client提供的方式设置:
caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
在使用的过程中,请按照实际平台来填写即可。
·platformVersion
测试平台版本,移动设备固件的版本号,比如:iOS的7.1.1,9.3等,Android的4.4.2、5.1.1等。设置代码:
caps.setCapability("platformVersion","4.4.4");
Java-client提供的设置方式:
caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.4.4");
还是请按照实际版本号来填写。
·deviceName
移动设备的名字,比如iPhone 5s、Google Nexus等,设置代码:
caps.setCapability("deviceName", "Nexus 5");
或者用java-client设置方式:
caps.setCapability(MobileCapabilityType.DEVICE_NAME,"Nexus 5");
·app
苹果app或者安卓app的路径,可以是本地的绝对路径,也可以是远程网络路径,只要有访问权限即可。根据这个app capabilities,Appium会在启动测试之前安装好app到设备。在测试安卓的时候,appPackage 和appActivity也需要设置,和app搭配使用。appPackage 和appActivity是安卓独有的capabilities,在5.3小节会讲解这两个capabilities。
设置方式:
caps.setCapability("app","/apps/demo/demo.apk 或者 http://app.com/app.ipa");
Java-client设置方式:
caps.setCapability(MobileCapabilityType.APP,"/apps/demo/demo.apk 或者http://app.com/app.ipa")
·browserName
如果你想测试web app,那么你就需要定义browserName。对于Android来说,你可能会一定chrome浏览器,设置代码:
caps.setCapability("browserName", "Chrome");
或者使用java-client的设置方式:
caps.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
对于iOS来说你可能要定义Safari浏览器
·newCommandTimeout
为了结束appium会话(session),appium会设置一个等待从客户端发送命令超时的时间。默认时间是60秒,如果你不进行设置,如果你需要设置,代码如下:
caps.setCapability("newCommandTimeout", "30");
当然你可以使用java-client提供的方法设置:
caps.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT,"30");
一般来说这个不用设置,保持默认即可。
·autoLaunch
设置设个capability,会自动安装app并且启动app。设置代码为:
caps.setCapability("autoLaunch","false");
·autoWebview
如果你测试的是混合应用并且想直接进入webview内容中,那么你需要设置设置这个capability的值为true,代码如下:
caps.setCapability("autoWebview", "true");
更多的capabilities可以参考这里:
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
3.Android独有Capabilities
·appPackage
设置安卓app的包名的capability,告诉appium你要运行哪个app。
设置代码为:
caps.setCapability("appPackage", "com.android.calculator2");
当然你还可以使用java-client提供的方法设置:
caps.setCapability(MobileCapabilityType.APP_PACKAGE, "com.android.calculator2”);
·appActivity
设置你想要运行的app的activity(相当于一个界面或者理解成网页),比如:LoginActivity,登录的activity,可以理解为登录界面。
设置代码为:
caps.setCapability("appActivity", "com.xxx.xxx.LoginActivity ");
或者使用java-client提供的方法设置:
caps.setCapability(MobileCapabilityType.APP_ACTIVITY, "com.xxx.xxx.LoginActivity ");
·appWaitActivity
设置你想要等待的android activity,设置方式为:
caps.setCapability("appWaitActivity","com.android.calculator2.Calculator");
或者
caps.setCapability(MobileCapabilityType.APP_WAIT_ACTIVITY,"com.android.calculator2.Calculator”);
·appWaitPackage
需要等待的app的包,设置方法:
caps.setCapability("appWaitPackage","com.example.android.myApp");
·unicodeKeyboard
是否使用unicode键盘输入,如果设置为true,那么可以输入中文和特殊字符,这个很常用,一般设置为true。设置代码为:
caps.setCapability("unicodeKeyboard","true");
·resetKeyboard
是否重置键盘为原始状态,比如你将键盘设置为了unicode键盘,当用例执行完成之后,将resetKeyboard设置为true,则键盘重置为原始状态。设置代码为:
caps.setCapability("resetKeyboard","true");
以上只选了几个代表性的capability,更多的capability请参考:
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
四 Android Capabilities讲解的更多相关文章
- 五 Android Capabilities讲解
1.Capabilities介绍 可以看下之前代码里面设置的capabilities DesiredCapabilities capabilities = new DesiredCapabilitie ...
- Android Capabilities讲解
1.Capabilities介绍 可以看下之前代码里面设置的capabilities DesiredCapabilities capabilities =newDesiredCapabilities( ...
- 2016-2017-2 20155322 实验四 Android 开发基础
2016-2017-2 20155322 实验四 Android 开发基础 实验内容 下载和安装Android Studio 学会使用Android Studio进行简单的Android开发 实验知识 ...
- 20145213 《Java程序设计》实验四 Android开发基础
20145213 <Java程序设计>实验四 Android开发基础 说在前面的话 不同以往实验,对于这次实验具体内容我是比较茫然的.因为点我,打开实验四的链接居然能飘出一股熟悉的味道,这 ...
- 20145308刘昊阳 《Java程序设计》实验四 Android环境搭建 实验报告
20145308刘昊阳 <Java程序设计>实验四 Android环境搭建 实验报告 实验名称 Android环境搭建 实验内容 搭建Android环境 运行Android 修改代码,能输 ...
- 实验四 Android开发基础
实验四 Android开发基础 实验内容 1.安装Android Studio 2.运行安卓AVD模拟器 3.使用安卓运行出虚拟手机并显示HelloWorld以及自己的学号 (一)SDK的安装 (二) ...
- 20145337实验四Android开发基础
20145337实验四Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管理器的使用: 掌握Android中事件处 ...
- 20145225《Java程序设计》 实验四 Android开发基础
20145225<Java程序设计> 实验四 Android开发基础 实验报告 实验内容 安装Android Studio 运行安卓AVD模拟器 使用安卓运行出虚拟手机并显示HelloWo ...
- 20145208 实验四 Android开发基础
20145208 实验四 Android开发基础 安装Android Studio 安装的具体步骤在老师的链接中已经很详细了,在此就不做赘述了. 在此提出我觉得安装的时候需要注意的两个地方 一是安装地 ...
随机推荐
- 【PHP 模板引擎】Prototype 原型版发布!
在文章的开头,首先要向一直关注我的人说声抱歉!因为原本是打算在前端框架5.0发布之后,就立马完成 PHP 模板引擎的初版.但我没能做到,而且一直拖到了15年元旦才完成,有很严重的拖延症我很惭愧,再次抱 ...
- IOS 音频的 使用说明
说明 ● 简单来说,音频可以分为2种 ● 音效 • 又称“短音频”,通常在程序中的播放时长为1~2秒 • 在应用程序中起到点缀效果,提升整体用户体验 ● 音乐 • 比如游戏中的“背景音乐”,一般播放时 ...
- vue中多个元素或多个组件之间的动画效果
多个元素的过渡 <style> .v-enter,.v-leave-to{ opacity: 0; } .v-enter-acitve,.v-leave-active{ opacity: ...
- svn update 时总是提示 Password for '默认密钥' GNOME keyring: 输入密码
执行svn update 时 总是提示输入密码. $ cd ~/.gnome2/keyrings/ $ ls $ rm 默认密钥.keyring
- Media所有参数汇总
Media所有参数汇总 我们最常需要用到的媒体查询器的三个特性,大于,等于,小于的写法.媒体查询器的全部功能肯定不止这三个功能,下面是我总结的它的一些参数用法解释: width:浏览器可视宽度. he ...
- url 解析
最近在做一个单页应用,使用AngularJS来处理一些页内路由(哈希#后的路由变化).自然会要解析URL中的参数.使用AngularJS自带的方法$location.search();可以自动将参数整 ...
- iso十款常用类库
iso十款常用类库 MBProgressHUD(进展指示符库) 地址:https://github.com/jdg/MBProgressHUD 苹果的应用程序一般都会用一种优雅的,半透明的进度 ...
- Django 入门案例开发
Django是一个重量级的web开发框架,它提供了很多内部已开发好的插件供我们使用:这里不去描述 Django直接进入开发过程. Django入门案例分两部分:一.开发环境的配置:二.业务需求分析. ...
- 解决Cannot reinitialise DataTable问题 解决dataTables再次调用不能清空数据
这里我们只需要多设置一个字段 “destroy" : true 即可 或者设置retrieve: true, 或者在加载datatable之前使用$("#example" ...
- linux常见内核参数
参数 描述 net.ipv4.ip_forward 接口间转发报文net.ipv4.tcp_tw_reuse 表示是否允许将处于 TIME-WAIT 状态的 socket (TIME-WAIT 的端口 ...