Gatling 中有 Pebble 模板的官方文档:https ://gatling.io/2018/11/06/gatling-3-pebble-templating/
最后你可以看到代码:
{% for child in children %}
{
"id": {{child.id}},
"name": "{{child.name}}"
}{% if loop.last %}{% else %},{% endif %}
{% endfor %}
这意味着该children
变量是一个列表,其中包含一个带有键的映射,id
但是name
如何创建这样的列表并让 Pebble 知道呢?
目前我有一种创建地图列表的方法:
def getArray(count: Integer): mutable.MutableList[Map[String, String]] = {
var array = mutable.MutableList[Map[String, String]]()
for (i <- 0 until count) {
array += Map(
"UniqueString" -> UUID.randomUUID.toString,
"RandomNumber" -> (Random.nextInt(10000) + 10000).toString,
"contentId" -> UUID.randomUUID.toString
)
}
array
}
我有一个喂食器:
val elementsFeeder = Iterator.continually(Map(
"elements" -> getArray(documentsMultiple)
))
我像往常一样喂它:
def archive = repeat(1){
feed(elementsFeeder)
.exec(
.......
我的鹅卵石模板如下所示:
[
{% for element in elements %}
Debugging info <element>: {{element}}
{"name": "{{element.UniqueString}}",
"value": "{{element.RandomNumber}}"}{% if loop.last %}{% else %},{% endif %}
{% endfor %}
]
但是,当调试行看起来像这样时,我只看到引号之间的空格而不是名称和值:
Debugging info <element>: Map(UniqueString -> 81a92aeb-3966-43ff-8c42-1e0e93ace3a4, RandomNumber0To100000 -> 11775, contentId -> 436701db-d66b-4819-b33e-3e455dbe19fc)
即使我通过.asJava
在新的 Map 声明之后添加来更改地图生成以将它们转换为 Java 的地图,我仍然会看到空格和如下输出:
Debugging info <element>: {UniqueString=119593c6-e526-4cca-a2d5-34d57bbfb22d, RandomNumber0To100000=16945, contentId=57385850-670b-484b-96e6-a1ec05c568ac}