以下是一个示例的Karate代码,用于编写分页终点:
Feature: 分页终点测试
Background:
* url 'https://api.example.com/users'
* def pageSize = 10
Scenario: 分页终点测试
Given path '/users'
And param limit = pageSize
And param offset = 0
When method GET
Then status 200
And def responseSize = response.length
And def totalPages = (responseSize / pageSize) + (responseSize % pageSize > 0 ? 1 : 0)
# 循环测试每一页数据
* def currentPage = 1
* def nextPageUrl = '/users?limit=' + pageSize + '&offset=' + pageSize
* def nextPageExists = currentPage < totalPages
While nextPageExists
Given path nextPageUrl
When method GET
Then status 200
And def nextPageResponseSize = response.length
And assert nextPageResponseSize <= pageSize
# 更新下一页的URL和是否存在的变量
* def currentPage = currentPage + 1
* def nextPageUrl = '/users?limit=' + pageSize + '&offset=' + (pageSize * currentPage)
* def nextPageExists = currentPage < totalPages
End
在这个例子中,我们首先设定了请求的URL和每页的大小。在场景中,我们首先获取第一页的数据,并计算总页数。然后,我们使用循环来测试每一页数据,直到没有下一页为止。每次循环中,我们更新下一页的URL和是否存在的变量,然后发送请求并验证返回的数据大小是否符合预期。