jmeter使用实操虫师资料下载.pdf

上传人:wj 文档编号:5983657 上传时间:2023-05-05 格式:PDF 页数:66 大小:2.44MB
下载 相关 举报
jmeter使用实操虫师资料下载.pdf_第1页
第1页 / 共66页
jmeter使用实操虫师资料下载.pdf_第2页
第2页 / 共66页
jmeter使用实操虫师资料下载.pdf_第3页
第3页 / 共66页
jmeter使用实操虫师资料下载.pdf_第4页
第4页 / 共66页
jmeter使用实操虫师资料下载.pdf_第5页
第5页 / 共66页
jmeter使用实操虫师资料下载.pdf_第6页
第6页 / 共66页
jmeter使用实操虫师资料下载.pdf_第7页
第7页 / 共66页
jmeter使用实操虫师资料下载.pdf_第8页
第8页 / 共66页
jmeter使用实操虫师资料下载.pdf_第9页
第9页 / 共66页
jmeter使用实操虫师资料下载.pdf_第10页
第10页 / 共66页
jmeter使用实操虫师资料下载.pdf_第11页
第11页 / 共66页
jmeter使用实操虫师资料下载.pdf_第12页
第12页 / 共66页
jmeter使用实操虫师资料下载.pdf_第13页
第13页 / 共66页
jmeter使用实操虫师资料下载.pdf_第14页
第14页 / 共66页
jmeter使用实操虫师资料下载.pdf_第15页
第15页 / 共66页
jmeter使用实操虫师资料下载.pdf_第16页
第16页 / 共66页
jmeter使用实操虫师资料下载.pdf_第17页
第17页 / 共66页
jmeter使用实操虫师资料下载.pdf_第18页
第18页 / 共66页
jmeter使用实操虫师资料下载.pdf_第19页
第19页 / 共66页
jmeter使用实操虫师资料下载.pdf_第20页
第20页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

jmeter使用实操虫师资料下载.pdf

《jmeter使用实操虫师资料下载.pdf》由会员分享,可在线阅读,更多相关《jmeter使用实操虫师资料下载.pdf(66页珍藏版)》请在冰点文库上搜索。

jmeter使用实操虫师资料下载.pdf

),觉得方法比较简单。

1.打开JMeter工具创建一个线程组(右键点击“测试计划”-“添加”-“线程组”)创建一个http代理服务器(右键点击“工作台”-“添加”-“非测试元件”-“http代理服务器”)完整的设置参照下图:

2.下面来设置一下IE浏览器IE-“internet属性”-“连接”-“局域网设置”设置为本机IP就可以了,注意端口号要与Jmeter上的端口号一致。

默认都是8080端口。

3.现在点击jmeter上的“启动”按钮,打开浏览器输入需要录制web项目地址,jmeter会自动记录你IE所访问的页面。

PS:

第二种方法是我刚才知道的一种,关于这两种方法哪个更好,现在还不知道,但第二方法有通过IE浏览器辅助的,我想可能只要IE能打开的,它都能记录,但它录制的脚本看上去比较乱(感觉上)还就是http代理服务器的设置,(比如:

分组:

每一个组放入一个新的服务器-只有这一个选项才能正常录制),有时间再仔细比较一下两种方法的不同之处。

Jmeter基础之-jmeter基础概念2012-12-2119:

15by虫师,5245阅读,3评论,收藏,编辑JMeter介绍介绍:

一个非常优秀的开源的性能测试工具。

优点优点:

你用着用着就会发现它的重多优点,当然不足点也会呈现出来。

从性能工具的原理划分从性能工具的原理划分:

Jmeter工具和其他性能工具在原理上完全一致,工具包含4个部分:

(1)负载发生器:

用于产生负载,通常以多线程或是多进程的方式模拟用户行为。

(2)用户运行器:

通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。

(3)资源生成器:

用于生成测试过程中服务器、负载机的资源数据。

(4)报表生成器:

根据测试中霍地的数据生成报表,提供可视化的数据显示方式。

测试计划元件测试计划元件TestPlan(测试计划测试计划):

用来描述一个性能测试,包含与本次性能测试所有相关的功能。

也就说本的性能测试的所有内容是于基于一个计划的。

下面看一下一个计划下面都有哪些主要的功能模块(右键单击“测试计划”弹出菜单)。

Threads(Users)线程)线程用户用户虽然有三个添加线程组的选项,名字不一样,创建之后,其界面是完全一样的。

之前的版本只有一个线程组的名字。

现在多一个setUpthereadGroup与terDownThreadGroup1)setupthreadgroup一种特殊类型的ThreadGroup的,可用于执行预测试操作。

这些线程的行为完全像一个正常的线程组元件。

不同的是,这些类型的线程执行测试前进行定期线程组的执行。

2)teardownthreadgroup.一种特殊类型的ThreadGroup的,可用于执行测试后动作。

不同的是,这些类型的线程执行测试结束后执行定期的线程组。

可能你还是不太理他们与普通的线程组有什么不同。

如果您用过junit,想必你不会对setup,teardown这2个字眼陌生。

即时每用过,也没关系。

熟悉loadrunner的应该知道,loadrunner的脚本除了action里是真正的脚本核心内容,还有初始化“环境”的初始化脚本和测试完毕后对应的清除信息的脚本块。

那么这里setupthreadgroup和teardownthreadgroup就是分别指这两部分。

其实从本质上来看,他们并没有什么不同。

3)threadgroup(线程组).这个就是我们通常添加运行的线程。

通俗的讲一个线程组,,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。

线程组中包含的线程数量在测试执行过程中是不会发生改变的。

测试片段(测试片段(TestFragment)测试片段是在2.5版本之后新加的一个选项。

测试片段元素是控制器上的一个种特殊的线程组,它在测试树上与线程组处于一个层级。

它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。

控制器JMeter有两种类型的控制器:

取样器(sample)和逻辑控制器(LogicController),用这些原件来驱动处理一个测试。

取样器(取样器(Sampler)取样器(Sample)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter原生支持多种不同的sampler,如HTTPRequestSampler、FTPRequestSample、TCPRequestSample、JDBCRequestSampler等,每一种不同类型的sampler可以根据设置的参数向服务器发出不同类型的请求。

(在jmeter的所有sampler中,JavaRequestSampler和BeanshellRequestSampler是两种特殊的可定制的Sampler,后面会深入讨论。

)逻辑控制器(逻辑控制器(LogicController)逻辑控制器,包括两类无件,一类是用于控制testplan中sampler节点发送请求的逻辑顺序的控制器,常用的有如果(If)控制器、switchController、RuntimeController、循环控制器等。

另一类是用来组织可控制sampler来节点的,如事务控制器、吞吐量控制器。

配置元件(配置元件(ConfigElement)配置元件(configelement)用于提供对静态数据配置的支持。

CSVDataSetconfig可以将本地数据文件形成数据池(DataPool),而对应于HTTPRequestSampler和TCPRequestSampler等类型的配制无件则可以修改Sampler的默认数据。

(例如,HTTPCookieManager可以用于对HTTPRequestSampler的cookie进行管理)定时器(定时器(Timer)定时器(Timer)用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手端。

类似于LoadRunner里面的“思考时间”。

JMeter定义了BeanShellTimer、ConstantThroughputTimer、固定定时器等不同类型的Timer。

前置处理器(前置处理器(PerProcessors)用于在实际的请求发出之前对即将发出的请求进行特殊处理。

例如,HTTPURL重写修复符则可以实现URL重写,当RUL中有sessionID一类的session信息时,可以通过该处理器填充发出请求的实际的sessionID。

后置处理器(后置处理器(PostProcessors)用于对Sampler发出请求后得到的服务器响应进行处理。

一般用来提取响应中的特定数据(类似LoadRunner测试工具中的关联概念)。

例如,XPathExtractor则可以用于提取响应数据中通过给定XPath值获得的数据。

断言(断言(Assertions)断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。

监听器(监听器(Listener)这个监听器可不是用来监听系统资源的元件。

它是用来对测试结果数据进行处理和可视化展示的一系列元件。

图行结果、查看结果树、聚合报告。

都是我们经常用到的元件。

到此,我们已经简单了解了jmeter的基本组成原件,我们后序的性能测试工作也就是使用这些元件来完成测试任务。

JMeter基础之-元件的作用域与执行顺序2012-12-2722:

20by虫师,2609阅读,0评论,收藏,编辑前面有介绍过jmeter的元件类别,对于新手来说,jmeter的元件是还是不少的,如果我们按照每一个元件的每一个参数的含义去学习,无疑会降低学习性能测试的热情,就算我们熟悉了所有元件以及元件上的参数了,我们也不知道如何将其组合成我们想要描述的性能测试。

另一方面,我们点击每个节点上的元件都会出现类似或相同的菜单,他们的层级关系是什么样的。

究竟这个元件放在哪个层级的哪个位置才达到我们意愿。

如何更快速的入门jmeter,个人建议通过录制脚本的方式,快速的了解一个性能测试应该包括的元件以及它们的层级关系。

关于录制方式,请参考JMeter基础之录制脚本如下,我通过badboy工具录制的一个脚本(脚本过程:

登录126邮箱,给自己发一封邮件,祝自己圣诞快乐!

),并可以方便的将脚本导出为jmx格式,这也是jmeter脚本的格式,所以可以被jmeter识别并导入。

脚本导入到jmeter后,我添加了两个监听器(查看结果树),因为我添加监听器的位置不同,他们的作用域也是不一样的。

前一个只能监听到页面的请求,后一个侧对所有的http请求进行监听。

元件的作用域元件的作用域先来讨论一下元件有作用域。

Jmeter基础之-jmeter基础概念一章中,我们介绍了8类可被执行的元件(测试计划与线程组不属于元件),这些元件中,取样器是典型的不与其它元件发生交互作用的元件,逻辑控制器只对其子节点的取样器有效,而其它元件(configelements、timers、post-processors、assertions、listeners、)需要与取样器(sampler)等元件交互。

配置元件(配置元件(configelements)元件会影响其作用范围内的所有元件。

前置处理程序(前置处理程序(Per-processors)元件在其作用范围内的每一个sampler元件之前执行。

定时器(定时器(timers)元件对其作用范围内的每一个sampler有效后置处理程序(后置处理程序(Post-processors)元件在其作用范围内的每一个sampler元件之后执行。

断言(断言(Assertions)元件对其作用范围内的每一个sampler元件执行后的结果执行校验。

监听器(监听器(Listeners)元件收集其作用范围的每一个sampler元件的信息并呈现。

在jmeter中,元件的作用域是靠测试计划的的树型结构中元件的父子关系来确定的,作用域的原则是:

取样器(sampler)元件不和其它元件相互作用,因此不存在作用域的问题。

逻辑控制器(LogicController)元件只对其子节点中的取样器和逻辑控制器作用。

除取样器和逻辑控制器元件外,其他6类元件,如果是某个sampler的子节点,则该元件公对其父子节点起作用。

除取样器和逻辑控制器元件外的其他6类元件,如果其父节点不是sampler,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)。

讲了这些,你可能迷糊了,到底是肿么个情况呀!

通过两个栗子(例子)来理解一下他们的作用域。

A(注:

下图只是为了说明作用域,无法正常运行)取样器(HTTP请求1、FTP请求2、TCP取样器3)逻辑控制器(循环控制器)监听器(图形结果1、聚合报告2)*HTTP请求1、FTP请求2、TCP取样器3元件没有作用域的概念。

*循环控制器元件作用域名是其子节点FTP请求2、TCP取样器3。

*图形结果1元件的作用域是是FTP请求2、TCP取样器3。

*聚合报告2元作的作用域是HTTP请求1、FTP请求2、TCP取样器3B(注:

下图只是为了说明作用域,无法正常运行)这个例子稍微复杂一些,包含的元件较多。

先来分分类。

取样器(HTTP请求、FTP请求、TCP取样器、JDBCRequest)逻辑控制器(循环控制器、随即控制器)定时器(固定定时器、UniformRandomTimer)断言(响应断言、XML断言)监听器(图形结果、聚合报告)根据作用域原则,这些元件的作用域分别为:

*HTTP请求、FTP请求、TCP取样器、JDBCRequest元件没有作用域名概念*循环控制器的作用域为FTP请求、TCP取样器和随即控制器*固定定时器作用于HTTP请求,UniformRandomTimer作用于所有取样器*响应断言作用于JDBCRequest,XML断言作用于FTP请求、TCP取样和JDBCRequest。

*图形结果作用于FTP请求、TCP取样和JDBCRequest,聚合报告作用于作用于所有取样器。

其实,通过上面的分析,并没有你想象的那么复杂,我们从各个元件的层次结构就可以判断每个元件的作用域。

Jmeter中的逻辑控制器(ConfigElements)在其作用范围内的行为与其他元件相比稍有不同。

逻辑控制器元件分两大类:

默认配置(HTTP默认请求、FTP默认请求等)和管理(HTTP头管理、HTTPcookie管理等)。

其中默认配置(ConfigurationDefaults)元件中设置的值可以在作用域内叠加,例如,在一个测试计划中添加两个HTTP默认请求,其中第一个默认设置ServernameorIP为,第二个默认设置Path为/page-not-exist,则在这两个元件作用域内的所有HTTP默认请求,其默认的ServernameorIP和Path均为ServernameorIP和/page-not-exist。

(你有一个故事,我有一个笑话,我们一交换,两个人都分别拥有了一个故事加一个笑话。

)管理(Manager)类逻辑控制器元件的效果则不能进行叠加。

如果两个或两个以上相同的管理类元件作用域有重叠。

则在重叠作用域内的取样器元件只会随即受到其中一个的作用,这样会导致取样器行为的不确定性。

因此,在使用管理类逻辑控制器时,一定要注意保证相同的管理类元件的作用域不发生重叠。

元件的执行顺序元件的执行顺序了解了元件有作用域之后,来看看元件的执行顺序,元件执行顺序的规则很简单,在同一作用域名范围内,测试计划中的元件按照如下顺序执行。

(1)配置元件(configelements)

(2)前置处理程序(Per-processors)(3)定时器(timers)(4)取样器(Sampler)(5)后置处理程序(Post-processors)(除非Sampler得到的返回结果为空)。

(6)断言(Assertions)(除非Sampler得到的返回结果为空)。

(7)监听器(Listeners)(除非Sampler得到的返回结果为空)。

关于执行顺序,有两点需要注意:

*前置处理器、后置处理器和断言等元件公能对取样器作用,因此,如果在它们的作用域内没有任何取样器,则不会被执行。

*如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序一次执行。

-注:

本文件中提到的取样器(Sampler)在有些资料中翻译为“采样器”。

JMeter基础之一一个简单的性能测试2012-12-2221:

04by虫师,8377阅读,3评论,收藏,编辑上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢。

这一节创建一个简单的测试计划来使用这些元件。

该计划对应的测试需求。

1)测试目标网站是和tt-2)测试目的是该网站在负载达到20QPS时的响应时间。

QPS解释解释QPS:

QueryPerSecond每秒查询率。

是一台查询服务器每秒能够处理的查询次数。

在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。

为了达成预期的测目的,需要需要在jmeter中建立一个测试计划。

因为本次测试仅要求完成对和tt-两个博客首页请求,因此只需要使用HTTPRequestSampler即可。

建立测试计划建立测试计划启动jmeter后,jmeter会自动生成一个空的测试计划,用户可以基于该测试计划建立自己的测试计划。

添加线程组添加线程组一个性能测试请求负载是基于一个线程组完成的。

一个测试计划必须有一个线程组。

测试计划添加线程组非常简单。

在测试计划右键弹出下拉菜单(添加-Threads(Users)-线程组)中选择线程组即可。

jmeter中每个测试计划至少需要包含一个线程组,当然也可以在一个计划中创建多个线程组,那么多个线程组之间又会怎样的顺序执行(串行还是并行)?

在测试计划下面多个线程是并行执行的,也就是说这些线程组是同时被初始化并同时执行线程组下的Sampler的。

线程组主要包含三个参数:

线程数、准备时长(Ramp-UpPeriod(inseconds))、循环次数。

线程数线程数:

虚拟用户数。

一个虚拟用户占用一个进程或线程。

设置多少虚拟用户数在这里也就是设置多少个线程数。

准备时长准备时长:

设置的虚拟用户数需要多长时间全部启动。

如果线程数为20,准备时长为10,那么需要10秒钟启动20个线程。

也就是每秒钟启动2个线程。

循环次数循环次数:

每个线程发送请求的次数。

如果线程数为20,循环次数为100,那么每个线程发送100次请求。

总请求数为20*100=2000。

如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。

设置合理的线程数对于能否达到测试目标有决定性的影响。

在本例中,要求得到网站首页在20QPS负载情况下的响应时间,如果如果线程数量设置的过小,则很可能无法达到设定的QPS要求。

另外,设置合理的循环次数也很重要,除了上面介绍的固定循环次数与永远外;

也可以灵活的选择设定测试运行时间。

勾选“调度器”,进行调度器配置。

添加添加HTTP请求请求添加完成线程组后,在线程组上右键菜单(添加-Sampler-HTTP请求)选择HTTP请求。

对于jmeter来说,取样器(Sampler)是与服务器进行交互的单元。

一个取样器通常进行三部分的工作:

向服务器发送请求记录服务器的响应数据记录相应时间信息一个HTTP请求有着许多的配置参数,下面将详细介绍:

名称名称:

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

注释注释:

对于测试没有任何作用,仅用户记录用户可读的注释信息。

服务器名称或服务器名称或IP:

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

端口号端口号:

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

协议协议:

向目标服务器发送HTTP请求时的协议,可以是http或者是https,默认值为http。

方法方法:

发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。

Contentencoding:

内容的编码方式,默认值为iso8859路径路径:

目标URL路径(不包括服务器地址和端口)自动重定向自动重定向:

如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter自动重定向到新的页面。

UsekeepAlive:

当该选项被选中时,jmeter和目标服务器之间使用Keep-Alive方式进行HTTP通信,默认选中。

Usemultipart/from-dataforHTTPPOST:

当发送HTTPPOST请求时,使用Usemultipart/from-data方法发送,默认不选中。

同请求一起发送参数同请求一起发送参数:

在请求中发送URL参数,对于带参数的URL,jmeter提供了一个简单的对参数化的方法。

用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的名称1=值1)。

同请求一起发送文件同请求一起发送文件:

在请求中发送文件,通常,HTTP文件上传行为可以通过这种方式模拟。

从从HTML文件获取所有有内含的资源文件获取所有有内含的资源:

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

用作监视器用作监视器:

此取样器被当成监视器,在MonitorResultsListener中可以直接看到基于该取样器的图形化统计信息。

默认为不选中。

SaveresponseasMD5hash?

选中该项,在执行时仅记录服务端响应数据的MD5值,而不记录完整的响应数据。

在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销。

在这里我们添加两个HTTP请求,分别用于对和tt-发送请求。

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

一种可行的方法是逐步调整测试计划中的线程计算的数量以及为取样器(Sampler)添加定时器(Timer),以使HTTP取样器发出的请求的QPS保持在20个左右。

但这种方法耗时耗力,需要经过多次尝试才能达到;

另一方法,完全通过设置定时器来控制QPS,一旦取样器的响应时间发生改变(网络环境发生改变),就需要重新调整定时器的等待时间。

Jmeter提供了一个非常有用的定时器,称为ConstantThroughput

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 外语学习 > 法语学习

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2