其他分享
首页 > 其他分享> > 与Android本机代码相比,为什么Robotium执行简单的UI任务时速度较慢?

与Android本机代码相比,为什么Robotium执行简单的UI任务时速度较慢?

作者:互联网

我正在使用Robotium在我的单元测试项目上做一些简单的UI任务.我注意到Solo明显变慢了,我不知道为什么.我是新手.

这段代码是用Robotium完成的:

    solo.clearEditText(editTextLogin);
    solo.clearEditText(editTextSenha);
    solo.enterText(editTextLogin, "tecnico@mail.com");
    solo.enterText(editTextSenha, "12345");
    solo.clickOnButton(0);

这是通过本机代码完成的:

m_Activity.runOnUiThread(new Runnable() {

        @Override
        public void run() {
            editTextLogin.setText("tecnico@mail.com");
            editTextSenha.setText("12345");
            loginButton.performClick();
        }
    });

与第二个相比,使用Robotium执行的代码要慢得多.我可以很容易地发现Robotium实际上是机械地完成所有的东西,而本机代码只是设置对象的值,这可以解释差异,但我最好的解释是,何时使用Robotium,它应该是什么样的,可以实现真正的性能提升的方式.

我为任何错误道歉.

解决方法:

它引起了我的注意,你非常担心测试性能.

Android UI测试方法非常复杂,并且为您提供了难以理解的测试用例. Robotium并不专注于性能,它专注于使开发人员可以访问API,使他们的测试更容易编写和读取.

我不会尝试确定哪种方法最适合进行测试.我会在Robotium中做到这一点,因为它更容易编码,然后在必要时移植到本机.

在我个人的情况下,我不关心Robotium让我的测试更慢.如果这是我为避免使用原生UI测试工具而必须付出的代价,我很酷.

如果测试花费太多时间,您可以随时在CI中运行.

标签:android,unit-testing,robotium
来源: https://codeday.me/bug/20190630/1337663.html