Book Image

Writing API Tests with Karate

By : Benjamin Bischoff
Book Image

Writing API Tests with Karate

By: Benjamin Bischoff

Overview of this book

Software in recent years is moving away from centralized systems and monoliths to smaller, scalable components that communicate with each other through APIs. Testing these communication interfaces is becoming increasingly important to ensure the security, performance, and extensibility of the software. A powerful tool to achieve safe and robust applications is Karate, an easy-to-use, and powerful software testing framework. In this book, you’ll work with different modules of karate to get tailored solutions for modern test challenges. You’ll be exploring interface testing, UI testing as well as performance testing. By the end of this book, you’ll be able to use the Karate framework in your software development lifecycle to make your APIs and applications robust and trustworthy.
Table of Contents (15 chapters)
1
Part 1:Karate Basics
7
Part 2:Advanced Karate Functionalities

Running Karate tests as performance tests

Now that we finally have the complete Maven setup and our basic test scenario, we can work on running this as a performance test.

Creating a simulation

We need to create a new Scala file that tells Gatling that it should run our new test scenario. Also, we must specify which values we want to use for our number of virtual users and how long we want our performance test to run.

We will call the MySimulation.scala file and place it in the same folder as the feature file. You can, of course, choose to move it somewhere else, but in this case, I prefer to have the MySimulation.scala file and the feature file together:

package examples.performance
import com.intuit.karate.gatling.PreDef._
import io.gatling.core.Predef._
import scala.concurrent.duration._
class MySimulation extends Simulation {
  val protocol = karateProtocol()
  protocol.nameResolver = (req, ctx) =>
    req.getHeader("karate...