Android studio测试工具之Robotium


Android studio测试工具之Robotium

  

 

本团队期末所做大作业是利用安卓(Android studio)所创作,我们希望做成的是一个类似于小账本的软件,因此,我去网上搜索了一些关于安卓(Android studio)的软件测试工具,希望对于本团队的期末作业进行性能测试,压力测试等等。

 

一、简介

 

Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium ActivityDialogToastMenu 都是支持的。

 

二、相关下载

 

源码获取:http://code.google.com/p/robotium/

 

API文档:http://robotium.googlecode.com/svn/doc/index.html

 

 robotium5.1下载和最新API文档:http://pan.baidu.com/s/1bnlO8MF

 

官方例子记事本:http://pan.baidu.com/s/1qWLVL72

 

重签名工具:http://pan.baidu.com/s/1i3H0tKD

 

 

也可以在"File" --> "Settings" -->"Plugins" 中搜索robotium

 

 

 

之后便可以在Tools->Robotium中开启

 

配置robotium 

robotium配置起来也很方面。首先在build.gradle中添加依赖 

compile 'com.jayway.android.robotium:robotium-solo:5.6.0' 

然后需要在测试工程中的AndroidManifest.xml中做如下的配置 

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" 

    package="xxxx.test"> 

    <uses-library android:name="android.test.runner" /> 

    <instrumentation 

        android:targetPackage="xxx" 

        android:name="android.test.InstrumentationTestRunner" 

        /></manifest> 

上面的package="xxxx.test"是我们测试包的名称,下面定义的instrumentation中的tartPackage="xxx"是我们被测试工程的包名称,这个配置很关键,出问题的话很容易出现找不到被测试包的错误。以上就是简单的配置了,接下来就可以开始写测试代码了。 

4.新建一个自动化测试类 

新建一个Java类,继承ActivityInstrumentationTestCase2<Main>

 

  

代码如下: 

package com.calculator.test; 

import android.test.ActivityInstrumentationTestCase2; 

import android.widget.EditText; 

import android.widget.TextView; 

import com.calculator.Main; 

import com.robotium.solo.Solo; 

import com.calculator.R; 

@SuppressWarnings("rawtypes") 

public class MainTest extends ActivityInstrumentationTestCase2 { 

    private Solo solo; 

    @SuppressWarnings("unchecked")

    public MainTest() { 

        super(Main.class);

        // TODO Auto-generated constructor stub 

        } 

        @Override 

        protected void setUp() throws Exception { 

            super.setUp(); 

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

        } 

        public void testDisplayWhiteBox() {

            float vFirstNumber = 10; 

            float vSecondNumber = 10; 

            float vResult = vFirstNumber * vSecondNumber; 

            EditText vFirstEditText = (EditText) solo.getView(R.id.EditText01); 

            solo.clearEditText(vFirstEditText); 

            solo.enterText(vFirstEditText, String.valueOf(vFirstNumber)); 

            // AccessSecondvalue(edit-filed)andputtingSecondNumbervalueinit 

            EditText vSecondEditText = (EditText) solo.getView(R.id.EditText02); 

            solo.clearEditText(vSecondEditText); 

            solo.enterText(vSecondEditText, String.valueOf(vSecondNumber)); 

            // ClickonMultiplybutton 

            solo.clickOnButton("Multiply"); 

            assertTrue(solo.searchText(String.valueOf(vResult))); 

            TextView outputField = (TextView) solo.getView(R.id.TextView01); 

            // Assert to verify result with visible value 

            assertEquals(String.valueOf(vResult), outputField.getText().toString()); 

        } 

        @Override 

        protected void  tearDown() throws Exception { 

            solo.finishOpenedActivities(); 

        } 

四、接下来就是运行测试用例 

在工具栏点击run,点击Edit configurations Defaults中点击Android Tests,在before launch中添加gradle-aware make在输入框中输入,自定义的task任务,确定后就大功告成。 

 

接下来我们直接在测试用例中点击运行我们的测试用例即可

 

让我们看一看测试结果 

 

OKrobotiumAndroid studio无源码完美运行  

心得体会 

  经过在网上找寻软件测试工具的学习教程,并且进行了一轮两轮的学习和实践,我大致理解了此项软件测试工具是如何操作以及进行测试的,并且对于我们的项目我进行了对于我自己这个部分的测试,发现我们的软件的确还有一些并不足特别是我的这个一部分,因此,对于我来说,有了一定的改进方向。我大致明白了当产品真正的使用的时候,有可能出现的一些问题,而对于此项软件测试工具来说,它的实用性是很显著的,它的操作十分便捷,仅仅需要依靠cmd输入一定的代码,就能够大致的进行一些性能的测试以及压力测试的使用。 

  Robotium作为早期Android世界里用得最为广泛的测试框架,基于JUnit扩展了大量关于Android UI的有效测试方法。它的优点也是很显著的1、使用简单2、示例容易阅读3、不需要访问源代码,就可以测试一个APK4、可以轻松的识别元素5、可以依靠默认的android 框架,而它的缺点呢,缺点:1、目前并不是支持所有的试图和对象,例如SlidingView2、比单元测试慢3、单类包含所有的方法,selenium1风格,这将会很混乱,因此没每款软件都有利有弊。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM