以正确的方式多次运行espresso测试

时间:2018-03-08 09:44:38

标签: android kotlin android-espresso

我目前正在安装Espresso的android,我有这个测试,点击一个按钮,填充我的listView,然后记录动作的执行时间。

@RunWith(AndroidJUnit4::class)
class Test {

@get:Rule
val mActivityActivityTestRule = ActivityTestRule(MainActivity::class.java)

@Test
@Throws(java.lang.Exception::class)

fun test_fetchData_populates_listView() {

    //Click the get_rec_articles button.
    onView(withId(R.id.get_rec_articles_btn)).perform(click())
    val start = System.currentTimeMillis()

    //check if the listView is created.
    onView(withId(R.id.rec_articles_listview)).check(matches(isDisplayed()))

    //check if items can be clicked.
    onData(CoreMatchers.anything()).inAdapterView(withId(R.id.rec_articles_listview)).atPosition(0).perform(click())
    val end = System.currentTimeMillis()
    val loadTime = (end - start)

    Log.d("###### LOADTIME FOR FETCHDATA FUNCTION:", "" + loadTime + " MILLISECS ######")

    }
}

我想找一个好的方法来调试50次然后获得平均加载时间。我可以手动运行50次然后计算它,但我有几个测试,我希望平均加载时间来自。

我已经在网站上阅读了有关相同主题的问题并尝试了建议的解决方案,但它没有帮助。

1 个答案:

答案 0 :(得分:0)

我遇到了一个非常相似的问题,因此,我创建了一个库来多次运行Android UI测试。在您的情况下可能有用:https://github.com/stepstone-tech/AndroidTestXRunner

就加载时间而言,运行测试后,会创建一个JUnit报告,并将每个测试的时间放置在生成的JUNit报告XML中。您可以获取这些值并根据该值计算平均值。