上一篇博文中讲述了通过Socket编程从外部向Emulator发送键盘鼠标模拟事件,貌似实现细节有点复杂。其实Android还有一种更简单的模拟键盘鼠标事件的方法,那就是通过使用adbshell命令。1.发送键盘事件:命令格式1:adbshellinputkeyevent“value”其中value以及对应的keycode如下表所列:KeyEventValueKEYCODEComment0KEYC
2014-01-14| 2937 人阅读| 0 人点赞

通过Socket+Instrumentation实现模拟键盘鼠标事件主要通过以下三个部分组成:lSocket编程:实现PC和Emulator通讯,并进行循环监听lService服务:将Socket的监听程序放在Service中,从而达到后台运行的目的。这里要说明的是启动服务有两种方式,bindService和startService,两者的区别是,前者会使启动的Service随着启动Service
2014-01-14| 1711 人阅读| 0 人点赞

前两节讲了用AndroidSDK自带的tool-hierarchyviewer来捕获Activity上Element,并分析了其中的原理。对于要实现GUI自动化,还有哪些工作没有完成呢?nInvoke界面上的Element,如点击按钮,在文本框中输入内容等nPress手机自身所有的按键,如HOME键,Menu键,左右上下方向键,通话键,挂机键等n判断测试结果前面说过,直接从Emulator内部获取
2014-01-14| 1894 人阅读| 0 人点赞

AndroidSDKtools下的工具hierarchyviewer可以展现Device上的Element的层次分布和自身属性,其核心函数之一就是LoadScene,研究后发现其实现方法是向Device的4939端口通过socket的方式发送了一个DUMP的命令,Device会自动处理该命令并将所有Screen上的Element层次结构和属性一并发回,实现代码如下:publicstaticvoid
2014-01-14| 1749 人阅读| 0 人点赞

第一部分:前言Android系统下应用程序的测试现在应该还算是个新的领域,网上关于这方面的资料很多都是基于白盒测试的,一般都是基于JUnit框架和AndroidSDK中android.test等命名空间下的内容进行,但是有一个前提,那就是必须要有应用程序的源代码以提供测试接入点,但是这在很多软件公司中是不现实的。很多测试工程师做的工作是完全黑盒,基本接触不到源代码,白盒测试大部分也是由开发自己完成
2014-01-14| 1881 人阅读| 0 人点赞

mock在单元测试中已经众所周知。现今我们有各种功能强大而又好用的mock框架,可以很方便的解除单元测试中各种依赖,这大大的降低了编写单元测试的难度。而测试驱动开发(TDD)更进一步将mock作为一种设计手段,来辅助识别出元素之间交互的接口和职责。那么在功能测试(这里提到的功能测试指的是用户级测试)这个层次,是否有必要使用mock呢?如果有必要又将如何构建呢?或者说是否有可能像单元测试中那样构建一
2014-01-12| 2315 人阅读| 7 人点赞

AngularJS是继jQuery之后发生在JavaScript上最好的东西。这也是JavaScript开发一直以来想要的方式。Angular主要的优点之一就是它的依赖注入(DependencyInjection),它非常利于代码的单元测试。但有点小怪异的是,我在无论如何都没能找到一个介绍如何做单元测试的教程。当然有很多不错的推荐:使用Jasmine测试框架和Karma测试执行器(TestRunn
2014-01-11| 2052 人阅读| 0 人点赞

我坚持去健身房锻炼身体,练习举重,我喜欢这种让自己变得更强壮、更健康的感觉。大约两个月前,我的膝盖开始感觉抽痛,但我仍然坚强去锻炼。我一心想让自己更强壮,完全忽视了腿上的健康问题,仍然强迫自己继续举重。你可以想象出,膝盖上的痛没有好转,每一次精疲力尽的锻炼后我都需要更长时间的恢复。作为一个在Rackspace公司的初级程序员(在Airbrake开发组),我经常会有一种相似的感觉,它催促我不停的大量
2014-01-10| 1826 人阅读| 0 人点赞

作者:殷坤测试是为了保证软件的质量,敏捷测试关键是保证可以持续、及时的对软件质量情况进行全面的反馈。由于在敏捷开发过程中每个迭代都会增加功能、修复缺陷或重构代码,所以在完成当前迭代新增特性测试工作的同时,还要通过回归测试来保证历史功能不受影响。为此我们期望:测试范围足够广:测试用例要覆盖所有功能;要在各种可能的环境下作兼容性测试;系统的稳定性、性能都要测试;测试频率足够高:每日构建产生的版本要保证
2014-01-09| 2002 人阅读| 0 人点赞

译者:蔡小滢在软件开发上任何花费时间少于十分钟的都是非常琐碎或者优先级不高的。如果你使用这个准则来衡量事情的价值,那么你打算怎么看待测试计划呢?当然,要进行一个测试计划所花费的时间是不止10分钟的。在我担任Google测试主管时,我带领过一个写大量测试计划的团队,每每询问到完成一个测试计划需要多长的时间,我总被告知「明天」,「这周末」或者有几次被告知「今天晚些时候」。所以我会理解为完成一个测试计划
2014-01-08| 1882 人阅读| 0 人点赞