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

本文涉及的产品
性能测试 PTS,5000VUM额度
简介:

目录

一、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


相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
13天前
|
Java Shell Apache
Jmeter快速入门
Jmeter快速入门
24 1
Jmeter快速入门
|
7天前
|
安全 前端开发 测试技术
如何选择合适的自动化安全测试工具
选择合适的自动化安全测试工具需考虑多个因素,包括项目需求、测试目标、系统类型和技术栈,工具的功能特性、市场评价、成本和许可,以及集成性、误报率、社区支持、易用性和安全性。综合评估这些因素,可确保所选工具满足项目需求和团队能力。
|
6天前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
|
6天前
|
安全 网络协议 关系型数据库
最好用的17个渗透测试工具
渗透测试是安全人员为防止恶意黑客利用系统漏洞而进行的操作。本文介绍了17款业内常用的渗透测试工具,涵盖网络发现、无线评估、Web应用测试、SQL注入等多个领域,包括Nmap、Aircrack-ng、Burp Suite、OWASP ZAP等,既有免费开源工具,也有付费专业软件,适用于不同需求的安全专家。
10 2
|
14天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
41 3
|
13天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
30 1
|
17天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
17 1
|
20天前
|
编解码 人工智能 自然语言处理
迈向多语言医疗大模型:大规模预训练语料、开源模型与全面基准测试
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据,无需标准化。其核心创新包括任意分辨率编码和动态压缩器模块,适用于从微小图标到长时间视频的多种应用场景。Oryx 在长上下文检索和空间感知数据方面表现出色,并且已开源,为多模态研究提供了强大工具。然而,选择合适的分辨率和压缩率仍需谨慎,以平衡处理效率和识别精度。论文地址:https://www.nature.com/articles/s41467-024-52417-z
41 2
|
6天前
|
开发框架 安全 .NET
.NET使用Moq开源模拟库简化单元测试
.NET使用Moq开源模拟库简化单元测试~
|
1月前
|
jenkins 测试技术 持续交付
提升软件测试效率的实用技巧与工具
【10月更文挑战第12天】 本文将深入探讨如何通过优化测试流程、引入自动化工具和持续集成等策略,来显著提高软件测试的效率。我们将分享一些实用的技巧和工具,帮助测试人员更高效地发现和定位问题,确保软件质量。
45 2