首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jmeter 参数化的多种方式

Jmeter 参数化的多种方式

作者头像
软测小生
发布2019-11-18 15:10:35
1.1K0
发布2019-11-18 15:10:35
举报
文章被收录于专栏:软测小生软测小生

前言

在使用Jmeter进行性能测试时,需要并发多个用户,模拟真实用户行为,此时就需要模拟多个不同用户同时请求,每个用户请求中的imei或uuid动态变化。Jmeter提供了参数化的功能,配置元件、函数助手以及前置处理器中的用户参数,均能够帮助我们解决这个问题。

配置元件-CSV Data Set Config

配置元件是最常使用的一种方式,CSV Data Set Config 可以从指定的文本文件或csv文件一行一行的读取文本内容,通过分隔符拆解每行内容,并把内容与变量名一一对应起来,每个请求取文件中不同行的值,实现并发多个用户的需求。我们可以在配置元件中找到它。CSV数据文件设置页面如下:

其中,参数含义如下: Filename:引用文件地址,可以填相对路径或绝对路径。相对路径的根节点是Jmeter的启动目录,如果测试执行是分发到多台远程负载机上的,使用相对路径能够避免因Jmeter安装路径不同导致的参数化文件无法取到的问题。另外,也可以利用Jmeter的变量来参数化参数文件的路径,使用${paraUrl},同时在元件【User Defined Variables】中设置文件路径。 File encoding:读取参数文件时的编码格式,建议填写UTF-8,避免打开乱码情况。 Variable Names(comma-delimited):即HTTP请求中希望随请求变化的变量名称。如果有多个变量,需使用符号隔开,该符号应与引用文件中变量之间的符号一致。若该处填写的变量名称多余引用文件中的参数列数,则多余的参数将无法取到值。 Ignore first line(only used if Variable Names is not empty):忽略首行,当引用文件中首行设置了变量名时,该项设为 true,此时每次请求读取文件时会自动忽略首行,直接读取第二行的数据。 Delimiter(use '\t' for tab):即用来分隔引用文件中的分隔符,如果引用文件中使用tab分隔,此处填写'\t'。

Allow quoted data?:是否允许引用的数据,如果选择true,则表示可以允许拆分完成的参数之间有分隔符出现。比如,引用文件中的值为:"31,celling",998d9e385a0c25b0e750,如果此处选择true,则拆分后的参数为31,celling和998d9e385a0c25b0e750。 Recycle on EOF?:参数文件是否循环遍历。 Stop thread on EOF?:当读取到参数文件末尾时,是否停止读取线程,默认为 false。当 Recycle on EOF? 设置为 true 时,此项不起任何作用。当且仅当 Recycle on EOF? 为 false 时,此项配置才生效。 Sharing mode:参数文件共享模式。主要有以下三种模式:

  • All threads:参数文件对所有线程共享,包括同一测试计划中的不同线程组;
  • Current thread group:只对当前线程组中的线程共享;
  • Current thread:仅对当前线程获取。

函数助手

CSV Data Set Config元件可以动态替换指定数据的参数值,如果我们想让某个值的内容是随机生成的,可以使用函数来生成。位置在快捷工具栏的倒数第二位:

介绍一个生成随机字符串的函数,__RandomString。Random string lengh:生成的字符串长度。 Chars to use for random string generation:指定用哪个字符作为种子进行随机生成,可支持中文、数字、字母。 Name of variable in which to store the result (optional):可选项,填了之后,运行脚本后可以在Debug Sampler中看到这个变量的值。 填写好参数之后,点击Generate,会生成一串字符${__RandomString(30,abt2345函数kji助手,)},可直接作为请求中的参数化数据,如下图所示。

运行结果可以看到,每次请求时携带imei参数均为随机生成的字符串:

当然,函数助手中有很多强大的函数,在此不一一列举。

访问地址参数化

在实际测试过程中,有时测试地址会发生变化,将访问地址参数化之后,只需改动参数对应的值就可以改变访问地址。具体过程如下: -在HTTP请求中设置参数URL和PORT

-在User Defined Variables中定义URL和PORT具体值

用户参数

在该元件中,可以看到有“Add Variable”、“Add User”、“Delete Variable”、“Delete User”,在进行参数化取值时,根据用户进行区分。

比如,有两个线程,分别要取变量imei的值,则可以分别从此处取值,效果与其他方法相同。

结束语

参数化能够帮助我们把固定数据动态化,更加贴合实际的模拟用户请求,利用好参数化功能可以有效提高测试效率,更加合理评估线上服务性能或进行性能调优。想了解更多Jmeter的知识,请持续关注吧~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软测小生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置元件-CSV Data Set Config
  • 函数助手
  • 访问地址参数化
    • 结束语
    相关产品与服务
    文件存储
    文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档