Jmeter基本使用

一、相关软件

Jmeter:apache-jmeter-5.4.1
监控插件ServerAgent:ServerAgent-2.2.3

二、操作

1、ServerAgent

在服务器机器上操作,赋权限,启动。

chmod 777 startAgent.sh
./startAgent.sh

在这里插入图片描述

注意:
默认端口是4444,重启有可能会变,监听的时候要填对端口。

2、Jmeter

下载地址:http://jmeter.apache.org/download_jmeter.cgi

使用命令 sh jmeter 启动,会启动jmeter的GUI页面。

(1)新建线程组

在“测试计划”右键,添加-线程-线程组。
在这里插入图片描述

线程组配置

如下图所示:
并发线程数:50
Ramp-Up时间:1 1s启动多少个线程
调度器-持续时间:300s 表示并发执行持续多久
在这里插入图片描述

(2)添加http请求

在这里插入图片描述

完成对请求api的参数填写。
在这里插入图片描述

(3)配置监听器

在这里插入图片描述

3-1 配置察看结果树

可以看到每个http请求的执行信息,请求和响应等。
在这里插入图片描述
在这里插入图片描述

3-2 聚合报告

将每次启动结果进行统计分析,并以图表方式呈现。
在这里插入图片描述
在这里插入图片描述

3-3 PerfMon Metrics Collector

选项-Plugins Manager
在这里插入图片描述

安装插件PerfMon

在这里插入图片描述
在这里插入图片描述

配置需要监听服务器的ip、 serverAgent的端口,以及要监控的维度(例如CPU、IO等)。下方是对应监控内容的折线图。

在这里插入图片描述

在这里插入图片描述

注意:

打开防火墙;
调大连接数。

jmeter启动方式有两种。
一是通过GUI页面的启动在这里插入图片描述
按钮运行。

二是通过命令执行。【推荐使用】
在这里插入图片描述

配置完测试计划后,点击保存。会在jmeter的bin目录下生产一个扩展名为.jmx的文件。

大致内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.4.1">
  <hashTree>
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="测试计划" enabled="true">
      <stringProp name="TestPlan.comments"></stringProp>
      <boolProp name="TestPlan.functional_mode">false</boolProp>
      <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
      <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
      <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="TestPlan.user_define_classpath"></stringProp>
    </TestPlan>
    <hashTree>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="线程组" enabled="true">
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <intProp name="LoopController.loops">-1</intProp>
        </elementProp>
        <stringProp name="ThreadGroup.num_threads">50</stringProp>
        <stringProp name="ThreadGroup.ramp_time">1</stringProp>
        <boolProp name="ThreadGroup.scheduler">true</boolProp>
        <stringProp name="ThreadGroup.duration">300</stringProp>
        <stringProp name="ThreadGroup.delay"></stringProp>
        <boolProp name="ThreadGroup.same_user_on_next_iteration">false</boolProp>
      </ThreadGroup>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP请求" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value"></stringProp>
                <stringProp name="Argument.metadata"></stringProp>
                <boolProp name="HTTPArgument.use_equals">false</boolProp>
                <stringProp name="Argument.name"></stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain”>your IP address</stringProp>
          <stringProp name="HTTPSampler.port”>your port</stringProp>
          <stringProp name="HTTPSampler.protocol">http</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
          <stringProp name="HTTPSampler.path”>your api address</stringProp>
          <stringProp name="HTTPSampler.method”>your method type</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
          <stringProp name="HTTPSampler.response_timeout"></stringProp>
        </HTTPSamplerProxy>
        <hashTree/>
        <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="察看结果树" enabled="true">
         //略
        </ResultCollector>
        <hashTree/>
        <ResultCollector guiclass="StatVisualizer" testclass="ResultCollector" testname="聚合报告" enabled="true">
          //略
        </ResultCollector>
        <hashTree/>
        <kg.apc.jmeter.perfmon.PerfMonCollector guiclass="kg.apc.jmeter.vizualizers.PerfMonGui" testclass="kg.apc.jmeter.perfmon.PerfMonCollector" testname="jp@gc - PerfMon Metrics Collector" enabled="true">
         //略
        </kg.apc.jmeter.perfmon.PerfMonCollector>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
</jmeterTestPlan>

使用命令运行测试计划,会在bin下生成一个结果文件 result.jtl。可以在gui页面导入结果文件进行查看。
sh jmeter -n -t HTTP请求.jmx -l result.jtl

在这里插入图片描述

常见问题

  • NoRouteToHostException
    调大socket连接数
  • jmeter java.net.bindexception
    地址已在使用 端口不够用
  • Perfmon plugin error connection refused
    端口配置有误
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter 是一款功能强大的性能测试工具,可以用于测试 Web 应用程序或其他类型的软件。以下是 JMeter基本使用方法: 1. 下载和安装:首先,你需要从 JMeter 官方网站(https://jmeter.apache.org/)下载最新版本的 JMeter,并根据官方文档进行安装。 2. 创建测试计划:打开 JMeter 后,创建一个新的测试计划。测试计划是一个容器,用于组织和配置你的测试。 3. 添加线程组:在测试计划中,添加一个线程组。线程组是一组模拟用户,用于发送请求给被测应用程序。 4. 配置线程组参数:配置线程组的参数,如线程数、循环次数等。你可以根据需要进行调整。 5. 添加 Sampler:在线程组下添加 Sampler。Sampler 用于发送不同类型的请求给被测应用程序,如 HTTP 请求、FTP 请求等。 6. 配置 Sampler 参数:根据你要测试的应用程序类型,配置 Sampler 的参数。例如,如果你要发送 HTTP 请求,你需要设置请求的 URL、方法、参数等。 7. 添加 Listener:在线程组下添加 Listener。Listener 用于收集和显示测试结果,例如生成报告、查看图表等。 8. 运行测试计划:保存并运行你的测试计划。JMeter 将模拟并发送请求给被测应用程序,并记录响应时间、吞吐量等性能指标。 这是 JMeter基本使用方法,你可以根据具体的测试需求和应用程序类型进行更详细的配置和调整。希望对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值