开源性能测试工具JMeter快速入门(二)

简介:

目录

一、JMeter简介

二、JMeter功能介绍

三、JMeter脚本

四、关于JMeter小提示




三、JMeter脚本


1.测试计划

测试计划是JMeter进行测试的起点 ,是其他JMeter测试元件的容器,每个测试场景/脚本都叫做一个测试计划。

(1)名称;与业务相关的名称

(2)注释:非必填

(3)用户定义的变量,引用时直接用${变量名}即可,这里的变量是全局变量,作用于整个测试计划。

(4)独立运行每个线程组:默认不勾选,即所有线程组并发启动。勾选则顺序执行所有线程组。

(5)

结束线程运行后,停止主线程。

(6)函数测试模式:默认不勾选 。勾选则记录详细请求,增加资源消耗,影响客户端性能。

(7)

向类路径(%JMeterHOME%\lib)中添加目录及JAR包。


2.VUser及场景设计

JMeter的场景设计 及Vuser都是在线程组下设计的。

这里线程-->Vuser(并发用户数)

循环次数及调度器-->场景设计模块

(1)线程属性:

线程数

Ramp-Up Period:线程间的时间间隔

循环次数:请求的重复次数 。

Delay thread Creation until needed:延迟创建线程,直到需要创建时创建。

(2)调度器

持续时间:测试计划持续时间,将覆盖结束时间

启动延迟:测试计划延迟多少时间启动,将覆盖启动时间。


3.使用Badboy进行脚本录制

Badboy录制较简单,无需使用代理;但不能像JMeter代理可以录制到URL相关的静态文件及dwr请求。

录制完成后导出为JMeter格式的,然后在JMeter中直接打开脚本就可以使用了。


4.参数化

(1)在测试计划中使用“用户定义变量”,

添加参数,然后找到需要参数化的脚本,将其值修改为:${key}即可

(2)使用自带的随机函数

JMeter中有函数助手,有多个内置函数,可以用相关函数进行参数化设置。

方法:打开函数助手 ,填写min,max ,函数名称,点击“生成”,复制生成的随机函数到需要参数化的地方 。


5.关联

JMeter的关联是基于正则和Xpath Extractor实现的。

(1)名称、注释、Apply to 默认即可。

(2)要检查的响应字段 :表示在哪个地方提取正则表达式,一般选择Body即可。

(3)引用名称:其他地方引用提取值的变量名称,引用方式为${变量名称}

(4)正则表达式,提取的正则表达式主体

(5)模板,用$$引用起来,正则表达式的提取模式,值从1开始 ,值0对应的是整个匹配的表达式。

(6)默认值,若返回结果中无匹配的值,则变量的值采用默认值 。


6.检查点

JMeter的检查点是用断言实现的,使用较多的是响应断言 。如下添加断言后,需要在相应的监听器中添加“断言结果”才能在执行后查看断言结果是否正确。

(1)名称、注释、 Apply to 默认

(2)要测试的响应字段,文本、代码均可

(3)模式匹配规则 :

匹配:需达到精确匹配

Equals:返回结果与指定结果一致

SubString:返回结果是指定结果的子串

否:不进行匹配

(4)要测试的模式,若设置多个断言结果 ,则需要所有结果通过才成功 ,否则失败


7.思考时间

JMeter的思考时间是用定时器实现的。默认时,JMeter发送请求是没有时间间隔的。添加间隔是为了更真实模拟用户请求,同时可以减少服务器压力。无论定时器放在哪里 ,它都会在Sampler前执行,若需要在某个位置暂停,,可加入Test Action。

定时器的作用域,若在线程组下添加多个定时器,则会累加作用于线程组内的所有Sampler,可以在单独的Sampler中添加定时器。


8.集合点

JMeter中使用Synchronizing Timer实现集合点功能 ,模拟多用户并发测试。

表示集合点够多少个用户才开始执行并发,在使用中发现最后一批线程数不够时,JMeter会停止不动。


9.结果分析

运行性能场景时,开启多个监听器会消耗资源 。常用的有聚合报告 、图形结果、监视器结果 等等。




四、关于JMeter小提示


1.尽量少用监听器

2.尽量把相似的Sampler放在循环内, 使用变量修改这些Sampler,而不是重复添加Sampler

3.不要使用函数测试模式

4.以CSV格式输出结果  ,尽量不用XML格式

5.只保存需要的数据结果

6.最好在调试脚本时使用断言,运行脚本时禁用断言 ,这样有利于精准测试结果

7.查看结果树和用表格查看结果监听器最好在调试脚本时使用,不在负载测试期间使用

8.若需要测试大量数据,则可以提前准备好测试Data并放在数据文件中,避免浪费资源 。

9.对于大并发量的负载测试,尽量在多台机器上运行多个非GUI JMeter实例,进行分布式测试。

10.若测试过程中报内存不足, 可以在jmeter的bin目录下找到jmeter.bat来修改JVM内存设置,如修改为:HEAP="-Xms512m -Xmx512m"这样可减小频繁申请创建、销毁内存引起的性能损耗开销。


本文转自 honzhang 51CTO博客,原文链接:http://blog.51cto.com/hongz/2065581


相关文章
|
10月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
803 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
10月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
758 6
|
11月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
2113 10
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1627 23
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。
|
11月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
1345 0
|
数据可视化 测试技术 Go
Go 语言测试与调试:`go test` 工具用法
`go test` 是 Go 语言内置的测试工具,支持单元测试、基准测试、示例测试等功能。本文详解其常用参数、调试技巧及性能测试命令,并提供实际项目中的应用示例与最佳实践。
|
12月前
|
人工智能 数据可视化 测试技术
UAT测试排程工具深度解析:让验收测试不再失控,项目稳稳上线
在系统交付节奏加快的背景下,“测试节奏混乱”已成为项目延期的主因之一。UAT测试排程工具应运而生,帮助团队结构化拆解任务、清晰分配责任、实时掌控进度,打通需求、测试、开发三方协作闭环,提升测试效率与质量。本文还盘点了2025年热门UAT工具,助力团队选型落地,告别靠表格和群聊推进测试的低效方式,实现有节奏、有章法的测试管理。
|
Web App开发 测试技术 API
自动化测试工具Selenium的深度解析
【5月更文挑战第27天】本文旨在深入剖析自动化测试工具Selenium,探讨其架构、原理及应用。通过对其核心组件、运行机制及在实际项目中的应用案例进行详细解读,以期为软件测试人员提供全面、深入的理解与实践指导。
|
JSON 数据管理 测试技术
自动化测试工具Selenium Grid的深度应用分析深入理解操作系统的内存管理
【5月更文挑战第28天】随着互联网技术的飞速发展,软件测试工作日益复杂化,传统的手工测试已无法满足快速迭代的需求。自动化测试工具Selenium Grid因其分布式执行特性而受到广泛关注。本文旨在深入剖析Selenium Grid的工作原理、配置方法及其在复杂测试场景中的应用优势,为测试工程师提供高效测试解决方案的参考。