WEB自動化2:Selenium介紹

關於WEB自動化測試的第一篇文章發布後,有朋友說要給我打賞,卻又怕我繼承他的螞蟻花唄,非常感謝朋友對我工作的肯定,但是打賞什麼的真的沒必要,多來看看、一起討論一下測試行業的事兒就是對我最大的支持。

上一篇文章我主要對三個問題談了談我自己的認識,歡迎大家在評論區發出一些不同的聲音,我會盡量回復大家,共同討論。

1、什麼是自動化?

2、什麼是WEB自動化測試?

3、如何選擇WEB自動化測試工具?

那麼今天呢,我們就來聊聊Selenium到底是個什麼樣的工具。

在這之前呢,我分享一下我當初學習時候的一些經歷,我第一次接觸到WEB自動化的時候屬於一無所知的狀態,我也不是計算機專業,屬於半路出家。一方面呢覺得自己只會功能測試確實有點LOW,另一方面也想著多學點技能多掙點錢不是,既然進了測試的坑,就把它做好。於是我開始各種找資料、各種問大神,在什麼都不清楚的情況下在網上找教程、搭環境、模仿別人的測試腳本......等等,但是我發現我越學越糊塗,越學越沒勁,最後我發現我都不知道自己在幹嘛?

靜下心來才發現,什麼是自動化?特點是啥?什麼是Selenium?什麼是測試框架?測試腳本涉及規則是什麼?我一無所知......

兵法云:知己知彼,百戰不殆。

所以,大家不要走我的老路,感興趣的朋友也不要嫌棄我寫的東西太低端、太基礎,如果您是大神也不會關注我寫的這些東西不是么?

Selenium的發展歷史

  • Selenium最早是由Jason Huggins在2004年發起的,目的是為了提高他所在的Thoughtworks公司內部應用的測試效率,起初他開發了一個名為JavaScriptTestRunner的測試工具來驅動瀏覽器頁面的行為;
  • 在接下來的時間裡,Selenium經歷了許多改進,因為Selenium最早是由純JS來編寫的,為了繞過瀏覽器的限定和JS的沙箱策略,不得不與被測伺服器部署在一起,十分不方便,因此他們編寫了Http代理,這就是我們熟悉的Selenium RC,也就是Selenium1.0;
  • 到了2007年,一位名叫Simon Stewart的工程師發起了一個名叫Web Driver的項目,Simon希望通過瀏覽器操作系統的底層方法和一些手段來直接操作瀏覽器,這樣就避免了Selenium1.0存在的那些限制;
  • 在之後的一段時間內,Selenium也得到了長足的發展,在2008年,Philippe Hanrigou創造了Selenium Grid,這使得工程師可以在任意數量的本地或者遠程主機上並行運行多個Selenium測試,大大提高了測試的效率;
  • 終於,在2009年谷歌自動化測試的會議上,Selenium和Web Driver合二為一,相互取長補短,新的項目被稱之為「Selenuium Web Driver」,也就是我們熟知的Selenium2.0,因為其優異的特性,以及各類成熟的應用,發展到今天已經成為了最主流的Web自動化測試工具。

Selenium工具集

從Selenium的發展歷程中,我們可以得到Selenium的典型工具集,分別是:

  • Selenium IDE
  • Selenium RC(Remote Control)
  • Selenium Grid
  • Selenium Web Driver

在目前我們應用最多的應該是Selenium2.0,也就是Selenium Web Driver。

下面,我談談我對它們的一些認識,它們有哪些應用場景和優缺點,希望大家切勿不耐煩,欲戴皇冠必承其重。

Selenium IDE

Selenium IDE它是一個Firefox的插件,支持在Firefox瀏覽器上錄製、修改、回放腳本,它的優點是編寫測試用例非常的方便、快捷,但是只支持Firefox瀏覽器。

Selenium RC

Selenium RC它使用編程語言來編寫腳本,它在瀏覽器中運行JavaScript,使用瀏覽器內置的JS解釋器來翻譯測試腳本和執行測試;它可以創建比Selenium IDE更為複雜的測試用例,可以添加條件語句和迭代以進行測試,也可以支持數據集運行測試;它支持多種不同的操作系統,可以啟動不同的瀏覽器實例,也支持使用多種語言進行編寫腳本,非常的靈活。

Selenium Grid

Selenium Grid基於Selenium,它支持運行多個selenium Remote Control,這樣就可以很方便地同時在多台機器和不同的環境中並行運行多個測試腳本,用來對測試腳本做分散式處理;另外由於Selenium Grid是基於Selenium RC的,所以它也具備Selenium RC的所有優點。

在Selenium2.0時代,Selenium Grid已經被集成到了Selenium Server中。

Selenium WebDriver

Selenium WebDriver本身就是一個工具包,他通過原生的瀏覽器支持或者瀏覽器拓展,直接控制瀏覽器,取代了被嵌入到被測應用中的JS腳本;與瀏覽器更緊密的集成,使它支持創建更高級的測試,避免了因為JS腳本安全模型導致的限制;除了來自瀏覽器廠商的支持外,WebDriver還可以利用操作系統級的調用模擬用戶的輸入;最後它當然也支持不同的編程語言來編寫測試腳本(如Python、Java等),各種語言都有非常成熟的包對外免費提供,因此我們可以用它編寫強大的測試腳本,同時能夠跟其他工具結合使用,甚至可以根據需求製作複雜的分散式執行操作。

綜上,由於Selenium WebDriver的各種優秀特性,已經成為了Web自動化測試的主要工具,縱觀各大招聘網站上的信息,能夠使用Selenium WebDriver也已經成為了我們測試工程師必會的一項技能。

那麼問題來了:

支持多個瀏覽器執行自動化測試用例的Selenium工具有哪些?

(一如既往,請將問題的答案在評論中回答,評論數過888,隨機贈送兩張周末熱門電影票~歡迎大家一起討論學習。)


推薦閱讀:

Pycharm—FileNotFoundError: [WinError 2] 系統找不到指定的文件?
python selenium 如何查看網頁的源代碼 ?
selenium自動化測試入門n Alert/Confirm/Prompt 彈出窗口處理

TAG:自动化测试 | 软件测试 | Selenium |