二、Jmeter基本使用
这部分将以实例来切入,以如何设计一个基本的Jmeter测试脚本,需要解决的几个问题展开:
1. 如何发HTTP请求?
2. 如何灵活读取参数?(另一篇来详解)
3. 如何查看分析结果?
4. 如何进行断言?
5. 如何设置运行场景:用户数,请求次数,请求时间间隔,或持续请求时间等?
6. 如何编写程序处理个性化要求?(Beanshell,另一篇来详解)
如何发HTTP请求?
首先添加线程组,之后添加以下三项:
HTTP请求默认值 (Add->Config element)
HTTP信息头管理器 (Add->Config element)
HTTP请求 (Add->Sampler)
HTTP请求默认值可以设置其作用范围内的所有HTTP的默认值,包括HTTP请求的host、端口、协议等
HTTP信息头管理器,主要用来指定发送请求头,如下图:
当然,如果http请求需要有登录授权做前提,可以添加一个HTTP授权管理器。(Config Element-> HTTP Authorization Manager)
现在回到HTTP请求,进行设置如下图。
注意:“自动重定向”选项适用于当方法为“GET”或“HEAD”的时候
到此处,一个基本的HTTP请求已经配置完了,简单总结下,a)就是HTTP请求需要设置server信息,包括请求的协议(http),请求地址,端口号,HTTP请求的方法(get,post)及请求路径,同时根据需求来设置随请求发送的参数。b)进一步如果一个线程组下设置了多个HTTP请求,这些请求都共享一个Server地址,则可以添加HTTP请求默认值,用来统一设置server信息,主要是协议,server地址,端口号。 c) 最后就是根据请求头(request headers),来设置一个HTTP信息头管理器。
如何分析结果?
添加监听器,常用的:线程组->监听器->聚合报告
Label – Sample的标签.
# Samples – 同名Label的个数
Average – 平均响应时间
Median – 50%的请求所用的时间不超过该值
90% Line - 90%的请求所用的时间不超过该值
Min – 最小响应时间
Max – 最大响应时间
Error % - 错误率
Throughput – 吞吐量,即每秒多少请求
Sent Kb/sec – 吞吐量,每秒多少Kb
还可添加其他监听器:
查看结果树
表格方式查看结果
总结报告
响应时间图
如何进行断言
常用断言:线程组->添加断言->响应断言
注意点:
当模匹配规则为“包括”和“匹配”时,支持正则表达式;当为“Equals”或“Substring”时是完全匹配。
如何设置运行场景?
对线程组进行设置如下:
实际场景中, 可能还需要考虑每个请求之间的时间间隔,称为“思考时间”。可以通过定时器来进行设置。
例如:
固定定时器
高斯随机定时器
定时器的作用域,定时器是在每个sampler之前执行的,而不是之后(无论位置在sampler之前还是下面);当执行一个sampler之前,所有当前作用域内的定时器都会被执行;如果希望定时器仅应用于其中一个sampler,把定时器作为子节点加入;
如果希望在sampler执行完之后再等待,可以使用TestAction。
编写用户程序
我们可能还经常碰到请求需要对参数或结果做一些特殊处理,可能需要用户编写额外的程序。此处推荐使用beanshell, 可以兼容java语言,建议在eclipse调试好代码后,直接复制粘贴过来即可。
Jmeter中Beanshell相关的元器件如下:
BeanShell前置处理器
Beanshell后置处理器
Beanshell断言
Beanshell定时器
---------------------