Step-by-step guide on creating your first Autokin test
Creating your first test
For example we do have an endpoint as https://reqres.in/api/users/2, which is to fetch a user information. So let's start writing our Feature and Scenario, open the first.feature file that was previously generated.
The file should have the following content:
@autokin
Feature: My Feature
As Autokin tester
I want to verify that all API are working as they should
Scenario: My First Scenario
Accessing REST Endpoint
Now I want to say that I want to access the endpoint:
@autokin
Feature: My Feature
As Autokin tester
I want to verify that all API are working as they should
Scenario: My First Scenario
Given that a secure endpoint is up at reqres.in
When I GET /api/users/2
We added 2 lines, first we define that we want to access a secure (https) endpoint at the domain reqres.bin. Then on the second line, we said that we want to do a GET to /api/users/2.
Run our test
At this point we already access the endpoint, and we can run test.
./node_modules/.bin/autokin -e
Autokin Test Run
Feature: My Feature > My First Scenario - ✔ Passed
Test Result Summary
┌────────────┬────────┬───────────┬───────┐
│ Features │ Result │ Scenarios │ Steps │
├────────────┼────────┼───────────┼───────┤
│ My Feature │ 100 │ 1 │ 2 │
└────────────┴────────┴───────────┴───────┘
┌────────────────────────┬──────────┬───────┬────────┬────────┬─────────┬─────────┬───────────┬─────────┐
│ Features / Scenarios │ Result │ Steps │ Passed │ Failed │ Skipped │ Pending │ Ambiguous │ Unknown │
├────────────────────────┴──────────┴───────┴────────┴────────┴─────────┴─────────┴───────────┴─────────┤
│ My Feature │
├────────────────────────┬──────────┬───────┬────────┬────────┬─────────┬─────────┬───────────┬─────────┤
│ My First Scenario │ ✔ Passed │ 2 │ 2 │ 0 │ 0 │ 0 │ 0 │ 0 │
└────────────────────────┴──────────┴───────┴────────┴────────┴─────────┴─────────┴───────────┴─────────┘
Adding HTTP Status Code assertion
Let's add some test on it. We know that the endpoint will return a 200 status code. Let us add that as verification item, but instead of 200 we expect 400 for it to generate an error. We add the new step after the When.
Scenario: My First Scenario
Given that a secure endpoint is up at reqres.in
When I GET /api/users/2
Then response status code should be 400
Yes, it should be that sentence, we can only change the value that we expect. Let's run the test again.
./node_modules/.bin/autokin -e
Autokin Test Run
Feature: My Feature > My First Scenario - ✖ Failed
Test Result Summary
┌────────────┬───────────────────┬───────────┬───────┐
│ Features │ Result │ Scenarios │ Steps │
├────────────┼───────────────────┼───────────┼───────┤
│ My Feature │ 66.66666666666666 │ 1 │ 3 │
└────────────┴───────────────────┴───────────┴───────┘
┌────────────────────────┬──────────┬───────┬────────┬────────┬─────────┬─────────┬───────────┬─────────┐
│ Features / Scenarios │ Result │ Steps │ Passed │ Failed │ Skipped │ Pending │ Ambiguous │ Unknown │
├────────────────────────┴──────────┴───────┴────────┴────────┴─────────┴─────────┴───────────┴─────────┤
│ My Feature │
├────────────────────────┬──────────┬───────┬────────┬────────┬─────────┬─────────┬───────────┬─────────┤
│ My First Scenario │ ✖ Failed │ 3 │ 2 │ 1 │ 0 │ 0 │ 0 │ 0 │
└────────────────────────┴──────────┴───────┴────────┴────────┴─────────┴─────────┴───────────┴─────────┘
As expected it will generate an error. Fixing the expected value to 200 and running the test will have a clean successful run.
Scenario: My First Scenario
Given that a secure endpoint is up at reqres.in
When I GET /api/users/2
Then response status code should be 200
Yes, it should be that sentence, we can only change the value that we expect. Let's run the test again.
./node_modules/.bin/autokin -e
Autokin Test Run
Feature: My Feature > My First Scenario - ✔ Passed
Test Result Summary
┌────────────┬────────┬───────────┬───────┐
│ Features │ Result │ Scenarios │ Steps │
├────────────┼────────┼───────────┼───────┤
│ My Feature │ 100 │ 1 │ 3 │
└────────────┴────────┴───────────┴───────┘
┌────────────────────────┬──────────┬───────┬────────┬────────┬─────────┬─────────┬───────────┬─────────┐
│ Features / Scenarios │ Result │ Steps │ Passed │ Failed │ Skipped │ Pending │ Ambiguous │ Unknown │
├────────────────────────┴──────────┴───────┴────────┴────────┴─────────┴─────────┴───────────┴─────────┤
│ My Feature │
├────────────────────────┬──────────┬───────┬────────┬────────┬─────────┬─────────┬───────────┬─────────┤
│ My First Scenario │ ✔ Passed │ 3 │ 3 │ 0 │ 0 │ 0 │ 0 │ 0 │
└────────────────────────┴──────────┴───────┴────────┴────────┴─────────┴─────────┴───────────┴─────────┘