我最近开始考虑用Appium做一些功能测试.我想通过
Android Studio通过gradle运行Appium测试.
有没有人试图这样做,如果可以的话,你可以给我一些关于设置的信息,比如什么样的任务使用等等
我在构建文件中包含了必要的依赖项:
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(); } } }
解决方法
在命令行中运行它应该查看项目中所有类的一个名为TrialTest的类,并仅运行这些测试
gradle -Dtest.single=TrialTest
你必须有一个称为测试的毕业生.确保你的build.gradle文件中有这个
test { testLogging{ events 'started','passed' } }