jmeter 壓測簽名演算法

飛天小子的效能課堂發表於2020-09-10

概述

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

業務流程

這個第三方的簽署流程大致如下
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做引數化,併發去讀取這三行引數

大致思路就是這些

相關文章