[跟著官方文檔學(xué)Selenium][學(xué)習(xí)筆記][二][Selenium概述]

      網(wǎng)友投稿 930 2025-04-03

      Selenium不僅僅是一個工具或API,它還包含許多工具。


      [跟著官方文檔學(xué)Selenium][學(xué)習(xí)筆記][二][Selenium概述]

      WebDriver

      如果你開始使用桌面網(wǎng)站測試自動化,那么你將使用WebDriver APIs。WebDriver使用瀏覽器供應(yīng)商提供的瀏覽器自動化API來控制瀏覽器和運行測試。就像真正的用戶在操作瀏覽器一樣。由于WebDriver不要求使用應(yīng)用程序代碼編譯其API,它本質(zhì)上不具有入侵性。因此,你測試的應(yīng)用程序與實時推送的應(yīng)用程序相同。

      入侵性:當(dāng)代碼引入了一個組件,導(dǎo)致其它代碼或者設(shè)計要做相應(yīng)的更改以適應(yīng)新組件,這樣的情況我們就認(rèn)為這個新組件具有侵入性。代碼設(shè)計應(yīng)做到"高內(nèi)聚,低耦合",為了實現(xiàn)這個思路就必須降低代碼的入侵性。

      Selenium IDE

      Selenium IDE(Integrated Development Environment,集成開發(fā)環(huán)境)是用來開發(fā)Selenium測試用例的工具。這是一個易于使用的Chrome和Firefox瀏覽器拓展,通常是開發(fā)測試用例最有效率的方式。它使用現(xiàn)有的Selenium命令記錄用戶在瀏覽器中的操作,參數(shù)由元素的上下文確定。這不僅節(jié)省了開發(fā)時間,而且是學(xué)習(xí)Selenium腳本語法的一種很好的方法。

      Grid

      Selenium Grid允許你在不同平臺的不同機器上運行測試用例。可以本地控制測試用例的操作,當(dāng)測試用例被觸發(fā)時,它們由遠(yuǎn)端自動執(zhí)行。

      當(dāng)開發(fā)完WebDriver測試之后,你可能需要在多個瀏覽器和操作系統(tǒng)的組合上運行測試。這就是Grid的用途所在。

      了解組件

      使用WebDriver構(gòu)建測試套件需要理解并有效地使用許多不同的組件。就像軟件中的一切那樣,不同的人對同一個想法使用不同的術(shù)語。

      專業(yè)術(shù)語

      API:應(yīng)用程序編程接口。這是一組用來操作WebDriver的指令。

      庫:一個代碼模塊,它包含API和實現(xiàn)這些API所需的代碼。庫是對應(yīng)于具體的語言的,例如Java的.jar文件,.NET的.dll文件等等。

      驅(qū)動程序:負(fù)責(zé)控制實際的瀏覽器。大多數(shù)驅(qū)動程序是由瀏覽器廠商自己創(chuàng)建的。驅(qū)動程序通常是與瀏覽器一起在系統(tǒng)上運行的可執(zhí)行模塊,而不是在執(zhí)行測試套件的系統(tǒng)上。有些人把驅(qū)動稱為代理。

      框架:用于支持WebDriver套件的附加庫。這些框架可能是測試框架,如JUnit或NUnit。也可能是支持自然語言特性的框架,如Cucumber或Robotium。還可以編寫和使用框架來操作或配置被測試的系統(tǒng)、數(shù)據(jù)創(chuàng)建、測試預(yù)言等等。

      組成部分

      WebDriver通過一個驅(qū)動程序與瀏覽器對話。通信有兩種方式:WebDriver通過驅(qū)動程序向瀏覽器傳遞指令,然后通過相同的路徑接收信息。

      驅(qū)動程序是特定于瀏覽器的,例如ChromeDriver對應(yīng)于谷歌的Chrome/Chromium,GeckoDriver對應(yīng)于Mozilla的Firefox等等。驅(qū)動程序在與瀏覽器相同的系統(tǒng)上運行。這可能與執(zhí)行測試本身的系統(tǒng)相同也可能不同。

      上圖的通信方式就是直接通信。與瀏覽器的通信也可以是通過Selenium服務(wù)器或者RemoteWebDriver進行遠(yuǎn)程通信。RemoteWebDriver與驅(qū)動程序和瀏覽器運行在同一系統(tǒng)上。

      遠(yuǎn)程通信也可以使用Selenium Sever或Selenium Grid進行,這兩者依次與主機系統(tǒng)上的驅(qū)動程序進行通信。

      應(yīng)用框架

      WebDriver有且只有一個任務(wù):通過上面的任何方法與瀏覽器通信。WebDriver對測試不了解:它不知道如何比較事物、斷言通過或失敗,也不知道報告或者Given/When/Then語法。

      這就是各種框架發(fā)揮作用的地方。至少你需要一個與綁定語言相匹配的測試框架,比如.NET的NUnit,Java的JUnit,Ruby的RSpec等等。

      測試框架負(fù)責(zé)運行和執(zhí)行WebDriver以及測試中相關(guān)步驟。因此,可以看做類似下圖。

      像Cucumber這種自然語言框架/工具可能作為上圖中測試框架的一部分存在,或者它們可能將測試框架完全封裝在自己的實現(xiàn)中。

      深度介紹

      Selenium是一系列工具和庫的綜合項目,這些工具和庫支持Web瀏覽器的自動化。

      Selenium控制網(wǎng)頁瀏覽器

      Selenium有很多功能,但其核心是Web瀏覽器自動化的一個工具集,它使用最好的技術(shù)來遠(yuǎn)程控制瀏覽器實例,并模擬用戶與瀏覽器的交互。

      它允許用戶模擬終端用戶執(zhí)行的常見活動,比如將文本輸入到字段中,選擇下拉值和復(fù)選框,并單擊文檔中的鏈接。還提供了許多其他控件,比如鼠標(biāo)移動、任意JavaScript執(zhí)行等等。

      雖然Selenium主要用于網(wǎng)站的前端測試,但其核心是瀏覽器用戶代理庫。這些接口在應(yīng)用程序中無處不在,它們鼓勵與其他庫進行組合以滿足目的。

      一個接口來統(tǒng)治它們

      該項目的指導(dǎo)原則之一就是支持所有主流瀏覽器技術(shù)的通用接口。Web瀏覽器是非常復(fù)雜的,高度工程化的應(yīng)用程序,以完全不同的方式執(zhí)行它們的操作,但在執(zhí)行這些操作時,通常看起來是跟平常使用一樣的。Selenium進行了抽象,向編寫代碼的人隱藏了它們的細(xì)節(jié)和復(fù)雜性。這將允許用戶只要編寫幾行代碼就能執(zhí)行一個復(fù)雜的工作流程,但這幾行代碼將在Firefox、Internet Explorer、Chrome和所有其他支持的瀏覽器上執(zhí)行。

      工具和支持

      Selenium的極簡設(shè)計方式使其具有通用性,可以作為更大應(yīng)用程序中的組件。Selenium保護傘下提供的周邊基礎(chǔ)設(shè)施為你提供了組合自己的Grid工具, 因此測試就可以在不同機器、不同瀏覽器和不同操作系統(tǒng)上運行。

      想象一下,服務(wù)器機房或數(shù)據(jù)中心的一組計算機同時啟動瀏覽器,訪問站點的鏈接、表單和表格-全天候24小時測試應(yīng)用程序。通過最常見的語言提供的簡單編程接口,這些測試將不知疲倦并行運行,當(dāng)錯誤發(fā)生時生成報告。

      通過用戶提供工具和文檔,不僅可以控制瀏覽器,還可以方便地拓展和部署這些Grid,從而幫助你實現(xiàn)目標(biāo)。

      誰使用Selenium

      世界上很多公司都在基于瀏覽器的測試中采用Selenium,取代了多年來涉及其他專有工具的工作。隨著Selenium越受歡迎,需求和挑戰(zhàn)也成倍增長。

      隨著網(wǎng)絡(luò)越來越復(fù)雜,新的技術(shù)被添加到網(wǎng)站上,這個項目的任務(wù)就是盡可能跟上它們。作為一個開源項目,這種支持是通過許多志愿者的慷慨捐贈來提供的,每個志愿者都有一個"日常工作"。

      該項目的另一個任務(wù)是鼓勵更多的志愿者參與到這項工作中來, 并建立一個強大的社區(qū),以便項目能夠繼續(xù)跟上新興的技術(shù), 并繼續(xù)成為功能測試自動化的主導(dǎo)平臺。

      API Selenium web前端

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:NPS的使用
      下一篇:匯編語言從鍵盤輸入一個字符串(串長不大于80)以十進制輸出字符串中非字母字符的個數(shù)(不是a to z或 A to Z)
      相關(guān)文章
      国产亚洲视频在线观看| 亚洲欧洲国产综合| 亚洲av永久无码精品天堂久久| 亚洲一二成人精品区| 国产成人亚洲精品青草天美| 久久精品国产亚洲AV不卡| 亚洲av高清在线观看一区二区| 亚洲av无码一区二区三区天堂 | 亚洲熟女乱综合一区二区| 九九精品国产亚洲AV日韩| 亚洲精品天堂无码中文字幕| 日韩亚洲产在线观看| 亚洲最大中文字幕无码网站| 国产91在线|亚洲| 久久亚洲国产最新网站| 在线亚洲高清揄拍自拍一品区| 中文字幕在线日亚洲9| 亚洲日韩av无码中文| 亚洲精华国产精华精华液好用| 亚洲AV永久无码精品放毛片| 欧美日韩亚洲精品| 亚洲AⅤ永久无码精品AA | 午夜亚洲WWW湿好爽| 亚洲爆乳少妇无码激情| jizzjizz亚洲日本少妇| 国产精品亚洲小说专区| 亚洲精品一级无码中文字幕| 伊人久久精品亚洲午夜| 亚洲精品无码久久久影院相关影片 | 精品国产亚洲一区二区三区在线观看| 亚洲AV成人精品日韩一区| 国产综合激情在线亚洲第一页 | 久久91亚洲精品中文字幕| 亚洲一区二区三区首页| 亚洲激情视频网站| 亚洲国产乱码最新视频| 亚洲av成人一区二区三区在线播放| 亚洲精品专区在线观看| 亚洲av综合avav中文| 亚洲综合亚洲国产尤物| 在线观看亚洲AV日韩A∨|