03 Multiple Records - biswajitsundara/Karate GitHub Wiki
If we want to check for multiple records then use the below approach
Feature: Check multiple records from response Background: * url 'https://reqres.in' * def expectedoutput = read('./data/mulrecords.json') Scenario Outline: Get call test for multiple records Given path '/api/users/' + <path> When method GET Then status=200 And match response == expectedoutput[<record>] Examples: | path | record | | 2 | 0 | | 3 | 1 |
src\test\java\data\mulrecords.json
[ { "data": { "last_name": "Weaver", "id": 2, "avatar": "https://reqres.in/img/faces/2-image.jpg", "first_name": "Janet", "email": "[email protected]" }, "support": { "text": "To keep ReqRes free, contributions towards server costs are appreciated!", "url": "https://reqres.in/#support-heading" } }, { "data": { "last_name": "Wong", "id": 3, "avatar": "https://reqres.in/img/faces/3-image.jpg", "first_name": "Emma", "email": "[email protected]" }, "support": { "text": "To keep ReqRes free, contributions towards server costs are appreciated!", "url": "https://reqres.in/#support-heading" } } ]
import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class MultipleRecordTestRunner { }
- Here we have combined multiple scenarios and multiple files
- The same scenario outline can be split to two scenarios
- We can read two json files and store the file data into two variables
- Then match the two result variable with the two responses
- Just imagine if we have 100s of scenarios, it will never be efficient
- So this is the best approach, combine all the json data into one file
- Then use index to compare with the json array