1、Selenium
知名的瀏覽器web應(yīng)用測(cè)試框架,可以用Java、C#、Ruby、JavaScript、R和Python等多種編程語(yǔ)言編寫(xiě)測(cè)試案例。
Selenium為每種語(yǔ)言提供客戶端API。
SeleniumWebDriver盡可能使用原生操作系統(tǒng)級(jí)別的功能,而非基于瀏覽器JavaScript的命令來(lái)驅(qū)動(dòng)瀏覽器。
這樣就繞過(guò)了原生功能和JavaScript命令之間由于細(xì)微差別而產(chǎn)生的問(wèn)題(包括安全限制)。它提供了很大的靈活性,甚至還支持iframe和多個(gè)瀏覽器標(biāo)簽。
卓越的跨瀏覽器功能令人印象深刻??梢栽谥髁鳛g覽器(Chrome、Firefox、Safari、Edge、InternetExplorer)上執(zhí)行Selenium測(cè)試。
SeleniumGrid可以與WebDriver一起使用,以在遠(yuǎn)程系統(tǒng)上執(zhí)行測(cè)試。
使用Selenium的唯 一缺點(diǎn)是,它需要大量的技能,并且編寫(xiě)測(cè)試非常耗時(shí)。對(duì)沒(méi)有編程經(jīng)驗(yàn)的人來(lái)說(shuō),乍一看用Selenium編寫(xiě)測(cè)試似乎很容易;但是如果沒(méi)有最 佳實(shí)踐,將導(dǎo)致項(xiàng)目?jī)?nèi)的測(cè)試自動(dòng)化框架難以維護(hù)且不夠穩(wěn)定可靠。
2、Endtest
Endtest是智能自動(dòng)化測(cè)試解決方案,它使用多個(gè)開(kāi)源和閉源組件去簡(jiǎn)化創(chuàng)建和執(zhí)行測(cè)試的流程。其中之一就是Recorder組件可以讓用戶不用編程技巧就能創(chuàng)建和執(zhí)行測(cè)試。你可以用圖形化界面編輯管理自己的測(cè)試案例,而不用編寫(xiě)任何代碼。
它和Selenium一樣擁有靈活性,允許你自動(dòng)化測(cè)試場(chǎng)景,其中包含iframe、多個(gè)瀏覽器標(biāo)簽、文件上傳、ShadowDOM,等等。它同Selenium一樣擁有跨瀏覽器的特性,支持所有主流的瀏覽器(Chrome、Firefox、Safari、Edge、InternetExplorer)。同時(shí),它也包括跨瀏覽器的云框架,支持Windows、Mac以及移動(dòng)設(shè)備上的瀏覽器。
此外,它還有支持JavaScripts執(zhí)行的組件,以及發(fā)送API請(qǐng)求和連接數(shù)據(jù)庫(kù)執(zhí)行SQL語(yǔ)句的組件。
這些組件可用于在測(cè)試中添加額外的驗(yàn)證步驟,并可準(zhǔn)備或清理測(cè)試環(huán)境。
3、Watir
Watir是一個(gè)Ruby的瀏覽器自動(dòng)化測(cè)試開(kāi)源庫(kù)。
Watir與對(duì)瀏覽器的互動(dòng)方式和人類是一樣的:如點(diǎn)擊一個(gè)網(wǎng)頁(yè)元素,填輸入字符。
它的底層使用了Selenium并且提供同樣的靈活性,也支持跨瀏覽器。同時(shí),它也支持iframes以及多個(gè)瀏覽器標(biāo)簽。
Watir最 大的優(yōu)點(diǎn)是API很容易使用,它在繁復(fù)的SeleniumAPI之上增加了一層簡(jiǎn)單性。
不過(guò),它的主要缺點(diǎn)是,它不如Selenium受歡迎,在尋找答案和解決方案方面你會(huì)遇到一些困難。
4、Puppeteer
一個(gè)Node庫(kù),它提供了高級(jí)的API并通過(guò)DevTools協(xié)議來(lái)控制Chrome(或Chromium)。
我認(rèn)為未來(lái)它可以代替Selenium。它也具有支持iframe和多個(gè)瀏覽器標(biāo)簽的靈活性。
值得一提的是,它有2種不同的軟件包:puppeteer-core和puppeteer
唯 一的區(qū)別是puppeteer-core在安裝后不會(huì)自動(dòng)下載Chromium。
puppeteer的主要缺點(diǎn)是缺乏跨瀏覽器功能,因?yàn)樗鼉H適用于基于Chromium的瀏覽器。
即使Opera和Edge遷移到Chromium,也無(wú)法**Firefox和Safari將來(lái)也會(huì)這樣做。
另一個(gè)缺點(diǎn)是,唯 一受支持的語(yǔ)言是Node.js。即使到2020年一切似乎都圍繞JS展開(kāi),但是仍然有一些用戶可能想使用其他語(yǔ)言進(jìn)行自動(dòng)化測(cè)試的開(kāi)發(fā)。
5、Playwright
一個(gè)Node庫(kù),可通過(guò)單個(gè)API在Chromium、Firefox和WebKit瀏覽器上執(zhí)行自動(dòng)化測(cè)試。
Playwright旨在不斷增長(zhǎng)的Web瀏覽器集上實(shí)現(xiàn)自動(dòng)化操作。Playwright類似于Puppeteer。
它支持多頁(yè)面、多域名和iframes測(cè)試,還可以模擬移動(dòng)端設(shè)備,地理指向和權(quán)限控制也是可以測(cè)試的。
即使它具有更廣泛的跨瀏覽器支持,但它也不支持InternetExplorer。
因?yàn)樗且粋€(gè)相對(duì)較新的庫(kù),所以你可能現(xiàn)在在線上找不到很多資源。
如果你在編寫(xiě)Node.js代碼方面有扎實(shí)的經(jīng)驗(yàn),那么Playwright可以一試。