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, UI & Performance using Gatling & AI
Highest Rated
Rating: 4.6 out of 5(1,509 ratings)
7,320 students

Karate framework - API, UI & Performance using Gatling & AI

AI-driven implementation, Karate DSL API Automation & Performance using Gatling, Artificial intelligence
Created byLucky Trainings
Last updated 4/2026
English

What you'll learn

  • API Automation using Karate framework

Course content

6 sections158 lectures18h 29m total length
  • Introduction to Training Program1:47
  • Introduction to Karate API Framework3:17

    Overview on the karate framework we are going to study as part of this lecture.

  • Training overview0:48
  • Prerequisites of Karate framework4:15
  • Configuration of Karate framework Part 19:28

    Karate configuration we are going to study

  • Note regarding delete configuration videos0:46
  • Configuration of Karate framework Part 24:22

    Configure a Maven-based Karate project by importing dependencies, creating a feature file and runner, and validating with Karate JUnit, using Eclipse or VS Code on Java 17, 21, or 24.

  • 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

    Maven is a build automation tool that manages dependencies and artifacts via pom.xml. This overview shows creating a maven project in eclipse and managing dependencies from the maven central repository.

  • Karate Framework Configuration IntelliJ Editor5:00
  • Overview on API5:13

    Overview on API testing

  • Overview on REST6:35
  • OPTIONAL Overview on Cucumber BDD12:02
  • GET Example using Karate11:36

    GET Example using Karate


    Scenario: Verify current whether data

    Given url 'api.openweathermap.org/data/2.5/weather?q=London&appid=3c322ae59a7b42'

    When method get

    Then status 200


  • 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

  • Handling SSL Handshake error1:23
  • Execution report | Report generated by karate framework with example2:27

    Execute and validate api tests with karate; inspect the generated execution report detailing pass/fail counts, status codes, timing, and scenario details, and learn how to refresh or customize reports.

  • Overview on JSON with examples11:18

    Overview on JSON with examples

  • Assertions using Karate Part 19:43

    Assertions

  • 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

    Examples on Scenario Outline , Def, print

  • Karate Tutorial POST example4:18

    Karate Tutorial  POST example

  • GET Example and validation using match each5:24

    Fetch the employee list via a get request and validate the full response structure with karate's match each, ensuring optional profile image, mandatory employee name, and numeric salary and age.

  • Karate Runner configuration , Karate Options3:37

    Karate Runner configuration , Karate Options

  • Calling other feature5:13

    Calling other feature

  • Karate Assertions with examples Part 22:50

    Karate Assertions with examples Part 2

  • Karate Schema validations Part 16:36

    Karate Schema validations Part 1

  • Karate Schema validations Part 23:24

    Karate Schema validations Part 2

  • 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

    Explore conditional statements and for loops in Karate framework to filter API responses by name, extract emails and other fields, and print results using def and eval.

  • Compare Multiple Emails from Database5:00
  • Calling java methods in karate feature file9:21

    Read data from a customized Java class and use it in a karate feature file by creating a Java reader, instantiating it in karate, and applying the returned values.

  • 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

    Create a testing ground for API testing by signing up with email registration, configuring a Learn by yourself stream site, and launching a scrum project to access API token information.

  • Overview on JIRA user API, capturing JIRA account id , generating access token6:42

    .Overview on JIRA user API, capturing JIRA account id , generating access token & converting curl command into a postman

  • 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

    Read test data from a CSV file and drive a POST API test by converting it to a scenario outline, then create multiple user entries and observe the results.

  • 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
  • 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

    reference link for the topics which we discussed in this lecture : https://github.com/karatelabs/karate#command-line

  • Jenkins Integration4:59
  • 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'

  • Hooks In Karate framework7:28
  • Knowledge check

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

  • Generate Karate UI Test case using CoPilot in Eclipse Editor

  • Generate Karate UI 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


Course updated on 14-Feb-2024:

Compare Multiple Emails from Database


Course Updated on 02-07-2023 with below topics:

  • Karate UI Automation

    • ReRun a Failed Scenario

    • Upload a File, ScrollDown to an Object

    • Handling Multiple Windows, Get Text, Attribute & Value


Course Updated on 01-07-2023 with below topics:

  • Karate UI Automation

    • Handling Drop downs

    • Highlight, Focus, Submit, Clear commands with examples

    • Handling Alerts

    • Handling Frames

    • We are going to add few more videos to this content.


Course Updated on 30-06-2023 with below topics:

  • Karate framework HOOKS

  • Karate UI Automation -> we added 12 videos which covers various concepts on UI automation



Course Updated on 28-05-2023 with below topic:

  • How to Handle SSL Handshake error


Course Updated on 09-04-2023 with below topic:

  • How to resolve initialization error in karate framework after configuration


Course is updated on 07-05-2022 with below topics:

  • Jenkins Integration - Execute karate scripts from Jenkins CI/CD

  • Validate response using match each

  • overview on auth authentication



Course is updated on 06-05-2022 with below topics:

  • Execute karate scripts from the command line

  • Jenkins Integration - Execute karate scripts from Jenkins CI/CD



Course is updated on 05-05-2022 with below topics:

  • Reading data from karate config file and using it scenario

  • update runner class with environment specific variables

  • Integration of cucumber reporting

  • Parallel execution


Course is updated on 28-04-2022 with below topics:

  • overview on karate-config file

  • create karate-config file and add some data into it

  • use variables defined in config file inside the scenario

  • update runner class to recognise karate config file


Course is updated on 27-04-2022 with below topics:

  • Overview on reports generated by karate framework with example

  • JIRA POST with basic auth and accessing data from csv file


Course is updated on 26-04-2022 with below topics:

  • JIRA Trail account creation

  • Overview on JIRA user API, capturing JIRA account id , generating access token & converting curl command into a postman

  • Basic Auth on JIRA for retrieving user information using GET

  • Example on POST using JIRA Basic Auth


Course is updated on 24-04-2022 with below topics:

  • Examples on Scenario Outline- data to post request using scenario outline examples

  • Reading data from csv file and use it in post request



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


At the end of this training you will be in a position to work on your project using this framework. This course is designed for beginners who wants to start their career in api automation testing

See you in the session, thank you guys


#API Automation Testing

#APIAutomationTesting

#karate

#EndtoEndAPIAutomationwithKarateFramework.

#APIAutomationMadeSimple.

#End to End API Automation with Karate Framework.

#API Automation Made Simple.

Who this course is for:

  • API testers, API Automation testers, Manual testers