示例場景說明
場景設定:
?具有一定安全性要求、部分接口的參數具有時效性的場景。總共有三個接口,分別是登錄接口、申請資源訪問權限接口和獲取資源接口,場景總流程如下:
1)調用登錄接口獲取認證信息。
2)使用認證信息申請資源訪問權限,獲取資源accessKey。
3)使用認證信息和accessKey訪問對應資源。
其中,申請資源訪問權限接口需要構造簽名,申請到的accessKey具有時效性,超時后將不能用于訪問資源。
?secretKey:在申請資源訪問權限接口中用于簽名的密鑰。
?resourceId:用于壓測的資源ID。
接口說明:
1.登錄接口
1)地址://example.daliqc.cn/user/login
2)請求方式:POST
3)請求Body:
?結構:Json
?字段定義:
username:用戶名(從參數文件中讀取)。
password:密碼(從參數文件中讀取)。
4)響應:
?結構:Json
?示例:{"code":200, "message": "ok", "auth_info":"6688629172654192"}
2.申請資源訪問權限
1)地址://example.daliqc.cn/resource/access
2)請求方式:GET
3)請求參數:
?結構:Query
?字段定義:
timestamp:毫秒時間戳。
resourceId: 請求資源的ID。
4)請求Headers:
?x-auth-info: 登錄接口返回數據中的auth_info字段。
?signature:簽名。簽名算法:a. 構造字符串timestamp-resourceId;b. 使用hmacSha256算法和secretKey對1中構造的字符串簽名。
5)響應:
?結構:Json
?示例:{"code":200, "message": "ok", "access_key":"784373beb194aaec97", "timeout": "946656000"}
3.獲取資源
1)地址://example.daliqc.cn/resource/fetch
2)請求方式:GET
3)請求Headers:
?x-auth-info: 登錄接口返回數據中的auth_info字段。
4)請求參數:
?結構:Query
?字段定義:
resourceId:請求資源的ID。
accessKey: 申請資源訪問權限接口的響應Json數據中的access_key字段。
5)響應:
?結構:Json
?示例:{"code":200, "message": "ok", "data": "..."}。
備注:業務成功時code字段應該為200。
壓測配置示例
步驟一:準備數據
1.準備用于簽名的secretKey和需要壓測的資源ID resourceId,示例中設定secretKey為e769ef4a5c03b71ed685938235448345,resourceId為42b730f250da7fbc。
2.將用于壓測的username、password按照以下格式構造CSV文件username-password.csv。

3.登錄。
4.在左側導航欄選擇場景管理 > 創建場景。
5.在創建場景頁面,填寫場景名,例如example,填入基本信息后保存。
6.
在左側導航欄選擇數據源 ,點擊上傳文件 ,將CSV文件上傳到PTS作為數據源,上傳完畢后,將數據源關聯上一步創建的場景。


步驟二:配置場景基本框架
1.切換到施壓配置頁簽,按照您的需求配置相關參數,示例中使用默認配置。


2.切換到場景配置頁簽,添加任務和壓測請求,填入接口基本信息,在本示例場景中,這三個接口是串行的,所以它們需要配置在同一個任務下,示例配置如下。


步驟三:配置登錄接口
修改登錄接口user/login,示例:
1.接口基本信息:
1)協議:HTTPS
2)請求方式:POST
3)url://example.daliqc.cn/user/login


2.使用文件參數username和password構造請求Json,Content-Type選擇“JSON(application/json)”。


3.配置響應提取,從響應的Json中提取認證信息auth_info字段作為引用參數authInfo。


步驟四:配置申請資源訪問權限接口
修改申請資源訪問權限接口resource/access,示例:
1.接口基本信息:
1)協議:HTTPS
2)請求方式:GET
3)url://example.daliqc.cn/resource/access
4)query:timestamp=${sys.timestampMS()}&resourceId=42b730f250da7fbc
解釋:timestamp=${sys.timestampMS()},使用系統函數獲取毫秒時間戳;resourceId=42b730f250da7fbc,需要壓測的資源ID。


2.請求頭信息:
1)x-auth-info:${authInfo}
解釋:${authInfo}為步驟三中登錄接口提取到的認證信息。
2)signature: {func.hmacSha256( {func.concat(${sys.timestampMS()}, "-","42b730f250da7fbc")},"e769ef4a5c03b71ed685938235448345")}
解釋:使用func.concat函數構造字符串timestamp-resourceId;使用func.hmacSha256方法和secretKey(示例中secretKey=e769ef4a5c03b71ed685938235448345)對構造的字符串進行加密。


3.配置響應提取,從響應Json中提取鑒權信息access_key作為引用參數accessKey。


步驟五:配置獲取資源接口
修改獲取資源接口resource/fetch,示例:
1.接口基本信息:
1)協議:HTTPS
2)請求方式:GET
3)url://example.daliqc.cn/resource/fetch
4)query:resourceId=42b730f250da7fbc&accessKey=${accessKey}
解釋:resourceId=42b730f250da7fbc,用于壓測的資源ID;accessKey=${accessKey},步驟四中提取到的鑒權信息


2.請求頭信息:
x-auth-info:${authInfo}
解釋:${authInfo}為步驟三中登錄接口提取到的認證信息。


3.配置響應提取,提取響應Json的code字段作為參數businessCode。


4.檢查businessCode是否為200,判斷本次業務是否成功。


步驟六:啟動壓測
至此,完成了示例場景的所有配置,只需保存場景并壓測即可。