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

简介: 软件测试|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 则适用于执行数据库操作等。因此,在选择参数化方式时需要根据测试场景进行选择。
相关文章
|
2月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
169 3
|
3月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
124 2
|
4月前
|
监控 Java
压力测试Jmeter的简单使用,性能监控-堆内存与垃圾回收 -jvisualvm的使用
这篇文章介绍了如何使用JMeter进行压力测试,包括测试前的配置、测试执行和结果查看。同时,还探讨了性能监控工具jconsole和jvisualvm的使用,特别是jvisualvm,它可以监控内存泄露、跟踪垃圾回收、执行时内存和CPU分析以及线程分析等,文章还提供了使用这些工具的详细步骤和说明。
压力测试Jmeter的简单使用,性能监控-堆内存与垃圾回收 -jvisualvm的使用
|
1月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
77 3
|
1月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
59 1
|
3月前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
120 10
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
1月前
参数化测试
参数化测试
27 0
|
2月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【10月更文挑战第1天】告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
83 4
|
3月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
269 7
Jmeter实现WebSocket协议的接口测试方法
|
3月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【9月更文挑战第10天】随着软件应用的不断扩展,性能测试成为确保系统稳定运行的关键环节。本文通过对比Apache JMeter和Locust,探讨了如何在Python环境中利用这两款工具挖掘更多性能测试潜力。JMeter是一款成熟且功能强大的开源工具,支持多种协议,适用于各种应用的测试;而Locust则基于Python,通过简单脚本模拟HTTP请求,更适合Web应用测试。
106 3