Jmeter

Jmeter基础

请求头Content-Type类型

  • content-type: application/x-www-form-urlencoded
    • 最常见的POST提交数据的格式

默认类型

# 第一种,在 参数 中输入 名称 和 值

# 第二种,在 消息体数据 输入
key1=value1&key2=value2
  • content-type:application/json
{
    "key1": "value1",
    "key2": "value2"
}
  • content-type:multipart/form-data

​ 用于上传文件:勾选对POST使用multipart/form-data,添加不同后缀的文件,MIME类型也不同

image-20230808213746943

  • 表单提交multipart/form-datax-www-form-urlencoded的区别
    • multipart/form-data:可以上传文件或者键值对,最后都转换为一条消息
    • x-www-form-urlencoded:只能上传键值对,而且键值对都是通过&来分隔

HTTP请求默认值

右键线程组-配置元件-HTTP请求默认值

提取器

Json提取器

右键HTTP请求-后置处理器-JSON提取器

Snipaste_2023-08-07_22-22-03

参数关联${参数名称}

正则表达式提取

右键HTTP请求-后置处理器-正则表达式提取器

Snipaste_2023-08-07_22-16-19

image-20230813214253877

参数关联${参数名称}

XPath提取器

  • 右键HTTP请求-后置处理器-XPath提取器

  • 表达式://标签名[@属性='值']/@要提取的属性

参数关联${参数名称}

登录参数化(CSV数据)

配置元件-CSV数据文件设置

Snipaste_2023-08-07_22-31-59

线程组上,设置线程数为数据的行数

变量名引用:${变量名}

断言

响应断言

QQ截图20230807224737

JSON断言

Snipaste_2023-08-07_22-50-22

大小断言

Snipaste_2023-08-08_21-43-36

BeanShell后置处理器

BeanShell是一种脚本语言,一种完全符合java语法的java脚本语言

添加环境变量

${__setProperty(环境变量名称, ${通过JSSON或正则表达式提取出来的变量},)}

环境变量的使用

${__property(环境变量名称)}
${__P(环境变量名称)} # 作用同上

举例

# 设置 环境变量
${__setProperty(access_token_global, ${access_token},)}
# access_token 是由下面的正则表达式提取出来的
"access_token":"(.*?)"

# 引用 环境变量
bearer${__property(access_token_global)
bearer${__P(access_token_global)}

连接Mysql数据库

  • 环境准备:下载mysql-connector-j-8.1.0.jar,放到Jmeter的lib文件下面

  • 连接数据库:在Jmeter添加JDBC Connection Configuration配置元件

    image-20230902093058424

  • 数据库查询:在Jmeter添加JDBC Request取样器

    Snipaste_2023-08-08_22-35-49

  • 数据库数据取值

    • ${变量名称_#}:表示一共有多少条是数据
    • ${变量名称_1}:表示去查询结果第一个值

计数器

image-20230902094104031

聚合报告参数解析

  • Label:请求的名称,就是脚本中Sampler的名称。
  • #样本:总共发给服务器的请求数量,如果模拟10个用户,每个用户迭代10次,那么总的请求数为:10*10 =100次。
  • 平均值:平均响应时间,所有请求的平均响应时间。
  • 中位数:50%的用户响应时间不超过这个值, 剩下的样品至少只要等于或超过这个时间。
  • 最小值:最小的响应时间。
  • 最大值:最大的响应时间。
  • 99%百分位:99%的用户响应时间不超过这个值, 剩下的样品至少只要等于或超过这个时间。
  • Error%:异常百分比。(错误率=错误请求的数量/请求的总数)
  • Throughput(吞吐量):默认情况下每秒完成的请求数(Request per Second)。
  • Received KB / sec(接收数据):每秒从服务器端接收到的数据量。
  • Sent KB/sec(发送):每秒发送到服务器端的数据量。
  • 补充:
    • TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

Jmeter命令执行并生成测试报告

jmeter -n -t <testplain filename> -l <listener filename> -e -o <report filename>

testplain filename:jmx文件的绝对路径或相对路径

listener filename:执行之后结果文件名,后缀名必须是.jtl

report filename:测试报告文件夹的绝对路径或相对路径(每次启动命令之前,文件夹内容要和 jtl 文件一起清空,否则会报错)

n:非GUI模式执行JMeter
t: 脚本文件(.jmx文件)的路径
l: 指定生成测试结果的保存文件(.jtl格式),此文件必须不存在
e:测试结束后,生成测试报告
o:用于存放测试报告的路径

posted @ 2023-08-11 23:13  暮雨星辰  阅读(101)  评论(0)    收藏  举报