参数化概念

测试工作中,通常会使用不同的数据发送请求测试不同的场景来实现测试的全面性,这就需要对一些字段进行参数化,以使每次迭代都使用不同的数据来满足我们的测试需求。

Jmeter做为常用的功能、性能测试工具之一,其参数化方式也是相对比较灵活,主要分为4种:用户参数、用户自定义变量、CSV数据文件、函数助手,下面将详细介绍这4种参数化方式的使用方法。

参数化方式

一、用户参数

1.使用场景

适用于参数取值范围很小的场景,例如测试模拟较少用户登陆某系统交易。

2.操作步骤

(1)添加用户参数功能模块

(2)设置参数变量、用户值

注意勾选每次迭代更新一次,否则每次都使用同样的数据;

(3)配置HTTP请求中的参数值或消息体数据中参数化字段

HTTP请求中要么通过设置参数要么使用消息体数据通过报文方式发送请求,无论哪种方式,参数化值应与用户参数中变量名一致。

(4)查看结果树

线程组中的线程数设置为2,点击执行,可以通过查看结果树查看参数使用情况:

二、用户变量

1.使用场景

一般用于Test Plan中不需要随请求迭代变化的参数设置,如:服务器地址、端口。

2.操作步骤

(1)添加用户自定义变量功能模块

(2)配置用户自定义变量参数值

这里以配置不同服务器地址和端口为例:

(3)配置HTTP请求中参数值或消息体数据中参数化字段

当发送请求服务器地址发生改变时,只需要更改服务器参数化值即可向不同的服务器发送请求。当然,用户自定义变量也可以来参数化登陆用户、交易金额、账户等场景。

(4)查看结果树

当服务器名称设置为${host1},端口设置为${post1}时,访问百度服务器:

当服务器名称设置为${host2},端口设置为${post2}时,访问火狐服务器:

三、CSV数据文件

1.使用场景

适用于参数取值范围较大的场景,该方法在参数化大量数据时灵活性高、操作便捷,在需要遍历上千个账户场景时经常使用。

2.操作步骤

(1)准备参数化文件

参数化文件一般为txt或者csv格式,每一行代表一条数据,每条数据可包含多个属性,不同属性之间需用分隔符间隔,CSV数据文件对数据量无要求,当需要参数化的数量量较大时,应使用这种参数化方式:

(2)添加CSV数据文件设置功能模块

(3)配置CSV数据文件参数

文件参数配置详细说明如下:

备注说明:

遇到文件结束符再次循环与遇到文件结束符停止线程的关联关系:

当遇到文件结束符再次循环项为true时,遇到文件结束符停止线程项无意义,因为前面项控制了要一直循环读取;

当遇到文件结束符再次循环项为false时,遇到文件结束符停止线程项为true时,当线程为4个,参数值为3个时,会执行请求3次;

当遇到文件结束符再次循环项为false时,遇到文件结束符停止线程项为false时,当线程为4个,参数值为3个时,会执行请求4次,但是最后一次请求会报错,因为第4次请求无参数;

(4)配置HTTP请求中参数值或消息体数据中参数化字段

(5)查看结果树

线程组线程数设置为3,循环次数设置为1,可以看到执行结果中参数取值与CSV文中的数据一致:

四、函数助手

1.使用场景

当参数为随机数或者报文含有流水号字段(每次迭代不能重复)等场景时,可使用函数助手生成所需数据,当所需字段数据长度较长且不能重复时,通常将时间函数与计数器结合,拼接为合适长度的有效数据。

Jmeter提供了丰富的内置函数,大体可以分为以下7种类型,这里以时间函数与计数器结合为例详细介绍使用步骤。

2.操作步骤

(1)根据需要,配置函数

打开函数助手对话框后,选择时间函数,然后输入想要的时间格式,例如yyyyMMddHHmmss或者MMddHHmmss,点击生成,即可生成可引用的参数化函数:

(2)配置用户自定义变量

一般将生成的可引用参数化函数设置为用户自定义变量的值:

(3)添加计数器功能模块

(4)配置计数器模块的参数

如果我们需要一个长度为20位且不能重复的流水号,那么我们就可以用时间函数生成16位的数值,用计数器生成6位顺序值,将两者拼接起来,即可生成一个长度为20位且不重复的数据:

(5)配置HTTP请求中参数值或消息体数据中参数化字段

将时间函数与计数器组合为resqno变量,这样即使为多并发时,resqno变量也不会重复:

(6)查看结果树

以上就是Jmeter常用的4种参数化方式,希望在日常测试工作中能对小伙伴们提供一些帮助!

推荐阅读:重要通知丨2020全新软件测试学习路线——内含视频(10G+)​mp.weixin.qq.com

jmeter中变量的作用范围_Jmeter参数化方式总结相关推荐

  1. jmeter中变量的作用范围_Jmeter里的用户定义变量和用户参数区别是什么?

    在一次导游平台的项目中,初始调试脚本阶段,我将需要一些参数都写死放在用户定义变量中. 就是下图这个东西,重点注意timestamp这个参数 脚本调试通过后,做并发调试,发现每次请求的参数值,times ...

  2. jmeter中变量的作用范围_血糖范围内达标时间在糖尿病管理中的作用

    立秋Autumn 话说,咖啡馆一段时间未更新.引发许多大.小伙伴探寻,没啥特别的原因,馆主掌柜咖啡姐姐有点忙,承蒙大家不弃,好"咖啡"沉淀,继续奉上... 本文发表于<糖尿病 ...

  3. c语言中变量有几种存储方式,C语言变量的存储类别有哪些详细资料介绍

    描述 C语言中的变量根据其生存周期,可以分为静态存储方式和动态存储方式. 静态存储方式:是指在程序运行期间分配固定的存储空间的方式.静态存储区中存放了在整个程序执行过程中都存在的变量,如全局变量. 动 ...

  4. Jmeter中Cookie详解,参数化技术

    谈到性能测试,经常需要对用户进行参数化,jemter工具参数化经常使用的一个元件就是CSV数据文件设置 一. 操作步骤 1. 首先建议大家创建一个规范的目录保存文件 目录 作用 data 保存参数 r ...

  5. jmeter中没有sampler_jmeter(七)-BeanShell常用内置变量和场景

    Bean Shell常用内置变量 JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下: log:写入信息到jmeber.log ...

  6. 【Makefile由浅入深完全学习记录4】变量和不同的赋值方式

    今天来学习Makefile中变量的不同的赋值方式!努力的意义就是让贫穷不再限制你的想象!加qq共同学习交流1126137994 1.概念 makefile中支持程序设计中变量的概念 makefile中 ...

  7. JMeter中使用“用户自定义变量”实现参数化

    1.用户自定义变量介绍 我们可以看到前面一篇文章的例子中,数据文件login_data.csv的后三个参数都是一样的,我们可以把这些变量提取出来,放在一个公共的位置,方便我们随时提取.(凡是可以输入的 ...

  8. jmeter csv参数化_性能测试之Jmeter中如何设置参数化数据

    参数化配置 jmeter中进行参数化设置,右击测试计划或者线程组,add->config element->CSV Data Set Config参数1.png Allow quoted ...

  9. JMeter中如何实现参数化(CSV)

    1.参数化的定义 参数化是自动化测试脚本的一种常用技巧,可将脚本中的某些参数使用变量来代替.例如登录操作时,利用GET/POST请求方式传递参数的场景,可在脚本运行时指定参数的取值范围和规则. 脚本在 ...

最新文章

  1. 利用Unity3D制作简易2D计算器
  2. Linux dmesg命令
  3. 单机 搭建kafka集群 本地_单机快速搭建多节点kafka集群
  4. VMware虚拟机安装红帽系统无法上网解决办法(转)
  5. 计算机无线局域网毕业论文,谈教学设计《计算机网络》网络课程“无线局域网”单元的设计与开发大专毕业论文范文...
  6. 可信云认证累计达20项,腾讯云技术创新能力再获专业认可
  7. C++中未初始化的bool值的问题
  8. 从分析***方式来谈如何防御DDoS***
  9. mysql 定时器_MySQL定时器开启、调用实现代码
  10. Web Server的启动过程
  11. js复制 兼容浏览器
  12. 计算机无法识别语音输入,我的电脑每次启动语音识别总是显示“由于语言配置不受支持,无法启动语音识别”;...
  13. 机器视觉学习笔记(7)——基于OpenCV的双目摄像机标定
  14. FATAL: Failed to start gitlab-runner: “systemctl“ failed: exit status 5, Failed to start gitlab-runn
  15. elementUI里面upload组件上传图片时选择图片之后不显示图片的问题,
  16. 个人总结感想系列 - 2014年总结
  17. PC端-中文转拼音后续问题
  18. 综合布线测试仪的测试方法与标准
  19. Zhong__Linux服务器word转PDF方案
  20. 学会这些网站优化技巧,秒变seo专家

热门文章

  1. 那个分分钟处理 10 亿节点图计算的 Plato,现在怎么样了?
  2. 轻松搞定 SpringBoot 的邮件服务
  3. 英特尔“宠坏”程序员!
  4. 腾讯云刘颖:与微信共建小程序开发者生态,让小程序开发更简单
  5. 神龙 X-Dragon,这技术“范儿”如何?| 问底中国 IT 技术演进
  6. 这才是设计 React 的万金油!
  7. AI 落地谁最强?AI Top 30+案例评选等你来秀
  8. Python 狠甩 Java,Rust 持续称王!揭晓Stack Overflow 2019 开发者报告
  9. Linus 又开怼:有时候标准就是个垃圾!
  10. 苹果抛弃 OpenGL!