测试自动化
天地会珠海分舵
互联网老兵,全栈小学生
展开
-
第3章2节《MonkeyRunner源码剖析》脚本编写示例: MonkeyDevice API使用示例(原创)
上一节我们学习了如何通过MonkeyRunner这个类的静态方法waitForConnection来把后台和设备建立好连接,且看到了在建立连接成功后,该方法会返回来一个MonkeyDevice的实例对象。那么这一节我们就通过编写一些脚本代码示例来了解学习下MonkeyDevice这个类的使用方法原创 2015-03-07 17:36:02 · 2474 阅读 · 0 评论 -
第2章2节《MonkeyRunner源码剖析》了解你的测试对象: NotePad窗口Activity之NotesList简介(原创)
天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写《深入理解 MonkeyRunner》书籍“。但因为诸多原因,没有如愿。所以这里把草稿分享出来,所以错误在所难免。有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息。NotePad窗口Activity之NotesList简介上一节我们简要描述了测试对象NotePad的主要功能模块,那么这一节开始我们就会对每原创 2015-03-06 00:00:44 · 1882 阅读 · 0 评论 -
第3章1节《MonkeyRunner源码剖析》脚本编写示例: MonkeyRunner API使用示例(原创)
天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写《深入理解 MonkeyRunner》书籍“。但因为诸多原因,没有如愿。所以这里把草稿分享出来,所以错误在所难免。有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息。MonkeyRunner这个类可以说是编写monkeyrunner脚本的入口,因为这个类有一个很重要的方法watForConnection,它原创 2015-03-07 17:00:17 · 2145 阅读 · 0 评论 -
第1章2节《MonkeyRunner源码剖析》概述:边界(原创)
天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写《深入理解 MonkeyRunner》书籍“。但因为诸多原因,没有如愿。所以这里把草稿分享出来,所以错误在所难免。有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息。边界怎么样才算分析清楚一个事物的原理是什么呢?就以前面提到的《LINUX内核源代码情景分析》为例子,分析到什么程度算是把Linux内核给分析清原创 2015-03-05 23:03:18 · 1839 阅读 · 0 评论 -
《MonkeyRunner源码剖析》书籍手稿章节大纲
因为整个手稿内容比较多,有十多万字,需要从iBooks Author上面一个个整理出来分享,所以需要点时间才能全部完成。下面先给出整本书的大纲原创 2015-03-08 10:57:00 · 2640 阅读 · 1 评论 -
第4章3节《MonkeyRunner源码剖析》ADB协议及服务: ADB协议概览SYNC.TXT翻译参考(原创)
本文档的目的是去文档化一个客户端请求ADB服务器往adbd守护进程发送文件相关的请求。请查看OVERVIEW.TXT文档去查看(ADB服务器和adbd守护进程)相关信息,查看SERVICES.TXT去学习其他更多的可用请求。翻译 2015-03-07 19:26:20 · 1703 阅读 · 0 评论 -
第3章3节《MonkeyRunner源码剖析》脚本编写示例: MonkeyImage API使用示例(原创)
在上一节的第一个“增加日记”的示例中,我们并没有看到日记是否真的增加成功了,也就是说当时并没有进行结果比较。其实在MonkeyRunner框架中,测试结果的比较往往都是通过截屏比对来完成的。而截屏比对相关的方法主要是由MonkeyImage这个类来实现的,但截屏这个动作确是由MonkeyDevice提供的takeSnapshot这个方法来达成的。所以这一节我们主要就是去熟悉截屏比对相关的测试代码编写的基础知识。原创 2015-03-07 18:01:24 · 1608 阅读 · 0 评论 -
第2章4节《MonkeyRunner源码剖析》了解你的测试对象: NotePad窗口Activity之菜单简介(原创)
天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写《深入理解 MonkeyRunner》书籍“。但因为诸多原因,没有如愿。所以这里把草稿分享出来,所以错误在所难免。有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息。NotePad窗口Activity之菜单简介这里我们总共用到两种类型的菜单,一种叫做Context Menu,就是上下文菜单;一种叫做Opti原创 2015-03-06 00:18:35 · 1513 阅读 · 0 评论 -
第1章3节《MonkeyRunner源码剖析》概述:架构(原创)
天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写《深入理解 MonkeyRunner》书籍“。但因为诸多原因,没有如愿。所以这里把草稿分享出来,所以错误在所难免。有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息。原理架构MonkeyRunner使用起来非常的简单,只需要导入以下几个类基本上就能满足测试脚本编写的需求,比如:monkeyrunner.j原创 2015-03-05 23:22:36 · 3375 阅读 · 0 评论 -
第2章3节《MonkeyRunner源码剖析》了解你的测试对象: NotePad窗口Activity之NoteEditor简介(原创)
天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写《深入理解 MonkeyRunner》书籍“。但因为诸多原因,没有如愿。所以这里把草稿分享出来,所以错误在所难免。有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息。我们在增加和编辑一个日记的时候会从NotesList这个Activity进入到NoteEditor这个Activity。增加和编辑的时候的控件原创 2015-03-06 00:11:36 · 1610 阅读 · 0 评论 -
第5章1节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 官方简介(原创)
在MonkeyRunner的框架中,Monkey是作为一个服务来接受来自MonkeyRunner客户端发送过来的命令,然后针对每条命令请求进行相应的处理,所以它并不是作为一个随机压力测试的工具来运作原创 2015-03-07 21:42:34 · 2127 阅读 · 0 评论 -
第5章3节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 启动脚本(原创)
本节我们先看下Monkey是怎么启动起来的。在今后分析到MonkeyRunner的原理的时候我们会看到客户端是通过ADB往Android目标测试机器发送一个”monkey -port 12345”的命令来启动Monkey服务的。那么这个命令做了什么事情呢?它其实就是通过调用monkey这个shell脚本来把Monkey服务给启动起来然后监听目标设备上的端口12345,最后MonkeyRunner等其他主机端的应用就能原创 2015-03-07 21:56:35 · 1699 阅读 · 0 评论 -
第2章1节《MonkeyRunner源码剖析》了解你的测试对象: NotePad应用简介(原创)
天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写《深入理解 MonkeyRunner》书籍“。但因为诸多原因,没有如愿。所以这里把草稿分享出来,所以错误在所难免。有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息。本书脚本相关的示例常会用到Android SDK自带的NotePad这个应用,所以这里很有必要去描述下这个应用。其实去熟悉这个应用最好的办法是原创 2015-03-05 23:39:00 · 1661 阅读 · 0 评论 -
第1章1节《MonkeyRunner源码剖析》概述:前言(原创)
天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写《深入理解 MonkeyRunner》书籍“。但因为诸多原因,没有如愿。所以这里把草稿分享出来,所以错误在所难免。有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息。前言相信大家做过安卓移动平台UI自动化开发的必然会用过,至少听过MonkeyRunner这个名字。MonkeyRunner是一个针对安卓平台的原创 2015-03-05 22:47:30 · 2119 阅读 · 0 评论 -
第4章1节《MonkeyRunner源码剖析》ADB协议及服务: ADB协议概览OVERVIEW.TXT翻译参考(原创)
天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写《深入理解 MonkeyRunner》书籍“。但因为诸多原因,没有如愿。所以这里把草稿分享出来,所以错误在所难免。有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息。关于ADB的实现记录。I. 概览安卓调试桥(ADB)是用来: 跟踪管理所有连接上或者运行在开发主机上的安卓设备或者模拟器实例。其实现了各种控制翻译 2015-03-07 18:18:56 · 2818 阅读 · 0 评论 -
第5章6节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 初始化事件源(原创)
事件源代表要注入系统的命令事件数据是从哪里过来的。这一小节我们不会对事件源的实现进行深入的分析,因为下一章会做这个事情。这里大家对事件源有个基本概念就足够了。原创 2015-03-07 22:26:11 · 1686 阅读 · 0 评论 -
第5章2节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 启动流程概览(原创)
每个应用都会有一个入口方法来供操作系统调用执行,Monkey这个应用的入口方法就是在Monkey.java这个类里面的,也就是说Monkey.java就是整个Monkey应用的入口类。原创 2015-03-07 21:51:10 · 1723 阅读 · 0 评论 -
第5章7节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 循环获取并执行事件 - runMonkeyCycles(原创)
Monkey启动之后需要在整个MonkeyRunner的测试生命周期中提供服务,也就是说,一旦我们调用monkeyrunner命令来执行指定的测试脚本的时候,只要monkeyrunner还没有退出,那么Monkey就会一直提供服务,一直监听获取并处理从MonkeyRunner测试脚本发送过来的相应的命令。那么要实现这种一直监听的处理我们很自然就想到需要用一个循环来处理了。其实Monkey也不例外,我们往下会分析它是怎原创 2015-03-07 22:30:40 · 2227 阅读 · 0 评论 -
第5章4节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 命令行参数解析(原创)
设置好Monkey的CLASSPATH环境变量以指定”/system/framework /framework/monkey.jar“后,/system/bin/monkey这个shell脚本就会通过app_process命令指定monkey的入口类” “com.android.commands.monkey.Monkey”找到main函数开始运行。在运行之前会有一些初始化的工作需要做,其中很重要的一项就是去把用户提原创 2015-03-07 22:13:59 · 1786 阅读 · 1 评论 -
第5章5节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 获取系统服务引用(原创)
上一节我们描述了monkey的命令处理入口函数run是如何调用optionProcess方法来解析命令行参数的。启动参数主要时去指导Monkey时怎么运行起来的,但Monkey作为MonkeyRunner框架的一部分,更重要的是如何将从MonkeyRunner测试脚本出发的命令转化成事件来注入到系统中以进行测试自动化。如前面所说,run方法除了对启动参数进行解析之外还做了很多其他的事情,比如这一小节需要分析的去建立对原创 2015-03-07 22:21:19 · 1793 阅读 · 0 评论 -
第4章4节《MonkeyRunner源码剖析》ADB协议及服务: ADB命令行客户端使用简介(原创)
从前面几个小节我们知道ADB命令行客户端是存在与主机端的一个命令,用户可以使用该命令来发送服务请求到ADB服务器,ADB服务器再判断该服务请求是主机服务请求还是本地服务请求来决定是否应该将请求传送给远程adbd守护进程进行执行。原创 2015-03-07 21:19:31 · 1913 阅读 · 0 评论 -
第4章2节《MonkeyRunner源码剖析》ADB协议及服务: ADB服务SERVICES.TXT翻译参考(原创)
ADB服务器端在接受到ADB客户端发送过来的命令后会进行相应的处理,如果是主机服务就在ADB服务器内部进行处理,如果是本地服务就会发送给Android目标机器端的adbd守护进程进行处理。因为ADB相关的源代码不在我们源码分析的范围之内,所以我们很有必要把官方提供的ADB服务器支持的所有服务在这里描述下。虽然本人对自己的英语水平相当有信心,但总担心有词不达意的时候,所以翻译的过程中把英文也保留了下来以供大家参考。翻译 2015-03-07 19:06:47 · 1715 阅读 · 0 评论 -
Robotium编写测试用例如何模拟Junit4的BeforeClass和AfterClass方法2 - SingleLaunchActivityTestCase
在上一遍笔记SingleLaunchActivityTestCaseextends InstrumentationTestCasejava.lang.Object ↳junit.framework.Assert ↳junit.framework.TestCase原创 2014-09-15 19:21:13 · 2392 阅读 · 2 评论 -
Introduction on Using Hamcrest Unit Test Framework
Hamcrest is a unit test framework, the assert functionassertThat of hamcrest is more human readable comparing to the assert functionof Junit, therefore, Junit4 has already adopted and integrated the h原创 2014-08-27 18:57:20 · 1504 阅读 · 0 评论 -
Robotium编写测试用例如何模拟Junit4的BeforeClass和AfterClass方法1 - 条件判断法
Robotium的测试类ActivityInstrumentationTestCase2继承了TestCase类,即robotiom的测试类是junit3的实例,并没有junit4的特征原创 2014-09-15 15:54:16 · 2956 阅读 · 3 评论 -
移动平台测试自动化工具Appium试用笔记(二)
对不同的自动化工具做了初步的比较,个人总结下原创 2014-07-23 09:30:11 · 2837 阅读 · 0 评论 -
移动平台测试自动化工具Appium试用笔记(一)
这几天试用APPIUM,总结有相应的问题ruxia:1. 一个长字符串输入到编辑框之后,字符的顺序可能会发生变化2. 没有键盘隐藏的功能:当有一个输入框和一个按钮上下排列的时候,假如输入第一个框的时候安卓的虚拟键盘开始弹出来,挡住了下面的按钮,那么如果appium尝试去“tap"第二个按钮的时候事实上会按到弹出来的虚拟键盘,而不是那个按钮3. 没有办法去控制第三方弹出来的对话框。比如我原创 2014-07-18 14:49:30 · 1545 阅读 · 0 评论 -
Appium环境配置笔记1--使用Maven解决包依赖
Maven在百度百科的定义是:Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jaka原创 2014-09-18 22:57:23 · 3509 阅读 · 0 评论 -
Android Test Automation Robotium VS. UIAutomator
原文地址:http://blog.csdn.net/xiqobai/article/details/11808137The Pros and Cons of Different Android Testing MethodsBy Ville-Veikko Helppi05 Jun 2013The Google Play has becom转载 2014-07-18 14:40:05 · 2341 阅读 · 0 评论 -
ContentProvider中gettype() 和MIME类型的理解
程序入口点类似于win32程序里的WinMain函数,Android自然也有它的程序入口点。它通过在AndroidManifest.xml文件中配置来指明,可以看到名为NotesList的activity节点下有这样一个intent-filter,其action为android.intent.action.MAIN,Category指定为 android.intent.catego转载 2014-09-09 16:01:29 · 1231 阅读 · 0 评论 -
使用Dev Tools查看App的包名和所有Activity
在使用自动化测试工具如Robotium时,经常需要知道apk的各个原创 2014-08-29 16:04:34 · 4874 阅读 · 0 评论 -
Robotium创建一个Note的实例
上一篇文章是用Appium写的创建Note的实例,这里贴出实现同样功能,但是用Robotium来编写的例子,可以看出代码量简洁和少了很多。今后有时间会做一个总结,这里先贴出来以便今后追索。package com.example.android.notepad.test;import com.robotium.solo.Solo;import android.test.ActivityI原创 2014-09-23 18:35:37 · 2340 阅读 · 0 评论 -
流行移动平台自动化框架逐项比拼
以下是本人对当前移动平台流行自动化框架MonkeyRunner vs Robotium vs UIAutomator vs Appium vs SeeTest的可行性分析期间做的比较记录,希望你能从中找到心仪的它!原创 2015-03-26 09:59:40 · 2705 阅读 · 1 评论 -
Android adb端口转发调试助手Packet Sender
相信大家做过安卓开发或者安卓自动化测试开发的都离不开adb这个Android Debug Bridge这个工具,该工具有个很重要的功能就是端口转发。比如你在目标安卓机器端建立了一个服务来处理获取当前界面元素,监听的是设备本机网络上的端口5555,那么在pc客户端你就可以执行"adb forward tcp:5555 tcp:5555"来把发送到pc本地的5555端口的数据直接转发到目标安卓机器的服原创 2015-02-15 12:20:35 · 6959 阅读 · 0 评论 -
致网友Wonderfei的一封信(如何选择自动化框架的几点拙见)
MonkeyRunner,Roboitum,UIAutomator和Appium框架的一比较之拙见原创 2014-10-10 09:04:35 · 4642 阅读 · 6 评论 -
MAC中在eclipse luna上搭建移动平台自动化测试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录
这几天因为原来在用的hp laptop的电池坏掉了,机器一不小心就断电,所以只能花时间在自己的mackbook pro上重新搭建整套环境,大家都知道搭建环境是个很琐碎需要耐心的事情,特别是当你搭建的安卓平台的时候经常需要翻墙,那个慢不是常人可以忍受的,所以过程中建议大家边看书或者玩手机边搭建,省得一直瞪着屏幕导致爆血管的意外发生。这里本人尝试把在mac上搭建移动平台自动化测试框架的一些碰到的问原创 2014-10-16 13:08:53 · 3860 阅读 · 2 评论 -
传递给Appium服务器以开启相应安卓Automation会话的Capabilities的几点说明
Desired Capabilities是由客户端发送给Appium服务器端的用来告诉服务器去启动哪种我们想要的会话的一套键值对集合。当中也有一些键值对是用来在自动化的过程中修改服务器端的行为方式的。比如,我们可以把键为platformName的capability的值设置成iOS来告诉服务器我们想要开启的是一个iOS的会话,而非Anddroid的会话。或者我们可以把键为safariAllowPo原创 2014-09-20 13:34:14 · 6284 阅读 · 0 评论 -
Android KitCat 4.4.2 ADB 官方所支持的所有Services格式翻译
在之前的文章中有转帖网上同行制作的ADB协议表格adb概览及协议参考>>,但不够详尽,所以这里自己另外基于Android 4.4.2的技术文档重新做一次翻译。HOST SERVICES:主机服务:host:versionAsk the ADB server for its internal version number. As a special exception, th翻译 2014-12-04 13:34:08 · 2954 阅读 · 0 评论 -
寻求合作伙伴编写《深入理解 MonkeyRunner》书籍
背景:之前花了一个多月的时间尝试编写一本的书籍,详情看我个人空间公开的第7章内容。我现在编写的已经有大概12万字左右,跟出版商商讨后觉得应该增加一些实战方面的其他内容,这里寻求跟靠谱的人进行合作将其完成。本书的内容大纲如下: 第一部分:MonkeyRunner基础应用 主要讲解它如何使用,让读者能快速上手。 第二部分:MonkeyRunner原理解析 我来负责,主要是原创 2015-02-06 11:17:53 · 4251 阅读 · 4 评论 -
Appium on Real Devices – Appium FAQ
Appium is a mobile UI testing framework supporting cross-platform testing of native, hybrid and mobile-web apps for iOS and Android. Appium enables you to execute your tests on mobile device irrespe转载 2014-07-18 15:48:40 · 1939 阅读 · 0 评论