2014-11-07 23 views
10

Gần đây tôi đã bắt đầu xem xét thực hiện một số thử nghiệm chức năng với Appium. Tôi muốn chạy các bài kiểm tra Appium thông qua Android studio thông qua gradle.Thử nghiệm Android với Appium và Gradle

Có ai cố gắng để làm điều này và nếu như vậy bạn có thể cho tôi một số thông tin về việc thiết lập, chẳng hạn như những nhiệm vụ gradle sử dụng vv

Tôi đã bao gồm các phụ thuộc cần thiết trong xây dựng của tôi file:

androidTestCompile ('io.appium: java-client: 2.0.0')

tôi có một bài kiểm tra mẫu dưới đây, tôi chỉ cần một cách để chạy nó qua 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(); 
    } 
    } 
} 

Trả lời

0

Tôi đã thực hiện việc này bằng Eclipse thông qua gradle. Dưới đây là từng bước mô tả:

  1. Tạo một file build.gradle
  2. repoistories đề cập đến (maven trung ương())
  3. đề cập đến tất cả phụ thuộc dự án của bạn trong phần "phụ thuộc"
  4. Nếu bạn muốn tạo tệp kê khai có tất cả các bình của bạn thay vì đề cập từng cái một trong classpath, bạn có thể đề cập đến tất cả ở một nơi bằng cách sử dụng:

    jar { manifest.attributes ( 'Cla ss-Path ': configurations.runtime.files.collect {} it.name .join (' ') ) }

Thats nó. Của bạn là tốt để đi.

1

Chạy này trong dòng lệnh nên xem xét thông qua tất cả các lớp trong dự án của bạn cho một gọi TrialTest và chỉ chạy những thử nghiệm

gradle -Dtest.single=TrialTest 

Bạn phải có một nhiệm vụ gradle gọi là thử nghiệm mặc dù. Đảm bảo bạn có tệp này trong tệp build.gradle của mình

test { 
    testLogging{ 
     events 'started', 'passed' 
    } 
} 
0

Tôi biết đây là câu hỏi rất cũ. Nhưng here là một mẫu làm việc mẫu cho khung kiểm tra chức năng Android bằng cách sử dụng Appium, trong Java và được định cấu hình để chạy thử nghiệm bằng Gradle.

0

Có vẻ như vẫn không có câu trả lời được chấp nhận cho điều này. Chạy thử nghiệm với gradle là tương tự và sạch sẽ như để chạy chúng với maven. Trong bạn build.gradle bạn có thể chỉ định các nguồn lực kiểm tra bao gồm trong

sourceSets { 
    ... 
    test { 
    java { 
     srcDirs = ["test/model"] 
     // this specifies directories irrespective of default test directory, could be com/appium/trial in your case 
    } 
    } 
} 

và ở đó sau khi vào cmd/shell thực hiện:

./gradlew test /* executes @Test as defined under the sourceSets*/ 

PS: Điều gì @BenJi đã gợi ý trong các câu trả lời dưới đây cũng là một phương pháp tốt để xác định tác vụ tùy chỉnh để thực hiện bất kỳ tác vụ nào bằng cách sử dụng gradle.

Các vấn đề liên quan