08 Java Script Functions - biswajitsundara/Karate GitHub Wiki
Sometimes we would need to manipulate data before or after karate scenario steps and java script functions help us in doing so. This helps us to perform different types of validations.
Scenario: Get call test with Single line function Given path '/api/users/2' When method GET Then status=200 * def myFun = function(){return "Hello"} * def returnedData = call myFun Then print 'returned data ==>'+returnedData
Scenario: Get call test with Block function Given path '/api/users/2' When method GET Then status=200 * def myFun2 = """ function(){ return "Hey" } """ * def returnedData2 = call myFun2 Then print 'returned data ==>'+returnedData2
Scenario: Number of user validation Given path '/api/users?page=2' When method GET Then status=200 * def data = response.data And print data * def valFun = """ function(arg){ return arg.length; } """ * def numberOfUsers = call valFun data Then print numberOfUsers And match numberOfUsers == 6
Scenario: Print only user ids Given path '/api/users?page=2' When method GET Then status=200 * def data2 = response.data And print data2 * def valFun2 = """ function(arg){ arrIds = []; for(i=0;i<arg.length;i++){ arrIds.push(arg[i].id); } return arrIds; } """ * def idOfUsers = call valFun2 data2 Then print idOfUsers
Scenario: Print details for user 5 Given path '/api/users?page=2' When method GET Then status=200 * def data1 = response.data And print data1 * def valFun1 = """ function(arg){ for(i=0;i<arg.length;i++){ if(arg[i].id==5){ return arg[i] } } } """ * def user5 = call valFun1 data1 Then print user5