針對C/S結構信息系統進行性能測試的幾個關鍵問題

在針對C/S結構的信息系統進行性能測試的時候,因爲客戶端實現機制的不同,往往會遇到很多棘手的問題。採用何種測試方法進行測試就是一個首先必須解決的問題,往往很多測試工程師都感到非常困惑。

  在進行了一番技術研討之後,在本文的案例中,對於C/S信息系統進行性能測試的時候,採用的是自動化性能測試工具LoadRunner調用自動化功能測試工具Quick Test Professional腳本的方法實現性能測試。其實,對C/S結構信息系統進行測試的時候,重點不在使用LR,而在於熟練使用QTP,本文正是在總結項目經驗的基礎上,深入探討了使用QTP的多個關鍵技術問題,願與業內同行進行深入探討,共同提升測試能力。

  1、QTP無法捕捉到菜單欄對象

  問題描述:用鼠標正常點擊菜單欄,但是QTP捕捉不到菜單欄

  解決方法:這是屬於對象不識別的問題,當鼠標點擊菜單欄的時候,把對象識別的方式換成低級錄製方式就可以捕捉到了。(這是QTP對象識別的第一法寶

  2、用QTP捕捉對象時,鼠標操作不起作用了

  問題描述:廠商進行了二次開發,但是所開發的子窗口,用鼠標在菜單欄裏打開,QTP根本捕捉不到這個新對象。

  解決方法:換一種方式,不用鼠標,用鍵盤來捕捉!用鍵盤的上下鍵移動到相應要打開的地方,用Enter鍵就可以了,這樣便可以捕捉到對象了,而且還不容易出錯。(這是QTP對象識別的第二法寶

  3、彈出窗口後,QTP無法捕捉彈出來的窗口對象

  問題描述:窗口彈出來了,但是點擊其中Button後,QTP無法捕捉對象。

  解決方法:在回放中發現,彈出的二次開發窗口並沒有激活,界面呈灰色,所以在腳本錄製時,彈出窗口後,先用鼠標點擊一下窗口以便激活窗口。這樣在回放的時候就可以看到窗口被激活了。裏面的對象也隨之可以識別了。

  4、QTP當從對象模式換成低級錄製模式的時候引起變化

  問題描述:在錄腳本過程中,採用的是對象識別模式,但是當需要換成低級錄製模式時,這時候需要鼠標點擊QTP,選擇低級錄製模式,然後再點擊被測軟件,其實這些操作都已經被記錄到腳本里了,有時還引起了被測軟件發生變化,給錄製腳本帶來很多麻煩。

  解決方法:這個問題是一個需要注意的問題,在我們錄腳本過程中,當需要從對象模式轉換成低級錄製模式時,用Alt+Tab鍵就可以了,不要再點擊QTP,然後再點擊被測程序了,這樣會增加很多步驟,回放腳本的時候也容易出錯,用Alt+Tab鍵最靈活也最方便。

  5、在QTP的對象庫裏添加對象,用“小手”進行對象識別時,沒辦法進行操作軟件了

  問題描述:用Spy進行對象識別的時候,鼠標會變成“小手”,可是我要捕捉的是對象裏面的對象,比如幫助下拉菜單裏的子項,沒法操作,也就抓不到對象。

  解決方法:這個問題屬於一個技巧性的問題,解決的方法是:在“小手”的情況下,按Ctrl鍵,“小手”自然就變成鼠標,和平時操作一樣了,操作之後就可以捕捉我們想捕捉的對象了。

  6、QTP的自動化腳本錄完了,可是還想增加檢查點,怎麼辦?

  問題描述:腳本已經錄製完成了,可是在當天新的測試規範中需要加入新的檢查點,怎麼辦?我想加檢查點,可是發現QTP中加檢查點的那一項是灰色的,以我的經驗我知道這是需要在錄製腳本過程中才能加檢查點的,難道重新錄製腳本?

  解決方法:加檢查點,不需要重新錄製腳本,有三種靈活的方法:第一種,點擊腳本的不同步驟,在Active Screen中,可以發現被測程序的截圖,如果你要加檢查點的控件在這個截圖中,那麼你用鼠標點中這個控件,右鍵,會發現有讓你加檢查點的選項,這樣就可以加檢查點了;第二種,當你發現在程序截圖中沒有你要加檢查點的控件,如果在上下文中有過同樣控件的檢查點,那麼你把該語句直接拷貝過來,然後把該檢查點的屬性改成你想做的操作就可以了;第三種,如果前兩種方法都不行,那你也不必重新錄製腳本。你在要加檢查點的步驟的上一步設個斷點,回放腳本讓程序運行到這個斷點,然後停掉腳本,然後重新錄製腳步,注意,這可不是重新錄製,而是中間錄製,這個方法太靈活了,然後像真正錄腳本一樣,加入你想加的檢查點就OK了。

  7、QTP自動化腳本的檢查點的類型很多,如何選擇?

  問題描述:有標準檢查點,有圖片檢查點,文本檢查點,這麼多類型該怎麼選擇?

  解決方法:一般情況下,用標準檢查點就可以了。文本檢查點是檢查在屏幕上、窗口上、Web頁面上的文本,一般是針對附帶環境裏的文本。如果是小圖片的話,可以用圖片檢查點。

  8、QTP腳本回放一直報錯,出現對象屬性不匹配的問題

  問題描述:腳本回放之後報錯,看錯誤信息,發現好像是對象屬性不匹配的問題引起的錯誤。

  解決方法:這個問題是比較深刻的,需要對QTP的對象識別原理有一定的認識。QTP有一個對象庫,把所有識別的對象都放到了這個庫裏,在這個庫裏每個對象又有相應的屬性,在回放的時候就是通過比對這些屬性來識別不同的對象。這裏報這個屬性不匹配的錯誤,你需要把對象庫裏的對象調出來,然後用“小手”去查看運行界面中的相同對象,你會發現,這兩個對象的屬性不一樣。也就是說,每次當程序運行到這個時候,這個控件的這個屬性都會發生變化,就好比LR錄製腳步中的Session,每次運行,系統都會分配一個新的值,這裏的控件也是同樣的道理。你要做的第一件事就是找到有哪些屬性不匹配,你就在QTP的對象庫中把它刪掉,運行一下看看。如果系統又報錯,說不止有一個對象是你想要的對象,說明,你刪了屬性,但是這些多個控件就無法區分了,你需要再增加一些新的屬性,使不同的控件有個區別,這樣應該就可以了,腳本就可以順利運行了。(QTP對象識別的第三法寶

  9、C/S錄腳本最重要的地方

  C/S錄腳本最總要的地方,莫過於對象識別的問題了,對於這個問題,在上面也提到過,這裏做個總結,無過於這三大法寶:第一,對象識別的模式換成低級錄製的模式;第二,對象識別的模式換成鍵盤識別的模式;第三,屬性不匹配,就增刪一些屬性就可以了。

  10、Studio開啓狀態,腳本回放錯誤

  問題描述:在廠商的Studio環境開啓情況下,錄腳本或回放腳本,報錯。

  解決方法:這種情況下,需要把廠商的Studio環境關閉,不能在開發狀態下錄腳本或回放腳本,會報錯的。

  11、QTP腳本中加事物點的位置要求變動

  問題描述:在新的測試規範裏,要求變動事物點的位置。

  解決方法:這個問題的解決體現了QTP靈活編輯腳本的功能,不需要重新錄製腳本了,只需要在腳本中,找到需要加事物點的步驟,然後把腳本中事物開始和結束的腳本語句剪切過去就行了。

  12、QTP腳本錄製完了之後,是非常有必要進行優化的

  問題描述:仔細觀看自己錄製好的腳本發現,比如在text框中輸入值的時候,會看到輸了一個“5”,然後又刪了“5”改成了“6”。

  解決方法:這個問題就反應出,在腳本錄製過程中難免會有一些失誤,腳本雖然錄製完了,但是還需要優化!針對上面這個例子,就需要在腳本中把多餘的步驟刪掉,以優化腳本,提高腳本的性能。

  13、實現C/S併發測試的機理

  問題描述:因爲用LR錄C/S腳本,在Socket的協議下,腳本沒有可讀性,所以爲了實現C/S的併發測試,採用LR調QTP腳本進行併發測試的方法。可是一臺機器只能開一個QTP,如果要併發100,難道找100臺測試機嗎?。

  解決方法:不是的,這裏採用善巧的方法,那就是採用Windows Server 2003的系統,在一臺機器上開多個遠程桌面,解決測試機不足的問題,雖然說效率以及真實性會有一定的質疑,但是這已經是很好的方法了。

  14、怎樣讓QTP腳本循環多次?

  問題描述:LR中可以設置Run Logic的次數,但是怎樣讓QTP腳本也有這個循環的功能呢?

  解決方法:QTP腳本中,在最開始和最後加進入for循環語句,就OK了,目前使用的是加語句的辦法。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章