JMeter笔记

2022-01-17  本文已影响0人  circle_hyy

一、断言

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

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

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

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

image.png

二、参数化

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

JMeter参数化的四种方式:

  1. CSV Data Set Config

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

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

image.png image.png

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

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

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
上一篇下一篇

猜你喜欢

热点阅读