我使用Soup ui'JDBC Request'选项来检查db结果。我通常使用参数
param = $ {step name#request param}
并使用它
sql as select * from db where param = :param
这对于特定的参数非常有用。但是当我尝试使用逗号分割的参数时(例如1000,10001,10003),sql查询首先运行它,1000。
即具有请求参数,其名称为ID和值1000,10001,10003
我创建一个JDBC参数ID = $ {step name#IDs}
并以sql的身份创建sql查询
select * from db where id in (:IDs)
它只获得逗号分隔参数的第一条记录。
因此我想知道如何使用逗号划分的JDBC参数和sql select in
我从上一步请求参数获取汤ui参数:
image
答案 0 :(得分:1)
以下是使用多个值in
子句发送查询的方法。
IDS
并根据需要提供值(如问题中提到的用逗号分隔)${#TestCase#IDS}
query
。in
子句设置计算查询。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测试步骤已打开,请关闭它并重新打开以查看更新的查询。