自动化测试框架调研

                                                                       关于calabash(testhome推荐框架之一)

Calabash是一个开源的移动端UI自动化测试框架,支持android和IOS。存在calabash-android和calabash-ios,主页https://github.com/calabash

 

架构图:

自动化测试框架调研_第1张图片

·     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 [email protected]

保存

所以我们的 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 "[email protected]" 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文件中的每一句自然语言,然后执行相应的逻辑操作,最终实现自动测试的目的。

 

你可能感兴趣的:(测试)