Bioneck 岂安科技研发工程师
负责 Stalker 项目的部分研发与测试工作,编程爱好者,乐于使用代码解决生活中的重复工作。
最近有个需要依靠 Jmeter+Jenkins 实现自动化测试后部署的需求,于是看了看Jmeter的资料,这里给大家分享下。
Jmeter简介
Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。用于对软件做压力测试,它最初被设计用于 Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性, JMeter 允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl 脚本,java 对象,数据库和查询,FTP 服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
Jmeter安装
Jmerter 是基于 java的,所以安装 Jmeter 之前必须先安装 JDK 依赖,JDK 安装的方法网上许多这里就不多介绍了(建议安装8.0以上版本)。
安装好 java 后到 Jmeter 官网下载对应系统的压缩包解压到本地任意位置就可以使用了,这里我建议下载3.0以上版本的 Jmeter,因为从3.0开始 Jmeter 可以直接生成可视化的 HTML 报告,不再需要安装插件来生成。
Jmeter测试组件
(1)负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为。
(2)用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。
(3)资源生成器:用于生成测试过程中服务器、负载机的资源数据。
(4)报表生成器:根据测试产生的数据生成报表,提供可视化的数据显示方式。
Test Plan (测试计划):用来描述一个性能测试,包含与本次性能测试所有相关的功能。也就说本次的性能测试的所有内容是于基于一个计划的。
下面看一下一个计划下面都有哪些主要的功能模块(右键单击“测试计划”弹出菜单)。
Threads (Users)线程 用户
虽然有三个添加线程组的选项,名字不一样, 创建之后,其界面是完全一样的。之前的版本只有一个线程组的名字。现在多一个 setUp theread Group 与 terDown Thread Group。
setup thread group
可用于执行预测试操作,这种类型的线程执行测试前进行定期线程组的执行。
teardown thread group.
可用于执行测试后动作,这种类型的线程执行测试结束后执行定期的线程组。
这个就是我们通常添加运行的线程。通俗的讲一个线程组,,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。
测试片段
测试片段是在2.5版本之后新加的一个选项。
测试片段元素是控制器上的一个种特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。
组成
控制器
JMeter 有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用这些原件来驱动处理一个测试。
取样器(Sample)