首页 > 解决方案 > Jmeter参数化WebSocket变量

问题描述

我在 JMeter 中测试后端应用程序(也是 Java 和 Node JS,通信:NodeJs 部分中的 WebSocket 和 Java 部分中的 http)我必须参数化 url,以便在开发 url、生产和 prepod 之间切换

我是通过 CSV 文件完成的。我在拥有 Jmeter 5.0 的文件夹中创建了文件夹 CSV。我准备了3个csv文件

1.发展是:

protocol,   host
http,   10.219.227.66

2.prepod

protocol,   host        
https,  prepod.myprepod.io

3.生产

protocol,   host        
https,  production.myproduction.io

我这样设置:

CSV 数据集配置

Filename ${_P()/usr/local/Cellar/jmeter/5.0/libexec/CSV/development,development}.csv
variable Names ; protocol,host

WebSocket 打开连接服务器名称或 IP ${host}

Switch Controller
Switch Value ${protocol}
HTTP Request Default - server name or ip ${host}, protocol http ${protocol}

用户定义的变量

name        value
protocol .  ${_P(protocol,)}
host .      ${_P(host,)}

问题是:

  1. 我的设置有什么问题?我必须改进什么以及如何改进?
  2. 我将测试保存在桌面上,但是我在计算机的其他地方有 Jmeter 5.0 - 在 users 中是文件夹 jmeter 5 - 如果这可能是一个问题?
  3. 有谁知道为什么它对我不起作用以及如何解决它?

标签: urljmeter

解决方案


一切都错了

  1. 鉴于您在 CSV 文件中定义protocolhost变量,您无需在CSV Data Set Config中声明它们,只需将该字段留空

    JMeter 支持 CSV 文件,该文件具有定义列名的标题行。要启用此功能,请将“变量名称”字段留空。必须提供正确的分隔符。

  2. 不要使用 CSV 文件的完整路径,因为这很可能会导致无法在其他机器、分布式模式持续集成服务器上运行测试。

    JMeter CSV 数据集配置

    所以去寻找类似的东西${__P(environment,development)}.csv

  3. 使用调试采样器protocol查看结果树侦听器组合仔细检查host变量是否具有预期值

    JMeter 调试采样器视图结果树侦听器

    如果您没有看到它们 - 检查jmeter.log文件是否有任何可疑条目,很可能 JMeter 无法找到 .csv 文件并从中读取变量。有关更多详细信息,请参阅如何调试 Apache JMeter 脚本文章。

  4. 我在您的 CSV 文件中看不到任何WebSocket URL 架构(wswss,所以我怀疑您的 WebSocket Open Connection Server 是否会成功执行。

推荐阅读