首页 > 解决方案 > 在 ISO8583 的 JMeter 上使用 JPOS 运行多个线程时出错

问题描述

我正在尝试使用 JPOS 插件为多个用户运行我的 IS08583 脚本。但是我可以在采样器结果中的输出下方找到。谁能建议在 JPOS 中需要更改哪些设置才能在多个用户上运行我的脚本而不会出现此错误。目前我只运行 2 个线程,其中一个线程给出了成功的输出,其他的给出了错误,如下所述..

线程名称:GBM_Transaction 示例开始:2020-08-24 15:45:13 IST 加载时间:1 连接时间:0 延迟:0 字节大小:0 发送字节:0 标头大小(字节):0 正文大小(字节):0样本计数:1 错误计数:1 数据类型(“text”|“bin”|“”):文本响应代码:响应消息:org.jpos.iso.ISOException:重复键'jmeter-2d8b3043-send.120000003938777.req ' 检测到

SampleResult 字段:ContentType:DataEncoding:null

标签: jmeteriso8583jpos

解决方案


当通过同一个套接字连接发送和接收多个请求和响应消息时,jPOS 需要将响应(因为它们可能以不同的顺序出现)与请求相匹配。它根据为每条消息生成的密钥来执行此操作,例如jmeter-2d8b3043-send.120000003938777.req.

该部分120000003938777是从字段 MTI (1200)、DE41 和 DE11(推测为 00003 和 938777)生成的(默认情况下)。

如果您的脚本没有像建议的那样随机更改这些字段,例如,将为多条消息生成相同的密钥,并且当 jPOS 检测到重复密钥时您会收到该错误。显然,这使得不可能明确地匹配对请求的响应。

你可以做的是:

  • 更改字段 DE41 和/或 DE11,或
  • 如果您的消息不包含这些字段,请在“ Mux Key Configuration ”下的“ ISO8583 Connection Configuration ”中定义不同的键并改变它们。

JMeter 的功能${__time()}非常${__RandomString()}有用。

另请参阅https://github.com/jpos/jPOS/blob/master/doc/src/asciidoc/ch08/qmux.adoc#mti-mapping-and-default-key

免责声明:我是 JMeter ISO8583 插件的作者。


推荐阅读