我最近开始研究使用 Appium 进行一些功能性测试。我想通过 gradle 在 Android Studio 中运行 Appium 测试。
是否有人尝试过这样做,如果是,您能否提供一些设置信息,例如要使用哪些 gradle 任务等。
我已在我的构建文件中包含了必要的依赖项:
androidTestCompile('io.appium:java-client:2.0.0')
下面是一个示例测试,我只需要一种通过 gradle 运行它的方法 :)
package com.appium.trial;
import junit.framework.Assert;
import io.appium.java_client.AppiumDriver;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
public class TrialTest {
private static WebDriver wd;
@Before
public void setUp() {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("appium-version", "1.0");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("platformVersion", "4.4");
capabilities.setCapability("deviceName", "Samsung Galaxy S4 - 4.2.2 - API 17 - 1080x1920");
capabilities.setCapability("app", "/Users/chuckster/Documents/Dev/AppiumTrial/appium-trial.apk");
capabilities.setCapability("appPackage", "com.appium.trial");
capabilities.setCapability("appActivity", "com.appium.trial.TrialTest");
try {
wd = new AppiumDriver(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
} catch (MalformedURLException e) {
e.printStackTrace();
}
wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
}
@Test
public static void testThatClickingTheMotorSectionLeadsToSubSection(){
wd.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[2]/android.widget.RelativeLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.ScrollView[1]/android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[5]/android.widget.TextView[1]")).click();
wd.close();
}
@After
public void tearDown() {
if (wd != null) {
wd.quit();
}
}
}