資源推薦:
社區(qū)資源: 自動化測試交流群
Selenium Server, 負責(zé)啟動和關(guān)閉瀏覽器,以及解釋和運行從測試程序傳送過來的Selenese指令,并充當(dāng)HTTP Proxy角色。
Client開發(fā)庫,開發(fā)庫提供了編寫測試腳本的api,用于與Selenium Server進行指令交互。
Selenium1 Architecture為了能更好的理解Selenium RC Server是如何工作以及為什么要使用代理注入的方式完成測試指令執(zhí)行,首先必須要理解的是“同源策略”(The Same Origin Policy)。
The Same Origin Policy, 市場上所有瀏覽器之所以會應(yīng)用這個策略,其目的是為了阻止來自其他站點的javascript訪問本站的web 信息,“同源策略”意思是瀏覽器僅執(zhí)行當(dāng)前訪問的域(domain)下的代碼,而不會執(zhí)行來自其他站點的代碼,如果這種方式行的通的話,我們很多信息就很容易被跨站方式竊取,也就是常說的XSS(Cross-Site Scripting).
所以Selenium Core(Javascript庫)想正確的在目標(biāo)站點中執(zhí)行Selenese指令,就必須將其與被測Web應(yīng)用放置在同源位置。
由于Selenium Core由javascript實現(xiàn),所以它無法避免同源策略的限制,但是Selenium RC不受此限制,將Selenium RC作為一個代理來避免同源問題。
關(guān)于同源策略及XSS的詳細信息,可以參考如下文章:Same Origin Policy , XSS
Selenium1架構(gòu)如下圖所示:
當(dāng)我們執(zhí)行一個測試的時候,會按如下步驟依次執(zhí)行:
1. 客戶端(測試腳本)與SelenIum-RC建立一個連接。
2. Selenium-RC啟動瀏覽器,并加載一個被注入了Selenium-Core的javascript的頁面,此時瀏覽器會加載一個默認的用戶配置,將瀏覽器代理設(shè)置為localhost:4444,其目的就是讓瀏覽器所有請求及服務(wù)器所有響應(yīng)都通過這個代理服務(wù)進行轉(zhuǎn)發(fā)。
3. 客戶端開始發(fā)送指令到Selenium-RC Server
4. Selenium-RC Server收到指令后進行解釋并觸發(fā)已注入的javascript執(zhí)行指令。
5. 瀏覽器收到j(luò)avascript指令后,相當(dāng)于真實用戶與UI交互,并向HTTP Proxy發(fā)送Http請求。
6. Selenium-RC Server與web server交互,獲取到web server響應(yīng)后,將其偽裝成與第二步加載的頁面看起來是來自同一個服務(wù)器,依次規(guī)避瀏覽器同源策略。
7. 瀏覽器收到響應(yīng)內(nèi)容后,進行渲染等操作。
點擊鏈接加入群【悅分享測試聯(lián)盟】:https://jq.qq.com/?_wv=1027&k=5DiePik
分享標(biāo)題:Selenium1(SeleniumRC)-創(chuàng)新互聯(lián)
標(biāo)題來源:http://chinadenli.net/article16/dehedg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、電子商務(wù)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、面包屑導(dǎo)航、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容