如何从使用SOUPUI的Json响应中获得具体的值
问题描述:
我对SOUPUI非常陌生,我能够读取restapi的响应,并且能够保存到文件中,我在这个地方提出了我想要存储响应中的值。请帮忙。如何从使用SOUPUI的Json响应中获得具体的值
我的问题:
- 我如何可以存储从以下响应的随机雇员(挑选任何雇员随机)。?
- 如何使用员工姓名获得特定的employeeId(如果“firstName”名称是“Daitha”,我想获得“employeeId”)?
- 我如何读取employeeId使用数组(像第一,第二..employeeId)?
下面是示例响应:提前
{
"response": {
"stat": "SUCCESS",
"result": {
"employees": [{
"employeeId": "7d58129a-5ca3-4acd-a601-11478ba47988",
"firstName": "Daitha",
"lastName": "shankar",
"loginName": "[email protected]",
"mobileNumber": "xxxxxxxxxxxx",
"emailId": "[email protected]",
"rowStatus": "A",
"assetCount": 3087,
"canUseapp": "Y",
"supportUserInd": "N"
}, {
"employeeId": "e2dec6de-8882-4c5b-a875-41fffe8e977f",
"firstName": "john",
"lastName": "deo",
"loginName": "[email protected]",
"emailId": "[email protected]",
"rowStatus": "A",
"assetCount": 0,
"canUseapp": "Y",
"supportUserInd": "N"
}, {
"employeeId": "9a9e7ff6-edb7-402a-bed2-27e9036a716f",
"tenantBadgeId": "EMP11659824",
"firstName": "suman",
"lastName": "m",
"loginName": "[email protected]",
"mobileNumber": "xxxxxx",
"emailId": "[email protected]",
"rowStatus": "A",
"designation": "software QA engineer",
"assetCount": 0,
"canUseapp": "Y",
"supportUserInd": "N"
}, {
"employeeId": "9ecf7fc8-c06d-4e3c-a3a3-d2c50509c16b",
"firstName": "vinay",
"lastName": "B",
"loginName": "[email protected]",
"emailId": "[email protected]",
"rowStatus": "A",
"assetCount": 0,
"canUseapp": "Y",
"supportUserInd": "N"
}]
}
}
}
感谢
答
尚卡尔,
你可以玩弄以下Groovy脚本
import groovy.json.JsonSlurper
def responseContent = testRunner.testCase.getTestStepByName("Emp").getPropertyValue("response")
def r = new JsonSlurper().parseText(responseContent)
def employeesSize = r.response.result.employees.size()
//log.info "employee size:"+employeesSize
def list=new Object[4]
for(int i=0;i<employeesSize;i++)
{
//log.info r.response.result.employees[i].firstName
list[i] = r.response.result.employees[i].lastName
log.info list[i]
}
//log.info(list[3])
//log.info "stat:"+r.response.stat
for(int i=0;i<list.size();i++)
{
//list.each{log.info(it)}
def p=list[i]
if(p=="vinay")
{
//log.info "yes"
log.info r.response.result.employees[i].employeeId
}
else
{
//log.info "no"
}
}
//log.info r.response.result.employees[0].size()
def listempdata = r.response.result.employees[0]
//log.info listempdata
def k =new Object[r.response.result.employees[0].size()]
for(int j=1;j<r.response.result.employees[0].size();j++){
//k[j]=listempdata.each{it}.toString().split(",")
//listempdata.each{log.info (it)}
//log.info listempdata.lastName
}
+0
谢谢Kiran,它的工作很好.. –
答
<!DOCTYPE html>
<html>
<body>
<p>How to create a JavaScript object array.</p>
<p id="demo"></p>
<script>
var employees = '[{"employeeId": "7d58129a-5ca3-4acd-a601-11478ba47988","firstName": "Daitha","lastName": "shankar","loginName": "[email protected]","mobileNumber": "xxxxxxxxxxxx","emailId": "[email protected]","rowStatus": "A","assetCount": 3087,"canUseapp": "Y","supportUserInd": "N"}, {"employeeId": "e2dec6de-8882-4c5b-a875-41fffe8e977f","firstName": "john","lastName": "deo","loginName": "[email protected]","emailId": "[email protected]","rowStatus": "A","assetCount": 0,"canUseapp": "Y","supportUserInd": "N"}, {"employeeId": "9a9e7ff6-edb7-402a-bed2-27e9036a716f","tenantBadgeId": "EMP11659824","firstName": "suman","lastName": "m","loginName": "[email protected]","mobileNumber": "xxxxxx","emailId": "[email protected]","rowStatus": "A","designation": "software QA engineer","assetCount": 0,"canUseapp": "Y","supportUserInd": "N"}, {"employeeId": "9ecf7fc8-c06d-4e3c-a3a3-d2c50509c16b","firstName": "vinay","lastName": "B","loginName": "[email protected]","emailId": "[email protected]","rowStatus": "A","assetCount": 0,"canUseapp": "Y","supportUserInd": "N"}]';
var arr = JSON.parse(employees);
var i;
var out = "<table>";
for(i = 0; i < arr.length; i++) {
if(arr[i].firstName=="Daitha")
{
out += "<tr><td>" +
arr[i].employeeId +
"</td><td>" +
arr[i].firstName +
"</td></tr>";
}
}
out += "</table>";
document.getElementById("demo").innerHTML = out;
</script>
</body>
</html>
建议我任何groovy脚本..它可以解决问题。 –