使用jmeter进行批量登录(密码含时间戳加密)

使用jmeter进行批量登录


当登录含时间戳加密信息超时校验时,单独使用jmeter很难实现自动化运行,本文前置信息处理通过python进行,再使用jmeter进行运行登录脚本。

使用python进行密钥加密

加密模块

import rsa
import base64
def _str2key(s):
    # 对字符串解码
    b_str = base64.b64decode(s)
    if len(b_str) < 162:
        return False
    hex_str = ''
    # 按位转换成16进制
    for x in b_str:
        h = hex(x)[2:]
        h = h.rjust(2, '0')
        hex_str += h
    # 找到模数和指数的开头结束位置
    m_start = 29 * 2
    e_start = 159 * 2
    m_len = 128 * 2
    e_len = 3 * 2
    modulus = hex_str[m_start:m_start + m_len]
    exponent = hex_str[e_start:e_start + e_len]
    return modulus, exponent
def rsa_encrypt(s, pubkey_str):
    '''
    rsa加密
    :param s:
    :param pubkey_str:公钥
    :return:
    '''
    key = _str2key(pubkey_str)
    modulus = int(key[0], 16)
    exponent = int(key[1], 16)
    pubkey = rsa.PublicKey(modulus, exponent)
    return base64.b64encode(rsa.encrypt(s.encode(), pubkey)).decode()

加密密码

def get_password(password):
    timestamp = int(time.time() * 1000)
    # print("timestamp:  " + str(timestamp))
    message = str(timestamp) + "-" + password
    password = rsa_encrypt(message,
                           "你的公钥")
    return timestamp, password

本被测系统是通过密码加时间戳后进行加密,这块具体代码需要结合自己被测系统的加密算法

把需要请求的参数放到csv文件里面

with open("C:\\Users\\John\\PycharmProjects\\rsa\\LoginInfo.csv","w",newline="") as f:
    writer = csv.writer(f)
    #写入列名
    writer.writerow(['username','password','timestamp'])
    #造200条数据,f
    for i in range(200):
        timestamp, password = get_password("密码")
        writer.writerow(['账号',password,timestamp])

使用jmeter运行python脚本
在setup线程组中添加beanshell取样器运行python脚本
在这里插入图片描述

import java.io.BufferedReader;
import java.io.InputStreamReader;
//pytho文件的路径
String command = "cmd /c python C://Users//John//PycharmProjects//rsa//GetLoginInfo.py";
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command); 
pr.waitFor();

使用jmeter中的csv data set config对csv文件进行读取
在这里插入图片描述
变量名是csv文件中的列名
在这里插入图片描述
每次运行就会先运行python脚本,避免登录时间戳超时校验的影响
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值