zoukankan      html  css  js  c++  java
  • 小程序H5接口测试整理(JMeter)

    前提(需安装的插件):

    1. JMeter Manager
    2. Custom Thread Groups
    3. Basic Graphs

    术语解释

    1.线程属性的解读

    ①线程数:代表模拟的用户数量

    注意线程数不宜一开始设置的太大,然后根据线程数设置启动时间100以内1-2s,1000个2-3秒。

    设置1个线程数,循环次数设置多次,这种不算是性能测试;需要设置多线程数,模拟多用户向服务器发起请求,才算性能测试。

    ②Ramp-Up时间:代表的是线程数准备时间(设定的时间内,线程数向服务器发送请求,例如:设置30个线程数,Ramp-Up时间设置为2,那么2秒结束后30个线程数已经向服务器发送请求,并不等于每秒启动15个线程数,有可能前面一秒启动n个线程数,第二秒启动30-n个线程数,总之2秒结束设置的线程数都会发送完请求),那么设置这个时间有什么意义呢?举例说明吧,比如设置了1000个线程数,启动时间设置为1秒,那么服务器在这1秒钟承受的压力会很大,有可能服务器还没时间分配足够的资源导致报错(这种报错原因是因为场景设置的原因导致的);如果设置时间增加一点,那么请求在这段时间内持续发送,服务器有缓冲时间,服务器压力会小一些,就不会出现抖动的现象。

    ③循环次数:代表的是线程组需要向接口发送多少次重复的请求,如果选择“永远”,那么线程数会一直发送请求,直到强行停止才会停止stop(有可能后面的发送的请求会报错);不过一般“永远”会和调度器一起使用,在调度器中设置持续时间,到了时间循环就会停止(这种情况因为不是强行停止,就不会出现报错的情况)

    测试插件安装

    插件下载地址:https://jmeter-plugins.org/install/Install/ ,如图

    image-20210716101836283

    插件下载到本地后放在jmeter对应的安装目录lib/ext 如图

    image-20210716101942766

    安装后重启jmeter后,打开在选项中可以看到对应的插件如图:

    image-20210716102101609

    图2:插件安装界面:

    image-20210716102158135

    在此界面中可以选择需要安装的插件:Custom Thread Groups和Basic Graphs

    然后在测试计划-->线程组中可以看到出现的新线程组,如图

    image-20210716102331636

    测试场景设计和插件使用

    基准测试

    一般情况下,基准测试也是单用户测试,测试环境确定以后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标,为多用户并发测试和综合场景测试等性能分析提供参考依据,这里设计一个Thread Group 线程组线程的测试,如图

    image-20210716104256706

    这里设计了立即启动2个线程(用户)查看对应的接口结果信息:

    image-20210716104325182

    负载测试

    负载测试:逐步增加用户并发数,有两种场景;阶梯场景和波浪式场景

    阶梯场景

    测试计划-->添加-->线程-->Stepping Thread Group(说明:Concurrency Thread Group和Stepping Thread Group都可用于阶梯式加压测试但是由于Stepping Thread Group已经不再被官方推荐使用了,我们对Concurrency Thread Group进行简单介绍),如图

    image-20210716105449468

    解释:

    target concurrency:目标并发数

    ramp up time(min):加速时间

    ramp-up steps count:加速步骤计数

    hold target rate time(min):保持目标费率时间

    thread iterations limit:线程迭代次数限制

    log threads status into file:将线程状态记录到文件

    以上,以图形的方式展示了线程加压的过程。

    例如:
    
    50个线程组,加速时间为5分钟,10个加速步骤,保持目标费率3分钟:
    
    10个加速步骤,每步5个线程组;
    
    5分钟/10步=0.5,每步0.5分钟;即每1分钟加载10个线程组,直到达到50个;
    
    达到50个线程组之后,所有这些线程组将继续运行,加压3分钟。
    

    通过添加监听器来跑一例子看看结果图并分析,如图

    Transactions per Second:TPS每秒请求事物数

    Response Times Over Time:随着时间变化的响应时间

    Active Threads Over Time:活跃的线程数

    image-20210716114949441

    波浪式场景

    测试计划-->添加-->线程-->Ultimate Thread Group

    image-20210716111305540

    解释:

    Start Threads Count:最大启动线程数50个
    Initial Delay,sec:初始化等待0秒
    Start up Time,sec:增加到最大线程数,花费30秒
    Hold Load For,sec:保持最大线程数,运行60秒
    Shutdown Time:减少到0个线程,花费10秒

    适用场景:订餐系统,用餐时间点时,系统访问量很大,用餐时间为波浪的波峰

    其他几种测试插件场景说明
    Arrivals Thread Group & Free-Form Arrivals Thread Group

    跟Concurrency Thread Group线程组功能作用大同小异

    target rate:目标费率,每秒钟多少个请求数
    
    ramp up time(sec):达到目标费率需要的时间
    
    ramp-up steps count:达到目标费率需要多少步
    
    hold target rate time(sec):保持目标费率时间
    
    thread iterations limit:线程迭代次数限制,如果我们只需运行每个用户一次以模拟用户的实际行为,则设置为1;设置为空,表示每个用户将运行不确定的迭代,直到调度结束。
    
    log threads status into file:将线程状态记录到文件
    
    concurrency limit:最大并发数限制
    
    举例:
    
    目标费率为100,加速时间为10秒钟,5个加速步骤,保持目标费率10秒钟:
    
    5个加速步骤,每步20增加个费率;
    
    10s/5步=2,每步2秒钟;即每2秒钟加载20个费率,直到达到100;
    
    达到100个费率之后,按照这个标准进行加压10秒钟;
    
    以上,前十秒钟按照设置不断增加费率,请求数为(20+40+60+80+100)*2=600个;后十秒钟,按照每秒100个费率计算,请求数为100*10=1000个;共计1600个请求数。
    ————————————————
    
    
    

    测试场景设计说明

    参考如图:

    image-20210716114352930

    参考信息:

    1. pluto果冻
    2. Jmeter的线程组
    3. 场景设计
    4. 线程组使用
  • 相关阅读:
    二叉树(前序,中序,后序遍历)查找
    插入查找
    归并排序
    解密Spring AOP 之AspectJ与动态代理基础知识
    常用的sql
    python 集合方法
    python 字典
    python 列表方法
    python 序列类型
    fake_useragent
  • 原文地址:https://www.cnblogs.com/LOVEYU/p/15019555.html
Copyright © 2011-2022 走看看