Jmeter 压力测试并输出HTML报告

作者&投稿:浑育 (若有异议请与网页底部的电邮联系)
~

在进行性能测试执行之前,需要进行场景的设计:
以什么方式启动,如何持续进行,直至测试结束

三部曲:启动---持续进行---结束

PS:一般情况下,建议限制Jmeter的的线程数在300及以内,这样能更好的发挥出jmeter的性能

测试步骤:
测试计划---线程组--HTTP请求---监听器---运行脚本---查看报告

PS:默认情况下,JMeter运行需要占用1 GB的内存,这可能还不够,取决于你的测试计划和需要运行的线程数

一个测试计划描述了一系列Jmeter运行时需要执行的步骤,可以包含一个或者多个线程组,逻辑控制器,取样发生控制,监听器,定时器,断言和配置元件。

启动JMeter,会出现一个空的测试计划,此次练习通过手写脚本来实现
(不熟悉操作的,也可以通过模板的形式创建,在菜单栏文件--Templates,下拉列表中选择Recording,点击Create,一个完整的Test Plan就生成了,当然我们可以删除不需要的内容)

作用:模拟用户个数、发送请求的频率及次数
PS:设置合理的线程数对能否达到测试目标有着决定性的影响,另外,设置合理的循环次数也很重要

此处添加3个HTTP请求

1、添加响应断言 :设置响应码为200

2、查看结果树,验证请求
调试时线程数和循环次数设为1就可以了,记得调试好之后再改回去

3、禁用查看结果树,命令行执行脚本
我们在启动Jmeter时就会看到命令行的提示信息,进行负载测试时请不要使用GUI模式,也就是用命令行模式运行 JMeter 测试脚本,这样可以大大缩减所需要的系统资源

备注:GUI 即图形用户界面模式,只应用于创建测试脚本、调试脚本

图中也给出了命令格式: jmeter -n -t [jmx file] -l [result file] -e -o [Path to output folder] ,JMeter 默认去当前目录寻找脚本文件,并把日志记录在当前目录,当然也可以使用绝对路径来执行

参数说明:

(1)直接生成HTML报告
PS:输出文件(-l后的文件)必须是不存在的,report文件夹为空文件夹或者不存在(-o后面的),不然无法生存报告
启动CMD窗口,输入以下命令:
jmeter -n -t C:\Users\zhangXXX\Desktop\baidu.jmx -l C:\Users\zhangXXX\Desktop\html.csv -e -o C:\Users\zhangXXX\Desktop\baidu-reports

(2)使用之前的测试结果,生成测试报告
启动CMD窗口,先生成测试结果,再生成报告,输入以下命令:

PS:-g 指定已存在的测试结果文件

以上两种方法,其实最终都依赖生成的测试报告。双击报告文件夹中的index.html就可以查看报告

Dashboard:
Test and Report informations:指的是测试和报告信息

APDEX(Application Performance Index):应用程序性能满意度的标准,范围在0-1之间,1表示达到所有用户均满意,越接近1满意度越高

Requests Summary:请求的通过率(OK)与失败率(KO),百分比显示

Statistics:数据分析,基本将Summary Report和Aggrerate Report的结果合并

Errors:错误情况,依据不同的错误类型,将所有错误结果展示

Charts: 用图表的形式展示测试数据,让测试报告更加直观**
主要有如下特点:
(1)将测试过程中经常使用的数据,用图表的形式展示,让测试结果更加直观
(2)每个图表数据,有两种展示形式
(3)支持请求样例过滤显示
(4)支持导出PNG图片格式

Over Time Charts:

Throughput Charts:

Response Times Charts:

4、添加所需监听器,导入日志文件即可查看
在性能测试过程中,我们往往需要将测试结果保存在一个文件当中,也可以为日后的性能测试报告提供更多的素材

在Jmeter中,结果都存放在 .jtl 文件中,格式有很多种,可以根据需要进行更爱,选择某个监听器,在 configure页面 进行相应配置,让我们来查看下保存后的文件有哪些内容:

接下来添加一个聚合报告,然后导入日志文件,查看结果,还可以添加其他的监听器,操作方法一样

PS:如果测试计划中增加了监听器(生成概要结果),在执行命令时就可以看到每个线程的执行情况

PS:设置好线程数、循环次数、集合点、事务、断言、关联等等后即可执行压力测试

原理和LR的agent差不多,因为jmeter由Java开发,耗内存、cpu,所以需要采用分布式

步骤:
1、关闭防火墙
2、在所要运行jmeter并作为负载生成器的机器上安装jmeter(确保在所有系统中使用了相同版本号的Jmeter和jdk)
PS:目标服务器需要在相同网段,确保Jmeter可以访问目标服务器
3、确定其中一台机器作为主controller,其他的机器作为agent,然后运行所有agent机器上的jmeter-server文件
4、在controller机器的jmeter中bin目录下,找到jmeter.properties文件,添加节点IP,修改localhost为压力机IP

5、启动conttoller机子上的jmeter应用,选择菜单【运行】---远程启动来分别启动agent,也可以直接选择【远程全部启动】来将所有个agent启动

在性能测试过程中,我们通常需要将测试结果保存在一个文件当中,既可以保存测试结果,也可以为日后的性能测试报告提供更多的素材

Jmeter中,结果都存放在.jtl文件,一般以csv文件格式记录,只需要选择某个监听器,点击页面的configure按钮,建议勾选如下项:Save Field Name,Save Assertion Failure Message

技术点:HTTP相关设置+参数化+断言+关联+简单控制器+查看结果树
关联:通过Json控件或正则表达式获取
(1)线程组建议替换为jp@gc - Stepping Thread Group,功能比线程组多很多

(2)可以加事务控制器
(3)查看结果树替换为聚合报告或类似的报告,如果还是想看查看结果树记得勾选仅日志错误(查看结果树打印的日志比较多,会影响性能)
(4)造数据

总结:
一个子系统建议放在同一个 “测试计划”中,流程测试可以通过“线程组”来区分,这样也便于设定不同的测试数据个数。
比较独立的接口,可以统一放在一个线程组内,顺序完成测试。

流程性接口的测试:如果要测试的接口可以组成一个流程,只需要顺序添加多个“HTTP 请求”的Sampler,各请求之间可以提取需要在上下文传递的数据作为参数,以保证流程中数据的一致性




临漳县15993054846: jmeter接口测试怎么输出测试结果 -
东野韵甲睾: 在jmeter的bin目录下运行cmd jmeter -n -t .\短链接压力测试.jmx -l test.log -e -o .\report\test 注:短链接压力测试.jmx jmeter脚本 bin下面建report\test文件夹

临漳县15993054846: 如何用Jmeter做压力测试 -
东野韵甲睾: 1. 运行jmeter 2. 左边树将出现测试计划、工作台两根节点. 3. 选择测试计划,按右键-》添加-》threads(users)线程组 线程组能设置以多少个线程并发做压力测试. 在”循环次数”设置不选择永远,循环次数设置1. 4. 现在先介绍如何设置...

临漳县15993054846: jmeter怎么做系统压力测试 -
东野韵甲睾: 1. 抓包,了解使用系统时,请求了什么. 2. 把抓到的请求逐一添加到Jmeter. 3. 配置参数化,cookie,关联,断言,思考时间等脚本相关 4. 运行(非GUI模式,视情况使用分布式模式) 5. 提取报告

临漳县15993054846: 如何利用Jmeter做分布式压力测试 -
东野韵甲睾: -1- 为啥要使用分布式? 在使用Jmeter进行性能测试时,如果并发数比较大(比如项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能 -2- 分布式执行原理 1)Jmeter分布式测试时...

临漳县15993054846: jmeter常用做哪些压力测试 -
东野韵甲睾: web应用系统性能测试. 接口性能测试

临漳县15993054846: jmeter怎么做登录压力测试 -
东野韵甲睾: 录制或者编写脚本 - 产生压力 - 分析结果

临漳县15993054846: 如何使用jmeter进行压力测试 -
东野韵甲睾: 在C#里是一个常量表达式,所以可以用在所有要求用编译时常量的地方,例如attribute的参数、方法参数的默认值、switch里的case等等. 而 String.Empty 则是System.String类上的一个readonly静态字段.

临漳县15993054846: 如何用JMeter对MySQL数据库进行压测 -
东野韵甲睾: 在Jmeter中建立一个JDBC Request 测试计划主要分两步.(1)设置JDBC连接池(在JDBC Connection Configuration) (2)添加JDBC Request 其他步骤就是设置参数化、断言、监听结果.第一步:添加 JDBC Connection Configuration 需要设置...

临漳县15993054846: jmeter怎么做游戏服务端压力测试 -
东野韵甲睾: 接触JMeter也有超过半年的时间,自我感觉要想测试C++做的服务器的性能是比较无力的.其实我也想知道如何去测试,但是有一点非常明确就是我们可以发送二进制数(可以自定义的结构体或者protobuf,我们都可以通过抓包的方式去把数据抓出来,通过JMeter发送出去)据给服务器,但是服务器回复二进制,JMeter对这个数据如何正确解析,由于我的无知确实目前还没有找到解决办法(另外服务端可能回复的消息不至一条,而且还有可能顺序都不确定,这个如何检测,如果处理?).

临漳县15993054846: jmeter怎么实现定时压某个接口 -
东野韵甲睾: 右键点击测试计划à添加àThreadsà线程组,此时在测试计划下面出现线程组选项.点击该选项,出现线程组界面.参数线程数表示多少个请求,参数Ramp-Up Period表示在多长时间内跑完所有的请求,循环次数表示同一个请求执行多少次.假如这三个参数分别为100,10,1,则每秒执行100/10=10个请求.假如这三个参数分别为100,10,2,则每秒执行100*/10=10个请求,但总共执行100*2=200个请求,执行的总时间为10*2=20秒.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网