天天看點

對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了,目前使用的是加語句的辦法。

繼續閱讀