ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

几种常见的Jmeter参数化方式

2021-11-10 12:00:06  阅读:114  来源: 互联网

标签:文件 false 读取 几种 参数 线程 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,然后运行脚本

 

 

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

 

 

总结

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

标签:文件,false,读取,几种,参数,线程,Jmeter,函数
来源: https://www.cnblogs.com/testfan2019/p/15532844.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有