閱讀957 返回首頁    go iPhone_iPad_Mac_手機_平板_蘋果apple


錄製工具使用指南__腳本錄製調試指南_性能測試-阿裏雲

返回企業版測試腳本

工具簡述

  使用性能測試進行測試的時候,針對簡單URL請求,很多用戶都可以直接按照模板來進行編寫,相當簡單;但對於某些稍微複雜的業務,例如登陸、考試、訂購、購買、發帖、回帖、退出等業務,由於捕獲請求內容或者手工編寫腳本工作量稍大,給用戶帶來不便,在此背景下,性能測試項目組開發了基於Firefox(支持37及以下版本)和Chrome瀏覽器插件錄製工具。
  通過使用此工具,用戶在被測係統中進行手工操作業務,錄製工具會將用戶的操作行為進行錄製,錄製完成以後,自動生成腳本,根據業務規則可能稍微修改一下腳本,就可以運行腳本了,錄製下來的腳本模擬了用戶真實的操作行為,極大地方便用戶的使用。

使用指南

工具下載與安裝

一、Chrome錄製工具下載與安裝

1.chrome錄製工具下載

下載地址:chrome_pts_record_tool

或登錄阿裏雲進入性能測試頁麵 —> 點擊“測試腳本”—> 點擊“新增腳本”—> 編寫方式選擇“手工編寫”—> 點擊“錄製工具下載”—> 點擊下載。
如下圖展示:

2.點擊繼續,會提示如下信息,需手動安裝:

3.首先打開Chrome擴展程序:

4.將下載的文件:Aliyun-PTS-Record-Tool_v.0.2.6.3.crx直接拖動到擴展程序中:

5.提示信息確認是否添加,點擊“添加”:

6.完成安裝後,擴展程序中顯示安裝的性能測試錄製工具,同時瀏覽器右上角會顯示性能測試錄製工具Logo:

7.點擊性能測試錄製工具Logo,即可打開工具,進行腳本錄製操作,安裝完成!

二、Firefox錄製工具下載與安裝

1.Firefox錄製工具下載

下載地址:firefox_pts_record_tool

或使用Firefox瀏覽器登錄阿裏雲進入性能測試頁麵 —> 點擊“測試腳本”—> 點擊“新增腳本”—> 編寫方式選擇“手工編寫”—> 點擊“錄製工具下載”—> 點擊下載。
如下圖展示:

2.打開新的瀏覽器標簽頁,提示是否允許下載安裝,點擊“允許”:

3.下載完成後,提示用戶是否安裝,點擊立刻安裝”:

4.安裝成功後,會顯示提示信息,同時瀏覽器右上角會有性能測試錄製工具Logo:

5.點擊性能測試錄製工具Logo,即可打開工具,進行腳本錄製操作,安裝完成!

功能界麵介紹

錄製使用

  • 步驟1:打開瀏覽器點擊右上角性能測試錄製工具Logo,彈出錄製工具框和瀏覽器,截圖如下:

備注:錄製工具打開後默認啟用開始錄製。

  • 步驟2:定義事務名,在瀏覽器輸入URL進行訪問操作,錄製工具會自動記錄訪問操作過程中的HTTP請求。

  • 步驟3:錄製工具默認隻顯示HTML類型HTTP的錄製請求,如需顯示其他類型請求請點擊內容過濾選擇需要顯示的類型請求。

  • 步驟4:錄製完成後點擊停止錄製按鈕,如果需要預覽錄製生成的腳本,請點擊腳本預覽按鈕,

  • 步驟5:預覽腳本確認沒問題後就可以點擊上傳腳本按鈕保存腳本到性能測試雲端,完成腳本錄製過程。

阿裏雲郵箱發送郵件腳本示例

業務調研

  假設針對阿裏雲郵箱係統進行壓測,郵箱最主要的業務是發郵件,發郵件流程是登陸郵箱,發送一封又一封的郵件,而在業務高峰的時候,可能會有很多人在給不同的人發郵件,郵件主題和內容都可能不一樣,發完郵件後,退出郵箱係統,采用性能測試錄製工具將此過程錄製下來。

錄製業務流程請求

  • 步驟1:訪問阿裏雲郵箱

  • 步驟2:登陸郵箱

  • 步驟3:進入寫郵件頁麵

  • 步驟4:發送郵件

  • 步驟5:退出郵箱

  • 步驟6:保存錄製腳本到性能測試雲端

添加參數化

  • 參數化定義: 將腳本中錄製下來的特定值用一個變量來代替,該變量的值是可變的。例如收件人郵箱、標題內容等。

  • 參數化作用: 主要是模擬用戶真實訪問係統和避免一些係統約束導致虛擬用戶運行失敗。

  • 參數化策略:

    • 是否需要唯一性約束
    • 是否需要當前時間
    • 是否需要從緩存中獲得或模擬緩存策略
    • 是否受其他字段約束

如果測試腳本需要發送郵件給不同的收件人,並且不同的收件人郵箱標題和內容不一樣。這種情況下就需要我們對錄製下來的收件人、郵箱標題、郵箱內容進行參數化操作:

  • 步驟1:準備參數化文件--CSV格式,用UE或Notepad工具(不要用Excel)進行編輯,每列參數化列值以逗號分隔;注意如果參數化文件內容包含中文,參數化文件請使用UTF-8無BOM格式編碼保存。

  • 步驟2:上傳參數化文件mail.csv到性能測試腳本編輯頁麵
  • 步驟3:在腳本添加導入相關類,並加載參數化文件

    from com.aliyun.pts import DsvReader
    from com.aliyun.pts import ParamManager
    params = ParamManager.getInstance()
    params.addProvider(DsvReader(u"mail.csv"))
    
  • 步驟4:在腳本中找到需要參數化的URL請求,進行參數化 需要參數化內容:%5B%22181791781%40qq.com

提取參數化文件的參數值:

Import urllib
Sendmail_addr=urllib.quote(params.getParamValue(u'mail.csv:sendmail_addr').encode('utf-8'))

備注:如果參數化內容需要URL轉碼,需要使用urllib.quote方法轉碼 替換需要參數的內容:

添加文本檢查點

文本檢查點是通過對HTTP請求響應的文本內容進行檢查是否包含預先設置的文本內容;用戶可以通過設置文本檢查點來判斷事物是否成功。發送郵件的HTTP請求成功後響應文本內容包含了“success“關鍵字,通過文本檢查點來判斷發送郵件事務是否成功。

#當響應返回碼為200,且返回body內容包含success則返回True 
PTS.HttpUtilities.checkResponse(200, " success ")

添加關聯

  • 關聯定義: 在錄製腳本時,錄製工具會攔截客戶端和服務器端之間的會話生成腳本,生成的腳本都是一成不變的。但是業務流程中的HTTP請求中存在一些上下文依賴的動態數據,比如說向服務器發送一個login請求,並發給服務器用戶名和口令的數據,服務器端驗證數據正確後發送給客戶端一個sessionID,不同的客戶端登錄會返回不同的sessionID,客戶端下一次請求的時候就會發送上次請求返回的sessionID給服務器端進行驗證合法性。關聯就是把腳本中某些固定數據轉變成獲取自服務器發送的、動態的、每次都不一樣的數據。

  • 關聯作用: 主要是模擬更真實用戶訪問係統的行為保證業務的邏輯性和準確性、防止服務器校驗導致腳本運行失敗。

  • 關聯策略:
    在腳本中請求中對動態值進行參數化

    • 決定要捕捉的動態值(通過兩個腳本比較、開發建議、腳本經驗)
    • 創建一個參數保存捕捉的動態值
    • 對腳本中固定值進行參數化
    • 驗證腳本執行的準確性

例阿裏雲登錄提交請求POST,標紅的表單數據都是:

可以通過HTTP協議抓包工具(httpwacth、firebug、fiddler)查找需要關聯的動態表單數據具體在前麵哪個請求中返回:

通過抓包工具查找到具體請求後,在性能測試腳本請求後麵添加獲取動態值方法。

https://passport.alibaba.com/mini_login.htm?lang=zh_CN&appName=yunmail&appEntrance=default&cssLink=&styleType=auto&bizParams=&notLoadSsoView=true&notKeepLogin=true&rnd=0.8751522711732308請求響應內容:

腳本示例: 抓取動態關聯值:

使用動態關聯值:

FAQ

1. 問:性能測試錄製工具可以錄製非Chrome、Firefox瀏覽器以外的其他應用HTTP/HTTPS協議請求嗎?

答:不能,目前隻能基於Firefox(支持37及以下版本)和Chrome瀏覽器進行錄製,其他瀏覽器IE、QQ、Sogou等都是不可以的。

2. 問:行為和事務有何區別?

答:行為指的是一係列業務操作或請求組合,而事務是衡量行為裏麵一些業務操作或請求所需要的時間,在進行壓測的時候,可以在性能測試實時監控圖表中顯示事務的時間。默認情況下,行為和事務是默認的名字,雙擊行為名稱,可以進行修改事務的名字。

3. 問:腳本錄製下來以後,運行沒問題,但業務沒有做成功,可能原因是?

答:這個問題的產生是多方麵的,在性能測試領域叫做“腳本空轉”,可能的原因有4點:
(1)數據是一次性的,這樣的話錄製的時候就用掉了,再運行腳本的時候,數據是無效的,因此業務是做不成功的,例如訂單支付、活期銷戶;可以通過參數化解決。
(2)需要關聯,有些業務關聯性非常強,不進行關聯的話,業務也是不成功的,例如用戶ID,TokenID等;可以通過關聯進行解決。
(3)一些重要的請求丟失,默認錄製工具會將非html類型的請求過濾掉,例如一些json類型的,而這些json類型也是必須的,可以通過選中此類型請求進行解決。
(4)其他方麵的原因等

4. 問:需要關聯的數據來自於哪個請求,如何快速查找?

答:正在開發易於關聯的數據查找,將會在後續版本中實現,目前最好的辦法是谘詢開發人員、自己定位、尋求性能測試技術人員技術支持。

5. 問:哪些數據需要關聯?

答:一般情況下,最快的辦法是谘詢開發人員;也可以通過錄製兩份腳本進行對比,不一樣的數據可能就需要關聯;對於有一定經驗的相關人員可以通過猜測,例如用戶ID, TokenID等。

6. 問:參數化和關聯必須有麼?

答:不一定,看業務規則,如果業務沒有關聯的話,可以不需要,為了更加真實的模擬實際業務場景,建議盡可能的將數據進行參數化。

7. 問:部分Chrome瀏覽器用戶安裝插件後,重新打開Chrome瀏覽器錄製工具插件自動灰掉,不能使用

答:由於非來自Chrome網上應用店擴展程序,已停用的擴展程序均顯示為灰色,且無法重新啟用,需要在擴展程序中刪除後重新安裝。

返回企業版測試腳本

最後更新:2016-05-06 10:44:38

  上一篇:go 某移動APP性能優化__最佳實踐_性能測試-阿裏雲
  下一篇:go 腳本調試指南__腳本錄製調試指南_性能測試-阿裏雲