Jmeter使用总结

Jmeter

Jmeter配置文件properties

修改为language=zh_CN默认展示中文

修改jmeter.save.saveservice.output_format=csv输出测试报告文件格式为csv

设置不填写content_type时默认添加post_add_content_type_if_missing=true

配置远程主机:remote_hosts=127.0.0.1

test plan(测试计划)

ctrl+r运行测试计划,分布式压测时,master机不会显示所有远程的salve机的线程数

命令行默认停止脚本运行,stoptest.cmd/stoptest.sh

线程组

stepping thread group

  • this group will start:总共启动的线程数
  • firs,wait for:运行之后多长时间开始启动线程,若设置为0,则立即启动线程
  • then start:初次启动多少个线程,若设置为0,表示初次不启动线程
  • next add:之后每次启动多少线程,若设置为10个,则每次阶梯启动10个线程
  • threads every:当前运行多长时间后再次启动线程,即每一次线程启动完成之后的持续时间,若设置为30秒,每梯次启动完线程之后再运行30秒
  • using ramp-up:启动线程时间,若设置为5秒,标识每次启动线程都持续5秒
  • then hold load for:线程全部启动后运行多长时间
  • finally,stop/threads every:多长时间十方多少个线程

concurrency thread group

  • target concurrency:目标并发(线程数)

  • ramp up time:启动时间,若设置1min,则目标线程在1min内全部启动

  • ram-up stesps count:阶梯次数,若设置6,则目标线程在1min总分六次阶梯加压(启动线程数=目标线程数/阶梯次数=60/6=10每10s启动6个线程)

  • hold target rate time:持续负载运行时间,若设置2,则启动完所有线程后,持续运行2min

  • time unit

    • 时间单位(分/秒)
  • thread iterations limit:线程迭代循环次数,默认为空,即是永远。如果运行线程达到ramp-up time+hold target rate time,则停止运行线程(不建议设置该值)

线程组下不同组件执行顺序

  • 配置元件/监听器
  • 前置处理器
  • 定时器
  • 逻辑控制器
  • 取样器
  • 后置处理器
  • 断言

逻辑控制器

sampler(取样器)

  • 作用:让jmeter发送请求到服务器

Logical controllers(逻辑控制器)

  • 控制取样器的执行条件

监听器

jmeter运行时,收集运行数据

所有监听器拿到的数据相同,不同的数据显示的方式

定时器

按顺序执行各个取样器不会中途暂停

用户定义的变量

测试计划

  • 测试计划本身用户定义的变量
  • 添加配置元件用户定义的变量

线程组

  • 添加配置元件用户定义的变量

取样器

  • 添加配置元件用户定义的变量

注意:用户自定义变量在测试计划运行后,是全局生效,并且只生成一次。如果想要每次自定义变量动态生成,建议使用前置处理器>用户参数

用户参数

测试计划

  • 前置处理器>用户参数

线程组

  • 前置处理器>用户参数

取样器

  • 前置处理器>用户参数

每发送一次请求都会调用用户参数,它的值是动态的,全局生效

监听器

服务器监听器

  • 通过官网下载JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar,放置于Jmeter的/lib/ext目录下
  • 通过PerfMon Metrics Collector监听器进行服务器性能数据显示,IP填写需要监控的服务器IP,本机填127.0.0.1即可
  • ServerAgent-2.2.3.zip放置服务器任意位置解压,启动./startAgent.sh脚本

nmon

逻辑控制器

loopcontrol循环控制器

  • 循环次数,若填5,线程数=5,则总请求5*5=25

forEach控制器

  • 一般和用户自定义变量/JDBC结果变量一起使用,用于读取遍历相关的返回值

runtime控制器

  • 运行时间=循环次数*runtime时间(秒)

吞吐量控制器

  • 控制子项的执行频率,设置几次就执行几次,或者按百分比执行

分布式压测

准备条件:控制机和负载机jmeter版本一致,jdk版本一致,csv文件一致,插件一致,相同局域网,防火墙开放端口

负载机修改jmeter.properties配置文件bin目录server_port端口,修改server.rmi.port端口,设置server.rmi.ssl.disable=true

启动负载机bin目录下jmeter-server服务

控制机修改jmeter.properties配置文件remote_hosts设置不同的负载机ip:port,修改server.rmi.port端口与负载机相同,设置server.rmi.ssl.disable=true,设置mode=Standard

注意:如果1s发送100个模拟请求,有5个负载机,则需要讲脚本的线程数设置20,否则模拟请求变成500和预期结果相差过大

posted @ 2021-11-04 16:54  金山毒霸  阅读(69)  评论(0)    收藏  举报