热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JMeter入门指南:基础操作与应用技巧

在完成JMeter的安装后,用户即可开始进行性能测试。本文详细介绍了JMeter的基础操作和应用技巧,重点讲解了线程组的分类及其配置方法。通过具体的实例,帮助初学者快速掌握JMeter的核心功能和常见应用场景。此外,还提供了优化建议和实用技巧,以提升测试效率和准确性。

前言

通过测试基础(三) Jmeter安装 - 大风北吹 - 博客园 (cnblogs.com)安装完成Jmeter后,就可以使用Jmeter进行性能测试。

一、线程组

(1)、线程组分类

  Jmeter线程组主要分为3类分别为线程组、setUp线程组、tearDown线程组

  ①线程组

    这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。

  ②setUp线程组

    一种特殊类型的ThreadGroup的,可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行;类似LoadRunner的init,测试开始时进行初始化的工作。

  ③tearDown线程组

    一种特殊类型的ThreadGroup的,可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组;类似LoadRunnner的end,测试结束时进行回收工作。

(2)、线程组参数

三种不同线程组的参数设置页面都一致

 ①在取样器错误后执行的操作

  1、继续:继续执行接下来的操作。

  2、启动下一次循环:开始下一次循环。

  3、停止线程:退出该线程(不再执行此线程的操作)。

  4、停止测试:等待当前执行的采样器结束后,结束整个测试。

  5、立即停止测试:马上停止测试。

②线程属性

  1、线程数:相当于模拟的用户数量。

  2、Ramp-up 时间(秒):达到指定线程需要的时间,例如线程数为100,时间设定为10s,那么就是10s加载    100个线程,每秒启动的线程数=100/10=10。

  3、循环次数:如果填具体的数值,就是循环对应的次数;如果选择“Forever”,则一直执行下去,直到手动停止。

  4、same user on each iteration:每次迭代都有相同的用户,此功勾选为默认勾选。如果只是做接口测试则无需管这个参数,如果是要做模拟多线程的情况则需要取消勾选。

  5、延迟创建线程直到需要:延迟线程创建,直到需要才创建。

(3)、调度器

  1、持续时间(秒):测试计划持续多长时间

  2、启动延迟(秒):测试计划延迟多长时间启动

 

二、Http请求

可在线程组-取样器中添加HTTP请求

协议:向目标服务器发送http请求时的协议,http/https,大小写不敏感,默认http

服务器名称或IP:需要调用的服务器或IP

端口号:目标服务器的端口号,默认值为80,可为空

HTTP请求:可以根据实际需要请求的接口,选择请求的类型get/post...

路径:目标的URL路径(不包括服务器地址和端口)

内容编码:请求内容的编码,一般使用UTF-8

自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。

跟随重定向:Http Request取样器的默认选项,当响应Code是3XX时,自动跳转到目标地址。与自动重定向不同,jmeter会记录重定向过程中的所有请求,在查看结果树可以查看服务器返回的内容,可以对响应的内容进行关联。

使用keepalive:该选项被选中时,jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信,默认选中。

对POST使用multipart/form-data:当发送HTTP POST 请求时,使用Use multipart/from-data方法发送,默认不选中。

参数:可手动添加请求参数,会放到请求数据中,格式为参数名=参数。无法与消息体数据共同使用。

消息体数据:此数据会与请求一起发出,发出的格式为手动设置的格式。无法与参数选项共同使用。

 文件上传:文件上传的接口在进行测试的时候需要在文件上传页面设置上传文件的属性。由文件名称、参数名称、MIME类型构成。

 

三、Jar包导入

Jar包导入分为三种方法

1、在测试计划直接导入jar包

 

 

 

2、lib目前导入

可以把需要的jar包放入lib目前下,重启后此jar包即可在Jmeter模块中使用

3、其余目录导入

通过修改bin目录下的jmeter.properties文件中的plugin_dependency_paths,可以引用其余目录下的jar包。

 

四、HttpInvoker请求

HTTPInvoker是spring框架中的一个远程调用模型,它的执行基于HTTP的远程调用,并使用JAVA的序列化机制在网络间传递对象。
在Spring配置文件中创建一个类HttpInvokerProxyFactoryBean的Bean,指定serviceUrl属性为服务器端的服务提供的URL,serviceInterface属性为服务器端配置的服务类型。
需要调用对应接口,便需要把接口配置到xml配置文件中,并通过调用bean来完成远程方法的调用。

 

①在jmeter文件中新建xml文件并把对应的xml文件放入文件中

 

 

② 新建线程组并在线程组中增加BeanShell 取样器

 

 

 

 

③在Beanshell中导入接口调用需要的jar包,并通过xml配置文件获取相应的Bean,参数组装后即可调用相应的接口方法

 

 

 

五、正则表达式提取器

在一个线程组中,B请求如果需要使用A请求返回的数据,将上一个请求的响应数据作为下一个请求的参数,则需要对A请求的响应报文使用后置处理器,其中最方便常用的就是正则表达式提取器

 

 

引用名称:Jmeter变量的名称,存储提前出的结果。

模板:表示使用提取到的第几个值,$N$使用提取到的第N个值

 匹配数字:正则表达式匹配数据的结果可以看成一个数值,0表示随机取,正数N表示取第N个值。

缺省值:匹配失败时候的默认值

正则表达式:

():表示提取字符串的部分值,前后是提取的边界内容
?:出现在该符号之前的项目是可选的,最多匹配一次
*:匹配出现0次或多次的项目
+:匹配一次或多次之前的项目
$:匹配行末的空字符串
{N}:精确匹配N次的先前项目

 

六、查看结果树

用来监控请求执行的结果,主要分为查看结果树、汇总报告、聚合报告等。
也可以下载第三方监听器。



推荐阅读
  • 2023年1月15日,联想移动业务宣布了中国区高管团队的重大调整。此次变动旨在强化中国市场战略,以应对激烈的竞争环境。高级副总裁陈旭东将兼任中国区总经理,带领新团队迎战市场挑战。 ... [详细]
  • 本文详细介绍了如何正确设置和操作玻璃冰柜,以确保其达到理想的制冷效果。通过了解指示灯的工作原理及化霜周期,用户可以更好地维护冷柜的性能。 ... [详细]
  • 当地时间1月14日,德国南部巴尔德斯旺格(Balderschwang)的一家酒店遭遇了严重的雪崩袭击。大量积雪涌入建筑内部,导致建筑物受损。近期,欧洲阿尔卑斯地区多个国家因暴雪天气频繁发生雪崩,多地已发布最高级别的雪崩预警。 ... [详细]
  • 本文详细介绍了如何在 ASP 中实现字符串截取功能。代码简洁高效,适用于需要对标题或文本进行长度限制的场景,如页面布局中标题显示字符数的控制。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文深入解析了宋代著名诗人刘克庄的《郊游》,探讨其诗歌中的自然景物描写与情感表达,揭示诗人的内心世界。 ... [详细]
  • 本文详细解读了瀍字在新华字典中的读音、释义、笔画结构以及常用组词,并探讨其在起名中的应用。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
  • 本文介绍如何在 Unity 的 XML 配置文件中,将参数传递给自定义生命周期管理器的构造函数。我们将详细探讨 CustomLifetimeManager 类的实现及其配置方法。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 在使用SQL Server进行动态SQL查询时,如果遇到LIKE语句无法正确返回预期结果的情况,通常是因为参数传递方式不当。本文将详细探讨这一问题,并提供解决方案及相关的技术背景。 ... [详细]
  • 本文介绍了如何使用PHP代码实现微信平台的媒体素材上传功能,详细解释了API接口的使用方法和注意事项,确保文件路径正确以避免常见的错误。 ... [详细]
  • 本文详细解析了‘蠕’字在新华字典中的定义、发音、笔画结构,并探讨其在常用词汇和命名中的应用。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
author-avatar
丝家发艺
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有