多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

Robotium的使用-自动化测试

更新时间:2022-04-27 09:33:28 作者:多测师 浏览:54

  最近开始了解Robotium,Robotium是android的自动化框架,里面封装了很多api,方便我们使用。下面是我实践的结果,记录了其中出现过的问题,便于以后自己查阅。网上出现的很多是官方的demo,如果找不到,其实也可以用自己写的android小程序进行练习。

Robotium的使用-自动化测试

  一.提前准备

  1.robotium-solo-5.3.1.jar

  2.android模拟器或真机

  3.android sdk配置 platform-tools和tools

  二.建立一个android test project

  1.点击File——new——android test project

  2.输入项目名

  3.这里有2个选择,点击第二个,选中你要测试的项目

  4.点击next,选择sdk,点击完成

  5.此时的包是空的,建立一个测试类,new——junit test case。

  Robotium的测试类ActivityInstrumentationTestCase2继承了junit3的TestCase类

  三.实现代码,这里以官方demo为例

  package com.example.android.notepad.test;

  import com.example.android.notepad.NotesList;

  import com.robotium.solo.Solo;

  import android.test.ActivityInstrumentationTestCase2;

  public class Robotiumtest extends ActivityInstrumentationTestCase2{

  private Solo solo;

  public Robotiumtest() {

  //NotesList是Demo中启动时的activity

  super(NotesList.class);

  }

  protected void setUp() throws Exception {

  solo=new Solo(getInstrumentation(),getActivity());

  }

  protected void tearDown() throws Exception {

  //每执行一个case就关闭全部的activity

  solo.finishOpenedActivities();

  }

  //添加

  public void testAddNote(){

  //阻止锁屏

  solo.unlockScreen();

  //点击菜单

  solo.clickOnMenuItem("Add note");

  //添加断言,判断当前的activity

  solo.assertCurrentActivity("Expected NoteEditor activity", "NoteEditor");

  //在文本框中输入Note1

  solo.enterText(0, "Note1");

  //返回之前的activity

  solo.goBack();

  //再次添加一个Note2

  solo.clickOnMenuItem("Add note");

  solo.enterText(0, "Note2");

  solo.sleep(2000);

  solo.goBackToActivity("NotesList");

  boolean expected=true;

  //搜索当前页的文本内容,判断是否存在Note1和Note2

  boolean actual=solo.searchText("Note1")&&solo.searchText("Note2");

  assertEquals("Note1或Note2不存在", expected, actual);

  }

  //编辑

  public void testEditNote(){

  //点击列表的第二项

  solo.clickInList(2);

  //控制屏幕是横屏还是竖屏

  solo.setActivityOrientation(Solo.LANDSCAPE);

  solo.clickOnMenuItem("Edit title");

  solo.enterText(0,"test");

  solo.sleep(2000);

  solo.goBack();

  solo.sleep(2000);

  }

  //删除

  public void testRemoveNote(){

  //正则判断

  solo.clickOnText("(?i).*?note1.*");

  //solo.clickOnText("Note1test");

  solo.clickOnMenuItem("Delete");

  //长按Note2

  solo.clickLongOnText("Note2");

  solo.clickOnText("Delete");

  solo.sleep(5000);

  boolean noteFound = solo.waitForText("Note2", 1, 5000);

  assertFalse("Note 2 is found", noteFound);

  }

  }

  四.遇到的问题

  问题:执行用例时,一直报错:class not found :com.robotium.solo.Solo

  解决方法:1.右击build path,在order and export中,勾选你导入的robotium-solo-5.3.1.jar包

  2.在菜单栏的project中点击clean,ok

  以上内容为大家介绍了自动化测试中的Robotium的使用,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部