JMeter模拟多用户并发登录,批量把token保存到本地

Jmeter实现多用户登录的两种方式 Jemeter实现多用户登录的两种方式注:(1)不管用哪种方式,都要在本地创建一个user.txt或者user.csv的文件。 (2)编写user.txt文件时,一定不要有空格,一定要用英文的逗号“,”隔开 (3)设置的线程数一定要和文档中的用户数量相等1、第一种方式:函数助手设置变量 **步骤1:**在测试计划下添加“线程组”。 **步骤2:**在线程组下添加“HTTP请求”。 **步骤3:**填写“HTTP请求”中的信息 **步骤4:**设置请求参数 (1)找到顶部工具——》函数助手对话框 (2) 阅读详情

本文模拟多用户并发操作。通过设置多个线程组,实现登录一次,多次进行其他后续操作。      

        将多用户信息参数化,setUp线程组进行一次登录请求,请求成功后将多用户获取到的token信息储存在本地,再进行参数传递,完成后续操作后,通过tearDown线程组,销毁本地token文件,以便执行下次测试计划。

同线程组操作可参考上篇文章

JMeter模拟多用户同时登录,token传递接口关联_LSZZZ的博客-优快云博客根据性能测试需求,需要模拟多用户同时登录1、新建一个txt文件,用于存放用户参数数据。先创建登录接口进行请求https://blog.youkuaiyun.com/LSZZZ/article/details/120864747

本篇为多线程组,下面为详细操作步骤

SetUp线程组

模拟5个用户,同时登录

1、新建一个txt或csv文件,用于存放用户参数数据

存放置在jmx脚本同目录中(同目录下不用写绝对路径)

txt文件格式填写要求同csv文件,中间以英文逗号分隔

2、创建Http请求,通过配置元件CSV数据文件设置,读取本地txt文件,进行参数化请求

token信息通过此接口获得

 3、Json提取器,响应结果中提取获得的token

{
    "msg": "",
    "code": 2,
    "data": {
        "token": "d3a58b69d288252f413cf60d9d8ea3dbb95b32ac"
    }
}

将提取到的token 命名为 app_token

4、JSR223后置处理程序,利用Java代码,把token保存在本地文件

保存的文件名为 tokens.txt 

//追加文件加true,覆盖文件不加
FileOutputStream fps = new FileOutputStream("Jmeter_shell/tokens.txt",true);

OutputStreamWriter osw = new OutputStreamWriter(fps);
BufferedWriter bw =new BufferedWriter(osw);
//Json或正则提取器获返回的token参数
bw.append("${app_token}\n"); 

if(bw!=null){bw.close();}
if(osw!=null){bw.close();}
if(fps!=null){bw.close();}

 并发业务线程组

模拟5个用户,并发循环执行业务操作3次

 1、配置元件CSV数据文件设置,获取本地token

获取setUp线程组中存储在本地文件tokens.txt中的数据

 2、把token添加到请求头中

 ${app_token}

 可以根据业务要求,设置循环次数,准备时长,断言等

tearDown线程组

tearDown线程组,进行销毁操作,把保存在本地的tokens.txt文件删除

如果不自动清理掉上一次产生的数据,下次再执行测试时,登录接口会产生新的token,旧的token将会失效

所以有必要在这里进行销毁操作,每次执行完后,将旧的token数据进行销毁,以免出现问题

String filename = "path\\tokens.txt";
File file = new File(filename);
if(file.exists()){
	file.delete();
	System.out.println("已删除tokens.txt文件"+filename);
};

Jmeter 批量将用户登录的token保存到本地 jmeter批量将用户登录的token保存到本地文件,模拟多用户执行多线程的操作 阅读详情

相关推荐

JMeter并发压测与多用户登录的三大错位解析

并发压测是性能测试的核心能力,其本质是模拟真实用户对系统的集中访问压力。理解JMeter线程模型、HTTP连接复用机制与会话状态管理原理,是实现精准施压的前提。技术价值在于避免因线程调度失真、Cookie共享污染或账号数据复用导致的500错误、Token串号等典型问题。典型应用场景包括电商秒杀、金融登录、政务系统高负载验证等需强会话态支撑的业务压测。本文聚焦JMeter中‘并发’与‘多用户’的深层矛盾,系统拆解时间错位、状态错位与数据错位,并给出可落地的登录态隔离与动态Token提取方案。

weixin_30338497的博客 653

Jmeter学习03——登录后获取token进行后续操作

jmeter学习

weixin_46471814的博客 3120

【JMeter】多用户token使用

在测试时,经常有模拟用户登录,获取用户token后再去请求接口的场景 性能中,需模拟多线程并发测试多用户产生多个token,每个用户使用各自的token进行接下来的请求 多用户获取多token并在接下来的业务接口请求中使用的场景非常多,接下来介绍的是其中一种通过将获取的token信息写入csv文件后再去读取的方式 一、场景接口 只有两个接口,一个是登录获取token的登陆接口,一个是使用token进行请求的业务接口 1.1 登录接口 请求: POST http://localhost:5007/securi

sysu_lluozh 9132

如何使用Jmeter进行登陆后的并发操作

目录 一、脚本组织 二、疑惑 三、总结 记录一下如何使用Jmeter进行并发操作。如有不同意见,欢迎讨论。 一、脚本组织 如图所示 ,登陆和支付请求都加上了定时器,根据查看结果树,可看出所有用户登陆完成后,才进行支付请求的提交,且登陆和支付发起请求的时间几乎是同时(详细的请求信息可以通过 用表格查看结果 进行查看,严格来讲还是做不到同时发起请求,但是时间间隔极小,可以认为同时进行)。 csv数据文件:需要进行参数化的请求参数,这里有个小坑,就是如果新建txt文本,然后再重命名为csv文件.

qq_14945475的博客 3891

Jmeter基础教程

jmeter安装部署、常用组件和操作,以及两个示例(接口和压力各自一个)

主板USB接口全部失效解决方案(通用串行总线USB控制器有黄色叹号)保姆级教程亲测有效

通用串行总线控制器总是有叹号解决办法 办公室的崩腾时代老电脑,疫情期间没人用,来了开机之后发现鼠标键盘都用不了,本以为是主机放时间长出了问题,后来想起来就百度了“鼠标键盘都失效”的标题,结果发现了“串行总线控制器总是感叹号”的关联问题。正好办公室电脑都装有teamviwer常用来远程办公(在家偷懒)。所以通过远程发现电脑室可以运行的。并在控制面板发现:通用串行总线控制器总是感叹号,插入外设时USB无反应。如图:​ 并且右键选中其中一个,点击最后一个选项:“属性” 可以发现“设备状态”中会提示“由...

xiao_bai_0_0的博客 2万+

Jmeter模拟多用户获取token

Jmeter模拟多用户获取token 先看最终的jmeter工程截图: 创建登陆请求 加载用户帐号文件 文件内容如: # 自定义,但 # username,password,addressId alan,1234,45 jack,1234,34 创建JSON解析器 即解析请求登陆成功返回的结果: { code: 200, msg: "ok", data: { token: "J...

面朝大海,春暖花开 5954

modelsim软件安装教程及踩坑(极简版)

1.安装的网盘链接:链接:https://pan.baidu.com/s/1ltUfssyXlCnqDmLhWyhlwA提取码:jery 2.步骤(参考博文):https://blog.youkuaiyun.com/weixin_42693097/article/details/90523692?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163521788716780357213801%2522%252C%2522scm%2522%253A%2522

subtitle_的博客 3780

Jmeter多用户token使用问题

如果没有用户登录这一步,给的直接是 token,那么我们也是直接把这个 token 放到 csv 文件里面,然后让 jmeter 去循环使用里面的 token。这段代码的意思是,把用户名和提取到的 access_token 写进到 csv 文件里面,这个文件在的位置是 jmeter 的目录。这里试跑两次,可以发现业务请求的接口,它的 token 请求头每次都是不一样的,在交替变化,这个是符合预期的。换句话就是说,每登录一个用户,这个 access_token 的值就会是最后一个登录的用户的 token,。

LAMO 1301

Rstudio安装org.Hs.eg.db

自己也是个小白,初次安装org.Hs.eg.db碰到好多问题,步骤总结如下: 第一,instal.packages()安装,不行则换 BiocManager::install() 第二,如BiocManager不成,说明不是最新版本,可按提示安装最新版 BiocManager::install(version = '3.13') #由于R版本较新,按照提示中的相关信息,安装最新版本的 第三,再次安装 BiocManager::install("org.Hs.eg.db") 第四,之后每个人.

ZH_DDong的博客 2万+

指纹对抗指南:如何绕过Cloudflare与Akamai的5s盾与浏览器指纹检测

现在的CDN反爬技术虽然越来越强,但是道高一尺魔高一丈,只要掌握了指纹伪造、流量伪装、行为模拟这些核心技术,就可以绕过绝大多数的防护措施。对抗过程中要注意效率和成本的平衡,小规模爬取用Playwright+stealth最方便,大规模爬取用curl_cffi+代理池性价比最高,遇到验证码用打码平台或者自动识别服务,不需要死磕破解。本文介绍的方案已经在实战中验证过,可以绕过95%以上的Cloudflare/Akamai防护,成功率非常高。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 297

JMeter模拟多用户同时登录,token传递接口关联(同线程组)

根据性能测试需求,需要模拟多用户同时登录 1、新建一个txt文件,用于存放用户参数数据。 先创建登录接口进行请求

LSZZZ的博客 1万+

SY6982C 7.4V锂电池1A充电模块原理图设计,已量产

在手持设备、便携工具与小型无人机等场景中,7.4V(2S)锂聚合物电池的应用愈发广泛。这类电池对充电系统的安全性、效率与兼容性提出了明确要求:需支持 USB 5V 输入、1A 安全充电,同时具备多重保护机制。本文将结合一款基于 SY6982C 的充电原理图,深入解析其电路设计与技术亮点。

不脱发的程序猿 360

jmeter 模拟多用户保持登录

jmeter获取验证码并多用户保持登录

weixin_45369163的博客 1454

ShengBTE热导计算:利用ShengBTE计算热导显示NAN的原因是什么?算出的热导不随平均声子自由程变化

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 963

光学测量仿真软件:Zygo_(5).Zygo的数据处理与分析方法

通过上述综合案例,我们可以看到Zygo中的数据处理与分析方法是如何一步一步应用于实际数据的。从数据导入到预处理,再到滤波、表面分析、缺陷检测和数据可视化,每一步都至关重要,最终确保了数据的准确性和可靠性。处理后的数据还可以导出为多种格式,便于在其他软件中进行进一步的处理或报告。希望这个案例能够帮助您更好地理解和应用Zygo中的数据处理与分析方法。

kkchenjj的博客 946

jmeter进行csv参数化,获取不同用户的登录token(实现多用户调用同一个接口)

添加HTTP信息头管理器,输入 ${__property(access_token)}进行获取登录返回的token。1.8 点击进行执行,可以查看到共执行了10000次,通过请求入参查看登录账号是否是10000执行。1.9 入参登录账号查看,从账号cq1执行到了cq10000,生成了10000个token。2.4 新建一个http请求,进行获取关联token。2.5 添加察看结果树,查看响应数据。

Hisblog的博客 4032

PyTorch实战(26)——PyTorch分布式训练

在本节中,我们将探讨如何通过跨机器和机器内多进程的分布式训练来加速模型训练过程。我们将系统学习 PyTorch 提供的三大分布式训练 API——torch.distributed、torch.multiprocessing 以及 torch.utils.data.distributed.DistributedSampler,使用这些 API 能够极大的简化分布式训练,介绍如何使用 PyTorch 的分布式训练工具,在 CPU 和 GPU 上加速训练。

盼小辉丶的博客 3826

Jmeter压测过程中需要多用户token使用问题

jmeter压测过程中多用户并发问题解决

Cesare的博客 1459

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

JMeter实战:多用户并发登录与Token自动化管理全流程解析

本文详细解析了使用JMeter进行多用户并发登录测试与Token自动化管理的全流程。通过SetUp线程组批量获取Token,业务线程组复用Token进行高并发操作,以及TearDown线程组清理测试数据,有效模拟真实场景下的性能测试需求。文章还提供了环境配置、测试数据准备、高级技巧及常见问题排查的实用指南,帮助开发者提升性能测试效率。

weixin_28677451的博客 383

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Jmeter批量获取登录token并保存到csv

Jmeter批量获取token存入csv,通过Beanshell对csv文件进行删除、读写操作

fanxiaolong726的专栏 1809

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

JMeter_模拟微信多用户并发

  所在的公司的业务都基于微信,最近领导下达了一个任务是基于微信做多用户并发测试。之前也有尝试做压测,但是没有带上Header,导致请求发都发不出去。 1、右键“测试计划”→“添加”→“Threads(Users)”→“线程组” 2、添加CSV数据文件设置:右键线程组“添加”→“配置元件”→“CSV 数据文件设置” 2.1 准备一堆的token,我是用记事本来记录的(命名...

weixin_30436101的博客 1670

告别单用户!用JMeter CSV数据文件模拟多用户登录压测(附完整BeanShell脚本)

本文详细介绍了如何利用JMeter和CSV数据文件实现多用户登录压力测试,包括Token自动化管理、数据准备规范、登录请求配置及Token提取存储等关键步骤。通过完整的BeanShell脚本示例,帮助开发者构建高并发的业务场景模拟,提升压力测试的准确性和效率。

weixin_30570101的博客 471
上一篇: JMeter模拟多用户同时登录,token传递接口关联(同线程组)
tallcoldlu
博客等级 码龄7年 8粉丝 2原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值