jmeter使用心得(一)

news/2025/2/23 16:00:21

jmeter作为接口测试的常用工具之一,在我们的测试中经常会用到,往期的文章中,我们也分享过jmeter的各种功能和用法,基本覆盖了方方面面,可以满足各种接口测试的需求。但实际测试中我们也会发现,jmeter这么强大的一个工具,具备这么多的功能,然而某些情况下反倒会让我们觉得用起来不是那么的顺手,甚至导致测试效率降低和工作量增加。本期文章,小编将着眼于jmeter的一些使用心得,重点分享如何更简单地利用jmeter进行测试以及如何避免一些问题的发生。

jmeter_8">一、jmeter在测试中的定位

对于测试工具或测试框架,我们可能会觉得,如果一个工具就能满足所有的测试需求就好了,测试数据生成、自动测试、结果分析、报告产出、日志回溯等等,全部由一个工具来实现。于是,当了解到jmeter有这么强大的功能之后,我们很自然就去研究如何用jmeter来实现上述种种功能。然后经过长时间调研发现,jmeter确实可以做到,因为jmeter有各种控制器、取样器、断言、监听器,甚至还有BeanShell这样可以在中间某个环节自己写代码来处理一些逻辑的方法。

第一感觉,好像确实这些工作都用jmeter来实现就好了,但实际上,这里的坑却有不少。举个最简单的例子,当我们用jmeter来处理请求数据、返回数据时,每个请求相当于会在jmeter这里增加额外的耗时和资源占用,如果处理的逻辑比较复杂,比如写个超级复杂的BeanShell,这些额外的开销可能会很大程度上影响我们测试的结果。小编曾经遇到过,为了实现一个对返回结果进行判断和分类的功能,导致测试得到的接口QPS比之前下降了很多,虽然最后实现了将返回结果进行自动化分析、归类等操作,但最重要的性能指标却出现了偏差,还得返工再测,得不偿失。

所以,在这里,我们需要明确下jmeter在测试中的定位,小编认为,jmeter最重要的功能是实现自动化并发测试+日志收集,而并非是用来做数据处理和统计的。在jmeter接口测试的脚本中,如果存在很多的与请求无关的逻辑处理,在这里强烈建议大家对脚本进行精简,避免出现问题。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:1150305204【暗号:csdn000】

jmeter_27">二、jmeter线程组的使用

利用jmeter的线程组,我们可以很方便地对接口进行并发测试,无论是性能测试还是稳定性测试,我们都可以用线程组来实现。jmeter一个测试计划中可以添加多个线程组,每个线程组都可以独立起若干个线程进行测试。于是有时我们会在测某个服务时,把该服务的所有接口分成不同线程组放到测试计划下,期望实现“一个脚本测所有”。但往往这样做又会产生一些意想不到的问题。小编在实际测试中就遇到过类似定时器跨线程组使用的时间问题,多个线程组共享变量导致的问题、多个线程组的启停问题等等,给测试带了比较大的困扰,虽然每次可以找到解决方法,但这样频繁踩坑也着实不爽。

为了避免麻烦,后来我逐渐换了一种设计脚本的方式,那就是尽量在一个脚本中只使用一个线程组,不同的接口,如果互不关联,就分成不同的脚本来进行测试。这样看似增加了脚本的数量,但实际上却大大优化了设计、修改脚本以及执行测试的效率和自由度。测试时,每个接口的测试都是单独的进程,彼此之间不会产生影响,且可以做到每个接口的测试随起随停,在NO-GUI模式下操作起来非常方便。

图片

一个极简的jmeter脚本,只需一个线程组、一个请求

图片

三、使用NO-GUI模式进行测试

jmeter支持使用GUI和NO-GUI两种模式进行测试,这两种模式的各有特点。在GUI模式下,我们可以通过图形化界面直观地进行测试脚本的设计以及通过监听器实时观察测试结果,使用起来十分方便;而NO-GUI模式与GUI模式执行测试脚本的方式是相同的,但由于不显示图形界面,也不实时打印测试结果,使得测试中jmeter本身对资源占用的影响降到最低,在并发测试中可以很大程度得减少对性能结果的干扰。在公司环境中,性能好的机器一般都使用centos等linux操作系统,几乎不会用到图形界面,加之为了获得更准确的测试结果,在进行大并发测试时,我们一般会采用NO-GUI模式进行测试。

所以,在脚本设计阶段,我们依然可以在PC上使用GUI模式进行设计,发挥图形化设计的优势。当脚本设计完成后,我们只需将脚本放到linux机器上,然后用NO-GUI模式执行,以最大程度保证获得更准确的测试结果。测试完成后,如果需要在GUI模式下查看测试结果或图表信息,将NO-GUI模式下产生的日志文件在GUI模式下导入即可。

文章来源:https://blog.csdn.net/m0_65111097/article/details/135278559
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.niftyadmin.cn/n/5303472.html

相关文章

05-微服务-RabbitMQ-概述

RabbitMQ 1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应&am…

Unity中URP下统一不同平台下的z值

文章目录 前言一、ComputeFogFactor 来计算雾效混合因子二、UNITY_Z_0_FAR_FROM_CLIPSPACE 来统一计算不同平台下的Z值1、DirectX平台2、GL平台下(在Unity.2022.LTS下,该功能没有完善)3、Opengl下 前言 在之前的文章中,我们实现了URP下的雾效…

Android Framework | Linux 基础知识:入门指南

Android Framework | Linux 基础知识:入门指南 进行Android Framework开发需要具备基本的Linux基本知识,下面是一份Linux基础知识入门指南,希望对你有所帮助! 1. 简介 Linux 是一种免费、开源的操作系统,它是由芬兰…

【电商项目实战】实现订单超时支付取消

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《电商项目实战》。🎯🎯 &am…

AI模型必选

国内AI人工智能站点 下面来分享一下国内的AI网站 最底下有直接的入口 1、国内使用chatGPT接口二次开发的网站,有很多我随便发一个 https://chat18.aichatos.xyz/#/chat/2、“通义千问”:阿里云推出的一个超大规模的语言模型 https://tongyi.aliyun.…

el-date-picker日期时间选择器限制可选的日期范围

业务场景&#xff1a;需要限制日期时间选择器可选择的日期&#xff0c;有两种模式&#xff0c; 一种是已知范围&#xff0c;只能选已知范围内的日期&#xff0c; 另一种是知道最近天数&#xff0c;只能选今天往前的天数内的日期&#xff0c;超出不能选。 <el-date-picker v-…

2023 年度 CSDN ~ 算力鬼才信 年度报告总结

开篇&#xff1a; 时间过得真快&#xff0c;不觉中&#xff0c;已经在CSDN 平台发布自己的学习总结已过两年&#xff0c;我依稀记得自己在平台上写出的第一骗文章&#xff1a; “CSDN 解决SQLserver 报错提示无法绑定由多个部分组成的标识符”&#xff0c;从这里出发梦想起航…

98 双指针求接雨水问题

问题描述&#xff1a;给定n个非负整数表示每个宽度为1的柱子的高度&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 三指针求解&#xff1a;首先找到最高的柱子的位置&#xff0c;然后将其一分为二&#xff0c;统计左侧的蓄水量和右边的蓄水量&#xff0c;…