zoukankan      html  css  js  c++  java
  • jmeter 接口请求参数加密处理

     如图,是其中一个场景的压测脚本。

    1.临界部分控制器

      根据锁名来控制并发,同一个锁名之下,在同一时间点只能存在一个运行中,适用于控制并发的场景。

      这里使用是由于接口存在参数依赖的情况,可以避免出现依赖接口无法获取依赖值的情况。

    2.JSR223 预处理程序

      下载 jython-standalone-2.7.0.jar 放入jmeter的lib目录中,然后jmeter界面选择python语言<只支持python2,恶心的一批,好在python3和2的差别不大>。

      接口参数加密脚本:

    import random
    import base64
    import hmac
    import json
    import hashlib
    
    storeId = vars.get("store_id") # 获取csv等方式参数化值
    channelId = vars.get("channel_id")
    
    parsms = {} # get请求参数
    body = {"storeId": storeId, "channelId": channelId} # post请求参数
    
    vars.put("body", json.dumps(body)) # 把参数加入到jmeter全局变量中,供接口请求使用
    
    def ranstr(num):
        """
        随机字符串
        :param num:
        :return:
        """
        H = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
        salt = ""
        for i in range(num):
            salt += random.choice(H)
        return salt
    
    def hmac_sign(params, body, random_str):
        """
        key value body 随机字符串  加密
       根据加密方式编写加密脚本
        :param params:
        :param body:
        :param random_str:
        :return:
        """
        body = json.dumps(body) if body else ""
        data = ""
        if isinstance(params, dict):
            for key, value in params.items():
                data += key + str(value)
        data += body + random_str
        vars.put("data", data)
        appsecret = "xxxxxxx".encode("utf-8")  # 秘钥
        data = data.encode("utf-8")
        signature = base64.b64encode(hmac.new(appsecret, data, digestmod=hashlib.sha256).digest())  # 加密数据
        return bytes.decode(signature, encoding="utf8")
    
    nonce = ranstr(10) # 10位随机字符串
    
    vars.put("nonce", nonce) # header中需要传入的加密字段值
    vars.put("sign", hmac_sign(parsms, body, nonce)) # header中需要传入的加密字段值

      接口请求参数使用:

       header加密参数使用:

      通过查看结果树可以发现,参数加密情况: 

  • 相关阅读:
    drf规范——请求与响应
    序列化器——Serializer
    drf 安装与配置
    CBV源码——View,APIView
    django restful framework —— Drf 规范一
    Vue——五
    Vue——四
    今日复习
    冒泡排序
    考试总结
  • 原文地址:https://www.cnblogs.com/changqing8023/p/13942891.html
Copyright © 2011-2022 走看看