热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android自动化测试之MonkeyRunner学习(一)

android,自动化,测试,之,monkeyr

    这里只是记录分享一下自己的学习心得,希望给一些新手有所启发,少一点摸索的时间,如有不准确之处,欢迎指出,不胜感激。

     android的sdk中集成了三个比较简单的可用来进行自动化测试的工具:Monkey、MonkeyRunner和Robotium。这三个测试工具都是基于黑盒测试。Monkey相对而言比较简单,只是在cmd下写几行指令对要测试的程序进行简单的压力测试。Robotium测试工具总共只有一个Solo类,里面提供了许多可以用来操作测试设备的方法。MonkeyRunner相对而言,是三个工具中功能最强大的。

MonkeyRunner测试工具主要是编写一个Python程序去安装一个android程序或者测试包,通过模拟一些对程序点击操作的过程,来测试一个程序的稳定性及通过截屏可以方便的记录出现的问题。

Monkeyrunner工具是使用Jython(使用Java编程语言的一种Python实现)写出来的。Jython允许MonkeyrunnerAPI与Android框架轻松的进行交互。至于什么是Python,大家可以百度一下,是一门很强大的面向对象的编程语言,可以跨平台运行。当然,我们使用MonkeyRunner测试工具,不必要一定先去学习Python语言,我们恐怕在实际工作中也没有那么多时间,我们只需要了解一些常用的Python编程规范即可。(这些会在后面结合代码给出)。

 现在主要讲一下怎么配置一下一个Monkeyrunner的工作环境。

 如果只是简单使用MonkeyRunner测试工具的话,就没有必要像网上说的,下载一个Python版本安装程序进行安装,或者在eclipose里面集成一个python的插件,用来调试Python程序,在eclipse里面集成插件远没有直接使用记事本或者Notepad等编辑工具好用,因为Monkeyrunner总共就只有三个类(MonkeyRunner,MonkeyDevice,MonkeyImage),也没有那么多方法,让你有在eclipse里写程序时自动提示什么的优势,而有时插件和eclipse版本之间又会出现一些让你头疼的问题。所以,只要一个记事本足矣。

     言归正传,既然是android测试,你肯定是配过android的开发环境了(不会配的可以百度)。android开发免不了要用到android sdk tools下的一些开发工具,你可以在系统环境变量里面配置一个ANDROID_HOME变量,把你的android SDK 安装路径加进去。比如我的路径是:G:\android03\android-sdk-windows。如果你已经配过了ANDROID_HOME变量,你现在只需要在你的系统变量的PATH变量中,把这句话加进去:%ANDROID_HOME%/tools;其实也就是相当于你把指向到android sdk tools的路径加到PATH变量中。

     添加好之后,你可以直接在cmd下运行:monkeyrunner 命令,回车。如果出现monkeyrunner的版本信息,就证明你monkeyrunner环境已经配成功了。(如下图)

 

有时,你配好之后,会出现NOCLASSDefFound的错误.如下图:

    这个是由于你的sdk中缺少了一个ChimpChat.jar文件,大家可以去http://code.google.com/p/aster/downloads/list下载一个最新的aster 的压缩包。这个是android系统测试需要用得到运行时环境包,解压这个压缩包,可以在以下路径中找到aster\dist\jar\chimpchat.jar ,然后,把chimpchat.jar复制到你的android sdk 中tools目录下的bin目录中,然后再运行monkeyrunner命令即可。

     配置好后,就可以在cmd下通过monkeyrunner命令运行你写的monkeyrunner Python测试文件。

     比如:monkeyrunner e:\test.py.

     今天就先写到这里。不喜欢熬夜了,大家注意身体哈。



本文转自 风泊海上 51CTO博客,原文链接:http://blog.51cto.com/fengbohaishang/958900



推荐阅读
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 修复安装win10失败并提示“磁盘布局不受UEFI固件支持”的方法
    本文介绍了修复安装win10失败并提示“磁盘布局不受UEFI固件支持”的方法。首先解释了UEFI的概念和作用,然后提供了两种解决方法。第一种方法是在bios界面中将Boot Mode设置为Legacy Support,Boot Priority设置为Legacy First,并关闭UEFI。第二种方法是使用U盘启动盘进入PE系统,运行磁盘分区工具DiskGenius,将硬盘的分区表设置为gpt格式,并留出288MB的内存。最后,通过运行界面输入命令cmd来完成设置。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
author-avatar
手机用户2602939883
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有