亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于CTI—TET和SeleniumWebdriver的Web應用自動化測試框架的設計與實現(xiàn)

        2016-10-25 15:45:45葉鵬
        軟件工程 2016年8期
        關鍵詞:自動化測試開源

        葉鵬

        摘 要:基于Web應用的自動化測試隨著互聯(lián)網(wǎng)科技的高速發(fā)展已然成為了許多互聯(lián)網(wǎng)公司不可或缺的技術領域。但價格高昂的商業(yè)測試工具以及其繁冗復雜的使用說明也為不少公司帶來了不小的額外成本。本文將以Solaris平臺的Analytics Webui應用服務為例,介紹如何利用當前互聯(lián)網(wǎng)上比較流行的開源軟件和免費資源,開發(fā)出適合自身需求特點的Web應用自動化測試腳本。成功的Web應用服務的自動化測試腳本的開發(fā)不僅是測試團隊的技術實力體現(xiàn),更是對其應用服務產(chǎn)品本身開發(fā)的高質(zhì)量監(jiān)督和保證。

        關鍵詞:CTI/TET;Selenium;測試框架;開源;自動化測試

        中圖分類號:TP311.5 文獻標識碼:A

        Abstract:With the rapid development of internet technology,the automated testing based on web application has become the indispensible technical field in numerous internet companies.However,the expensive business testing tools and complicated instructions bring much extra cost to the companies.Taking Analytics Webui Application Server on Solaris OS platform as an example,the paper introduces how to utilize the popular open-source software and free resources to develop web application automated test scripts,which can meet their specific requirements.The successful development of automation testing scripts for the web application service products is not only the reflection of testing teams technical strength, but also the high-quality supervision and quality-assurance for the development of web application service products.

        Keywords:CTI/TET;selenium;testing frame;open-source;automated testing

        1 引言(Introduction)

        隨著信息技術的發(fā)展,互聯(lián)網(wǎng)行業(yè)日益昌盛并在不知不覺中逐漸滲透到了各個領域。伴隨著成千上萬的互聯(lián)網(wǎng)應用軟件產(chǎn)品的開發(fā)與產(chǎn)生,人們對基于Web應用的軟件產(chǎn)品的測試需求也與日俱增。

        然而,由于Web服務技術規(guī)范的復雜性,應用部署的網(wǎng)絡分布性和在線運行形態(tài)的多變瞬時性等特點,傳統(tǒng)的軟件測試技術已不能完全滿足其測試工作需求。此外,Web服務提供了一種機器對機器的通訊機制,其軟件測試策略主要基于服務接口進行設計與實現(xiàn),與傳統(tǒng)需要大量人工干預的測試方法不同,難以通過手工測試方式完成,需采用自動化測試方法[1]。

        因此,針對Web應用,業(yè)界涌現(xiàn)出了不少成熟且廣為應用的自動化測試框架,一些知名公司也針對用戶的普遍需求,開發(fā)出了不少優(yōu)秀且功能強大的Web自動化測試工具軟件,比如Parasoft公司的webking,MERCURY公司的LR和QTP,IBM公司的Rational Robot等。自動化測試不僅可以大大減少測試人員的工作量,降低工作難度,還可以避免不必要的人為疏忽與測試盲點,加快測試速度,保證產(chǎn)品質(zhì)量和進度,提高效益[2]。

        當然,不菲的價格以及缺少深層業(yè)務功能測試定制的靈活性也限制了這些商業(yè)化測試軟件在更多公司的普及。不少公司(甚至是一些500強大公司),更傾向于使用開源項目的測試框架和測試平臺,在降低測試工具的來源成本的同時依舊能夠保持靈活的且高技術含量的測試內(nèi)容及出色的測試質(zhì)量。本文意在通過介紹Oracle公司的Solaris Core OS QE技術團隊對某項Solaris Web應用服務(Analytics Webui)的測試,來介紹一組完全基于開源項目的自動化測試框架(CTI-TET+Selenium Webdriver)和Python語言腳本的設計及其實現(xiàn)。

        2 CTI-TET概述(CTI-TET summary)

        2.1 CTI 和 TET

        CTI,即Common Test Infrastructure,通用測試框架;TET,即Test Environment Tookit,也叫TETware。最早可以追溯到1989年,由OpenGroup的一群崇尚免費和自由的工程師開發(fā)并維護。后來,經(jīng)過不斷改進和整合,SUN公司于2005年開始使用基于CTI接口的TET,簡稱CTI-TET,并于2007年公布于OpenSolaris社群。它的出現(xiàn),是為了取代早期的SUN公司的測試工具集Solaris Test Framework(STF)。因其豐富的接口和多語言支持的兼容性,在原SUN公司的Solairs和Solaris Cluster組織里廣為使用和流傳,是專門針對Unix操作系統(tǒng)核心組件和各種核心服務進行自動化測試的。在SUN被Oracle公司收購以后,由于Solaris業(yè)務依舊繼續(xù)開展,使得這套測試框架和工具集得以繼續(xù)沿用和發(fā)展。如今的Oracle Solais團隊,依然在使用和維護這套測試工具集,并利用它強大的測試框架作為他們新項目的開發(fā)與測試的主流自動化測試工具。

        2.2 特點

        如今,TETware已經(jīng)發(fā)展到了version 3.8,任何單位或個人,都可以免費下載獲得并使用它們。當然,不少大公司為了更好地利用這套工具,愿意投入一定的金錢購買license以獲得更好的技術支持和功能擴展。CTI-TET也隨著原型測試工具TETware的更新得到了升級和發(fā)展。作為一款在SUN/Oracle公司使用近10年的成熟測試工具,其在業(yè)界尤其是*unxi領域也享有很高的使用度。概括來說,其測試功能具備以下特點:

        (1)支持執(zhí)行腳本自定義,即可以在測試集合里定義各種非常實用的參數(shù),已期達到不同的測試執(zhí)行效果。例如:

        a.非分布式測試用例的本地化測試運行。

        b.非分布式測試用例的異地化測試運行,多節(jié)點(最多支持999)遠端運行。

        c.分布式測試用例本地與異地同時運行。

        d.單一測試用例的隨機選取運行。

        e.以上不同測試方式的組合并行測試執(zhí)行。

        f.以上不同測試方式的自定義順序測試執(zhí)行。

        (2)支持分布式測試。

        (3)運行模式可以分為隨機式,重復式和并行式。

        (4)本質(zhì)上來講,通過TET的簡單接口,來支持更多的基于CTI Library的工具集OpenGroup在TET里包含了大量的實用的免費測試工具,比如POSIX一致性測試集。

        (5)在運行權限上既支持超級用戶(root)也支持普通用戶。

        (6)在測試結果上,CTI-TET可以自動收集所有測試信息,包括journal日志、錯誤日志、debug日志、系統(tǒng)日志等。并提供基于Web格式的summary報告,通過報告里的超級鏈接,測試者可以很容易的定位每一個測試用例的journal日志。

        3 Selenium概述(Selenium summary)

        嚴格說來,Selenium是一套完整的Web應用程序測試系統(tǒng)。它是一種輕便的可以在多平臺操作系統(tǒng)(Windows、Linux、Macintosh)執(zhí)行的開源軟件,測試用例可以使用HTML tables或者其他多種編程語言來編寫,并且可以直接運行在大部分Web瀏覽器上[3]。它包含了測試錄制(Selenium IDE)、編寫及運行(Selenium Remote Control)和測試的并行處理(Selenium Grid)。早期的Selenium包括Selenium Remote Control(RC)和Selenium IDE,是2004年由ThoughtWorks公司的Jason Huggins用JavaScript語言開發(fā)的,被后人稱為Selenium 1。它可以進行頁面的交互操作,并且可以重復地在不同瀏覽器上進行各種測試操作。后來2006年Google公司的工程師Simon Stewart開啟了一個叫Webdriver的項目,可以直接讓測試工具調(diào)用瀏覽器和操作系統(tǒng)本身提供的內(nèi)置方法,以此來繞過JavaScript的沙盒限制。2008年,Selenium和新開發(fā)的Webdriver整合到了一起,正式發(fā)布為Selenium 2

        (簡稱Webdriver)[4]。

        3.1 Selenium IDE

        Selenium IDE是一種Firefox瀏覽器插件,僅限于安裝Firefox瀏覽器中,可實現(xiàn)網(wǎng)頁操作步驟的錄制和回放,使用此插件可以執(zhí)行簡單的測試邏輯的自動化測試,可將Selenium IDE插件的腳本導出為Java、Python、C#等語言格式的程序代碼,可將人為操作網(wǎng)頁的各種動作直接轉(zhuǎn)化為自動化測試的程序代碼,便于編寫更復雜的測試代碼。

        優(yōu)點:小巧簡單,無需編程經(jīng)驗可快速上手,可以使用列表方式選擇操作命令。

        缺點:錄制腳本轉(zhuǎn)化為其他語言腳本有可能出現(xiàn)一些錯誤,還需要自動化測試工程師做相應的調(diào)試和修改。學習此插件需要熟悉HTML、JavaScript和DOM相關。

        3.2 Webdriver

        (1)實現(xiàn)原理

        Webdirver與Selenium 1的JavaScript注入實現(xiàn)不同,它直接利用瀏覽器的內(nèi)部接口來操作瀏覽器。對于不同平臺中的不同瀏覽器,必須依賴瀏覽器內(nèi)部的Native Componet(原生組件)來實現(xiàn)吧WebDriverAPI調(diào)用轉(zhuǎn)化為瀏覽器內(nèi)部接口的調(diào)用。它使用的是系統(tǒng)內(nèi)部接口或函數(shù),首先要找到這個元素的坐標位置,并在這個坐標點觸發(fā)一個鼠標左鍵的單擊操作。因此,它可以更好的模擬真實的環(huán)境,僅能測試那些可見的頁面元素[4]。

        (2)WebDriver的優(yōu)點[2]:

        a.必須操作真實的瀏覽器,但Webdriver可以使用HtmlUnit進行測試,在不打開瀏覽器的情況下進行快速測試。

        b.基于瀏覽器的內(nèi)部接口實現(xiàn)自動化測試,可以更接近用戶的真實情況。

        c.提供了更簡潔的面向?qū)ο驛PI,提高了測試腳本的編寫效率。

        d.使用過程中無需啟動Selenium Server。

        e.相比較于Selenium 1,可以調(diào)用本機的鍵盤和鼠標事件。

        (3)WebDriver+面向?qū)ο笳Z言

        WebDriver使Selenium用戶在完成自動化測試任務中明顯體會到強大的技術優(yōu)勢。這主要歸功于它對面向?qū)ο笳Z言的支持,比如對Java、Python語言的支持。編寫代碼簡單、易懂,相比較用QTP錄制腳本,Selenium/Webdriver腳本更易于維護,真?zhèn)€測試框架可以用面向?qū)ο笏枷脒M行設計,框架復用性高,不足之處就是它對測試步驟中的驗證支持度不夠,需要用戶自己開發(fā)額外的功能代碼來實現(xiàn)[2]。

        4 測試需求與分析(Testing requirement and analysis)

        (1)測試目標

        關于軟件測試目標,人們在長期的實踐中逐漸有了統(tǒng)一的認識,既首要目標是預防錯誤,如果能實現(xiàn)這一目標,那么就不需要修正錯誤和重新測試[3]。

        (2)Web服務與應用測試

        Web服務(Web service)是針對因特網(wǎng)上分布計算提出的一種基于開放標準、松散耦合及跨平臺的新型軟件構件,已廣泛應用于通信、金融、地理信息、電子政務、手持設備等領域,成為當前和未來網(wǎng)絡分布式應用的主流軟件開發(fā)工具[1]。

        Web應用具備內(nèi)容驅(qū)動,易于導航,平臺無關性、分布式、動態(tài)性、交互性、美觀性、既時性、持續(xù)演化性和安全性等特點,這就決定了針對Web應用的測試相比于桌面應用軟件或系統(tǒng)服務/中間件軟件來說有其自身特有的測試原則和基準。在設計測試內(nèi)容的時候,根據(jù)特點可劃分為:系統(tǒng)性能測試、瀏覽器兼容性測試、Web系統(tǒng)安全性測試,以及Web易用性測試[6]。

        (3)Solaris Analytics Web應用測試

        Oracle Solaris Analytics是一個隸屬于甲骨文公司即將于2017年發(fā)布的新的Oracle Solaris12原生態(tài)核心服務的系統(tǒng)檢測和診斷工具。它是通過調(diào)用Oracle Solaris Analytics Statistics Store的接口,通過網(wǎng)頁將系統(tǒng)性能檢測和診斷的數(shù)據(jù)以圖表的形式展現(xiàn)出來。即使是不具備資深Solaris技術背景的工程師,也可以輕松對系統(tǒng)的性能和故障進行診斷和分析。所以從結構上概括地說,它分為兩個部分,后臺部分就是Soracle Solaris Analytics Statistics Stroe(簡稱Sstore),它為調(diào)用者提供數(shù)據(jù)源接口;前臺就是Oracle Solaris Analytics BUI(簡稱Webui),即通過對接口的調(diào)用,對操作系統(tǒng)的數(shù)據(jù)源以圖表(Chart)的形式在Web頁面里動態(tài)顯示。關于接口的測試雖然也屬于Web應用測試的一個范疇,但不在本文的介紹范圍之內(nèi)。本文著重介紹基于瀏覽器交互操作的測試,即analytics BUI方面的測試。

        該測試實際上是基于事物流的一種功能測試技術。事物由一系列操作組成,可用一個事物流表達之。事物流中的某些操作可能有系統(tǒng)執(zhí)行,某些操作可能由用戶或系統(tǒng)之外的設備執(zhí)行,它們共同協(xié)作,完成用戶的一項工作??梢?,一個事物流是系統(tǒng)行為的一種表示方法,為功能測試建立了程序的動作模式[5]。

        5 測試運行機理與基本流程(Mechanism for testing

        execution and elementary procedure)

        5.1 自動化測試

        軟件自動化測試就是使用自動化測試工具來代替手工進行一系列測試動作,以及驗證軟件是否滿足需求,包括測試活動的管理和實施。自動化測試主要是通過所開發(fā)的軟件測試工具,腳本等來實現(xiàn),其目的是減輕手工測試的工作量,已期達到節(jié)約資源(包括人力、物力等),保證軟件質(zhì)量,縮短測試周期,提高測試效率的目的[4]。自動化測試的優(yōu)點:

        a.程序的回歸測試更方便。

        b.可以運行更多更繁瑣的測試。

        c.執(zhí)行手工測試很難或不可能進行的測試。

        d.充分利用資源。

        e.測試具有一致性和可重復性。

        f.讓產(chǎn)品更快面向市場。

        g.增加軟件信任度。

        5.2 CTI-TET/Webui-core

        既然自動化測試具備那么多的優(yōu)點,如何部署和開發(fā)一個針對本W(wǎng)eb應用的自動化測試腳本使其可以代替人工測試來高效的完成回歸測試任務,便成為了工程師們需要花精力去研究的工作。經(jīng)過一段時間的探討和研究,工程師們終于完成了基于甲骨文公司內(nèi)部已有的測試框架的自動化腳本的設計與開發(fā)。這組測試腳本的Suite目前命名為webui-core。

        如圖1所示,測試需要兩臺裝有Solaris操作系統(tǒng)的機器。一臺為測試機,負責運行基于CTI-TET測試框架的TEST SUITE(webui-core);另一臺為目標被測試機,裝有Analytics Webui服務和Analytics Sstore服務,Webui需要根據(jù)訪問請求隨時調(diào)用Sstore API以獲得能動態(tài)匯報本機系統(tǒng)性能及狀態(tài)的源數(shù)據(jù)。

        測試機通過運行SUITE測試腳本,向遠端的被測試主機的Analytics Webui發(fā)送Secure HTTP訪問請求,通過登錄驗證建立session后,就可以進行一組測試了,比如點選按鈕、創(chuàng)建/刪除圖表、暫停/啟動動態(tài)曲線圖頁面等。在完成一組測試內(nèi)容之后,通過點選logout按鈕正常退出來終止session。

        在測試運行過程中,SUITE測試機會經(jīng)常以無密碼SSH通道方式在后臺訪問被測試主機終端,進行一系列必要的后臺操作工作,比如清理webui json配置文件、重啟服務、通過CLI指令調(diào)用Sstore以獲得進行測試結果校驗比對的源數(shù)據(jù)等。

        6 測試腳本設計與實現(xiàn)(Design and implementation

        for testing script)

        6.1 測試功能模塊

        基于Web頁面的測試,要想達到Solaris軟件合格的工業(yè)級質(zhì)量檢測和保證,需要對Analytics Webui應用有比較深入的理解。因此,在設計測試用例的時候,就需要針對其功能和業(yè)務內(nèi)容,通過參閱該軟件設計和文檔說明,進行詳實的測試需求分析。為了便于測試者快速理解設計思路,以及將來測試腳本的實現(xiàn),我們將被測業(yè)務以模塊的形式進行分類,每個模塊可以理解為包含一組相同事物流的測試用例。如圖2所示,我們將被測業(yè)務按功能劃分為八大模塊。

        6.2 設計與實現(xiàn)

        在完成被測模塊的劃分以后,接下來就可以考慮具體的軟件設計和實現(xiàn)了。CTI-TET這套測試體系,支持多種編程語言的實現(xiàn),例如C、Java、Perl、Ksh、Python等。在綜合考慮開發(fā)成本、可擴展性、可維護性后,我們決定采用Python語言作為主要的腳本實現(xiàn)語言。Python之所以能夠在時下成為比較流行的廣受大家歡迎的語言,與其語法簡明,易學易用,以及對OO(面向?qū)ο螅┰O計很好支持有很大的關系。通過對testcase類的設計,我們可以很容易的實現(xiàn)類繼承以及方法的復用,加上Selenium的WebDriver為Python也提供了非常豐富強大的API接口,在腳本設計與實現(xiàn)上還是相對比較容易的。如圖3所示,通過對某一事物模塊的測試運行的順序圖示例,我們可以對它的測試腳本的設計特點及運行過程窺見一斑。

        順序圖[3]是基于UML的用于建立面向?qū)ο蠓治龅妮o助模型,它是二維的,其中,垂直方向表示運行時間,水平方向代表不同的對象或參與者。在這個順序圖里,對象分別指run_test、tc_module、tp_case_01、tp_case_02。由于是單進程運行,所以我們可以看到這四個運行對象在時間上彼此銜接,但是不存在運行重疊(即不存在多線程/進程并行執(zhí)行的情況)。

        當然,圖3介紹的只是suite中的通用運行環(huán)節(jié),要完全實現(xiàn)測試的腳本自動化,還需要在并行測試、configuration/unconfiguation、x86/i386平臺劃分、3rdtools需求規(guī)劃等方面進行考慮。此外,如何合理利用CTI的日志報告的接口函數(shù)cti_report(),以及python自帶的logging module來定義測試結果報告格式,以及在后期如何設計DEBUG接口以期高效快速的進行故障分析和維護,都需要進行合理的規(guī)劃與設計。

        7 結論(Conclusion)

        自動化測試跟早期的傳統(tǒng)的軟件手工化測試在測試理念和測試方式上都有很大的不同。雖然它由于缺少測試靈活性而無法完全替代后者,并且也很不適合在產(chǎn)品開發(fā)初期就被過早地使用,但在需要大量重復性工作的回歸測試需求中,以及一些無法通過手動操作來進行的測試(比如性能測試、極限應力測試等),它就變得非常的不可或缺和重要。綜合考慮時間成本和測試質(zhì)量,它是產(chǎn)品開發(fā)后期及產(chǎn)品更新與維護過程中的最佳測試選擇方式。

        而基于Web頁面的自動化測試由于其自身的特點,相對于CLI(交互式命令行)測試在自動化測試設計與實現(xiàn)上,由于涉及較廣的技術領域,在部署和環(huán)境搭建上也相對比較繁冗復雜,因此存在一定的技術難度(尤其是在非Windows系統(tǒng)環(huán)境下),這為很多在該領域進行測試與測試腳本開發(fā)的工程師帶來了不少挑戰(zhàn),無形中也為該領域Web相關產(chǎn)品的開發(fā)進度和質(zhì)量監(jiān)測帶來了一定的影響。對于一個長期從事*unix系統(tǒng)服務,以及中間件相關軟件測試的團隊(Solaris Core OS QE Team),測試工程師們需要開闊技術視野和思路,不被固有的設計理念和模式禁錮,應該學會利用已有的開源資源(CTI-TET、Python/Ksh、Selenium/Webdriver)和測試環(huán)境(Solaris OS/Desktop/Firefox),并發(fā)揮自身的硬件測試環(huán)境優(yōu)勢(強大的SPARC硬件性能),創(chuàng)造性的設計新的測試框架并付諸實現(xiàn)。這樣才能豐富和完善團隊的測試領域和測試技術水平,同時也能夠更好的完成產(chǎn)品的質(zhì)量評估與檢測,協(xié)助公司開發(fā)部門順利完成新產(chǎn)品的研發(fā)工作。

        參考文獻(References)

        [1] 馬春燕,朱怡安,陸偉.Web服務自動化測試技術[J].計算機科學,2012,2(2):162.

        [2] 盧晨.基于Selenium進行Web應用測試研究[J].軟件導刊,2015,

        14(1):154-155.

        [3] Christof Ebert.Web Application Tests with Selenium[J].IEEE Software.September/October 2009:88.

        [4] 吳曉華.Selenium WebDriver實戰(zhàn)寶典[M].北京:電子工業(yè)出版社,2015.

        [5] 王立福,孫艷春,劉學洋.軟件工程(第3版)[M].北京:北京大學出版社,2009.

        [6] 蘭景英,王永恒.Web應用程序測試[M].北京:清華大學出版社,2015.

        作者簡介:

        葉 鵬(1976-),男,碩士,高級工程師.研究領域:Linux分

        布式集群文件系統(tǒng)測試,Solaris操作系統(tǒng)install/

        analytics測試.

        猜你喜歡
        自動化測試開源
        校園武術“學、練、賽”一體化實踐探索
        體育師友(2022年1期)2022-04-17 10:42:34
        五毛錢能買多少頭牛
        2019開源杰出貢獻獎
        Hadoop性能測試自動化研究
        軟件導刊(2016年12期)2017-01-21 14:43:14
        數(shù)據(jù)驅(qū)動和關鍵字驅(qū)動的研究與應用
        軟件(2016年4期)2017-01-20 09:56:35
        淺談空調(diào)控制器自動化測試
        東方教育(2016年7期)2017-01-17 21:28:10
        基于多總線結構的電路板測試系統(tǒng)設計研究
        價值工程(2016年32期)2016-12-20 20:32:01
        航空航天與國防電子新形勢下自動化測試系統(tǒng)的應用
        價值工程(2016年29期)2016-11-14 02:40:46
        自動化測試實現(xiàn)研究
        中國市場(2016年34期)2016-10-15 04:20:40
        大家說:開源、人工智能及創(chuàng)新
        国产精品成熟老女人| 国产免费无码9191精品| 40岁大乳的熟妇在线观看 | 久久久久国产精品免费免费搜索| 国产在线一区二区三区av| 日韩国产有码精品一区二在线 | 无码一区二区丝袜| 女同舌吻互慰一区二区| 久久精品人妻少妇一二三区| 无码人妻一区二区三区免费视频 | aa片在线观看视频在线播放| 中文字幕人妻丝袜乱一区三区| 国产av专区一区二区三区| 中文字幕这里都是精品| 在线天堂av一区二区| 国产av无码国产av毛片| 国产精品国产午夜免费看福利| 在线av野外国语对白| 亚洲女同性恋在线播放专区| av网站免费在线不卡| 亚洲精品有码日本久久久| 色费女人18毛片a级毛片视频| 性欧美大战久久久久久久久| 亚洲一区精品中文字幕| 手机av在线播放网站| 精品久久久久久综合日本| 伊人久久精品久久亚洲一区| аⅴ天堂国产最新版在线中文| 男女男在线精品免费观看| 国产一区白浆在线观看| 777米奇色狠狠俺去啦| 国产av人人夜夜澡人人爽| 久久精品中文字幕第一页| 中文字幕日本av网站| 国产成人无码a在线观看不卡| 公粗挺进了我的密道在线播放贝壳 | 日日麻批免费40分钟无码| 先锋影音最新色资源站| 国产亚洲精品综合在线网址| 日本啪啪视频一区二区| 中文字幕有码无码人妻av蜜桃|