如何在 soap ui 中使用 groovy 通过 API 验证值是否已更新

How to verify if values are updated or not by API using groovy in soap ui

我正在使用 soapui 和 groovy 进行 api 自动化和断言。

有一个 API 可以更新用户配置文件数据。即更新用户名、名字、姓氏等

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

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

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

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

在我们的项目中我们是这样操作的:

  1. 首先我们执行所有 APIs.
  2. 然后我们在数据库验证测试用例中验证数据库中的所有 new/updated 数据。

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

定义测试用例级别自定义 属性,例如 DEPARTMENT_NAME 并根据需要设置值。

使用以下脚本为同一请求测试步骤添加 Script Assertion

//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。这样您就可以在测试用例级别 属性 更改部门名称的值,在请求中发送相同的值并在响应中验证相同的值。