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

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

Firefox 测试自动化

发布: 2008-7-11 13:41 | 作者: 不详 | 来源: 网络转载 | 查看: 444次 | 进入软件测试论坛讨论

领测软件测试网     Firefox的市场占有量的上升使得很多网站都针对Firefox有了很好的支持,于是firefox浏览器上的测试也越来越重要,随着Test case的增多,自动化也就自然而然成为了一个课题。我来向大家介绍几种可行的方法。

        我们知道有很多工具可以做网页的测试自动化,比如MI的Quick Test Professional, IBM的rational 产品等。但是他们似乎都不能支持firefox的网页的测试自动化。当然有些开源的工具是可以做到跨浏览器的测试自动化的。

        下面我就介绍几种可以做Firefox自动化测试的方法。

        第一种,和很多开源工具的核心做法是类似的,也就是把Web Page分成两个Frame。一个frame待测web page,另一个frame装载测试控制的web Page。

        举个简单的例子,

主web Page:main.htm

<frameset cols="120,*">
<frame src="controlframe.htm" name="controlframe">
<frame src="contentframe.htm" name="contentframe">
</frameset>

        测试控制的web Page: controlframe.htm (这里也只是有一个控制的按钮)

<html>
 <head>
 </head>
 <body>
  <INPUT TYPE="BUTTON" name="Execute" id="Execute" value="Execute" onClick="parent.contentframe.document.getElementById('alert').click()">
 </body>
</html>

        待测web page: contentframe.htm (这里只是一个简单的含有一个按钮的页面)

<html>
 <head>
 </head>
 <body>
  <input type="BUTTON" name="alert" id="alert" value="alert" onclick="alert('this is triggered')">
 </body>
</html>

        核心思想就是左边的控制frame中的控制按钮是可以用javascript访问到待测web page中的任何的控件的。

        基于这个,其它浏览器上的测试自动化都可以用这个方法实现。但是这个方法有一个缺点,还是一个很大的缺点,就是如果待测的页面是和控制的页面在不同的domain上,比如刚才的例子里面右边的page是新浪的page,而左边控制的web page是在本地,那么是不能控制右边的页面里面的控件的。这个是Javascript的内置安全特性,防止Cross site Scripting。

        有开源工具是基于这个理论的,比如www.openqa.org/selenium

ok,继续第二种方法。

        上面说道用Frame的方式来做Firefox的测试自动化。但是有跨站的限制,这次我来介绍第二种方法,那就是利用Firefox的toolbar的方式。Toolbar工作在Firefox的进程中,所以它可以访问webpage的任何元素利用javascript。
        创建toolbar的方式网上有很多,就不赘述了,主要改写的是两个文件,一个是XUL文件,是用来定义toolbar的上面显示的元素的。一个是javascript文件是用来定义toolbar上元素的行为的。
XUL 文件:(上面有一个Textbox,一个Button)
<toolbox id="navigator-toolbox">
              <toolbar id="test-toolbar">
                       <toolbaritem id="item1">
                                    <label value="Command:" control="CommandLabel"/>
                        </toolbaritem>
                        <toolbaritem id="item2">
                                  <textbox id="CommandTxt" minwidth="300" width="500" />
                              </toolbaritem>
                        <toolbaritem id="item2">
                         <button id="ExecuteBtn" label="Execute"  oncommand="hello();"/>
                        </toolbaritem>
               </toolbar>
</toolbox>
JS文件:
function hello()
{
               var searchTermsBox =document.getElementById("CommandTxt");
               var txt=searchTermsBox.value;
               eval(txt);  
}
 
        可以看到你可以在toolbar上的Textbox中input操纵web Page的javascript,然后点击toolbar上button来执行。Eval是可以动态的执行javascript的。
        这样比如待测的web page上有一个Button的id是Btn1,那么在toolbar上的Textbox中输入
window.content.document.getElementById("Btn1").click(); 
        然后点击toolbar上button来执行,就可以是待测的Web page上的这个Button被点击。
        可以看到,这就是核心的思路。挨下来要做的是,用Windows的api的方式,自动将javascript发送到这个toolbar里面,这样就可以完全用程序控制自动化了。

延伸阅读

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

TAG: FireFox 自动化 Firefox


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

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