如何从使用SOUPUI的Json响应中获得具体的值

问题描述:

我对SOUPUI非常陌生,我能够读取restapi的响应,并且能够保存到文件中,我在这个地方提出了我想要存储响应中的值。请帮忙。如何从使用SOUPUI的Json响应中获得具体的值

我的问题:

  1. 我如何可以存储从以下响应的随机雇员(挑选任何雇员随机)。?
  2. 如何使用员工姓名获得特定的employeeId(如果“firstName”名称是“Daitha”,我想获得“employeeId”)?
  3. 我如何读取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" 
      }] 
     } 
    } 
} 

感谢

+0

建议我任何groovy脚本..它可以解决问题。 –

尚卡尔,

你可以玩弄以下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>