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等。java

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

1 系统需求

iOS

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

Android

Mac OSX 10.7+ or Windows 7+ or Linuxweb

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

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);
}

}ruby

4 参数设置

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

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

capabilities.setCapability("newCommandTimeout",240);

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

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
相关文章
相关标签/搜索