Web - HTTP,HTTPS
SOAP / REST 服务
FTP
通过JDBC的数据库
LDAP
基于JMS的面向消息的中间件
邮件 - SMTP(s),POP3(s)以及IMAP(s)
shell脚本
TCP
java对象
以下以TCP为主
GUI界面简介
下载完jmeter之后,进入jmeter源码目录
ls LICENSE NOTICE README.md bin docs extras lib licenses printable_docs |
在当前目录下执行命令 ./bin/jmeter便可以看到图形化的界面
jmeter概念
ThreadGroup
线程组是是所有测试计划的起点。一切的controller和sampler都必须在线程组下面,其它的元素,比如listener,可能直接放在了测试计划下面,这种情况下它就适用于所有的线程组。线程组控制着
线程的数量
线程全部启动的时间
执行测试的次数
Pre-Processor
在sampler请求之前执行,一般它用来修改设置或者更新一些变量
Samplers
用来发送请求给服务器,并且等待结果,Jmeter的sampler包括
FTP request
HTTP request
JDBC request
java object request
JMS request
JUnit Test request
Mail request
OS Process request
TCP request
Assertion
用来校验请求的返回结果
configuration
它会被添加到请求,或者是修改请求
Post-Processor
在sampler执行之后执行
logic controller
自定义jmeter在发送请求时的一些处理逻辑
Listener
用来获取jmeter运行时搜集的信息,比如 Graph Result listener用来绘制返回时间
Timer
在每个sampler执行前,延迟一段时间执行
Properties
JMeter的Properties定义在了 jmeter.properties,它是全局的
variables
它对于每个线程来说都是本地的,如果在一个线程里面改变了,仅影响这个线程
Jmeter的scope
jmeter的测试结构既是分层的又是顺序的,一些元素是严格按照层次来的,比如(Listeners, Config Elements, Post-Processors, Pre-Processors, Assertions, Timers),一些是按照顺序来的,比如(controllers, samplers)
一个典型的按照顺序执行的测试树如下,它的请求顺序是 One Two Three Four。
受层次影响的测试树,Assertion #1 仅用于 One,而 Assertion #2则是用于 TWO和Three
加上timer之后, Timer #1 会用于 Two/Three/Four,Assertion # 1则仅会用于Three,而 Timer #2则会影响所有的请求
可以简要的理解成 子集功能只能给当和他同一级目录和他的子集使用,其它的是按照顺序执行
执行顺序说明
总的来看,执行顺序是
Configuration elements Pre-Processors Timers Sampler Post-Processors (除非SampleResult 是 null) Assertions (除非SampleResult 是 null) Listeners (除非SampleResult 是 null) 比如以下的测试计划 Controller Post-Processor 1 Sampler 1 Sampler 2 Timer 1 Assertion 1 Pre-Processor 1 Timer 2 Post-Processor 2 它的执行顺序就是 Pre-Processor 1 Timer 1 Timer 2 Sampler 1 Post-Processor 1 Post-Processor 2 Assertion 1 Pre-Processor 1 Timer 1 Timer 2 Sampler 2 Post-Processor 1 Post-Processor 2 Assertion 1 |
图形界面
通过图形界面配置好的结果,保存下来后,可以再通过./bin/jmeter -t xxx.jmx的方式打开。
保存配置的方式为 找到应用目录 File -> save test plan as 即可
启动测试操作如下
停止测试操作如下
对于左侧栏也提供了展开和收起
线程组的界面如下
如果想通过非图形界面的方式启动,则可以使用 ./bin/jmeter-server 来执行,远程测试可以通过添加 -Jremote_hosts 的方式来添加服务列表 远程测试详情戳这里
监控结果
如果需要测试完成后自动产生图形界面的结果,可以执行
./jmeter -n -t ~/Desktop/MyServerHandler.jmx -l ~/Desktop/MyServerHandlerLog.txt -e -o ~/Desktop/MyserverHandlerReport |
~/Desktop/MyServerHandlerLog.txt是一个存储结果的空文件
~/Desktop/MyserverHandlerReport 是一个存储监控结果的空
~/Desktop/MyServerHandler.jmx 通过界面配置生成的压测计划
如果已经执行完了,日志放在了 MyServerHandlerLog.txt 中,可以通过命令直接产生
/bin/jmeter -g MyServerHandlerLog.txt -o ./MyserverHandlerReport |
可以在 bin/user.properties 文件定制相关的内容
jmeter体验测试案例
nettyServer长连接服务提供了简单的心跳和echo服务,通过启动配置好的jmx
就可以看到对应的界面,然后开始压测
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理