2014-10-03 75 views
3

我正在寻找目前主流的Android UI测试框架& Android Studio。Android UI测试框架

Android开发人员网站上的文档适用于Eclipse,但我使用的是Android Studio。我看过Robolectric,之前说过的默认框架,WebDriver的东西等,但都看起来不赞成,或者太复杂。

我有一个几乎完整的项目,所以我不能从一些基于Github项目开始。我试图合并Deckard,wiliamsouza的蓝牙项目(see)等,没有任何成功。

Android目前首选的UI测试框架是什么?您可以向我展示Android Studio的分步教程吗?我一直在寻找它好几天了。

谢谢!

+0

我建议你试试这个库:https://github.com/mauriciotogneri/green-coffee 你只需要导入它,然后你就可以运行用小黄瓜你的测试。 – 2017-02-04 10:06:55

回答

4

首先,你试过Robotium?这很简单,适用于本地混合应用程序。我经常使用它。与Maven,Gradle或Ant平滑集成,作为持续集成的一部分运行测试。

import junit.framework.Assert; 

public class EditorTest extends ActivityInstrumentationTestCase2<EditorActivity> { 
    private Solo solo; 

    public EditorTest() { 
     super(EditorActivity.class); 
    } 

    public void setUp() throws Exception { 
     solo = new Solo(getInstrumentation(), getActivity()); 
    } 

    public void testPreferenceIsSaved() throws Exception { 
     solo.sendKey(Solo.MENU); 
     solo.clickOnText("More"); 
     solo.clickOnText("Preferences"); 
     solo.clickOnText("Edit File Extensions"); 
     Assert.assertTrue(solo.searchText("rtf")); 

     solo.clickOnText("txt"); 
     solo.clearEditText(2); 
     solo.enterText(2, "robotium"); 
     solo.clickOnButton("Save"); 
     solo.goBack(); 
     solo.clickOnText("Edit File Extensions"); 
     Assert.assertTrue(solo.searchText("application/robotium")); 
    } 

    @Override 
    public void tearDown() throws Exception { 
     solo.finishOpenedActivities(); 
    } 
} 

二,Espresso。另一个容易与Gradle整合。官方Google IO video

onView(withId(R.id.my_view))  // withId(R.id.my_view) is a ViewMatcher 
     .perform(click())    // click() is a ViewAction 
     .check(matches(isDisplayed())); // matches(isDisplayed()) is a ViewAssertion 
+0

好吧,我试过了,看起来不错。但是我怎样才能在'EditText'的值上使用assertEqual?我试着'Assert.assertEquals(solo.getEditText(.. id ..)。toString(),“Text”);',但它不起作用。也试过http://stackoverflow.com/a/22969743/2891426 – 2014-10-03 16:59:07

+0

Appium似乎很有前途,很容易。 http://appium.io/ – Hamedz 2016-06-13 16:51:22