中文Win7下成功安裝calabash-android步驟

Calabash-android是支持android的UI自動化測試框架,網上看見不少同窗說,安裝calabash比較費勁,特別是Windows下安裝,也沒有一個詳細的安裝手冊可供參考。正好,今天在Windows 7 上安裝calabash-android成功,忍不住要分享一下。html

我爲何要特別在標題中指出中文Win7?
由於我第一次在英文Win7下沒碰到任何問題,第二次在中文Win7下安裝碰到兩個大問題,但都被我求助百度解決了。
第一個問題:中文Win7下不認識手機設備,第一臺英文Win7下已經有人安裝了豌豆莢。
第二個問題:中文Win7下運行calabash-android,報GBK錯誤。java

calabash簡介:android

Calabash-android是支持android的UI自動化測試框架,PC端使用了cucumber框架,經過http和json與模擬器和真機上安裝的測試apk通訊,測試apk調用robotium的方法來進行UI自動化測試,支持webview操做。git

安裝calabash-android測試環境

安裝ruby1.9.3

calabash-android 的git網址: https://github.com/calabash/calabash-androidgithub

進入Installation: https://github.com/calabash/calabash-android/blob/master/documentation/installation.mdweb

由於要在Windows下安裝,因此按照指示進入: http://rubyinstaller.org/ 點擊紅色的Download圖標,進入: http://rubyinstaller.org/downloads/shell

下載ruby

Ruby2.0聽說不兼容舊版本,因此下載穩定版Ruby 1.9.3-p545.7z 解壓到D:\下apache

把ruby的執行目錄D:\ruby-1.9.3-p545-i386-mingw32\bin,加入到環境變量Pathjson

運行命令ruby -v,看到以下結果,表示ruby安裝成功windows

C:\Users\asus>ruby -v
ruby 1.9.3p545 (2014-02-24) [i386-mingw32]

安裝JDK 7u65

安裝JDK網上有不少教程,如下簡略介紹。

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

jdk-7u65-windows-x64.exe

安裝,並設置環境變量:

JAVA_HOME=C:\Program Files\Java\jdk1.7.0_65
Path添加內容:  ";%JAVA_HOME%\bin;%JAVA_HOME%\..\jre\bin"

啓動命令行工具cmd.exe,輸入:

C:\Users\asus>javac -version
javac 1.7.0_65

看到上述結果,說明jdk已正確安裝。

安裝Android SDK

http://developer.android.com/sdk/index.html 下載適用於Windows的SDK

google的網站,國內正常訪問不了了。

幸虧有箇中國好碼農整理了一個最新版Android SDK下載網站:
http://www.androiddevtools.cn/

我如今的是 ADT Bundle > 23.0.2 > Windows > 64位

由於個人Windows7已經安裝了64位的JDK,因此必須安裝64位的Android SDK(主要是64位的Eclipse)

在目錄D:\adt-bundle-windows-x86_64-20140702\eclipse下雙擊文件eclipse.exe
看到Android Develop Kit啓動頁:
adt啓動頁

設置workspace

設置環境變量: ANDROID_HOME=D:\adt-bundle-windows-x86_64-20140702\sdk

安裝Ant-1.9.4

網址:http://ant.apache.org/bindownload.cgi

下載 apache-ant-1.9.4-bin.zip

解壓到D:\下,

設置環境變量:

ANT_HOME=D:\apache-ant-1.9.4
Path添加內容:  ";%ANT_HOME%\bin"

啓動命令行工具cmd.exe,輸入:

C:\Users\asus>ant
Buildfile: build.xml does not exist!
Build failed

看到上述結果,說明ant已正確安裝。

gem命令安裝calabash-android

設置gem的倉庫爲taobao

C:\Users\asus>gem sources -l
*** CURRENT SOURCES ***

http://rubygems.org/

C:\Users\asus>gem sources --remove http://rubygems.org/
http://rubygems.org/ removed from sources

C:\Users\asus>gem sources -a http://ruby.taobao.org/
http://ruby.taobao.org/ added to sources

C:\Users\asus>gem sources -l
*** CURRENT SOURCES ***

http://ruby.taobao.org/

用gem命令安裝calabash-android

C:\Users\asus>gem install calabash-android
...
Installing RDoc documentation for escape-0.0.4...
Installing RDoc documentation for calabash-android-0.5.1...

C:\Users\asus>calabash-android version
0.5.1

測試android示例應用並解決GBK的問題

下載calabash-android-demoapp

https://github.com/calabash/calabash-android-demoapp
點擊 Download ZIP下載calabash-android-demoapp-master.zip,並解壓到D:\

ADT中導入並運行calabash-android-demoapp

導入demoapp

導入android code 選擇: D:\calabash-android-demoapp-master

導入完成

安裝手機驅動

把手機經過USB線接到電腦上,手機上確保打開「USB調試」 若是電腦屏幕右下角提示,設備驅動已正確安裝,請看下一步。

若是電腦屏幕右下角提示,設備驅動安裝失敗: 手機不認識

須要到網站 http://www.drivergenius.com/ 下載並安裝驅動精靈標準版,只要打開驅動精靈,就會引導你安裝手機驅動。
安裝驅動

驅動安裝成功後:
手機認識

接下去在ADT中運行Run > Run As > Android Application: 選擇目標手機

點擊"OK"按鈕,ADT就會上傳AndroidDemoProject.apk到手機,並啓動應用,看到「Hello World, AndroidDemoProject!」

apk截圖

使用calabash-android運行AndroidDemoProject.apk

打開cmd,進入D:\calabash-android-demoapp-master\calabash目錄,運行:

calabash-android run D:\calabash-android-demoapp-master\bin\AndroidDemoProject.apk

運行失敗

主要錯誤信息:helpers.rb:105:in `scan': invalid byte sequence in GBK

但是我在英文Windows上運行正確啊,必定是英文系統和中文系統的缺省編碼問題:
cmd > 屬性 > 選項 > 當前代碼頁:936 簡體中文 GBK gbk

照着 http://blog.sina.com.cn/s/blog_628e2ab30101ajcg.html 的解決方案,把cmd的中文編碼設置成UTF-8

cmd中輸入:chcp 65001

after 65001

cmd > 屬性 > 選項 > 當前代碼頁:65001 UTF-8

UTF-8

再次運行calabash-android:

運行正確

calabash-android打印彩色結果

上面的測試結果提醒:WARNING: You must use ANSICON 1.31 or higher

http://adoxa.altervista.org/ansicon/ansi166.zip 下載ansicon並啓動, 一樣要輸入 chcp 65001 再次運行calabash-android:

彩色測試結果

大功告成!

創建ansicon快捷連接

接下去好人作到底,在桌面上建一個cmd快捷連接,點擊後直接進入UTF-8編碼的ansicon控制檯

確保ansicon.exe放置在Path能找到的目錄下,好比,我放在ruby的bin目錄下:

ansicon位置

桌面上建一個cmd快捷連接:

ansicon圖標

ansicon快捷

注意,快捷連接的目標:

%windir%\system32\cmd.exe /k chcp 65001&&ansicon

打開該快捷連接後:

ansicon啓動後

calabash-android輸出html報告文件

calabash-android run ../bin/AndroidDemoProject.apk  --format html --out=report.html

在此輸入圖片描述

在此輸入圖片描述

關於GBK編碼問題的後續補充

  1. 我回去看了英文Win7的cmd.exe的編碼,也是GBK,可是沒有出現過「invalid byte sequence in GBK 」的問題
  2. 我在中文Win7上用chcp 65001設置成UTF-8,並測試成功後,再嘗試直接cmd.exe/ansicon.exe/powershell.exe保持GBK編碼的狀況下,直接運行calabash,再也沒有報過「invalid byte sequence in GBK 」的問題,難道第一次正確運行後,自動修改了什麼配置嗎?
  3. 在中文Win7上用chcp 65001設置成UTF-8後,若是calabash的腳本中包含中文,運行calabash時不能打印出中文內容。
  4. 在中文Win7的GBK編碼的命令行下,若是calabash的腳本中包含中文,運行calabash時能打印出中文內容。
  5. 在英文Win7的GBK編碼的命令行下,若是calabash的腳本中包含中文,運行calabash時能打印出中文內容。
  6. 在Ubuntu Linux的控制檯下,若是calabash的腳本中包含中文,運行calabash時能打印出中文內容。

算了,不去找緣由了,記住就是了。

因此,創建calabash測試環境的容易程度: Linux > 英文Windows > 中文Windows

相關文章
相關標籤/搜索