Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Karate Framework-API Automation & Performance using Gatling
Rating: 4.5 out of 5(16 ratings)
115 students

Karate Framework-API Automation & Performance using Gatling

AI-driven implementation, Karate DSL API Automation , REST API Testing with Karate Framework, Performance using Gatling
Created byLucky Trainings
Last updated 1/2026
English

What you'll learn

  • API Automation using Karate framework
  • Master Karate API Automation
  • Overview on API Testing
  • Overview on API Validations

Course content

5 sections128 lectures13h 46m total length
  • Introduction to Training Program1:43
  • Introduction to API Automation Testing3:17
  • Training overview0:47
  • Prerequisites of Karate framework4:15
  • Configuration of Karate framework Part 19:28
  • Note regarding delete configuration videos0:46
  • Configuration of Karate framework Part 24:22
  • Configuration of Karate framework on VS Code & Creating script using AI6:33
  • Differences between com.intuit.karate & io.karatelabs4:53
  • OPTIONAL Overview on Maven -if you don't have any idea on Maven then watch this6:10
  • Karate Framework Configuration IntelliJ Editor5:00
  • Overview on API5:13
  • Overview on REST6:35
  • Overview on JSON with examples11:18
  • OPTIONAL Overview on Cucumber BDD12:02
  • GET Example using Karate11:36
  • GET Example & Karate Junit 5 Runner Class15:50
  • Overview on Karate Variables8:30

    Feature: validate variables concept


    Background:

    Given def company_name = "Lebyy.com"




    Scenario: verify varaible data type

    Given def employee_name = "surendra"

    When def employee_id = 456

    Then print employee_id

    Then print employee_name

    Then print "Employee ID value is", employee_id

    Then print "Employee name is" ,employee_name

    Then print "Company name is", company_name




    Scenario: reuse of variable

    Then print "Employee name is" ,employee_name

    Then print "Company name is", company_name

  • Overview on PATH & Header Keywords7:23

    Background:

    Given url 'https://dummy.restapiexample.com'


    Scenario: To get all employees information in JSON format

    And path '/api/v1/employees'

    And header Accept = 'application/json'

    When method get

    Then status 200



    Scenario: To get specific employee details

    And path '/api/v1/employee/1'

    And header Accept = 'application/json'

    When method get

    Then status 200

  • Overview on Response Variable with example5:30

    Scenario: To get specific employee details

    And path '/api/v1/employee/1'

    And header Accept = 'application/json'

    When method get

    Then status 200

    And print response.data.employee_salary

    And print response.data.employee_name

    And print response.data.id

    And print response.data.employee_age

    And print response.status

  • Execution report | Report generated by karate framework with example2:27
  • Assertions using Karate Part 19:43
  • Assertions using Karate Part 213:47

    Feature: Title of your feature


    Background:

    Given url 'https://dummy.restapiexample.com'


    Scenario: To get all employees information in JSON format

    And path '/api/v1/employees'

    And header Accept = 'application/json'

    When method get

    Then status 200

    And match header Content-Type == 'application/json'

    And match response contains deep {"data":[{"id":1}]}

    And match response contains deep {"data":[{"employee_name":"Caesar Vance"}]}

    And match response.data == "#[24]"

    #And match each response.data[*].employee_name contains "surendra"

    And match response.data[*].employee_name == ["Garrett Winters","Tiger Nixon","Ashton Cox","Cedric Kelly","Airi Satou","Brielle Williamson","Herrod Chandler","Rhona Davidson","Colleen Hurst","Sonya Frost","Jena Gaines","Quinn Flynn","Charde Marshall","Haley Kennedy","Tatyana Fitzpatrick","Michael Silva","Paul Byrd","Gloria Little","Bradley Greer","Dai Rios","Jenette Caldwell","Yuri Berry","Caesar Vance","Doris Wilder"]



    #Scenario: To get specific employee details

    #And path '/api/v1/employee/1'

    #And header Accept = 'application/json'

    #When method get

    #Then status 200

    #And match response.data.employee_salary == 320800

    #And match response.data.employee_name == "Surendra Jaganadam"

  • Examples on Scenario Outline , Def, print6:00
  • Karate Tutorial POST example4:18
  • GET Example and validation using match each5:24
  • Karate Runner configuration , Karate Options3:37
  • Calling other feature5:13
  • Karate Assertions with examples Part 22:50
  • Karate Schema validations Part 16:36
  • Karate Schema validations Part 23:24
  • Karate Embedded Expressions with examples7:45

    Feature: Validate embedded expressions



    Scenario: To POST an entry using expressions

    Given url 'https://reqres.in/api/users'

    And header Accept = 'application/json'

    Then def empName = "surendra jaganadam"

    Then request { "name": '#(empName)',"job": "mobile automation tester" }

    When method post

    Then status 201



    Scenario: To get all employees information in JSON format

    Given url 'https://thetestrequest.com/authors/1.xml'

    And header Accept = 'application/xml'

    Then def authorName = "Surendra Lebyy"

    When method get

    Then status 200

    And match response.hash.name == '#(authorName)'

  • Karate Schema validations Part 39:58

    Feature: validations with examples


    #Scenario: To get all employees information in JSON format

    #And url 'https://jsonplaceholder.typicode.com/posts/1'

    #When method get

    #Then status 200

    #And def schemaVal = {"userId": '#number', "id": '#number', "title": '#string', "body": '#string'}

    #Then match response ==

    #"""

    #'#(schemaVal)'

    #"""



    Scenario: To get all employees information in JSON format

    And url 'https://jsonplaceholder.typicode.com/posts/1/comments'

    When method get

    Then status 200

    And def schemaVal = {"postId": '#number',"id": '#number', "name": '#string',"email": '#string',"body": '#string'}

    Then match response ==

    """

    '#[] #(schemaVal)'


    """

  • Issue & solution for next lecture2:25

    @wilson1

    Scenario: Title of your scenario

    Given url 'https://gorest.co.in/public/v2/users'

    When method get

    Then def outputData = []

    #Then print response[0]

    And eval for(var i=0; i<response.length; i++) if(response[i].name.endsWith("Butt")) outputData.push(response[i].email)

    Then print outputData

  • Conditional statements using If & looping statement for in karate framework12:14
  • Compare Multiple Emails from Database5:00
  • Calling java methods in karate feature file9:21
  • Create text file and place the data in the file using karate framework4:28
  • Execute JavaScript Function7:48

    #Feature: Execute Java Script Function


    #Scenario: validate js code 1

    #Then def getValue = function() { return "surendra"; }

    #Then print "function outpiut is ", getValue()



    #Scenario: Function to add 2 numbers

    #Then def sumValue = function(a,b) { return a+b; }

    #Then def sumValue = function(a,b) { return a-b; }

    #Then print "sum value os " , sumValue(100,150)

    #Then print "sum value os " , sumValue(100,10)


    #Scenario: Random Number

    #Then def random = function() { return Math.random(); }

    #Then print "random no is ", random()

  • Parallel execution in Karate Part 13:25
  • Parallel execution in Karate Part 22:22
  • POST Example using scenario outline2:43
  • Reading data from csv file Part 14:43
  • Reading data from csv file Part 24:29
  • Reading data from JSON File6:51

    Feature: Demo


    Scenario: To get specific employee details

    Given url 'https://dummy.restapiexample.com'

    And path '/api/v1/employee/1'

    And header Accept = 'application/json'

    When method get

    Then status 200

    Given def expected_Response_Data = read("/ApplicationResponse.json")

    #Then print expected_Response_Data

    Then match response == expected_Response_Data

  • Reading data from XML File3:26

    Scenario: To get all employees information in JSON format

    Given url 'https://thetestrequest.com/authors.xml'

    And header Accept = 'application/xml'

    When method get

    Then status 200

    Given def expected_Response_Data = read("/ResponseData.xml")

    #Then print expected_Response_Data

    Then match response == expected_Response_Data

  • Reading data from JSON File & use Data in POST Request5:23

    Scenario: To POST an entry

    Given url 'https://reqres.in/api/users'

    And header Accept = 'application/json'

    Then def input_json_body = read("/inputData.json")

    Then request input_json_body

    When method post

    Then status 201

  • Create account in JIRA for our testing purpose4:51
  • Overview on JIRA user API, capturing JIRA account id , generating access token6:42
  • Overview on Basic Authentication & Retrieve user details3:57
  • Overview on oauth authentication2:43
  • POST Example in JIRA API with Basic Authentication5:25
  • File Uploading using multipart11:52

    Feature: Validate File uploading flows



    #Scenario: To POST an entry using expressions

    #Given url 'https://chinnapavanm.atlassian.net/rest/api/3/issue/SCRUM-4/attachments'

    #And header X-Atlassian-Token = 'no-check'

    #Then header Authorization = call read('basic-auth.js') { username: 'chinnapavanm@gmail.com', password: 'ATATT3xFfGF0YQhLo-aH0Trjmg9kKyOBRMtVm-XXjuvVbTRJKBnElzEK-Piy15ISv0eUKbLyzh-tGdM9IxTCVgw8db0TmyANCbLviW6nPVH1jBUlvUXD-Taz_reudDCRwksq-EbwDWm-7d-Geab3DyW0_iY3xqFI_s6KUuzBQD3ZEHvYzZ7F08w=CE46325B' }

    #Then multipart file file = { read: 'ApplicationResponse.json', filename: 'ApplicationResponse.json', Content-Type: 'multipart/form-data' }

    #When method post

    #Then status 200


    Scenario: To POST an entry using expressions

    Given url 'https://chinnapavanm.atlassian.net/rest/api/3/issue/SCRUM-4/attachments'

    And header X-Atlassian-Token = 'no-check'

    Then def fileLocation = '/data/README2.txt'

    Then header Authorization = call read('basic-auth.js') { username: 'chinnapavanm@gmail.com', password: 'ATATT3xFfGF0YQhLo-aH0Trjmg9kKyOBRMtVm-XXjuvVbTRJKBnElzEK-Piy15ISv0eUKbLyzh-tGdM9IxTCVgw8db0TmyANCbLviW6nPVH1jBUlvUXD-Taz_reudDCRwksq-EbwDWm-7d-Geab3DyW0_iY3xqFI_s6KUuzBQD3ZEHvYzZ7F08w=CE46325B' }

    Then multipart file file = { read: '#(fileLocation)', filename: 'README2.txt', Content-Type: 'multipart/form-data' }

    When method post

    Then status 200

  • Example on POST using data from CSV file6:42
  • Create karate config file and use data in your scenario from karate config file9:11
  • Karate Config Part 2- Reading data from karate config file and using it scenario5:23
  • Karate Methods - karate.jsonPath with examples Part 19:37

    Scenario: validate jsonpath

    And url 'https://jsonplaceholder.typicode.com/posts/1/comments'

    When method get

    Then status 200

    Then print karate.jsonPath(response,"$.[0].email")

    Then print karate.jsonPath(response,"$.[?(@.id==1)].name")

  • Karate Methods - karate.jsonPath with examples Part 212:50

    Refer below link which has examples what we discussed in the session:

    https://github.com/json-path/JsonPath

  • Karate runner class- Updating environment variable in runner class1:37
  • Integration of cucumber reports5:18
  • Execute karate scripts from the command line4:14
  • Jenkins Integration4:59
  • Hooks In Karate framework7:28
  • XML Response Validations8:02

    Scenario: To get all author information in xml format

    Given url 'https://thetestrequest.com/authors.xml'

    And header Accept = 'application/xml'

    When method get

    Then status 200

    #And match response/objects/object[1]/email == 'viva@keebler.biz'

    And match /objects/object[1]/email == 'viva@keebler.biz'


    Scenario: To get author information in xml format

    Given url 'https://thetestrequest.com/authors/1.xml'

    And header Accept = 'application/xml'

    When method get

    Then status 200

    And match response/hash/name == 'Karl Zboncak'

Requirements

  • Basic idea on API testing

Description

Course is updated on 8-December-2025 with below concepts::

  • Overview on AI

  • Overview on LLM

  • Overview on RAG

  • Overview on Generative AI

  • Overview on Memory

  • Overview on AI Agent

  • Overview on LangChain & LangGraph

  • Overview on MCP Server

  • Overview on Human In the loop , Hallucination & Guardrails

  • Overview on Fine-Tuning

  • Overview on Context

  • Overview on Prompts

  • ChatGPT vs CoPilot vs CURSOR

  • Overview on OpenAI

  • Overview on AI Models

  • Overview on n8n workflow

  • Generate API Key in OpenAI

  • Create workflow in n8n

  • Create Public Chat in n8n workflow

  • Overview on OpenAI Tokens

  • CURSOR - Create a Chrome Extension for Record & Playback

  • CURSOR - Create an OTP Shield Mobile APP

  • Generate Karate API Test case using CoPilot in Eclipse Editor

  • Generate Karate API Test case using CoPilot in VSCode Editor

  • Generate Karate API Test case using Cursor Editor



Course is updated on 24-August-2025 with below concepts::

  • Performance Testing using Gatling

    • Introduction to Karate-Gatling

    • Karate-Gatling configuration

    • Overview on Karate Protocol

    • Overview on Name Resolver

    • Pause For & Think time with examples

    • Karate feature - Tag Selector & Ignore Tags

    • Overview on Feeders - Reading data from csv & json

    • Overview on Open model injection with examples



Course updated on 27-March-2025:

  • Configure IntelliJ Editor for karate Framework

Course updated on 29-January-2025:

. Karate UI - How to compare images


Course updated on 21-November-2024:

  • How to handle Error: Could not find or load main class cucumber.api.cli.Main ???


Course updated on 06-August-2024:

XML Response Validations


Course updated on 30-July-2024:

Configuring Karate Framework with example -> Couple of students asked to update the content hence created this video



API Automation Made Simple using Karate framework


Karate Framework for beginners


API Automation with Karate Framework.


API Automation using Karate Framework


Karate Framework


Karate is an open-source general-purpose test-automation framework that can script calls to HTTP end-points and assert that the JSON or XML responses are as expected. Karate is implemented in Java but test-scripts are written in Gherkin since Karate was originally an extension of the Cucumber framework.


Karate is built on top of Cucumber, another BDD testing framework, and shares some of the same concepts. One of these is the use of a Gherkin file, which describes the tested feature. However, unlike Cucumber, tests aren't written in Java and are fully described in the Gherkin file.


From this course, you will learn the following concepts.


Karate configuration


Overview on API with examples


Overview on JSON with examples


Live example of API calls


Karate Framework


GET/POST Request


Data-Driven with Scenario Outline


Creating Parallel runner


Assertions


Using match


JSON Array matching


Schema validation


Fussy matcher: #string, #number


calling another feature


Tags and Run with tags


karate runner configuration and karate options


Report Generation


Cucumber Report Generation


Karate Report Generation

  • Karate framework HOOKS

  • How to Handle SSL Handshake error

  • How to resolve initialization error in karate framework after configuration

Who this course is for:

  • API testers, API Automation testers, Manual testers