功能自動化測試方案_第1頁
功能自動化測試方案_第2頁
功能自動化測試方案_第3頁
功能自動化測試方案_第4頁
功能自動化測試方案_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第 頁目錄TOC o 1-5 h z HYPERLINK l bookmark0 1前言2 HYPERLINK l bookmark2 文檔目的2名詞術(shù)語2 HYPERLINK l bookmark6 2功能自動化測試實施原則3 HYPERLINK l bookmark8 實施原則3 HYPERLINK l bookmark10 實施功能自動化測試的優(yōu)缺點33實施范圍和目標5 HYPERLINK l bookmark14 3。1實施范圍5 HYPERLINK l bookmark16 實施目標5 HYPERLINK l bookmark18 3。3總體實施策略5 HYPERLINK l boo

2、kmark20 4技術(shù)方案實施內(nèi)容6 HYPERLINK l bookmark22 4Sahi的特性和優(yōu)勢:6 HYPERLINK l bookmark36 SAHI的工作原理:8 HYPERLINK l bookmark38 4.2.1第-步:錄制9 HYPERLINK l bookmark40 4.2。2第二步:精煉腳本9 HYPERLINK l bookmark44 4。2.3第三步:回放9 HYPERLINK l bookmark48 Sahi的安裝部署與配置9 HYPERLINK l bookmark64 5實施管理建議12 HYPERLINK l bookmark66 實施策略建議

3、12 HYPERLINK l bookmark68 人員配置12 HYPERLINK l bookmark70 5。3實施計劃13 HYPERLINK l bookmark72 5。4交付物13前言文檔目的功能自動化測試方案是為XXX系統(tǒng)功能測試使用自動化工具,實現(xiàn)以自動化測試為主的目標而編寫的技術(shù)和實施方案。文檔的主要目的是提供自動化測試的技術(shù)方案、實施內(nèi)容、實施步驟,以及關(guān)鍵的技術(shù)實現(xiàn)手段等。本文的預(yù)期讀者為測試中心相關(guān)人員.名詞術(shù)語Sahi:是TytoSoftware旗下的一個基于業(yè)務(wù)的開源Web應(yīng)用自動化測試工具。Sahi運行為一個代理服務(wù)器,并通過注入JavaScript來訪問Web

4、頁面中的元素。Sahi支持HTTPS并且獨立于Web站點,簡單小巧卻功能強大.它相對于Selenium等自動化測試工具,在動態(tài)ID元素查找和隱式頁面等待處理等方面具有一定的優(yōu)勢.選擇Sahi工具來實現(xiàn)具體Web項目的自動化測試是一個很不錯的選擇。功能測試:功能測試又稱正確性測試,它檢查軟件的功能是否符合規(guī)格說明。由于正確性是軟件最重要的質(zhì)量因素,所以其測試也最重要。自動化測試:使用商業(yè)提供的自動化測試工具或者自己開發(fā)的工具對目標系統(tǒng)進行測試。機器自動執(zhí)行的測試,替代人完成重復性勞動,但不能完全取代人。自動化測試需要用到測試工具,測試工程師的參與,自動化測試技術(shù)可應(yīng)用于所有的測試階段Web測試背

5、景:隨著Web技術(shù)和互聯(lián)網(wǎng)的發(fā)展,Web應(yīng)用產(chǎn)品越來越豐富,基于Web頁面測試的需求與日俱增。在當前全球軟件都在追求高效、敏捷的開發(fā)模式的大背景下,Web自動化測試成為了新一波技術(shù)探討和研究的熱潮.因為傳統(tǒng)的手工測試不僅效率低,并且測試質(zhì)量受限于測試人員的一些情緒和心情。若當一個測試人員帶著煩躁情緒來測這些繁雜的大量重復性工作,測試的質(zhì)量令人擔憂。更何況,當這項測試工作涉及到全球化方面的測試時,多語言版本的測試工作導致該測試工作量的成倍增加,這無疑是一項巨大的考驗!檢查點:用來驗證腳本執(zhí)行結(jié)果是否達到預(yù)期.可以在錄制的過程中建立檢查點,也可以在錄制完成之后再建立檢查點。功能自動化測試實施原則實

6、施原則功能自動化測試過程中工具不可能完成所有的工作,工具仍然是測試過程中的輔助手段。對于工具主要是解決測試過程中的重復性的工作任務(wù)。另外實施自動化的測試對被測系統(tǒng)也有更高的要求,總結(jié)功能自動化測試的實施原則如下:使用自動化工具測試,要求被測系統(tǒng)開發(fā)比較穩(wěn)定,較少發(fā)生功能的變更;在自動化測試腳本錄制前,被測系統(tǒng)的界面相對穩(wěn)定功能測試自動化要求測試數(shù)據(jù)環(huán)境中的測試數(shù)據(jù)相對充裕,滿足多次重復回歸測試的要求;要求被測系統(tǒng)的版本運行比較穩(wěn)定,較少發(fā)生測試中止的情況;分期分步驟實施,優(yōu)先選擇產(chǎn)品功能比較穩(wěn)定的系統(tǒng)進行;完善的、可復用的數(shù)據(jù)參數(shù)、腳本庫是一個長期的積累過程.實施功能自動化測試的優(yōu)缺點功能的自

7、動化測試與手工測試雖然有很多局限,但是同樣有其優(yōu)勢,隨著自動化測試技術(shù)和工具的發(fā)展,對于比較穩(wěn)定的產(chǎn)品的功能測試中,自動化測試占有越來越重要的地位。使用Sahi可以加快整個測試的過程,在產(chǎn)品的版本發(fā)布之后,可以重復使用測試腳本進行測試,具體來說:自動化測試的優(yōu)點:提高測試效率,降低測試成本;重復性強的手工勞動獨立用自動化實現(xiàn);快速的回歸測試,提高新版本發(fā)布的速度和質(zhì)量避免人工測試容易犯的錯誤,如:錯誤測試,漏測試,多測試等;很容易就實現(xiàn)并發(fā)性測試;測試可重用,采用腳本和數(shù)據(jù)可以很容易實現(xiàn)重用。自動化測試的缺點:規(guī)范的測試管理,測試需求,測試用例不能創(chuàng)造性發(fā)現(xiàn)測試腳本沒有設(shè)計的缺陷;高質(zhì)量的測試

8、用例;高素質(zhì)的自動化測試工程師對測試環(huán)境要求比較嚴格;測試需求變化可能引起大量的測試用例,自動測試腳本的修改、維護.實施范圍和目標實施范圍工具范圍:目前考慮Sahi、Excel等工具的使用和集成持續(xù)集成工具暫時先不考慮系統(tǒng)范圍:定位在測試中心基礎(chǔ)測試環(huán)境中的系統(tǒng);測試階段的范圍:局限在回歸測試后期、以及上線后的功能回歸測試,目前暫不包括LT、內(nèi)部測試中的功能測試部分.實施目標功能自動化測試系統(tǒng)應(yīng)該能完成集成測試、以及上線后功能的回歸測試;方案目標對有界面和無界面的交易測試都能完成,有界面的交易支持如下方式:支持字符終端界面;支持B/S的Web界面;支持C/S的Windows應(yīng)用程序界面;功能自

9、動化測試方案對目前大部分應(yīng)用系統(tǒng)都可以進行測試;實現(xiàn)自動化腳本錄制、自動化腳本執(zhí)行、自動化缺陷報告和管理。總體實施策略首先從目前系統(tǒng)中選擇適合自動化測試的項目和系統(tǒng);其次確定實施功能自動化測試的階段和時機;第三從適合的項目中選擇適合自動化測試實施的功能和交易.具體實施策略參見第6節(jié)的實施管理建議。技術(shù)方案實施內(nèi)容4.1Sahi的特性和優(yōu)勢當提及面向Web的自動化測試,相信許多讀者會想到或者說使用過Selenium、Watir等工具,而對于Sahi就可能比較陌生。首先,讓我們先來了解下Sahi工具。它是一款印度公司TytoSoftware開發(fā)的成熟的開源Web自動化測試工具Sahi簡單易用,能良

10、好支持Ajax和Web2。0技術(shù),同時適用于敏捷和傳統(tǒng)的不同測試模式。那么,它與其他非常流行的Web自動化測試工具有哪些不同和優(yōu)勢呢?讓我們將其與主流自動化測試工具Selenium和Watir來進行一番對比,請參考圖1:圖1.Sahi與其他工具的對比從上圖的對比可以看出,Selenium支持的腳本語言比較豐富,且自帶SeleniumIDE自動錄制工具,Watir執(zhí)行的速度相對其他較快。而Sahi同樣具備了自帶的錄制器,且支持幾乎所有瀏覽器,且對JS支持較好,擁有頁面等待判斷機制,內(nèi)置Java異常報告,支持Ajax等優(yōu)勢。下面,本文將詳細介紹一下Sahi的幾大優(yōu)勢?;谏舷挛牡捻撁孀R別機制:大多

11、數(shù)如Selenium等Web自動化測試工具或是自動化框架,都采用類似基于DOM的定位策略、Xpath定位策略和id、name、identifier等頁面元素定位策略.Identifier定位是最普遍的一種定位方式,當不能識別為其它定位方式后,默認為identifier定位。在這種策略下,第一個使用id的頁面元素將被識別出來,如果沒有使用指定id的元素,那么將識別第一個名字與指定條件相符的元素.例如,identifier識另Uusername元素的定位策略:identifier=usernameId定位是在知道元素具體id特征的情況下的一種更精確定位。例如,定位頁面元素loginFrom:id=

12、loginFromname定位方式是去識別第一個匹配名稱屬性的UI元素如果多個元素擁有相同的名稱屬性,可以使用value過濾器來進一步優(yōu)化您的定位策略.例如,定位頁面元素為username:name=usernameXpath定位是在XML中定位元素的方法,而HTML可以被看作是XML的一種實現(xiàn)。XPath擴展了上面id和name定位方式,提供了絕對路徑和相當路徑兩種查找方式。絕對路徑:html/body/div1/div1/div3/div1/form/span/input1相對路徑查找:/divid=fm/form/span/input然而,在實際的情況下,頁面元素并非如預(yù)期般明確。一些動

13、態(tài)頁面的DOM樹常常隨著Web產(chǎn)品的更新而頻繁改變許多的元素值如ID、Name等在代碼中并不是必須的,常常會缺省。并且,屬性值往往不是唯一對應(yīng)的,頁面中有時會存在相同屬性的元素。當缺省id值或是Xpath定位失效時,上述這幾種查找定位方式往往顯得無助和脆弱。Sahi采用了一種主動查找的機制,它不受限于特定的元素屬性。在沒有ID、Name值的情況下,它可以使用一些如“title,value”等屬性,這些都是頁面可見的屬性,所見即所得同時,Sahi會通過傳入這些可見可識別的屬性值,來按照Sahi預(yù)設(shè)的機制進行查找識別.Sahi允許開發(fā)者對每一種元素設(shè)置不同屬性和特定的查找順序,包括那些自定義的屬性

14、名。所以Sahi相對于其他的Web自動化測試工具更靈活更開放.比如,_link(“valueName)用來定位一個定義為“valueName的link,這里的valueName并不一定是value的屬性值,也可以是它的id、title等。前面提到了Sahi主動查找的機制,那么它是如何去查找DOM節(jié)點下的特定元素的呢?Sahi主要提供了三種基于上下文的元素API:_in,_near和_under.從字面意思上,我們不難理解,n是指在某個DOM節(jié)點下查找某個元素,這比Xpath的不管是絕對路徑或是相對路徑查找都來的靈活,不會因為DOM樹內(nèi)部結(jié)構(gòu)發(fā)生變化而導致路徑失效找不到元素的問題._near是指

15、在某個元素附近查找相應(yīng)設(shè)定規(guī)則條件的最近一個元素,這對于一個頁面中有多個相同屬性值的情況提供了一個很好的解決方式,使查找的范圍更精確。_under是指在某個元素下方開始查找,找到符合條件的最近一個元素,一般_under都適用在具有相同偏移量的同一列中下面,我們來看一個例子,加深對Sahi這種基于上下文識別查找機制的理解:圖2.案例網(wǎng)頁假設(shè),在圖2顯示的Web頁面的所有textbox的name二”q”,那么,Sahi的偵探器通過一些標識來鑒別它們,如(_textbox(q),_textbox(q1)和_textbox(q2)。如果,我們要定位“RubyforRails”那一行的textbox,即

16、_textbox(q1)。傳統(tǒng)的元素識別會遇到多個相同屬性元素的問題,即使是Xpath的定位方式也會因為在它前面加了一行新的數(shù)據(jù)而導致Xpath定位失敗的情況。這時Sahi可以通過_near這種方式來定位:textbox(q,near(cell(RubyforRails)當要定位checkbox時,我們又會發(fā)現(xiàn),RubyforRails這一行有Recommend和Alreadyown”兩個checkbox,為了更準確地定位,我們可以結(jié)合_under,例如:_checkbox(0,_near(_cell(RubyforRails),_under(_cell(Recommend”)。如果在整個頁面

17、中存在多個這樣的表格,我們還可以用_in來進一步縮小范圍,如:_checkbox(0,_near(_cell(RubyforRails),_under(_cell(Recommend),_in(_cell(Cost).同時值得一提的是,SahiAPI中的identifier參數(shù)都支持正則表達式,例如,_div(/name.*/)用來識別所有以某種預(yù)屬性值是name開頭的div.隱式頁面加載響應(yīng)等待機制:現(xiàn)在越來越多的Web應(yīng)用米用Ajax的應(yīng)用技術(shù),來支持網(wǎng)頁數(shù)據(jù)的異步請求響應(yīng)。當前一般的Web自動化測試工具沒有一個智能的處理機制,來判斷何時可以繼續(xù)下一個操作。像Selenium等自動化測試工

18、具通常會在腳本中人為來設(shè)定一個固定的等待時間。但這往往被證實不一定是準確的實際測試中,人是很難準確判斷每一個操作請求需要的合理時間數(shù)值。因為,等待時間設(shè)置過短,下一步操作在被測應(yīng)用請求還未返回就執(zhí)行了,或是由于網(wǎng)絡(luò)因素使正常的響應(yīng)時間變長,都可能導致測試過程找不到相應(yīng)的頁面元素,從而導致整個測試用例失敗的情況而如果把時間設(shè)置過長,又會造成在一些正常響應(yīng)過程中的不必要等待的時間浪費,降低了測試效率.當然,一些測試人員會在自動化測試腳本中加入一些自定義的代碼。通過輪詢界面上某個指定元素,來判斷請求響應(yīng)是否返回,進而決定繼續(xù)下一步操作或者是超時。但是這樣的查找過程會導致整個腳本代碼變得非常臃腫,加大

19、了開發(fā)的成本。更何況,在一個動態(tài)的頁面找到指定的元素本身就不是一件容易的事。Sahi內(nèi)置了智能的頁面等待機制,能夠自動判斷Ajax請求是否已經(jīng)處理完畢,然后繼續(xù)下一步操作并且,這一點對于用戶是“隱式的,不需要增加額外的代碼。4.2Sahi的工作原理:簡單地說,用Sahi實現(xiàn)自動化測試有三步,錄制,精煉腳本和回放,如下圖:圖3。Sahi工作的三個主要過程如上圖Sahi就是先用其自帶的錄制工具,把大致的操作過程錄制下來,并用Sahi代碼記錄下整個操作過程。隨后,將自動生成的代碼進一步的精煉和開發(fā),調(diào)用一些外部API或編寫特定代碼來實現(xiàn)特定的操作。最后,用Sahi來回放保存好的最終腳本,Sahi就將

20、自動對Web應(yīng)用進行定義好的測試操作。下面,本文將對這三個過程進行詳細說明。4.2.1第一步:錄制圖4。Recording過程的工作原理Sahi是通過運行為一個代理服務(wù)器,并通過設(shè)置瀏覽器代理為Sahi服務(wù)器。這樣Sahi的腳本就能夠通過request請求來注入到JavaScript里以訪問Web頁面中的元素。如圖,可以很清晰的看到Sahi就是Web瀏覽器和Web服務(wù)器之間的一個中間代理。第二步:精煉腳本圖5。RefineScript過程的工作原理錄制的腳本都是指定元素并唯一操作的,這時就需要對代碼進行重構(gòu),抽取出核心的功能塊,對其中的元素進行參數(shù)化處理,以實現(xiàn)重用。這樣的數(shù)據(jù)可以從外部的DB

21、或文件中讀取而來。與此同時,也可調(diào)用SahiAPI或外部Java等API實現(xiàn)特定的一些功能.第三步:回放圖6.Playback過程的工作原理Sahi運行提煉好的腳本來自動化測試操作,并生成測試報告。Sahi的安裝部署與配置Sahi雖然是Tyto公司的產(chǎn)品,但它的下載放在世界上最大的開源軟件開發(fā)網(wǎng)站SourceForge上,可以通過點擊這里下載。圖7。Sahi下載默認推薦是下載install_sahi_xxx.jar這是一個可執(zhí)行文件,包含了Sahi的安裝器和Sahi工具及其源代碼。當然您也可以點擊上圖紅框處“BrowseAllFiles”來選擇歷史版本和一些免安裝壓縮文件。比如,選擇只包含Sa

22、hi工具的sahi_xxx.zip文件,或者包含了Sahi和源代碼的免安裝壓縮包文件sahisrc_xxxzip。一般建議選擇推薦的Sahi安裝包文件即可,這樣可以免去一些設(shè)置操作,并可以選擇是否安裝源代碼。雙擊jar文件進行安裝,如圖:圖8。Sahi安裝安裝過程非常簡單,待安裝完成后雙擊桌面圖標打開Sahi程序。打開程序先會出現(xiàn)一個SahiDashboard,它能自動開啟Sahi代理服務(wù)來啟動瀏覽器,而不需要繁瑣的代理服務(wù)器設(shè)置操作。當然如有需要,您也可以手動修改這些代理設(shè)置。圖9.SahiDashboard界面Sahi會自動去偵探您系統(tǒng)里安裝的一些瀏覽器,并在SahiDashboard上顯

23、示出來,如果發(fā)現(xiàn)有一些其他的瀏覽器未被準確偵探出來,您也可以點擊下面的“Configure”來進行配置添加進來。接下來,通過點擊SahiDashboard上的瀏覽器圖標按鈕來啟動相應(yīng)瀏覽器。圖10。Sahi啟動firefox瀏覽器您可以輸入起始測試的網(wǎng)頁URL開始您的測試。如果測試的目標URL是HTTPS協(xié)議的,也可以點擊“SSLManager”來查看和管理SSL證書。圖11。SahiSSL管理界面按住Alt鍵并雙擊頁面,將彈出Sahi控制窗口,如圖12:這個窗口相當于Sahi的主控臺,在這里我們可以來錄制和回放Sahi腳本,并編輯和管理腳本信息。圖12.SahiController錄制在Re

24、cord視圖界面,輸入一個腳本名稱,點擊“Record”,這時Sahi錄制器便開始工作了。把鼠標移到瀏覽器上的目標網(wǎng)頁上,您的所有操作過程都將被記錄下來。您也可以自定義增加一個Assertion。按住Ctrl鍵,把鼠標移動到目標網(wǎng)頁的任意一個HTML元素,那么這個Accessor會自動出現(xiàn)在Sahi控制器中。這時,便可以自定制對該元素的操作。常用的操作有“點擊,“高亮”,賦值等同時,您可以通過“AppendtoScript”按鈕來加到腳本代碼中。錄制完成后按“Stop”來結(jié)束整個過程.圖13。Sahi自動生成腳本精煉圖13是一個簡單的Sahi自動錄制過程得到的Sahi腳本代碼。其大致過程為:通

25、過百度搜索sahi關(guān)鍵字,校驗Sahi官網(wǎng)的assert是否存在,點擊進入Sahi官網(wǎng)后繼續(xù)校驗assertCommunityForums,點擊進入通過前一節(jié)SahiController錄制來完成這個操作過程,那么,您可以在默認目錄“C:UsersIBM_ADMINsahiuserdatascripts中找到先前命名為“Test_sahi的腳本文件,我們可以將這段代碼進行一個精煉和豐富的過程,比如在點擊“CommunityForums”鏈接前將它進行高亮操作:popupCSahiwebTestAutomationtoo!)highlight(link(CommunityForums);或者您想

26、在Sahi腳本代碼中調(diào)用內(nèi)置的Java類,例如:functionprintThroughJava(s)java.Lang.System。out。printin(ThroughJava:+s);printThroughJava(Hithere);“ThroughJava:Hithere將在sahi的命令行中輸出。圖14.SahiController回放回放的時候,只需要在Sahi控制臺上切換到“Playback”tab頁面,找到腳本存放的路徑,下面就有開始、暫停和結(jié)束等按鈕來進行操作。需要注意的是,開始以前必須給它設(shè)置一個“StatURL否則無法回放腳本。腳本回放的時候,在“Statements

27、”里可以看到腳本運行的日志,比如操作步驟和一些錯誤信息等。通過點擊右下角的“ViewLogs可以查看詳細的Sahi運行日志報告:圖15.Sahi日志報告由圖可見,這樣自動錄制生成的腳本代碼都是Sahi代碼,我們可以在實際的Java項目中調(diào)用這些Sahi代碼,以實現(xiàn)重用.其實,我們可以通過打開sahi/config/perties文件將其中屬性設(shè)置為controller.mode二java來實現(xiàn)自動錄制腳本的語言為Java。值得注意的是,改為Java語言錄制后的Sahi控制器和原來有所不同,它的界面更簡潔,功能也更簡單一些,沒有了自動回放功能。因為,這更多是為了自動生成一些簡單的腳本,來提高開發(fā)人員的開發(fā)效率。實施管理

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論