侧边栏壁纸
博主头像
一朵云的博客博主等级

拥抱生活,向阳而生。

  • 累计撰写 67 篇文章
  • 累计创建 25 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

JMeter -- 参数化

一朵云
2022-02-08 / 0 评论 / 2 点赞 / 7844 阅读 / 5427 字

基本介绍:

参数化是自动化测试脚本的一种常用技巧。简单来说,参数化的一般用法就是将脚本中的某些输入使用参数来代替。

我们做性能测试需要并发多个用户,为了真实模拟用户行为,我们需要模拟多个不同的用户登录,这时我们就需要使用到参数化了。

JMeter主要参数化方式:

  • CSV数据文件设置(CSV Data Set Config)

  • 函数助手(_CSVRead)

  • 用户定义的变量(User Defined Variables)

  • 用户参数(User Variables)

1、CSV数据文件设置

通过引用外部文件来进行参数化。

image.png

组件位置:

右键 -- 添加 -- 配置元件 -- CSV数据元件设置

设置CSV数据文件(Configure the CSV Data Source)参数说明:

1、文件名(Filename):

  引用文件地址,可以使用相对路径,也可以使用绝对路径。相对路径的根目录是JMeter的启动目录(%JMETER_HOME%\bin),如果文件就在bin目录下可直接“.\”。

2、文件编码(File encoding):

  读取参数文件用到的编码格式,建议统一使用utf-8,避免乱码。

3、变量名称(Variable Names):

  定义的变量名称,用英文逗号分隔。变量名称个数需与引用文件中的参数个数对应,不匹配部分将取不到值。

4、忽略首行(Ignore first line):

  默认不忽略,改为true的情况,一般是引用文件首行用来做字段参数备注。

5、分隔符(Delimiter):

  分隔符默认使用英文逗号,也可使用tab键来分隔,若用tab键文本框应填写“\t”。

6、是否允许带引号?(Allow quote data):

  引用文件中的参数值:“张三,李四”,王五

  默认为False,数据拆分后就是 “张三、李四”、王五

  若选择True,这个数据拆分后就是 张三,李四王五

7、遇到文件结束符再次循环?(Recycle on EOF):

  默认为True,循环遍历参数文件中的参数值。

  设置为False,参数文件中的参数值遍历完成后就不循环了。

8、遇到文件结束符停止线程?(Stop thread on EOF):

  默认为False,参数文件读完后不停线程,与Recycle on EOF 中 False选择复用。

  选择为True,参数文件读完后直接停止线程。

9、线程共享模式(Sharing mode):

  ①、所有线程(All threads),即同一测试计划下的所有线程。

  ②、当前线程组(Current thread group),即仅对当前线程组下的线程有效。

  ③、当前线程(Current thread),即仅对当前线程生效。

应用示例:

接口请求参数化:
image.png

CSV参数化配置:
image.png

引用文件路径及内容:
image.png

响应结果,成功将入参打印出来,表示CSV参数化成功:
image.png

2、函数助手

JMeter提供了函数可直接调用,如生成随机字符串、求和等。

image.png

组件位置:

1、图示箭头位置快速唤出。

2、导航栏 -- 工具 -- 函数助手对话框

官网api文档地址:

https://jmeter.apache.org/usermanual/functions.html

应用示例:

随机字符串函数

${__RandomString(6,abcdefg,name)}
  • 第一个参数表示随机字符串的长度;
  • 第二个参数表示随机的字符集合,可空,空表示所有的字符(含特殊字符);
  • 第三个参数表示是否存为变量,供给线程组内其他线程使用,值与前者相同。可空,空即表示不存。

接口1 中的请求参数使用JMeter函数,并将值存为变量 Name
image.png

image.png

接口2 引用变量 Name ,得到和接口1函数生成一样的值:
image.png

image.png

3、用户定义的变量

对当前线程组下的所有线程生效,优先级最低(可理解为java中的静态常量)。

image.png

组件位置:

右键 -- 添加 -- 配置元件 -- 用户定义的变量

4、用户参数

仅对当前线程生效,优先级最高(可理解为java中的局部变量)。

image.png

组件位置:

右键 -- 添加 -- 前置处理器 -- 用户参数

注意事项:

以上四种参数化的优先级

用户参数 > 函数引用 > CSV数据文件设置 > 用户定义的变量

2

评论区