本文以線上教育的典型業務情境為例,為您介紹如何在PTS中編排壓測情境並發起壓測。
情境說明
某線上教育網站需要壓測選課相關網頁。根據商務邏輯,選課流程劃分為三步,每一步的壓測需求如下:
-
登入線上教育系統
-
需要構造使用者的登入資訊,如使用者名稱和密碼。
-
使用者的登入資訊(即Cookie)需要傳遞給後面兩個請求查看課程列表和提交選課。
-
-
查看課程列表
將課程ID傳遞給提交選課請求。
-
提交選課
-
使用上一個請求中的課程ID,構造提交選課的請求。
-
判斷提交選課是否成功。
-
基本壓測情境設定。
會話 session1 中配置了三個 API,均為 POST 方法且全部生效(3/3):Login、Query、Submit,依次對應登入、查看課程列表和提交選課三個步驟。
前提條件
步驟一:配置壓測情境
-
登入PTS控制台,選擇效能測試 - 创建场景,然後單擊PTS壓測。
-
添加參數檔案到資料來源
-
單擊資料來源管理,並在檔案資料來源頁簽中單擊+ 上傳檔案,選擇本地參數檔案並上傳。
-
選中首行作為參數名,選中後無需手動定義參數名,PTS讀取參數檔案時將跳過首行的資料。如果參數檔案第一行不是參數名,則必鬚根據業務情境定義每列資料的參數名。

-
-
添加資料配置節點
-
在情境配置頁簽中添加壓測API,然後單擊添加指令右側的下拉式箭頭,選擇數據配置。
-
在数据源参数设置頁簽下,選擇設定好的參數名。
說明-
選中数据轮询一次能夠保證在使用資料檔案組裝請求時,每行只用到一次,避免重複使用。當資料輪詢一次用盡,不論設定的壓測量級是多少,該壓測情境將停止產生新的壓測請求。
-
若不選中数据轮询一次,匯入的參數會在壓測中迴圈使用。
-
数据轮询一次和基准列均只能指定一個參數,設定輪詢一次之後基準列無法設定。

-
-
-
壓測情境編排
-
配置登入介面
压测URL:輸入您的待壓URL,本樣本使用
http://web.example.com/login。請求方式:選擇
POST。Body定义:
Content-Type類型選擇x-www-form-urlencoded,然後單擊編輯地區右上方的文本编辑,在文本編輯框中輸入{"username":"${username}","password":"${password}"}。
說明當前請求的Cookie資訊(即使用者登入資訊),將自動共用給該壓測情境的其他API,無需設定。
-
配置查看課程列表介面
單擊添加压测API並選擇HTTP,添加一個新的API節點。並配置基本請求資訊。
-
压测URL:輸入您的待壓URL,本樣本使用
http://web.example.com/mocks/online/list。 -
請求方式:選擇
POST。
為了將某個課程ID傳遞給下一個請求,需要提取當前API響應(Response)中的課程ID,作為出參。選擇出参定义頁簽,填寫以下資訊。
出參名填寫
ID,來源選擇 Body : JSON,解析運算式填寫schedule_list[1].ID。-
出参名:填寫自訂的參數名稱。
-
來源:選擇Body的解析格式,如JSON。
-
解析表达式:根據Response詳情填寫解析運算式。
假設,要提取第二個課程ID,則根據以下Response Body樣本,解析運算式為:
schedule_list[1].ID。{ "schedule_list": [ { "Name": "math", "ID": "001" }, { "Name": "english", "ID": "002" }, { "Name": "science", "ID": "003" } ] }說明出參的解析運算式如何定義,是否正確,可以在調試功能裡使用運算式調試的功能,正確之後再同步過來即可,具體操作步驟請參見調試情境。
-
-
配置提交選課介面
單擊添加压测API並選擇HTTP,添加一個新的API節點。並配置基本請求資訊。
-
压测URL:輸入您的待壓URL,本樣本使用
http://web.example.com/mocks/online/submit。 -
請求方式:選擇
POST。
選擇Body定义頁簽,在
Body中使用前一個API匯出的課程ID。-
Content-Type:選擇
x-www-form-urlencoded格式。 -
Key:填寫自訂的Key,例如
ID_from_last_api。 -
Value:單擊頁面左下角的參數列表,查看業務會話參數(如“ID”),單擊複製表徵圖。在Value框中粘貼即可。
選擇出参定义頁簽,並填寫以下資訊。
-
出参名:填寫自訂的參數名稱,例如
result。 -
來源:選擇Body的解析格式,例如Body:TEXT。
說明來源要選擇Body的解析格式為TEXT,同樣地,您也可以在情境調試中使用運算式調試的功能調試您的解析運算式。
-
解析表达式:根據Response詳情填寫解析運算式。樣本中的Response Body為
result:success,則解析運算式為result:(.+)。
在檢查點(斷言)頁簽,為該API設定檢查點,可判斷提交選課是否成功。
-
检查点类型:選擇出參。
-
检查对象:選擇result。
-
檢查條件:選擇等於。
-
檢查內容:設定為
success。
-
-
步驟二:压力模式配置
基本情境構建完成後,需要選擇施壓模式、設定施壓量級等。
-
压力来源:選擇公網,如果您在阿里雲內網環境,可選擇阿里雲VPC內網。
-
压力模式:選擇虚拟用户模式。以虛擬使用者模式發起壓測,更適合用戶端發起的情境,而RPS模式是站在服務端的視角,衡量系統輸送量。
-
递增模式:選擇手动调速。
-
最大虚拟用户数:虛擬使用者模式下,需要填寫最大虛擬使用者數,例如3000。
每個IP最大支援500虛擬使用者數。
-
壓測總時間長度:例如1分鐘。
其他可保留預設值。
步驟三:調試並啟動情境
-
調試情境可驗證配置是否合理,避免壓測失敗,建議您先調試情境。
-
單擊保存去压测,在溫馨提示頁面,選擇立即執行並勾選确认本次压测已获得准许并遵守当地法律,然後單擊啟動壓測。
分析壓測結果
壓測結束後,系統會自動擷取壓測過程中的資料,例如壓測情境指標、業務詳情資料、監控詳情資料和API採樣日誌等,產生壓測報告,您可在壓測報告頁面查看。更多資訊,請參見查看PTS壓測報告。