Frank自动化测试框架

发表于:2014-04-09来源:博客园作者:good fortune点击数: 标签:自动化测试
记得是夏天的时候去参加一个infoQ的论坛,里面有一个朋友强烈推荐Frank测试框架。所以趁着年底赶紧学一下。 这中间需要ruby的基础。

  有一个朋友强烈推荐Frank测试框架。所以趁着年底赶紧学一下。

  这中间需要ruby的基础。

  安装过程:

  1.安装frank-cucumber

  命令: sudo gem install frank-cucumber (我一般习惯加-V,查看安装过程)

  2.在你的项目下设置frank以及执行下面的命令

  命令: frank setup

  3.编译frank

  命令:frank build

  4.启动模拟器

  命令:frank launch

  下来就改写剧本了。。对,就是剧本,frank测试是由一个个测试场景和定义的大纲(就是步骤)来执行的,好吧,咱们就开始导演这场戏吧

  1.编写测试场景

  在Frank文件下feature的文件下,建立feature文件,

  这个测试场景,其实就是2元素组成的,一个是前提,一个是情节,一个电影不就是先有前提,再由一个个的情节组成

  1)background:

  我理解的是前提条件,比如你要测试,你首先起码得launch app,就像拍电影要先开机吧

  Background:

  Given I launch the app

  就是你看到的Given这个是关键字

  2)Scenario:

  情节这个就需要好好设计,希望不要导出来狗血剧

  Scenario:

  When I click button "点击按钮"

  这就是一个情节,然后这只是诱因,那就后果,

  Then username is null

  比如username为空呢。。。所以,你必须处理,如果放任他,那你的戏就烂尾了。

  对了执行场景文件的命令:

  cucumber features/name.feature

  在执行时 最好当前目录在Frank文件下,这样不会出其他莫名其妙的问题,浪费了我好多时间

  2.步骤

  情节和步骤相似但不一样,情节是大概的,而步骤就不一样了。步骤是要细化到每一个动作的

  你需要在 feature文件夹的step_definitions的下面创建ruby文件,名称最好和场景文件对应,好吧,你不对应也行,但是为了以后,你说呢。

  下面呢针对上面的场景写的步骤

  When /^username is null$/ do

  #给文本框赋值

  frankly_map("textField first","setText:","18635180153")

  #得到文本框值

  puts frankly_map("textField first","text");

  end

  Then /^I click button "([^\"]*)"$/ do |mark|

  quote = get_selector_quote(mark)

  #得到绑定按钮的对象

  selector = "view marked:#{quote}#{mark}#{quote} first"

  #点击按钮

  touch(selector)

  end

  3.需要注意

  其实你最好把symbiote也安装了。这是一个用浏览器查看模拟器app当前视图的view构成

  这个可以提高编写步骤的效率(这个效果慢慢来,我也是在学习中)

  下次的Frank的blog主要是讲其中的语法,以及特点

  这是我今天学习Frank的成果,请各位指正。

原文转自:http://www.cnblogs.com/1q2w3e/p/3473624.html