百度搜國外服務(wù)器Wordpress甲馬營seo網(wǎng)站優(yōu)化的
1、什么是selenium
- Selenium是一個用于Web應(yīng)用程序測試的工具。
- 只要在測試用例中把預(yù)期的用戶行為與結(jié)果都描述出來,我們就得到了一個可以自動化運(yùn)行的功能測試套件。
- Selenium測試套件直接運(yùn)行在瀏覽器中,就像真正的用戶在操作瀏覽器一樣。
- Selenium也是一款同樣使用Apache License 2.0協(xié)議發(fā)布的開源框架。
- Selenium工具的主要功能包括:
? ? ? ? ?測試程序與瀏覽器的兼容性,測試你的應(yīng)用程序是否能夠很好得工作在不同瀏覽器和操作系統(tǒng)之上。
? ? ? ? ?測試系統(tǒng)功能,創(chuàng)建回歸測試檢驗(yàn)軟件功能和用戶需求。
?
2、selenium的特點(diǎn)
- 開源,免費(fèi)
- 多瀏覽器支持:FireFox、Chrome、IE、Opera、Safari
- 多平臺支持:linux、windows、MAC
- 多語言支持:java、python、ruby、php、C#、JavaScript等
- 對web頁面有良好的支持
- 簡單(API簡單)、靈活(用開發(fā)語言驅(qū)動)
- 支持分布式測試用例執(zhí)行
?
3、Selenium版本
從2004年至今,Selenium經(jīng)歷了3個版本,即Selenium1.0,Selenium2.0,Selenium3.0。
(1)Selenium1.0
Selenium 1.0包括:Selenium IDE、Selenium Grid、Selenium RC三部分。
- Selenium IDE:是Firefox瀏覽器中的一個插件,實(shí)現(xiàn)簡單的瀏覽器操作的錄制與回放功能。生成測試用例,可將測試用例轉(zhuǎn)換為其他語言的自動化腳本。如果沒有編程經(jīng)驗(yàn),可以通過Selenium IDE來快速熟悉Selenium的命令。(只適用于火狐瀏覽器)
- Selenium Grid:分布式測試。用于運(yùn)行在不同的機(jī)器,不同的瀏覽器并行測試的工具,目的在于加快測試用例運(yùn)行的速度,從而減少測試運(yùn)行的總時間。利用Grid可以很方便地實(shí)現(xiàn)在多臺機(jī)器上和異構(gòu)環(huán)境中運(yùn)行測試用例。
- Selenium RC:Selenium RC是Selenium1.0核心部分。簡單的說,Selenium RC的功能就是通過代碼操作瀏覽器。
?
(2)Selenium2.0
Selenium 2.0 = Selenium 1.0 + WebDriver
WebDriver比Selenium RC功能強(qiáng)大且簡單。WebDriver是通過原生瀏覽器支持或者瀏覽器擴(kuò)展來直接控制瀏覽器。WebDriver針對各個瀏覽器而開發(fā),使用不同瀏覽器都需要對應(yīng)瀏覽器驅(qū)動,與瀏覽器緊密集成,因此支持創(chuàng)建更高級的測試,避免了JavaScript安全模型導(dǎo)致的限制。除了來自瀏覽器廠商的支持之外,WebDriver還利用操作系統(tǒng)級的調(diào)用,模擬用戶輸入。我們在使用WebDriver時,可以看到,是先啟動了瀏覽器對應(yīng)driver,通過瀏覽器driver啟動瀏覽器。
(3)Selenium3.0(推薦)
Selenium 3.0在Selenium2.0的基礎(chǔ)上有了更多的改進(jìn),支持的原生驅(qū)動方面更為豐富。
去掉了對SeleniumRC的支持。
JDK的最低版本要求為JDK8(只有在測試分布式的時候,才需要Java環(huán)境)。
(4)提示
Selenium 3.0在Selenium 2.0的基礎(chǔ)上增加了對win10系統(tǒng)的Edge瀏覽器和Mac系統(tǒng)Safari瀏覽器的支持,并且在啟動Firefox瀏覽器時也必須使用瀏覽器驅(qū)動geckodriver。去掉了Selenium RC,因此Selenium 3.0的學(xué)習(xí)核心也是WebDriver。
(5)Selenium組件總結(jié)
?
4、拓展:WebDriver與Selenium RC的區(qū)別
(1)Selenium RC
Selenium RC 使用的是javascript注入的方式跟瀏覽器打交道。這樣Selenium RC 需要啟動一個Server,然后將操作頁面元素的API 轉(zhuǎn)成javascript腳本,再把這段腳本注入到瀏覽器中去執(zhí)行。而通過這種javascript注入的方式一來太依賴翻譯成javascript質(zhì)量的好壞,二來javascript存在同源問題。這使測試變得不那么容易。
總結(jié):
?
Selenium RC
需要Selenium Server
才能運(yùn)行測試用例。Selenium RC
使用JavaScript
來驅(qū)動瀏覽器運(yùn)行測試用例。Selenium RC
只能支持Web應(yīng)用的測試。Selenium RC
能支持所有瀏覽器但并不能及時支持最新版本。
(2)WebDriver
與Selenium RC 不同的是Selenium WebDriver針對不同的瀏覽器進(jìn)行獨(dú)立開發(fā)Driver,利用瀏覽器的原生API去直接操作瀏覽器和頁面元素,這樣大大提高了測試的穩(wěn)定性和速度。當(dāng)然因?yàn)椴煌臑g覽器對Web元素操作和呈現(xiàn)多多少少會存在一些差異,這也就造成現(xiàn)在不同的瀏覽器需要有對應(yīng)不同的Driver。
總結(jié):
- WebDriver不需要Selenium Server就可以運(yùn)行測試用例。
- WebDriver獨(dú)立使用原生瀏覽器來運(yùn)行測試用例。
- WebDriver既可以測試傳統(tǒng)桌面Web應(yīng)用,也可以測試手機(jī)上的應(yīng)用程序,如iPhone或Android上的app程序。
- WebDriver能支持大多數(shù)瀏覽器的最新版本。
?
總結(jié):
?