首页 > 编程知识 正文

jmeter报告怎么看,jmeter性能测试报告

时间:2023-05-04 11:14:40 阅读:154448 作者:216

上一节讨论了jmeter的主要组件,这些组件如何用于性能测试呢? 在本节中,您将创建一个简单的测试计划来使用这些组件。 与该计划对应的测试要求。

1 )受测试站点为fnng.cnblogs.com

2 )测试的目的是此站点的负载达到20QPS时的响应时间。

QPS解释

QPS :QueryPerSecond秒的查询率。 是查询服务器每秒可以处理的查询数。 在互联网上,作为域名系统服务的机器的性能多以每秒的查询率来衡量。

为了达到预期的测试目的,需要在jmeter中制定测试计划。 此测试只需使用HTTPRequestSampler即可,因为您只需完成对fnng.cnblogs.com博客首页的请求。

制定测试计划

启动jmeter时,jmeter会自动生成一个空测试计划,用户可以根据该测试计划创建自己的测试计划。

添加线程组

性能测试请求的负载基于线程组。 测试计划需要线程组。 测试线程组的添加很简单。 从右击测试计划显示的下拉菜单(添加---threads )----线程组)中选择线程组即可。

jmeter要求每个测试计划至少包含一个线程组。 当然,您也可以在一个计划中创建多个线程组,但是多个线程组之间的执行顺序是什么? 是串行还是并行? 在测试计划下并行运行多个线程。 这意味着这些线程组将同时初始化,并且线程组下的Sampler将同时运行。

线程组有三个参数:线程数、准备时间(ramp-upperiod ) inseconds )和周期数。

线程数:虚拟用户数。 虚拟用户占用进程或线程。 设置多少个虚拟用户,在这里是设置多少个线程。

准备时间:设置的虚拟用户数全部启动需要多长时间? 如果线程数为20,准备时间为10,则10秒钟内需要启动20个线程。 这意味着每秒启动两个线程。

循环次数每个线程发送请求的次数。 如果线程数为20,循环数为100,则每个线程将发送100次请求。 请求总数为20*100=2000。 如果选中“永远”,则所有线程将继续发送请求,并选择停止运行脚本。

设置合适的线程数量对能否实现测试目标具有决定性的影响。 在本例中,求出网站首页为20QPS负荷时的响应时间,但是如果将线程数设定得过小,则很有可能无法满足设定的QPS要求。 另外,除了以上说明的固定循环次数和永远以外,设定合理的循环次数也很重要。测试的执行时间也可以灵活设定。 选中“调度程序”以部署调度程序。

添加HTTP请求

添加线程组后,单击鼠标右键菜单--- sampler-- -添加HTTP请求(选择HTTP请求)。 对jmeter来说,取样器是与服务器交互的单元。 一个取样器通常进行三个部分的工作。

向服务器发送请求

记录服务器的响应数据

记录相应的时间信息

一个HTTP请求有很多配置参数。 详细情况将在后面叙述。

名称:此属性用于标识取样器,建议使用有意义的名称。

注释:对测试没有任何帮助,只记录用户可读的注释信息。

服务器名称或IP发送http请求的目标服务器的名称或IP地址。

端口号目标服务器的端口号。 默认值为80。

协议:向目标服务器发送HTTP请求时的协议。 HTTP或HTTPs,默认值为HTTP。

如何:如何发送HTTP请求? 可以使用的方法有GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。

内容编码:内容的编码方式。 默认值为iso8859

路径—目标URL的路径(服务器地址和端口除外)

自动重定向:如果选择此选项,并且提交HTTP请求后的响应为302/301,JMeter将自动重定向到新页面。

UsekeepAlive :选中此选项时,jmeter与目标服务器之间通过Keep-Alive方式进行HTTP通信,缺省情况下处于选中状态。

usemultipart/from-dataforhttppost :发送http post请求时,请使用use multipart/from-data方法进行发送。 默认情况下未被选择。

将参数随请求一起发送:将URL参数发送到请求。 jmeter为带参数的URL提供了一种简单的参数化方法。 用户可以在此表中设置URL的所有参数。 表中的每一行都是一对参数值。 相应的RUL的名称为1=值1。

随请求发送文件:将文件发送到请求。 通常,可以这样模拟HTTP文件的上载行为。

获取HTML文件中包含的所有资源:如果选中此选项,jmeter将发出HTTP请求以获取要响应的HTML语句

件内容后,还对该HTML进行Parse 并获取HTML中包含的所有资源(图 片、flash等),默认不选中,如果用户只希望获取页面中的特定资源,可以在下方的Embedded URLs must match 文本框中填入需 要下载的特定资源表达式,这样,只有能匹配指定正则表达式的URL指向资源会被下载。

用作监视器:此取样器被当成监视器,在Monitor Results Listener 中可以直接看到基于该取样器的图形化统计信息。默认为不选中。

Save response as MD5 hash? :选中该项,在执行时仅记录服务端响应数据的MD5值,而不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销。

在这里我们添加两个HTTP请求,分别用于对fnng.cnblogs.com发送请求。

设置QPS限制

本次性能测试的需求中提到测试的目的是“了解博客的首页在负载达到20 QPS时的响应时间”,因此需要控制向博客首页发送请求的负载为20QPS。

一种可行的方法是逐步调整测试计划中的线程计算的数量 以及为取样器(Sampler)添加定时器(Timer),以使HTTP取样器发出的请求的QPS保持在20个左右。但这种方法耗时耗力,需要经过多次尝 试才能达到;另一方法,完全通过设置定时器来控制QPS,一旦取样器的响应时间发生改变(网络环境发生改变),就需要重新调整定时器的等待时间。

Jmeter提供了一个非常有用的定时器,称为Constant Throughput Timer (常数吞吐量定时器),该定时器可以方便地控制给定的取样器发送请求的吞吐量。

右键点击fnng.cnblogs.com ,弹出菜单(添加--->定时器--->Constant Throughput Timer)选择Constant Throughput Timer

Constant Throughput Timer 的主要属性介绍:

名称 :定时器的名称

Target throughput(in samples per minute):目标吞吐量。注意这里是每分钟发送的请求数,因此,对应测试需求中所要求的20 QPS ,这里的值应该是1200 。

Calculate Throughput based on:有5个选项,分别是:

This thread only :控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的 target Throughput 乘以矣线程的数量。

All active threads : 设置的target Throughput 将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程。

All active threads in current thread group :设置的target Throughput将分配在当前线程 组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和All active threads选项的效果完全相同。

All active threads (shared ):与All active threads 的选项基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行。

All cative threads in current thread group (shared ):与 All active threads in current thread group 基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上 一次运行结束后等待合理的时间后再次运行。

如上图,该元件仅作用于fnng.cnblogs.com ,设置定时器的Target throughput为1200/分钟(20 QPS),设置Calculate Throughput based on 的值为All active threads 。

当 然,Constant Throughput Timer只有在线程组中的线程产生足够多的request 的情况下才有意义,因此,即使设置了 Constant Throughput Timer的值,也可能由于线程组中的线程数量不够,或是定时器设置不合理等原因导致总体的QPS不能达到预期 目标。

添加监听器(Listener)

脚本的主要部分设置完成后,需要通过某种方式获得性能测试中的测试结果,在本例中,我们关心的是请求的响应时间。

Jmeter 中使用监听器元件收集取样器记录的数据并以可视化的方式来呈现。Jmeter有各种不同的监听器类型,因为上HTTP请求,我们可在添加聚合报告,更为直观的查看测试结果。

添加聚合报告,右键点击线程组,在弹的菜单(添加--->监听器--->聚合报告)中选择聚合报告。

运行脚本

添加完成聚合报告后,我们来运行脚本,稍后介绍聚合报告的参数。

在运脚本之前,我们来查看一下,各个元件的参数设置:

---------------------------------------------------------------

线程组:

线程数:20

准备时长: 10

循环次数:10

---------------------------------------------------------------

HTTP请求:

名称:fnng.cnblogs.com。

服务器名称或IP :fnng.cnblogs.com

端口号:80

Implementation : java

协议: http

方法: GET

路径:/

---------------------------------------------------------------

常数吞吐量定时器:

Target throughput(in samples per minute):1200.0

Calculate Throughput based on :All active threads

---------------------------------------------------------------

点击工具栏上的运行按钮,或者点击菜单栏“ 运行--->启动 ” 或者使用快捷键ctrl+r 来运行程序。

聚合报告分析

查看聚合报告的运行结果:

OK! 到此一次完整的性能测试结束,如果你从中有所收获,推荐一记~!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。