51Testing软件测试论坛

标题: android 自动化测试的傻瓜实践之旅(UI篇) -----小试身手 [打印本页]

作者: 恭喜发财dife    时间: 2019-1-24 14:54
标题: android 自动化测试的傻瓜实践之旅(UI篇) -----小试身手
本帖最后由 恭喜发财dife 于 2019-1-24 14:59 编辑

很早以前就开始折腾android的自动化测试,不过,本人毫无测试基础,只能,从google那里搜索到仅有的一些资源.

从google那里搜来的资源大多都是介绍类的文章,比较少有实例操作,关于,android自动化测试,优酷上有个淘宝的框架叫做----TMS的视频演示,因为,那里说不让转载,所以,感兴趣的话就去google一下,就能看到.

顺便说一下,这个专题不是一个专业,严格的android测试博文,所以,不要以专业的测试眼光去评论,这是,简单的运用一下测试,让我们的程序员编出更好的代码…



自动化的 UI 测试

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


Monkey&MonkeyRunner
android 的Junit 测试框架
Robotium
入门难度
一般
困难
非常简单
功能方面
很一般
无所不能
基本满足


说下,Monkey&MonkeyRunner

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

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




说下, 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,创建项目

[attach]121245[/attach]


2,选择要测试的项目

[attach]121246[/attach]


3,完成


[attach]121247[/attach]


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

[attach]121248[/attach]



编写第一个UI测试方法
  1. public class FootTabClickTest extends ActivityInstrumentationTestCase2<TabViewActivity> {
  2.         
  3.         //1,创建一个自动化测试对象
  4.         private Solo tabSolo;
  5.         
  6.         
  7.         public FootTabClickTest () {
  8.                 super("com.achai",TabViewActivity.class);
  9.         }
  10.         
  11.         @Override
  12.         protected void setUp() throws Exception {
  13.                 // TODO Auto-generated method stub
  14.                 super.setUp();
  15. //2,初始化我们的测试对象
  16. tabSolo = new Solo(getInstrumentation(), getActivity());
  17.         }
  18.         
  19.         @Smoke
  20.         public void testClickEachTab(){
  21.                
  22.                 //3,获取我们view 中所有的单选按钮,没错就是这么简单…
  23.                 ArrayList<RadioButton> radioGroup =  tabSolo.getCurrentRadioButtons();
  24.                 //4,自动点击每个单选按钮
  25.                 for(int i=0; i < radioGroup.size(); i++){
  26.                         tabSolo.clickOnRadioButton(i);
  27. //5,暂停1s 用来看效果的…
  28. tabSolo.sleep(1000);
  29.                 }
  30. //6,又一个强大的功能,直接识别点击当前view中匹配的文本,与控件无关!!!!!!!
  31. tabSolo.clickOnText("(?i).*?我的收藏.*");
  32.                 tabSolo.sleep(1000);
  33. //7,这个是长按,注意留意动画
  34. tabSolo.clickLongOnText("返回");
  35.                 tabSolo.sleep(2000);
  36. //                tabSolo.clickOnRadioButton(1);
  37.         }
  38.         
  39.         @Override
  40.         protected void tearDown() throws Exception {
  41.                 // TODO Auto-generated method stub
  42.                 super.tearDown();
  43.                         }
  44.         
  45.         
  46.         
  47. }
复制代码




作者: Miss_love    时间: 2020-12-31 11:01
支持分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2