soupuijdbc自定义参数定义

soupuijdbc自定义参数定义,jdbc,groovy,soapui,Jdbc,Groovy,Soapui,我使用“JDBC请求”选项检查数据库结果。我通常使用参数作为 param=${step namerequest param} 并将其用于 sql作为select*from db,其中param=:param 这对于特定参数非常有用。但当我尝试使用逗号分隔参数时,例如100010000110003,sql查询首先运行它,1000 也就是说,a有一个请求参数,名称为id,值为1000100003 我创建了一个JDBC参数,作为IDs=${step nameIDs} 并将sql查询创建为sql as

我使用“JDBC请求”选项检查数据库结果。我通常使用参数作为

param=${step namerequest param}

并将其用于 sql作为select*from db,其中param=:param 这对于特定参数非常有用。但当我尝试使用逗号分隔参数时,例如100010000110003,sql查询首先运行它,1000

也就是说,a有一个请求参数,名称为id,值为1000100003 我创建了一个JDBC参数,作为IDs=${step nameIDs} 并将sql查询创建为sql as 选择*from db where id in:IDs它只获取逗号分隔参数的第一条记录。 因此,我想知道如何在sql select中使用逗号分隔的JDBC参数 我从上一个步骤请求参数中获取了soup ui参数,如下所示:
以下是在子句中发送具有多个值的查询的方法

添加测试用例级别的自定义属性,比如ID,并根据需要提供值,如您在问题中提到的那样,用逗号分隔 在rest请求中,您还可以使用与${TestCaseIDS}相同的 在jdbc请求测试步骤中,将查询保持为空。不要紧,从groovy脚本查询重写。 在jdbc请求测试步骤之前添加groovy脚本测试步骤,并添加下面的脚本,该脚本将根据子句中的需要使用多个值动态设置计算查询。 Groovy脚本:遵循内嵌注释

import groovy.text.SimpleTemplateEngine

//Edit the jdbc test step name if required
def nextStep = 'Compare with db results'

//Edit query if required, but not ids variable below as that is used in binding
def query = 'select * from job where id in ( $ids )'
def binding = [ids: context.testCase.getPropertyValue('IDS')]
def step = context.testCase.testSteps[nextStep]
def template = new SimpleTemplateEngine().createTemplate(query).make(binding)

log.info "updated query : ${template.toString()}"

//Set the query to jdbc step
step.jdbcRequestTestStepConfig.query = template.toString()
当您运行测试用例时,groovy脚本步骤将把查询设置为jdbc请求


注意:如果jdbc测试步骤已打开,只需将其关闭并重新打开即可查看更新的查询。

能否显示屏幕截图,说明值是如何存储的?id是数字字段吗?或者text/varchar类型?我试着添加照片,我想我的分数不是enoghyes,id是数字字段我添加了图像,我从另一个步骤的“请求参数:作业”中获得jdbc参数,它是逗号除以数字字段。谢谢回答。我在groovy do far中不使用绑定。我搜索了一个小绑定变量,您可以在下面的查询语句中看到它的定义。顺便说一句,谢谢你的提问,我必须寻找API Docswaven,我之前没有做过类似的事情,然后想出这个脚本,我知道回答这个问题需要一些时间。