前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Robotium学习

Robotium学习

作者头像
全栈程序员站长
发布2022-09-15 09:13:11
2190
发布2022-09-15 09:13:11
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

Robotium是一个基于模拟点击事件的用于进行黑盒测试的android测试工具。

1. Android JUnit

Android自动测试沿用Java中的JUnit

创建测试类的时候,继承 ActivityInstrumentationTestCase2<MainActivity> 即可。

其中MainActivity为测试时进入的首个界面。

由于继承于JUnit

因此在 setUp()中进行准备工作

在 tearDown()中回收资源

测试主体在名为 testXXX() 内。

如果有多个testXXX()函数,则都会被执行,但不保证顺序。因此前提条件都应在setUp()中写好。

2.使用Robotium

要在 android junit 中使用robotium工具Solo. 需要添加成员变量(不需要公开的内容,就不要使用public)

protected Solo solo;

并在setUp()中初始化:

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

在tearDown()中回收:

solo.finishOpenedActivities();

3.基本API

完整 API:http://robotium.googlecode.com/svn/doc/index.html

个人常用:

solo.getView(R.id.X); 通过 R.id.X得到View的指针(记得引用被测试工程的 .R, X是目标id)

solo .getView(R.id.X, int index) 如果有多个同名view, 用index指定是第几个。

solo.clickLongOnView( View ) 最常用的点击函数

solo.clickOnView(solo.getView(R.id.X)); 二者合用

#如果 R.id.X在当前界面不可见,会出Bug. 如果不确定其存在(如更新提示),先用solo.waitForView(Id, matchTime, timeout)确保其存在

solo.getCurrentActivity() 得到当前activity的context, 可以直接操作。我一般用来判断是否为预期activity如:

if( !(solo.getCurrentActivity() instanceof myActivity) )

solo.enterText( View, String) 在View 输入指定的字符串

solo.sleep(int time) 等待一段时间,单位为毫秒。一般是为了让程序点击后有足够时间来响应

solo.takeScreenshot(String name); 屏幕截图,名称为name. 保存在/sdcard/Robotium-Screenshots/足够时间来

solo .waitForActivity(myActivity.class , int timeout) 等待某个activity

solo .assertCurrentActivity(String msg , myActivity.class ); 如果不是预期activity则报错并输出 msg

solo.drag(x0, x1, y0, y1, step) 模拟从(x0,y0)拖拽到(x1,y1)共step步。屏幕左上角为(0, 0)

solo .scrollToTop(); 把屏幕拉倒最上方(复位用)

solo.goBack() 模拟点击退回键

solo.goBacktoActivity(“ActivityName”) 回到名为ActivityName的界面

solo.clickInList(int index); 点击listView中的第index项。不推荐使用,经常出问题。直接用getView(R.id.X, index)再点击。当前前提是点击对象有id

solo.scrollToSide(Solo.RIGHT); 从右往左滑动屏幕

solo.scrollViewToSide(View, Solo.RIGHT); 把指定 View从右往左滑动

4. 获得View id的方式

${android-sdk}/tools/hierarchyviewer.bat 或者 ${android-sdk}/tools/monitor.bat 然后Inspect 就可以看到每个View的id(如果有的话)

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160067.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档