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

本文我们主要讨论如何通过测试完成的测试(此处我们还会创建)

当然在开始之前,我们首先需要下载Appium,下载地址为,根据安装说明我们可以完成Appium的安装。
运行以下命令行构建sample projects:

grunt buildApp:TestAppgrunt buildApp:UICatalog

一旦完成构建,即可通过以下命令启动Appium:

grunt appium

变更工作目录到sample-code/examples/java/junit,运行测试

mvn test

或运行单个测试:

mvn -Dtest=com.saucelabs.appium.SimpleTest test

Java Appium测试与Selenium Test非常的相似,你可以创建一个RemoteWebDriver实例并指定DesiredCapabilities,脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Before
public
void
setUp()
throws
Exception {
// set up appium against a local application
File appDir =
new
File(System.getProperty(
"user.dir"
),
"../../../apps/TestApp/build/Release-iphonesimulator"
);
File app =
new
File(appDir,
"TestApp.app"
);
DesiredCapabilities capabilities =
new
DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME,
"iOS"
);
capabilities.setCapability(CapabilityType.VERSION,
"6.0"
);
capabilities.setCapability(CapabilityType.PLATFORM,
"Mac"
);
//tell Appium where the location of the app is
capabilities.setCapability(
"app"
, app.getAbsolutePath());
//create a RemoteWebDriver, the default port for Appium is 4723
driver =
new
RemoteWebDriver(
new
URL(
"http://127.0.0.1:4723/wd/hub"
), capabilities);
}

完成以上脚本后即可直接通过类似selenium测试的方式完成测试脚本:

1
2
3
4
5
6
7
8
9
10
11
@Test
public
void
example()
throws
Exception {
// find an element by tag name
WebElement button = driver.findElement(By.tagName(
"button"
));
button.click();
// get the value of the element
WebElement texts = driver.findElement(By.tagName(
"staticText"
));
assertEquals(texts.getText(),
"some expected value"
);
}