Karate 有没有简单的方法来替换文本中的数百个占位符

Karate 有没有简单的方法来替换文本中的数百个占位符,karate,Karate,我正在创建一个文本文件,我需要动态地替换不同行的大量ID。我注意到“replace”关键字的用法,但是,对于成千上万的占位符替换,最好不要将所有内容都写在特性中 我创建了这样一个模板文件(NTSH.A01)(事实上,有数千行): SEQ PAT WELL COUNTS CONC PLATENR CODE 29 13 A04 14033 3.6 1 L 32 14 A05 2993 5.4 1 M 32 15 A

我正在创建一个文本文件,我需要动态地替换不同行的大量ID。我注意到“replace”关键字的用法,但是,对于成千上万的占位符替换,最好不要将所有内容都写在特性中

我创建了这样一个模板文件(NTSH.A01)(事实上,有数千行):

SEQ  PAT  WELL  COUNTS CONC PLATENR   CODE
29   13  A04    14033   3.6       1    L
32   14  A05    2993    5.4       1    M
32   15  A06    2993    9.4       1    H
33   17  A07    2993    9     1  <barcode0>
33   17  A08    2993    9     1  <barcode1>
33   17  A09    2993    9     1  <barcode2>
33   17  A10    2993    9     1  <barcode3>
33   17  A11    2993    9     1  <barcode4>
33   17  A12    2993    9     1  <barcode5>
33   17  B01    2993    9     1  <barcode6>
33   17  B02    2993    9     1  <barcode7>
 ......

如果有数千个替换项,那么在功能文件的“场景”部分中编写就不是一个好主意。在这里,您可以开始编写小部分JavaScript甚至Java代码来完成您想要的任务。以下是一种可能的方法:

* def data = karate.readAsString('classpath:resources/NTSH.A01')
* def fun = function(n){ var temp = data.replace('<barcode' + n + '>', n + ''); karate.set('data', temp) }
* eval karate.repeat(8, fun)
*def data=karate.readAsString('classpath:resources/NTSH.A01'))
*def fun=function(n){var temp=data.replace('',n+'');karate.set('data',temp)}
*评估空手道。重复(8,有趣)

data.replace()
实际上是Java
String
对象上相同的
replace()
方法。如果您想了解更多信息,请参阅“Java interop”上的文档。

我认为您可以调用javascript函数来完成此操作。
* def data = karate.readAsString('classpath:resources/NTSH.A01')
* def fun = function(n){ var temp = data.replace('<barcode' + n + '>', n + ''); karate.set('data', temp) }
* eval karate.repeat(8, fun)