You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter下如何用Groovy将含特殊字符的多行EDIFACT报文存入变量

问题原因

你出现的语法报错是因为Groovy中普通双引号"仅支持定义单行字符串,不能直接包含换行符,同时EDIFACT报文中的大量特殊符号也会触发Groovy的转义解析逻辑,导致代码无法正常编译。

解决方法

直接使用Groovy原生的多行文本语法:用三个单引号'''包裹完整的EDIFACT报文即可。这种语法会完全保留原文的换行、空格、特殊符号,不需要对任何字符做转义,完美适配你的场景。

修改后完整代码
def sessInboundQueue = System.getProperties().get("SessionInbound")
def destinationInboundQueue = System.getProperties().get("DestinationInbound")
def producer = sessInboundQueue.createProducer(destinationInboundQueue) 

// 用三个单引号包裹多行报文,无需转义任何特殊字符
def payload = '''AAA:+.? '
ABC+ABCD:1+ABCDEFG:ZZ+ABCDEF:ZZ+123456:2042+12345678901++ABCD'
DEF+ABCD+LH+FVKJUB+20000:2042+Y1234567+UN+D:21B'
GHI+1+ABCD:D:11A:AA:ABCD+ABCD12345678901123ABC123456'
JKL+745'
HHH+TN:IIAA891011213531235BNM422244:::001'
CCC+NT+++ABCDEFGHIJKLMNOPQRS'
STU+00123456789012:UF+0000000000:GY'
VXY+50+MI1234+++MI'
AAA+235+ABC'
BBB+200:3202062000:301'
FFF+90+USA'
BBB+232:2101051135:201'
CCC+FF+++AaBaBa001:TEST1'
DDD+3++G'
EEE+329:711013'
FFF+178+XXX'
FFF+179+YYY'
GGG+2+ZZZ'
HHH+BXG:ABCDEF'
HHH+ABC:12AB3E01234E8UD8'
III+P:110:111+100000001'
EEE+36:281105'
FFF+91+ASD'
VVV+50:2'
XXX+0011+1'
YYY+1+U0123456'
ZZZ+1+U1234560002'''
def msg = sessInboundQueue.createTextMessage(payload)
额外说明
  • 如果你的EDIFACT报文规范要求不能携带换行符,只需在赋值后调用替换方法去除换行即可:def payload = '''你的报文内容'''.replaceAll("\\n", "")
  • 如果你需要动态修改报文中的字段(比如动态替换时间、流水号),可以将三个单引号替换为三个双引号""",直接在报文中用${变量名}插入动态值即可。

内容的提问来源于stack exchange,提问作者JustNatural

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:15:09