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 Testing
Rating: 4.5 out of 5(1,518 ratings)
7,735 students

Karate Framework API UI & Performance Testing

Complete Karate path: REST API, browser UI, Gatling performance, projects & AI-driven workflows
Created byLucky Trainings
Last updated 8/2026
English
English [Auto],Spanish [Auto],

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

    Explore the training overview to locate materials and test steps for upcoming sessions, with a PowerPoint presentation and a code base zip file to guide your test scripts.

  • 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

    Configure the karate framework in VS Code using quickstart to create a project, modify pom.xml, and set up features with GitHub Copilot for generating API test scripts.

  • Differences between com.intuit.karate & io.karatelabs4:53

    Compare com.intuit.karate and io.karatelabs to see that both open source and commercial versions offer API, UI, and performance testing; the commercial adds cloud platform, advanced reporting, and professional support.

  • 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

    Configure karate framework in IntelliJ by creating a Java project, adding karate dependencies via Maven, and running a get users scenario to verify a 200 response.

  • 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

    Leverage the Karate framework to compare input email data against API responses, using get requests, looping through data sets, and validating emails via a cucumber feature.

  • 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

    Learn to read data from a CSP file for API requests in Karate framework, using scenario outlines or external data, create and access CSP data, and run multiple scenarios.

  • 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

    Learn to implement basic authorization in the Karate framework by configuring a get request to retrieve user details, supplying username and password from Postman, and validating a 200 response.

  • Overview on oauth authentication2:43

    Implement oauth authentication by building a Java method that retrieves a Salesforce access token via password grant using client id, client secret, username, and password, then use a bearer header.

  • POST Example in JIRA API with Basic Authentication5:25

    Demonstrates posting a new user to the Jira API using basic authentication. Craft the JSON body and headers, and verify a 201 created response.

  • 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

    Learn to create a Karate config file, pull environment-specific data at runtime, and pass parameters to scenarios, enabling dynamic data substitution and environment-aware test execution.

  • 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

    Explore hooks in the Karate framework to run preconditions before each scenario, using background, and postconditions after each scenario.

  • Knowledge check

Requirements

  • Basic idea on API testing

Description

** Complete Karate Framework course: API + UI + Performance (Gatling) + AI **


Learn the complete Karate Framework path — REST API automation, browser UI automation, Gatling performance testing, mini projects, and AI-driven Karate implementation.


This Karate API, UI and performance testing course is built for manual testers, beginners, and QA engineers who want one complete Karate learning path instead of separate tools.


What you will learn in this course:

- Karate Framework and Karate DSL fundamentals

- REST API automation with powerful assertions and data-driven tests

- Karate UI / browser automation for end-to-end flows

- Performance testing with Karate and Gatling

- Karate API mini project practice (JIRA workflows)

- Reusable scenarios and maintainable automation design

- AI-driven implementation concepts for Karate

- Practical skills for projects and interviews


Keywords covered in this course:

Karate Framework, Karate DSL, Karate API testing, Karate UI automation, Karate performance testing, Gatling with Karate, REST API automation, end to end automation, API UI performance testing, Karate from scratch, AI for QA.


This course combines Karate API, UI, and Gatling performance testing so you can build full-stack Karate automation skills for real projects and interviews.


If you are searching for Karate Framework, Karate API UI performance, Karate DSL, or complete Karate automation training in one course, this course is for you.

Who this course is for:

  • API testers, API Automation testers, Manual testers