使用jemter对rest接口压测

新建线程组


线程组参数详解:

  1. Number of Thread:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
  2. Ramp-Up Period(in seconds)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要2秒钟启动10个线程,也就是每秒钟启动5个线程。
  3. Loop Count:每个线程发送请求的次数。如果线程数为10,循环次数为100,那么每个线程发送100次请求。总请求数为10*100=1000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
  4. Delay Thread creation until needed:直到需要时延迟线程的创建。
  5. Specify Thread lifeTime:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)
    持续时间(秒):测试持续时间
    启动延迟(秒):测试延迟启动时间

新建http接口


http接口设置,还需要在http接口再添加header

使用变量

可以使用自定义变量和代码变量

自定义变量:

接口中使用 ${name} 即可使用

使用代码变量:

实际可能需要一些参数是动态的,比如UUID或者时间戳等,可以编写代码:

使用自增变量


控制TPS,即每秒并发数

实际压测,需要控制TPS,而获取不通压力下的数据,可以使用Timer


参数说明:
Target throughput(in samples per minute):目标吞吐量。注意这里是每分钟发送的请求数,因此,对应测试需求中所要求的10 QPS ,这里的值应该是600。
Calculate Throughput based on :有5个选项,分别是:
  1.This thread only :控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的 target Throughput 乘以线程的数量。
  2.All active threads : 设置的target Throughput 将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程。
  3.All active threads in current thread group :设置的target Throughput将分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和All active threads选项的效果完全相同。
  4.All active threads (shared ):与All active threads 的选项基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行。
  5.All cative threads in current thread group (shared ):与All active threads in current thread group 基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。

一般选第一个This thread only就可以,比如有100个线程,如果要求每秒1000并发,那每个线程每秒就是10并发,一分钟是600,所以填600就可以

服务器调用

实际压测中,一般都会选择服务器压测,去除本地干扰因素,可以直接把jmeter部署到linux,然后本地编写好.jmx脚本,在服务器上运行即可
运行脚本:

./app/jmeter4.5.1/bin/jmeter.sh -n -t /usr/local/test.jmx -l /usr/local/test.jtl

如果当前Java环境变量不是jdk1.8,可以修改jemter.sh脚本手动指定JAVA_HOME为1.8版本

会显示活动线程数,错误次数,响应时间,调用次数等

posted @ 2021-07-13 15:54  侯小厨  阅读(219)  评论(0)    收藏  举报
Fork me on Gitee