jemter测试分析实例为什么运行一次结果树里有多个结果

利用元件编写简单的测试计划。
测试计划一
1)测试网站:/和/
2)测试目的是该网站在负载达到20 QPS 时的响应时间。
QPS : Query Per Second 每秒查询率。是一台查询服务器每秒能够处理的查询次数。在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。
1、建立测试计划
启动jmeter后,jmeter会自动生成一个空的测试计划,用户可以基于该测试计划建立自己的测试计划。
2、添加线程组
一个性能能测试请求负载是基于一个线程组完成的。测试计划右键弹出下拉菜单(添加--&Threads(Users)---&线程组)中选择线程组即可。jmeter中 每个测试计划至少需要包含一个线程组,当然也可以在一个计划中创建多个线程组。在测试计划下面多个线程是并行执行的,也就是说这些线程组是同时被初始化并同时执行线程组下的Sampler的。
线程组主要包含三个参数:线程数、准备时长(Ramp-Up Period(in seconds))、循环次数。
(1)线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
(2)准备时长: 设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。
(3)循环次数:每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
note: 设置合理的线程数对于能否达到测试目标有决定性的影响。在本例中,要求得到网站首页在20 QPS 负载情况下的响应时间,如果如果线程数量设置的过小,则很可能无法达到设定的QPS要求。另外,设置合理的循环次数也很重要,除了上面介绍的固定循环次数 与永远外;也可以灵活的选择设定测试运行时间。勾选“调度器”,进行调度器配置。
3.添加http请求
添加完成线程组后,在线程组上右键菜单(添加---&Sampler---&HTTP请求)选择HTTP请求。对于jmeter来说,取样器(Sampler)是与服务器进行交互的单元。一个取样器通常进行三部分的工作:
向服务器发送请求;
记录服务器的响应数据;
记录相应时间信息;
一个HTTP请求有着许多的配置参数,下面将详细介绍:
(1)名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
(2)注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
(3)服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。
(4)端口号:目标服务器的端口号,默认值为80 。
(5)协议:向目标服务器发送HTTP请求时的协议,可以是http或者是https ,默认值为http 。
(6)方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
(7)Content encoding :内容的编码方式,默认值为iso8859
(8)路径:目标URL路径(不包括服务器地址和端口)
(9)自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时, 自动重定向到新的页面。
(10)Use keep Alive : 当该选项被选中时,jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信,默认选中。
(11)Use multipart/from-data for HTTP POST :当发送HTTP POST 请求时,使用Use multipart/from-data方法发送,默认不选中。
(12)同请求一起发送参数 : 在请求中发送URL参数,对于带参数的URL ,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)。
(13)同请求一起发送文件:在请求中发送文件,通常,HTTP文件上传行为可以通过这种方式模拟。
(14)从HTML文件获取所有有内含的资源:当该选项被选中时,jmeter在发出HTTP请求并获得响应的HTML文件内容后,还对该HTML进行 Parse 并获取HTML中包含的所有资源(图片、flash等),默认不选中,如果用户只希望获取页面中的特定资源,可以在下方的Embedded URLs must match 文本框中填入需要的特定资源表达式,这样,只有能匹配指定正则表达式的URL指向资源会被。
(15)用作监视器:此取样器被当成监视器,在Monitor Results Listener 中可以直接看到基于该取样器的图形化统计信息。默认为不选中。
(16)Save response as MD5 hash? :选中该项,在执行时仅记录服务端响应数据的MD5值,而不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销。
  在这里我们添加两个HTTP请求,分别用于对和发送请求。
4.设置QPS限制
本次性能测试的需求中提到测试的目的,因此需要控制向首页发送请求的负载为20QPS。
 一种可行的方法是逐步调整测试计划中的线程计算的数量以及为取样器(Sampler) 添加定时器(Timer),以使HTTP取样器发出的请求的QPS保持在20个左右。但这种方法耗时耗力,需要经过多次尝试才能达到;另一方法,完全通过 设置定时器来控制QPS,一旦取样器的响应时间发生改变(网络环境发生改变),就需要重新调整定时器的等待时间。
Jmeter提供了一个非常有用的定时器,称为Constant&Throughput&Timer&(常数吞吐量定时器),该定时器可以方便地控制给定的取样器发送请求的吞吐量。
右键点击 ,弹出菜单(添加---&定时器---&Constant&Throughput&Timer)选择Constant&Throughput&Timer
Constant&Throughput&Timer&的主要属性介绍:
(1)名称&:定时器的名称
(2)Target&throughput(in&samples&per&minute):目标吞吐量。注意这里是每分钟发送的请求数,因此,对应测试需求中所要求的20&QPS&,这里的值应该是1200&。
(3)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基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。
该元件仅作用于,设置定时器的Target&throughput为1200/分钟(20&QPS),设置Calculate&Throughput&based&on&的值为All&active&threads 。
当然,Constant&Throughput&Timer只有在线程组中的线程产生足 够多的request&的情况下才有意义,因此,即使设置了Constant&Throughput&Timer的值,也可能由于线程组中的线程数量不 够,或是定时器设置不合理等原因导致总体的QPS不能达到预期目标。
5.添加监听器(Listener)
脚本的主要部分设置完成后,需要通过某种方式获得性能测试中的测试结果,在本例中,我们关心的是请求的响应时间。
Jmeter&中使用监听器元件收集取样器记录的数据并以可视化的方式来呈现。Jmeter有各种不同的监听器类型,因为HTTP请求,我们可在添加聚合报告,更为直观的查看测试结果。
添加聚合报告,右键点击线程组,在弹的菜单(添加---&监听器---&聚合报告)中选择聚合报告。
6.运行脚本
点击工具栏上的运行按钮,或者点击菜单栏“&运行---&启动&”&或者使用快捷键ctrl+r&来运行程序。
7.聚合报告
& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区【jemter】HTTP请求参数化-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
【jemter】HTTP请求参数化
来源:互联网 更新时间: 4:32:30 责任编辑:李志喜字体:
HTTP请求参数化:就是把URL的参数项做参数化处理
我们现在要对子猴博客来进行一番压力测试,压力测试对象为随机的几个网页链接,这几个链接是写在一个文本文件中的,在压力测试的时候会随机读取。
1、& 建立一个线程组,如下图
线程数60,循环次数:1000.
2、& 设置请求服务器、压力链接等信息
右键点击我们刚创建的线程组,在弹出的菜单中,选择添加-&Sampler-&Http请求,弹出如下图界面:
服务器名称或IP:我这里填写 www.zihou.me
端口号:我这里填写80
Timesout部分可以不填
HTTP请求部分的协议:http,方法我选择的是GET,Content encoding我填的是UTF-8.
路径:/${__StringFromFile(C:\Users\paul\Desktop\test.txt,,,)}
这里值得一提的就是这个路径,假如你只是对一个链接进行压力测试,那么这里就非常简单了,你就直接填写一个链接就够了,比如 http://www.zihou.me,但很多情况下都不是这样的,我们这里需要多个链接,就如同刚开始讲到的那样,我们要将多个链接保存到一个文本文 件中,然后随机读取进行压力测试。我们可以这么干,如图:
点击菜单栏&选项&----&函数助手对话框,在选择一个功能下拉列表中选择_StringFromFile,然后在本机新建一个测试文件text.txt,在第一行(你也可以不在第一行)的值中填写测试文件的路径,如下图:
然后点击&生成&按钮,在生成按钮的左边文本框中将生成一个字符串如:
${__StringFromFile(E:\test\test.txt,,,)}
在测试文件中,我们每行写一个URL链接,如下格式:
注 意,每行前面并没有http://www.zihou.me这样的信息,因为我们在前面已经填写了服务器地址为zihou.me,这里就没必要再为每个 url填写这个相同前缀了;另外,上面的url格式也只是个例子,表示域名后的部分,但很多时候url后面跟的都是各参数,比如 http://www.zihou.me/p?a=1&b=3,如果是这种情况,则上面的链接可以写为:
a=1&b=3这样的形式。
这样一来,当我们并非请求的时候,就会从.txt中随机选择url来进行压力测试。
另外值得注意的一个地方是,如果参数中有中文的情况,运行的时候可能会出现乱码,这个时候就需要注意你在Jmeter中的编码设置与你要请求的网页编码是一致的。
路径文本框下面的选项,可以按默认的就成,Use multipart/form-data for HTTP POST是当请求中有附件的情况,一般情况下都不用选中的。
相关文章:
上一篇文章:下一篇文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号Posts - 256,
Articles - 1,
Comments - 2059
大人不华,君子务实。
独立博客:
21:04 by 虫师, ... 阅读,
上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢。这一节创建一个简单的测试计划来使用这些元件。该计划对应的测试需求。
1)测试目标网站是&&和&tt-
2)测试目的是该网站在负载达到20&QPS&时的响应时间。
  QPS :&Query&Per&Second&每秒查询率。是一台查询服务器每秒能够处理的查询次数。在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。
  为了达成预期的测目的,需要需要在jmeter中建立一个测试计划。因为本次测试仅要求完成对&&和&tt-&两个博客首页请求,因此只需要使用HTTP&Request&Sampler&即可。
建立测试计划
&  启动jmeter后,jmeter会自动生成一个空的测试计划,用户可以基于该测试计划建立自己的测试计划。
添加线程组
&&  一个性能测试请求负载是基于一个线程组完成的。一个测试计划必须有一个线程组。测试计划添加线程组非常简单。在测试计划右键弹出下拉菜单(添加--&Threads(Users)---&线程组)中选择线程组即可。
&  jmeter中&每个测试计划至少需要包含一个线程组,当然也可以在一个计划中创建多个线程组,那么多个线程组之间又会怎样的顺序执行(串行还是并行)?在测试计划下面多个线程是并行执行的,也就是说这些线程组是同时被初始化并同时执行线程组下的Sampler的。
&  线程组主要包含三个参数:线程数、准备时长(Ramp-Up&Period(in&seconds))、循环次数。
线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
准备时长:&设置的虚拟用户数需要多长时间全部启动。如果线程数为20&,准备时长为10&,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。
循环次数:每个线程发送请求的次数。如果线程数为20&,循环次数为100&,那么每个线程发送100次请求。总请求数为20*100=2000&。如果勾选了&永远&,那么所有线程会一直发送请求,一到选择停止运行脚本。
  设置合理的线程数对于能否达到测试目标有决定性的影响。在本例中,要求得到网站首页在20&QPS&负载情况下的响应时间,如果如果线程数量设置的过小,则很可能无法达到设定的QPS要求。另外,设置合理的循环次数也很重要,除了上面介绍的固定循环次数与永远外;也可以灵活的选择设定测试运行时间。勾选&调度器&,进行调度器配置。
添加HTTP请求
  添加完成线程组后,在线程组上右键菜单(添加---&Sampler---&HTTP请求)选择HTTP请求。对于jmeter来说,取样器(Sampler)是与服务器进行交互的单元。一个取样器通常进行三部分的工作:
向服务器发送请求
记录服务器的响应数据
记录相应时间信息
&  一个HTTP请求有着许多的配置参数,下面将详细介绍:
名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
服务器名称或IP&:HTTP请求发送的目标服务器名称或IP地址。
端口号:目标服务器的端口号,默认值为80&。
协议:向目标服务器发送HTTP请求时的协议,可以是http或者是https&,默认值为http&。
方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
Content&encoding&:内容的编码方式,默认值为iso8859
路径:目标URL路径(不包括服务器地址和端口)
自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter&自动重定向到新的页面。
Use&keep&Alive&:&当该选项被选中时,jmeter&和目标服务器之间使用&Keep-Alive方式进行HTTP通信,默认选中。
Use&multipart/from-data&for&HTTP&POST&:当发送HTTP&POST&请求时,使用Use&multipart/from-data方法发送,默认不选中。
同请求一起发送参数&:&在请求中发送URL参数,对于带参数的URL&,jmeter提供了一个简单的对参数化的方法。用户可以将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请求,分别用于对&&和&tt-发送请求。
设置QPS限制
  本次性能测试的需求中提到测试的目的是&了解博客的首页在负载达到20&QPS时的响应时间&,因此需要控制向博客首页发送请求的负载为20QPS。
  一种可行的方法是逐步调整测试计划中的线程计算的数量以及为取样器(Sampler)添加定时器(Timer),以使HTTP取样器发出的请求的QPS保持在20个左右。但这种方法耗时耗力,需要经过多次尝试才能达到;另一方法,完全通过设置定时器来控制QPS,一旦取样器的响应时间发生改变(网络环境发生改变),就需要重新调整定时器的等待时间。
  Jmeter提供了一个非常有用的定时器,称为Constant&Throughput&Timer&(常数吞吐量定时器),该定时器可以方便地控制给定的取样器发送请求的吞吐量。
  右键点击&,弹出菜单(添加---&定时器---&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&基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。
  如上图,该元件仅作用于&,设置定时器的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请求:
服务器名称或IP&:
端口号:80&
Implementation&:&java&
协议:&http
方法:&GET
---------------------------------------------------------------&&
常数吞吐量定时器:
Target&throughput(in&samples&per&minute):1200.0
Calculate&Throughput&based&on&:All&active&threads
---------------------------------------------------------------&&
点击工具栏上的运行按钮,或者点击菜单栏&&运行---&启动&&&或者使用快捷键ctrl+r&来运行程序。
聚合报告分析
查看聚合报告的运行结果:
&OK!&到此一次完整的性能测试结束,如果你从中有所收获,推荐一记~!
相关阅读:&&&&Jemter使用方法
Jemter使用方法
以上是JEMTER完整介绍方案,有需要的朋友可以可载收藏,是个很用用的资料事如神
若举报审核通过,可奖励20下载分
被举报人:
tanyong400
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
网络技术下载排行}

我要回帖

更多关于 jemter接口测试实例 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信