我正在创建一个文本文件,我需要动态替换许多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>
......
我的功能文件:
Scenario:
* def textContent = karate.readAsString('classpath:resources/NTSH.A01')
* replace textContent
|token |value |
|barcode0|0 |
|barcode1|1 |
|barcode2|2 |
|barcode3|3 |
|barcode4|4 |
|barcode5|5 |
|barcode6|6 |
|barcode7|7 |
......
如果有成千上万的替换件,那么在功能文件中的方案部分中写这不是一个好主意
答案 0 :(得分:3)
在这里您可以开始编写小段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)
data.replace()
实际上是Java replace()
对象上的相同String
方法。如果您想了解更多信息,请参考“ Java互操作”文档。