jmeter 登录跨线程组解决方案
- 使用python批量插入用户数据,手机号随机生成,密码统一插入123456的加密字符
import pymysql
db = pymysql.connect(
host="124.70.xxx.xxx",
user="root",
password="3Dmaxxxx",
database="novel"
)
mycursor = db.cursor()
phone = ( (phone,phone) for phone in range(13100110000,13100112000))
sql = "INSERT INTO `novel`.`user`( `username`, `password`, `nick_name`, `user_photo`, `user_sex`, `account_balance`, `status`, `create_time`, `update_time`) VALUES (%s, '25d55ad283aa400af464c76d713c07ad', %s, NULL, NULL, 0, 0, '2022-09-07 21:53:04', '2022-09-07 21:53:04');"
try:
# 执行sql语句
mycursor.executemany(sql,phone)
# 提交到数据库执行
db.commit()
except Exception as e:
print(e)
# 如果发生错误则回滚
print("发生错误了")
db.rollback()
使用jmeter结构如下
- setup线程组用于账号密码登录
- json提取器 用户提取用户token
- beanshell 用于将提提取的token变成全局变量
// 将获取的token,保存为全局变量,共享给其他的线程组(采用login_token_${number}的方式区别不同的用户)
// 会创建100个全局属性: login_token_1 , login_token_2, login_token_3,login_token_.....
${__setProperty(login_token_${number},${login_token},)}
- 书架线程组提取token的方式为${_property(login_token${__Random(1,100,)},,)}
可以添加一个调试取样器看到所有的变量