WEB UI自动化之旅(四)

上一篇 / 下一篇  2009-12-21 19:01:10 / 个人分类:自动化测试

接着WEB自动化之旅(二),对RUBY和WATIR框架进行进一步的分析。主要针对WATIR源码进行简单的分析。

 

一般的WATIR自动化测试都是以对浏览器的初始化开始的:

#Jaycer.D.Woo#

 

#open the IE browser

ie = Watir::IE.new

# print some comments

ie.goto test_site

这是简单的初始化IE并连接到URL(test_site)

这里用的是IEController的navigate属性转到相应的URL(与.NET中的nevigate同质):

 # Navigate to the specified URL.

 # * url - string - the URL to navigate to

def goto( url )

    @ie.navigate(url)

    wait()

    sleep 0.2

    return @down_load_time

end

 

一般对PAGE中的object操作:

Text fields

ie.text_field(:name, "field_name").set("Watir World")

对应的源码处理:

def text_field(how , what=nil)

   return TextField.new(self, how, what)

end

 

CLASS TextField中有

def initialize( ieController, how , what )

      @ieController = ieController

      @how = how

      @what = what

                if(how != :from_object) then

               @o = @ieController.getObject(@how, @what, supported_types)

     else

               @o = what

     end

      super( @o )

end

TextField的初始化方法还有supported_typessizemaxLengthassert_not_readonlyverify_containsdragContentsTo,append,setclear等方法.

这里有getObject方法在WATIR中使用普遍。主要是对该PAGE中的各种TAG进行精确定位。然后使用该Object的属性进行特殊事件处理,下面是text_fieldset方法主要是事件定位,发送键盘信息等处理。

def set( setThis )

   assert_exists

   assert_enabled

   assert_not_readonly          

   highLight(:set)

   @o.scrollIntoView

   @o.focus

   @o.select()

   @o.fireEvent("onSelect")

   @o.value = ""

   @o.fireEvent("onKeyPress")

   doKeyPress( setThis )

   highLight(:clear)

   @o.fireEvent("onChange")

   @o.fireEvent("onBlur")

end

 

在源码中也用到了AutoIT与IE.document(在.NET自动化中非常常用,用来对HTML PAGE的document化转化,方便对object的操作)。AutoIT主要是对windows窗口属性的设置和操作,比如发送键盘信息:

def send_keys (key_string)

   autoit = WIN32OLE.new 'AutoItX3.Control'

   autoit.WinActivate title

   autoit.Send key_string

end

 

设置窗口状态:

def set_window_state (state)

   autoit = WIN32OLE.new('AutoItX3.Control')

   autoit.WinSetState title, '', autoit.send(state)                   

end

 

开源的Watir对于web ui自动化是一个很好的福音,对于几个自动化工具的横向对比,都大体思路大同小异 ,都是对HTML Page的解析,使用object或者文档化后进行正则表达式对对象的准确定位,再使用IEController进行操作,或者使用AutoIT对windows窗口进行操作。希望这简短的分析对大家有帮助。下周开始web service API的测试周.


TAG: Ruby ruby Watir watir 自动化测试框架 web自动化

FISHY'S TRIBE 引用 删除 fishy   /   2010-01-18 14:43:15
您好,我是51Testing软件测试网的编辑,您的博文《WEB UI自动化之旅》连载一至四被推荐至51Testing软件测试网首页发表:http://www.51testing.com/html/02/n-204902.html
感谢您关注并支持51Testing博客,期待您更多的优秀原创博文。
 

评分:0

我来说两句

日历

« 2024-04-20  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 147587
  • 日志数: 22
  • 建立时间: 2009-10-14
  • 更新时间: 2010-07-27

RSS订阅

Open Toolbar