51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2052|回复: 0
打印 上一主题 下一主题

monkeyrunner生成帮助手册的方法

[复制链接]
  • TA的每日心情
    无聊
    2024-9-19 09:07
  • 签到天数: 11 天

    连续签到: 2 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2019-3-11 15:54:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1.其实Monkeyrunner自身是带有帮助手册的,里面有所有API的说明,可以输出为HTML或者TXT格式的文档。这对于我们学习来说,已经足够了。可是,这个帮助文档在哪呢?根据Android developer网站上的说明,我们可以用这个命令来生成API reference手册:
    1. monkeyrunner<format>help.py<outfile>
    复制代码

    其中,format可以是HTML和TXT。outfile就是咱们输出文档的路径。OK,说做咱就做,比如我们运行 monkeyrunner html help.py "mrapi.html",回车。咦,报错了?Can't open sepcified script. 不对啊,这照着做也出错,这不坑die吗?是的,这次google似乎是估计留了个陷阱在这。在monkeyrunner的路径里面确实找不到help.py这个文件,不报错那就是SDK有错了。那该肿么办呢?我们可以看看monkeyrunner的源码,在Monkeyrunner.java中,可以看到静态的help方法可以生成所有帮助的字符串,那么可不可以利用这个方法来生成API帮助文档呢?实践证明是可以的。代码很简单,如下:
    1. from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
    2. content = MonkeyRunner.help("text");
    3. f = open('help.txt', 'w');
    4. f.write(content);
    5. f.close();
    复制代码

    如果要生成html的话,替换第二行的参数为html,并将第三行的help.txt改为html即可。完毕后,我们可以保存为help.py文件(为方便起见我们最好将该文件放到monkeyrunner.bat同一目录)。然后我们直接运行 monkeyrunner help.py,等待2,3秒钟,OK,运行完毕,help.txt是不是已经在你眼前了?呵呵,好好看看吧,所有API函数都在里面了。其实大家如果不想生成文档,想看在线的,也是可以的,android developer上都有,个人所爱吧。

    2.另外还有一个问题是,有童鞋使用MonkeyImage的sameAs方法老是出错,我自己试了试,确实要出错,错误提示是:不能将IChimpImage对象转换为IMonkeyImage对象时要出错。再次查看源码,MonkeyImage.java中的sameAs函数有这么一个注释:// TODO: check if thisconversion works

    IChimpImage ther = (IChimpImage) otherObject.__tojava__(IChimpImage.class);

    看来明显google的工程师还没有验证过这个转换的正确性,并且很杯具地失败了。哎,真是天意弄人。幸好,有万能的python在,我们还是有办法滴。建议大家使用python的PIL库进行图片比较,一样可以达到非常好的效果并且要稳定很多。


    3.还有一个常见的问题是模拟按键时的press方法,比如我们要模拟按一下向下键,本来可以这样写:device.press('KEYCODE_DPAD_DOWN', 'DOWN_AND_UP')但大家会发现要报错,并且是很奇怪的错: TypeError: press: The 3rd argument is required. 咋会这样呢?再看看MonkeyDevice的源码,原来DOWN_AND_UP是MonkeyDevice的静态字符串成员,应该是可以直接调用的。我们再换成 device.press('KEYCODE_DPAD_DOWN', MonkeyDevice.DOWN_AND_UP)

    这下终于OK了,呵呵。


    4还有一个常见的问题是,能否将monkeyrunner集成到eclipse中?答案是看你使用什么平台。如果是linux环境下,那没问题,完全可以,具体操作可以看看国外有个高手写的博客,需翻墙:http://dtmilano.blogspot.com/201 ... r-from-eclipse.html 但如果你是用的window环境,那情况似乎就没有那么乐观了。因为google没有提供在windows环境下用于eclipse的monkeyrunner解释器,所以...基本上是8可能配置的,除非哪个高手将这个解释器做出来,呵呵。还是辛苦点,手写吧,也有利于真正锻炼大家的编程能力。

    Monkeyrunner是基于python的脚本自动化工具,虽然有一定的局限性,不过使用起来确实入门门槛较低,大家看看帮助,自己利用ApiDemos的example做例子多练练,应该还是可以很快入门的。


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-9 10:23 , Processed in 0.058791 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表