如何在soapui中使用groovy验证API是否更新了值
我正在使用soapui和groovy实现api自动化和断言 有一个更新用户配置文件数据的API。i、 e更新用户名、姓氏、姓氏等 运行更新api后,验证数据是否已更新的最佳方法是什么。在groovy中,是否有任何方法可以存储API响应中以前的数据,然后运行更新API,再次检查响应,最后比较以前的响应和最新的响应 我所尝试的是比较我将通过API发送的值和API返回的值。如果两者相等,则假定值更新。但这似乎不是检查更新功能的完美方法如何在soapui中使用groovy验证API是否更新了值,groovy,soapui,Groovy,Soapui,我正在使用soapui和groovy实现api自动化和断言 有一个更新用户配置文件数据的API。i、 e更新用户名、姓氏、姓氏等 运行更新api后,验证数据是否已更新的最佳方法是什么。在groovy中,是否有任何方法可以存储API响应中以前的数据,然后运行更新API,再次检查响应,最后比较以前的响应和最新的响应 我所尝试的是比较我将通过API发送的值和API返回的值。如果两者相等,则假定值更新。但这似乎不是检查更新功能的完美方法 使用JDBC teststep直接在数据库中运行查询: 使用Xpa
使用JDBC teststep直接在数据库中运行查询: 使用Xpath断言验证更新API
断言1
/Results/ResultSet[1]/Row[1]/FirstName
预期结果
更新的名字
断言2
/Results/ResultSet[1]/Row[1]/LastName
更新的姓氏
在我们的项目中,我们是这样做的:
在高度集成的环境中也能很好地工作。根据需要定义测试用例级别的自定义属性,如部门名称和值 为同一请求测试步骤添加一个
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。我认为这应该是肯定的。那是因为,可能没有回应。您应该运行请求,脚本断言将自动运行。请再试一次。我已经用小补丁更新了答案,你能再试一次吗。你也可以加入