• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

应用Selenium和Ruby进行面向领域的Web测试[1]

发布: 2010-5-12 10:26 | 作者: 不详 | 来源: 领测测试网采编 | 查看: 233次 | 进入软件测试论坛讨论

领测软件测试网

  page = LoginPage.new $selenium

  page.login_as :name => 'xxx', :password => 'xxx'

  不过既然用了Ruby,总要用一些ruby sugar吧,我们定义一个on方法来表达页面操作的环境:

  def on page_type, &block

  page = page_type.new $selenium

  page.instance_eval &block if block_given?

  end

  之后我们就可以使用page object的类名常量和block描述在某个特定页面上操作了:

  on LoginPage do

  login_as :name => 'xxx', :password => 'xxx'

  end

  除了行为方法之外,我们还需要在page object上定义一些获取页面信息的方法,比如获取登录页面的欢迎词的方法:

  def welcome_message

  @driver.get_text 'xpath='

  end

  这样测试也可表达得更生动一些:

  on LoginPage do

  assert_equal 'Welcome!', welcome_message

  login_as :name => 'xxx', :password => 'xxx'

  end

  当你把所有的页面都用Page Object封装了之后,就有效地分离了测试和页面结构的耦合。在测试中,只需使用诸如login_as和add_product_to_cart这样的业务行为,而不必依靠像id、name等这些具体且易变的页面元素了。当这些页面元素发生变化时,只需修改相应的page object就可以了,而原有测试基本不需要太大或太多的改动。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

22/2<12

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网