天天看點

jmeter 壓測簽名算法

概述

接到上級通知,需要配合第三方供應商,對他們的合同簽署流程進行一次壓測。聽起來很簡單,但是中間涉及到的東西很多

業務流程

這個第三方的簽署流程大緻如下

1.登入擷取token

2.擷取目前時間戳

3.對合同pdf進行base64轉碼

4.轉碼過的合同寫到body裡

5.根據token,時間戳,body,以及我們的私鑰,通過算法生成一個sign簽名

6.sign計算之後,body裡面的base64會再一次轉碼

7.将token,時間戳,私鑰,sign簽名作為頭部資訊,和二次轉碼的body一起傳參

大緻如下圖

jmeter 壓測簽名算法

技術難點

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做參數化,并發去讀取這三行參數

思路僅供參考