android 自动化测试的傻瓜实践之旅(UI篇) -----小试身手

移动开发 移动应用 自动化
很早以前就开始折腾android的自动化测试,不过,本人毫无测试基础,只能,从google那里搜索到仅有的一些资源,和目前,唯一一本讲android测试的书(应该是吧,如果还有希望告之).

 自动化的 UI 测试

目前能免费进行android UI的自动化测试的方法有以下三种:

Monkey&MonkeyRunnerandroid 的Junit 测试框架Robotium

入门难度一般困难非常简单

功能方面很一般无所不能基本满足

关于Monkey & MonkeyRunner可以参考本人写的另外两篇

android实用测试方法之Monkey与MonkeyRunner (评论部分有些常见问题及部分解决有兴趣的可以大概浏览一下)

增强型MonkeyRunner 脚本计划 (算是一个小小的实践吧)

说下,Monkey&MonkeyRunner

优点: 上手简单,只需要apk

缺点: 文档少,容易出错,编写脚本需要python基础.

android 的Junit

关于这个内容我曾经做个一个小小的视频,后来上传到了优酷

Android 测试入门教程之activity简单测试 (慎入,声音比较蛋疼,画面被优酷压缩得不像样..)

说下, android for Junit

优点: 无所不能…

缺点: 上手不容易,需要源码.

Robotium

本文重点简介的方法….

说下,Robotium

优点: 足够简单,足够强大,支持apk测试

缺点: 还不能替代android for Junit

愉快的UI测试之旅 by Robotium

Robotium 是一个开源项目:

http://code.google.com/p/robotium/

目前最新版本:Robotium 3.1 is now released!

竟然,要做测试,我们要新建一个用于测试的项目:

直接下载项目吧….

http://vdisk.weibo.com/s/3feB5

然后,创建一个android的测试项目..

1,创建项目

 

image

 

2,选择要测试的项目

 

image

 

3,完成

 

image

 

4,把Robotium导入到测试项目里面,顺便说一下:ADT 17 预览版 4已经支持自动把libs下的jar包导入到依赖环境中…用之前版本的朋友手动添加吧…

 

image

 

编写第一个UI测试方法

?1

2

3

4

5

6

7

8

9

10

11

12

13

14

15public class FootTabClickTest extends ActivityInstrumentationTestCase2 {

//1,创建一个自动化测试对象

private Solo tabSolo;

public FootTabClickTest () {

super("com.achai",TabViewActivity.class);

}

@Override

protected void setUp() throws Exception {

// TODO Auto-generated method stub

super.setUp();

//2,初始化我们的测试对象

?1

2

3

4

5

6

7

8

9

10

11

12tabSolo = new Solo(getInstrumentation(), getActivity());

}

@Smoke

public void testClickEachTab(){

//3,获取我们view 中所有的单选按钮,没错就是这么简单…

ArrayList radioGroup = tabSolo.getCurrentRadioButtons();

//4,自动点击每个单选按钮

for(int i=0; i < radioGroup.size(); i++){

tabSolo.clickOnRadioButton(i);

//5,暂停1s 用来看效果的…

?1

2

3tabSolo.sleep(1000);

}

//6,又一个强大的功能,直接识别点击当前view中匹配的文本,与控件无关!!!!!!!

?1

2

3 tabSolo.clickOnText("(?i).*?我的收藏.*");

tabSolo.sleep(1000);

//7,这个是长按,注意留意动画

?1

2

3

4

5

6

7

8

9

10

11

12

13

14 tabSolo.clickLongOnText("返回");

tabSolo.sleep(2000);

// tabSolo.clickOnRadioButton(1);

}

@Override

protected void tearDown() throws Exception {

// TODO Auto-generated method stub

super.tearDown();

}

}

效果动画:

 

test2

 

总结

就这么多了,感觉还不够?那下次在更新吧…

【编辑推荐】

  1. 谈谈android 布局 的优化
  2. Android已经完全不受Google控制了
  3. MonoTouch与Mono for Android的第三方库
责任编辑:冰凝儿 来源: 博客园
相关推荐

2021-09-03 09:56:18

鸿蒙HarmonyOS应用

2009-12-23 16:33:34

WPF UI自动化测试

2020-08-03 15:40:57

Web自动化工具测试

2022-09-12 16:02:32

测试企业工具

2013-05-16 10:58:44

Android开发自动化测试

2021-10-18 12:01:17

iOS自动化测试Trip

2023-03-08 10:24:05

智能自动化数字策略

2018-01-15 10:30:00

AndroidPython 开发

2021-09-07 09:00:00

开发测试工具

2017-12-19 08:50:56

UIJavaAWS Lambda

2017-07-25 10:53:27

2012-02-27 17:34:12

Facebook自动化

2024-09-23 22:12:14

2013-05-16 11:07:37

Android开发Android应用自动化测试

2017-08-29 09:57:26

SaaS产品自动化

2021-04-29 09:40:32

测试IDEAirtest

2022-02-17 10:37:16

自动化开发团队预测

2011-10-11 09:56:59

PhoneGapSelenium

2021-11-05 09:00:00

Selenium工具自动化测试

2017-09-21 16:06:43

DevOps自动化测试代码
点赞
收藏

51CTO技术栈公众号