手把手教你ranorex_android自動化測試第一個樣本

來源:互聯網
上載者:User

標籤:des   android   http   io   os   ar   使用   java   sp   

要說android的自動化,那真是折騰死我了,從早期的monkeyrunner,到後來的robotium,再到最新的uiautomator,各有各的問題,總之性價比都不夠高,不太適合我的使用情境。於是不願意將研究結果投入實踐,一直等待。今年的適配問題越發突出,再不自動化,迴歸就該搞死人了。

於是最後研究比對instrumetation和uiautomator,終於確定了uiautomator方案,其實也是勉為其難,不過總算也是可以實現的。先準備好指令碼,批量修改了所有布局檔案,增加了contentDescription屬性,少許的動態產生的布局,可以在開發配合下代碼中增添,到時候提交到svn,以後再有新模組,都要求增加該屬性,提交給測試增加自動化測試模組就可以了。

不過需要通過sdk的tools目錄下的uiautomatorviewer.bat(管理員權限運行),查看介面元素,然後一一引用並進行操作,一是需要開發的大力配合,二是全都要一點點自己寫,三是需要編譯成jar包,push到手機上才能運行,也就是說只能通過日誌暴力調試。

峰迴路轉,本來是有項目找方法測試C#的WPF,在搞定了這事以後,發現ranorex還可以測試ios和android程式,大喜之。於是試了試,發現可以和最傳統的自動化測試載入器一樣進行對象識別,錄製和回放,真是大爽呀。(事後經過測試,發現不適合我,因為ranorex和robotium一樣,不可以跨應用,只能用回uiautomator解決方案)

整個步驟大致是:

1.      Instrument原始碼,編譯出一個可測版本(這個我回頭單獨寫一章,如何進行instrument源碼);

2.      建立一個android的測試專案;

3.      串連上手機,手機上會安裝一個service;

4.      部署之前編譯的可測試apk到手機上;

5.      錄製,回放。

這個東西很好的一點是使用的instrument,也就是說他不是從一個孤零零的apk外圍做的,而是直接從源碼裝hook,那要訪問到程式的任何東西都可以了。這樣就不擔心google有一天對外關閉大門,instrumentation可是他自己的東西。

先說建立項目吧:

001.png

002.png

Module和advanced裡面可以建立cmd控制台程式,也可以建立測試的模組庫,還可以建立表單程式,我就預設選擇了Testsuite

003.png

 

建立完以後就這個樣子了。

不管三七二十一,直接開始錄製:

004.png

005.png

這裡的apk是將源碼處理過的,其實deploy的時候勾選上instrument就可以了,不過我還是細細說說instrument的細節吧。參考:手把手教你ranorex_android源碼instrument

006.png

 

提示JRE1.6 not found:

填寫JRE的目錄:

C:\xxx\android\Java\jdk1.6.0_03\jre

隨口說一句:Jre就是java程式的運行環境;jdk是你做java開發的那套東西。

007.png

 

出錯:

008.png

 

1.      檢查apk是否混淆(obfuscated)

2.      必須使用api8以上版本,也就是sdk2.2以上版本;

3.      手機上是否安裝了一個沒有instrumented的版本

依次檢查發現都沒有問題,仔細一看,我倒,怎麼手機串連是個叉叉,於是刪除手機重新添加,於是就大功告成了。

所以別以為選擇上了裝置就可以,要隨時留心檢查一下裝置狀態是鉤鉤還是叉叉:

009.png

 

在deploy apk之前手機上會先啟動一個服務:

010.png

  

這個樣子就是安裝成功了:

011.png

點開服務介面中的那個被測程式,會看到一個toast提示:ranorex connected

在ranorex上開啟view spy

012.png

 

013.png

 

所有的對象都被識別出來了,要知道引用方式,只需找到對象然後點擊一下track,爽吧。

然後在

014.png

 

物件程式庫中(這個例子是TandroidRepository.cs)中可以看到引用到的介面元素,錄製的操作在Recording1.cs(這個檔案頭部分強調: // DO NOT MODIFY THIS FILE! It is regenerated by the designer. ),不過沒關係,還有Recording1.UserCode.cs,你的代碼可以寫在這裡,把錄製的代碼拷貝來改巴改巴就可以用了。

好了,這個ranorex工程和android的例子,我都一起打包,提供給大家下載試試吧。

手把手教你ranorex_android自動化測試第一個樣本

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.