我有一个API来获取组织中员工姓名的列表,它支持order by子句。 我调用了一个API“ get / employeeName?$ ordeyby = name desc”。我得到如下结果,
{
"value":[
{
"name":"Sam"
},
{
"name":"Peter"
},
{
"name":"Harry"
},
{
"name":"Arnold"
}]
}
我已经解析了每个名称,并将其存储到字符串类型的变量中。
如何使用JAVA Script / BeanShell / Groovy验证返回的响应是降序排列的?
任何人都可以在这里提供帮助。以上任何一种语言都可以,我希望可以在JMeter中实现。
谢谢。
答案 0 :(得分:1)
您可以使用此方法在js中对其进行排序
var employers = [
{
"name":"Sam"
},
{
"name":"Peter"
},
{
"name":"Harry"
},
{
"name":"Arnold"
}];
console.log(employers.sort(function(e1,e2){
var alc = e1.name.toLowerCase(), blc = e2.name.toLowerCase();
return alc > blc ? 1 : alc < blc ? -1 : 0;
}));
答案 1 :(得分:1)
将以下代码放入“脚本”区域:
def expected = com.jayway.jsonpath.JsonPath.read(prev.getResponseDataAsString(), '$..name').sort().reverse()
new groovy.json.JsonSlurper().parse(prev.getResponseData()).value.eachWithIndex { def entry, int i ->
if (!entry.name.equals(expected.get(i))) {
AssertionResult.setFailure(true)
AssertionResult.setFailureMessage('Order mismatch, expected: ' + expected.get(i) + ', got: ' + entry.name)
}
}
更多信息: