1.软件架构
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,
例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等,你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
JMeter就是一个测试工具,相比于LoadRunner等测试工具,此工具免费,且比较好用,但是前提当然是安装Java环境;和JMeter一起使用的可能是JDK自带的测试工具JConsole,位于JDKinJConsole,此工具主要观察堆、JVM、CPU的使用情况。
【功能总结】
(1)压力测试及性能测试;
(2)数据库测试;
(3)Java程序的测试;
(4)HTTP及FTP测试;
(5)Web Service测试;
2. 组件介绍:
HTTP请求:模拟HTTP请求;
查看结果树:对于每个请求,可以查看HTTP请求和HTTP响应;
图形结果:可以图形显示吞吐量、响应时间等;
聚合报告:总体的吞吐量、响应时间
- 测试计划(test plan)
jmeter的测试计划,实际是一个或者一组测试用例。可以将线程组(thread group)理解为一个测试用例。在一个测试计划中可以有多个测试线程组。
- 工作台(work bench)
在金山词霸中Workbench的解释是:工作台:在上面做手工工作的坚固的桌子或长凳,如机械工人、木匠或珠宝匠的工作台.jmeter中,可以在工作台中配置http代理服务器,然后将录制的脚本存入工作台中,进行初步编辑,然后将脚本复制粘贴到测试计划中。
理解:控件的暂存区域,在测试过程中可以把暂时不用的控件放入其中,待测试完成后放回原来的位置。
注意事项:工作台中的控件不会保存在jmx文件中,所以,如果关闭jmeter,工作台中的控件会丢失。
- 线程组(thread group)
在各种压力测试工具中都有虚拟用户的概念,loadrunner中叫做VUser。实际这些压力测试工具实现虚拟用户的时候用的技术就是线程,一个线程模拟一个虚拟用户。在jmeter中,线程组用来配置虚拟用户数目、迭代次数等。
- Test Fragment
与线程组同级别,但是默认不会执行。只有当他被模块控制器引用的时候才会被执行。
- 取样器(sampler)
jemter中,请求是通过取样器发送的,每个请求就是一个样本。在测试运行的时候,每个虚拟用户(线程)通过取样器发送样本,样本在运行的时候由jmeter进行参数化。
- 逻辑控制器(control)
分为逻辑控制器和样本控制器(即取样器)。逻辑控制器用来模拟程序语言的逻辑结构,如顺序、循环、分支等。
- 配置元件(config element)
配置一些默认的属性和信息,供取样器获取所需要的各种配置信息
- 定时器 :Random类型,定义线程请求的延迟。
- 前置处理器(pre processor)
- 后置处理器(post processor)
- 断言
- 监听器(listener) 对Sampler的请求结果进行统计、显示;
3.配置
4.注意事项
5.jmeter插件
JMeterPlugin可以把JMeter生成的jtl文件做出很好的统计图,同时还支持机器的cpu、memory、swap、disk io和network的监控,是个不错的插件。
JMeter插件的下载地址:https://jmeter-plugins.org/downloads/all/