• jmeter接口性能测试--定时器使用


    一、性能测试概述

    1.1 概述

    模拟各种正常的、峰值的测试环境,检测程序的各项性能指标是否达标。
    如模拟系统半小时内2000个用户进行登录操作。
    性能指标:如要求登录请求的响应时间在3秒钟以内。

    1.2 作用

    1、项目立项初期帮助技术选型
    2、测试当前程序所能支持的最大负载
    3、发现系统中的性能瓶颈,提高资源利用率
    4、提升用户体验
    .......

    1.3 实现

    使用jmeter的定时器实现时间的性能测试

    二、同步定时器--模拟高并发

    2.1 测试步骤

    例:同一时刻,100个用户访问登录接口,统计高并发情况下平均响应时间以及错误率
    1、新建测试计划、测试组、取样器、结果树,指定线程组的线程数为100,模拟100个用户:

    2、添加定时器的synchronizing timer(同步定时器),实现同时访问:

    3、运行测试计划,即可实现100个用户并发访问登录接口

    4、通过聚合报告组件,可以对结果进行汇总分析

    5、再次点击运行测试计划,在聚合报告中查看结果

    2.2 同步定时器参数详解

    当线程组中设置的线程数(用户数)不能整除同步定时器中设置的“模拟用户组的数量”,且超时时间为0时,会导致程序挂起,即运行测试计划后无法结束运行。

    如线程组设置的线程数为100,同步定时器的“模拟用户组的数量”设置为30,超时时间为0,此时运行测试计划后,程序就会挂起,将会还剩10个线程无法运行:

    如何避免程序挂起

    方式一:修改“模拟用户组的数量”,使得线程组用户数能够被整除;
    方式二:设置定时器的超时时间,如设置超时时间为5000毫秒,即使线程组的线程数不能被整除,一旦过了超时时间,程序就会执行完剩余的线程。

    三、常量吞吐定时器--设置接口访问频率

    3.1 步骤

    例:一个用户以20QPS(20次/秒)的频率访问服务器的登录接口,持续15秒,统计服务器的平均响应时间

    1、新建测试计划、线程组、取样器、聚合报告,设置相关测试参数
    循环次数 = 访问频率 * 持续时间

    2、添加常量吞吐定时器

    3、运行测试计划,查看汇总结果

    四、分布式性能测试实现

    多台机器协作,以集群的方式完成性能测试,提高测试效率。
    如峰值时期有30000个用户访问系统,一台测试机最多支持5000个用户,可以使用6台测试机窜起来实现30000个用户访问

    基本架构:

    • 控制机:负责任务分配
    • 执行机:负责任务实现
    • 控制机制定测试任务,并下发到执行机,执行机执行任务并将结果返回给控制机,控制机汇总结果

    4.1 分布式测试环境搭建

    1、在不同测试机上安装jmeter
    2、配置基础环境(统一操作系统、JDK、jmeter)
    3、配置控制机与执行机之间的通信(端口):

    • 为执行机设置端口号 %JMETER_HOME/bin/jmeter.properties --> server_port=xxx

    • 控制机中设置执行机的IP和端口 %JMETER_HOME/bin/jmeter.properties --> remote_hosts=执行机A的IP:端口,执行机B的IP:端口

    • 设置控制机和执行机远程访问相关控制:server.rmi.ssl.disable=true

    4.2 分布式性能测试步骤

    例:模拟100个用户操作(默认已经搭建好分布式测试环境)

    1、启动集群机器上的控制机、执行机的jmeter
    2、在控制机的jmeter中,新增测试计划、测试组、取样器、聚合报告(具体步骤同上)
    3、设置线程组的线程数,并运行测试计划:

  • 相关阅读:
    Springboot默认配置文件application.properties的常见配置属性
    Springboot基础核心
    这样统计代码执行耗时,才足够优雅!
    什么原因才导致 select * 效率低下的?
    建立apk定时自动打包系统第三篇——代码自动更新、APP自动打包系统
    [LeetCode] 543. 二叉树的直径
    Mybatis源码分析(一)
    Dockerfile创建docker
    JavaScript浅析
    mac os下 vmware Fusion Linux虚拟机配置静态ip无法上网问题
  • 原文地址:https://www.cnblogs.com/yanlin-10/p/14500702.html
Copyright © 2020-2023  润新知