zoukankan      html  css  js  c++  java
  • jmeter 压测签名算法

    概述

    接到上级通知,需要配合第三方供应商,对他们的合同签署流程进行一次压测。听起来很简单,但是中间涉及到的东西很多

    业务流程

    这个第三方的签署流程大致如下
    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做参数化,并发去读取这三行参数

    思路仅供参考

  • 相关阅读:
    邮件发送
    生成缩略图
    截取字符串,中文安两个字符处理
    获取客户机MAC地址 根据IP地址 获取机器的MAC地址 / 获取真实Ip地址
    文件操作
    MD5加密 和 自定义加密解密
    Html标签替换(过滤掉html特殊符号)
    .net core 自定义中间件
    querySelector和querySelectorAll
    CSS下背景属性background的使用方法
  • 原文地址:https://www.cnblogs.com/Zfc-Cjk/p/13646357.html
Copyright © 2011-2022 走看看