如何浏览和验证 api 响应的所有页面
How to navigate and validate through all the pages of a api response
我有一个场景,如果负载有很多数据,api returns 页面中的负载响应。
Request:
Background:
* url url
* call read('classpath:examples/common.feature')
And header accesstoken = accessToken
And header accept = '*/*'
And header Accept-Encoding = 'gzip, deflate, br'
Scenario: Get Scores
* param start = '2020-07-01'
Given path '/scores'
When method Get
Then status 200
* def totalPages = response.totalPages
* def response = {"requestId": "6a4287f35112",
"timestampMs": 1595228005245,
"totalMs": 51,
"page": 1,
"totalPages": 100,
"data": [.......]}
在此之后,我得到了总页数,需要通过传递带有附加 * param page = #page_number 的相同请求来浏览所有页面,并验证响应为 200。page_number 有从 2 迭代到 100。
想过使用空手道循环或调用特征文件并构建动态数据和使用动态数据驱动特征,但不确定如何进行。
请指教
我认为最简单的选择是编写第二个功能文件并在循环中调用它。
* def totalPages = 10
* def pages = karate.repeat(totalPages, function(i){ return { page: i } })
* call read('second.feature') pages
我有一个场景,如果负载有很多数据,api returns 页面中的负载响应。
Request:
Background:
* url url
* call read('classpath:examples/common.feature')
And header accesstoken = accessToken
And header accept = '*/*'
And header Accept-Encoding = 'gzip, deflate, br'
Scenario: Get Scores
* param start = '2020-07-01'
Given path '/scores'
When method Get
Then status 200
* def totalPages = response.totalPages
* def response = {"requestId": "6a4287f35112",
"timestampMs": 1595228005245,
"totalMs": 51,
"page": 1,
"totalPages": 100,
"data": [.......]}
在此之后,我得到了总页数,需要通过传递带有附加 * param page = #page_number 的相同请求来浏览所有页面,并验证响应为 200。page_number 有从 2 迭代到 100。
想过使用空手道循环或调用特征文件并构建动态数据和使用动态数据驱动特征,但不确定如何进行。
请指教
我认为最简单的选择是编写第二个功能文件并在循环中调用它。
* def totalPages = 10
* def pages = karate.repeat(totalPages, function(i){ return { page: i } })
* call read('second.feature') pages