概述
接到上級通知,需要配合第三方供應商,對他們的合同簽署流程進行一次壓測。聽起來很簡單,但是中間涉及到的東西很多
業務流程
這個第三方的簽署流程大緻如下
1.登入擷取token
2.擷取目前時間戳
3.對合同pdf進行base64轉碼
4.轉碼過的合同寫到body裡
5.根據token,時間戳,body,以及我們的私鑰,通過算法生成一個sign簽名
6.sign計算之後,body裡面的base64會再一次轉碼
7.将token,時間戳,私鑰,sign簽名作為頭部資訊,和二次轉碼的body一起傳參
大緻如下圖
技術難點
1.token是動态的
2.時間戳是動态的
3.合同pdf轉碼之後太長,沒有辦法直接貼到jmeter的body裡面,貼進去就徹底卡死
4.由于上面的幾個參數都是動态,導緻生成的sign也是動态的,随時在變
5.同一份合同隻能簽署一次,也就意味着如果想做壓測,隻能手動傳不同的合同,不停地改sign
解決方案
寫java方法,實作以下功能
1.調接口自動擷取token
2.自動擷取目前時間戳
3.讀取本地檔案的轉碼body
4.通過body,時間戳,token生成sign,然後将這三組參數分列存到本地檔案。如果有多份pdf檔案,就生成多組。如下所示
| sign | time | body |
| -------- | -------- |
| 1 | 2 | 3 |
5.jmeter做參數化,并發去讀取這三行參數
思路僅供參考