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