溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

面向Web的自動化測試工具Watij怎么用

發(fā)布時間:2021-11-17 16:18:33 來源:億速云 閱讀:133 作者:柒染 欄目:web開發(fā)

面向Web的自動化測試工具Watij怎么用,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

隨著軟件產(chǎn)業(yè)的不斷成熟,軟件質(zhì)量保證越來越受軟件企業(yè)重視,被視為軟件企業(yè)的生命。軟件測試作為軟件質(zhì)量保證中的一個重要手段,它直接關(guān)系到軟件的質(zhì)量、開發(fā)周期和開發(fā)成本,受到越來越大的重視,被貫穿在軟件的整個開發(fā)和維護的生命周期。作為軟件測試的一個重要分支,軟件自動化測試正以其自動化程度高、實用性強、測試效率高等不可取代的優(yōu)點,引起了測試技術(shù)人員的廣泛關(guān)注,成為軟件測試的方向。層出不窮的軟件自動化測試技術(shù)及軟件自動化測試框架正在被人們廣泛的開發(fā)和利用,在軟件測試自動化中發(fā)揮著突出的作用。而選取何種自動化測試的方案也隨之產(chǎn)生,測試人員更加需要一個功能強大且簡單易用的自動化測試工具,輔助測試人員搭建測試框架,設(shè)計自動測試程序,而又盡可能減少自動化測試程序的開發(fā)和維護成本。本文所要介紹的 Watij(Web Application Testing in Java)是一個優(yōu)秀的開源工具,用于開發(fā)基于 Web 應(yīng)用的自動化測試程序。它使用 Java 語言,提供了輕量級的自動化測試程序框架和豐富的程序開發(fā)庫,有效地加速了自動化測試程序開發(fā)。

首先簡要地介紹了 Watij 的一些主要功能及特點,其次介紹了 Watij 的安裝及配置流程。

Watij 的簡介

隨著 Web 產(chǎn)品的廣泛應(yīng)用,新的模式解決方案中以 Web 為核心的應(yīng)用也越來越多,很多公司的架構(gòu)都采取 B/S 模式,以及對于 Web 的應(yīng)用,所以對 Web 產(chǎn)品的測試就顯得越來越重要,如何對 Web 產(chǎn)品進行自動化測試成為當今社會研究的熱點問題之一。

Web 的測試方法應(yīng)盡量涵蓋 Web 程序的各個方面,測試技術(shù)方面也應(yīng)在繼承傳統(tǒng)測試的基礎(chǔ)上結(jié)合 Web 產(chǎn)品的應(yīng)用特點。本文介紹了一種新的基于 Web 的自動化測試工具 - Watij。Watij 是 Web Application Testing in Java 的縮寫。Watij 是一個使用 Java 編程語言實現(xiàn)的開源自動化測試框架,它相比于其他的自動化測試框架,具有小巧,靈活等特點。Watij 也提供了強大的功能,可以滿足自動化測試人員的各個方面的需要。

運用 Watij 的自動化測試框架可以使自動化開發(fā)人員利用 Java 編程語言對產(chǎn)品進行自動化測試腳本的開發(fā)。Watij 擁有較為便捷的開發(fā)模式,Watij 提供了豐富的開發(fā)庫,封裝了包括瀏覽器窗口 windows,button,link,,dialog,image,table,div 等絕大多數(shù) HTML 對象類型,方便測試人員快速構(gòu)建自動化測試程序。 同時,它提供了大量的應(yīng)用方法以及應(yīng)用接口,這些應(yīng)用接口函數(shù)幾乎包括了所有對于網(wǎng)頁操作的方法。開發(fā)人員可以調(diào)用這些方法方便地對其進行使用。另外,Watij 具有高效、快速等特點,開發(fā)人員只需要運用提供的方法編寫測試腳本并執(zhí)行改腳本,在測試運行過程中就如同真實的用戶在操作一樣,使自動化測試工作幾乎模擬人的手工測試一樣。應(yīng)用基于 Watij 的自動化測試框架能夠使自動化腳本的開發(fā)變得更為簡單而且更具有實用性。

Watij 的安裝及配置

為了能夠更為詳實的說明 Watij 自動化測試框架,下面將要介紹 Watij 的安裝及配置過程,使開發(fā)人員能夠更為快捷便利地使用 Watij 這套自動化測試框架進行自動化的測試工作。

◆ 軟件安裝包,并進行解壓。

◆ Watij_release_3.2.1 的下載地址:http://sourceforge.net/projects/Watij/files/

◆ 將文件中的 jniwrap.dll 拷到 C:\windows\system32\ 目錄下。

◆ 打開一個 Java IDE(如 Eclipse), 并創(chuàng)建一個新的工程。

◆ 將 Watij.jar 以及 lib 目錄下的所有 jar 包都加載到工程的 classpath 中,如圖 1 所示。

添加jar 包的具體操作步驟如下:

依次打開 New->Project,選擇“Java Project”,點擊“Next”;

“Project Name”中輸入“Watij”,點擊“Next”;

在“Java Settings”中選擇“Libraries”的選項,點擊“Add External JARs”;

添加“Watij.jar”和 lib 目錄下的所有 jar,點擊“Finish”。

創(chuàng)建 JUnit TestCase,并確保包含這句話“import static Watij.finders.SymbolFactory.\*;”

圖 1. 導入 jar 包示意圖

面向Web的自動化測試工具Watij怎么用

首先本節(jié)介紹了 Watij 的應(yīng)用方法,然后通過一個具體的應(yīng)用實例來介紹 Watij 的使用。由于 Watij 目前只對 IE 瀏覽器有較好的支持,故以下涉及的內(nèi)容都是以 Windows 平臺為例,此外,RFT(Rational Functional Tester)是一款先進的、自動化的功能和回歸測試工具,它適用于測試人員和 GUI 開發(fā)人員,故本文采用 RFT 作為 Watij 的 Java IDE 進行描述的;而后文章簡單地介紹 Watij BeanShell 的使用方法;***本節(jié)對 Watij 和 Selenium 這兩個目前較為流行地自動化測試框架進行簡要的比較與說明,說明了兩者的區(qū)別與聯(lián)系,以及這兩者的各自的應(yīng)用范圍及應(yīng)用領(lǐng)域,說明了在何種情況下應(yīng)用那款自動化測試框架才會使其發(fā)揮更大的作用。

Watij 的應(yīng)用方法

首先簡要介紹 Watij 的功用。Watij 可以驅(qū)動 HTML 在瀏覽器上的 Web 應(yīng)用,它不需要像 Active X、JavaApplets、Macromedia Flash 等類似的插件服務(wù)一樣。

在基于 Web 的自動化測試中,如何獲取網(wǎng)頁對象屬性是開發(fā) GUI 自動化測試程序的關(guān)鍵步驟。由于 Watij 本身沒有提供類似于 RFT 中 Object Capture 的對象捕捉器,但在 Watij 程序的開發(fā)中,我們可以使用一些第三方提供的運行在瀏覽器端的 HTML 查看器,進行網(wǎng)頁對象的獲取,以便查看網(wǎng)頁的結(jié)構(gòu)和對象的屬性,這樣將使我們的開發(fā)工作變得更為方便。對于 IE 瀏覽器,可安裝 Microsoft IE Explorer Develop Toolbar,如果用戶使用的 IE 瀏覽器的版本在 8.0 以上,也可以通過點擊 F12,選擇開發(fā)人員工具,也可以達到查看某個對象屬性的目的。

在使用 Watij 進行編寫自動化腳本的時候,開發(fā)人員需要使用類似于 XPath 這樣的編程語言去查看或者定位要使用的對象屬性。XPath 是一門在 XML 文檔中查找信息的語言。它用于在 XML 文檔中通過元素和屬性進行導航。這樣開發(fā)人員才可以有效地進行自動化腳本的開發(fā)與應(yīng)用。

Watij 的應(yīng)用實例

1. 將工程建立完成后,需要新建一個“Jnit Test Case”(如圖 2 所示),例如輸入“Name”為“TestWatijIBM”(圖 3),點擊“Finish”。就可以建立一個新的腳本,就可以進行編寫程序,進行自動化測試的工作了。

圖 2. 新建“Junit Test Case”

面向Web的自動化測試工具Watij怎么用

圖 3. New Junit Test Case 界面

面向Web的自動化測試工具Watij怎么用

2. 下面我們以“IBM”為關(guān)鍵字進行百度搜索的操作做為實例進行介紹。

清單 1. 以“IBM”為關(guān)鍵字進行百度搜索

import static watij.finders.SymbolFactory.name;    import junit.framework.TestCase;    import watij.runtime.ie.IE;     public class TestWatijIBM extends TestCase {    public void testgooglesearch() throws Exception{    IE ie = new IE();    // 打開 IE 瀏覽器   ie.start();    // 轉(zhuǎn)到百度主頁   ie.goTo("www.baidu.com");    // 在輸入框內(nèi)輸入“IBM”   ie.textField(name,"wd").set("IBM");    // 點擊“百度一下”進行查找   ie.button("百度一下").click();    // 等待 3 秒   ie.wait(3);    }    }

3. 運行:輸入以上代碼并保存后,選擇“Run as”->“JUnit Test”,如圖 4 所示。

圖 4. 運行代碼

面向Web的自動化測試工具Watij怎么用

4. 執(zhí)行結(jié)果:如果執(zhí)行過程沒有報錯時,JUnit 執(zhí)行狀態(tài)顯示為綠色(如圖 5 所示),并且能夠打開百度的主搜索界面,對“IBM”為關(guān)鍵字的網(wǎng)頁進行檢索(如圖 6 所示)。

圖 5. 運行結(jié)果圖

面向Web的自動化測試工具Watij怎么用

圖 6. 運行 Baidu 界面檢索圖

面向Web的自動化測試工具Watij怎么用

5. 具體代碼解釋

IE ie = new IE(); IE 對象實例化

ie.start(); 啟動 IE 瀏覽器

ie.goTo("www.ibm.com"); 轉(zhuǎn)到 www.baidu.com 主頁

ie.textField(name,"wd").set("IBM"); 在輸入框中輸入查找內(nèi)容:“IBM”

ie.button("百度一下").click(); 利用 click 函數(shù)點擊“百度一下”這個 Button

此外,Watij 提供了多種常見的 Web 對象的識別與操作的支持,例如:窗口的控制(***化及最小化操作),超鏈接的點擊,多選框的選擇,CheckBox 的選中與清除,RadioBox 的選中與清除,下拉框和列表框的選擇,文本框的輸入,圖片及各種表格的插入與刪除,各種按鈕的點擊,F(xiàn)rame 的訪問以及彈出窗口的控制等。

Watij BeanShell 的介紹

Watij 提供了 BeanShell 的開發(fā)工具,方便了開發(fā)人員編寫腳本進行自動化的測試或?qū)δ_本進行各種調(diào)試的工作。

操作步驟如下所以:

雙擊 launchWatijBeanShell.bat 或用命令行執(zhí)行,進入 BeanShell 的操作界面;

圖 7 為用命令行執(zhí)行 launchWatijBeanShell.bat 命令。

圖 8 為 BeanShell 的操作界面,BeanShell 提供的操作界面具有操作方便、簡單等優(yōu)點。

圖 7. 命令行執(zhí)行 launchWatijBeanShell.bat

面向Web的自動化測試工具Watij怎么用

圖 8. BeanShell 操作界面

面向Web的自動化測試工具Watij怎么用

在 bsh Workspace 中輸入腳本腳本語言進行相關(guān)的測試工作。

圖 9. 利用 BeanShell 執(zhí)行 Baidu 搜索操作

面向Web的自動化測試工具Watij怎么用

需要說明的是 BeanShell 的是逐步執(zhí)行的,即每一步 bsh 都需要去執(zhí)行,方便開發(fā)人員對代碼進行相關(guān)的 debug 操作,使開發(fā)人員能夠方便地調(diào)試程序。BeanShell 也提供了相應(yīng)的字體設(shè)置功能,開發(fā)人員可以根據(jù)自己的需要進行相應(yīng)的字體設(shè)置。

Watij 與 Selenium 的比較

下面本文將介紹 Watij 和 Selenium 的異同。Watij 和 Selenium 都是可用于網(wǎng)頁自動化測試的開源工具,兩者都具有各自的特點及優(yōu)勢,它們之間有何異同,到底要如何取舍?首先,Watij 和 Selenium 都是直接在瀏覽器中運行腳本,并允許在腳本運行時將瀏覽器最小化,這意味著不需要因為自動化測試而占用一臺機器的資源。其次,兩者都需要運用 XPath 去編寫腳本,所以要求使用者必備 XPath 的基本知識。但是,它們在編寫腳本是有一些地方是有區(qū)別的,下面本文將執(zhí)行相同功能的代碼比較進行簡單說明。

清單 2 是用 Watij 執(zhí)行網(wǎng)頁登陸操作的代碼:

清單 2. 執(zhí)行登陸網(wǎng)頁操作的代碼清單

import junit.framework.TestCase;    import static watij.finders.SymbolFactory.name;    import watij.runtime.ie.IE;     public class TestConcord extends TestCase {    public void testconcordfunction() throws Exception{    IE ie = new IE();    // 打開 IE 瀏覽器   ie.start();    // 轉(zhuǎn)到 concord77    ie.goTo("http://concord77.cn.ibm.com/files/app?lang=en_US#/pinnedfiles");    // 窗口***化   ie.maximize();    // 安全認證   ie.link(name, "overridelink").click();    // 在輸入框內(nèi)輸入用戶名和密碼   ie.textField(name,"j_username").set("Abdul_000_006");    ie.textField(name, "j_password").set("passw0rd");    // 點擊登陸   ie.button("登錄").click();    // 保存結(jié)果圖   ie.screenCapture(“D:\\Savelogin.png”);    }    }

由于本文主要介紹 Watij 的自動化測試框架,故不涉及完整的 Selenium 的執(zhí)行代碼。如果用 Selenium 腳本語言編寫上述功能,***的不同在于 Selenium 必須用完整的 XPath 語句輸入才可以編寫執(zhí)行。

例如:

Watij 腳本語言執(zhí)行點擊某個 link: ie.link(name, "overridelink").click();

Selenium 腳本語言執(zhí)行點擊某個 link: Selenium.click("//a[@name='overridelink']");

相比這下 Watij 的代碼會顯得更為清晰、靈活,易于理解。

此外相比于 Selenium,Watij 具有更快的執(zhí)行速度。因為 Watij 是直接調(diào)用 .dll 的文件,不用多加一個容器去加載,而需要啟動一個 jetty 容器。故 Watij 比 Selenium 調(diào)用過程更為直接,所以運行速度要超過 Selenium。此外,Selenium 對彈出窗口、上傳、下載等功能支持的并不好,常常需要借助第三方工具包,如 AutoIt3,Watij 在這方面的處理上要好于 Selenium;另外,Watij 提供了截圖的方法,這是 Selenium 目前所不具備的。但是,Watij 目前只對 IE 瀏覽器有較好的支持,這正是 Selenium 的優(yōu)勢所在,Selenium 可以支持多瀏覽器,如 IE,F(xiàn)irefox, Safari 等等,另外,Selenium 提供了錄制和回放腳本的功能,并可以將錄制好的腳本轉(zhuǎn)換成各種主流編程語言,Watij 則未提供此功能。

所以,當測試人員測試的產(chǎn)品是基于 IE 瀏覽器的,Watij 顯然更具優(yōu)勢,但當測試人員測試的產(chǎn)品是基于多瀏覽器的,或者需要測試瀏覽器之間的兼容性,顯然 Selenium 會成為更好的選擇。

Watij 的特點及優(yōu)勢

Watij 提供了一套基于 Watir 的純 Java API 用于 Web 應(yīng)用程序自動測試。Watij 通過一個真實的瀏覽器來實現(xiàn)自動化測試。

Web 自動化測試大致采用兩種方法實現(xiàn):***種方法是協(xié)議測試,這種方法是建立在 HTTP 協(xié)議上的測試,通過 get 或 post 等方式向服務(wù)器發(fā)送請求,然后對從服務(wù)器返回的結(jié)果數(shù)據(jù)進行解析、驗證等操作;第二種方法是基于瀏覽器端的測試,這種測試是通過啟動真實瀏覽器環(huán)境并自動執(zhí)行瀏覽器端的相關(guān)操作(如點擊按鈕、文本框的輸入及選擇列表框等 )進行測試。Watij 作為 sourceforge 上一個純 Java API 的 Web 自動化測試工具,它以第二種測試方法為原理進行工作,它是完全開源免費的軟件包,并且在網(wǎng)頁元素定位和跨平臺部署等方面有著出色的表現(xiàn)。

Watij 自動化測試框架還有如下優(yōu)勢:

◆ 它像是模仿真實的用戶對網(wǎng)頁進行操作的,而且具有較快的運行速度。

◆ Watij 對網(wǎng)頁進行操作時是得到網(wǎng)頁的原始數(shù)據(jù),這樣就可以更為準確地,客觀地進行自動化腳本的開發(fā)及驗證工作。

◆ Watij 可結(jié)合任何的 Java IDE 進行使用,它們的配置過程非常簡單,免去了開發(fā)人員由于配置環(huán)境的問題而浪費大量的時間和精力。

◆ Watij 相比于其他的基于 Web 的自動化測試工具有很好的執(zhí)行結(jié)果,提高了開發(fā)人員的工作效率。

◆ Watij 提供了很好的 Debug 工具,為開發(fā)人員進行調(diào)試工作提供了方便。

◆ Watij 程序在運行時,允許測試人員在該測試機器上訪問其他網(wǎng)頁或者進行其他操作而不會影響到對象識別的結(jié)果。

關(guān)于面向Web的自動化測試工具Watij怎么用問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

web
AI