【JMeter】(2)---HTTP压测

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 【JMeter】(2)---HTTP压测

一、创建线程组

       右击-->添加-->Threads(Users)-->线程组

下面对比较重要的几个参数,讲解下:

        名称:就是给你这个线程组起名字。

      线程数:指压力测试时候模拟几个用户测试接口。

  Ramp-Up:这里指几秒运行完上面的模拟用户数。

   循环次数:指循环几次线程数。

总的理解下:上面的意思是2秒内模拟5个用户请求API,循环2次。

 

二、添加HTTP

     在线程组上右击-->添加-->Sampler-->HTTP请求

在java代码中添加API接口


    @RequestMapping(value = "users", method = RequestMethod.GET)   
    public @ResponseBody Object users() {    
    List<String> userList = new ArrayList<>();     
    userList.add("张三");      
    userList.add("李四");   
    userList.add("王五");      
    System.out.println("获取用户接口......");     
    return userList;   
    }


     

    三、查看结果树

          在线程组上右击-->添加-->监听器-->察看结果树

       运行JMter查看结果:

       通过测试可以发现,已经向users接口请求10次,10次都成功,也都有返回数据。

     

    四、响应断言

    响应断言: 断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。

    增加断言: 在线程组上右击--> 添加--> 断言 --> 响应断言

    apply to(应用范围):

        Main sample only: 仅当前父取样器 进行断言,一般一个请求,如果发一个请求会触发多个,则就有sub sample(比较少用)

    常用响应字段:

          响应文本:即响应的数据,比如json等文本

           响应代码:http的响应状态码,比如200,302,404这些

           响应信息:http响应代码对应的响应信息,例如:OK, Found

          Response Header: 响应头

    模式匹配规则:

          包括:包含在里面就成功

      equals:完全匹配,区分大小写

    再次运行JMeter,查看结果:

    发现http请求报错,因为返回数据不包含断言中所设定的数据。(一般调试阶段可以设置断言,但真实压力测试情况下建议不要开启断言和查看结果树,因为会因为性能问题,使测试结果不十分准确)

     

    五、聚合报告

        线程组右击-->添加->监听器->聚合报告(Aggregate Report)

         lable: sampler的名称

         Samples: 一共发出去多少请求,例如5个用户,循环2次,则是 10

         Average: 平均响应时间

           Median: 中位数,也就是 50% 用户的响应时间

       90% Line : 90% 用户的响应不会超过该时间 (90%的样本不超过这个时间。剩下的样本至少与此一样长)

       95% Line : 95% 用户的响应不会超过该时间

       99% Line : 99% 用户的响应不会超过该时间

                min : 最小响应时间

               max : 最大响应时间

           Error%:错误的请求的数量/请求的总数

    Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second) 可类比为qps

           KB/Sec: 每秒接收数据量

     

    六、自定义变量

         为什么使用:很多变量在全局中都有使用,或者测试数据更改,可以在一处定义,四处使用比如服务器地址你如果每一个里面都手动输入127.0.0.1,那万一那天服务器地址变了,总不能在一个一个改服务器地址

    吧,那么这里我们可以写在全局配置文件中。

        线程组->add -> Config Element(配置原件)-> User Definde Variable(用户定义的变量)

    上面配置了两个全局变量:

    引用方式${XXX},在接口中变量中使用:

     

    七、CSV可变参数压测

    作用:你在API接口传入参数的时候,不可能100次请求都传一样的参数,为了更真是的模拟用户,所传的参数当然也是随机的,这样才更真实。

    线程组右击-->add -> Config Element(配置原件)--> CSV data set config (CSV数据文件设置)

    比较关键的参数:

          文件名:就是你引用的文件地址(因为大量的数据都会写在外部文件中)

       变量名称:如果有多个用逗号隔开

           分隔符:csv默认用逗号,如果是txt文件这个需要设置符号

    1、user.csv文件

    2、HTTP请求

    3、API接口


      @RequestMapping(value = "login", method = RequestMethod.POST)    
      public @ResponseBody Object login(String name, String pwd) {      
      List<String> userList = new ArrayList<>();        
      userList.add(name);      
      userList.add(pwd);       
      userList.add(name.length()+"");   
      //输出客户端传来的值       
      System.out.println("name:"+name+"----pwd:"+pwd);     
      return userList;   
      }


      测试运行(看java控制台)

      相关实践学习
      通过性能测试PTS对云服务器ECS进行规格选择与性能压测
      本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
      目录
      相关文章
      |
      27天前
      |
      测试技术 数据库 UED
      Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
      【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
      51 2
      |
      2月前
      |
      测试技术 持续交付 Apache
      深度挖掘:Python性能测试中JMeter与Locust的隐藏技能🔍
      【8月更文挑战第5天】随着软件规模扩大,性能测试对系统稳定性至关重要。Apache JMeter和Locust是两大主流工具,各有千秋。本文探索它们在Python环境下的进阶用法,挖掘更多性能测试潜力。JMeter功能强大,支持多种协议,可通过命令行模式执行复杂测试计划,并与Python集成实现动态测试数据生成。Locust基于Python,通过编写简洁脚本模拟HTTP请求,支持自定义请求及与Python库深度集成。掌握这些技巧可实现高度定制化测试场景,有效识别性能瓶颈,提升应用稳定性。
      115 1
      |
      2月前
      |
      缓存 测试技术 Apache
      告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
      【8月更文挑战第5天】性能测试确保应用高负载下稳定运行。Apache JMeter与Locust是两大利器,助力识别解决性能瓶颈。本文介绍这两款工具的应用与优化技巧,并通过实战示例展示性能测试流程。首先,通过JMeter测试静态与动态资源;接着,利用Locust的Python脚本模拟HTTP请求。文中提供安装指南、命令行运行示例与性能优化建议,帮助读者掌握性能测试核心技能。
      94 0
      |
      2月前
      |
      消息中间件 Java 测试技术
      Python性能测试全攻略:JMeter与Locust,双剑合璧斩断性能瓶颈🗡️
      【8月更文挑战第4天】在软件开发中,性能至关重要。对Python开发者来说,掌握高效性能测试方法尤为关键。本文将带您探索性能测试工具JMeter与Locust的强大功能。JMeter作为Java世界的巨擘,以其强大功能和灵活性在性能测试领域占有一席之地,不仅适用于Java应用,也能测试Python Web服务。
      86 0
      |
      22天前
      |
      缓存 Java 测试技术
      谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
      使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
      谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
      |
      26天前
      |
      测试技术 持续交付 Apache
      Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
      【9月更文挑战第10天】随着软件应用的不断扩展,性能测试成为确保系统稳定运行的关键环节。本文通过对比Apache JMeter和Locust,探讨了如何在Python环境中利用这两款工具挖掘更多性能测试潜力。JMeter是一款成熟且功能强大的开源工具,支持多种协议,适用于各种应用的测试;而Locust则基于Python,通过简单脚本模拟HTTP请求,更适合Web应用测试。
      59 2
      |
      1月前
      |
      缓存 测试技术 Apache
      告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
      【9月更文挑战第5天】性能测试是确保应用在高负载下稳定运行的关键。本文介绍Apache JMeter和Locust两款常用性能测试工具,帮助识别并解决性能瓶颈。JMeter适用于测试静态和动态资源,而Locust则通过Python脚本模拟HTTP请求。文章详细讲解了安装、配置及使用方法,并提供了实战案例,帮助你掌握性能测试技巧,提升应用性能。通过分析测试结果、模拟并发、检查资源使用情况及代码优化,确保应用在高并发环境下表现优异。
      47 5
      |
      28天前
      |
      消息中间件 监控 测试技术
      惊呆了!Python性能测试高手都用这些神器:JMeter+Locust,效率翻倍📈
      【9月更文挑战第8天】在软件开发中,性能测试对确保应用稳定性和高效运行至关重要。对于Python开发者而言,选择合适的性能测试工具能显著提升测试效率并精准定位性能瓶颈。本文深入探讨了JMeter和Locust这两款工具的独特优势。JMeter作为跨平台的性能测试工具,支持多种协议,具备高度可定制性和扩展性;而Locust则专为Python应用设计,利用协程实现高并发,提供实时监控和分布式测试功能。两者结合使用,可在实际项目中实现1+1&gt;2的效果,帮助开发者构建全面高效的测试方案,保障应用稳定运行。
      65 1
      |
      1月前
      |
      测试技术 Apache 数据库
      从慢如蜗牛到飞一般的感觉!Python性能测试实战,JMeter&Locust助你加速🏃‍♂️
      【9月更文挑战第6天】你的Python应用是否曾因响应缓慢而让用户望而却步?借助JMeter与Locust,这一切将迎刃而解。JMeter作为Apache基金会的明星项目,以其强大的跨平台和多协议支持能力,成为性能测试领域的魔法师;而Locust则以Python的简洁与高效,让性能测试更加灵活。通过实战演练,你可以利用这两款工具轻松识别并解决性能瓶颈,优化数据库查询、网络配置等,最终使应用变得敏捷高效,轻松应对高并发挑战。
      15 1
      |
      1月前
      |
      测试技术 持续交付 Apache
      性能测试不再愁!Python+JMeter+Locust,三步打造高性能应用
      【9月更文挑战第4天】随着互联网的发展,软件性能成为衡量应用成功的关键。性能测试确保应用稳定高效运行,但复杂环境和多样需求带来了挑战。Python、JMeter和Locust三款工具可构建高效全面的性能测试方案。Python语法简洁,库丰富;JMeter提供图形界面,支持多种协议;Locust基于Python,简单易用且高度可扩展。结合三者,能满足复杂需求,保证灵活性与高效性。无论初学者还是资深工程师,都能确保应用高性能运行。
      27 1
      下一篇
      无影云桌面