为了账号安全,请及时绑定邮箱和手机立即绑定

JMeter初识学习:新手入门教程

概述

本文介绍了JMeter初识学习的相关内容,包括JMeter的简介、主要用途、优势和局限性,环境搭建步骤以及基本操作。文章详细讲解了下载和安装JMeter的方法,并介绍了其界面和常用组件的使用。通过一系列的示例和实践,帮助读者更好地理解和应用JMeter进行Web应用测试。

JMeter初识学习:新手入门教程
JMeter简介

JMeter是什么

JMeter是Apache组织开发的一款开源的负载测试工具,主要用于测试Web应用和其他客户端-服务器架构的应用程序。它可以帮助开发者和测试人员模拟多种负载和性能测试场景,以评估系统的响应时间、吞吐量和稳定性。

JMeter的主要用途

  1. Web应用测试:JMeter可以模拟多种Web应用的负载,包括静态和动态资源,如HTML、CSS、JavaScript、数据库查询等。
  2. 功能测试:可以验证Web应用是否满足特定的功能需求,包括表单提交、文件下载等。
  3. 性能测试:评估系统在高负载下的表现,包括并发用户数、响应时间、吞吐量等。
  4. 压力测试:测试系统在极端情况下的性能表现,如在高并发请求下的系统稳定性。
  5. 界面测试:测试Web应用的用户界面,包括响应时间和页面加载速度等。

JMeter的优势和局限性

优势

  1. 开源免费:JMeter是一个开源项目,可以免费下载和使用,非常适合预算有限的团队和个人。
  2. 跨平台:可以在多种操作系统上运行,包括Windows、Linux和Mac OS。
  3. 高度可定制:通过插件和脚本可以扩展其功能,满足各种测试需求。
  4. 非侵入性:测试时不需要修改被测系统的代码。
  5. 强大的社区支持:拥有活跃的用户社区,可以获取到大量的资源和帮助。

局限性

  1. 不支持GUI脚本编写:JMeter主要用于通过图形界面进行测试设置,不支持GUI脚本编写,对于复杂的测试场景可能需要手动配置。
  2. 内存消耗:在进行大规模并发测试时,JMeter可能会消耗大量的系统资源,尤其是内存。
  3. 学习曲线:对于初学者来说,理解和使用JMeter可能需要一些时间,需要熟悉其界面和配置选项。
JMeter环境搭建

JMeter的下载

JMeter可以在Apache官方网站上找到最新的版本。访问Apache JMeter下载页面,选择合适的版本下载。目前最新版本为5.4.1。

JMeter的安装步骤

安装JMeter非常简单,具体步骤如下:

  1. 下载JMeter:从Apache官方网站下载JMeter压缩包。
  2. 解压缩:将下载的压缩包解压缩到指定目录。
  3. 配置环境变量:可选步骤,为了方便使用可以在环境变量中设置JMeter的路径。
  4. 运行JMeter:双击jmeter.sh(Linux/Mac)或jmeter.bat(Windows)文件启动JMeter。

JMeter的界面介绍

启动JMeter后,会看到一个包含多个菜单和工具条的界面:

  • 菜单栏:包含文件、编辑、插入等菜单选项。
  • 工具条:提供了常用的操作按钮,如新建测试计划、保存、运行等。
  • 工作区:包含测试计划树形结构和测试组件。
  • 监听器:用于查看测试结果的组件,如查看结果树、聚合报告等。
JMeter基本操作

创建测试计划

  1. 打开JMeter:启动JMeter后,点击菜单栏中的文件 -> 新建创建一个新的测试计划。
  2. 配置测试计划:在新建的测试计划上右键点击,选择添加 -> 测试计划 -> 测试计划,配置测试计划名称等基本信息。

添加线程组

  1. 右键点击测试计划:在测试计划上右键点击,选择添加 -> 线程(用户) -> 线程组
  2. 配置线程组:在弹出的对话框中设置线程数(用户数)、循环次数等参数。

添加采样器

  1. 右键点击线程组:在线程组上右键点击,选择添加 -> 取样器 -> HTTP请求
  2. 配置HTTP请求:输入请求URL,选择请求方法(GET/POST等),设置参数等。
JMeter常用组件详解

HTTP请求

  1. 添加HTTP请求:在测试计划中右键点击线程组,选择添加 -> 取样器 -> HTTP请求
  2. 配置HTTP请求:设置请求URL、方法(GET/POST等)、协议(HTTP/HTTPS)、路径等。
  3. 示例代码

    <HTTPSamplerGui>
       <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
       <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
       <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
       <stringProp name="HTTPSampler.domain">example.com</stringProp>
       <stringProp name="HTTPSampler.port">80</stringProp>
       <stringProp name="HTTPSampler.path">/path</stringProp>
       <stringProp name="HTTPSampler.method">GET</stringProp>
    </HTTPSamplerGui>

后置处理器

  1. 添加后置处理器:在HTTP请求采样器上右键点击,选择添加 -> 后置处理器 -> 后置处理器
  2. 配置后置处理器:选择需要的后置处理器类型,如正则表达式提取器、JSR223后置处理器等。
  3. 示例代码

    <RegexExtractor>
       <boolProp name="RegexExtractor.useHeaders">false</boolProp>
       <stringProp name="RegexExtractor.refName">myVariable</stringProp>
       <stringProp name="RegexExtractor.regex">your_regex_pattern</stringProp>
       <stringProp name="RegexExtractor.template">$1$</stringProp>
       <stringProp name="RegexExtractor.default">not-found</stringProp>
    </RegexExtractor>

断言

  1. 添加断言:在HTTP请求采样器上右键点击,选择添加 -> 断言 -> 断言
  2. 配置断言:选择需要的断言类型,如响应断言、响应代码断言等。
  3. 示例代码

    <ResponseAssertion>
       <stringProp name="ResponseAssertion.testType">1</stringProp>
       <stringProp name="ResponseAssertion.id">12345</stringProp>
       <stringProp name="ResponseAssertion.responseAssertionErrors">false</stringProp>
       <stringProp name="ResponseAssertion.responseAssertionIgnore">false</stringProp>
       <stringProp name="ResponseAssertion.testString">expected content</stringProp>
       <stringProp name="ResponseAssertion.useRegularExpression">true</stringProp>
       <stringProp name="ResponseAssertion.useRespBody">true</stringProp>
       <boolProp name="ResponseAssertion.useRespHeaders">false</boolProp>
       <boolProp name="ResponseAssertion.useRespCode">false</boolProp>
       <stringProp name="ResponseAssertion.not">false</stringProp>
    </ResponseAssertion>

监听器

  1. 添加监听器:在测试计划上右键点击,选择添加 -> 监听器 -> 监听器
  2. 配置监听器:选择需要的监听器类型,如查看结果树、聚合报告、聚合图等。
  3. 示例代码

    <ViewResultsTree>
       <boolProp name="ViewResultsTree.isDisplayRaw">false</boolProp>
       <boolProp name="ViewResultsTree.isDisplayBodyAsRaw">false</boolProp>
       <boolProp name="ViewResultsTree.isDisplayBodyAsIs">false</boolProp>
       <boolProp name="ViewResultsTree.isBodySizeLimited">false</boolProp>
       <longProp name="ViewResultsTree.maxBodySize">0</longProp>
       <boolProp name="ViewResultsTree.isDisplayHeaders">true</boolProp>
       <boolProp name="ViewResultsTree.isDisplayTimers">true</boolProp>
       <boolProp name="ViewResultsTree.isDisplayLatency">true</boolProp>
       <boolProp name="ViewResultsTree.isDisplayEncoding">true</boolProp>
    </ViewResultsTree>
JMeter测试案例实践

简单HTTP请求测试

  1. 创建测试计划:新建一个测试计划,并命名为Simple HTTP Request Test
  2. 添加线程组:在线程组设置中,设置线程数为1,循环次数为1。
  3. 添加HTTP请求:在HTTP请求采样器中配置请求URL、方法等。
  4. 添加监听器:添加一个查看结果树监听器。
  5. 运行测试:点击运行 -> 启动开始测试,查看结果树中显示的响应数据。

参数化请求

  1. 创建测试计划:新建一个测试计划,并命名为Parameterized Request Test
  2. 添加线程组:在线程组设置中,设置线程数为1,循环次数为1。
  3. 添加HTTP请求:在HTTP请求采样器中配置请求URL、方法等,并添加参数化设置。
  4. 添加监听器:添加一个查看结果树监听器。
  5. 运行测试:点击运行 -> 启动开始测试,查看结果树中显示的响应数据。

测试报告生成与分析

  1. 创建测试计划:新建一个测试计划,并命名为Test Report Generation
  2. 添加线程组:在线程组设置中,设置线程数为10,循环次数为10。
  3. 添加HTTP请求:在HTTP请求采样器中配置请求URL、方法等。
  4. 添加监听器:添加一个聚合报告监听器。
  5. 运行测试:点击运行 -> 启动开始测试,查看聚合报告中的统计数据,包括吞吐量、响应时间等。
  6. 分析报告:分析测试报告中的数据,评估系统的性能表现。
JMeter常见问题与解决方案

常见错误提示

  1. 采样器未配置:检查HTTP请求采样器是否正确配置了请求URL和其他参数。
  2. 线程组未配置:检查线程组是否正确设置了线程数和循环次数。
  3. 响应断言失败:检查响应断言设置是否正确,并确保实际响应内容与预期一致。
  4. 监听器未显示数据:检查监听器是否正确配置,确保选择的监听器可以显示所需的数据。

常见问题解决方法

  1. 采样器未配置

    • 检查HTTP请求采样器是否正确配置了请求URL。
    • 确保所有必需的参数(如路径、方法等)都已正确设置。
    • 示例代码:

      <HTTPSamplerGui>
       <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
       <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
       <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
       <stringProp name="HTTPSampler.domain">example.com</stringProp>
       <stringProp name="HTTPSampler.port">80</stringProp>
      . . .
      </HTTPSamplerGui>
  2. 线程组未配置

    • 检查线程数和循环次数是否正确设置。
    • 确保线程组已正确添加到测试计划中。
    • 示例代码:

      <ThreadGroup>
       <stringProp name="ThreadGroup.onetransactionper_iteration">true</stringProp>
       <stringProp name="ThreadGroup.truncate_trace">true</stringProp>
       <boolProp name="ThreadGroup.scheduler">false</boolProp>
       . . .
      </ThreadGroup>
  3. 响应断言失败

    • 检查响应断言设置是否正确,确保正则表达式或其他断言条件与预期一致。
    • 重新测试,确保实际响应内容与预期一致。
    • 示例代码:

      <ResponseAssertion>
       <boolProp name="Assertion.isEnabled">true</boolProp>
       <stringProp name="Assertion.testType">1</stringProp>
       <stringProp name="Assertion.id">12345</stringProp>
       <boolProp name="Assertion.useRegularExpression">true</boolProp>
       <stringProp name="Assertion.testString">expected content</stringProp>
       <boolProp name="Assertion.ignoreStatus">false</boolProp>
       <boolProp name="Assertion.useRespBody">true</boolProp>
       <boolProp name="Assertion.useRespHeaders">false</boolProp>
       <boolProp name="Assertion.useRespCode">false</boolProp>
       <stringProp name="Assertion.not">false</stringProp>
      </ResponseAssertion>
  4. 监听器未显示数据

    • 确保监听器已正确添加到测试计划中。
    • 重新测试,确保数据已生成。
    • 示例代码:

      <ViewResultsTree>
       <boolProp name="ViewResultsTree.isDisplayRaw">false</boolProp>
       <boolProp name="ViewResultsTree.isDisplayBodyAsRaw">false</boolProp>
       <boolProp name="ViewResultsTree.isDisplayBodyAsIs">false</boolProp>
       <boolProp name="ViewResultsTree.isBodySizeLimited">false</boolProp>
       <longProp name="ViewResultsTree.maxBodySize">0</longProp>
       <boolProp name="ViewResultsTree.isDisplayHeaders">true</boolProp>
       <boolProp name="ViewResultsTree.isDisplayTimers">true</boolProp>
       <boolProp name="ViewResultsTree.isDisplayLatency">true</boolProp>
       <boolProp name="ViewResultsTree.isDisplayEncoding">true</boolProp>
      </ViewResultsTree>

通过以上步骤,可以有效地使用JMeter进行各种Web应用测试。希望这篇教程能帮助你更好地理解并使用JMeter。如果你有任何疑问或需要进一步的帮助,请参考JMeter的官方文档或加入JMeter社区获取更多支持。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消