Groovy Katalon是否可以断言响应=数据?
我将json测试数据存储在excel文件中。 使用ApachePOI读取json数据并将其解析为请求体,从katalon调用它 然后我编写了许多断言行(groovy assert)来验证每一行响应=测试数据 例如: Assert test.responseText.fieldA==“abc” 断言test.responseText.fieldB=='xyz' 如果我总共有20个字段,以此类推 我认为有更好的方法来利用存储在数据文件中的json数据。 断言响应=测试数据。因此,我可以节省大量的时间在每一行键和修改他们是测试数据的变化Groovy Katalon是否可以断言响应=数据?,groovy,automated-tests,assertion,katalon-studio,data-driven-tests,Groovy,Automated Tests,Assertion,Katalon Studio,Data Driven Tests,我将json测试数据存储在excel文件中。 使用ApachePOI读取json数据并将其解析为请求体,从katalon调用它 然后我编写了许多断言行(groovy assert)来验证每一行响应=测试数据 例如: Assert test.responseText.fieldA==“abc” 断言test.responseText.fieldB=='xyz' 如果我总共有20个字段,以此类推 我认为有更好的方法来利用存储在数据文件中的json数据。 断言响应=测试数据。因此,我可以节省大量的时间
请告知是否可以实现此目标?以下是一个示例:您有两个excel表格-当前值和预期值(您测试的值) 当前值:
No. | key | value
----+-----+------
1 a 100
2 b 6
3 c 13
预期值:
No. | key | value
----+-----+------
1 a 100
2 b 6
3 c 14
您需要将这些添加到数据文件中:
以下代码将比较for循环中的值,断言将在第三次运行时失败(13!=14):
可以使用for循环在excel文件中循环。为什么要将json数据存储到excel文件中?你能发布你的代码的例子吗?我们有相当多的服务数据。将它们排序到一个文件中,以便在任何键或值发生更改时进行修改。你能分享for循环的逻辑吗?我不能让循环在excel文件中自由搜索。请检查提供的答案。好主意。我会说期望值是固定的,由我定义,在测试执行之前预加载。当前值应为api响应,即测试执行后获得的值。问题:我需要找到一种方法来动态地将它们存储在数据文件中。katalon数据文件支持这一点吗?测试用例01,已执行,插入数据文件,第1行…然后比较。测试用例02,将结果存储到数据文件第2行…等等。我认为数据文件不允许您以本机方式写入它们。但是使用Groovy肯定有一种方法可以做到这一点。好吧,那么我必须考虑一下。使用我当前的POI方法,但写入文件。然后再读一遍。
def expectedData = findTestData("expected")
def currentData = findTestData("current")
for(i=1; i<=currentData.getRowNumbers(); i++){
assert currentData.getValue(2, i) == expectedData.getValue(2, i)
}
2020-07-02 15:16:40.471 ERROR c.k.katalon.core.main.TestCaseExecutor - ❌ Test Cases/table comparison FAILED.
Reason:
Assertion failed:
assert currentData.getValue(2, i) == expectedData.getValue(2, i)
| | | | | | |
| 14 3 | | 13 3
| | com.kms.katalon.core.testdata.reader.SheetPOI@5aabbb29
| false
com.kms.katalon.core.testdata.reader.SheetPOI@72c927f1