前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >性能测试工具Jmeter参数化方法

性能测试工具Jmeter参数化方法

原创
作者头像
漫谈测试
发布2025-01-08 20:02:50
发布2025-01-08 20:02:50
550
举报
文章被收录于专栏:漫谈测试漫谈测试

Jmeter配置元件功能相对比较强大,不仅可以进行参数化,存储服务的响应信息参数化,还可以进行初始化配置JDBC,配置与数据库的链接等。

CSV数据文件设置

我们通常使用CSV格式的文件来存储参数文件,元件CSV数据文件设置可以从指定的文件中逐行提取文本内容,根据所设置的分隔符拆解本行内容并自动关联内容与变量名,取样器可以引用这些变量。CSV数据文件设置添加方式如下图。

图片
图片
图片
图片
图片
图片

CSV数据文件设置中的信息说明

名称:可以随意设置,尽可能按照业务方向进行命名。

注释:可以随意设置,也可以不进行填写。

文件名:引用文件地址,可以是相对路径,也可以是绝对路径。相对路径的根节点是Jmeter的启动目录(%JMETER_HOME%\bin),上图配置的路径为绝对路径。

如果你的测试执行是分发到多台远程负载及机,并且可能有些机器的JMeter安装文件不在相同目录下,这时候就要用到相对路径进行处理,它能够保证每台负载机执行时候脚本参数化文件都能够被读取到。另外也可以利用Jmeter的变量参数化参数文件的路径,将路径配置在用户自定义变量元件中设置。

文件编码:读取参数文件引用到编码格式,建议大家使用utf-8格式保存参数文件,避免出现乱码现象。

变量名称:定义的参数名称,用英文逗号隔开,将会与参数文件中的参数对应。如果这里的参数个数参数文件中的参数列比较多,多余的参数将取不到值;反之,参数文件中部分列没有参数对应。

分隔符(用:“\t”代替制表符):用来分隔参数文件的分隔符,默认为逗号,也可以用tab来分隔。如果参数文件用tab分隔,再次应该填写“\t”。

是否允许带引号:是非选项。如果选择“是”,那么允许拆分完成的参数力面有分隔符出现。

遇到文件结束符再次循环:是非选项。如果选择“是”,参数文件循环遍历;如果选择“否”,参数文件遍历完成后退出循环(JMeter在测试执行过程中每次迭代会从参数文件中新取一行数据,从头遍历到尾)。

遇到文件结束符停止线程:与“遇到文件结束符再次循环”中的False选择复用。

如果选择“是”,停止测试;如果选择“否”,不停止测试。

线程共享模式:参数文件共享模式,有以下3种。

所有线程。参数文件对所有线程共享,这就包括同一测试计划中的不同线程组。

当前线程组。只对当前线程组中的线程共享。

Jmeter可以使用${变量名}来实现变量引用,如下图,登录名和密码,服务地址,使用了变量名。

图片
图片

函数助手参数化

通过单机快捷菜单调出Jmeter函数助手。如下图的"_RandomString"这个函数来生成随机字符串。

图片
图片

RandomString函数使用说明如下。

Random stringlength:生成的字符串长度。

Chars lo use for random string generation:指定选择字符组,从中选择随机生成的字符,可以支持中文、数字、字母等。

存储结果的变量名:可选项,选择并运行后,可以在DubugSampler中看到这个变量的值。

图片
图片

HTTP请求默认值

开发脚本过程中,由于服务器地址和端口基本不变,配置参数步骤较多,但是Jmeter提供了更好使用的方式,通过HTTP请求默认值来实现参数化。

如下图HTTP请求默认值元件,在本例中只需要填写服务器名称或IP地址,端口号,协议即可。如果用户的系统编码为GBK,那么在内容编码中填写GBK,此时就实现了通过HTTP默认值进行请求。

图片
图片
图片
图片

访问地址参数化

在实际测试过程中,通常开发脚本时和执行测试时的服务器地址不同,所以访问地址也应该参数化。这样,当访问地址发生变化时候,只需要修改参数化对应的值即可,无需修改没有链接的地址。

图片
图片
图片
图片

Jmeter常用的参数化方式如下

CSV Data Set Config:

这是进行参数化的首选工具之一。通过 CSV 文件为测试提供输入数据。每个线程(或用户)可以从文件中读取一行作为测试数据。你可以指定是否要共享这些数据(所有线程共用还是每个线程有自己的副本),以及当文件结束时应该发生什么(停止线程、循环等)。

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

在测试计划级别设置变量及其值,这些变量可以在整个测试计划中的任何地方使用。这对于需要在整个测试过程中保持不变的参数非常有用,例如服务器名称或端口号。

HTTP Request Defaults:

设置 HTTP 请求的默认值,如服务器名称、端口、协议等。这可以减少重复配置,并且使得修改全局设置变得容易。你还可以在此处使用变量来动态更改某些请求属性。

函数和表达式:

使用内置函数如 ${__Random()}, ${__time()}, ${__UUID()} 等生成动态值。此外,正则表达式提取器和 JSON 提取器可用于从响应中抽取信息并将其作为后续请求的参数。

Parameterized HTTP Requests:

直接在 HTTP 请求中添加参数,并将它们设为变量。然后可以通过其他组件(如 CSV Data Set Config 或者 User Defined Variables)为这些变量赋值。

Property Files and Command Line Arguments:

通过外部属性文件或命令行传递参数给 JMeter 测试计划。这种方式非常适合在不同的环境中运行相同的测试脚本而不需要修改测试计划本身。

Regular Expression Extractor 和 JSON Extractor:

用于从上一个请求的响应中提取数据,并将该数据用作下一个请求的参数。这对于模拟登录会话、处理分页结果等情况特别有用。

Beanshell Sampler/Preprocessor/Postprocessor 或 JSR223 Sampler:

如果你需要更复杂的逻辑来生成或处理参数,可以使用 Beanshell 或 JSR223 元素编写自定义代码。JSR223 支持多种语言,如 Groovy,它通常比 Beanshell 更快且功能更强大。

Test Fragment with Module Controller:

将可复用的测试片段封装起来,通过模块控制器引用它们。这样可以简化大型测试计划的设计,并允许重用公共测试逻辑。

阅读后若有收获,不吝关注,分享,在看等操作!!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CSV数据文件设置
  • 函数助手参数化
  • HTTP请求默认值
  • 访问地址参数化
  • Jmeter常用的参数化方式如下
    • CSV Data Set Config:
    • User Defined Variables (用户定义的变量):
    • HTTP Request Defaults:
    • 函数和表达式:
    • Parameterized HTTP Requests:
    • Property Files and Command Line Arguments:
    • Regular Expression Extractor 和 JSON Extractor:
    • Beanshell Sampler/Preprocessor/Postprocessor 或 JSR223 Sampler:
    • Test Fragment with Module Controller:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档