Android 手機自動化測試工具有哪幾種?


Feb 23 2012更新: 還有Sikuli (http://sikuli.org),基於優秀的圖像對比庫opencv的測試工具,測試腳本使用Python編寫,非常強大。如果你的app沒有源碼,可以選擇它;或者你想做系統測試(跨app的測試),也可以選擇它。其它的還是用下面說的那些個吧。

我通過其核心包sikuli-script.jar實現了android的sikuli化,暫時不打算開源。其實原理挺簡單的,認真看過sikuli源碼的應該都能寫出來。

看lz的意思應該只是想問應用層的,我來說點應用層的

先說說開源的吧:

  1. Robotium
  2. Monkeyrunner
  3. Robolectric
  4. CTS

還有個新興的測試工具,以前在GitHub看到,現在找不到了,好像是BDD類型的語法;現在還不成熟。

另外基於web的測試也有基於Selenium Webdriver 的 Android WebDriver:

有兩種:

  • 基於Remote Server的:官方提供了java介面的,但是Python版的官方裡面卻沒有。我非常喜歡Python,所以自己實現了並且開源到了GitHub:https://github.com/truebit/AndroidWebDriver4Python 有問題大家可以提到上面

  • 基於Instrumentation的:已經在Android SDK r14裡面可以安裝了

不開源的就多了,不過我見過的一般是以下幾種思路:

1. 基於Android Java Instrumentation框架:

  • 基於Robotium,比如bitbar的產品:http://bitbar.com/products
  • 基於Instrumentation,那就海了去了,很多公司自家寫的工具都基於這個;另外Robotium就是基於這個的

2. 基於Android lib層的各種命令,比如sendevent,getevent, monkey, service這些,然後用各種語言封裝

MonkeyRunner還是很有前景的,Google自己弄的。現在最新的dev版本已經有支持UI的id操作的EasyMonkey了。可以git clone git://http://android.kernel.org/platform/sdk.git看看


1、Monkey是Android SDK自帶的測試工具,在測試過程中會向系統發送偽隨機的用戶事件流,如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試,也有日誌輸出。實際上該工具只能做程序做一些壓力測試,由於測試事件和數據都是隨機的,不能自定義,所以有很大的局限性。

2、MonkeyRunner也是Android SDK提供的測試工具。嚴格意義上來說MonkeyRunner其實是一個Api工具包,比Monkey強大,可以編寫測試腳本來自定義數據、事件。缺點是腳本用Python來寫,對測試人員來說要求較高,有比較大的學習成本。

3、Instrumentation是早期Google提供的Android自動化測試工具類,雖然在那時候JUnit也可以對Android進行測試,但是Instrumentation允許你對應用程序做更為複雜的測試,甚至是框架層面的。通過Instrumentation你可以模擬按鍵按下、抬起、屏幕點擊、滾動等事件。Instrumentation是通過將主程序和測試程序運行在同一個進程來實現這些功能,你可以把Instrumentation看成一個類似Activity或者Service並且不帶界面的組件,在程序運行期間監控你的主程序。缺點是對測試人員來說編寫代碼能力要求較高,需要對Android相關知識有一定了解,還需要配置AndroidManifest.xml文件,不能跨多個App。

4、UiAutomator也是Android提供的自動化測試框架,基本上支持所有的Android事件操作,對比Instrumentation它不需要測試人員了解代碼實現細節(可以用UiAutomatorviewer抓去App頁面上的控制項屬性而不看源碼)。基於Java,測試代碼結構簡單、編寫容易、學習成本,一次編譯,所有設備或模擬器都能運行測試,能跨App(比如:很多App有選擇相冊、打開相機拍照,這就是跨App測試)。缺點是只支持SDK 16(Android 4.1)及以上,不支持Hybird App、WebApp。

5、Espresso是Google的開源自動化測試框架。相對於Robotium和UIAutomator,它的特點是規模更小、更簡潔,API更加精確,編寫測試代碼簡單,容易快速上手。因為是基於Instrumentation的,所以不能跨App。配合Android Studio來編寫測試的簡單例子

6、Selendroid:也是基於Instrumentation的測試框架,可以測試Native App、Hybird App、Web App,但是網上資料較少,社區活躍度也不大。

7、Robotium也是基於Instrumentation的測試框架,目前國內外用的比較多,資料比較多,社區也比較活躍。缺點是對測試人員來說要有一定的Java基礎,了解Android基本組件,不能跨App。

8、Athrun是淘寶出的一個移動測試框架/平台,同時支持iOS和Android。Android部分也是基於Instrumentation,在Android原有的ActivityInstrumentationTestCase2類基礎上進行了擴展,提供一整套面向對象的API。這裡有詳細介紹。

9、Appium是最近比較熱門的框架,社區也很活躍。這個框架應該是是功能最強大的,

  • 它的優點:

    • 開源;
    • 支持Native App、Hybird App、Web App;
    • 支持Android、iOS、Firefox OS;
    • Server也是跨平台的,你可以使用Mac OS X、Windows或者Linux;

    它的哲理是:

    • 用Appium自動化測試不需要重新編譯App;
    • 支持很多語言來編寫測試腳本,Java、Javascript、PHP、Python、C#、Ruby等主流語言;
    • 不需要為了自動化測試來重造輪子,因為擴展了WebDriver。(WebDriver是測試WebApps的一種簡單、快速的自動化測試框架,所以有Web自動化測試經驗的測試人員可以直接上手);
    • 移動端自動化測試應該是開源的;

    它的設計理念:

    • Client/Server架構,運行的時候Server端會監聽Client端發過來的命令,翻譯這些命令發送給移動設備或模擬器,然後移動設備或模擬器做出響應的反應。正是因為這種架構,所以Client可以使用Appium client libraries多種語言的測試腳本,而且Server端完全可以部署在伺服器上,甚至雲伺服器。
    • Session,每個Client連接到Server以後都會有一個Session ID,而且Client發送命令到Server端都需要這個Session ID,因為這個seesion id代表了你所打開的瀏覽器或者是移動設備的模擬器。所以你甚至可以打開N個Session,同時測試不同的設備或模擬器。
    • Desired Capabilities,其實就是一個鍵值對,設置一些測試的相關信息來告訴Server端,我們需要測試iOS、還是Android,或者換是WebApp等信息。
    • Appium Server是Node.js寫的,所以可以直接用NPM來進行安裝。
    • Appium Clients,Mac OS和Win下提供GUI,不需要裝Node.js,方便測試人員操作。

    相關限制:

    • 如果你在Windows使用Appium,你沒法使用預編譯專用於OS X的.app文件,因為Appium依賴OS X專用的庫來支持iOS測試,所以在Windows平台你不能測試iOS Apps。這意味著你只能通過在Mac上來運行iOS測試。

    總結:

    • 在iOS部分是封裝了UIAutomation;Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是 Instrumentation,也就說Appium同時封裝了UiAutomator和Instrumentation。所以Appium擁有了以上幾大框架的所有優點:跨App,支持Native App、Hybird App、Web App,還支持N種語言來編寫你的測試腳本。


詳細可見:移動無線測試技能樹 (原創)

  • 常用IDE
    • Android
      • ADT
      • Android Studio
    • iOS
      • Xcode
    • Common
      • Atom
      • Sublime Text
      • Vim
  • 基礎知識

    • Android
      • 掌握Android開發基礎技能

    • iOS
      • 掌握iOS開發基礎技能
    • web
      • 掌握web開發基礎技能
    • api
      • 掌握api相關基礎知識
    • 測試
      • 掌握基本的測試用例設計方法和思想
  • 常見應用模式

    • Native
    • Hybrid
    • H5 App
    • ReactNative
  • 常用工具

    • Android
      • Android sdk manager
      • adb
      • ddms
      • ant
      • aapt
      • emulator
      • Genymotion
      • hierarchyviewer
      • monitor
      • monkey
      • monkeyrunner
      • uiautomatorviewer
    • iOS
      • lldb
      • iExplorer
      • libimobiledevice 套件
      • codesign
      • instruments
      • xcodebuild
      • atos
      • xcrun
  • 常用UI Automation框架

    • Android
      • Instrumentation
      • Athrun
      • Robotium
      • Monkey
      • Monkeyrunner
      • uiautomator
      • Selendroid
      • Calabash-Android
      • monkeytalk
      • Appium
      • Espresso
      • cafe
    • iOS
      • UIAutomation
      • XCUITesting
      • KIF
      • Frank
      • appium
      • ios-driver
      • Mechanic.js
      • monkeytalk
      • Calabash-iOS
      • TuneupJs
      • ynm3k
  • 常用單元測試框架

    • Android
      • robolectric
      • Instrumentation
      • Mockito
      • RxJava
    • iOS
      • OCUnit
      • GHUnit
      • XCTest
      • OCMock
      • OCMockito
      • Expecta
      • OCHamcrest
  • 常用動態更新

    • ReactNative
    • waxpatch/wax
    • ota
  • 常用性能工具

    • 抓包
      • Charles
      • fiddler
      • burpsuites
      • tcpdump
      • anyproxy
    • 弱網模擬
      • iOS developer mode
      • ATC
      • Charles
    • memory
      • Android
        • MAT
        • ddms
        • Memory Monitor
        • Allocation Tracker
        • LeakCanary
        • dumpsys
        • procrank
        • top
      • iOS
        • Memory Leaks
    • Scan
      • Android
        • findbugs
        • lint
        • infer
        • CheckStyle
        • PMD
      • iOS
        • scan-build
        • oclint
        • infer
        • deployment -other
      • Common
        • 安捷倫
        • tcpdump
        • wireshark
        • 高速(慢速)攝像機
        • 埋點
        • 騰訊GT
        • 網易Emmagee
      • Android
        • gfxinfo
        • dumpsys
        • traceview
        • systrace
        • GameBench
        • battery-historian
      • iOS
        • Core Animation(instruments)
        • Network(instruments)
        • TimeProfiler(instruments)
        • Zombies(instruments)
  • 安全

    • Android
      • Drozer
      • apktool
      • dex2jar
      • proguard
      • 加固
      • exported/permission
      • AndBug
      • androguard
      • Xposed
    • iOS
      • IDB
      • iRET
      • DVIA
      • LibiMobileDevice
      • otool
  • abtest

    • AB Tester
    • AppAdhocOptimizer
    • Google Website Optimizer
    • Visual Website Optimizer
  • 常用灰度測試工具

    • testflight
    • 蒲公英
    • fir
    • pre
  • 常用雲測平台

    • testin
    • MQC
    • MTC
  • 常用持續集成平台/相關工具

    • Jenkins
    • Travis CI
    • Android
      • mvn
      • gradle
    • iOS
      • xctool
      • Cocoapods
  • 多語言開發應用

    • SL4A
    • gomobile
  • 多設備遠程管理平台

    • STF
  • 軟技能

    • 知識管理/總結分享
    • 溝通技巧/團隊協作
    • 需求管理/PM
    • 交互設計/可用性/可訪問性知識
    • 快速的學習能力

移動無線測試技能樹 (原創)


appium是最近我關注的一個不錯的移動端自動化測試工具,支持android和ios。

放上兩段視頻。第一段是講解appium的原理及quick start;第二段講解了appium的源碼結構和具體實現。有興趣可以看一下,相信應該有收穫。

1,appium 原理與quick start

視頻封面乙醇的appium視頻教程之appium入門及原理剖析視頻2,appium源碼解析

視頻封面乙醇的appium源碼解讀視頻


當前有很大的趨勢是轉向移動應用平台,Android 是最廣泛使用的移動操作系統,2014 年大約佔 80% 以上的市場。在開發 Android 應用的時候要進行測試,現在市場上有大量的測試工具。

本文提到的開源 Android 軟體測試工具包括:Android Test Kit, AndroidJUnit4, Appium, calabash-android, Monkey, MonkeyTalk, NativeDriver, Robolectric, RoboSpock, Robotium, UIAutomator, Selendroid。

Android Test Kit

Android Test Kit 是一組 Google 開源測試工具,用於 Android 平台,包含 Espresso API 可用於編寫簡潔可靠的 Android UI 測試。

OSChina URL: Android Test Kit首頁、文檔和下載

相關資源

* Android application testing with the Android test framework – Tutorial

* Espresso for Android is here!

AndroidJUnit4

AndroidJUnit4 是一個讓 JUnit 4 可以直接運行在 Android 設備上的開源命令行工具。

OSChina URL: AndroidJUnit4首頁、文檔和下載

Appium

Appium 是一個開源、跨平台的自動化測試工具,用於測試原生和輕量移動應用,支持 iOS, Android 和 FirefoxOS 平台。Appium 驅動蘋果的 UIAutomation 庫和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 協議。

Appinm 的 iOS 支持是基於 Dan Cuellar"s 的 iOS Auto. Appium 同時綁定了 Selendroid 用於老的 Android 平台測試。

OSChina URL: Appium首頁、文檔和下載

相關資源

* Appium Tutorial

* Android UI testing with Appium

Calabash-android

calabash-android 是一個基於 Cucumber 的 Android 的功能自動化測試框架。Calabash 允許你寫和執行,是開源的自動化移動應用測試工具,支持 Android 和 iOS 原生應用。Calabash 的庫允許原生和混合應用的交互測試,交互包括大量的終端用戶活動。Calabash 可以媲美 Selenium WebDriver。但是, 需要注意的是 web 應用和桌面環境的交互跟觸摸屏應用的交互是不同的。Calabash 專為觸摸屏設備的原生應用提供 APIs。

OSChina URL: calabash-android首頁、文檔和下載

相關資源

* A better way to test Android applications using Calabash

* Calabash Android: query language basics

Monkey

Monkey 是 Google 開發的 UI/應用測試工具,也是命令行工具,主要針對壓力測試。你可以在任意的模擬器示例或者設備上運行。Monkey 發送一個用戶事件的 pseudo-random 流給系統,作為你開發應用的壓力測試。

OSChina URL: UI/Application Exerciser Monkey

MonkeyTalk

MonkeyTalk 是世界上最強大的移動應用測試工具。MonkeyTalk 自動為 iOS 和 Android 應用進行真實的,功能性交互測試。MonkeyTalk 提供簡單的 "smoke tests",複雜數據驅動的測試套件。

MonkeyTalk 支持原生,移動和混合應用,真實設備或者模擬器。MonkeyTalk 使得場景捕獲非常容易,可以記錄高級別,可讀的測試腳本。同樣的命令可以用在 iOS 和 Android 應用上。你可以記錄一個平台的一個測試,並且可以在另外一個平台回放。MonkeyTalk 支持移動觸摸和基於手勢交互為主的移動體驗。點擊,拖拽,移動,甚至是手指繪製也可以被記錄和回放。

OSChina URL: MonkeyTalk首頁、文檔和下載

相關資源

* Using MonkeyTalk in AndroidStudio

NativeDriver

NativeDriver 是 WebDriver API 的實現,是原生應用 UI 驅動,而不是 web 應用。

OSChina URL: NativeDriver首頁、文檔和下載

Robolectric

Robolectric 是一款Android單元測試框架,使用 Android SDK jar,所以你可以使用測試驅動開發 Android 應用。測試只需幾秒就可以在工作站的 JVM 運行。Robolectric 處理視圖縮放,資源載入和大量 Android 設備原生的 C 代碼實現。

Robolectric 允許你做大部分真實設備上可以做的事情,可以在工作站中運行,也可以在常規的 JVM 持續集成環境運行,不需要通過模擬器。

OSChina URL: Robolectric首頁、文檔和下載

Additional resources

* Better Android Testing with Robolectric 2.0

Using Robolectric for Android testing – Tutorial

RoboSpock

RoboSpock 是一個開源的 Android 測試框架。提供簡單的編寫 BDD 行為驅動開發規範的方法,使用Groovy 語音,支持 Google Guice 庫。RoboSpock 合併了 Robolectric 和 Spock 的功能。

OSChina URL: RoboSpock首頁、文檔和下載

相關資源

* RoboSpock – Behavior Driven Development (BDD) for Android

Robotium

Robotium 是一款國外的Android自動化測試框架,主要針對Android平台的應用進行黑盒自動化測試,它提供了模擬各種手勢操作(點擊、長 按、滑動等)、查找和斷言機制的API,能夠對各種控制項進行操作。

Robotium結合Android官方提供的測試框架達到對應用程序進行自動化的測 試。另外,Robotium 4.0版本已經支持對WebView的操作。Robotium 對Activity,Dialog,Toast,Menu 都是支持的。

OSChina URL: Robotium首頁、文檔和下載

相關資源

* Robotium – Testing Android User Interface

* Android user interface testing with Robotium – Tutorial

UIAutomator

uiautomator 測試框架提高用戶界面(UI)的測試效率,通過自動創建功能 UI 測試示例,可以在一個或者多個設備上運行你的應用。

OSChina URL: uiautomator首頁、文檔和下載

相關資源

* Automatic Android Testing with UiAutomator

Selendroid

Selendroid 是一個 Android 原生應用的 UI 自動化測試框架。測試使用 Selenium 2 客戶端 API 編寫。Selendroid 可以在模擬器和實際設備上使用,也可以集成網格節點作為縮放和並行測試。

OSChina URL: Selendroid首頁、文檔和下載

相關資源

* Mobile Test Automation with Selendroid

* Road to setup Selendroid and create first test script of android application

* Up and running with: Selendroid

一些停止維護的 Android 測試工具

一些幾乎沒有繼續維護的開源 Android 測試工具項目(至少是最近幾個月都沒有更新的項目)。

Emmagee

Emmagee 是監控指定被測應用在使用過程中佔用機器的CPU、內存、流量資源的性能測試小工具。Emmagee 同時還提供非常酷的一些特性,比如定製間隔來收集數據,使用浮動窗口呈現實時進程狀態等。

OSChina URL: Emmagee首頁、文檔和下載

Sirocco

Scirocco(scirocco-webdriver) 是開源的應用自動化測試工具,可以從 Eclipse 訪問必要的測試設備。Scirocco 提供自動化的 Android 應用測試功能,代替手工測試。Scirocco 支持谷歌的 NativeDriver,把 AndroidDriver 作為主要的測試庫。Scirocco 包括三個部分:NativeDriver,AndroidDriver,scirocco 插件(一個 Eclipse 插件;可以自動執行 scenario 測試和製作測試報告截圖)。

OSChina URL: Scirocco首頁、文檔和下載

via softwaretestingmagazine

內容來源:開源中國社區


推薦商業自動測試工具Ranorex。

Ranorex在4.0版本以後就能支持ios和android兩大移動平台的自動化測試了。Ranorex可以用C#和http://VB.NET編寫測試腳本,它同時支持桌面,web和移動三大主流待測應用,是自動測試工具的後起之秀。


我來推薦一下搜狗的Android測試工具吧,哆啦A夢,移動測試工具百寶箱,免費噠!

下載地址:哆啦A夢-移動測試工具的百寶箱,搜狗測試出品

https://effevo.com/call/doraemon/download (二維碼自動識別)

哆啦A夢原本是我們組自己開發的幾個自動化小工具,推廣到公司之後發現很多同學都很喜歡,說明還是有一些普適性的,現在整合成一個通用app,希望能幫助到測試同學,提高工作效率~~~~(づ ̄ 3 ̄)づ

有什麼問題都可以來QQ群交流哈~~~:154198750

主要功能list:

  • 設置代理

只需填寫一次代理服務IP和埠,後續設置代理一鍵搞定

  • 應用管理

快速查看手機內已安裝應用的包名信息,掃描手機內的apk安裝包一鍵安裝

  • 設備信息

展示手機的型號、解析度、api版本、ip地址等信息

  • 性能監控

監控被測應用的cpu、內存佔用、流量消耗信息,並提供實時曲線圖顯示

  • 設置host

快速修改手機的host信息

  • 獲取系統日誌

監控系統的日誌信息,提供日誌信息的實時展示

  • 一鍵搬家

快速將被測應用的安裝目錄拷貝到sdcard,或將sdcard中的文件覆蓋到安裝目錄,創建 測試環境

  • 時間調整

一鍵向前或向後調整系統時間

  • 文件監控

監控文件目錄的變化情況並發送郵件通知

  • 簡易文件管理

快速查看被測應用的安裝目錄

  • 卸載所有app

一鍵卸載所有已安裝的app

  • 內存填充

一鍵按比例或固定數量填充內存

  • FTP服務

在手機端搭建FTP服務,獲取手機上的文件變得更加簡單

  • 文件生成

生成垃圾文件,填充sdcard

  • ANR獲取

實時查看手機上的ANR文件信息

  • 卸載被測app

一鍵卸載被測應用

更多測試交流,每天乾貨分享,歡迎來關注微信公眾號:搜狗測試

http://weixin.qq.com/r/DHXP1yPEwH6-rWe09yAe (二維碼自動識別)


用過http://code.google.com/p/robotium/ ,不是特別方便,一般測試人員必須有Android開發背景才能寫測試腳本。


既然說到andoird測試工具的分類,我就以分類的角度來回答吧。

1)純白盒方式的測試,Monkey。樓上已經有哥們提到了,使用moneky更多的是開發team,而不是純粹的測試team,畢竟要求對android開發比較了解才用得了monkey。

2)偏白盒的robotium,這傢伙號稱是黑盒,但是本人不太認同~ 因為使用robotium需要知道package和acitivity這樣的細節,即便不是開發人員來做,也得從開發人員那裡獲得不少開發文檔才能做。

3)純黑盒的方式,這個分類比較有意思,我分得細點

3-1)sikuli,原來只針對桌面應用,後來自然延伸到了android app,讓人眼前一亮的測試方式。框個圖,寫個簡單的python測試腳本(其實java腳本也可以),測試就做好了,簡單又形象,還有邏輯。因為驗證點是依賴於圖片比對,所以瓶頸也在此。屏幕大小和解析度的不同是這種測試的硬傷,如果測試團隊覺得每個手機上摳下來的圖要重新截,那...也就沒啥了。

3-2)testin,deviceanywhere等

樓上那個哥們應該是testin的人,介紹已經很全面了,我只概括一下。這類測試本身沒有神馬特別的,無非是放在了雲端,將規模化的測試做到了極致,與其說是測試工具,不如說是測試平台。說缺點嘛也有,由於只是簡單的基於坐標的腳本錄製(並沒有靈活的功能性驗證點),這種測試往往比較簡單,只是做做簡單的適配性和性能測試,畢竟賣點不在測試類型上。

3-3)clicktest(我們家的工具,算是廣告吧,呵呵)

論原理,也是基於圖片對比技術,只是做了些優化,比對的智能一些,跨手機的效果更好罷了。也支持錄製回放,自定義了一些測試命令,易上手,可讀性強,不再需要使用者(手工測試人員)編程了。另外,支持工作流式的邏輯集成,可以靈活得組合測試步驟,增強復用性。clicktest是工具,不是平台,歡迎各位諮詢和探討。

對了,還有一種

4)硬體輔助的測試方式,我就不舉例了

先說原理,硬體輔助視頻輸出(攝像頭or視頻線),控制方式是軟硬體結合。這種方式的特點,跨平台杠杠的,但是成本高,包括硬體成本以及硬體工程師的成本。

希望和各位同行多交流:)


補充幾個:

  • sikuli,是MIT的幾個高材生搞的一套圖形化編程系統,可以用來測試任何圖形界面,配合工具screencast,即可方便的利用Sikuli來測試真實手機,語言用python語法,都是可視化的腳本。
  • Monkey,用於app的穩定性測試。業界通用的哦,不會用的話不要說你是做android開發的。
  • ASE,android script environment,是API的腳本實現,穩定性一般,環境配置稍複雜,不過,編寫成本低,如果再結合shell等,可以指定很強大的自動化思路。
  • WindRiver公司也出了一些商用的自動化框架,沒用過,據他們的官網介紹,很是不錯的。

總結一下:

如果想做一套大型的、可擴展的自動化框架(工具),基於Robotium是最靠譜的,雖然難度有點高。


白盒方式的測試工具有,Monkey、robotium

黑盒的方式有:sikuli、testin,deviceanywhere、clicktest


Android自動化測試從入門到精通

百度網盤地址:鏈接:http://pan.baidu.com/s/1pKkFWyJ 密碼:4gfh

01.相關概念

02.Android測試點

03.android SDK工具1

04.android SDK工具2

05.android SDK工具3

06.android SDK工具4

07.Android SDK工具5

08.Android App的開發1

09.Android App的開發2

10.robotium基礎應用1

11.robotium基礎應用2

12.robotium基礎應用3

13.自動化架構設計1

14.自動化架構設計2

15.自動化架構設計3

16.自動化架構設計4

17.自動化架構設計5

18.自動化架構設計6

19.自動化架構設計7

20.自動化架構設計8

21.自動化架構設計9

22.自動化架構設計總結

23.Robotium雲測試應用

24.總結


並非廣告,誠心推薦,因為這種工具畢竟不太多。歡迎使用Testin雲測試出品的Android自動化測試工具iTestin,免費的

iTestin下載地址:http://i.Testin.cn

覆蓋Android和iOS兩大設備平台,為移動應用開發者提供安全的黑盒測試環境。它所包含的測試服務類型 有功能測試、UI測試、性能測試、穩定性測試、安全測試和競爭測試,返回包括日誌和截圖的詳細測試報告, 幫助開發者快速找到錯誤原因,提升應用質量。

[iTestin自動化測試工具特點]

? 自動化測試

可提供業界最全的自動測試服務類型:兼容測試、性能測試、功能測試。返回測試結果,測試結果包括:CPU消耗、內存消耗、啟動時間,界面截圖、Log日誌、錯誤原因及分析等

? iOS/Android兩大平台

全球首款同時支持Android和iOS設備的黑盒測試的自動化工具,為移動開發者提供基於批量終端的功能測試、腳本錄製回放以及測試記錄的功能

? 快速交付

支持在移動終端設備上記錄操作行為、生成腳本文件,在終端設備上反覆回放並記錄回放結果。iTestin獨有的專利技術,5分鐘內,就可以把開發者的App應用在Testin雲測的上千款真機上全部運行測試一遍,並返回測試結果

? 標準化報告

持在終端設備上記錄操作行為、生成腳本文件,在終端設備上反覆回放並記錄回放結果:錯誤屏幕截圖、Log日誌,為開發者提供最專業、最詳細的測試報告,幫助開發者快速找到錯誤原因。

[iTestin自動化測試工具重點功能]

基於Windows平台,為Android和iOS設備提供黑盒測試的自動化工具,為開發者提供功能測試、腳本錄製回放以及測試記錄的功能。主要內容包括:

1)連接和管理連接在PC上的終端設備,包括Phone和Pad。

2)支持在終端設備上記錄操作行為、屏幕截圖、Log日誌,並上傳到iTestin平台。

3)支持在終端設備上記錄操作行為、生成腳本文件,在終端設備上反覆回放並記錄回放結果

、錯誤屏幕截圖、Log日誌。

4)支持在PC上上傳錄製的腳本和應用程序到iTestin平台,在Testin雲測終端雲的其他終端上按腳本執行應用程序。


1.monkey 做穩定測試

2.monkeyrunner robotium appium colocumber uiAutomator 百度的cafe 淘寶athrun 這幾個都做自動化的

具體選擇那個工具你得根據自己的情況去選擇


介紹下我們的兩個核心工具:研發階段的靜態代碼分析工具Coverity,黑盒模糊測試工具Defensics,下為詳細介紹。

Coverity技術源自於斯坦福大學,是最新一代的源代碼靜態分析工具,能夠快速檢測並定位源代碼中可能導致產品崩潰、未知行為、安全缺口或者災難性故障的軟體缺陷。具有缺陷分析種類多、分析精度高和誤報率低的特點,是業界誤報率最低的源代碼分析工具(小於10%),大家一定要注意誤報率!誤報率高於30%的產品研發是不會用的,因為研發現在太貴了,這也是BAT,華為三星阿里巴巴等大中小型選用Coverity 的最大原因。介紹幾個功能:

代碼質量缺陷與安全漏洞檢測:

Coverity 的智能靜態分析引擎能夠幫助開發者在工作流程中找出質量缺陷和安全漏洞,提供精確、可行的修復指導,在開發過程中識別關鍵質量缺陷,降低風險並減少項目成本。通過深刻理解行為和問題危急程度, Coverity SAVE 可以智能測試,精確找出那些潛在的難以發現的能夠引發崩潰的問題,包括C/C++, Java (JSP)和 C #(ASP) ,Objective-C, Android,Javascript, Python, PHP代碼庫。

能夠檢測出的質量缺陷類型示例(更詳細的請查看http://www.coverity.com/products/code-advisor/#CWEcoverage,不僅包括CWE Top 25與OWASP Top 10,Coverity是最全的,也是最準確的):)。

  • API usage errors
  • Best practice coding errors
  • Build system issues
  • Buffer overflows
  • Class hierarchy inconsistencies
  • Code maintainability issues
  • Concurrent data access violations
  • Control flow issues
  • Cross-site scripting (XSS)
  • Cross-site request forgery (CSRF)
  • Deadlocks
  • Error handling issues
  • Hard-coded credentials
  • Incorrect expression
  • Insecure data handling
  • Integer handling issues
  • Integer overflows
  • Memory – corruptions
  • Memory – illegal accesses
  • Null pointer dereferences
  • Path manipulation
  • Performance inefficiencies
  • Program hangs
  • Race conditions
  • Resource leaks
  • Rule violations
  • Security best practices violations
  • Security misconfigurations
  • SQL Injection
  • Uninitialized members

代碼安全與Web 應用安全審計:

Coverity 的安全審計引擎能夠通過識別JSP和ASP網站中可能導致安全漏洞的關鍵缺陷,降低風險和項目成本。Coverity Static Analysis Verification Engine 能夠智能檢測出ASP應用和Java web應用中的缺陷,包括緩存區溢出、整數溢出、格式字元串錯誤、SQL注入、系統命令行注入、資源泄露、目錄遍歷和跨站腳本攻擊 (XSS)等問題,全面覆蓋OWASP Top10。

以往的安全工具在開發中失敗的主要原因是高誤報率或結果不正確。Coverity設計的新引擎,能夠解決現代應用的複雜問題,並獲得更為精準的結果。

適用於web應用安全的Coverity SAVE 分析創新包括:

?企業框架分析器: 深刻理解現代web 應用,增加源代碼分析包括依賴性注入,進入點以及MVC範例

?白盒模糊測試 自動驗證日常數據清理慣例,對不可信數據進行充分清理,確保使用環境正確

Coverity是第一個能夠快速、準確分析當今的大規模(百萬行、千萬行甚至上億行)、高複雜度代碼的工具,目前已經檢測了超過380億行專有代碼和開源代碼。全球有超過1100個像華為,中興,聯想,百度,三星,騰訊,Apple,Honeywell, NEC, BAE Systems, Juniper Networks, BMC Software, Samsung, France Telecom, Sega, 和 Schneider Electric這樣的品牌和企業依靠Coverity確保其產品和服務的質量與安全。

Defensics:

Defensics-心臟出血漏洞的發現者。能夠模擬各種網路協議數據包進行黑盒模糊測試-Fuzzing,找到質量性問題(如Ddos)和安全性問題(密碼泄漏,你懂的)。

Defensics協議健壯性和安全性Fuzzing測試產品是HeartBleed(心臟出血漏洞)發現者,從OUSPG(Oulu University Secure Programming Group,Oulu 大學安全規劃組) 的PROTOS 測試工具項目衍生而來。一直以來,Defensics 不斷將最新的研究成果加入到其測試技術當中,保持著高度的創新性。當傳統的測試對日新月異的網路技術發展感到無所適從時,Defensics卻能夠輕鬆面對-這種適應性源自Synopsys 獨特的Fuzzing 技術。Fuzzers 的重點不是已知的漏洞,而是針對新的安全性問題。Defensics 產品能夠預先發現未知的0-day 漏洞。

DEFENSICS?介紹

DEFENSICS?健全性和安全性測試平台基於協議的健全性和安全性測試,面向IP,車載系統, Wireless 和多媒體數據等近300種協議,旨在消滅軟體安全漏洞,幫助客戶發掘、管理和削弱未知漏洞威脅。針對特定的協議和文件格式的自動生成模糊測試用例,用於檢測被測系統處理相關協議和文件格式的健壯性。

DEFENSICS? 工具模擬引擎是業界第一款基於狀態的Fuzz 測試用例生成器。它利用深度協議模型來智能的、精確的命中目標協議中易受攻擊影響的部分,自動的生成具有廣泛覆蓋的Fuzz 測試用例.

Defensics的優勢包括但不限於:

? 基於軟體的設計

? 不限安裝數量,方便遠程分發

? 支持並發測試

? 性能隨硬體增長

? 基於自動化的測試

通過使用Defensics,可以幫助用戶:

?保護軟體和系統的完整性

?最大限度減少安全漏洞和數據損失的威脅

?在減少總體成本的同時改善服務質量–減少系統上線後的問題

?提高系統正常運行時間/減少故障時間的風險

?保護品牌聲譽

我們已經嘗試使用WiFi 協議Fuzzing 把某雜糧手機給玩壞了.

好吧,我在原廠負責技術與銷售,大家有需求的話,歡迎隨時聯繫。


有一個nativedriver工具,可以進行UI方面的自動化測試,是封裝的WebDriver,後續還支持跨平台,可以看一下。

http://code.google.com/p/nativedriver/

NativDriver現在作者已經不維護了,自己已經轉向Robotium,基於Robotium進行了一些擴展,http://qa.blog.163.com/blog/static/19014700220126254558638/

還有一個支持跨平台BDD方式的工具是calabash,其中android端的話也是封裝的Robotium,感興趣的可以看一下https://github.com/calabash


騰訊優測新出了一個XTest測試工具,挺好用的,不僅可以自己錄製腳本測試,還可以組建小型自動化平台。而且測試過程不需要手機連接usb線,確實挺方便的。不是安利確實很給力的一款產品。他們網址是:深度服務


TestBird手機遊戲測試工具

補充下必須不能漏了這家~

全球第一家專註於手游開發者、手游發行商和手游渠道商提供自動化雲測試服務的專業平台

終端支持 Android OS和iOS

遊戲平台目前Cocos2d-x, Unity3D,可擴展支持其他遊戲平台。

背景和技術挺牛逼的


如果有一定的開發功底,robotium的確是一個不錯的框架,缺點是不能誇應用,所以引入安卓的ui即可完成很多的自動化測試用例。看好robotium和selenium,畢竟測試人員也是可以學習一下開發的


1.FAST不錯,不過就是比較複雜,測試時需要在Ubuntu上進行,可以寫python腳本,測試的範圍也比較廣,CTS/Kernel

2.如果單純測試APP,如果不使用Instrument的腳本,我寫過一個,可以模擬手動測試,然後通過截圖的判斷測試是否正確的框架,效果很不錯,使用簡單


推薦閱讀:

Android 開發有哪些新技術出現?
互聯網產品經理需要懂得哪些技術?
為什麼 iOS 和原生 Android 沒有文件管理的概念?
GitHub 上都有哪些值得關注學習的 Android項目?
如何看待「谷歌醞釀將蘋果 Swift 作為安卓 APP 主要開發語言」?

TAG:Android開發 | 軟體測試 | android自動化測試 |