jmeter简介
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
jmeter版本
JMeter不同的版本,功能有所差异,对JDK的支持也不尽相同。新的JMeter版本有些功能会逐渐改进完善,还会引入新的功能组件,性能也会逐步提升。因此在JMeter官方网站的最佳实践中,建议用户无论如何最好使用最新的JMeter版本,今后学习都是以JMeter5.1.1版本进行介绍。
jmeter能做什么
一、能对以下不同应用/服务/协议类型进行测试
1.对Web应用进行测试( HTTP, HTTPS )
2.对 SOAP API 、Restful API进行测试 (SOAP / REST Webservices)
3.对FTP服务进行测试
4.通过JDBC对数据库进行测试
5.对 LDAP 服务进行测试
6.通过JMS对 面向消息的中间件(Message-oriented middleware) 进行测试
7.对邮件服务器进行测试(包括smtp, pop3, imap)
8.对系统内置命令或脚本进行测试
9.对TCP协议进行测试
10.对Java对象进行测试
二、方便地录制和调试测试脚本
三、从命令行执行测试,方便与其它测试系统进行集成
四、生成优秀的测试报告
五、能从大多数常见响应数据格式中提取数据:HTML、JSON、XML、或者任意文本格式。
六、允许多线程并发采样,同时通过不同的线程组进行不同功能的同时采样。
七、缓存和离线分析以及回放测试结果。
八、高度可扩展的内核
- 可扩展的取样器使的测试能力无线扩展
- 可使用诸如Groovy等与JSR232兼容语言来编写取样器;
- 数据分析和效果展现插件使得可扩展性以及个性化大大提高;
- 函数可以用来用来给测试提供动态输入或操作数据;
- 通过第三方开源库Maven Graddle和Jenkins可以很方便的持续集成。
jmeter GuUI界面
当JMeter以GUI模式运行时,窗口主要由三部分构成:
功能区
上方菜单栏,下方工具栏。菜单栏展示了JMeter提供的功能菜单,而工具栏中的图标是常见功能的快捷方式。
视图区
以树状结构呈现JMeter元素,其中“Test Plane”是树的根节点,每一个节点就是一个JMeter元素。在此区域可以添加、删除节点或者通过拖曳调整节点的位置。
内容区
当在视图区选中一个JMeter元素节点时,内容区则会相应地显示该元素的内容。
这时可以对其内容进行查看、设置等操作。
如下图所示:
jmeter组件基本组织关系
主要组件如下:
测试计划(Test Plan)
线程组(Thread Group)
控制器(Controllers)
监听器(Listeners)
计时器(Timers)
配置元素(Configuration Elements)
预处理器元素(Pre-Processor Elements)
后处理器元素(Post-Processor Elements)
断言( Assertions )