Robotium的使用-自动化测试
更新时间:2022-04-27 09:33:28 作者:多测师 浏览:283
最近开始了解Robotium,Robotium是android的自动化框架,里面封装了很多api,方便我们使用。下面是我实践的结果,记录了其中出现过的问题,便于以后自己查阅。网上出现的很多是官方的demo,如果找不到,其实也可以用自己写的android小程序进行练习。
一.提前准备
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/
下一篇:常用自动化测试技术介绍