本文以在線教育的典型業(yè)務場景為例,為您介紹如何在PTS中編排壓測場景并發(fā)起壓測。
場景說明
某在線教育網站需要壓測選課相關網頁。根據(jù)業(yè)務邏輯,選課流程劃分為三步,每一步的壓測需求如下:
登錄在線教育系統(tǒng)
需要構造用戶的登錄信息,如用戶名和密碼。
用戶的登錄信息(即Cookie)需要傳遞給后面兩個請求查看課程列表和提交選課。
查看課程列表
將課程ID傳遞給提交選課請求。
提交選課
使用上一個請求中的課程ID,構造提交選課的請求。
判斷提交選課是否成功。
基本壓測場景設置如下所示。
前提條件
準備一個
CSV
格式的參數(shù)文件,格式如下。關于參數(shù)文件的更多要求,請參見參數(shù)文件規(guī)范。username,password user1,Password1 user2,Password2 user3,Password3
步驟一:配置壓測場景
登錄PTS控制臺,選擇 ,然后單擊PTS壓測。
添加參數(shù)文件到數(shù)據(jù)源
單擊數(shù)據(jù)源管理,并在文件數(shù)據(jù)源頁簽中單擊+ 上傳文件,選擇本地參數(shù)文件并上傳。
選中首行作為參數(shù)名,選中后無需手動定義參數(shù)名,PTS讀取參數(shù)文件時將跳過首行的數(shù)據(jù)。如果參數(shù)文件第一行不是參數(shù)名,則必須根據(jù)業(yè)務場景定義每列數(shù)據(jù)的參數(shù)名。
添加數(shù)據(jù)配置節(jié)點
在場景配置頁簽中添加壓測API,然后單擊添加指令右側的下拉箭頭,選擇數(shù)據(jù)配置。
在數(shù)據(jù)源參數(shù)設置頁簽下,選擇設置好的參數(shù)名。
說明選中數(shù)據(jù)輪詢一次能夠保證在使用數(shù)據(jù)文件組裝請求時,每行只用到一次,避免重復使用。當數(shù)據(jù)輪詢一次用盡,不論設置的壓測量級是多少,該壓測場景將停止生成新的壓測請求。
若不選中數(shù)據(jù)輪詢一次,導入的參數(shù)會在壓測中循環(huán)使用。
數(shù)據(jù)輪詢一次和基準列均只能指定一個參數(shù),設置輪詢一次之后基準列無法設置。
壓測場景編排
配置登錄接口
壓測URL:輸入您的待壓URL,本示例使用
http://web.example.com/login
。請求方式:選擇
POST
。Body定義:
Content-Type
類型選擇x-www-form-urlencoded
,然后單擊編輯區(qū)域右上角的文本編輯,在文本編輯框中輸入{"username":"${username}","password":"${password}"}
。說明當前請求的Cookie信息(即用戶登錄信息),將自動共享給該壓測場景的其他API,無需設置。
配置查看課程列表接口
單擊添加壓測API并選擇HTTP,添加一個新的API節(jié)點。并配置基本請求信息。
壓測URL:輸入您的待壓URL,本示例使用
http://web.example.com/mocks/online/list
。請求方式:選擇
POST
。
為了將某個課程ID傳遞給下一個請求,需要提取當前API響應(Response)中的課程ID,作為出參。選擇出參定義頁簽,填寫以下信息。
出參名:填寫自定義的參數(shù)名稱。
來源:選擇Body的解析格式,如JSON。
解析表達式:根據(jù)Response詳情填寫解析表達式。
假設,要提取第二個課程ID,則根據(jù)以下Response Body示例,解析表達式為:
schedule_list[1].ID
。{ "schedule_list": [ { "Name": "math", "ID": "001" }, { "Name": "english", "ID": "002" }, { "Name": "science", "ID": "003" } ] }
說明出參的解析表達式如何定義,是否正確,可以在調試功能里使用表達式調試的功能,正確之后再同步過來即可,具體操作步驟請參見調試場景。
配置提交選課接口
單擊添加壓測API并選擇HTTP,添加一個新的API節(jié)點。并配置基本請求信息。
壓測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:單擊頁面左下角的參數(shù)列表,查看業(yè)務會話參數(shù)(如“ID”),單擊復制圖標。在Value框中粘貼即可。
選擇出參定義頁簽,并填寫以下信息。
出參名:填寫自定義的參數(shù)名稱,例如
result
。來源:選擇Body的解析格式,例如Body:TEXT。
說明來源要選擇Body的解析格式為TEXT,同樣地,您也可以在場景調試中使用表達式調試的功能調試您的解析表達式。
解析表達式:根據(jù)Response詳情填寫解析表達式。示例中的Response Body為
result:success
,則解析表達式為result:(.+)
。
在檢查點(斷言)頁簽,為該API設置檢查點,可判斷提交選課是否成功。
檢查點類型:選擇出參。
檢查對象:選擇result。
檢查條件:選擇等于。
檢查內容:設置為
success
。
步驟二:壓力模式配置
基本場景構建完成后,需要選擇施壓模式、設置施壓量級等。
壓力來源:選擇公網,如果您在阿里云內網環(huán)境,可選擇阿里云VPC內網。
壓力模式:選擇虛擬用戶模式。以虛擬用戶模式發(fā)起壓測,更適合客戶端發(fā)起的場景,而RPS模式是站在服務端的視角,衡量系統(tǒng)吞吐量。
遞增模式:選擇手動調速。
最大虛擬用戶數(shù):虛擬用戶模式下,需要填寫最大虛擬用戶數(shù),例如10。
壓測總時長:例如1分鐘。
其他可保留默認值。
步驟三:調試并啟動場景
調試場景可驗證配置是否合理,避免壓測失敗,建議您先調試場景。
單擊保存去壓測,在溫馨提示頁面,選擇立即執(zhí)行并勾選確認本次壓測已獲得準許并遵守當?shù)胤?/b>,然后單擊啟動壓測。
分析壓測結果
壓測結束后,系統(tǒng)會自動獲取壓測過程中的數(shù)據(jù),例如壓測場景指標、業(yè)務詳情數(shù)據(jù)、監(jiān)控詳情數(shù)據(jù)和API采樣日志等,生成壓測報告,您可在壓測報告頁面查看。更多信息,請參見查看PTS壓測報告。