如何在 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]/姓氏
已更新姓氏
在我们的项目中我们是这样操作的:
- 首先我们执行所有 APIs.
- 然后我们在数据库验证测试用例中验证数据库中的所有 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
。这样您就可以在测试用例级别 属性 更改部门名称的值,在请求中发送相同的值并在响应中验证相同的值。
我正在使用 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]/姓氏
已更新姓氏
在我们的项目中我们是这样操作的:
- 首先我们执行所有 APIs.
- 然后我们在数据库验证测试用例中验证数据库中的所有 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
。这样您就可以在测试用例级别 属性 更改部门名称的值,在请求中发送相同的值并在响应中验证相同的值。