自動化測試工具知多少之——Selenium, Selenide和Katalon

引子

以前就有個想法,整理一下自動化測試的相關工具,開始的時候覺得不復雜,可是隻是簡單的列表彷佛又單調了些,沒什麼意義。若是加上介紹和相關說明,放在一篇文章裏,又會太過雜亂。 乾脆仍是先從細節開始,寫個系列文章來介紹工具,後面再作整理,可能會清楚一點。 從哪兒開始呢,要不咱先嘮嘮Selenium?java

Selenium

這是鼎鼎大名家喻戶曉的工具了,你們應該都知道,它是作Web UI自動化的。 可是初次接觸的朋友可能仍是會有點懵逼,什麼Selenium1.0, 2.0, 3.0, 什麼seleniumRC、Selenium IDE,Selenium Grid,還有WebDriver又是什麼鬼?因此咱也來先簡單介紹兩句。git

1.0

Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC Selenium IDE是嵌入到Firefox瀏覽器中的一個插件,實現簡單的瀏覽器操做的錄製與回放功能。 Selenium Grid是一種自動化的測試輔助工具,Grid經過利用現有的計算機基礎設施,能加快Web-App的功能測試。利用Grid能夠很方便地實如今多臺機器上和異構環境中運行測試用例。 Selenium RC(Remote Control)是Selenium1.0的核心部分。Selenium RC 支持多種不一樣語言編寫的自動化測試腳本,經過Selenium RC的服務器做爲代理服務器去訪問應用,從而達到測試的目的。 Selenium RC分爲Client Libraries和Selenium Server。Client Libraries庫主要用於編寫測試腳本,用來控制Selenium Server的庫。Selenium Server負責控制瀏覽器行爲。github

關於1.0的介紹,簡單看看就行了,由於在2.0中,核心已經從RC變成了WebDriver。web

WebDriver

在2006年的時候,Google的工程師Simon Stewart發起了WebDriver的項目。 Selenium RC 是在瀏覽器中運行JavaScript應用,使用瀏覽器內置的JavaScript翻譯器來翻譯和執行selenese命令(selenese是Selenium命令集合)。ajax

WebDriver是經過原生瀏覽器支持或者瀏覽器擴展來直接控制瀏覽器。WebDriver針對各個瀏覽器而開發,取代了嵌入到被測Web應用中的JavaScript,與瀏覽器緊密集成,所以支持建立更高級的測試,避免了JavaScript安全模型致使的限制。除了來自瀏覽器廠商的支持以外,WebDriver還利用操做系統級的調用,模擬用戶輸入。編程

Selenium與WebDriver原是屬於兩個不一樣的項目,WebDriver的建立者Simon Stewart早在2009年8月的一份郵件中解釋了項目合併的緣由。瀏覽器

Selenium與WebDriver合併緣由:爲什麼把兩個項目合併?部分緣由是WebDriver解決了Selenium存在的缺點(例如可以繞過JavaScript沙箱,咱們有出色的API),部分緣由是Selenium解決了WebDriver存在的問題(例如支持普遍的瀏覽器),部分緣由是由於Selenium的主要貢獻者和我都以爲合併項目是爲用戶提供最優秀框架的最佳途徑。安全

2.0

Selenium和Webdriver合併以後,就有了Selenium 2.0。 Selenium 2.0 = Selenium 1.0 + WebDriver 在Selenium 2.0中主推的是WebDriver,能夠將其看做Selenium RC的替代品。由於Selenium爲了保持向下的兼容性,因此在Selenium 2.0中並無完全地拋棄Selenium RC。服務器

如今網上關於Selenium的教程,大多也是關於Selenium 2.0的WebDriver的。app

3.0

2016年7月,Selenium3.0悄悄發佈第一個beta版。2016年10月13日,官方宣佈發佈Selenium3.0版本。 在Selenium 3.0中,完全移除了舊的RC APIs,替換成了WebDriver APIs。 Selenium3.0只支持Java8版本以上。 Selenium3.0中的Firefox瀏覽器驅動獨立了,之前裝完selenium2就能夠驅動Firefox瀏覽器了,如今和Chrome同樣,必須下載和設置瀏覽器驅動。 MAC OS 集成Safari的瀏覽器驅動。默認在/usr/bin/safaridriver 目錄下。 只支持IE 9.0版本以上。

Selenide

初看到這個詞的時候,是否是覺得把Selenium拼錯了?我一開始也這樣認爲,可是一搜才發現,並非!

selenide is just a wrapper.

Selenide是webdriver的一個封裝,理論上一切WebDriver能作的Selenide都能作,而且如今只有java版本。 使用Selenide,你能夠把注意力集中在實現業務邏輯上,而不用過多的考慮瀏覽器/ajax/超時等問題。 想要了解的更具體一點? 請參考官方文章:http://selenide.org/2013/04/23/what-is-selenide/

Katalon

這是在Selemium相同的內核上構建起來的一個自動化測試工具。它是一個徹底免費且易用的圖形化工具,用戶不須要任何編程基礎便可使用。 至於它和Selenium的具體區別?我懶得翻譯了,你們去看官方文章來具體瞭解吧。 官方文章:https://www.katalon.com/resources-center/blog/katalon-studio-vs-selenium-based-open-source-frameworks/

本文也同時發在個人我的博客上,地址:https://mmcatt.github.io/2018/06/19/selenium-selenide-katalon/

相關文章
相關標籤/搜索