zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    java 通过Iterator输出Map
    java SortedSet接口swap方法
    java vector
    java Iterator双向迭代输出
    java 序列化和反序列化多个对象
    培训
    每天晚上

    又想起了

  • 原文地址:https://www.cnblogs.com/melody-emma/p/4808168.html
Copyright © 2011-2022 走看看