<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>
            • 軟件測試技術(shù)
            • 軟件測試博客
            • 軟件測試視頻
            • 開(kāi)源軟件測試技術(shù)
            • 軟件測試論壇
            • 軟件測試沙龍
            • 軟件測試資料下載
            • 軟件測試雜志
            • 軟件測試人才招聘
              暫時(shí)沒(méi)有公告

            字號: | 推薦給好友 上一篇 | 下一篇

            軟件測試中的一個(gè)智能的 Web 界面測試系統

            發(fā)布: 2010-9-26 09:13 | 作者: 網(wǎng)絡(luò )轉載 | 來(lái)源: 領(lǐng)測軟件測試網(wǎng)采編 | 查看: 267次 | 進(jìn)入軟件測試論壇討論

            領(lǐng)測軟件測試網(wǎng)

            軟件測試中的一個(gè)智能的 Web 界面測試系統

            Web2.0 是相對Web1.0 的新的一類(lèi)互聯(lián)網(wǎng)應用的統稱(chēng)。2001年秋天互聯(lián)網(wǎng)公司(dot-com)泡沫的破滅標志著(zhù)互聯(lián)網(wǎng)的一個(gè)轉折點(diǎn)。許多人斷定互聯(lián)網(wǎng)被過(guò)分炒作,事實(shí)上網(wǎng)絡(luò )泡沫和相繼而來(lái)的股市大衰退看起來(lái)像是所有技術(shù)革命的共同特征。股市大衰退通常標志著(zhù)蒸蒸日上的技術(shù)已經(jīng)開(kāi)始占領(lǐng)中央舞臺。假冒者被驅逐,而真正成功的故事展示了它們的力量,同時(shí)人們開(kāi)始理解了是什么將一個(gè)故事同另外一個(gè)區分開(kāi)來(lái)。   在那個(gè)會(huì )議之后的一年半的時(shí)間里,“Web 2.0”一詞已經(jīng)深入人心,從Google上可以搜索到4.7億  web2.0
            以上的鏈接。但是,至今關(guān)于Web 2.0的含義仍存在極大的分歧,一些人將Web 2.0貶低為毫無(wú)疑義的一個(gè)行銷(xiāo)炒作口號,而其他一些人則將之理解為一種新的傳統理念。   在我們當初的頭腦風(fēng)暴中,我們已經(jīng)用一些例子,公式化地表達了我們對Web 2.0的理解:   
             Web 1.0 Web 2.0
            1 DoubleClick Google AdSense 
            2 Ofoto Flickr
            3 Akamai BitTorrent
            4 mp3.com  Napster
            5 大英百科全書(shū)在線(xiàn)(Britannica Online) 維基百科全書(shū)(Wikipedia)
            6 個(gè)人網(wǎng)站 博客(blogging) 
            7 evite upcoming.org和EVDB 
            8 域名投機 搜索引擎優(yōu)化[1][2]
            9 屏幕抓。╯creen scraping) 網(wǎng)絡(luò )服務(wù)(web services)
            10 發(fā)布 參與
            11 內容管理系統 維基
            12 目錄(分類(lèi)) 標簽(“分眾分類(lèi)”,folksonomy)
            13 粘性 聚合
             這個(gè)列表還會(huì )不斷繼續下去。但是到底是什么,使得我們認定一個(gè)應用程序或一種方式為作為所謂“Web 1.0”,而把另外一個(gè)叫做“Web 2.0”呢?(這個(gè)問(wèn)題尤為緊迫,因為Web 2.0的觀(guān)念  web2.0
            已經(jīng)傳播的如此廣泛,以至于很多公司正在將這個(gè)詞加到他們的行銷(xiāo)炒作中,但卻沒(méi)有真正理解其含義。同時(shí)這個(gè)問(wèn)題也尤為困難,因為許多嗜好口號的創(chuàng )業(yè)公司顯然不是Web 2.0,而一些我們認為是Web 2.0的應用程序,例如Napster和BitTorrent,甚至不是真正適當的網(wǎng)絡(luò )程序。   然而,拋開(kāi)紛繁蕪雜的Web 2.0現象,進(jìn)而將其放到科技發(fā)展與社會(huì )變革的大視野下來(lái)看,Web 2.0可以說(shuō)是信息技術(shù)發(fā)展引發(fā)網(wǎng)絡(luò )革命所帶來(lái)的面向未來(lái)、以人為本的創(chuàng )新2.0模式在互聯(lián)網(wǎng)領(lǐng)域的典型體現,是由專(zhuān)業(yè)人員織網(wǎng)到所有用戶(hù)參與織網(wǎng)的創(chuàng )新民主化進(jìn)程的生動(dòng)注釋。

            Web2.0 是一個(gè)體現當代 WWW 技術(shù)發(fā)展趨勢的流行概念。它極力促進(jìn)創(chuàng )造性、信息交互性以及用戶(hù)間協(xié)作性的 Web 設計思想的推廣。這些想法帶來(lái)了各種豐富多彩的基于 Web 的互動(dòng)和資訊服務(wù)的開(kāi)發(fā)和演變。例如,社交網(wǎng)站,WIKI 以及博客。

            Web2.0 最突出的特色就是豐富的客戶(hù)端技術(shù)。主要有三大類(lèi):

            • Ajax 和 JSON

            Ajax(Asynchronous JavaScript + XML)是 Web2.0 的主要技術(shù)。網(wǎng)頁(yè)瀏覽不再是單擊一下,然后等待整個(gè)頁(yè)面重新裝載,而是可以用鼠標順暢地滾動(dòng)地圖,等待局部數據的自動(dòng)刷新。典型的事例應用是 Google Map。

            JSON(JavaScript Object Notation)是 Ajax 的衍生技術(shù)之一。Web 數據通常通過(guò) XML 傳輸。而 JSON 對象是一系列以逗號分隔的 name:value 對,與 XML 相比更加的簡(jiǎn)潔,傳輸效率高,適合大規模數據傳輸。典型的應用事例是 Live Search Box。

            • Restful

            REST(Representational State Transfer)是一種輕量級的面向數據庫的 Web 服務(wù)架構。REST 架構遵循 CRUD 原則,對于資源只需要四種行為:Create(創(chuàng )建)、Read(讀。、Update(更新)和 Delete(刪除)就可以完成對其操作和處理。典型的應用事例包括 Facebook 和 Flickr。

            • RIA

            RIA(Rich Internet Application)是如今非常流行的 Web 技術(shù)。它的界面類(lèi)似于一般的桌面程序,比一般的 Web 程序更加豐富并且互動(dòng)。目前比較流行的技術(shù)有三項:Abobe Flex, 微軟的 Silverlight 和 Sun 推廣的 JavaFX。三種技術(shù)都有自己的 SDK 和開(kāi)發(fā)工具。

            介紹測試系統流程

            以上我們簡(jiǎn)要介紹了 Web2.0 的概念和相關(guān)客戶(hù)端技術(shù)。為確?蛻(hù)端產(chǎn)品的質(zhì)量,我們需要使用與此相應的 Web 測試工具,從而方便地融合于產(chǎn)品測試中。此外,為適應 Web 開(kāi)發(fā)的靈活性,我們同時(shí)需要一個(gè)能夠快速配置、部署、運行和匯報結果的測試系統,從而實(shí)現智能高效的測試流程,降低軟件研發(fā)的成本。

            基于以上論述,下面將介紹一個(gè)智能的 Web 界面測試系統。該系統有四大模塊組成,主體主要由 Python 語(yǔ)言實(shí)現,結合幾種開(kāi)發(fā)工具和技術(shù),包括 Ant、Selenium、TestNG、XML 和 Flex。系統有兩個(gè)控制方式:時(shí)間和 Web 管理站點(diǎn)。時(shí)間邏輯在 Python 腳本中實(shí)現,當時(shí)間到來(lái)時(shí)系統會(huì )按順序下載源代碼、部署應用程序、運行自動(dòng)測試、發(fā)布報告;而 Web 管理站點(diǎn)通過(guò) Flex 和 JAVA 技術(shù)來(lái)實(shí)現,用戶(hù)可以按需在線(xiàn)配置某些模塊,并要求立即執行自動(dòng)測試。

            下面將詳細介紹每個(gè)模塊的具體工作內容。測試流程參見(jiàn)圖 1。

            圖 1. 測試系統概述
            圖 1. 測試系統概述

            源代碼和安裝包的按需下載

            在軟件開(kāi)發(fā)過(guò)程中,每天都會(huì )因新的功能而更改源代碼。此外,很多項目需要國際團隊合作,這些情況下代碼的更新頻率更加高。本土和國外團隊經(jīng)常需要共享源代碼,而源代碼可能被存放在固定的站點(diǎn)上面。當源代碼文件量大而站點(diǎn)距離遙遠的時(shí)候,下載代碼的任務(wù)就比較耗時(shí)。為了節省這方面的時(shí)間,提高團隊整體的工作效率,有必要讓這部分工作自動(dòng)化起來(lái)。所以,系統首先實(shí)現了一個(gè)結合 Python 和 XML 的下載控制模塊。它的邏輯比較簡(jiǎn)單(參見(jiàn)圖 2)。Python 程序定時(shí)讀取配置文件,判斷該任務(wù)當前是否可以運行。如果此刻時(shí)間和配置的時(shí)間一致,就訪(fǎng)問(wèn)站點(diǎn),下載代碼包。否則,放入等待隊列,獲取下一個(gè)任務(wù)。在等待隊列里面的任務(wù)會(huì )在一定時(shí)間后重新啟動(dòng)。

            圖 2. 下載流程
            圖 2. 下載流程

            下載配置文件的內容參見(jiàn)以下代碼:

            清單 1.下載配置文件的代碼
             
             <?xml version="1.0" encoding="utf-8"?> 
             <items> 
             <item name="download source files" type="source" weekday="-1" time="7:-1" 
             source="https://sample.sourcecode.com" 
             target="C:\sourcetar\"/> 
             </items> 

            讀取下載配置文件的代碼如下:

            清單 2.讀取下載配置文件的代碼
             
             from xml.dom.minidom import parse, parseString 
             from MyDownloadTask import MyDownloadTask 
            
             def readFromProperty(xmlfile): 
                tasklist = [] 
                dom = parse(xmlfile) 
                for node in dom.getElementsByTagName('item'): 
                    name = node.getAttribute('name')
                    weekday = node.getAttribute('weekday')
                    time = node.getAttribute('time')
                    source = node.getAttribute('source')
                    target = node.getAttribute('target')
                    type = node.getAttribute('type')
                    
             // 定義一個(gè)下載任務(wù)
                    task = MyDownloadTask()
                    task.create(name, weekday, time, source, target, type)
             // 加入下載任務(wù)列表
                    tasklist.append(task)
                    
                return tasklist 

            實(shí)現具體的下載邏輯如下:

            清單 3.實(shí)現下載的代碼
             
             class MyDownloadTask(object): 
                
                …… // 定義一些變量
                
                def create(self, name, weekday, time, source, target, type): 
                    self.name = name 
                    self.weekday = int(weekday)
                    self.source = source 
                    self.target = target 
                    index = time.find(":")
                    self.hour = int(time[0:index])
                    self.minute =  int(time[index+1:])
                    self.type = type 
                 
                 def run()
            
             // 使用用戶(hù)名和密碼通過(guò)防火墻
             password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()
             password_mgr.add_password(None, self.source, username, password)
             handler = urllib.request.HTTPBasicAuthHandler(password_mgr)
             opener = urllib.request.build_opener(handler)
             urllib.request.install_opener (opener)
            
             // 從站點(diǎn)下載文件
             content = urllib.request.urlopen(self. source).read()
             f=open(self.target + self.buildno,"wb")
             f.write(content)
             f.close()

            此例指出目前有一項下載任務(wù),下載類(lèi)型是源代碼,鏈接為 https://sample.sourcecode.com, 將其保持到 C 盤(pán) sourcetar 文件夾下,時(shí)間為每天早上 7 點(diǎn)鐘。(-1 代表任意時(shí)間)。項目組可以根據需要增加下載項。比如,我們項目組由于資源文件經(jīng)常要修改,所以需要每天上午和下午都要檢測是否有新的代碼包,所以配置了兩個(gè)下載任務(wù)。上午的時(shí)間一般都在 7 點(diǎn),這樣可以在每位同事上班打開(kāi)電腦的那個(gè)時(shí)刻就獲得大洋彼岸美國項目組下班時(shí)候的最新進(jìn)展。

            正如前文所述,該測試系統中我們提供一個(gè) Web 管理站點(diǎn),用戶(hù)可以根據項目的需要配置下載任務(wù),不必麻煩系統管理員來(lái)修改下載配置文件。該模塊使用 Flex 和 Java 技術(shù)實(shí)現(參見(jiàn)圖 3)。用戶(hù)可以通過(guò)它了解當前系統已有的下載任務(wù)。此外,用戶(hù)也可以通過(guò)管理站點(diǎn)創(chuàng )建,修改和刪除下載任務(wù)。這些更改最終都會(huì )被保存到 XML 配置文件中。

            圖 3. 下載管理界面
            圖 3. 下載管理界面

            應用程序的部署

            對 Web 應用程序而言,測試的第一步是部署。有了源代碼后,測試系統使用 Ant 編寫(xiě)的腳本編譯源代碼,停止當前已有的 Web 服務(wù)器,部署產(chǎn)品代碼,然后重新啟動(dòng) Web 服務(wù)器。在這段時(shí)間中,產(chǎn)品的測試環(huán)境可能暫時(shí)無(wú)法訪(fǎng)問(wèn)(參見(jiàn)以下代碼)。

            清單 4.代碼部署
             
             def deploybuild(self): 
                   … // 清理文件夾,將源代碼解壓到 d 盤(pán) buildtar 目錄
                   try: 
                        tar = tarfile.open(self.target + myHtml.srcbuild, "r:gz")
                        for tarinfo in tar: 
                            print(tarinfo.name, "is", tarinfo.size, "bytes in size")
                        tar.extractall("d:/buildtar")
                        tar.close()
                    except : 
                       …
            
                    // 編譯源代碼
                    os.chdir("d:/buildtar")
                    os.system("Ant all")
            
                    // 關(guān)閉 web 服務(wù)
                    os.system("net stop \”servicename\""); 
            
                    … // 部署系統
            
                    // 開(kāi)啟 web 服務(wù)
                    os.system("net start \"servicename\"")

            運行自動(dòng)測試腳本

            當新版本的 Web 應用程序部署完后,測試系統就開(kāi)始進(jìn)入自動(dòng)測試。本系統使用 SVN 對測試腳本進(jìn)行版本控制。所以有必要在一開(kāi)始通過(guò) SVN 更新最近的測試腳本。這里使用 Ant 來(lái)調用 SVN 的命令行工具,參見(jiàn)下圖。

            使用如下 Python 腳本調用相應的 Ant 任務(wù):

            清單 5.Python 腳本
             
             def runseleniumtestcase(self): 
                // 下載測試腳本
                os.chdir("d:/")
                os.system("Ant download-testcase -buildfile=task.xml")
            
             // 運行測試腳本
             os.chdir("d:/v510")
             os.system("Ant start-selenium -buildfile=build.xml")
            
             <target name="download-testcase"> 
             <delete dir ="v100"/> 
            	 <property environment="env"/> 
              	 <exec executable="cmd"> 
              <env key="PATH" path="${env.PATH}:C:/Program Files/CollabNet Subversion Client"/> 
                <arg value="/c"/> 
                		 <arg value="svn"/> 
                		 <arg value="checkout"/> 
                <arg value="svn://9.19.199.9/web/v100"/> 
             </exec> 
             </target> 

            事例中的任務(wù) download-testcase 用來(lái)從站點(diǎn) 9.19.199.9 的 web/v100 目錄下載最新版本的測試腳本。start-selenium 任務(wù)將啟動(dòng) selenium 的 proxy server,然后按照 TestNG 配置的順序運行測試腳本。

            測試系統的腳本應用 Selenium 和 TestNG 的測試工具,實(shí)現對各類(lèi)型 Web 界面的測試需求。在第三節中將詳細介紹 Selenium 工具在本系統的應用,并在第四章中介紹 TestNG 工具在配置 Selenium 測試腳本中的作用。

            為適應項目開(kāi)發(fā)周期不同階段的測試需求,Web 管理站點(diǎn)將列出當前所以測試案例。用戶(hù)可以自由地挑選下次測試需要的用例。當用戶(hù)選擇保存后,這些測試腳本就會(huì )在下次系統自動(dòng)部署時(shí)候被運行。如果用戶(hù)選擇運行,那么系統可以馬上在當前已部署的產(chǎn)品環(huán)境上運行測試腳本。

            發(fā)布自動(dòng)測試報告

            延伸閱讀

            文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/

            TAG: web Web WEB 界面 軟件測試 系統 智能

            21/212>

            關(guān)于領(lǐng)測軟件測試網(wǎng) | 領(lǐng)測軟件測試網(wǎng)合作伙伴 | 廣告服務(wù) | 投稿指南 | 聯(lián)系我們 | 網(wǎng)站地圖 | 友情鏈接
            版權所有(C) 2003-2010 TestAge(領(lǐng)測軟件測試網(wǎng))|領(lǐng)測國際科技(北京)有限公司|軟件測試工程師培訓網(wǎng) All Rights Reserved
            北京市海淀區中關(guān)村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
            技術(shù)支持和業(yè)務(wù)聯(lián)系:info@testage.com.cn 電話(huà):010-51297073

            軟件測試 | 領(lǐng)測國際ISTQBISTQB官網(wǎng)TMMiTMMi認證國際軟件測試工程師認證領(lǐng)測軟件測試網(wǎng)

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>