亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
菜鳥學自動化測試??selenium系列全集
作者:網絡轉載 發布時間:[ 2013/4/3 14:43:08 ] 推薦標簽:

菜鳥學自動化測試(七)----selenium RC 工作原理

關于selenium RC環境搭建(基于java語言),我在系統的學習selenium之前已經做了,并在我的這個系列的文章中可以找到。那是照著一位前輩的視頻操作完成的,我詳細的記錄的操作步驟。

在這里我們一起了解一下selenium RC的工作原理。

簡介

那么之前學習的了selenium IDE與selenium命令,那么是不是我們用selenium IDE可以完成我們的所有自動化測試工作了呢?No !Selenium IDE 沒我們認為的那么強大,在實際的項目中會有各種復雜的操作,如條件判斷、循環、讀寫文件、查詢數據庫和E—mail郵寄測試報告。這些都不是selenium IDE簡單的錄制能完成的。

Selenium RC可以適應更復雜的自動化測試需求,而不僅僅是簡單的瀏覽器操作和線性執行。Selenium RC 能夠充分利用編程語言來構建更復雜的自動化測試案例。

Selenium RC工作原理

那么Selenium RC組件是如何運轉的,以及他們在測試案例運行過程中扮演什么角色。

說明客戶端庫文件將命令傳遞給server。接著server使用selenium-Core的javaScript命令傳遞給瀏覽器,瀏覽器會使用自帶的javaScript翻譯器來執行selenium命令。這意味著測試腳本中的selenese操作和驗證將被執行。

* Selenium server

它負責啟動和關閉瀏覽器,解釋和運行從測試程序傳來的selenese命令,像HTTP代理一樣,截取和驗證瀏覽器與待測應用(AUT)之間的HTTP消息。

在測試程序打開瀏覽器時(使用客戶端庫文件的API函數),RC server綁定 selenium Core并自動將它嵌入到瀏覽器中。selenium Core是一個javaScript程序,實際上市一系列javaScript函數,它們使用瀏覽器內置的javaScript翻譯器來翻譯和執行selenese命令。

* 客戶端文件

客戶端庫文件提供編程接口。允許你使用自己編寫的程序來運行selenese命令,對于不同的語言都有對應的客戶端庫文件。類似于數據庫方言包的概念,如果你想用java操作數據庫,對于不同的數據庫,需要導入不同的數據庫驅動jar文件,mysql有mysql的方言包,DB有DB的方言包。

客戶端庫文件獲取一條selenise命令,并將它傳遞給selenium Server ,以便執行一個指定操作或者基于待測應用(AUT)進行測試?蛻舳藥煳募盏矫畹膱绦薪Y果,在將其傳給你的測試程序。程序接收到結果后,將它保存在變量中。接著報告成功還是失敗,如果結果是意料之外的失敗,還能有針對性地采取正確措施。

因此要創建測試程序,你只要使用客戶端庫文件的API來編寫程序,程序會去運行一系列selenium命令,當然selenium IDE錄制的內容生成selenese測試腳本,可以轉換成不同測語言腳本。

Selenium RC 架構

下面我們來了解隱藏在selenium RC背后的技術實現。要了解selenium RC Server 工作的細節,需要我們理解下面幾個概念。

1. 同源規則

Selenium面臨的主要限制是同源規則,市場上的每一款瀏覽器都應用了這一安全限制。其目的是確保一個站點的內容不會被另一個站點的腳本所訪問。同源規則專注于確保瀏覽器加載的任何代碼,都只能在同一站點內部進行操作。假如你在一個瀏覽器的一個選項卡內打開了一個網上銀行的頁面(www.yinhang.com)。又在另選項卡上不小心打開了一個掛馬的頁面(www.guama.com),那么掛馬的頁面是不能操作網上銀行頁面的內容,因為引入了同源規則。所以,他們不能相互作用。如果不引入同源規則,我們可以想象用戶很生氣,后果很嚴重。

要在這一規則下工作,selenium Core必須與待測系統在同一源中。在歷史上,selenium Core被這一問題所限制,因為它是用javaScrpt實現的。但是selenium RC 沒有被同源規則所限制,它使用selenium Server作為單利來回避這一問題,“哄騙”瀏覽器,讓瀏覽器以為自己在server提供的單一站點上工作。

同源:相同的協議、端口、域名

感興趣的同學google“同源規則”和“XSS(跨站點執行腳本)”相關技術

2. 代理注入

selenium 用來規避同源規則的第一種方法是代理注入,在代理注入模式下,selenium Server 像客戶端配置的HTTP代理一樣工作,它位于瀏覽器和待測系統之間。接著其偽造待測系統的URL(集成selenium Core 和一系列測試案例并加以傳遞,它們像同源一樣)

代理作為第三者,在雙方間傳遞信息,它表現的像一個“web服務器”,想瀏覽器傳遞待測系統。作為代理selenium Server ,它擁有篡改待測系統真實URL的能力。

瀏覽器啟動時,使用配置的profile,其中已經設置localhost:4444作為HTTP代理,這是為什么任何來自瀏覽器的HTTP請求都會經過selenium Server,而且HTTP響應也來自selenium Server而非真實的服務器。

 

(1)客戶驅動與selenium RC Server之間建立起一個鏈接。

(2)Selenium RC Server 啟動瀏覽器,并在瀏覽器加載頁面中注入了Selenium Core 的javaScript

(3)客戶端驅動給Server傳遞一條Selenese命令

(4)客戶端驅動個Server解釋命令,并觸發對應的javaScript在瀏覽器中執行。

(5)Selenium Core指示瀏覽器執行第一條指令,例如打開一個待測系統頁面。

(6)瀏覽器接收到打開請求后,向Selenium RC Server(作為瀏覽器的HTTP代理),要求web站點內容。

(7)Selenium RC Server與web服務器通信,請求頁面,并且一旦收到響應將頁面傳遞給瀏覽器,但它會篡改源,是頁面看上去好像來自于與selenium Core同源的服務器。

(8)瀏覽器接收到web頁面后,在保留的框架窗口中展示頁面。

3. 提高瀏覽器權限

這一方式下的工作流與代理注入十分相似,區別在于瀏覽器以特殊模式-------“高特權模式”啟動。它允許瀏覽器做一些通常不被允許的事情,如XSS。通過這個瀏覽器模式,Selenium Core 可以直接帶卡待測系統,并讀取和操作其中的內容,而不需要通過Selenium RC Server來傳遞整個待測系統。

(1)客戶驅動與selenium RC Server之間建立起一個鏈接。

(2)Selenium RC Server啟動瀏覽器,其實用的URL會在頁面中加載 Selenium Core

(3)Selenium Core 從客戶端啟動得到第一條指令(通過Selenium RC Server)

(4)Selenium Core 執行第一條指令。

(5)瀏覽器接到打開請求,向web服務器請求頁面,一旦瀏覽器接收到web頁面后,在保留的框架窗口中展示頁面。

===========================================================================

圖不優雅,但也是自己花費一個多小時畫的。

關于selenium RC 的工作原理。沒有hyddd將的好,也沒他理解的深入。但也算是自己小小的總結。

上一頁1234567891011下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 亚洲线精品久久一区二区三区 | 亚洲欧美综合 | 欧美成人aaa大片 | 毛片在线视频 | 好紧好湿好黄的视频 | 精品久久久久久国产91 | 成人激情视频网 | 久久成人黄色 | 91桃色污 | 成人福利小视频 | 久久男女 | 日本午夜精品 | 在线观看免费国产视频 | 91精品国产人成网站 | 亚洲无线一二三四手机 | 国产精品青青青高清在线 | 精品久久久久久中文字幕专区 | 夜夜爽夜夜叫夜夜高潮漏水 | 啪啪免费网站入口链接 | 欧美一级视频 | 亚洲国产日韩精品 | 日日摸夜夜添夜夜添一区二区 | 天天干狠狠干 | 免费人成网站免费看视频 | 免费观看亚洲视频 | 日本免费一区二区三区a区 日本免费一区二区三区看片 | 亚洲成av人片在线观看 | 欧美一级视频在线高清观看 | 成人毛片高清视频观看 | 国产一区二区三区在线视频 | 大又黄又粗又爽妇女毛片 | 特黄特黄一级高清免费大片 | 一级黄色性生活视频 | 男女视频在线观看免费高清观看 | 国产91网站在线观看免费 | 日韩三级久久 | 麻豆日韩国产精品欧美在线 | 夜夜狠狠狠狠 | 日本三日本三级香港三级 | 在线永久免费观看黄网站 | 日本不卡高清视频 |