美文网首页
JMeter笔记

JMeter笔记

作者: circle_hyy | 来源:发表于2022-01-17 18:48 被阅读0次

一、断言

背景:对响应数据进行断言校验,判断是否请求成功。接口返回200和403,或者200带结果数据和200不带结果数据,是代表不一样的意思,如果不加断言,把他们都当成请求成功,那么跑出来的结果和实际的结果就有误差了。

操作:在需要断言的请求中或者线程组增加断言->响应断言(如果是在某个请求下,则仅断言该请求,如果是在线程组下,则会断言属于该线程组的所有请求)

规则:可直接校验文本或者使用正则表达式,不满足断言条件时,即使请求成功有正确响应,也是被当成失败的

示例:校验响应文本中包含“000000”

image.png

二、参数化

背景:比如token、用户账号,不是固定不变的值,需要动态从某处获取之后使用,这时候需要将这个值param作为变量,将该变量参数化,使用时用${param}代表需要参数化的参数

JMeter参数化的四种方式:

  • 函数助手
  • CSV Data Set Config
  • 用户自定义变量
  • 用户参数
  1. CSV Data Set Config

从文件中读取数据,支持.csv、.txt、.dat三种格式

示例:读取文件中的id作为merchantId

image.png image.png
  • Filename:文件名称,如果放在JMeter的bin目录下,则只需给出相对路径或者文件名,如果在其它位置则需说明绝对路径
  • File encoding:文件编码格式,可使用UTF-8、GBK等
  • Variable Names:文件中变量的名称,如有多个则用’,’隔开
  • Ignore first line:是否忽略文件中的首行
  • Delimiter:分隔符,一般用默认的’,’,或者’\t’代表tab键
  • Allow quoted data?:是否允许数据内容加引号
  • Recycle on EOF?:到了文件结尾是否循环
  • Stop thread on EOF?:到了文件结尾是否停止线程,此项和Recycle on EOF为互斥关系
  • Sharing mode:共享模式,所有线程(每个线程一次读取数据,互不重复)、当前线程组(每个线程组内的线程依次读取数据,互不重复)、当前线程(在此元件作用范围内,每次循环中所有线程取值一样)

如果想发起多次请求,循环取值,可以给该请求增加循环控制器

示例:将接口写在文件中,依次读取接口数据发起请求

image.png image.png
image.png

此时需要注意,Allow quoted data值应为true,因为数据中有值中是包含引号的

2. 函数助手

通过函数助手生成表达式,如生成随机数、读取csv文件等

在选项或者工具中->函数助手

示例:生成17-34内的随机数字作为id

image.png

在函数表达式助手中生成表达式,将表达式复制到变量中

image.png

三、正则表达式提取器

背景:需要提取请求、响应中的某个字段作为下一个请求的入参时,需要用到正则表达式提取器

一般在需要获取数据的请求中添加

引用名称:提取出的参数名param,要引用的地方使用${param}

正则表达式:

():表示这部分是要提取的

.:匹配任何字符串

+:一次或多次

?:找到第一个匹配项后停止

模板:解析到的第几个值给param,如果是第一个则$1$,如果有多个则可以用$2$$3$

匹配数字:0代表随机取值

默认值:如果没有取到值,默认给一个参数

示例:提取/getMerchants接口响应报文中的id值,作为merchantId参数供后面/getPayChannelInfo接口使用,在需要用到该参数的地方用${merchantId}表示

image.png image.png

四、JDBC

背景:需从数据库中取值作为接口请求数据,或者从数据库中取值进行校验,需要用JDBC

操作:下载mysql驱动:https://mvnrepository.com/artifact/mysql/mysql-connector-java放到\lib文件夹下

配合JDBC连接配置使用,配置数据库地址、账号信息

规则:JDBC连接配置和JDBC请求的名称需对应

示例:读取表mch_merchant的id值作为merchantId值

image.png image.png

如果需要将查询结果作为参数循环传递给接口,可结合循环控制器和计数器使用

id_#代表结果总数,设置循环控制器的次数为${id_#}

image.png

新增计数器,初始值为1,最大值为${id_#},获得该次数N

image.png

结合函数助手,获取第N次的结果为${_V(id${N})}

image.png

五、BeanShell

背景:需要自定义一些函数进行特殊处理,或者调用java文件、导入外部jar包时,会用到BeanShell

规则:通过vars.get(“key”)取值,通过vars.put(“key”,”value”)

  1. 自定义函数,直接在BeanShell脚本中写函数
  2. 调用java文件,在BeanShell脚本中指定该java文件的存放位置,source(“文件路径”)
  3. 导入外部jar包

将jar包放在JMeter的\lib\ext文件下,在BeanShell脚本中import该jar包

示例:写一个生成17-34的数字的函数并将值赋给merchantId

image.png

六、命令方式执行

背景:使用GUI方式启动JMeter,运行线程较多的测试时,会造成内存和CPU的大量消耗,导致客户机卡死。一般是在GUI模式下调整测试脚本,再用命令行模式执行。

命令:JMeter.bat -n -t D:\hyy\性能测试\TestPlan.jmx -l D:\hyy\logfile.jtl

-n 非GUI模式下运行

-t 测试计划

-l 结果文件

-r 远程执行

-H 代理主机

-P 代理端口

image.png

报告查看,在报告元件中打开日志文件

image.png image.png

除了jtl文件,也可以选择生成csv文件

七、监听器插件
JMeterPlugin可以把JMeter生成的jtl文件做出各种统计图
1、直接下载ZIP包
https://jmeter-plugins.org/downloads/old/
将下载好的JMeterPlugins-Extras.jar放到JMeter的\lib\ext目录下面,然后重启JMeter即可
直接添加监听器,可以看到已经添加的插件

image.png
2、插件管理器Plugins Manager
https://jmeter-plugins.org/install/Install/
jmeter-plugins-manager.jar下载完成之后,将jar文件放置到JMeter的\lib\ext目录下面,然后重启JMeter即可
在JMeter的选项Option中打开Plugins Manager,对需要的插件进行下载。
image.png
image.png

相关文章

  • jmeter使用笔记

    jmeter使用笔记 生成测试报告(类似LR的测试报告) jmeter.bat -n -t 线程组.jmx -l ...

  • jmeter性能监控实操

    因为最近在学习jmeter的使用,这里先做个笔记,方便自己以后回顾。。。直接进入正题,在jmeter可以正常使用的...

  • Jmeter远程分布式并发

    Jmeter远程分布式并发 此笔记,纯属个人整理,有不详尽的地方,敬请谅解 首先在节点机上修改jmeter.pro...

  • jmeter使用笔记之ip欺骗

    jmeter使用笔记之ip欺骗 jmeter在低版本中并没有ip欺骗这个功能,但是2.1以后就加入了ip欺骗功能。...

  • jmeter笔记

  • JMeter笔记

    一、断言 背景:对响应数据进行断言校验,判断是否请求成功。接口返回200和403,或者200带结果数据和200不带...

  • jmeter学习指南

    jmeter入门1.1. jmeter简介1.2. jmeter安装 jmeter基本使用2.1. jmeter基...

  • Jmeter 笔记二

    断言之响应断言 类似于检查点,用于检查测试中得到的响应数据等是否符合预期,用以保证数据交互与预期一致 使用断言的目...

  • jmeter linux/win环境设置 jmv参数

    1、修改jmeter jvm参数 jmeter jvm参数修改,打开jmeter安装目录/bin/jmeter(非...

  • [JM_01]JMeter之功能模块组成及其作用

    目录结构 一、JMeter简介 1.JMeter概述JMeter:Apache JMeter是Apache组织的开...

网友评论

      本文标题:JMeter笔记

      本文链接:https://www.haomeiwen.com/subject/hbachrtx.html