如何在soapui中使用groovy验证API是否更新了值

如何在soapui中使用groovy验证API是否更新了值,groovy,soapui,Groovy,Soapui,我正在使用soapui和groovy实现api自动化和断言 有一个更新用户配置文件数据的API。i、 e更新用户名、姓氏、姓氏等 运行更新api后,验证数据是否已更新的最佳方法是什么。在groovy中,是否有任何方法可以存储API响应中以前的数据,然后运行更新API,再次检查响应,最后比较以前的响应和最新的响应 我所尝试的是比较我将通过API发送的值和API返回的值。如果两者相等,则假定值更新。但这似乎不是检查更新功能的完美方法 使用JDBC teststep直接在数据库中运行查询: 使用Xpa

我正在使用soapui和groovy实现api自动化和断言

有一个更新用户配置文件数据的API。i、 e更新用户名、姓氏、姓氏等

运行更新api后,验证数据是否已更新的最佳方法是什么。在groovy中,是否有任何方法可以存储API响应中以前的数据,然后运行更新API,再次检查响应,最后比较以前的响应和最新的响应

我所尝试的是比较我将通过API发送的值和API返回的值。如果两者相等,则假定值更新。但这似乎不是检查更新功能的完美方法


使用JDBC teststep直接在数据库中运行查询:

使用Xpath断言验证更新API
断言1
/Results/ResultSet[1]/Row[1]/FirstName
预期结果
更新的名字
断言2
/Results/ResultSet[1]/Row[1]/LastName
更新的姓氏

在我们的项目中,我们是这样做的:

  • 首先,我们执行所有API
  • 然后,我们在DB Validation testcase中验证数据库中所有新的/更新的数据

  • 在高度集成的环境中也能很好地工作。

    根据需要定义测试用例级别的自定义属性,如部门名称和值

    为同一请求测试步骤添加一个
    Script断言
    并添加以下脚本:

    //Check if the response is received
    assert context.response, 'Response is null or empty'
    
    //Parse text to json
    def json = new groovy.json.JsonSlurper().parseText(context.response)
    log.info "Department name from response ${json.data.name}"
    
    assert json.data.name == context.expand('${#TestCase#DEPARTMENT_NAME}'), 'Department name is not matched'
    

    您还可以编辑请求,并将值添加为
    ${TestCase#DEPARTMENT_NAME}
    ,而不是当前的固定值
    XAPIAS DEPARTMENT
    。这样,您就可以在测试用例级属性中更改部门名称的值,该值将在请求中发送,并在响应中验证。

    提供更新请求和响应等更多详细信息?或者如何查询以查找数据是否已更新?@Rao-目前我不使用任何查询或数据库交互。我只是匹配设置为参数的值,发送post请求,并使用==比较响应中的值。不是这样。@Rao-我添加了屏幕截图来显示请求和响应。我现在通常做的是比较请求和响应中的部门名称字符串,以确保其是否已更新。这一行出现错误:context.response,“response为null或空”,表示预期的EOF。我认为这应该是肯定的。那是因为,可能没有回应。您应该运行请求,脚本断言将自动运行。请再试一次。我已经用小补丁更新了答案,你能再试一次吗。你也可以加入