相关疑难解决方法(0)

在app中运行仪器测试并等待结果

我正在开发一种QA自动化解决方案,可以在Android上记录/回放QA测试.关键业务要求是在回放录制的测试时不依赖于连接的PC.为此,我试图在没有连接PC的情况下运行仪器测试.(具体来说,是Appium UiAutomator2测试).

我目前的方法是尝试从我的应用程序以编程方式运行测试.如果我通常从连接的PC运行测试,我会使用该命令adb shell am instrument -w.我尝试从我的应用程序访问ADB Shell并运行am instrument -w,但这会产生错误,我错过了INTERACT_ACROSS_USERS_FULL权限.

为了解决这个问题,我尝试使用startInstrumentation运行测试.这成功地开始了测试.但是,测试立即崩溃.经过进一步调查,我将崩溃追踪到NPE:测试试图检索InstrumentationRegistry.getInstrumentation.getUiAutomation(0),但是返回null.

如何以编程方式运行测试并授予其访问所需的UiAutomation实例的权限?

这就是我开始测试的方式:

public void runTest() {
    final String pm = getPackageName().replaceFirst(".test$", "");
    final InstrumentationInfo info = getInstrumentationInfo(pm);
    if (info != null) {

        final ComponentName cn = new ComponentName(info.packageName,
                info.name);

        Bundle arguments = new Bundle();
        arguments.putString("class", "io.testim.appiumwrapper.test.AppiumUiAutomator2Server");
        //cn = {io.extension.test/android.support.test.runner.AndroidJUnitRunner}
        startInstrumentation(cn, null, arguments);

    } 
}
Run Code Online (Sandbox Code Playgroud)

android android-testing appium android-instrumentation appium-android

20
推荐指数
1
解决办法
788
查看次数

获取AccessibilityNodeInfo的视图以创建叠加层

我正在写一个AccessibilityService,我想在可访问性服务可以检索的当前活动的视图上创建视图叠加.AccessibilityNodeInfo从当前活动中检索所有对象没有问题,但我不知道如何从这些对象中获取视图以创建叠加层.不幸的是,关于无障碍服务的例子很少.也许你们中的一些人已经有过这个主题的经验.我希望你能帮帮我!谢谢!

编辑:一篇论文表明,活动视图内容的叠加是可能的:

借助Android Accessibility Framework [10],显示叠加层能够执行这些任务.使用辅助功能API,它可以访问和检查屏幕上应用程序的GUI布局,而无需修改或修改应用程序代码."*

链接:http://www.onarlioglu.com/publications/fc2015babelcrypt.pdf

第6页和第8页.谢谢!

service android accessibility accessibilityservice

6
推荐指数
1
解决办法
1942
查看次数