Robotium 测试 tv 盒子 App 的几个问题

剪烛 · June 17, 2014 · Last by 思寒_seveniruby replied at June 17, 2014 · 2353 hits

1 TV盒子类的设备很大一部分都不能连USB线,或者只有能插U盘的USB口,这样好像就没办法用adb连接设备,来发送测试命令了……
有想到两个可能的解决方法,一个是另外写一个app,用来调起测试。再一个是远程adb,可是那样需要设备root,还需要在设备上输入命令行,感觉更加复杂了……

2 盒子类的app跟手机类的app一个很大的特点是通过方向键控制焦点,我们想有一个功能点希望焦点从一个功能块移动到另外一个功能块时,能够验证是正确的。
类似下面的这张图,好像无法获取焦点框所在的View(solo.getCurrentActivity().getCurrentFocus()获取的是整个的ViewGroup),从来根本不知道焦点是不是在正确的位置

另外,对于焦点移动这样的测试,不知道大家有没有什么好的经验。
目前我做了的,一个是通过最后的结果是否达到预期来判断,但是这个明显很弱,有时候焦点到达了错误的位置,也仍然有正确的结果 。
还有一个是类似压力测试(我不知道这个算不算,姑且这么说吧),在不同界面,随机发送方向键,或者在分段加载的列表中让焦点经过每一个功能块。

3 我目前测试的应用是一个视屏类的应用,播放视频是使用的是系统的播放器,然后我发现Robotium的截图无法截到播放的画面。当控制隐藏了之后截图,就是完全一片黑。
之后我试着用adb shell /system/bin/screencap -p 命令截图,效果也是一样的。
不知道大家有没有遇到过类似的。或者给个方向看看有没有其他方法

4 Robotium的主动获取toast的问题……额……估计无解……

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

www.testin.cn上也提供了关于tv和盒子的测试体系。也是可以通过adb来交互的。
截图那个好像是有个方法可以解决, 听说过。
对盒子不太了解飘过。

你什么时候去的小米啊。

#1楼 @seveniruby testin 的测试体系介绍下?

@shixue33

第一个问题: 一般都会提供 adbd 服务。 如果不提供自己用串口打开,测试盒子,是不允许使用eng版本或者root版本的。

第二个问题: 焦点获得的地方可以点进去,看看是不是正确呗

下次分享,我来介绍testin的测试体系。上面的免费资源很多,普通的测试工程师是可以用起来的。 @lihuazhang

1,adb connect ip地址,就可以adb devices看到serial number了格式:IP:5555
2,这个可以用uiautomator吧,或者我们的工具,AndroidRobot 4.3版本(迈测(上海)信息科技有限公司)
3,视频确实不行的,通过adb是抓不到屏幕的

#4楼 @hoozheng 何总。。

第一个问题有两个办法。
1)串口连接。 打开xshell 或者 putty,协议选择 Serial
2) adb tcp连接。例: adb connect :5555

我表示视频播放页面,使用robotium自带的截图方法,是黑屏的;但是我用screencap是有画面的;
因为robotium的截图方法是view的方法截屏,视频是自绘控件,用view截图的方式截不到

可以考虑pc端截图

剪烛 #9 · June 18, 2014 作者

#3楼 @seveniruby
(o)/~ 我没有在小米,只是举个栗子,举个栗子。
我们做的是视频类的App,现在用来调试自动化的就是小米盒子。
期待itestin的分享。我从很早的时候开始用testin来做手机端适配的测试,但是现在开始做TV以后,好像在testin上没有找到TV盒子的解决方法

剪烛 #10 · June 18, 2014 作者

#2楼 @lihuazhang = =~现在其实是这样做的,但是如果结果所有的功能块enter进去都是进的同一个Activity,就没法知道到底是不是到了正确的位置了。

剪烛 #11 · June 18, 2014 作者

#7楼 @keen_lau 我PC端用screencap也是截不到播放的画面的。真的没法呃。

#9楼 @shixue33 不过目前tv盒子也不是太多,所以自己买齐也是可以的。testin也是最近刚上的。

#10楼 @shixue33 按坐标吧。 tv 盒子的布局一般都是定死的

#11楼 @shixue33 你是什么视频软件,感觉你们是做多屏播放的

@shixue33 157546818 来加这个群吧~

android 上视频类的应用,视频播放时,使用android上的截屏工具仅能capture到OSD层的数据,关于视频层数据需要从芯片厂商的framebuffer或者和显示相关的底层buffer获得;例如目前的Smart TV的显示输出通过Onebyone或者Lvds,那么芯片厂商可以获得LVDS raw data 转出YUV或者Jpeg,png图片了;

#16楼 @oatsuper 厂家或者播放器那边开后门即可吧? 一般开发为了自己测试,都会留后门的。

一般是需要和芯片厂商明确改需求,要不然整体release给做产品的终端公司的code里是没有类似后门的的吧;播放器端的代码应该不行的,需要芯片厂商给出类似的二进制工具,代码里通过jni或者shell命令来运行获得OSD层和Video层的都正常显示的截屏

用DDMS能截到有画面的图片吗?

20Floor has been deleted
剪烛 #21 · June 27, 2014 作者

#19楼 @keen_lau hi~keen 我尝试了,跟其他截屏结果是一样的,视频画面是黑的

前段时间试了我们自己的应用,也是黑屏,此题无解

剪烛 #23 · July 19, 2014 作者

#22楼 @keen_lau 嗯,只能容忍了。- -不过也无所谓了,TV视频应用环境严峻了,我们项目被砍了。应该短期内不做这个了。

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up