Robotium 如何在自身 apk 自身中启动 robotium 测试用例?

思寒_seveniruby · 2014年11月21日 · 最后由 rhyme 回复于 2017年08月26日 · 1869 次阅读

最近研究 robotium, 遇到了一个问题. 我想在 apk 启动的时候, 点击界面中的某个按钮, 然后做一些自动化测试工作.
测试代码和研发代码都打包在一起 (特殊需要, 不能分开)
然后就发现 startinstrumation 方法好像不支持 robotium. 但是网上都说是支持的. 我一直没试验成功. 所以请教下大家.

实现的步骤如下

编写了一个 apk,

2 个界面, 一个是界面 A, 一个是界面 B
界面 A 可以点击按钮, 用来启动 robotium 来跑界面 B 的测试验证.
大概有 MainAcitivity 和 DemoActivity.

编写一个 robotium 的测试用例.

用来做界面 B 的测试工作, 比如名字是 TestDemo

运行 robotium

在界面 A 中点击按钮, 调用 robotium

startInstrumentation(new ComponentName("cn.appium.adsd", 
                    "android.test.InstrumentationTestRunner"), null, null);

配置文件如下

<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:label="Local Sample"
android:targetPackage="cn.appium.adsd" />

也试过

<instrumentation
android:name=".TestDemo"
android:label="Local Sample"
android:targetPackage="cn.appium.adsd" />

问题

然后发现启动不了 robotium, 直接会崩溃退出
发现 startInstrumentation 启动 andorid 自带的 instrumentation 没有问题, 但是启动 robotium 测试用例就会异常崩溃.

大家有测试过吗?

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 10 条回复 时间 点赞

我是直接开个线程 用 am instrument --user 0 -w "+testName.get(position)+"/android.test.InstrumentationTestRunner 启动

#1 楼 @banbas 这样的问题是 am 的执行需要 shell 权限, 所以你要不在 shell 下才能执行. 要不就要 root.
普通的 app 是没权限执行 am 命令的.

同问?找到方法了吗?

#1 楼 @banbas 我也这么跑,不过加载好慢。。。

#4 楼 @strayhrt 你是加载 robotium 测试那 @zzzqql 我还没找到加载 robotium 用例的方法.

#5 楼 @seveniruby 别的方法试过 都不行 可以提升权限 就可以了吧

#5 楼 @seveniruby 别的方法试过 都不行 可以提升权限 就可以了吧

可以试试 trinea 这个库

楼主,现在你找到可以执行的方法了吗?

权限问题,有解决方案么?只能 Root?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册