一、概念
Apache JMeter是100%的Java桌面应用程序,用于对软件做压力测试。它最初被设计用于Web应用测试,但后来扩展到其他测试领域。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证被测程序返回了期望的结果。为了保证最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache JMeter可以用于对静态和动态资源(文件、Servlet、Perl脚本、Java对象、数据库和查询、FTP服务器等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。测试人员可以使用它做性能图形分析或者测试服务器/脚本/对象在大并发负载下的表现。
二、常用术语
(1)采样器(Samplers):采样器是JMeter测试脚本的基础单元,用户可以用它来向服务器发出一个特定的请求,采样器会在超时前等待服务器的响应。
(2)逻辑控制器(Logic Controllers):用户通过逻辑控制器来控制JMeter测试脚本的执行顺序,以便测试能够按照用户期望的顺序和逻辑执行。
(3)监听器(Listeners):监听器被用来收集测试结果信息,并以用户指定的方式加以展示。
(4)配置元件(Configuration Elements):配置元件被用来设置一些JMeter测试脚本公用的信息。
(5)断言(Assertions):断言被用来验证服务器实际返回的信息与用户期望的情况是否相符。
(6)定时器(Timers):定时器用来保存JMeter测试脚本与时间相关的一些信息,例如思考时间(Think Time)。
(7)前置处理器(Pre-Processors):在前置处理器的作用范围内,任何采样器被执行前,都要先执行前置处理器。
(8)后置处理器(Post-Processors):在后置处理器的作用范围内,任何采样器被执行后,都要执行对应的后置处理器。
(9)测试计划(Test Plan):测试计划是JMeter测试脚本的根节点,关于整个测试脚本的一些基础设置,可以在测试计划中设定,例如用户定义变量。
(10)线程组(Thread Group):线程组定义了一个虚拟用户池,其中每一个虚拟用户都使用同样的测试脚本。
三、JMeter脚本
1、通过Badboy来录制脚本
(1)打开BadBoy,默认处于录制状态,即如下图所示红色按钮亮。在地址栏输入测试网址地址,例如https://www.baidu.com/
(2)执行所要录制的场景,待录制完成后点击红色按钮结束,变为紫色按钮。
(3)输出为.jmx文件
2、使用Jmeter自身的代理录制脚本
(1)新建一个HTTP代理服务器
(2)填写相关重要信息,录制可排除图片等格式请求
(3)浏览器开代理
(4)点击启动按钮,打开网址进行录制,若有如下提示,点击OK按钮
(5)录制完成后点击停止按钮