appium server参数

转自:
http://m.blog.csdn.net/blog/kittyboy0001/40893979

appium

Appium是一个开源的,适用于原生或混合移动应用应用( hybrid mobile apps)的自动化测试平台,可以非常快捷的为iOS和Android移动平台创建功能自动化测试用例。相比其他的移动自动化测试工具,Appium测试由于调用了Selenium的client库使其可以使用任意的语言,包括Python、Ruby、Node.js,Objective,java等。

官方地址:http://appium.io/

1 系统需求

iOS

Mac OSX 10.7+ 
XCode 4.5+ w/ Command Line Tools

Android

Mac OSX 10.7+ or Windows 7+ or Linux

Android SDK ≥ 16 (SDK < 16 in Selendroid mode)

2 Appium的底层

iOS: Apple‘s UIAutomation 
Android 4.2+: Google‘s UiAutomator 
Android 2.3+: Google‘s Instrumentation

3 android真机运行

import java.net.MalformedURLException;
import java.net.URL;

import org.junit.After;
import org.junit.Before;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;

import com.tmall.app.search.monkey.page.TMGuideActivityPage;

import io.appium.java_client.AppiumDriver;

public class BaseTest {

    protected AppiumDriver driver;

    //打开app,进行一些初始化工作。如进入目标页面等...
    @Before
    public void setUp() throws Exception {
        setUpDriver();

        //TMGuideActivityPage page = new TMGuideActivityPage(driver);
        //if(page.isReady()){
        //  page.splash();
        //}
    }

      @After
      public void tearDown() throws Exception {
        driver.quit();
      }

      //启动appium Driver
      public void setUpDriver() throws MalformedURLException{
        //  final File appDir = new File("D:\\TMApp");
        //  final File app = new File(appDir, "10002119.apk");
            final DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.setCapability(CapabilityType.BROWSER_NAME, "");

            capabilities.setCapability("deviceName", "Android");

            capabilities.setCapability("platformVersion", "4.3");
            capabilities.setCapability("platformName", "Android");
        //  capabilities.setCapability("app", app.getAbsolutePath());
            capabilities.setCapability("appPackage", "com.tmall.wireless");
            capabilities.setCapability("appActivity",//".module.main.TMMainTabActivity");
                    ".module.launchalert.TMLaunchAlertActivity");
            capabilities.setCapability("appWaitActivity", ".module.main.TMMainTabActivity");
            capabilities.setCapability("newCommandTimeout",120);
            driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"),
                capabilities);
      }

}

public class DetailTest extends BaseTest{
    @Test
    public void MyDetailTest() {
        Search s = new Search();
        s.doAction(driver);
        //assert(xxxxx);
}

}

4 参数设置

DesiredCapabilities 负责启动服务端时的参数设置。实际使用时根据自己的需要,可自行修改一些参数。

比如,应用程序在查找某个页面的元素时,定位可能会时间超长。默认的命令间隔时间是60s,如果在60s内没有找到,就会自动退出。可以使用newCommandTimeout设置为更大的数值。

    capabilities.setCapability("newCommandTimeout",240);

比如,最开始使用appium时,设置了上面的安装apk的路径,结果安装后调试程序发现接口无返回数据。后来定位问题是因为安装时进行了重签名。程序的保护机制让数据无返回了。可以使用noSign设置来避免重签名。

    capabilities.setCapability("noSign","true");

当然,后来发现不在程序里写文件路径,而是提前安装好测试包,这样就避免了每次都要重新安装。

完整的Server参数

http://appium.io/slate/en/master/?ruby#appium-server-capabilities

**Server capabilities**
Capability           Appium 、Selendroid
platformName         平台的名称:iOS, Android, or FirefoxOS
platformVersion      移动设备的系统版本号,7.1, 4.4
deviceName           IOS:instruments -s devices,Android:随便写
app                  安装文件路径:/abs/path/to/my.apk or http://myapp.com/app.ipa
browserName          测试的web浏览器,如果是测app则忽略
newCommandTimeout    等待新命令的最长时间,超时后退出。默认是60s
autoLaunch           是否自动安装和启动,默认true
language             模拟器的语言设置
locale               模拟器的地区设置
udid                 设备号
orientation          模拟器的横竖屏设置
autoWebview          Move directly into Webview context
noReset              在当前session前不重置app状态
fullReset            ios删除文件夹,Android删除app数据。

**android only**
appActivity                 要启动的Activity
appPackage                  要启动的包
appWaitActivity             等待的Activity
appWaitPackage              等待的包
deviceReadyTimeout          等待设备就绪的时间
androidCoverage
enablePerformanceLogging    (Chrome and webview only)default=false
androidDeviceReadyTimeout
androidDeviceSocket
avd
avdLaunchTimeout
avdReadyTimeout
avdArgs
useKeystore
keystorePath
keystorePassword
keyAlias
keyPassword
chromedriverExecutable
autoWebviewTimeout
intentAction
intentCategory
intentFlags
optionalIntentArguments
unicodeKeyboard
resetKeyboard
noSign              Skip checking and signing,work only with UiAutomator and not with selendroid
ignoreUnimportantViews

**ios  only**
calendarFormat
bundleId
udid
launchTimeout
locationServicesEnabled
locationServicesAuthorized
autoAcceptAlerts
nativeInstrumentsLib
nativeWebTap
safariAllowPopups
safariIgnoreFraudWarning
safariOpenLinksInBackground
keepKeyChains
localizableStringsDir
processArguments
interKeyDelay
showIOSLog
时间: 2024-10-13 01:46:22

appium server参数的相关文章

Appium Server 传递Android参数

Appium  server Capabilities传递参数    Android 特定 参考: http://appium.io/slate/cn/master/ android 特有 关键字 描述 实例 appActivity 你要从你的应用包中启动的 Android Activity 名称.它通常需要在前面添加 . (如:使用.MainActivity 而不是 MainActivity) MainActivity, .Settings appPackage 你想运行的Android应用的

Java控制Appium server start/stop

相信很多人都会遇到这种场景,在进行appium自动化的时候用Windows OS,不好实现后台运行,每次启动Appium server: 使用Appium GUI版手动点击 就是在cmd line 启动Appium 如果要实现CI,使用Appium GUI是不可行的,因为如果在跑case的过程中Appium session无法创建必须重启Appium server,也无法自动获取相应的参数直接启动Appium 那么这个时候只能使用command line PS:使用command line需要把

Appium Server源码分析之作为Bootstrap客户端

Appium Server拥有两个主要的功能: 它是个http服务器,它专门接收从客户端通过基于http的REST协议发送过来的命令 他是bootstrap客户端:它接收到客户端的命令后,需要想办法把这些命令发送给目标安卓机器的bootstrap来驱动uiatuomator来做事情 通过上一篇文章<Appium Server 源码分析之启动运行Express http服务器>我们分析了Appium Server是如何作为一个http服务器进行工作的.那么今天我们就要分析第二点,Appium S

Appium——详解Appium server capabilities

appium server capabilities来告诉appium,如何运行自动化测试,因此需要详细了解. 官方文档:http://appium.io/slate/en/master/?ruby#appium-server-capabilities Appium server capabilities automationName:使用哪个自动化引擎,默认是Appium platformName:使用哪个移动操作系统,iOS Android 或者 FirefoxOS platform Ver

appium远程调用appium server

如何通过本地的代码,调用远程的server呢? 例如:我有两台电脑A(192.168.112.10)和B(192.168.112.11),那我怎么能在A执行本地脚本,但是使用B上的server呢? 查看appium连接appium服务并开启一个session的例子如下: desired_caps = {} desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '4.4' desired_caps['d

通过Appium Server Log 分析一个case执行的过程

此文的目的主要是通过分析Appium Server打印出来的log,加深对Appium Server所扮演角色的理解. 这整一个过程是由一个Test Case开始执行到结束,测试的对象是SDK自带的NotePad.apk. Test Case很简单:打开Notepad程序,然后点击安卓的Menu Options按钮调出"Add Note"菜单按钮,然后点击该按钮,然后完成测试. package majcit.com.AppiumDemo; import io.appium.java_c

SQL Server 参数嗅探问题

本文非原创,来源于网络,作为记录为以后查看 http://mysql.taobao.org/monthly/2016/10/10/ 摘要 MSSQL Server参数嗅探既是一个涉及知识面非常广泛,又是一个比较难于解决的课题,即使对于数据库老手也是一个比较头痛的问题.这篇文章从参数嗅探是什么,如何产生,表象是什么,会带来哪些问题,如何解决这五个方面来探讨参数嗅探的来龙去脉,期望能够将SQL Server参数嗅探问题理清楚,道明白. 什么参数嗅探 当SQL Server第一次执行查询语句或存储过程

Java代码启动Appium server

前言 Appium的启动方式有下面的两种: 使用Appium GUI启动,这种方式需要下载一个appium的客户端,然后填写地址和端口号.这是最简单粗暴的. 使用代码appium自带的库函数来实现启动appium server的启动 这篇文章着重讲使用代码实现appium server的启动 使用AppiumDriverLocalService 使用这个方法得先做下面的工作 在本机安装Node/js 使用npm安装Appium server 使用java代码启动Appium server主要依靠

Zabbix Server参数文件详解

Zabbix的配置文件一般有三种: zabbix_server.conf:zabbix server的配置文件 zabbix_proxy.conf:zabbix proxy的配置文件 zabbix_agentd.conf:zabbix agentd的配置文件 Zabbix安装完成后,服务端默认的配置文件存在安装文件夹中的etc目录中,假设编译的参数是"--prefix=/usr/local/zabbix",那么服务端的配置文件则保存在"/usr/loca/zabbix/etc