标签:des android http io os ar 使用 java for
Appium是一款开源的移动端自动化测试框架,支持Android和Ios,之前简单介绍过Appium,链接http://www.yeetrack.com/?p=639。最近在做ios的自动化测试,再详细记录一下过程。
既然使用Appium框架,安装肯定是必须的,两种方式源码安装,或者直接安装二进制dmg文件。
源码方式
git clone https://github.com/appium/appium
下载完成后,执行sh reset.sh
即可,它会将appium配置到我们电脑的环境变量中,直接使用Appium &
启动即可。但是这种安装方式,我没有找到Appium Inspector这个界面分析工具。界面的自动化测试,如果少了这款工具,就比较纠结了。
二进制直接安装app包
Appium在 2014-10-20左右更新了1.3.1版本,对Xcode6和ios 8.1更友好了,建议下载此版本。下载地址:https://github.com/appium/appium/releases,下载安装完成后,在mac的应用程序里应该出现Appium的图标了。
既然做ios的自动化测试,xcode最好还是安装,虽然可以通过命令行build编译、打包ios项目。安装Xcode,直接在Apple Store中搜索下载即可,Xcode 6.1版本。
直接run Appium的样例工程是最快的上手方式,Appium提供了各种语言版本的样例工程,包括Android、Ios,语言有java、php、.net、js、perl、python、ruby。我一直用java,这里就已java语言为例。
git clone https://github.com/appium/sample-code.git
修改样例工程中的配置
sample-code/sample-code/examples/java/junit/src/test/java/com/saucelabs/appium/UICatalogTest.java
@Before
public void setUp() throws Exception {
// set up appium
File classpathRoot = new File(System.getProperty("user.dir"));
File appDir = new File(classpathRoot, "../../../apps/UICatalog/build/Release-iphonesimulator");
File app = new File(appDir, "UICatalog.app");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("platformVersion", "7.1");
capabilities.setCapability("platformName", "iOS");
capabilities.setCapability("deviceName", "iPhone Simulator");
capabilities.setCapability("app", app.getAbsolutePath());
driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
}
如果用模拟器运行的话,应该不需要修改(前提是在命令行下build完了开发代码,xcodebuild);真机的话,需要修改成下面的样子:
// set up appium
//File classpathRoot = new File(System.getProperty("user.dir"));
//File appDir = new File(classpathRoot, "../../../apps/UICatalog/build/Release-iphonesimulator");
String appName = "5LDV***BF.com.yeetrack.ios.app"; //注意修改成自己的应用,这块可以在Xcode中查看,实际上就是Xcode中的Bundle identifier这个参数
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("platformVersion", "7.1.1"); //真机的ios版本
capabilities.setCapability("platformName", "iOS");
capabilities.setCapability("deviceName", "iPhone");
capabilities.setCapability("app", appName);
driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
启动Appium服务,在测试项目的根路径执行mvn clean mvn -Dtest=com.saucelabs.appium.UICatalogTest test
即可.
在Android中,我们可以使用hierarchyviewer这个强大的工具,来分析界面控件,查看控件id、name、类型等。在ios如果要分析界面控件,可以使用Xcode查看,或者通过Xcode的UIAutomator录制的js脚本查看,但是都比较麻烦。Appium为我们提供了Inspector这款工具。简单使用步骤如下:
点击“苹果”图标,设置相关参数,如截图
/Users/apple/work/workspace/sample-code/sample-code/apps/UICatalog/build/Release-iphonesimulator/UICatalog.app
点击“Launch”图标,启动Appium Server
标签:des android http io os ar 使用 java for
原文地址:http://my.oschina.net/u/147181/blog/338449