• 中文Win7下成功安装calabash-android步骤


    Calabash-android是支持android的UI自动化测试框架,网上看见很多同学说,安装calabash比较费劲,特别是Windows下安装,也没有一个详细的安装手册可供参考。正好,今天在Windows 7 上安装calabash-android成功,忍不住要分享一下。

    我为什么要特别在标题中指出中文Win7?
    因为我第一次在英文Win7下没碰到任何问题,第二次在中文Win7下安装碰到两个大问题,但都被我求助百度解决了。
    第一个问题:中文Win7下不认识手机设备,第一台英文Win7下已经有人安装了豌豆荚。
    第二个问题:中文Win7下运行calabash-android,报GBK错误。

    calabash简介:

    Calabash-android是支持android的UI自动化测试框架,PC端使用了cucumber框架,通过http和json与模拟器和真机上安装的测试apk通信,测试apk调用robotium的方法来进行UI自动化测试,支持webview操作。

    安装ruby1.9.3

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

    进入Installation: https://github.com/calabash/calabash-android/blob/master/documentation/installation.md

    因为要在Windows下安装,所以按照指示进入: http://rubyinstaller.org/
    点击红色的Download图标,进入: http://rubyinstaller.org/downloads/

    下载ruby

    Ruby2.0据说不兼容旧版本,所以下载稳定版Ruby 1.9.3-p545.7z 解压到D:下

    把ruby的执行目录D: uby-1.9.3-p545-i386-mingw32in,加入到环境变量Path

    运行命令ruby -v,看到如下结果,表示ruby安装成功

    C:Usersasus>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 FilesJavajdk1.7.0_65
    Path添加内容:  ";%JAVA_HOME%in;%JAVA_HOME%..jrein"
    

    启动命令行工具cmd.exe,输入:

    C:Usersasus>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-20140702eclipse下双击文件eclipse.exe
    看到Android Develop Kit启动页:
    adt启动页

    设置workspace

    设置环境变量:
    ANDROID_HOME=D:adt-bundle-windows-x86_64-20140702sdk

    安装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%in"
    

    启动命令行工具cmd.exe,输入:

    C:Usersasus>ant
    Buildfile: build.xml does not exist!
    Build failed
    

    看到上述结果,说明ant已正确安装。

    gem命令安装calabash-android

    设置gem的仓库为taobao

    C:Usersasus>gem sources -l
    *** CURRENT SOURCES ***
    
    http://rubygems.org/
    
    C:Usersasus>gem sources --remove http://rubygems.org/
    source https://rubygems.org/ not present in cache
    
    C:Usersasus>gem sources -a http://ruby.taobao.org/
    http://ruby.taobao.org/ added to sources
    
    C:Usersasus>gem sources -l
    *** CURRENT SOURCES ***
    
    http://ruby.taobao.org/
    

    用gem命令安装calabash-android

    C:Usersasus>gem install calabash-android
    ...
    Installing RDoc documentation for escape-0.0.4...
    Installing RDoc documentation for calabash-android-0.5.1...
    
    C:Usersasus>calabash-android version
    0.5.1
    

    下载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-mastercalabash目录,运行:

    calabash-android run D:calabash-android-demoapp-masterinAndroidDemoProject.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

    https://github.com/adoxa/ansicon/ 下载ansicon并启动,
    同样要输入 chcp 65001
    再次运行calabash-android:

    彩色测试结果

    大功告成!

    建立ansicon快捷链接

    接下去好人做到底,在桌面上建一个cmd快捷链接,点击后直接进入UTF-8编码的ansicon控制台

    确保ansicon.exe放置在Path能找到的目录下,比如,我放在ruby的bin目录下:

    ansicon位置

    桌面上建一个cmd快捷链接:

    ansicon图标

    ansicon快捷

    注意,快捷链接的目标:

    %windir%system32cmd.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

  • 相关阅读:
    linux开发板出现Read-only file system的解决办法
    nginx源码分析之网络初始化
    nginx源码分析之hash的实现
    hdu4833 Best Financing(DP)
    PHP读取office word文档内容及图片
    nginx+uwsgi+bottle python服务器部署
    创建、托管和浏览文档
    python非官方扩展库
    simplexml_load_string 转换xml为数组
    PHPExcel 导出数据(xls或xlsx或csv)- 助手类(函数)
  • 原文地址:https://www.cnblogs.com/fitnessefan/p/3928201.html
Copyright © 2020-2023  润新知