ANDROID自动化测试 robotium

发布时间:2017-2-27 21:44:04 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"ANDROID自动化测试 robotium",主要涉及到ANDROID自动化测试 robotium方面的内容,对于ANDROID自动化测试 robotium感兴趣的同学可以参考一下。

移动终端游戏将在公司发展计划中占有很大的比重。安卓系统在移动终端市场占有很大的一个市场,探索安卓系统下的自动化测试对公司发展有积极的意义。 ANDROID自动化测试工具:ROBOTIUM      ROBOTIUM的介绍 Robotium是一款测试Android Application的测试框架,它使得编写黑盒测试代码更加容易和稳定。通过使用Robotium,测试用例开发人员能够跨越多个Activity,开发出功能、系统以及验收测试用例。Robotium是基于Android测试框架InstrumentationTestCase2进行的2次封装,把一些基本操作又简化了一遍。 ROBOTIUM的优势: 针对黑盒测试 在测试过程中,不必需要测试程序的源代码,只要apk文件(前提是需要知道测试程序的package和activity) 可以直接运行在手机上,并通过adb端获得运行结果。 在使用该工具的时候有一点必须:当编辑完测试脚本后,会生成一个apk文件,将该apk安装到手机端,并通过abd输入一系列命令后直接运行测试脚本。但该apk的签名必须要与测试程序的apk签名保持一致。      ROBOTIUM的环境设置   JDK (Java Development Kit)   Eclipse for building Test project   ADT (Android Development Tools)   Android  SDK (Software Development Kit)   Robotium-solo-*.*.*.jar      ROBOTIUM进行测试的方法和步骤 1、 创建测试项目   点击Next   填写项目取的名称   选择被测工程,如之前创建的firstHello,点击Next按钮。   会主动选择和输入Build Target,可以遵守默认的,不消批改。 点击Finish,一个测试项目创建好了。   2、项目中导入ROBOTIUM.JAR 选择测试工程右击,选择Build Path->Configure Build Path   3、创建测试脚本CLASS。   创建之后脚本: 测试脚本 package com.example.firsthello.test; import android.test.ActivityInstrumentationTestCase2; import com.example.firsthello.MainActivity; import com.jayway.android.robotium.solo.Solo; public class UITextTest extends ActivityInstrumentationTestCase2<MainActivity> {  private Solo solo;  @SuppressWarnings("deprecation")  public UITextTest() {  //初始化函数 告诉系统要测试的APP是什么。   super("com.example.firsthello.MainActivity",MainActivity.class);   // TODO Auto-generated constructor stub  }      //每一个test case 都会调用setUp进行初始化  public void setUp() throws Exception  {   solo= new Solo(getInstrumentation(),getActivity());  }   //  测试具体实例  public void testUI()throws Exception  {   boolean expected =true;   boolean actual =solo.searchText("Hello")&& solo.searchText("world!");   assertEquals("This and/or is are not found",expected,actual);  } }      测试robotium测试总结 1、测试类要继承ActivityInstrumentationTestCase2<测试类类名> 2、构造方法中super("包名", 测试类类名.class); 3、setUp方法中solo = new Solo(getInstrumentation(), getActivity()); 4、tearDown方法中  try {  solo.finalize();  } catch (Throwable e) {  e.printStackTrace();  }  getActivity().finish();  super.tearDown(); 5、点击自动化  clickOnMenuItem("菜单名")  clickInList(列表行数) 注:从1开始  clickOnText("(?i).*?test.*") 点击文本  clickLongOnText("Note 2") 长时间点击文本  clickOnButton("按钮名")   点击按钮 clickOnImageButton("") 6、输入自动化  enterText(号,"输入的内容") 7、屏幕控制  setActivityOrientation(Solo.LANDSCAPE或Solo.PORTRAIT) 控制屏幕横向或纵向显示 8、跳转  goBack() 模仿硬返回键  goBackToActivity("Activity名") 跳到指定的Activity 9、判断  判断当前是否是指定的Activity  assertCurrentActivity("测试提示", "Activity名");  搜索指定文本是否存在  searchText("搜索文本")或searchText("(?i).*?note 1 test") 后面这个是正则表达式 10、获取  (EditText) solo.getView(R.id.EditText01);  (TextView) solo.getView(R.id.TextView01);  ArrayList currentTextViews = solo.getCurrentTextViews(outputField); 11、点击按钮等测试中需要注意2点:  (1)真机测试时发现,屏保后点击按钮测试会报找不到该按钮,也就是点不中的意思,看来测试机器人还真仿真啊。  (2)点击按钮后有个延迟的过程,以后的测试需要循环等待一段时间,否则直接进入下面的测试后误报错错误,此处处理示例如下:  // 点击按钮开启服务  solo.clickOnButton(butStartService);  // 判断指定服务是否存在  long start = System.currentTimeMillis();  while (!isServiceStarted(SERVICE_PACKAGE_NAME)) {      try {          Thread.sleep(1000);      } catch (InterruptedException e) {      }      if ((System.currentTimeMillis() - start) > TIMEOUT) {          break;      }  }  assertTrue("没有开启服务", isServiceStarted(SERVICE_PACKAGE_NAME)); 转自:http://www.51testing.com/?uid-492926-action-viewspace-itemid-842908

上一篇:memwatch检测内存泄露
下一篇:Google API开发详解

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。