安卓自动化测试(2)Robotium环境搭建与新手入门教程
Robotium环境搭建与新手入门教程
准备工具:Robotium资料下载
知识准备:
- java基础知识,如基本的数据结构、语法结构、类、继承等
- 对Android系统较为熟悉,了解四大组件,会编写简单的Android应用程序
- 熟悉Eclipse IDE使用方法
- 有足够的耐心与探索精神,遇到问题可以熟练的Google
环境搭建
- 安装jdk,配置环境变量,如果不会请自行Google
- 下载安装Android SDK,并更新
- 下载Eclipse,并安装ADT插件,集成Android SDK
Robotium新手入门
- 下载Robotium官方例子以及最新的JAR包
- 打开Eclipse导入被测试工程
点击查看大图
- 创建测试工程:选择Android Test Project,并点击下一步
点击查看大图
- 输入工程名,并点击下一步
点击查看大图
- 选择被测工程NotePad,并点击完成
点击查看大图
- 在测试工程中新建lib文件夹
点击查看大图
- 将下载好的Robotium jar包拷入lib中,并在build path中将jar包引入工程
点击查看大图
- 打开测试工程中的manifest.xml文件,修改如下
点击查看大图
- 新建junit test case,选择junit4,并输入类名,点击完成
点击查看大图
- 打开新建的测试类,修改继承ActivityInstrumentationTestCase2<NotesList>,创建构造方法,并编写测试代码,具体如图
点击查看大图
01 |
package com.example.android.notepad.test; |
02 |
03 |
import android.test.ActivityInstrumentationTestCase2; |
04 |
05 |
import com.example.android.notepad.NotesList; |
06 |
import com.jayway.android.robotium.solo.Solo; |
07 |
08 |
public class NotePadTest extendsActivityInstrumentationTestCase2 |
09 |
{ |
10 |
private Solo solo;//声明Solo |
11 |
public NotePadTest()//构造方法 |
12 |
{ |
13 |
super(NotesList.class); |
14 |
15 |
} |
16 |
17 |
@Override |
18 |
public void setUp() throws Exception |
19 |
{ |
20 |
solo = new Solo(getInstrumentation(), getActivity()); |
21 |
} |
22 |
23 |
@Override |
24 |
public void tearDown() throws Exception |
25 |
{ |
26 |
solo.finishOpenedActivities(); |
27 |
} |
28 |
29 |
public void testAddNote() throws Exception |
30 |
{ |
31 |
//点击add note按钮 |
32 |
solo.clickOnMenuItem("Add note"); |
33 |
//比对结果 |
34 |
solo.assertCurrentActivity("Expected NoteEditor activity", "NoteEditor"); |
35 |
//在第一个TextEdit控件上输入内容 |
36 |
solo.enterText(0, "Note 1"); |
37 |
//返回上个界面 |
38 |
solo.goBack(); |
39 |
//点击菜单中的Add note |
40 |
solo.clickOnMenuItem("Add note"); |
41 |
//在第一个EditText中输入内容 |
42 |
solo.enterText(0, "Note 2"); |
43 |
//返回NotesList activity |
44 |
solo.goBackToActivity("NotesList"); |
45 |
//截屏 |
46 |
solo.takeScreenshot(); |
47 |
boolean expected = true; |
48 |
boolean actual = solo.searchText("Note 1") ; solo.searchText("Note 2"); |
49 |
assertEquals("Note 1 and/or Note 2 are not found", expected, actual); |
50 |
51 |
} |
52 |
53 |
} |
- 编写完成后,打开模拟器或者连接上真机,右击测试类,选择Android junit Test
点击查看大图
- Eclipse会切换到junit界面,此时模拟器(真机)会自动执行测试,通过左边界面可以看到运行结果
点击查看大图
- 一个简单的测试就结束了。如果你没有遇到问题,那么恭喜你继续更深一步学习,如果你遇到问题了,不要急~请先确保你的操作过程没有出任何错误,其次我列出你可能遇到的错误,如果还是没有解决请Google或者联系我们
1、最常见的:java.lang.NoClassDefFoundError: com.jayway.android.robotium.solo.Solo
解决方法:如图操作后再clean工程
安卓自动化测试(2)Robotium环境搭建与新手入门教程的更多相关文章
- gulp环境搭建,gulp入门教程
gulp常用地址: gulp官方网址:http://gulpjs.com gulp插件地址:http://gulpjs.com/plugins gulp 官方API:https://github.co ...
- Grunt JS构建环境搭建以及使用入门
Grunt JS构建环境搭建以及使用入门 1.应用场景 一种自动化任务处理工具,对于日常的需求(代码规则检查.代码合并)可以实现自动化执行,只需要保留package.json和Gruntfile.js ...
- scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld
scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld 学习了: http://blog.csdn.net/wangmuming/article/details/3407911 ...
- gulp的使用以及Gulp新手入门教程
Gulp新手入门教程 原文 http://w3ctrain.com/2015/12/22/gulp-for-beginners/ Gulp 是一个自动化工具,前端开发者可以使用它来处理常见任务: 搭 ...
- 【LaTeX】E喵的LaTeX新手入门教程(4)图表
这里说的不是用LaTeX画图,而是插入已经画好的图片..想看画图可以把滚动条拉到底.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新手入门教程(2)基础 ...
- 【LaTeX】E喵的LaTeX新手入门教程(3)数学公式
昨天熄灯了真是坑爹.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新手入门教程(2)基础排版上一期测试答案1.大家一开始想到的肯定是\LaTeX{}er ...
- 【LaTeX】E喵的LaTeX新手入门教程(1)准备篇
昨天熄灯了真是坑爹.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新手入门教程(2)基础排版上一期测试答案1.大家一开始想到的肯定是\LaTeX{}er ...
- 【LaTeX】E喵的LaTeX新手入门教程(2)基础排版
换了块硬盘折腾了好久..联想的驱动真坑爹.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇文档框架嗯昨天我们已经编写了一个最基本的文档,其内容是这样的:\documentclass{ar ...
- 【LaTeX】E喵的LaTeX新手入门教程(3)
[LaTeX]E喵的LaTeX新手入门教程(3) 数学公式作者: 郭英东.sty 昨天熄灯了真是坑爹.前情回顾 [LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新 ...
随机推荐
- JavaScript制作时钟特效
需求说明:制作显示年.月.日.星期几并且显示上午(AM)和下午(PM)的 12进制的时钟,具体效果如下所示: 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C// ...
- hdu 2010 - 水仙花数
题意: 数学上有个水仙花数,他是这样定义的:"水仙花数"是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3.现在要求输出所有在m和n范围内的水仙花 ...
- 深度剖析Linux与Windows系统的区别,新手必读!
当我们每个人接触Linux之前,应该先接触的都是windows吧?但我们一般接触Linux后,习惯linux的管理和使用方法后,我们再回过头再来使用windows的时候,内心其实是拒绝的.我们会觉得图 ...
- 算法与设计模式系列1之Python实现常见算法
preface 常见的算法包括: 递归算法 二分法查找算法 冒泡算法 插入排序 快速排序 二叉树排序 下面就开始挨个挨个的说说原理,然后用Python去实现: 递归算法 一个函数(或者程序)直接或者间 ...
- C#--API
C#中调用API 介绍 API( Application Programming Interface ),我想大家不会陌生,它是我们Windows编程的常客,虽然基于.Net平台的C#有了强大的类库, ...
- win7开防火墙,允许ping通
- 自然语言21_Wordnet
QQ:231469242 欢迎喜欢nltk朋友交流 http://baike.baidu.com/link?url=YFVbJFMkZO9A5CAvtCoKbI609HxXXSFd8flFG_Lg ...
- Android学习笔记——xml
转自http://blog.csdn.net/sam_zhang1984 解析 XML 有两种方式: SAX 和 DOM .它们各有利弊. DOM 是把 XML 文档全部装载到内存中,然后当成一树进行 ...
- WEB开发基本知识
参考文献:http://www.cnblogs.com/xdp-gacl/p/3729033.html 一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示I ...
- Unity3D Multi-Compile Shader
http://www.martinpalko.com/muli-compile-unity/ http://forum.unity3d.com/threads/tutorial-shade-more- ...