微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

几种常见的Jmeter参数化方式

很多人在写jmeter脚本时,接口的参数都是固定的,比如id=1,但是这样并不能真正模拟多个用户来发起请求。因此接口参数需要使用动态的参数。

Jmeter支持丰富的参数化函数和组件,可以使用“函数助手”来帮我们生成对应的函数,接下来介绍一些常用的参数化函数

在这里插入图片描述

随机函数

随机数字是一种比较常见的参数化场景,比如在/pinter/com/getSku?id=1接口中,id参数可以传一个随机数,范围是从1-1000,打开函数助手,选择random函数,设置随机范围,就可以生成一个随机函数

在这里插入图片描述

在HTTP请求的URL里,将原来的id=1,替换为id=${__Random(1,1000,)} 即完成了id的参数化处理。
运行脚本,在查看结果树的“请求”-“request body”里,可以看到发送到服务端的id数据是一个随机的数字

在这里插入图片描述

随机字符串

函数助手中,找到randomString函数

在这里插入图片描述

Random string length:生成随机字符串的长度

Chars to use for random string generation:从哪些字符中生成随机字符串,这里可以写字符和数字

函数的使用方法和上述是一样的,不再赘述。

时间戳

time函数可以获取当前的时间戳

在这里插入图片描述

UUID
UUID是一个不重复的字符串,可以用在某些需要使用唯一不重复字符串的场景下。

在这里插入图片描述

文件参数化

在某些场景下,要求参数是从某个文件里读取的,Jmeter还提供了更强大的参数化组件:“CSV数据文件设置(CSV data set config)”

使用方法
先准备一个参数文件(文本类型文件即可,如txt、csv,注意不能是Excel),文件里可以有一列或者多列数据,以逗号分隔,如

在这里插入图片描述

线程组上右键-添加-配置元件-CSV数据文件设置

在这里插入图片描述

文件名:参数文件的路径

文件编码:认为空,如果有中文参数,可以在下拉框里选择utf-8

变量名称文件中每列数据对应的参数名,逗号分隔,如username,password

忽略首行:是否忽略第一行数据?认是不忽略,即读取第一行数据

分隔符:认的逗号,也可以使用tab键分隔,用\t

是否允许引号:文件数据里有引号吗,如果有选true,认是false

遇到文件结束再次循环:如果期望文件中的数据读取完毕后,可以继续从第一行读取,选True,否则选false

遇到文件结束停止线程:文件数据读取完毕后,是否停止线程运行。一般配合上面参数使用,如果上面选True,这里就选false,上面选false,这里选true

文件名:参数文件的路径


文件编码:认为空,如果有中文参数,可以在下拉框里选择utf-8


变量名称文件中每列数据对应的参数名,逗号分隔,如username,password


忽略首行:是否忽略第一行数据?认是不忽略,即读取第一行数据


分隔符:认的逗号,也可以使用tab键分隔,用\t


是否允许引号:文件数据里有引号吗,如果有选true,认是false


遇到文件结束再次循环:如果期望文件中的数据读取完毕后,可以继续从第一行读取,选True,否则选false


遇到文件结束停止线程:文件数据读取完毕后,是否停止线程运行。一般配合上面参数使用,如果上面选True,这里就选false,上面选false,这里选true


线程共享模式:文件中的参数都可以让哪些线程使用,一般都选所有线程

使用参数

csv参数文件设置完毕后,可以在login接口里,直接通过${参数名}的方式来使用参数

在这里插入图片描述

线程组上设置运行次数为4,然后运行脚本

在这里插入图片描述

在查看结果树中可以看到,每次请求都使用了参数文件里的一行参数

在这里插入图片描述

总结

本文讲解了两种参数化类型:函数参数化和文件参数,如果大家在学习过程中有任何问题,欢迎扫码咨询

原文地址:https://blog.csdn.net/Testfan_zhou/article/details/121245400

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐