android UI自動化測試工具Robotium VS NativeDriver VS Calabash

http://kongqingyun123.blog.163.com/blog/static/6377283520126294029822/

自從上次對Robotium和nativedriver這兩個工具做對比已經過去將近一年的時間了(上次內容見http://kongqingyun123.blog.163.com/blog/static/637728352011614111010446/),一年時間對于一個開源的工具來說變化肯定是很多的。同時很多當初對于工具的看法也會有些不同,當初選擇了NativeDriver來做一些手機上的自動化測試,但是在后續的使用過程中也發現了一些問題,現在主要是在用Robotium來寫一些測試用例。

Robotium:
http://code.google.com/p/robotium/
當前已經發布了最新的3.3版本,robotium的社區還是挺活躍的,會有很多人提問題,以及幫助你解決問題。可以加入groups,http://groups.google.com/group/robotium-developers?
先簡單說一下后面使用robotium的原因。
1、支持滑動操作,測試項目中很多地方只能通過滑動屏幕來實現,robotium支持,但是nativedriver不支持
2、robotium支持獲取toast的,nativedriver不支持
3、關于robotium需要為應用重簽名的問題,這個其實問題不大,實現的話也比較簡單,完全可以實現自動化來實現,windows下自動化為應用重簽名的bat腳本可以參考http://kongqingyun123.blog.163.com/blog/static/63772835201243143159515/
4、關于之前說的api中很多都使用index索引的問題,其實robotium也提供了通過R.java文件中的id來獲取元素,不過前提是你能夠獲取到被測應用的R.java文件,我們測試自己公司的應用,可以方便的讓開打打包時也保留一份和apk匹配的R.java文件即可
通過View button = solo.getView(R.id.button) ;? solo.clickOnView(button ); 來實現,只要開發不更改空間id的名稱,每次只需要使用最新的R.java文件覆蓋即可,對于后續的測試用例維護會方便一些。


當然每個工具你在使用的過程中也會發現一些不好用的地方:
關于下面的具體實習方式,后續寫一篇文章介紹一些我們基于Robotium的用例,外圍在PC端寫了一套框架來解決這些問題,同時可以通過簡單的配置來實現自動化的運行不同版本模擬器上的自動測試。
關于PC端的框架可以實現原理可以參考:http://kongqingyun123.blog.163.com/blog/static/63772835201262534056673/
1、robotium在運行測試用例的時候有時候會crash,直接導致測試停止,然后你的測試結果也收集不到了。
關于這個問題個人的解決方案是運行測試用例的時候通過cmd發送adb shell am instrument 命令, 每次只執行一個測試用例,然后通過獲取cmd的返回值來判斷是否是crash了,如果crash的話則重跑用例
2、測試用例運行不穩定的問題
有時候你用例寫完了沒有問題,但是在模擬器上跑的時候還是偶爾的會出現運行失敗,當前的解決方案也是按照測試結果返回值獲取檢測到失敗則繼續重跑,當前定義的重跑三次。(這里使用了一個開源的android-junit-report工具)
3、不支持WebView控件。(Robotium不支持,Calabash支持)



NativeDriver:
http://code.google.com/p/nativedriver/
具體查看這里http://kongqingyun123.blog.163.com/blog/static/637728352011614111010446/
Nativedriver是google日本的團隊開發的,但是團隊人員已經去做其它項目,所以NativeDriver基本上已經是不更新了,社區的活躍度也已經是很低。nativedriver存在的一些bug估計也都還沒有修復掉。


Calabash:

https://github.com/calabash
calabash-android是Robotium+cucumber實現的,最底層還是用的robotium,加入了對于WebView的支持
這個工具剛開源不久,社區還是挺活躍的,有問題提問的話開源的作者也會很積極的幫助你解決。
該工具的具體效果如果還沒實踐過,不過支持android和IOS,以及使用cucumber的方式來編寫測試用例還是會比較感興趣,另外還支持webview控件

轉載于:https://www.cnblogs.com/ivan240/p/3186375.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259604.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259604.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259604.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

POJ 1228 Grandpa's Estate --深入理解凸包

題意: 判斷凸包是否穩定。 解法: 穩定凸包每條邊上至少有三個點。 這題就在于求凸包的細節了,求凸包有兩種算法: 1.基于水平序的Andrew算法 2.基于極角序的Graham算法 兩種算法都有一個類似下面的語句: for(int i0;i&…

趙強老師免費公開課第一季:Hadoop的背景起源

標簽:免費直播課 Hadoop 大數據 趙強原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://51edu.blog.51cto.com/8899635/1897555 Hadoop大數據免費公開課招募啦~~~趙強…

.NET Windows服務應用程序

此文旨在記錄個人對windows服務的理解以及學習記錄,高人可以直接繞行。 1.Windows 服務體系結構 http://technet.microsoft.com/zh-cn/library/aa998749(vexchg.65).aspx Windows 服務(也稱服務應用程序)是無論用戶是否登錄都運行在 Windows …

io流技術java_技術文章-java中的IO流

1.File類Java中對文件有操作時,可以實例化一個File對象,將文件路徑利用這樣的形式賦給File對象。File f new File(filePath);File類的基本操作包括:判斷是否存在:f.exists()獲取文件名:f.getName()獲取其絕對路徑&…

bootstrap-代碼-內聯代碼

說明通過 <code> 標簽包裹內聯樣式的代碼片段示例<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"view…

java類似php魔術方法_PHP與類有關的幾個魔術方法

與類有關的其他魔術方法序列化與反序列化技術含義&#xff1a;序列化&#xff1a;就是將一個變量所代表的“內存”數據&#xff0c;轉換為“字符串”形式并持久保存在硬盤上的一種做法。反序列化&#xff1a;就是將序列化之后保存在硬盤上的“字符串數據”&#xff0c;恢復為其…

IIS ARR設置HTTP跳轉到HTTPS

GUI Version - Select the website you wish to configure- In the “Features View” panel, double click URL Rewrite You will notice there are currently no rules configured for this site. Click “Add Rules…” in the Actions menu to the right of the “Features…

2013.7.15DAY2

今天自己做了炸土豆 吼吼~ 才知道雞蛋和小麥粉一起弄成漿糊涂到土豆條上炸效果很好~不過做失敗了一些啦 失敗的就用青椒炒著吃。。。。 下午準備做冰品來著。。。結果快遞都到了特別忙。。。就只弄了杯冰啤酒。。。 虐了兩道水題&#xff0c;貼上代碼。。過于水了。。。 Descri…

AutoCAD.NET API 最新(2012)教程下載及在線視頻教程DevTV

Autodek最近發布了基于最新版的AutoCAD 2012的.net API開發教程。基本內容包括&#xff1a; Overview of .NETPlugin BasicsUser InteractionDatabase fundamentalsDictionariesUser InterfaceEventsInputPoint MonitorJigs現在就可以從AutoCAD開發者中心下載&#xff0c; 看圖…

inherits java_JAVA內部類和組合的區別

Why inner classes?At this point you’ve seen a lot of syntax and semantics describing the way inner classes work, but this doesn’t answer the question of why they exist. Why did Sun go to so much trouble to add this fundamental language feature? Feedbac…

SQL Server里一些未公開的擴展存儲過程

SQL Server里一些未公開的擴展存儲過程 [轉帖] 博客天地 www.inbaidu.comSQL Server里一些未公開的擴展存儲過程 擴展存儲過程&#xff08;xp&#xff09;是直接運行在SQL Server地址空間里的動態鏈接庫&#xff0c;是通過使用SQL Server開放數據服務API&#xff08;SQL Server…

Linux技巧:一次刪除一百萬個文件最快方法

昨天&#xff0c;我看到一個非常有趣的刪除一個目錄下的海量文件的方法。這個方法來自http://www.quora.com/How-can-someone-rapidly-delete-400-000-files里的Zhenyu Lee。 他沒有使用find 或 xargs&#xff0c;他很有創意的利用了rsync的強大功能&#xff0c;使用rsync –de…

install python_python install on windows 10

圖 1官網2、下載安裝包&#xff1a;圖 2 Downloads – windows圖 3選擇版本圖 4選擇離線安裝版本圖 5保存下載文件—文件名自己可以修改可能有人看到windows 幾個版本&#xff0c;對幾個版本有迷惑的地方&#xff0c;解釋圖 6幾個版本的差異說明文字解釋&#xff1a;An e…

iOS開發常見錯誤

錯誤1&#xff1a; 1.1這種錯誤都是storyboard有問題 解決&#xff1a;當前storyboard的Custom Class是MJViewController&#xff0c;代碼中MJViewController繼承自UITableViewController。 而storyboard目前提供的是UIViewController&#xff0c;并沒有為MJViewController提供…

windows bat 批處理 !vm 合并快播文件

今天簡單的寫了一個bat批處理文件 用來處理快播的p2p的文件&#xff0c;一般回事這樣的目錄 你可以下載如下代碼 echo off for /r %%a in (.) do (echo %%acd %%acopy /b *.!mv test.rmvb ) pause保存為merge.bat&#xff0c;就可以執行了 代碼解釋&#xff1a; 掃描該目錄下的…

sso接口的調用

之前一直想sso接口已經寫好了&#xff0c;登錄注冊功能是怎么調用的呢&#xff1f;原來在登錄注冊的jsp頁面實現的接口的調用&#xff0c;頁面的校驗和驗證功能在jsp頁面即可實現。 注冊頁面&#xff1a; <% page language"java" contentType"text/html; cha…

java js獲取css方法_5種JavaScript和CSS交互的方法

原標題&#xff1a;5種JavaScript和CSS交互的方法隨著瀏覽器不斷的升級改進&#xff0c;CSS和Java之間的界限越來越模糊。本來它們是負責著完全不同的功能&#xff0c;但最終&#xff0c;它們都屬于網頁前端技術&#xff0c;它們需要相互密切的合作。我們的網頁中都有.js文件和…

(轉)Http協議經典詳解

轉自&#xff1a;http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP 是一個屬于應用層的面向對象的協議&#xff0c;由于其簡捷、快速的方式&#xff0c;適用于分布式超媒體信息系統。它于1990…

CentOS 同步時間

來源&#xff1a;http://www.ctusky.com/16/0497/ 用date查看系統當前時間&#xff0c;date -R 可查看時區。 CentOS 同步時間由ntp服務提供&#xff0c;可以用"yum install ntp -y"安裝. 裝完后運行命令 ntpdate cn.pool.ntp.org同步時間&#xff0c;然后hwclock -w…

[逆向][Writeup]ISG2015 flagfinder - .NET程序逆向

這個題目同樣是一道.NET的逆向題&#xff0c;.NET的逆向方法在之前的博文中已經介紹過&#xff0c;這里不做重復的說明。本題的源程序可以在我的github上下載&#xff1a;https://github.com/gsharpsh00ter/reverse 0x01 逆向 flagfinder為.NET編譯的PE文件&#xff0c;用dnSpy…