<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 28,  comments - 56,  trackbacks - 0
    參考http://blog.chinaunix.net/u/29273/showart_280459.html
    本篇文章部分轉載自 鳳凰印記 的 BLOG,地址如上,略做修改,應該是Selenium RC官方參考手冊的中文翻譯版本:
    原版(英文):http://selenium-rc.openqa.org/tutorial.html


    Selenium Remote Control:指南

    下載Selenium RC 包:http://selenium-rc.openqa.org/
    是一個Zip包,里面提供了支持各種語言的驅動。核心的是 selenium-server.jar 這個jar包,在下文介紹交互模式(Interactive Mode)時用到的就是它。

    本指南將會告訴你如何從命令行啟動Selenium server,如何在交互式模式下使用Server。這里假設你已經熟悉在命令行執行程序。最后,我們將說明如何寫簡單的test來實現我們已在交互式模式下實現的功能。

    一些準備:JRE1.5+ 和 瀏覽器要求

    Selenium Server 是用Java語言編寫的,需要在JRE 1.5.0或者更高的版本下運行。也許你已經安裝JRE,在命令行中執行:
    java -version

    你可以看到如下的關于你安裝的java的版本信息:

    java version "1.5.0_07"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-b03)
    Java HotSpot(TM) Client VM (build 1.5.0_07-b03, mixed mode)
     

    相反,如果你看到的是錯誤信息,你需要安裝JRE,或者是將它填加到你的PATH環境變量中去。

    同時你需要確保你的安裝的瀏覽器也支持這些,例如:

    Windows
    如果你用的是Windows XP 或者是Windows2003,你可以使用IE 瀏覽器,或者安裝Mozilla Firefox 或者Opera瀏覽器。
    如果你是用的是Windows2000,如果想使用IE瀏覽器,你就需要安裝
    Unix/Linux
    在這個指南中,要求安裝Firefox,并且將它的路徑加到你的PATH環境變量中。注意,在Unix/Linux中我們激活"firefox-bin"目錄,從而確保在這個路徑下執行;同時不要忘記將Firefox libraries 加到你的 LD_LIBRARY_PATH中。如果需要,我們可以通過shell腳本激活firefox(例如:"firefox" or "run-mozilla.sh")那樣的話知道你關閉這個服務器的時候才可以結束Firefox瀏覽器。

    Mac OS X
    對于 Mac OS X,只要在你的/Applications目錄下,安裝Firefox.app就夠了。注意:為了精確控制你的瀏覽器,我們需要激活Applications/Firefox.app/Contents/MacOS 目錄下的Firefox內嵌的執行程序(firefox-bin);如果你的瀏覽器的安裝位置不在那,你需要將你當前的內嵌位置加到你的PATH路徑下,作為你的DYLD_LIBRARY_PATH環境變量。

    交互模式:Interactive Mode


    Selenium服務器的“交互模式”是一種不需要任何代碼的原型測試,因此有必要對初學者介紹Selenium Remote Control。在交互模式下,你可以在Selenium 服務器窗口中輸入一行行的命令,在工作窗口的某個位置中立刻會執行你命令的結果。通常你可以選用你喜歡的語言編寫你的測試代碼,整個過程都是完全自動化的。

    確保Java安裝正常,通過命令行的方式用如下的命令來啟動你的Selenium Server:

    java -jar selenium-server.jar -interactive

    這個命令將啟動Selenium服務器,并允許你在命令窗口輸入命令。在一些登錄信息后邊,你應該看到如下的信息:

    Entering interactive mode... type Selenium commands here (e.g: cmd=open&1=http://www.yahoo.com)

    讓我們開始學習Selenium 服務器,第一個命令是打開瀏覽器,在Windows操作系統下,在命令窗口下試試輸入下面的命令:

    cmd=getNewBrowserSession&1=*iexplore&2=http://www.google.com

    如果你想使用FireFox瀏覽器,你可以試如下的命令:

    cmd=getNewBrowserSession&1=*firefox&2=http://www.google.com

    這句話的意思是:執行getNewBrowserSession命令,選擇一個瀏覽器(*iexplore for Internet Explorer, *firefox for Firefox, or *opera for Opera)打開www.google.com網站。在窗口中輸入這條命令,會自動的將HTTP網頁的請求發送給Selenium服務器,你可以看到關于你的請求的如下描述:

    --->Requesting http://localhost:4444/selenium-server/driver?cmd=getNewBrowserSession&1=*firefox&2=http://www.google.com

    如果一切正常,你將會發現在你選擇的瀏覽器中打開了一個新的窗口,回到Selenium服務器窗口中,你會發現如下的信息:

    Got result: OK,260113 on session 260113

    (如果沒有以上信息,請參考
    故障指南

    消息的第一部分“Got result: OK”表示你的請求成功,第二部分,是Session 的ID,每次執行"getNewBrowserSession" 命令時,Session的ID都是不同的。


    在我的機器上的CMD窗口,藍色是我輸入的,其他是LOG
    D:\sele\selenium-remote-control-0.9.2-dist\selenium-remote-control-0.9.2\seleniu
    m-server-0.9.2>java -jar selenium-server.jar -interactive
    15:30:51.132 INFO - Java: Sun Microsystems Inc. 1.5.0_04-b05
    15:30:51.132 INFO - OS: Windows XP 5.1 x86
    15:30:51.132 INFO - v0.9.2 [2006], with Core v0.8.3 [1879]
    15:30:51.382 INFO - Version Jetty/5.1.x
    15:30:51.397 INFO - Started HttpContext[/,/]
    15:30:51.397 INFO - Started HttpContext[/selenium-server,/selenium-server]
    15:30:51.397 INFO - Started HttpContext[/selenium-server/driver,/selenium-server
    /driver]
    15:30:51.475 INFO - Started SocketListener on 0.0.0.0:4444
    15:30:51.475 INFO - Started org.mortbay.jetty.Server@1cb25f1
    Entering interactive mode... type Selenium commands here (e.g: cmd=open&1=http:/
    /www.yahoo.com)
    cmd=getNewBrowserSession&1=*iexplore&2=http://www.google.com
    15:31:23.341 INFO - ---> Requesting http://localhost:4444/selenium-server/driver
    ?cmd=getNewBrowserSession&1=*iexplore&2=http://www.google.com
    15:31:23.528 INFO - Checking Resource aliases
    15:31:23.528 INFO - Command request: getNewBrowserSession[*iexplore, http://www.
    google.com] on session null
    15:31:24.153 INFO - Launching session 683528
    15:31:24.262 INFO - Backing up registry settings...
    15:31:25.528 INFO - Modifying registry settings...
    15:31:26.012 INFO - Launching Internet Explorer...
    15:31:50.786 INFO - Allocated session 683528 for http://www.google.com
    15:31:50.817 INFO - Got result: OK,683528 on session 683528
    cmd=open&1=http://www.google.com/&sessionId=683528
    15:41:46.837 INFO - ---> Requesting http://localhost:4444/selenium-server/driver
    ?cmd=open&1=http://www.google.com/&sessionId=683528
    15:41:46.853 INFO - Command request: open[http://www.google.com/, ] on session 6
    83528
    15:41:47.354 INFO - Got result: OK on session 683528
    cmd=type&1=q&2=qqqqqq&sessionId=683528
    15:42:33.186 INFO - ---> Requesting http://localhost:4444/selenium-server/driver
    ?cmd=type&1=q&2=qqqqqq&sessionId=683528
    15:42:33.202 INFO - Command request: type[q, qqqqqq] on session 683528
    15:42:33.233 INFO - Got result: OK on session 683528


    這是IE相應的快照:
     


    讓我們試一下更多的命令:我們將打開Google的網站,在命令窗口中輸入下面的命令,并且將ID換成你運行"getNewBrowserSession"時獲得的ID。

    cmd=open&1=http://www.google.com/webhp&sessionId=260113

    當執行完這個命令后,在你的瀏覽器窗口的下方將會打開google.com頁面。(The /webhp 確保我們在www.google.com網站;否則,我們需要通過某個國家的Google服務器間接的訪問Google, 例如., www.google.fr.)

    現在Google已經被打開了,我們可以試著在Search Box中輸入一些字段,在Selenium 服務器窗口命令中輸入:

    cmd=type&1=q&2=hello world&sessionId=260113

    同樣,不要忘記將你的Session ID換成你獲得的ID,如果一切按計劃執行,你將會在google的search對話框中看到“hello world”,現在讓我們開始查詢:

    cmd=click&1=btnG&sessionId=260113

    現在在瀏覽器中你可以看到查詢的結果,你可以通過許多Selenium命令在瀏覽器中自動執行手工任務,對于一些特殊的命令,你可以在 Openqa的網站上查詢Selenium Core部分,或者查看我們客戶端驅動的相關資料(Java, .NET, Perl, PHP, Python or Ruby).

    接下來我們想做的事情可能是在頁面上讀出一些我們想要的信息, 例如,讓我們在當前頁面上找到一些HTML的標題,如下:

    cmd=getTitle&sessionId=260113

    瀏覽器將會返回我們載入的HTML頁面的標題:

    Got result: OK,hello world - Google Search on session 260113

    現在這些交互模式已經夠了;讓我們開始寫一些代碼!但是在我們開始前,讓我們關掉我們啟動的瀏覽器。輸入如下的命令:

    cmd=testComplete&sessionId=260113

    輸入這些命令后,你的瀏覽器窗口將會自動關閉,想要關掉Selenium服務器,輸入“quit”或者只要按下“Ctrl+C”。

    The Same Origin Policy 同源策略


    當你執行你的測試的時候,你也許會注意到你的瀏覽器種的URL是:

    http://www.google.com/selenium-server/RemoteRunner.html?sessionId=260113

    這個不是一個普通的URL,因為在www.google.com上并沒有這個URL,如果你手工在你的瀏覽器中輸入地址,將會出現404錯誤頁面,怎么回事那?

    JavaSript自動測試的時候,Selenium服務器參與解決了一個難題,你自己寫的JavaScript腳本不會在Google.com上執行,這是由于Same Origin Policy,同源策略使得JavaScript腳本允許只能閱讀/修改來自相同源頭的HTML。

    這給Selenium自動測試帶來了很大問題,如果你寫了一個設置測試google.com的.js代碼,同源策略拒絕你的.js文件在google.com上運行;相反,你應該在google.com上安裝那個.js文件來使它運行,我們沒有權利這樣做,即使有,這樣做也會引起爭議。

    Selenium Server便應運而生,在你用"getNewBrowserSession"自動開啟的瀏覽器中,.Selenium Server如同是客戶端配置的代理(client-configured proxy)。尤其,他將你的瀏覽器配置成和瀏覽器相關的使用Selenium Server代理。

    代理通常會捕捉你在HTML頁面上的行為,如果頁面沒有找到,將會報告該頁不存在。但是Selenium Server是個很不同的代理,當瀏覽器通過包含"/selenium-server/"的代理在URL中請求某個頁面時,Selenium Server不會單純的在遠程服務器上取回該頁,而是自動的返回它自己的頁面。在某種意義上,這使得瀏覽器認為遠程服務器上包含這個頁面,這樣我們就可以在google.com上注入任意的JavaScript代碼而不用以任何方式修改google.com。

    通過程序運行


    以上介紹了一點原理和基本的使用方法。很顯然,打開一個cmd窗口,一行一行的輸入命令,是令人崩潰的事情,并且命令行看起來很不可愛。Selenimu RC的魅力就在于,可以通過程序來實現這樣的測試:來看一個Java的例子:
    import com.thoughtworks.selenium.*;
    import junit.framework.*;

    public class GoogleTest extends TestCase {
        
    private Selenium browser;
        
    public void setUp() {
            browser 
    = new DefaultSelenium("localhost",
                
    4444"*firefox""http://www.google.com");
            browser.start();
        }
        
        
    public void testGoogle() {
            browser.open(
    "http://www.google.com/webhp?hl=en");
            browser.type(
    "q""hello world");
            browser.click(
    "btnG");
            browser.waitForPageToLoad(
    "5000");
            assertEquals(
    "hello world - Google Search", browser.getTitle());
        }
        
        
    public void tearDown() {
            browser.stop();
        }
    }

    SetUp( )函數,就是交互模式中的 cmd=getNewBrowserSession&1=*firefox&2=http://www.google.com 命令。
    testGoogle( ) 函數,更不需要程序員親自動手編寫,Firefox 的 Selenium IDE 插件,可以自動將Selenium html腳本,轉換成各種語言(Options->Format)。


    就是這么簡單,規劃測試用例,錄test cases,修修改改,貼到代碼里面,還需要程序員做什么呢?
    posted on 2008-03-06 15:05 Becky 閱讀(11074) 評論(12)  編輯  收藏 所屬分類: 測試

    FeedBack:
    # re: Selenium-RC使用介紹
    2008-06-17 17:19 | sandy
    通過程序運行:
    我將您的代碼生成一個HTML文件,使用IDE讀取該文件,IDE提示 :error load test case ,no command found ,請問為什么??
    疑問:這是一個JAVA 文件,可以把它保存成HTML 格式的嗎?IDE 怎樣解析的阿  回復  更多評論
      
    # re: Selenium-RC使用介紹
    2008-07-13 09:45 | zhengxiaoyan
    為什么我執行這句
    cmd=getNewBrowserSession&1=*iexplore&2=http://www.google.com
    怎么顯示的不正確呢? 可以打開瀏覽器但是:
    沒有ID 出先啊
    能不能幫我看下啊
    cmd=getNewBrowserSession&1=*iexplore&2=http://www.google.com
    09:39:35.343 INFO - ---> Requesting http://localhost:4444/selenium-server/driver
    ?cmd=getNewBrowserSession&1=*iexplore&2=http://www.google.com
    09:39:35.375 INFO - Command request: getNewBrowserSession[*iexplore, http://www.
    google.com] on session null
    09:39:35.375 INFO - creating new remote session
    09:39:35.406 INFO - Allocated session 39fb041ab76c48cab156f120f7f0685e for http:
    //www.google.com, launching...
    09:39:35.406 INFO - Modifying registry settings...
    09:39:35.828 INFO - Launching Internet Explorer...


    如果執行這句cmd=getNewBrowserSession&1=*firefox&2=http://www.google.com將彈不出瀏覽器

      回復  更多評論
      
    # re: Selenium-RC使用介紹[未登錄]
    2008-07-13 17:13 | Becky
    @sandy

    Selenium IDE 只認html代碼格式的腳本。同時,它可以把已經錄制好的html腳本,轉化為其他各種語言的代碼,使用這個功能,程序員可以把IDE生成的java或其他格式的代碼貼到自己工程的測試代碼中去,略做改動便可以使用,而不用自己親自一行一行的寫單元測試。  回復  更多評論
      
    # re: Selenium-RC使用介紹[未登錄]
    2008-07-13 18:14 | Becky
    @zhengxiaoyan

    對于Firefox的問題,FF3有問題,很多人匯報了,http://clearspace.openqa.org/message/45948
    看起來最新出的selenium包已經可以了。

    對于Session的問題,39fb041ab76c48cab156f120f7f0685e 也照樣用的。  回復  更多評論
      
    # re: Selenium-RC使用介紹
    2008-07-14 13:37 | zhengxiaoyan
    我第一次用的是selenium-remote-control-1.0-beta-1版本
    現在用的是
    selenium-remote-control-0.8.0版本

    服務器執行語句的時候好像使用的是瀏覽器的自動代理服務器
    但是我這里是手動的服務器
    每次執行cmd=getNewBrowserSession&1=*iexplore&2=http://www.google.com
    可以看到你圖一中的上部分,但是,google的網頁就打不開。而且控制臺也能給出id

    Got result: OK,1216011084656
    是不是跟版本有關系,請問您上面的例子用的是哪個版本的?
    謝謝,賜教!  回復  更多評論
      
    # re: Selenium-RC使用介紹
    2008-07-15 01:18 | Becky
    @zhengxiaoyan


    我重新下載了 selenium-remote-control-0.9.2-dist.zip 和 selenium-remote-control-1.0-beta-1-dist.zip 兩個版本進行測試,結果如下:

    在0.9.2中,sessionid 是數字,在1.0中,sessionid 是數字字母組合,在API中sessionid 是String 類型,應該是沒有區別的。

    對于google.com,在 cmd=open&1=http://www.google.com/&sessionId=xxxx 步驟后,會出現 01:09:14.156 INFO - Got result: 沒有權限 on session 2e8c4855b7eb4dfcadc7325ce9e5 的錯誤,對于 Permission denied 錯誤,在google.com 才會出現,在baidu, yahoo, 包括自己機器上開一個服務器測試, 都是好的。可能google對于session做了限制。

    你提到的 “可以看到你圖一中的上部分,但是,google的網頁就打不開。而且控制臺也能給出id ” 問題......請你繼續往下一步測試。  回復  更多評論
      
    # re: Selenium-RC使用介紹
    2008-07-15 01:19 | Becky
    日志:

    cmd=getNewBrowserSession&1=*iexplore&2=http://www.baidu.com
    01:08:04.765 INFO - ---> Requesting http://localhost:4444/selenium-server/driver
    ?cmd=getNewBrowserSession&1=*iexplore&2=http://www.baidu.com
    01:08:04.781 INFO - Command request: getNewBrowserSession[*iexplore, http://www.
    baidu.com] on session null
    01:08:04.781 INFO - creating new remote session
    01:08:04.781 INFO - Allocated session 5f4c15de75b24f65b1b930ae6b6b13ce for http:
    //www.baidu.com, launching...
    01:08:04.796 INFO - Modifying registry settings...
    01:08:05.421 INFO - Launching Internet Explorer...
    01:08:11.312 INFO - Got result: OK,5f4c15de75b24f65b1b930ae6b6b13ce on session 5
    f4c15de75b24f65b1b930ae6b6b13ce
    cmd=open&1=http://www.baidu.com/&sessionId=5f4c15de75b24f65b1b930ae6b6b13ce
    01:08:30.890 INFO - ---> Requesting http://localhost:4444/selenium-server/driver
    ?cmd=open&1=http://www.baidu.com/&sessionId=5f4c15de75b24f65b1b930ae6b6b13ce
    01:08:30.906 INFO - Command request: open[http://www.baidu.com/, ] on session 5f
    4c15de75b24f65b1b930ae6b6b13ce
    01:08:31.437 INFO - Got result: OK on session 5f4c15de75b24f65b1b930ae6b6b13ce
    cmd=getNewBrowserSession&1=*iexplore&2=http://www.google.com
    01:08:41.968 INFO - ---> Requesting http://localhost:4444/selenium-server/driver
    ?cmd=getNewBrowserSession&1=*iexplore&2=http://www.google.com
    01:08:41.968 INFO - Command request: getNewBrowserSession[*iexplore, http://www.
    google.com] on session null
    01:08:41.968 INFO - creating new remote session
    01:08:41.968 INFO - Allocated session 2e8c4855b7eb4dfcadc7325ce9e505b9 for http:
    //www.google.com, launching...
    01:08:42.000 INFO - Modifying registry settings...
    01:08:42.703 INFO - Launching Internet Explorer...
    01:08:48.500 INFO - Got result: OK,2e8c4855b7eb4dfcadc7325ce9e505b9 on session 2
    e8c4855b7eb4dfcadc7325ce9e505b9
    cmd=open&1=http://www.google.com/&sessionId=2e8c4855b7eb4dfcadc7325ce9e505b9
    01:09:13.328 INFO - ---> Requesting http://localhost:4444/selenium-server/driver
    ?cmd=open&1=http://www.google.com/&sessionId=2e8c4855b7eb4dfcadc7325ce9e505b9
    01:09:13.328 INFO - Command request: open[http://www.google.com/, ] on session 2
    e8c4855b7eb4dfcadc7325ce9e505b9
    01:09:14.156 INFO - Got result: 沒有權限 on session 2e8c4855b7eb4dfcadc7325ce9e5
    05b9  回復  更多評論
      
    # re: Selenium-RC使用介紹[未登錄]
    2009-01-13 17:05 | a
    想請教些問題  回復  更多評論
      
    # re: Selenium-RC使用介紹[未登錄]
    2009-01-13 17:08 | a
    請指教,可以加我QQ嗎?謝謝!
    QQ:331095842  回復  更多評論
      
    # re: Selenium-RC使用介紹
    2009-10-29 10:44 | ddd
    39fb041ab76c48cab156f120f7f0685e這就是你的sessionId@zhengxiaoyan
      回復  更多評論
      
    # re: Selenium-RC使用介紹
    2012-04-18 19:38 | bella
    您好,我在輸入第二個命令(cmd=open&1=http://www.google.com/&sessionId=683528)后,提示我沒有權限。  回復  更多評論
      
    # re: Selenium-RC使用介紹
    2012-09-20 21:18 | shj
    請教下,我知道selenium ide,selenium rc,這里講到了selenium server 可以介紹一下這3者嗎?有點搞暈了,我們為什么需要學習selenium server?這是最原始的測試,用這個我不需要把錄制好的腳本放到eclipse里運行嗎?我按照你給的命令打開了360瀏覽器里面是空白的  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    <2008年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    相冊

    搜索

    •  

    最新評論

    • 1.?re: Selenium使用介紹
    • 這里可以用多種受支持的組件定位符中的一種來指定目標。通常使用的是組件的 ID 或名稱,但 XPath 和 DOM 定位符也是受支持的;
    • --bingo online
    • 2.?re: Selenium使用介紹
    • 測試環境可以和程序代碼一同部署于應用服務器下,也可單獨搭建。
    • --Roulette Francese
    • 3.?re: Selenium使用介紹
    • 都是要進行修改的,這樣能夠增加腳本的健壯性。將腳本存為html文件。最終的腳本也要至少回放一遍通過才能算完成,在Selenium IDE中,點播放按鈕觀看放映。
    • --cavalli in vendita
    • 4.?rock
    • The logical progression and organizational structure of an essay can take many forms.
    • --this
    • 5.?rock
    • 到底搖頭點頭怎么區分的呢。印度同事說:搖頭就是表示不同意,點頭表示同意,和其他國家人一樣的,而搖晃腦袋的話,要看場景上下文的。
    • --slot machine gratis
    主站蜘蛛池模板: 综合久久久久久中文字幕亚洲国产国产综合一区首| 3d动漫精品啪啪一区二区免费| 免费观看美女裸体网站| 中文字幕亚洲精品| 免费A级毛片无码A∨中文字幕下载| 亚洲av中文无码乱人伦在线r▽| a视频在线观看免费| 久久亚洲AV无码精品色午夜麻| a毛片全部免费播放| 亚洲AV人无码综合在线观看| 日韩午夜理论免费TV影院| 亚洲视频在线观看网站| 在线观看成人免费视频不卡| 91丁香亚洲综合社区| 日本a级片免费看| 一级毛片在线免费播放| 一本久久a久久精品亚洲| 久久九九全国免费| 亚洲国产精品综合福利专区| 在线免费观看色片| 无码日韩人妻AV一区免费l| 伊人久久亚洲综合| 亚欧色视频在线观看免费| 亚洲综合激情五月丁香六月| 免费日韩在线视频| 可以免费观看的毛片| 亚洲不卡中文字幕| 亚洲国产精品无码久久久久久曰| 成年人网站在线免费观看| 亚洲a∨无码精品色午夜| 国产国拍亚洲精品福利 | 日本特黄特色AAA大片免费| 久久久久一级精品亚洲国产成人综合AV区 | 国产一区二区三区在线免费| 国产日韩精品无码区免费专区国产 | 日韩成人毛片高清视频免费看| 国产V亚洲V天堂无码久久久| av免费不卡国产观看| 一级看片免费视频| 亚洲人成电影在线观看青青| 亚洲天堂免费在线视频|