• 0
  • 0
分享

并发测试和持续性压测都是评估系统性能的常用方法,它们可以帮助开发人员发现并解决系统中的性能问题。本文来详细介绍下。

概念

并发测试: 旨在评估系统在同时处理多个用户请求时的性能。在这种 测试 中,系统会暴露于一定数量的用户负载下,并且会记录系统的响应时间、吞吐量和资源利用率等指标。这些指标可以用来确定系统的性能瓶颈,以及在不同负载下系统的表现。

持续性压测: 旨在评估系统在长时间运行或高负载下的性能。在这种测试中,系统会暴露于一定数量的用户负载下,并且会持续一段时间运行,通常在几个小时或几天。这种测试可以用来确定系统在长时间运行下的表现,以及在高负载下系统是否具有可扩展性。

并发测试

在并发测试中,需要选择合适的参数,以模拟实际场景中的用户行为。这些参数包括:

  • 并发用户数:应根据系统的预期使用情况和硬件配置来确定。

  • 请求类型:应选择与实际场景中的用户行为相同或相似的请求类型。

  • 请求频率:应根据实际场景中的用户行为和系统的处理能力来确定。

  • 测试时间:应考虑系统的稳定性和可靠性,通常应持续一段时间。

  • 测试环境:应选择与实际生产环境相同或相似的测试环境。

并发是在线程组下的线程属性中设置的。

1.png

  • 线程数:对应的是并发用户数。10 个线程就是模拟 10 个用户。

  • Ramp-Up 时间 (秒):线程准备时长。对应的是测试时间。如果线程数为 10,准备时长为 10,那么需要 1秒钟启动 1 个线程。

  • 循环次数。如果线程数为 10,循环次数为 10,那么每个线程发送 10 次请求。总请求数为 10*10 = 100。如果勾选了“永远”,那么所有线程会一直发送请求,直到手动停止。

设置不同的负载配置,来查看系统在不同负载下的表现。

持续性压测

持续性压测和并发测试比,主要的不同就是持续时间长。在 JMeter 中持续性压测,只需:

  1. Ramp-Up 设置到比较大的值,比如说 1天(86400秒) 。

  2. 循环次数设置为永远。

2.png

查看报告

JMeter 监听器用于收集测试结果并生成报告。在使用 JMeter 进行性能测试时,监听器非常重要,可以帮助您确定性能瓶颈和优化机会。以下是一些常用的 JMeter 监听器:

  • 聚合报告:提供有关事务响应时间、吞吐量和错误率的信息。

  • 查看结果树:显示每个请求的响应,包括请求头、请求正文和响应正文。

  • 监听器图形结果:将测试结果可视化,以便更轻松地分析性能问题。

  • 断言结果:验证响应是否满足特定条件。

  • 分布式负载测试图:显示不同服务器上的负载情况。

点击运行,可以看到报告。 汇总报告:

bc7ddde57c4945aebcc22bc4ea8f9ea0~tplv-k3u1fbpfcp-zoom-1.png

图形结果:

3.png

总结

在 JMeter 中设置并发是一个重要的过程,需要仔细考虑您要模拟的负载情况以及系统的容量。通过正确设置,可以更好地模拟实际情况并获得更准确的测试结果。

试试其他 API 工具

Apifox 中做并发测试也比较容易。上面的例子,对应在 Apifox 中的实现如下。

创建测试步骤:

4.png

配置并发:

5.png

点击上面的 “运行” 按钮来执行用例,会展示结果报告:

6.png

JMeter 可以用来做性能测试,但在日常工作中,我们还有更多的内容要做: API 设计,API 调试,API Mock 等。我们可能会使用多个工具,但在多个工具之间频繁切换(API 设计工具 Swagger、API 测试工具 JMeter)经常会导致数据不一致和团队协作低效率。

知识扩展:

更多 JMeter 相关使用技巧,可点击下方链接查看。


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • Python3.7+RIDE+Robot Framework环境搭建过程中,安装完robotframework-httplibrary后,加载HttpLibrary.HTTP报错Importing test library "HttpLibrary.HTTP" failed经过网上查询分析,发现HttpLibrary是基于python2.0开发的,高版本的python中可能会存在一些兼容性问题,所以我们就围绕兼容问题进行处理。Ride在应用过程中,遇到的兼容问题还是蛮多的,只能多多记录,以便后用。 一、检查HttpLibra...
            0 0 2174
            分享
          •   简介  Newman 是 Postman 推出的一个 nodejs 库,直接来说就是 Postman 的json文件可以在命令行执行的插件。  Newman 可以方便地运行和测试集合,并用之构造接口自动化测试和持续集成。  安装  安装需要通过 npm 命令来完成,可以直接安装 nodejs,配置环境变量来完成。  在控制台中运行命令:npm install -g newman   验证newman安装成功,使用命令: newman --version  使用  newman 官网帮助文档:https://www.npmjs.com/package/newman   运...
            3 4 1548
            分享
          • 在转型成功之前,我们要先自学两个工具商业web自动化测试工具请自学QTP;QTP的学习可以跳过,我是跳过了的。开源web自动化测试工具请自学Selenium;我当年是先学watir(耗时1周),再学selenium(也耗时1周)。这里主要讲一些能让读者和普通小菜鸟区别开来的东西,这些请和上面的两个工具穿插地学:基础:浏览器前端相关的简单技术基础:就是那些什么html、xml、css、javascript、等等,详见w3c教程网站http://www.w3schools.com/;学习使用一个单元测试框架或者叫做测试执行器,建议testNG,学完testNG,你应该具备了3小时学会任何一个测试执...
            0 0 942
            分享
          •   软件测试行业前景大公开,结果你来预测。链接:http://vote.51testing.com/    记录当时入职CDG的感想  我主要负责内部运营平台的系统测试工作,刚入职,老大先给了我一个运营中心项目迭代流程文档,让我熟悉熟悉内部运营平台。我一看,啊哈,作为软件工程的学生,敏捷开发、双周迭代还是有那么一些了解的(虽然没有实际使用过),然后又发给我了TRPD链接,里面是所有的需求,我一看,晕,本身运营平台就有很多模块,大佬们写需求写的又特别简练(能得到的信息特别少),让我给某个模块写个测试用例,我:???在哪写??在哪测??测试链接呢???  好在我脸皮厚,虽然老大...
            0 0 534
            分享
          • 概述对于post请求 有几种方式。 Content-Type 实体头部用于指示资源的MIME类型 media type 。content-type是http请求头的字段。作为请求头时(post或者put),客户端告诉服务器实际发送的数据类型。对于不同的content-type 发送的数据不太一样,对于服务器端,需要如何获取数据,以及正确解析的方法也是不一样的。下面列出常用的几种 Content-Typeapplication/jsonapplication/x-www-form-urlencodedmultipart/form-datatext/plaintext/xmltext/html1....
            0 0 1109
            分享
      • 51testing软件测试圈微信