我是加特林和斯卡拉的新手,并希望得到一些建议。使用以下代码:
.check(
regex(""""childClientIds":\["([^]]*)"""")
.find
.transform(_.split("""\",\"""").map(_.trim).toSeq)
.saveAs("ChildClientIDs")
)
我设法将ID列表保存到会话变量ChildClientIDs。来自加特林日志:
Session(Dashboard,1,Map(ChildClientIDs -> WrappedArray(ID1, ID2, ID3, etc.
如何访问ChildClientIDs中的各个元素并在请求中使用它们?正如预期的那样,${ChildClientIDs}
会将整个数组放入请求中。我怎样才能在数组中使用第n个元素? ${ChildClientIDs}[n]
和${ChildClientIDs[n]}
没有做到这一点。
答案 0 :(得分:1)
我想我已经回答了我自己的问题。
根据文档https://gatling.io/docs/2.3/session/expression_el/ ${ChildClientIDs(n)}
是要走的路。
答案 1 :(得分:0)
如果您不想使用EL,无论出于何种原因,您可以尝试:
public class PersonIdentifier {
private final int id;
private final String ssn;
public PersonIdentifier(int id, String ssn) {
this.id = id;
this.ssn = ssn;
}
//getters, NO setters since fields are final...
//now the relevant methods!
@Override
public int hashCode() {
//available since Java 7...
return Objects.hash(id, ssn);
}
@Override
public boolean equals(Object o) {
if (o == null) return null;
if (this == o) return true;
if (!o.getClass().equals(this.getClass())) return false;
Person another = (Person)o;
return another.id == this.id && another.ssn.equals(this.ssn);
}
}
//...
Map<PersonIdentifier, Person> peopleMap = new HashMap<>();
peopleMap.put(new PersonIdentifier(1, "123456789"), new Person(/* fill with values like firstName, lastName, etc... */));
peopleMap.put(new PersonIdentifier(2, "987654321"), new Person(/* fill with values like firstName, lastName, etc... */));
//and on...