首页 > 解决方案 > 如何使用javascript替换位于本地的文件中的值?

问题描述

我有一个场景,在读取文件后,它需要替换该文件中的值。

我们从我们的 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代码?谢谢你。

标签: performancegroovyneoload

解决方案


字符串在 Javascript 和 Java 中是不可变的,您将在其中替换它

var id = line.replace(new RegExp("596791365558876095", "12345678"), "");

但随后您再次将var 行用于新变量。

var destFile = line;

它应该是

var destFile = id;

因为 replace 将返回一个带有替换值的新字符串。


推荐阅读