jmeter使用心得(一)

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

一、jmeter在测试中的定位

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

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

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

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

二、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模式下导入即可。

  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: jmeter是一款功能强大的压力测试工具,它可以通过模拟大量用户来测试网站的性能。使用jmeter需要按照以下步骤:1. 下载并安装jmeter;2. 启动jmeter,创建一个新的测试计划;3. 添加要测试的网站的URL;4. 设置要模拟的用户的数量;5. 运行测试计划,查看结果。 ### 回答2: JMeter是一款开源的性能测试工具,可用于模拟多种负载条件下的应用程序性能测试、接口测试和负载均衡测试。下面是一个简单的JMeter使用说明: 1. 下载和安装:首先,从JMeter官方网站上下载最新版本的JMeter,并按照安装向导完成安装过程。 2. 创建测试计划:打开JMeter,创建一个新的测试计划。测试计划是JMeter中的最高级别的概念,所有测试组件(线程组、控制器、监听器等)都将被添加到测试计划中。 3. 添加线程组:线程组定义了测试计划中的并发用户数和循环次数。在测试计划中右键点击,选择添加 -> Threads (Users) -> Thread Group,然后设置线程数、循环次数、启动延迟等参数。 4. 添加配置元件:在线程组中,可以添加配置元件来设置测试环境。例如,可以添加HTTP请求默认值配置元件,设置服务器地址、端口号等信息。 5. 添加取样器:取样器用于模拟用户的实际请求。常见的取样器有HTTP请求等。在线程组中右键点击,选择添加 -> Sampler -> HTTP请求,然后设置服务器地址、方法、路径等信息。 6. 添加监听器:监听器用于收集和保存测试结果。例如,可以添加聚合报告监听器,用于生成测试报告。在测试计划中右键点击,选择添加 -> Listener -> Aggregate Report。 7. 运行测试计划:最后,点击工具栏上的“运行”按钮来启动测试计划。JMeter将开始发送请求,模拟用户的行为,并记录测试结果。 8. 查看测试结果:完成测试后,可以通过监听器或查看测试报告来查看测试结果。可以根据需要进行结果分析,并对应用程序性能进行优化。 请注意,以上只是JMeter的基本使用说明,要充分发挥JMeter的功能,还需要深入研究和实践。希望这个简单的使用说明能够帮助你入门JMeter使用。 ### 回答3: JMeter是一个开源的压力测试工具,可以用来测试Web应用程序和服务器性能。下面是一个简单的JMeter使用说明: 1. 下载和安装:首先,你需要从JMeter的官方网站下载并安装JMeter。根据你的操作系统选择对应的安装包,并按照提示进行安装。 2. 创建测试计划:启动JMeter后,你将看到一个空白的测试计划。右键点击测试计划,选择"添加",然后选择"Threads (Users)",输入你想模拟的用户数。 3. 添加线程组:在左侧的面板中,右键点击测试计划,选择"添加",然后选择"逻辑控制器",再选择"线程组"。在线程组中,你可以设置各种参数,如线程数、启动时间、循环次数等。 4. 添加HTTP请求:在线程组中,右键点击,选择"添加",然后选择"Sampler",再选择"HTTP请求"。在HTTP请求中,你可以设置请求的URL、方法、参数等。你还可以添加断言和前置处理器来验证请求的返回结果。 5. 添加监听器:在HTTP请求后面,可以添加监听器来收集和分析测试结果。右键点击HTTP请求,选择"添加",然后选择"监听器",再选择"查看结果树"。监听器将显示每个请求的详细信息,包括响应时间、响应代码等。你还可以使用其他类型的监听器来生成报告、图表等。 6. 配置文件:你还可以使用配置文件来设置全局参数,如服务器地址、端口号、数据文件等。右键点击"测试计划",选择"添加",然后选择"配置元件",再选择"HTTP模拟器"。在配置文件中,你可以设置多个HTTP请求,以模拟不同的场景和业务流程。 7. 运行测试:完成上述设置后,点击工具栏上的绿色三角形图标以运行测试。JMeter将模拟指定数量的用户并发送HTTP请求,然后收集和显示测试结果。 总结:以上是JMeter的基本使用步骤,你可以根据自己的需求扩展和优化测试计划。记住,在进行压力测试前,确保你的目标系统已经准备就绪,避免对正式环境造成不必要的影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值