在ISO8583的JMeter上使用JPOS运行多线程时发生错误

问题描述

我正在尝试使用jpos插件为多个用户运行我的IS08583脚本。但是我可以在Sampler Result中找到以下Output。任何人都可以建议在jpos中需要更改哪些设置才能在多个用户上运行我的脚本而不会出现此错误。目前,我仅运行2个线程,其中一个线程给出成功的输出,其他线程给出错误,如下所述。

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

SampleResult字段: 内容类型: DataEncoding:空

解决方法

在同一套接字连接上发送和接收多个请求和响应消息时, jPOS需要将响应(因为响应顺序可能不同)与请求进行匹配。 它基于为每个消息生成的密钥来执行此操作,例如jmeter-2d8b3043-send.120000003938777.req

120000003938777部分(默认情况下)是从字段MTI(1200),DE41和DE11(大概是00003和938777)生成的。

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

您可以做的是:

  • 更改字段DE41和/或DE11,或
  • 如果您的消息不包含这些字段,请在“ Mux Key Configuration ”下的“ ISO8583连接配置”中定义不同的密钥,并进行更改。

JMeter函数${__time()}${__RandomString()}对此非常有用。

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

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