全干工程师神器 - Jmeter 02 - Jmeter关于录制与简单实战


CSV Data Set Config


在这里插入图片描述


在这里插入图片描述


多个变量参数化与单个变量参数化的区别

单个变量


在这里插入图片描述


多个变量

  • 多个变量的情况下,使用“,”【英文格式】逗号作为分隔符,将关键字进行分隔.

在这里插入图片描述


用户参数与CSV Data Set Config

关于"用户参数""CSV Data Set Config"哪个元件用来做参数化更有优势,没有标 准答案,"两者都可以用",主要看使用者更倾向于哪一个。

一般情况下,参数化数据量不是很大的情况下,使用用户参数更为简便些。

如果参数化数据量比较大的情况下,比如开发导出来的CSV文件,CSV Data Set Config

要比用户参数来说更有优势些。

Jmeter - 集合点


可以理解为“增加并发、模拟并发”

定义:

简单的说,虽然我们的“性能测试”理解为“多用户并发测试”,但真正的并发是不存在的, 为了更真实的实现并发这概念,我们可以在需要压力的地方设置集合点,每到输入用户 名和密码登录时,所有的虚拟用户都相互之间等一等,然后,一起访问。

如淘宝的秒杀,多个用户同时进行一个操作。

注意:

1、jmeter集合点通过添加定时器来完成。

2、JMeter里面的集合点通过添加定时器来完成。

3、Synchronizing timer仅作用于同一个JVM中的线程。

查看下文“注意点”处的补充。

操作步骤


在这里插入图片描述


在这里插入图片描述


注意:

  • Number of Simulated Users to Group by:

每次释放的线程数量。如果设置为0,等同于设置为线程租中的线程数量。

可理解为集合多少人后再执行请求

  • Timeout in milliseconds:

如果设置为0,Timer将会等待线程数达到了"Number of Simultaneous Users to Group"中设置的值才释放。如果大于0,那么如果超过Timeout in milliseconds中设置的最大等待时间(毫秒为单位)后还没达到"Number of Simultaneous Users to Group"中设置的值,Timer将不再等待,释放已到达的线程。默认为0。

  • 如果设置Timeout in milliseconds为0,且线程数量无法达到"Number of Simultaneous

Users to Group by” 中设置的值,那么Test将无限等待,除非手动终止。

作用域

如果希望定时器仅应用于其中一个sampler,则把该定时器作为子节点加入,如下图

定时器仅仅对HTTP请求1起作用,即仅在HTTP请求1执行前执行定时器,和HTTP请 求2无关。


在这里插入图片描述


如果希望synchronizing timer应用于多个sampler.

如下,执行HTTP请求1和HTTP请求2前都会执行同步定时器1、2。当执行一个sampler 之前时,和sampler处于相同作用域的定时器都会被执行;


在这里插入图片描述


注意点

问:集合点的位置一定要在Sample(采样器)之前才能生效吗?

答:在Jmeter中,timer是在sampler之前执行的。不管这个定时器的位置放在sampler之 后,还是之前。当然,如果有多个timer的时候,在相同作用域下,会按上下顺序执行 timer,这个就需要慎重放置timer的顺序;不过,为了更好的可读性,还是建议将timer放在对应的sampler前面 或 子节点中;

关于Synchronizing timer补充: Synchronizing timer 仅作用于同一个JVM中的线程。

  • a.如果分布式测试时

synchronizing timer作用于所有jvm,那么jvm之间或者说监控jvm 工作的部件就需要频繁通讯,确定线程的数量及状态等,然后集结了足够的线程后,又要发送信号让Jmeter来发送测试请求,中间存在延时,这样就无法模拟更真实的高并发了,而且这个东西还会消耗测试机器的一部分性能,会给测试结果带来负面影响;所以暂时是只支持控制单个jvm,如果后面有办法解决上面那些问题后,就可以实现控制多个jvm,控制总并发量;

  • b.如果分布式测试

并使用了Synchronizing timer,且设置的值是小于单个jvm的线程数量;但是,较难确保所有jvm都在同一时间点集结了同样数量的线程数,这样就很难下测试结论了,因为都不知道是多少并发下的性能表现;当然了,可以将线程的启用时间拉长,并将超时时间延长,这样就很可能会与同一时刻集结到足够的线程,达到超高并发的测试;所以,分布式测试与Synchronizing timer一般不是同时使用的;如果非要用,则需要慎重设置相关参数

关于集合点,在实际应用中基本上是不用的,或者说非常少非常少用。

其实,仅仅就集合点来说,影响性能么?答案:影响。那么影响大么?答案:其实也不是太大。

因为一个系统能够承受的并发数和压力取决于两点。

  • 取决于业务脚本里的思考时间

同样的并发、同样压力情况下,若思考时间不同,能够承受的压力也是不同的。

  • 取决于系统真正的处理能力,或者说 TPS【系统吞吐量,亦说QPS】,TPS每秒处理的能力越高,那么处理压力的能力相对来说就会多一些。

Jmeter—断言/检查点


按照Jmeter官方的翻译过来叫“断言”,其实功能与LoadRunner的“检查点”是一样 的,叫法不一样罢了(文字游戏)

断言/检查点

对响应的结果做一个判断。

响应断言

注意点

1、模式匹配规则

2、要测试的模式


在这里插入图片描述


在这里插入图片描述


响应断言的参数

Apply to:响应作用范围

1、Main sample and sub-samples:断言应用于主采样器和子采样器。

2、Main sample only:断言仅应用于主采样器。

3、Sub-samples only:断言仅应用于子采样器。

4、Jmeter Variable:断言将被施加到命名变量的内容,变量值进行匹配

要测试的响应字段

1、响应文本:指页面返回的http文本内容 。

2、响应代码:指请求返回的状态,如200 。

3、响应信息:指请求返回的响应信息,如OK、not found 。

4、Response Headers : 响应头信息 。

5、Request Headers :请求头信息。

6、剩余几个还不了解~~

模式匹配规则:

1、包括=返回结果包括你指定的内容,支持正则匹配

2、匹配:

(1)相当于 equals 。当返回值固定时,可以返回值做断言,效果和equals相同

(2)正则匹配 。 用正则表达式匹配返回结果,但必须全部匹配。 即正则表达式 必须能匹配整个返回值,而不是返回值的一部分。

3、Equals ::返回结果与指定断言完全一致

4、SubString:与 “包括”差不多,都是指返回结果包括你指定的内容,但是SubString不支持正则字符串。

断言结果

对“响应断言”的“断言结果”进行再次的判断

增加"断言结果"

在这里插入图片描述


断言结果判定
  • 成功

如果成功,“断言”一栏显示请求地址


在这里插入图片描述


  • 失败

如果失败,“断言”一栏请求地址下方显示报错原因。


在这里插入图片描述


Jmeter—关联/动态关联


1、和LoadRunner中的关联差不多

2、Jmeter中关联的两种方式:正则、xpath(一般xml的时候用的多)

正则:一般用的比较多的是正则

XML:返回的数据是XML格式的情况,用XML居多

3、以webtours登录威力进行演示 webtours.jmx

webtours:LoadRunner自带的

步骤

1、webtours开启关联

2、badboy录制

3、导入Jmeter

4、找出需要关联的请求(nav.pl)

5、该请求 --> 后置处理器 --> 正则 --> 填入内容

6、增加断言

7、增加断言结果

8、运行查看


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


  • 模板:如果前面的正则表达式取了不止一个参数,那么这里需要制定参数的组别,如果该参数为 1 1 1,则表示取得第一个值, 2 2 2表示取得第二个值

  • 匹配数字:0随机; -1取所有值,以数组形式存储; 1; 2…

  • 缺省值:一般默认即可(为空)

Jmeter—web程序


项目背景

  • XX网站

  • 环境:Windows

需求

  • 并发登录的性能

场景

  • 1s增加2个线程;运行2000次。

  • 分别查看20、40、60并发下的表现

监控

  • 成功率、响应时间、标准差、CPU、MEM、IO等

  • 资源监控需要在Windows / Linux下部署监控agent (server agent)

步骤

  • badboy录制

  • 导入jmeter

  • 参数化、检查点、集合点

  • 指标监控,资源监控

  • 报告(可导出到xls,然后自行生成报表)

  • 演示login.jmx


在这里插入图片描述


注意点

关于 “聚合报告 --> 响应数据” 中文乱码解决方法

监控内存及CPU等(jconsole)

最近逛论坛的时候,发现了一个比较好的监控内存CPU等的小工具,本着开源小工具多 多益善的原则,记录一下。

打开这个小工具的步骤很简单,如果你已经配置好了Jmeter运行的环境,那么你也就 不用去做其他的配置,直接 点击:开始——》运行——》输入cmd——》然后在出现的 命令行界面输入“jconsole”即可弹出一个【java监视和管理控制台】


在这里插入图片描述


在这里插入图片描述


Jmeter–FTP程序


需求

  • 上传一个文件到服务器(put)

  • 下载一个文件到本地(get)


在这里插入图片描述


步骤

  • 打开Jmeter

  • 线程组

  • ftp请求缺省值(可有可无)

  • ftp请求(get和put两种)

  • 如果有用户名和密码填上即可

Jmeter—jdbc测试mysql数据库


JDBC Connection Configuration

测试计划需加载Jar包


在这里插入图片描述


参考链接:https://blog.csdn.net/u012167045/article/details/72638507

参考链接:https://jingyan.baidu.com/article/f96699bbf5d092894e3c1b87.html


这张图好像有点失帧了,凑合吧…

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


关于jdbc中文乱码的说明

第一步:请确认你在数据库中写sql出来的中文是正常显示的,并没有出现问号或乱码, 如果出现那是数据库编码的问题,和jmeter无关;

第二步:在第一步确认的前提下,修改jmeter jdbc databaseurl

jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true,前面的链接地址和端口以及数据库名根据实际情况修改,后面的参数固定,这样就可以解决问号乱码的问题了。

Jmeter—分布式性能测试


Jmeter由java开发,耗内存、cpu,所以大并发下还是需要分布式的。

原理

其实和LoadRunner的agent差不多,如下图所示。


最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
img

.csdnimg.cn/img_convert/16ac689cb023166b2ffa9c677ac40fc0.png)

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
[外链图片转存中…(img-fSG7xsmL-1711080234643)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值