【问题标题】:katalon test case parameterize with variablekatalon 测试用例参数化变量
【发布时间】:2019-09-05 05:07:44
【问题描述】:

我想在每次测试用例运行时发布不同的 API 正文。

我已经在 POST 对象中设置了变量 例如testID 默认值 test0001 然后HTTP正文如下,测试验证通过。 { “drugId”:“$testID”, }

我可以在测试用例中使用什么语法/命令,比如参数化测试步骤,所以第一次运行测试用例 drugId = test0001 第二次运行测试用例,它将是 drugId = test0002

【问题讨论】:

    标签: api katalon-studio


    【解决方案1】:

    您的 HTTP 正文应该类似于

    { 
      “drugId”: “${testID}” 
    }
    

    你在代码中的请求应该是这样的

    response = WS.sendRequest(findTestObject('requestObject',[('testID'): 'test0001']))
    

    requestObject 是您保存在对象存储库中的请求。

    实施

    现在,如果您想迭代 10 次,可以执行以下操作:

    1. 使用以下内容创建一个名为“callee”的新测试用例
    response = WS.sendRequest(findTestObject('requestObject',[('testID'): testID]))
    
    1. 使用以下内容创建另一个名为“caller”的测试用例
    String test = "test000"
    for(i=0;i<10;i++){
        WebUI.callTestCase(findTestCase("callee"), ["testID":"${test+i.toString()}"], FailureHandling.OPTIONAL)
    }
    
    1. 运行“调用者”测试

    【讨论】:

    • 在第二次测试用例执行时,id 不会自动增加,它发布相同的 ID。
    • 我还没有包括 id 增量。您需要一种方法让测试知道这是第 1、2、3 号执行...您是否已经弄清楚了,还是您只是手动重复测试?
    • 因为这是json POST然后直接存储到数据库,ID是唯一的,我有另一个测试用例,当发布相同的ID时,API响应抛出错误,测试用例检测到消息并通过。代码是这样的: WS.verifyResponseStatusCode(response, 400) assertThat(response.getResponseText()).contains('drugId already exists')
    • 我运行测试,它和之前的测试用例一样,先执行然后发布10条记录。第二次执行然后没有记录发布,因为在第一次执行期间已经使用并发布了相同的 ID。我的意思是测试自动知道以前的执行 ID,然后在下一次新的执行时,跳过那个并将其增加 +1。我需要将以前的结果存储在某个地方吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    相关资源
    最近更新 更多