Snake's Home

calabash使用

安装
gem sources -l
gem sources –remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l

gem install calabash-android

calabash-android version

mkdir calabash
cd calabash
calabash-android gen

.
└── features
├── my_first.feature
├── step_definitions
│ └── calabash_steps.rb
└── support
├── app_installation_hooks.rb
├── app_life_cycle_hooks.rb
├── env.rb
└── hooks.rb

calabash-android run /Users/anderson/autotest/android_engage_automation/features/engage-englishtown-uat-debug-1.0.0-201602270059.apk
calabash-android console /Users/anderson/autotest/android_engage_automation/features/engage-englishtown-uat-debug-1.0.0-201602270059.apk
no test server

签名的包
calabash-android resign /Users/anderson/autotest/android_engage_automation/features/engage-englishtown-uat-debug-1.0.0-201602270059.apk

出错:
Could not sign app

calabash-android setup
keystore

Syntax

gherkin

inroduction

api

steps

1、配置环境变量
配置环境变量最关键点
export ANDROID_HOME=/Users//adt-bundle-mac-x86_64-20140702/sdk
export PATH=$PATH:$ANDROID_HOME/tools
2、生成签名,并且知道自己签名的password和alias
生成签名可以使用一下Shell来生成。
keytool -genkey -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname “CN=Android Debug,O=Android,C=US”
生成之后签名的位置在
~/.android/debug.keystore
password是:
android
alias是:
androiddebugkey
以上这些关键元素在配置Calabash的时候都很重要。
3、配置Calabash
Calabash的配置一般情况加只需要配置签名相关信息就好。运行命令行:
calabash-android setup 520c4f587081a6b530a03c3e86c8bfc4.apk -v
然后按照提示分别输入,签名证书的位置,密码和alias。成功之后会看到这样一句提示:
Saved your settings to .calabash_settings. You can edit the settings manually or run this setup script again
当然,你也可以手动的配置文件完成设置。配置文件的地址为:
~/.calabash_settings
4、Calabash Console
Calabash Console对于会写代码的人来说,一种非常方便调试的工具。使用命令:
calabash-android console 520c4f587081a6b530a03c3e86c8bfc4.apk
当然有时就会报错。报错有两种,一种是需要按照本文之前的内容进行Calabash配置。还有一种情况是需要对被测试应用进行重新签名。重新签名的命令:
calabash-android resign 520c4f587081a6b530a03c3e86c8bfc4.apk -v
成功进入Calabash Console之后,还需要运行两个命令行,才能开始传统意义上的自动化测试的调试:
reinstall_apps
start_test_server_in_background
经过以上两条命令,被测试程序会启动,这是可以通过一些Calabash的命令进行自动化测试了。
当然,也会有一些异常情况,例如,如果拿了网易新闻的Android客户端做这个实验,就会发现不会成功。因为网易新闻做了签名验证,当程序的签名被替换掉以后,程序无法正常启动。

calabash-android run d:\calabash\Yiban_Circle0401sao.apk –tags @login –format html –out=report.html