999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Selenium 的Web自動(dòng)化測試框架

2011-06-13 06:36:20
科技傳播 2011年18期

吳 瑩

上海同濟(jì)大學(xué)軟件學(xué)院,上海 201804

基于Selenium 的Web自動(dòng)化測試框架

吳 瑩

上海同濟(jì)大學(xué)軟件學(xué)院,上海 201804

隨著Web應(yīng)用的快速發(fā)展,Agile開發(fā)方法和持續(xù)集成被廣泛運(yùn)用。軟件測試對于保證軟件產(chǎn)品的質(zhì)量至關(guān)重要,而通過搭建良好的測試框架來實(shí)現(xiàn)自動(dòng)化測試,可以降低各測試模塊之間的耦合,提高測試的效率和覆蓋率,同時(shí)也降低了測試的成本,更好的保證軟件質(zhì)量。

自動(dòng)化測試;測試框架;Selenium;TestNG

0 引言

隨著Web應(yīng)用的增多,新的模式解決方案中以Web為核心的應(yīng)用也越來越多。而Web應(yīng)用程序的驗(yàn)收測試常常涉及一些手工任務(wù),例如打開一個(gè)瀏覽器,并執(zhí)行一個(gè)測試用例中所描述的操作。但是手工執(zhí)行的任務(wù)容易出現(xiàn)操作人員人為的錯(cuò)誤,也比較浪費(fèi)時(shí)間。因此,盡可能將這些任務(wù)自動(dòng)化,以消除人為因素,這是一種很好的做法。不僅可以提高軟件測試的可靠性,而且節(jié)約了成本,更好的保證軟件的質(zhì)量。如何提高自動(dòng)化測試腳本的維護(hù)性和移植性,成為一個(gè)亟待解決的問題。

本文通過介紹自動(dòng)化測試工具Selenium,并結(jié)合測試框架TestNG,構(gòu)建分層的Selenium框架進(jìn)行復(fù)雜的Web應(yīng)用的自動(dòng)化測試。

1 Web自動(dòng)化測試

軟件測試對軟件質(zhì)量的保證起著至關(guān)重要的作用,當(dāng)前軟件開發(fā)往往采取Agile開發(fā)方法和持續(xù)集成的策略。當(dāng)測試人員一次又一次地完成相同的測試時(shí),這些測試將變得非常令人厭煩。因此,通過自動(dòng)化測試來實(shí)現(xiàn)重復(fù)的和一致的回歸測試,可以提高測試效率、降低測試成本、保證一致性、實(shí)現(xiàn)快讀的回歸測試、提高測試的可靠性、避免人為因素。

1.1 Web自動(dòng)化測試簡介

自動(dòng)化測試工具很多,有開源的,也有商業(yè)化的,它們各有各的特點(diǎn)。常見的Web自動(dòng)化測試工具有:QTP、Win Runner、Load Runner、Robot、SilkTest、Selenium等。而 Selenium可以說是測試Web最全面的開源自動(dòng)化工具,它支持多種瀏覽器和多種操作系統(tǒng),可以在Windows、Linux、Mac和Solaris上運(yùn)行,而且可以使用多種編程語言進(jìn)行構(gòu)建,如Java、C#、Perl、PHP、Python、Ruby,它可以測試的瀏覽器有IE、Firefox、Opera、Safari、Chrome。

1.2 Web自動(dòng)化測試軟件

1.2.1 Selenium組件

Selenium通過模擬用戶對Web頁面的各種操作,可以精確重現(xiàn)測試人員編寫的測試用例的步驟。Selenium包含的組件有:

1)Selenium Core:是驅(qū)動(dòng)Selenium工作的核心部分,它是用JavaScript編寫的函數(shù)集合,是Selenium IDE和Selenium RC 的引擎;

2)Selenium IDE:是Firefox 的一個(gè)插件,能夠錄制回放用戶在 Firefox 中的行為,具有代碼轉(zhuǎn)換功能,可以將Selenium語言的測試用例轉(zhuǎn)換為C#、Java、Python、Ruby等語言的測試用例,在Selenium-RC 中修改復(fù)用;

3)Selenium RC:Selenium Remote Control的縮寫,是使用具體的語言來編寫測試類。它支持多種瀏覽器,可以使用C#、Java等語言編寫測試用例,易于維護(hù),同時(shí)提供了很好的擴(kuò)展性。Selenium RC在 Web 瀏覽器與需要測試的 Web 應(yīng)用程序間架設(shè)代理服務(wù)器(Selenium Server),使得 JavaScript 引擎與被測 Web 應(yīng)用程序同源,繞開同源策略的限制,進(jìn)而取得對 Web 頁面進(jìn)行各種操作的權(quán)限。

1.2.2 Selenium基本原理

Selenium Server通過網(wǎng)絡(luò)與Selenium客戶端通訊,接受Selenium測試指令。Selenium Core被Selenium Server嵌入到瀏覽器頁面中,就是通過這些JavaScript函數(shù),實(shí)現(xiàn)了用程序?qū)g覽器進(jìn)行控制,執(zhí)行Selenium客戶端腳本中的測試用例,并通過網(wǎng)絡(luò)將執(zhí)行結(jié)果返回給Selenium客戶端,從而實(shí)現(xiàn)Web測試的自動(dòng)化。如下圖所示:

圖1 Selenium基本原理

1.2.3 Selenium Grid實(shí)現(xiàn)并行的web測試

Selenium Grid是Selenium 的一個(gè)擴(kuò)展,提供了一個(gè)類似于網(wǎng)絡(luò)集線器(Hub)的遠(yuǎn)程測試控制器,能夠?qū)y試請求發(fā)送到若干個(gè)遠(yuǎn)程機(jī)器的Selenium RC上。允許同時(shí)并行地、在不同的環(huán)境上運(yùn)行多個(gè)測試任務(wù),極大的加快了Web應(yīng)用的功能測試。如下圖所示:

圖2 Selenium Grid

1.2.4 Selenium2.0與WebDriver

WebDriver是一個(gè)自動(dòng)化測試Web應(yīng)用程序的工具,它的目的是提供一個(gè)友好的API,易于探索和理解,有助于使我們的測試更易于閱讀和維護(hù)。它不依賴于任何特定的測試框架,因此在單元測試或者一個(gè)普通的main方法中都可以很好的使用它。WebDriver是完全獨(dú)立的,在使用它之前不需要啟動(dòng)任何額外的進(jìn)程或者運(yùn)行任何安裝程序,這與Selenium RC中的代理服務(wù)器是不同的。

而Selenium2.0的主要的新功能是將WebDriver API集成到Selenium 1.0中,這將解決隨著提供替代編程接口所帶來的局限性。它的目標(biāo)是建立一個(gè)面向?qū)ο蟮腁PI,它提供了對大量瀏覽器的更多的支持,以及對現(xiàn)代先進(jìn)的web應(yīng)用程序中的測試問題的更好的支持。

2 自動(dòng)化測試框架

2.1 TestNG特性

TestNG尤其適合與Selenium結(jié)合使用,可以實(shí)現(xiàn)其他測試框架無法實(shí)現(xiàn)的測試,例如使用依賴項(xiàng)進(jìn)行測試,重新運(yùn)行失敗了的測試,以及使用單獨(dú)文件中定義的參數(shù)進(jìn)行參數(shù)化測試。所有這些特性結(jié)合在一起,使它在眾多 Web 應(yīng)用程序測試框架中脫穎而出。

2.2 基于Selenium和TestNG 的框架實(shí)現(xiàn)

在測試自動(dòng)化中,測試代碼不僅僅包含測試邏輯,還包含許多其他的代碼,比如URL拼接、Html/xml解析、訪問UI控件,等等。若把測試邏輯與這些無關(guān)的代碼混在一起,測試邏輯將很難理解,也不容易維護(hù)。而采用分層結(jié)構(gòu)可以解決這一問題。在分層的測試框架中,其三層結(jié)構(gòu)為:1)數(shù)據(jù)層,包含UI數(shù)據(jù)和測試數(shù)據(jù);2)測試用例層,包含業(yè)務(wù)邏輯和控制邏輯。驅(qū)動(dòng)程序WebDriver負(fù)責(zé)測試數(shù)據(jù)的載入和測試腳本的運(yùn)行;3)待測系統(tǒng)層。如下圖所示:

圖3 分層測試框架

TestNG支持三個(gè)級別的測試,分別是:Test Suite、Test、Test Method,通過結(jié)合注釋(annotation)的使用,可以實(shí)現(xiàn)測試用例的分組。通過使用testng.xml配置文件,可以實(shí)現(xiàn)參數(shù)化測試,這樣使測試案例的實(shí)現(xiàn)更加靈活。如下示例代碼可以看到:

圖4 示例代碼

上面的代碼中,注釋Parameters指定的參數(shù)在TestNG測試框架的配置文件testng.xml里具體定義,只要修改testng.xml中的參數(shù)值,就能由輸入?yún)?shù)驅(qū)動(dòng)不同的測試用例。如下所示:

圖5 testng.xml配置文件

3 結(jié)論

Selenium極大的簡化了用戶驗(yàn)收測試,尤其當(dāng)使用TestNG驅(qū)動(dòng)的時(shí)候,在完全自動(dòng)化的驗(yàn)收測試中使用這些特性令它更加出眾。基于Selenium和TestNG搭建的測試平臺(tái),可以廣泛的應(yīng)用于Web自動(dòng)化測試。

[1]馮振華,高菊,曾紅衛(wèi).Web 應(yīng)用自動(dòng)化測試的研究[M].計(jì)算機(jī)工程與設(shè)計(jì),2010.

[2]周景才,楊家紅,陳毅波.模型驅(qū)動(dòng)的自動(dòng)化測試架構(gòu)[M].計(jì)算機(jī)工程與應(yīng)用,2010.

[3]鄧青華.軟件自動(dòng)化測試工具研究[J].軟件導(dǎo)刊,2011.[4]Antawan Holmes,Marc Kellogg.Automating Functional Tests Using Selenium[M],2009.

[5]Xinchun Wang,Peijie Xu,Build an Auto Testing Framework Based on Selenium and FitNesse,2009 International Conference on Information Technology and Computer Science.

[6]http://seleniumhq.org/docs/.

[7]http://testng.org/doc/documentation-main.html

[8]Chris McMahon,History of a Large Test Automation Project Using Selenium,2009 Agile Conference.

TP311.5

A

1674-6708(2011)51-0187-02

吳瑩,碩士,研究方向:軟件測試

主站蜘蛛池模板: 国产精品免费电影| 日本道中文字幕久久一区| 无码精品国产VA在线观看DVD| 国产剧情国内精品原创| 久久青草精品一区二区三区| 色吊丝av中文字幕| 国产毛片高清一级国语 | 无码不卡的中文字幕视频| 欧美日韩综合网| 欧美成人第一页| 国产国模一区二区三区四区| 精品国产网| 香蕉久久永久视频| 国产成人精品三级| 婷婷丁香在线观看| 婷婷激情五月网| 亚洲国产看片基地久久1024| 久久毛片网| 国产精品视频观看裸模| 亚洲国产理论片在线播放| 71pao成人国产永久免费视频| 亚洲第一区精品日韩在线播放| 婷婷综合缴情亚洲五月伊| 亚洲国产成人麻豆精品| 天天操精品| P尤物久久99国产综合精品| 凹凸精品免费精品视频| 国产精品密蕾丝视频| 伊人久热这里只有精品视频99| 香蕉国产精品视频| 亚洲91在线精品| 国内精品免费| 国内a级毛片| 国产美女自慰在线观看| 一本大道香蕉久中文在线播放| 亚洲国产精品日韩欧美一区| 亚洲成A人V欧美综合天堂| 日本欧美成人免费| 国产国拍精品视频免费看| 欧美精品1区| 欧美啪啪网| 99热国产这里只有精品无卡顿"| 狠狠色噜噜狠狠狠狠色综合久| 国产浮力第一页永久地址| 亚洲欧美日韩动漫| 好久久免费视频高清| 制服丝袜国产精品| 国产福利在线免费| 久久精品人人做人人爽97| 亚洲视频四区| 在线网站18禁| 久久国产精品国产自线拍| 欧美午夜一区| 欧美成人精品一级在线观看| 5555国产在线观看| 日本尹人综合香蕉在线观看 | 亚洲欧美日韩精品专区| 再看日本中文字幕在线观看| 红杏AV在线无码| 青青久视频| 自拍欧美亚洲| 国产99欧美精品久久精品久久| 久久精品欧美一区二区| 青草午夜精品视频在线观看| 国产又粗又猛又爽| 中文精品久久久久国产网址| 国产熟睡乱子伦视频网站| 日本成人在线不卡视频| 中文成人在线视频| 欧美国产精品拍自| 久久久久无码精品| 亚洲成综合人影院在院播放| 欧美性爱精品一区二区三区| 久久精品免费看一| 青草免费在线观看| 亚洲精品中文字幕无乱码| 久久香蕉国产线| 最新国产成人剧情在线播放| 国产高清免费午夜在线视频| 思思99思思久久最新精品| 欧美亚洲欧美| 日韩无码视频网站|