jmeter2------常见元件
一、线程组
线程组时任何计划的起点,所有的逻辑控制器和采样器都必须放在线程组之下。其他的测试元件(如监听器)可以被直接放在测试计划之下,这些测试元件对所有线程组都生效。线程组就像它的i那个字所描述的,被用来管理执行性能测试所需的jmeter线程。
1)设置线程数量
2)设置线程启动周期
3)设置执行测试脚本的循环次数
每一个jmeter线程都会完整地执行测试计划,而且他们之间是完全独立运行的。这种多线程机制被用来模拟服务器应用的并发连接。参数Ramp-Up Period告诉jmeter达到最大线程数需要多长时间。假定共有10个线程,Ramp-Up Period为100秒,那么JMeter就会在100秒内启动所有10个线程,并让它们运转起来。每一个测试线程都会在上一个线程启动10秒之后才开始 运行。假定共有30个线程,Ramp-Up Period为120秒,那么线程启动的间隔就为4秒。
Ramp-Up参数不能设定得太短,否则在测试的初始阶段会给予服务器过大的压力。Ramp-Up参数也不能设定得太长,否则就会发生第一个线程已经执行完毕,而最后一个线程还没有启动的情况(除非测试人员期望这种特殊情况发生)。
如何找到一个合适的Ramp-Up参数值?作者建议初始值可以设定为Ramp-Up Period=总线程数,后续再根据实际情况适当增减。
默认情况下,线程数、循环次数设定为1,方便调试,如果调试通过的话可根据实际情况进行增加数值,调度器配hi可以设置“持续时间”和“启动延迟
二、控制器
jmeter有两种类型得控制器:采样器和逻辑控制器,二者结合起来驱动了测试进程。采样器被jmeter用来向服务器发送请求。例如:当测试人员想往服务器发送一个请求时,就加入一个HTTP请求采样器,测试人员还可以通过采样器添加配置元件来定制化请求。
用户可以使用逻辑控制器来控制jmeter的测试逻辑,比如:何时发送请求。举一个例子:测试人员可以插入交替控制器来轮流发送多个请求。
lai
采样器告诉jmeter发送一个请求到指定服务器,并等待服务器的请求。采样器会按照在测试数中的顺序去执行,还可以用逻辑控制器来改变采样器运行的重复次数。
jmeter采样器包含:FTP Request、HTTP Request、JDBC Request、java object Request、LDAP Request、SOAP/XML-RPC Request、WebService(SOAP) Request
每一种采样器都有多种参数可供设置。测试人员可以通过在测试计划中加入一个或者多个配置元件来进一步定制化采样器。
如果测试人员打算向一个服务器发送同一类请求,可以考虑使用默认配置元件。每一类采样器都有一个或者多个对应的默认配置元件。一定要记住应为测试计划添加一个监听器,以便查看和存储(存储到磁盘)请求的结果。
如果测试人员想检查服务器响应的内容,可以对应采样器添加断言。例如:当对web应用做压力测试时,服务器虽然成功返回了“HTTP Response”代码,但是页面上可能会有错误,或者对视了部分页面片段。针对这种情况测试人员可以添加断言来检查特定的HTML标签,或者常见的错误信息等。jmeter允许在断言中使用正则表达式。
2、逻辑控制器
控制器可以帮助用户控制jmeter的测试逻辑,特别时何时发送请求。逻辑控制器可以改变其子测试元件请求执行顺序。
3、监听器
监听器提供了对jmeter在测试期间收集到的信息的访问方法。“图形结果”监听器会将系统响应时长回值在一张图片之中。“查看结果树”监听器会展示采样器请求和响应的细节,还能以HTML和XML格式展示系统响应的基础部分。其他监听器通过总结或者聚合方式展示信息。
另外,监听器可以将测试数据导入到文件之中,以供后续分析。所有监听器都会提供一个输入域,以便用户指定存储测试数据的文件。监听器还会提供一个配置按钮,用来配置存储测试数据的哪些字段,以及选用的存储格式(CSV或XML)。应该注意的是:所有监听器都保存同样的数据,卫衣的区别是,他们如何展示数据。
监听器可以在测试的任何地方添加,包括直接放在测试计划之下。它们仅收集测试数中相同或者更低级别测试元件的数据
4、定时器
默认轻快下,jmeter线程在发送请求之间没有间隔。建议为线程组添加某个定时器,以便设定请求之间应该间隔多长时间。如果测试人员不设定这种延迟,jmeter可能会在短时间内产生大量访问请求,导致服务器被大量请求所淹没。
定时器会让作用域内的每一个采样器都在执行前等待一个固定时长。如果测试人员为线程组添加了多个定时器,那么jmeter会将这些定时器的时长叠加起来,共同影响作用域党委内的采样器。定时器可以作为采样器或者逻辑控制器的子项,目的是只影响作用域内的采样器。
要在测试计划的某个位置添加暂停,测试人员可以使用“Test Action”采样器。
5、断言
用户可以使用断言来检查从服务器获得的响应内容。通过断言可以测试服务器返回的响应与测试人员的期望是否相符。
例如:测试人员可以断言某个查询的响应中包含特定的文字信息。测试人员可以使用Perl格式的正则表达式来描述响应中应该包含的文字,或者她应该与整个响应相符。
测试人员可以为任何采样器添加断言。例如,测试人员可以为HTTP请求添加断言,用于检查文本“”。接下来jmeter就会检查该文本是否在HTTP响应中。如果jmeter不能找到该文本,那么它就会将请求标记为失败。
需要注意的是:断言会影响作用域内的所有采样器。如果要让断言只影响某个采样器,需要将断言作为该采样器的子项。
如果要查看断言结果。可以为线程组添加“断言结果”监听器,失败的断言,也会在“查看结果树”和“用表格查看结果”两种监听器中显示。另外,在“Summary Report”和“聚合报告”中还会以错误百分率的形式统计。
6、配置元件
配置元件与采样器紧密关联。虽然配置元件并不发送请求(除了HTTP代理服务器例外),但它可以添加或者修改请求。
配置元件仅对其所在的测试树分支有效。例如:假设测试人员一个简单逻辑控制中放置了一个HTTP Cookie管理器,那么该HTTP Cookie管理器只对放置在简单逻辑控制器内的其它逻辑控制器上生效。
另外,相比父分支的配置元件,子分支内部的配置元件优先级更高。配置元件“用户定义的参数”会在测试的初始阶段执行(无论它处于测试树的哪个位置)。
7、前置处理器
前置处理器会在采样器发出请求之前做一些特殊操作。如果前置处理器附着在某个采样器之下,那么它只会在该采样器运行之前执行。前置处理器通常用在采样器打出请求前修改采样器的某些设置,或者更新某些变量的值(这些变量不在服务端响应中获取值)。
8、后置处理器
后置处理器会在采样器发出请求之后做一些特殊操作。如果后置处理器附着在某个采样器之下,那么它只会在该采样器运行之后之下。后置处理器被用来处理服务器的响应数据,特别是服务器响应中提取数据。
三、JMeter 元件运行顺序
执行顺序逻辑如下:
1、配置元件(如果存在)
2、前置处理器(如果存在)
3、定时器(如果存在)
4、取样器(如果存在)
5、后置处理器(如果存在且取样器的结果不为空)
6、断言(如果存在且取样器的结果不为空)
7、监听器(如果存在且取样器结果不为空)
转载自:https://www.cnblogs.com/insane-Mr-Li/p/10083640.html
posted on 2019-10-29 16:22 lovely&lucy 阅读(170) 评论(0) 编辑 收藏 举报