问题描述
我们的脚本来自我们的 JMeter,我们的脚本来自于该脚本。 (请参考下方代码)
def file = new File('C:/Peak2020/China/${__time(YMMdd)}-085644-336_000101-plant 8956.xml')
def newConfig = file.text.replace('596791365558876095','000101')
file.text = newConfig
def newConfig2 = file.text.replace('C6D-CN-NBB2829A','C7D-CN-NBB$4568792B')
file.text = newConfig2
def sku = file.text.replace('323094-01','45903-01')
file.text = sku
我尝试在 neoload 中使用 replace() 执行此操作,但它不起作用。它确实将文件从源文件夹复制到目标文件夹,但值未更改。 (请参考下方代码)
var file = new java.io.BufferedReader(new java.io.FileReader("C:\\Peak2020\\China\\testSource1.xml"));
var line = file.readLine();
var id = line.replace(new RegExp("596791365558876095","12345678"),"");
var destFile = line;
var writer = new java.io.FileWriter("C:\\Peak2020\\Teemp\\TestDestination3.xml",true);
writer.write(destFile);
writer.close();
有谁知道使用什么正确的 javascript 代码?谢谢。
解决方法
字符串在 Javascript 和 Java 中是不可变的
var id = line.replace(new RegExp("596791365558876095","12345678"),"");
但随后您再次使用 var 行 作为新变量。
var destFile = line;
应该是
var destFile = id;
因为替换将返回一个带有替换值的新字符串。