Karate 有没有简单的方法来替换文本中的数百个占位符
我正在创建一个文本文件,我需要动态地替换不同行的大量ID。我注意到“replace”关键字的用法,但是,对于成千上万的占位符替换,最好不要将所有内容都写在特性中 我创建了这样一个模板文件(NTSH.A01)(事实上,有数千行):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
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()
实际上是JavaString
对象上相同的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)