首页 > 其他分享 >软件测试|JMeter 参数化的方式有哪些

软件测试|JMeter 参数化的方式有哪些

时间:2023-08-07 18:23:18浏览次数:37  
标签:Extractor 请求 方式 哪些 变量值 参数 使用 JMeter 软件测试

JMeter 中常见的参数化方式包括:

  1. CSV 数据文件:从 CSV 文件中读取数据,并将其用于请求参数。
  2. 数据库访问:从数据库中读取数据,并将其用于请求参数。
  3. 用户定义的变量:手动定义变量值,并将其用于请求参数。
  4. 随机变量:随机生成变量值,并将其用于请求参数。
  5. Counter:生成一个递增的计数器,并将其用于请求参数。
  6. BeanShell/JSR223:使用脚本来生成需要的参数值,并将其用于请求参数。
  7. XPath Extractor:从响应中提取指定的 XML 值,并将其用于请求参数。
  8. HTTP URL Re-writing Modifier:从请求 URL 中提取参数值,并将其设置为变量值。
  9. JDBC PreProcessor:在请求执行前,先执行 SQL 语句并将结果设置为变量值。
  10. JSON Extractor:从响应中提取指定的 JSON 值,并将其用于请求参数。
  11. Regular Expression Extractor:从响应中提取指定的文本值,并将其用于请求参数。

每种参数化方式使用方式如下:

1. CSV 数据文件
使用 CSV 数据文件的方式,可以将请求中的参数值替换为文件中的值。具体步骤如下:

  • 创建一个 CSV 文件,文件中包含需要替换的参数值。
  • 在 JMeter 中,使用 CSV Data Set Config 元件来读取 CSV 文件,并将其设置为变量名和变量值的映射关系。
  • 在请求中,使用 ${variable_name} 的方式来引用变量名,并将其替换为变量值。

2. 数据库访问
使用数据库访问的方式,可以从数据库中获取值并将其用于请求参数。具体步骤如下:

  • 在 JMeter 中,使用 JDBC Connection Configuration 元件来配置数据库连接信息。
  • 使用 JDBC Request 元件来执行 SQL 语句,并将结果设置为变量值。
  • 在请求中,使用 ${variable_name} 的方式来引用变量名,并将其替换为变量值。

3. 用户定义的变量
使用用户定义的变量的方式,可以在测试计划中定义变量,并在请求中使用这些变量。具体步骤如下:

  • 在测试计划中,使用 User Defined Variables 元件来定义变量名和变量值的映射关系。
  • 在请求中,使用 ${variable_name} 的方式来引用变量名,并将其替换为变量值。

4. 随机变量
使用随机变量的方式,可以使用 JMeter 提供的随机函数生成随机值,并将其用于请求参数。具体步骤如下:

  • 在请求中,使用 ${__Random(1,100)} 的方式来生成 1 到 100 之间的随机数,并将其替换为请求参数的值。

除了前面提到的 CSV 数据文件、数据库访问、用户定义的变量和随机变量之外,JMeter 还有以下参数化方式:

5.Counter
使用 Counter 元件的方式,可以生成一个递增的计数器,并将其用于请求参数。具体步骤如下:

  • 在测试计划中,使用 Counter 元件来定义计数器的起始值、步长和结束值。
  • 在请求中,使用 ${__counter(起始值,步长)} 的方式来引用计数器,并将其替换为请求参数的值。

6.BeanShell/JSR223
使用 BeanShell/JSR223 的方式,可以使用脚本来生成需要的参数值,并将其用于请求参数。具体步骤如下:

  • 在测试计划中,使用 BeanShell/JSR223 元件来编写脚本,并将脚本输出设置为变量值。
  • 在请求中,使用 ${variable_name} 的方式来引用变量名,并将其替换为变量值。

7.XPath Extractor
使用 XPath Extractor 的方式,可以从响应中提取指定的 XML 值,并将其用于请求参数。具体步骤如下:

  • 在请求中,使用 XPath Extractor 元件来提取 XML 值,并将其设置为变量值。
  • 在请求中,使用 ${variable_name} 的方式来引用变量名,并将其替换为变量值。

8. HTTP URL Re-writing Modifier
使用 HTTP URL Re-writing Modifier 的方式,可以从请求 URL 中提取参数值,并将其设置为变量值。具体步骤如下:

  • 在请求中,使用 HTTP URL Re-writing Modifier 元件来提取 URL 参数值,并将其设置为变量值。
  • 在请求中,使用 ${variable_name} 的方式来引用变量名,并将其替换为变量值。

9. JDBC PreProcessor
使用 JDBC PreProcessor 的方式,可以在请求执行前,先执行 SQL 语句并将结果设置为变量值。具体步骤如下:

  • 在请求中,使用 JDBC PreProcessor 元件来执行 SQL 语句,并将结果设置为变量值。
  • 在请求中,使用 ${variable_name} 的方式来引用变量名,并将其替换为变量值。

10. JSON Extractor
使用 JSON Extractor 的方式,可以从响应中提取指定的 JSON 值,并将其用于请求参数。具体步骤如下:

  • 在请求中,使用 JSON Extractor 元件来提取 JSON 值,并将其设置为变量值。
  • 在请求中,使用 ${variable_name} 的方式来引用变量名,并将其替换为变量值。

11. Regular Expression Extractor
使用 Regular Expression Extractor 的方式,可以从响应中提取指定的文本值,并将其用于请求参数。具体步骤如下:

  • 在请求中,使用 Regular Expression Extractor 元件来提取文本值,并将其设置为变量值。
  • 在请求中,使用 ${variable_name} 的方式来引用变量名,并将其替换为变量值。

使用时的建议

这些参数化方式可以根据测试需求进行灵活选择和组合。根据测试需求进行参数化方式的选择和组合,可以根据以下几个方面进行考虑:

  1. 数据来源:不同的参数化方式适用于不同的数据来源,如 CSV 数据文件适用于从文件中读取数据,数据库访问适用于从数据库中读取数据等。因此,在选择参数化方式时需要根据数据来源进行选择。
  2. 数据格式:不同的参数化方式适用于不同的数据格式,如 XML 和 JSON 数据适用于 XPath Extractor 和 JSON Extractor 等。因此,在选择参数化方式时需要根据数据格式进行选择。
  3. 数据量:不同的参数化方式适用于不同的数据量,如随机变量适用于生成大量随机数据,而用户定义的变量适用于手动定义少量数据等。因此,在选择参数化方式时需要根据数据量进行选择。
  4. 数据处理:不同的参数化方式适用于不同的数据处理需求,如 BeanShell/JSR223 适用于需要使用脚本来处理数据,而 Regular Expression Extractor 适用于需要从响应中提取指定的文本值等。因此,在选择参数化方式时需要根据数据处理需求进行选择。
  5. 性能要求:不同的参数化方式对性能的影响不同,如使用 CSV 数据文件可能会导致性能下降,而使用用户定义的变量则不会。因此,在选择参数化方式时需要根据性能要求进行选择。
  6. 可维护性:不同的参数化方式对测试脚本的可维护性有影响,如使用 BeanShell/JSR223 脚本可能会导致测试脚本难以维护,而使用用户定义的变量则相对容易维护。因此,在选择参数化方式时需要根据测试脚本的可维护性进行选择。
  7. 测试场景:不同的参数化方式适用于不同的测试场景,如使用随机变量适用于模拟用户行为,而使用 JDBC PreProcessor 则适用于执行数据库操作等。因此,在选择参数化方式时需要根据测试场景进行选择。

标签:Extractor,请求,方式,哪些,变量值,参数,使用,JMeter,软件测试
From: https://www.cnblogs.com/hogwarts/p/17612155.html

相关文章

  • 软件测试|web自动化测试神器playwright教程(二十八)
    前言在我们使用部分网站的时候,我们会遇到进行日期选择的问题,比如我们预定火车票或者预定酒店,需要选择发车日期或者酒店的入住与退房时间。我们执行自动化测试遇到日期控件时,如果可以输入,可以使用selenium的send_keys()方法进行输入,playwright同样也可以实现对日期控件的操作,本文......
  • 有哪些好用的值得推荐的全球代理IP产品?
    在当今快速发展的互联网环境中,代理IP的重要性愈发凸显,为多种业务的开展提供了关键性的支持。在这个背景下,选择合适的代理服务商对企业维护信息安全,高效采集数据、发展跨境业务等方面都至关重要。那么,在众多的代理产品中,有哪些是值得推荐的优质选择呢?IPIDEA1.IP池规模:9000万动态IP,海......
  • JMeter源码解析之结果收集器
    一、JMeter结果收集器概述JMeter是在压力领域中最常见的性能测试工具,由于其开源的特点,受到广大测试和开发同学的青睐。但是,在实际应用过程中,JMeter存在的一些性能瓶颈也凸显出来,经常会遇到大并发下压不上去的情况。笔者通过深入分析其源码实现,找到JMeter存在的瓶颈问题及根本原因,为......
  • 【软件测试学习】—软件测试的基本认识(一)
    【软件测试学习】—软件测试的基本认识(一)文章目录【软件测试学习】—软件测试的基本认识(一)一、什么是软件测试二、软件测试的目的三、测试的原则四、测试的标准五、测试的基本要求六、bug的由来七、测试的流程八、开发模式九、测试与开发的关系一、什么是软件测试总结起来就是:使......
  • 车载水基灭火器亚马逊UL8测试报告的测试项目有哪些?
    车载水基灭火器UL8是一种常用于汽车、公共交通工具和消防车辆的灭火设备。为了确保其安全性和有效性,UL8灭火器需要经过一系列的测试项目和流程来检验其性能和质量。1、测试项目之一是外观检查。测试人员会仔细检查灭火器的外观,包括外壳是否完整无损、标识是否清晰可见等。这旨在确......
  • 软件测试-Web端测试方法总结
    一、输入框1.字符型输入框1)输入框格式校验英文全角、英文半角、数字、空或者空格、特殊字符“……!@#¥%……&*({【《,。?、:;‘<>’》】})”特别要注意单引号和&符号。禁止直接输入特殊字符时,使用“粘贴、拷贝”功能尝试输入。知识点扩展:全角/半角全角:一个字符占用两个标准字符位置半角:一个......
  • 学习Linux,要把握哪些重点?
    学习Linux,要把握哪些重点?不知道有没有想学习Linux,但又把握不住学习重点,找不到合适的学习方法的小伙伴,反正我刚开始学习Linux时就像无头苍蝇似的“乱撞”,没有把握住学习重点,不知道怎么去学,差点要放弃了,还好在慢慢的摸索中逐渐步入了正轨,找到了适合自己的学习方法。从Linux菜鸟一路......
  • 软件测试|web自动化测试神器playwright教程(十九)
    前言我们日常工作中,经常会遇到我们的页面内容较多,一个屏幕范围无法完整展示内容,我们就需要滚动屏幕去到我们想要的地方,如下页面,我们想要在豆瓣首页,内容并不完整,如果我们想要直接点击电影模块中的选电影按钮,是需要往下滑动的。click点击操作如下图,我们要在豆瓣首页点击选电影......
  • 软件测试|Python科学计算神器numpy教程(二)
    前言上一篇文章我们介绍了numpy的安装和ndarray的部分知识,本篇文章我们来介绍一下numpy的数组的常用属性以及创建数组相关内容。数组常用属性ndarray.shapeshape属性的返回值一个由数组维度构成的元组,比如2行3列的二维数组可以表示为(2,3),该属性可以用来调整数组维度的......
  • 软件测试|web自动化测试神器playwright教程(十七)
    前言上篇文章我们介绍了使用playwright下载文件的方法,本篇文章我们将介绍使用playwright上传文件。上传文件是我们经常需要面对的场景,如果我们使用的是selenium,那我们的操作会比较复杂,因为有的文件上传是input控件,有些是需要我们直接传文件地址,一旦弹出文件选择框的话,selenium就......