关于calabash(testhome推荐框架之一)
Calabash是一个开源的移动端UI自动化测试框架,支持android和IOS。存在calabash-android和calabash-ios,主页https://github.com/calabash
架构图:
· Features —— 这里的 feature 就是cucumber 的 feature,用来描述 user stories
。
· 测试步骤定义 —— Calabash Android 事先已经定义了一些通用的 step。你可以根据自己的需求,定义更加复杂的步骤。
· 被测试apk —— 测试之前,你不必对你的应用修改。(这里其实是有问题,后面我们会说到。)
· 测试apk Calabash HTTP ServerRobotium—— 这是一个应用,在运行测试的时候会被安装到设备中去。 这个应用是基于 AndroidSDK 里的 ActivityInstrumentationTestCase2。它是 Calabash Android 框架的一部分。Robotium 就集成在这个应用里。
写测试用例
像一般的 cucumber 测试一样,我们只要在 feature 文件里添加测试用例即可。比如我们测试 ContactManager.apk (android sdk sample 里面的, Appium 也用这个 apk)。
我们想实现:
打开这个应用
点击 Add Contact 按钮
添加 Contact Name 为hello
添加 Contact Phone 为 ********
添加 Contact Email 为 zhangshiqiang@camera360.com
保存
所以我们的 feature 应该是这样的:
· Feature: Login feature Scenario: As a valid user I can log into my app When I press "Add Contact"
· Then I see "Target Account"
· Then I enter "hello" into input field number 1 Then I enter "********" into input field number 2 Then I enter "zhangshiqiang@camera360.com" into input field number 3 When I press "Save"
· Then I wait for 1 second Then I toggle checkbox number 1 Then I see "hello"
总结:
本次在windows上针对calabash-android的调研,尝试了针对webview的支持,能够实现基本的webview操作,当前还存在的问题是
1、 features文件不支持中文,需要自己去扩展
2、 Drag操作直接通过robotium扩展过来在calabash上不能使用
3、 在windows上运行的时候好多次出现了连接断开的问题等不稳定情况
所以现在在windows下直接使用calabash-android到生成环境有一定的风险
关于Frank(只是作为ios工具,略作了解,部分可借鉴)
Frank是ios开发环境下一款实现自动测试的工具。Xcode环境下开发完成后,通过Frank实现结构化的测试用例,其底层语言为Ruby。作为一款开源的iOS测试工具,在国外已经有广泛的应用。但是国内相关资料却比较少。其最大的优点是允许我们用熟悉的自然语言实现实际的操作逻辑。 一般而言,测试文件由一个.feature文件和一个.rb文件组成。.feature文件包含的是测试操作的自然语言描述部分,内部可以包含多个测试用例,以标签(@tagname)的形式唯一标识,每个用例的首行必须有Scenario: some description;.rb文件则是ruby实现逻辑,通过正则表达式匹配.feature文件中的每一句自然语言,然后执行相应的逻辑操作,最终实现自动测试的目的。