美文网首页
Robotium 初探(832)

Robotium 初探(832)

作者: Qin0821 | 来源:发表于2018-07-24 10:55 被阅读0次

配置Gradle

compile 'com.android.support:appcompat-v7:23.0.1'
androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.6.0'
androidTestCompile 'com.android.support.test:rules:0.4.1'
androidTestCompile 'junit:junit:4.12'

Simple case

这是一个简单的横竖屏切换case, 运行test1就能看到app自动切换横竖屏的效果了

@RunWith(AndroidJUnit4::class)
class WelcomeTest {

    private lateinit var solo: Solo

    @get:Rule
    var activityTestRule = ActivityTestRule(WelcomeActivity::class.java)


    @Before
    fun initSolo() {
        val config = Solo.Config()
        config.commandLogging = true
        config.commandLoggingTag = "BlackBoxTest"
        solo = Solo(InstrumentationRegistry.getInstrumentation(), config, activityTestRule.activity)
    }

    @After
    fun closeSolo() {
        if (::solo.isInitialized) {
            solo.sleep(2000)
        }
    }

    @Test
    fun test1() {
        solo.unlockScreen()
        solo.sleep(1000)
        solo.setActivityOrientation(Solo.LANDSCAPE)
        solo.sleep(1000)
        solo.setActivityOrientation(Solo.PORTRAIT)
        solo.sleep(1000)
    }
}

Solo类

  • 获取控件
  1. getView(int id)
  2. getView(int id, int index) //index表示控件是界面上第几个相同控件
  3. getView(String id) //xml中定义的id属性值
  • 验证TextView文字

TextView textView = (TextView)solo.getView("hello");
assertEquals("hello world", textView.getText().toString());

  • 输入文本

//先获取控件,
enterText(EditText editText, String text)
//index表示页面上的第几个输入框
enterText(int index, String text)

  • 等待对话框关闭和打开

waitForDialogToClose()
waitForDialogToClose(long timeout)
waitForDialogToOpen()
waitForDialogToOpen(long timeout)

long timeout: 设置超时时间,单位为毫秒

  • 验证Activity的加载

// 等待指定Activity的出现
waitForActivity(String)
waitForActivity(String, int)
waitForActivity(Class<? extends Activity)
waitForActivity(Class<? extends Activity, int)

String: Activity名称
int: 超时时间,默认为20000,单位为毫秒

  • 其他延时操作

//休眠指定时间
sleep(int time)
//从当前界面搜索指定的文本
searchText(String text)
//等待指定Log的出现
waitForLogMessage(String logMessage)
//等待控件的出现
waitForView(int id)
//等待文本的出现
waitForText(String text)
//等待某种加载条件的达成
boolean waitForCondition (Condition condition, int timeout)

  • 滚动滑动操作

//滑动到顶部
scrollTop()
//向上向下滚动屏幕
scrollUp()/scorllDown()
//滚动至ListView第line行
scrollListToLine(AbsListView absListView, int line)
//从其实x,y左边滑动至终点x,y坐标
drag(float fromX, float toX, float fromY, from toY)

  • 其他操作

//截图,name为图片的参数,默认路径是/sdcard/Robotium-Screenshots/
takeScreenshot()
takeScreenshot(String name)
//截取某段时间内一个序列
takeScreenshotSequence(String name)
//关闭当前已打开的所有Activity
finishOpenedActivities()
//点击返回键
goBack()
//不断点击返回键直至返回到指定Activity
goBackToActivity(String name)
// 收起键盘
hideSoftKeyboard()
//设置Activity转屏方向
setActivityOrientation(int orientation)

参考链接

https://blog.csdn.net/zxc123e/article/details/80403475

相关文章

  • Robotium 初探(832)

    配置Gradle Simple case 这是一个简单的横竖屏切换case, 运行test1就能看到app自动切换...

  • Android自动化测试工具“哪家强”?

    Android自动化测试 流行测试工具介绍 1.Robotium 安卓测试工具 Robotium是一款经常使用的自...

  • Automation test

    Robotium gray box testing Pros: You need minimum time to ...

  • Robotium原理

    测试框架图: Android测试环境的核心是Instrumentation框架,Instrumentation框架...

  • 832

    家里昨天晚上下雪了,妈妈一大早就给我发了雪景照片,有两张是在家附近的菜园里拍的,还有有一张是专门跑到三楼去拍的。 ...

  • 832

    1月9日,腊月初七,多云,周日 明天腊月初八,今天晚上八宝粥就安排上。 莲子、薏仁米、花生和红枣,四样先下锅煮着,...

  • 苹果 ARKit 初探

    苹果 ARKit 初探 苹果 ARKit 初探

  • Robotium 实战(833)

    混合应用_鱼大大 本来想通过id找到控件,但是有些web元素要么没写id,要么层级复杂,总之就是找不到控件。但在c...

  • robotium结合uiautomator

    robotium的一个缺点就是不能跨应用,但是现在的应用几乎都会有分享的功能,要不就是第三方登录;还有就是拍照这种...

  • Robotium Automation Execution

    pCloudy allows you to run yourRobotium test scriptover an...

网友评论

      本文标题:Robotium 初探(832)

      本文链接:https://www.haomeiwen.com/subject/tlabpftx.html