【80%测试员被骗,关于jmeter 的一个弥天大谎!】

news2024/11/18 13:36:01

jmeter是目前大家都喜欢用的一款性能测试工具,因为它小巧、简单易上手,所以很多人都愿意用它来做接口测试或者性能测试,因此,在目前企业中,使用各个jmeter的版本都有,其中以jmeter3.x、4.x的应该居多



但是,不管大家使用jmeter的什么版本,都可能被jmeter的一个谎言给欺骗了,直到最近jmeter5.2.1版本发布,这个谎言才逐渐浮出水面。


到底是什么谎言呢?

应该大家在做性能测试的时候,都喜欢设置N个线程数,然后循环M次,以此来模拟真实同时N多个用户使用被测系统。对吧!

现实中被测系统,在N多个用户同时使用时,这N个用户应该都是相互独立,互不关联的,对吧!

我们用jmeter设置N个线程数,循环M次,目的就是想模拟这样N个互不关联的用户使用被测系统。但是,jmeter却在这个时候,给我们撒了一个弥天大谎。

图片

大家先看这张图,我在jmeter5.1.1版本创建一个普通的线程组,设置线程数2、循环次数2,线程组下用一个“csv数据文件设置”获取登录的账户信息,一个普通的http取样器做登录,一个普通的http取样器做登录后获取用户列表。

为了找出这个‘谎言’,我在登录接口下面加个后置正则表达式提取器,提取登录成功后的session值,然后把session值放在下一个取样器的‘名称’中打印出来。

分析

如果完全等价于真实场景,那应该有4个用户登录,生成4个session,用4个不同的session去获取用户列表信息,对吧!

好,现在我们用这个脚本run一下,看下结果:

图片

看下结果:

图片

看到一个奇怪的事情没有?4个手机号都不相同,但是session只有2个。线程1的两次迭代使用了相同的session,线程2的两次迭代也使用了相同的session。

说明同一线程无论迭代多少次,都是使用相同的session,也就是线程第一次登录的用户生成的session一直用于后面的迭代。、

为了验证,我们的这个总结,我们修改线程数为3,迭代次数为永远,持续循环10秒钟,再看下run的结果。

图片

图片

看到了吗?不管迭代多少次,同一个线程下,所有用户都是使用相同的session。

原来在我们使用jmeter做性能测试时,使用多线程循环迭代多次,并不是我们理想中的真实场景。jmeter欺骗了我们。

那,这种情况,只是出现在jmeter5.1.1版本中吗?我们把相同的脚本,拷贝到jmeter3.2版本和jmeter4.0版本中,我们再来看看。

图片

图片

看到了吗?原来这是jmeter的家族遗传史啊,都是这样的情况。没有深入研究,你是不是一直都认为jmeter多用户迭代做性能测试,就是你理想中的模拟用户真实使用场景的呢?

这个有没有什么办法,做到你理想中的模拟用户真实的使用场景呢?

告诉大家一个好消息,在jmeter最新的5.2.1版本中,已经发生变化啦!走过、路过、不要错过,都过来看看啦!别被一个‘谎言’迷惑终身啦!

在jmeter5.2版本发布的时候,已经在 线程组 的设置中,悄悄的加上了一个复选配置项:Same user on each iteration 默认为勾选,同时,在cookie管理器、缓存管理器、授权管理器 的配置选项中,也都增加了一个 ‘Use Thread Group configuration to control clearing’ 的复选配置项。

图片

图片

加了这个,怎么用呢?

首先,我们的脚本和前面的脚本做法完全一样。

只是,要注意:

1、在线程组配置时,要去掉默认的Same user on each iteration 的勾选;

2、在cookie管理器配置中,要勾选 Use Thread Group configuration to control cookie clearing

做好了这些,我们来run一下看下:

图片

图片

这样配置后,在发起获取用户列表信息时session都是使用新登陆的用户生成的session,每次都不一样。这样,也就更真实的模拟了大量用户访问被测系统的实际情况。

好了,这个技能,你get到了吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1076516.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Spring篇】讲解Bean的三种配置和实例化方法

🎊专栏【Spring】 🍔喜欢的诗句:天行健,君子以自强不息。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 文章目录 🌺bean基本配置🌺bean别名配置&#x1f33a…

初创公司低预算,如何做好品牌宣传?

品牌宣传对于企业十分重要,假如企业在毫无知名度,消费者是很难选择其产品的,只有通过品牌宣传建立良好的企业形象,消费者才会对公司产品产生信赖感,但是初创公司预算低,应该如何做好品牌宣传呢,…

程序化广告平台如何让app广告变现收益最大化?

程序化广告可以解决开发者的关心的“广告变现收益增长难”、“广告质量是否会影响用户体验”等问题,想要app广告变现的收益最大化,接入程序化广告平台是必不可少的一环。 https://www.shenshiads.comhttps://www.shenshiads.com 什么是程序化广告平台&…

针对FTP的SSRF攻击

前言 ssrf中常用的协议有http,gopher等。但http协议在ssrf中的用处也仅限于访问内网页面,在可以crlf的情况下才有可能扩大攻击范围。gopher协议比较特殊,在部分环境下支持此协议,如:curl。但还有一些环境就不支持了&a…

【复古数码】轻律U1头戴式耳机,让你感受音乐的魔力!

品牌介绍 根据惯例,了解一款产品先从了解其品牌入手吧,UMELODY(Undertone Melody),中文名轻律,创始团队深耕音频行业,2009年至今,品牌将复古潮流文化结合与音频设备之中。 从复古到…

Speeded-Up Robust Features (SURF)全文翻译

Speeded-Up Robust Features (SURF) 摘要 这篇文章提出了一种尺度和旋转不变的检测子和描述子,称为SURF(Speeded-Up Robust Features)。SURF在可重复性、鉴别性和鲁棒性方面都接近甚至超过了以往的方案,同时计算和比较的速度更快。 这依赖于使…

C# excel操作

使用库 Spire.Xls 下载 示例数据 代码示例 1.删除列 代码 private static void DeleteExcelColumns1(string excelPath) {if (excelPath.Length 0) {Console.WriteLine("excel文件路径为空");}else{Console.WriteLine("删除列方法1:保留第一列&…

日报系统:优化能源行业管理与决策的利器

日报系统:优化能源行业管理与决策的利器 引言: 随着能源行业的快速发展和复杂性增加,管理各个部门的数据变得至关重要。为了提高运营效率和决策的准确性,能源行业普遍采用日报系统作为综合数据汇报和分析的工具。本文将探讨日报系…

centos7 配置coreboot编译环境 以及编译问题解决

需要的配置 (有的资源在国外可能需要翻墙) 操作系统: centos7.9 参考文章 coreboot源码分析之编译和运行coreboot - 知乎 //coreboot编译总说明 https://www.coreboot.org/Build_HOWTO#Requirements https://poe.com/ChatGPT 注意: 因为github不稳定 所以gitee为主 1. 下载…

yolov5训练加速

问题记录及解决 1、使用ddp训练,生成标签的cache报错,等待时间过长。 方法:先使用dp训练,生成标签的cache,停掉再使用ddp方式训练。 2、 [E ProcessGroupNCC L.cpp:828] [Rank 6] Watchdog caught collective operat…

VR全景技术打造“智慧亚运”,实现720度自由视角

亚运会已然闭幕,亚运盛会不仅仅是体育健儿的竞技舞台,也是新技术的展示窗口,通过5G技术打造“智慧亚运”,VR技术在亚运会上的呈现比比皆是。有人可能会觉得非常新奇,其实VR全景技术早在几年前开始融入我们的生活。 VR全…

暴力递归转动态规划(八)

棋盘问题 将棋盘最左下角当作是平面直角坐标系的原点(0,0)位置,那么这个棋盘横坐标上就是9条线,纵坐标就是10条线,给定三个参数a、b、k,返回“马”从(0,0)位置…

BUUCTF reverse3 1

先运行下 看来是输入正确的flag 使用DIE查看文件 看起来没有壳,直接IDA打开 shift F12查找字符串 一路跟踪 到汇编窗口后F5 这里对Destination和Str2进行比较,Str2有值那么Str2就是经过上面一系列处理之后得到的内容了 继续分析上面的代码 根据…

企业电子杂志如何制作与分享

企业电子杂志相比传统纸质杂志具有更多的多媒体展示方式。在制作过程中,可以添加视频、音频、动画等多媒体元素来丰富电子杂志的内容,给人以独特的阅读体验。 如何制作企业电子杂志并分享出去?推荐用FLBOOK,可以快速做出漂亮的翻…

软考报名全流程及注意事项

软考报名方式有两种:现场报名与网上报名 现场报名: 由本人提出申请,按照规定携带身份证明到当地考试管理机构报名,领取准考证。 凭准考证、身份证明在指定的时间、地点考试。 具体各个省份,请考生登录所在省的软考…

C#学习系列相关之多线程(四)----async和await的用法

一、async、await用法的作用 async用法主要是用来作为修饰符将方法作为异步方法使用,await关键字只用作为在异步方法才能使用,也就是只有当方法有async修饰后,才能在方法中使用await,await后跟Task新的任务启动。(awai…

MySQL数据库技术笔记(5)

聚合函数: count(): 统计某种数据的数量 sum(): 统计某种数据的总和 max(): 某种数据的最大值 min(): 某种数据的最小值 avg(): 某种数据的平均值 排序的用法 : 关键字 order by 升序 : ASC (从小到大排序) 默认为升序 降序 : DESC…

基于拉丁超立方法的风光场景生成与削减

代码链接:基于拉丁超立方法的风光场景生成与削减 摘要:与蒙特卡洛法不同,拉丁超立方采样改进了采样策略能够做到较小采样规模中获得较高的采样精度,属于分层抽样技术,设定风光出力遵从正态分布normrnd,从而…

d3dcompiler_43.dll是什么文件?缺失d3dcompiler_43.dll文件修复与解决方法

今天我要和大家分享的是关于d3dcompiler_43.dll丢失的解决方法。我相信很多网友在使用电脑时都遇到过这个问题,那么接下来就让我们一起来探讨一下如何解决这个问题吧! 首先,让我们来了解一下d3dcompiler_43.dll文件的总体介绍。d3dcompiler_…

天津权威大数据培训机构 数据分析师的就业薪资多少?

中国大数据产业起步晚,发展速度快,物联网、移动互联网的迅速发展,使数据产生速度加快、规模加大,迫切需要运用大数据手段进行分析处理,提炼其中的有效信息。 学大数据可就业的行业 随着大数据技术的普及和应用&#…