一、概念
JMeter 是一款专门用于功能测试和压力测试的轻量级测试开发平台,实现了许多和互联网相关的网络测试组件,同时还保留着很强的扩展性。
- JMeter可以用来测试诸如:静态文件,Java Servlets,Java 对象,数据库,FTP 服务器等等。
- JMeter 通过【断言】创建测试脚本,用来验证应用程序是否返回了我们期望的结果,JMeter允许我们使用正则表达式创建断言。
JMeter 具有许多有用的功能元件,如:线程组(thread group), 定时器(timer), 和HTTP 取样 (sampler) 元件。
1.Threads
线程组主要用来控制Jmeter并发时产生线程的数量,
在它的下一级菜单下只有一个组件(线程组),可以理解每个线程就是一个虚拟的用户。所有的其他类型组件必须是(线程组)节点的子节点。2.配置元件
配置单元和Sample组件一起工作,主要用来配置Sample如何来发起请求访问服务器,
这个东西的主要特点是可以把一些Sample的共同配置放在一个元素里面方便管理,配置单元是有作用域的, 作用域和树的那个关系一样越是上级节点的作用域越大,越是接近叶子节点的作用域就越小,可以复写上级作用域的配置。3.定时器
定时器用来调节(线程组),控制线程每次运行测试逻辑(比如说:发出请求)的时间间隔。
下面还有很多类型的定时器,主要功能是调节时间间隔,但个个组件之间的策略有很大不同。4.前置处理器和后置处理器
类似一个HOOK,在测试执行之前和执行之后执行一些脚本的逻辑。
5.Sample
可能上图中没有出现Sample,需要在(ThreadGroup)上添加才可以
Sample表示客户端发送某种格式或者规范的请求到服务端,所以大家看到了各种各样的Sample,其中有两个Http 相关的。一般用HttpClient功能和效率将更强。
6.断言
断言的意思是指对于Sample完成了请求发送之后,判断一下返回的结果是否满足期望。
7.监听器
Jemeter测试运行时抓取运行期间数据的组件,经常使用的是聚合报告组件,从里面可以统计到测试的TPS,响应时间等关键测试数据。
二、样例
1、创建线程组
- 线程数:最大测试时使用的线程数。
- Ramp-Up Period : Jmeter达到指定最大线程数的时间。
- 循环次数 : 如果是Forever,线程组中的线程将不间断的连续测试系统,当然也可以设置每个线程测试的次数,当完成了规定次数后,该线程将自动退出线程组。
- 调度器 : 主要用来指定该测试的一些时间信息,比如从几点到几点运行测试,如果到了指定时间测试没有进行完成,测试也会被停止。
2、添加Sample组件
添加一个HTTP Request 组件
3、添加监听器组件 :Aggregate Report