• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Firefox 測試自動化

    發表于:2008-07-11來源:作者:點擊數: 標簽:自動化FireFoxFirefox
    Firefox的市場占有量的上升使得很多網站都針對Firefox有了很好的支持,于是firefox瀏覽器上的測試也越來越重要,隨著Test case的增多,自動化也就自然而然成為了一個課題。我來向大家介紹幾種可行的方法。 我們知道有很多工具可以做網頁的 測試自動化 ,比如
        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里面,這樣就可以完全用程序控制自動化了。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>