SlideShare a Scribd company logo
1 of 94
Download to read offline
2019-01-10
1
PRESENTED BY
©2018Postman
Postman Expert
Johnny Tu
Welcome
&
Introductions
Instructor: Johnny Tu
1. B. Science (Information Technology)
2. Based in Sydney, Australia
3. Training experience includes: Atlassian,
Zendesk, GoodData, NGINX, Docker
4. Developed training courses for: Bamboo
Fundamentals, Bamboo Administrators,
Bamboo Integration, Stash Essentials
5. Conducted Customer training for: IBM, US
Federal Reserve Bank, Graybar Electric
Company, AmerisourceBergen, Royal Bank of
Canada, Bank of America, National Security
Agency, Credit Suisse, US Marine Corps, The
World Bank, Allianz Insurance, ESPN, University
of California, United Nations, Symantec
Participant Introductions
2
1
2
2019-01-10
2
Housekeeping
3
Format
• Slides
• Demonstrations
• Exercises
Teleconference
• Please mute when possible
• Stay on the line during break
• Please use headset and
microphone
Duration
• 4 hours
• 10 minute break every
hour
• Ask questions anytime
4
Prior Training and/or knowledge
You should have either taken the Postman Fundamentals course or be familiar with the following topics
• Postman Requests, Collections, Variables and Environments, Workspaces
• Basic scripting to test API’s
• Simple JavaScript code
• HTTP Request structure (HTTP methods, common headers etc…)
Required Tools
• Postman Desktop application and account
• Node.js and Newman installed
• OpenWeather API account
Course Prerequisites
3
4
2019-01-10
3
Course Pre-requisites (cont’d)
If you do not have Postman installed already:
1. Go to https://www.getpostman.com/apps, download and install the app.
2. If you do not have a Postman account, sign up for a free account.
3. Open the Postman desktop application and make sure you are signed into your account
OpenWeather API account is needed for later exercises
1. Go to https://home.openweathermap.org/users/sign_up and register for a free account
2. Sign in to your newly registered account
3. Click on the “API Keys” tab and verify that an API key was created
5
Get course materials
1. Open your Postman desktop application and create a new private Workspace
2. Open a web browser and go to
https://documenter.getpostman.com/view/4805376/RznEKJNG and
https://documenter.getpostman.com/view/4805376/RznEKJSb
3. On each page, click the Run in Postman button
4. Select “Postman for Windows / Mac” option
5. At the end of this, you should have 2 collections and 2 environments in your
workspace
6
5
6
2019-01-10
4
Get course materials (cont’d)
1. Click the “New” button on the top left of the Postman App
2. Select the Templates tab
3. Use the search function to search for “EX2.2”
4. You should see a template called “Postman Expert Training EX2.2”
5. Select the template and click “Use this Template”
6. Click on “Create’’
7. You should now have a collection called “Restful Booker”
7
Agenda
1. Collection Runs
2. Advanced Scripting
3. API Documentation
4. Mock Servers
5. Monitors
6. Postman API
7. Continuous Integration
8
7
8
2019-01-10
5
Module 1 – Collection Runs
9
©2018Postman
Module Objectives
After completing this module, you will be
able to:
• Start a collection run
• Use environments in a collection run
• Run multiple iterations of a collection
• Upload a data file for a collection run
• Debug a collection run
10
9
10
2019-01-10
6
Start a Collection Run
11
Intro to Collection runs
• A collection run is an execution of all requests in a collection
• Requests are run one after another
• Collections can be run by
➢ Postman application collection runner
➢ Newman (CLI tool)
➢ Postman monitors
11
12
2019-01-10
7
Why run Collections
• Useful in automated API testing
• Scripts can be used to build test suites and pass data between API requests
➢ Helps to mirror a workflow
➢ Replicate a user experience
• Test for hundreds of scenarios by using a data file
Starting a Collection Run
• Click on “Runner” to open the Postman
Application Collection Runner
• Select the Collection or folder to run
➢ Selecting a collection will run all requests in
every folder sequentially in the order listed
➢ Selecting a folder will run only the requests in
that folder
• Click “Run”
13
14
2019-01-10
8
Viewing Results
Drill down in Results
• Can inspect the request and response details for each Request in the collection run
• Useful for troubleshooting failed requests
15
16
2019-01-10
9
Demo Run a Collection
17
Collection run variables
18
17
18
2019-01-10
10
Using variables in a collection run
• Select environment to use the
variable values in a collection run
• “Keep variable values” will
preserve the “current value” of
variables if they are changed
during the collection run
Ex1.1 – Run a collection
1. Import the sample Ex1.1 collection and environment provided by the instructor. You should
have a collection called “Using Environments” and an environment called “testEnv”
2. Open the request in the “Using Environments” collection
3. Select the “testEnv” environment on the request builder
4. Click on the “Environment quick look” button
5. Check the current value of the “foo” variable. It should be “bar”
6. Send the request and then check the current value of the “foo” variable again. Can you identify
the cause of the change in the value?
7. Change the current value of “foo” back to “bar”
19
20
2019-01-10
11
Ex1.1 – Run a collection (cont’d)
8. Click the “Runner” button
9. Select the “Using Environments” collection and the “testEnv” environment
10. Run the collection and then check the value of the “foo” variable. What do you
notice?
11. Start a new Collection run using the same settings as before but this time, tick
the “Keep variable values” option
12. What do you notice about the current value of the “foo” variable afterwards?
Multiple iterations run
22
21
22
2019-01-10
12
Running multiple iterations
• An iteration represents the
number of times a collection
will run
• Run multiple iterations to test
for consistent behaviour
Multiple iteration results
23
24
2019-01-10
13
Using red and green filters
• Useful for filtering results on large collections
• A request where one or more test cases failed will be marked red
Run summary
• Shows each request and iteration in a timeline format
• Can easily see which request in the collection failed
and which iteration the request failed in
25
26
2019-01-10
14
Demo Multiple Iterations
Uploading a data file
28
27
28
2019-01-10
15
Using a data file
• Upload a data file and use the values defined in the file in your HTTP requests
and scripts
• Supported formats are CSV and JSON
• Each record in the data file is treated as a separate iteration
• Benefits:
➢ More robust testing of API’s by testing for many variations in request parameters
➢ Can be used to perform database initialization and
➢ Setup and teardown for testing
Data variables
• Values from an uploaded CSV
or JSON file during a
Collection run are treated as
data variables
• Can be used in the same
manner as global, collection
and environment variables
29
30
2019-01-10
16
CSV file format
• First row contains the variable names to
be used in the request
• Every row after is used as a data row
• Rows should have the same number of
columns
JSON file format
• Array of key value pairs
• Each key represents the name of
the variable
31
32
2019-01-10
17
Debugging requests
• Drill down on the results to inspect the request and response headers and body
• Use the Postman console
• Console must be open prior to running the collection
Ex1.2 – Use a data file
1. Import the Ex1.2 collection and environment provided to you by the instructor
2. You should have a collection called OpenWeather API and an environment call OpenWeather
3. Open the OpenWeather environment and add your OpenWeather API key to the current value
of the “apikey” variable
4. Open the Postman console
5. Configure a new collection run using the newly imported collection and environment
6. Next to data, click “Select File” and select the sample.csv file provided to you
7. Run the collection and observe the results on the Collection runner as well as the console
8. Expand some of the console entries to observe the request and response headers
33
34
2019-01-10
18
Newman
35
Running collections with Newman
• Newman is the command line tool used to run Postman collections
• Built on Node.js
• Easily integrated with CI/CD servers
• Maintains feature parity with the Postman App
• For more detailed information and examples of usage, see
https://github.com/postmanlabs/newman
35
36
2019-01-10
19
EX1.3 - Install Newman
Newman requires Node.js and resides in the NPM registry
1. Go to https://nodejs.org/en/download/ and download the latest release of
Node.js
2. Run the installation file to install Node.js
3. Open your terminal and run
npm install -g newman
37
Running a Collection with Newman
• Need to export the Collection and any environment it uses to a JSON file
• Run Newman against the file
newman run <collection file>
38
37
38
2019-01-10
20
Newman run parameters
39
Display run options
newman run –h
Run the collection using an environment (environment must first be
exported)
newman run <collection_file> -e <environment_file.json>
Run the collection over 10 iterations
newman run <collection_file> -n 10
Demo Newman run
options
40
39
40
2019-01-10
21
EX1.4 – Run collection with Newman
1. Export the OpenWeather API collection to a JSON file
2. Export the OpenWeather environment to a JSON file. Save the file into the
same folder as the OpenWeather API JSON file
3. Open your terminal to the folder in steps 1 and 2
4. Run the collection using Newman
newman run <collection> -e <environment file>
41
Module Review
• Collections can be run via the
Postman app collection runner or via
Newman
• Changes in variable values during a
collection run, can be persisted
• Using a data file allows us to run a
collection over many iterations to test
for as many variations in input as
needed
42
41
42
2019-01-10
22
Module 2 – Advanced Scripting
43
©2018Postman
Module Objectives
After completing this module, you will be
able to:
• Describe the difference between pre-
request and test scripts
• Describe the execution order of
Postman scripts
• Write a pre-request script
• Set the script execution order to create
a workflow
44
43
44
2019-01-10
23
Intro to Scripting
45
Recall: Postman API Testing
• JavaScript code can be executed after
receiving the response to a request
• Access request, response, and variable data
• Postman Sandbox API provides a set of
JavaScript variables and functions to access
the request and response data
• The Tests Results tab in the response area to
show the results of each test
46
45
46
2019-01-10
24
Types of Postman scripts
• Pre-request script
− Executed before the postman request is sent
• Test script
− Executed after the response has been received
47
Script execution order
For an individual request:
• Pre-request scripts are executed before the request is sent
• Test scripts executes after the request is sent
48
47
48
2019-01-10
25
Collection script execution order
49
Script debugging
• Use console.log() function to log values to the console
• Useful for inspect variable and response data and script flow
• Postman Console must be open before running the request
50
49
50
2019-01-10
26
Pre-request scripts
51
Writing a pre-request script
• Written in JavaScript
• Same as test scripts but without access to the response object
• Typically used to manipulate data before a request is sent
− Set variable values based on a function call
− Add headers such as timestamp
52
51
52
2019-01-10
27
EX2.1 – Write a pre-request script
1. Create a Collection called IEX
2. Create a new request with the following URL:
https://api.iextrading.com/1.0/stock/{{stock}}/chart/date/{{date}} and save it
to the IEX collection
3. Create an environment called IEX with the “stock” and “date” variables
defined
4. Set the initial and current value of the “stock” variable to “amzn”
53
EX2.1 – (cont’d)
5. Switch to the “Pre-request” tab and write the following script:
const moment = require('moment’);
var previousWeek = moment().subtract(7, 'days').format('YYYYMMDD’);
pm.environment.set("date", previousWeek);
6. Run the request and check the date on the response body. The date we should
see should be exactly 7 days ago from today.
54
53
54
2019-01-10
28
Test Scripts
55
Recall – Examples of Test Scripts
• Many types of tests are available in snippets
− Check response code
− Check JSON value
− Check response headers and body
56
55
56
2019-01-10
29
Check response schema
• Verify that API responses comply with the JSON schema definition
• Postman includes the Tiny Validator (tv4) library for writing tests to check the
schema
− https://geraintluff.github.io/tv4/
• How to write a JSON schema definition
− https://json-schema.org/understanding-json-schema/about.html
− https://assertible.com/blog/testing-and-validating-api-responses-with-json-schema
57
Example schema check
Response Body
{
"token": "12bd4c389b9efb8“
}
58
57
58
2019-01-10
30
Example schema
check (cont’d)
[
{
"bookingid": 9
},
{
"bookingid": 5
},
{
"bookingid": 6
}
]
59
Schema check – best practices
• Don’t define the schema directly in the test script
− Not a good approach when multiple requests require the same schema
− Lots of updating if the schema changes
• Better to define the schema as a variable value
61
59
61
2019-01-10
31
Building Workflows
63
Intro to Workflows
• A workflow is a sequence of
requests in a collection, which
represents a particular user story
/ application feature
• Each sequence in the workflow is
a separate API call
• For example: Purchase an item
from a store
64
Search for product
Add to shopping cart
Checkout
Call Payment gateway
Send confirmation email
/product?q=
/cart/add
/checkout
/payment/card
/order/confirm
63
64
2019-01-10
32
Controlling the request order
• Requests in a collection are executed in linear order (in the order that you see
them listed)
• To build a workflow, we must control the sequencing of our requests.
• Use the postman.setNextRequest()function in our test script
− postman.setNextRequest(“request name”);
− postman.setNextRequest(null);
65
postman.setNextRequest() function
• Can be used in pre-request or test script
− Last set value is considered
• Always executed at the end of the current script.
• Function scope is limited to the source of your collection run
− If running from Collection level, you can set any request as the next request
− If running from a folder level, you can only set a request in the same folder as the
next request
• If function is not present in any script in a request, the collection runner
defaults to the next request in linear order
66
65
66
2019-01-10
33
Our example workflow
• Restful booker API
hosted on a server
• Instructor will provide
server URL
• Collection is already
defined and ready for
import
68
Get Bookings /booking
Create new booking /booking
Update Booking /booking/{{id}}
Get booking by ID /booking/{{id}}
Delete booking /booking/{{id}}
Get auth token /auth
Building our example workflow (part 1)
69
Get
Bookings
Get list of bookings
Create new
booking
Create new hotel
booking for “Sally”.
• Returns bookingID
Get booking
by ID
Use the bookingID from
step 2, to check
That the new booking is
in the system
Step 1 Step 2 Step 3
68
69
2019-01-10
34
EX2.2 – Build Example Workflow (part 1)
1. Open the Restful Booker collection
2. Create an environment call Restful Booker and define a variable called “url”. Your instructor
will provide the URL value.
3. In the same environment, define a variable called “bookingID”. Do not set a value
4. Open the Create new booking request inside the Restful Booker collection.
5. Go to the “Tests” tab and add the following lines at the end:
var bookingID = jsonData.bookingid;
console.log(bookingID);
pm.environment.set("bookingID", bookingID);
postman.setNextRequest("Get Booking by ID");
70
EX2.2 – (cont’d)
6. Open the Postman Console
7. Select the Restful Booker environment
8. Run the Create New Booking request. Take note of the booking ID in the JSON
response data and also in the Console log
9. Open the Restful Booker environment and check the current value of the
booking ID. Does this match the value in step 4?
10. Run the Get Booking by ID request. You should get the same record returned
as the one you just created.
71
70
71
2019-01-10
35
Building our example workflow (part 2)
72
Get auth
token
Get auth token and
store in environment
variable
Update
Booking
Change the name of
the booking from
“Sally” to “James”.
• Returns updated
record
Delete
Booking
Use the bookingID from
step 2, to delete the
booking
Step 4 Step 5 Step 6
Requires auth token
Requires auth token
EX2.3 - Build Example Workflow (part 2)
1. Open the Get Booking by ID request and go to the “Tests” tab
2. Write a line to set the next request to Get Auth Token
3. Open the Restful Booker environment and define a new variable called
“authToken”. Set a placeholder value in the Initial Value field
4. Open the Get Auth Token request and go to the “Tests” tab
5. Add the following lines:
var jsonData = pm.response.json();
pm.environment.set("authToken", jsonData.token);
6. Add a line to set the next request to Update Booking
73
72
73
2019-01-10
36
EX2.3 – (cont’d)
7. In the Restful Booker environment, define a variable called “password” and
set it’s current value to “password123””
8. Run the Get Auth Token request. Check the token on the response and then
check the value of the “authToken” environment variable. They should match
9. Open the Update Booking request and go to the “Headers” tab
10. Add the “Cookie” header with value of “token={{authToken}}”
11. Go to the “Tests” tab and set the next request to Delete Booking
12. Open the Delete Booking request and repeat Step 8
74
EX2.3 – (cont’d)
12. Run the Update Booking request. You should see that the booking name is
now “James”
13. Confirm step 12 by running Get booking by ID again
14. Run the Delete Booking request
15. Run Get booking by ID again. This time you should get a response saying “Not
Found”
75
74
75
2019-01-10
37
Our example workflow (correct order)
• Now we are ready to
run the collection
76
Get Bookings /booking
Create new booking /booking
Update Booking /booking/{{id}}
Get booking by ID /booking/{{id}}
Delete booking /booking/{{id}}
Get auth token /auth
EX2.4 – Run workflow
1. Open the Collection Runner
2. Select the Restful Booker collection
3. Select the Restful Booker environment
4. Click Run. What do you notice? Why do you think this is occurring?
5. Open the Delete Booking request from the collection and go to the “Tests” tab
6. Add the line
postman.setNextRequest(null);
7. Run the Collection again. What do you observe this time?
77
76
77
2019-01-10
38
Send a Request in script
• Use the pm.sendRequest() function
• Useful for making additional API calls as part of your testing
78
Demo
79
Send request in
script
78
79
2019-01-10
39
Workflow conditional logic
80
Search for product
Add to shopping cart
Checkout
Call Payment gateway
Send confirmation email
/product?q=
/cart/add
/checkout
/payment/card
/order/confirm
Product
in
stock?
yes
Add to wish list
/wishlist
no
Implementing conditional logic
• Use ‘if’ statement to check a condition and decide which request to execute
next
81
80
81
2019-01-10
40
EX2.5 – Implement condition logic
82
Get auth
token
Update
Booking
Step 4 Step 5
Auth
token
returned
yes
Stop workflow
no
EX2.5 - (cont’d)
1. Open the Get Auth Token request and replace the
“postman.setNextRequest” line with the following:
if (jsonData.token === undefined) {
postman.setNextRequest(null);
} else {
postman.setNextRequest("Update Booking (partial)”;
}
2. Change the value of the password variable to anything and run the collection.
3. What do you observe?
83
82
83
2019-01-10
41
Postman Sandbox API
• The JavaScript execution environment for pre-request and test scripts
• Gives access to the request, response and variable objects
• Functions from common utility libraries such as
− cheerio
− tv4 JSON schema validation
• https://www.getpostman.com/docs/v6/postman/scripts/postman_sandbox
• API reference at
https://www.getpostman.com/docs/v6/postman/scripts/postman_sandbox_a
pi_reference
84
Organizing collections
• Suggestions for organizing requests into folders
• Three level folder hierarchy
• Group API resources in top level folder (users,
orders, products etc…)
• Second level folder contains test suites for those
resources
− Create new user
− Submit order
• Third level folder for complex tests which require
a workflow through multiple requests
85
84
85
2019-01-10
42
Module Review
Key Points:
• Pre-request scripts are effective for
manipulating data
• The response of a request can be used
as input in a subsequent request
• Scripts at the collection level are
executed first, followed by the folder
level and then individual request
86
Module 3 – API Documentation
87
©2018Postman
86
87
2019-01-10
43
Module Objectives
After completing this module, you will be
able to:
• Create public and private
documentation for your API
• Outline the content that is automatically
generated in documentation
• Write documentation content using
markdown
88
Creating Private Documentation
89
88
89
2019-01-10
44
Intro to API documentation
• Postman can generate and host web based documentation for your API
• Documentation is based on the requests defined in a collection
• Markdown support for formatting
• Private view for you and your team
• Publish docs to make them visible to the public
90
Creating Documentation
• Different ways to create documentation
− New button
− View the private documentation of an existing
collection
− Publishing public documentation of an existing
collection
− From the Postman app launch screen
91
90
91
2019-01-10
45
Create documentation from New Button
• Choose the “Use Collection from this workspace” tab
• Select the collection
• Configure name and description and click “Create”
92
Viewing private documentation
• Click the “Play” button of a collection
• Click “View in web”
• If there’s no existing documentation on the collection, it will be created
• Visible only to author of collection unless the collection is shared in a team workspace
93
92
93
2019-01-10
46
Documentation content
• Postman automatically generates the documentation content by using the
contents of the folders and requests in your collection
• Descriptions for the collection, folders and requests
• For each request the docs will show:
− Configured headers and parameters
− Request body (if applicable)
− Generated cope snippets in various programming languages
94
Example Documentation page
95
Collection name Collection descriptionFolders and requests
Selected programming language
94
95
2019-01-10
47
Documented Requests
96
Folder
description
Folder name
Request
name
Request
description
Code
snippet
Selecting an environment
• Selecting an environment will assign the environment values to any variables in the
documentation
− Only the variable “Initial Value” is assigned
• Can select from all local and shared environments
97
96
97
2019-01-10
48
EX3.1 – Generate private documentation
1. Click the “New” dropdown and select “Documentation”
2. Select the Restful Booker collection and create the documentation for it
3. Open the Restful Booker collection documentation
4. Browse through the requests in the docs
5. Select the Restful Booker environment and observe how variable values are
substituted in the docs
98
Example requests and responses
• It’s useful to show example responses in the documentation to assist developers in
understanding what to expect
• To include example responses, run the request and save the response
• Can include as many examples as needed
− Name them effectively to make it easy for users to understand what each example illustrates
99
98
99
2019-01-10
49
Viewing Example responses
100
EX3.2 – Save example responses
1. Open the Get Auth Token request in the Restful Booker collection
2. Change the “password” configured in the body to “wrongpw” and send the request. You
should get a response saying “Bad Credentials”
3. Save the response and call it “Get Auth Token – Bad credentials”
4. Change the “password” on the request body to “password123” and send the request. This
time you should receive an auth token in the response
5. Save the response and call it “Get Auth Token – Token returned”
6. Go to the web browser and refresh your documentation page
7. Scroll down to the “Get Auth Token” endpoint. You should be able to select from your two
example responses
101
100
101
2019-01-10
50
Using Markdown
102
Where to use Markdown
• Markdown can be used to format text in your Collection, request and folder descriptions
• Descriptions for request headers and parameters can also be written in markdown
• Markdown is rendered in your workspace and on private and public documentation pages
103
102
103
2019-01-10
51
Basic syntax
Headers
# Heading 1
## Heading 2
Bullet points
* Point 1
* Point 2
1. number 1
2. number 2
Formatting
*emphasis*
**strong emphasis**
104
Links
[Link text](http://www.google.com)
Images
![Text](/path/to/file.png)
Full syntax guide
• https://daringfireball.net/projects/markdown/basics
• https://daringfireball.net/projects/markdown/syntax
• Live preview for practicing writing in markdown
https://markdownlivepreview.com/
105
104
105
2019-01-10
52
Demo Markdown syntax
106
Publishing Documentation
107
106
107
2019-01-10
53
Creating public documentation
• Click the “Publish” button on the private
documentation page
• Click “Publish Docs” from collection drop
down
• Must be collection author or have write
permissions to publish the docs
• Changes made in the collection will be
automatically reflected in the published docs
108
Publishing options
• Select the appropriate environment so references to variables will be replaced
with the value from the environment
− Remember not to include any sensitive data in the environment values
• Custom page styling options
• Make your API discoverable through the API network (Postman Pro and
Enterprise only)
− https://www.getpostman.com/docs/v6/postman/launching_postman/newbutton#
api-network
• Share as a template
109
108
109
2019-01-10
54
Public documentation view
110
Run in Postman button
• Allows anyone to import a collection and its associated environment with one click
• Included on public documentation pages
• Can generate your own “Run in Postman” embed code and embed it onto any web page
• Great for developer onboarding
• Examples:
− https://developer.okta.com/reference/postman_collections/
− https://apidocs.imgur.com/
111
110
111
2019-01-10
55
Embed the Run in Postman button
• Use the “Share Collection”
operation and look for the
“Embed” tab to generate the
code snippet
112
Demo Publishing options
113
112
113
2019-01-10
56
Using a Custom domain
• By default published documentation is hosted on the documenter.getpostman.com domain
• Postman Pro and Enterprise users have the ability to host documentation on their own custom
domain
• Add a custom domain to your Team Settings and then select it when publishing the docs
− https://www.getpostman.com/docs/v6/postman/api_documentation/adding_and_verifying_c
ustom_domains
• Can also configure the team name and logo
− https://www.getpostman.com/docs/v6/postman/api_documentation/adding_team_name_an
d_logo
114
EX3.3 – Publish documentation
1. On your web browser, go to the private documentation view you created in
Exercise 3.1
2. Click Publish
3. Select the Restful Booker environment and then publish the documentation
4. Go back to the Postman App and open the Restful Booker docs in the private
view (use the “View in Web” option)
5. Click on the “Published” button on the top right
6. Select “Unpublish” to remove your documentation from public view
115
114
115
2019-01-10
57
Module Review
Key Points:
• Private documentation is created based on
a collection and it’s configured folders and
requests
• Publishing as collection’s private
documentation makes it available for
public viewing
• Markdown is helpful for formatting our
descriptions
116
Module 4 – Mock Servers
117
©2018Postman
116
117
2019-01-10
58
Module Objectives
After completing this module, you will be
able to:
• Create a mock server for a new API
• Define example responses for mock
requests
• Describe how Postman selects which
response to use for a given mock
request
118
Intro to Mock servers
119
118
119
2019-01-10
59
What is a mock
• A mock is a fake API that simulates a server response
• Postman mocks are associated with an underlying collection
120
Front
end
devs
API devs
Mock server Actual API
API Lifecycle
121
120
121
2019-01-10
60
Public vs Private mocks
• Public mock
− Mock server is accessible by anyone
− No need for Postman API key
− Mock servers are by default, publicly available
• Private mock
− Only accessible to users who have access to the underlying Collection
− Users must use their Postman API key when sending requests to the mock
endpoints
122
Create a mock server
123
122
123
2019-01-10
61
Create a mock
• Two ways to create a Mock
− Create a new API
− Create from an existing Collection
124
Create a mock (cont’d)
• Create from API
− Define the endpoints you want to mock
− Specify the HTTP method and response code for each
endpoint
− Define an example response for each endpoint
• Postman will create a new mock server and collection for
your API
• An environment will be created with a “url” variable,
which contains the URL to the mock server
• Open the Collection and go to the “Mocks” tab to see the
mock server
125
124
125
2019-01-10
62
EX4.1 – Create a mock server
1. Click the “New” dropdown in the header and select “Mock Server”
2. Select the “Create a new API” tab
3. Fill in the details as indicated on the screenshot below and click “Next”
126
EX4.1 – (cont’d)
4. On the “Name” field, type “Shopping Cart API”
5. Do not select an environment and leave the “Make this mock server private” checkout blank
6. Click “Create”
7. You should now see the mock server URL
8. Find the Shopping Cart API on your Collection’s list and expand it
9. Click the “Mocks” tab to see your mock server listed
10. Find and select the “Shopping Cart API” on the environment drop down list
11. Click on the “Environment quick look” button and confirm that you can see the mock URL
12. Open your browser and sends a request to <mock url>/orders. What do you see in the
response?
127
126
127
2019-01-10
63
Mock with Examples
128
Mock responses
• Mock responses are dependant on your saved examples
• Examples are matched against the request URL and method type
• Multiple examples can be saved against each request in a Collection
• Example can have a unique endpoint
129
Request
/orders
Request
/products
Example response 1 - /orders
Example response 2 - /search
Example response 1 - /products
128
129
2019-01-10
64
EX4.2 – Create examples
1. Open the Orders request in the in the Shopping Cart API
2. Click the “Examples” dropdown and select “Add Example”
3. Configure the name and example request as shown:
130
EX4.2 – (cont’d)
4. In the example response body, type “This is the list of orders based on our
search”
5. Click “Save Example” on the top right corner
6. Use Postman to send a request to the mock server on the “/search” endpoint
7. What can you observe in your response?
8. Change the request to /orders and observe the response
131
130
131
2019-01-10
65
Using query parameters
• Different example responses can be returned based on matching query parameters
• Allows mocking of different responses for different query parameters on the same
request path
132
Request
/products
Example response 1 - GET /products
Example response 2 – GET /products?q=alienware
Example response 3 – GET /products?q=apple
Query: GET
/products?q=alienware ?
Matching algorithm
• When multiple examples are
configured for a request, how does the
mock service know which one to
return?
• When a mock call is made, the mock
service retrieves all saved examples
for that collection, from the Postman
servers and begins the matching
process.
133
132
133
2019-01-10
66
Matching algorithm (cont’d)
• The incoming request is paired with the closest matching example
• The request method, mock path and various request headers are checked
• The matching algorithm will remove example responses from the list of
options it can return, based on the following logic
1. Properly formatted responses
− Responses not in the expected format are removed
134
Matching algorithm – (cont’d)
2. HTTP method
− Responses that don’t correspond to the request HTTP method are removed
3. URL filter
− Iterate over the remaining examples to compare the mock path of the request to the
example and set a threshold value
− Step by step matching in the following order
1. Exact match
2. Strip out trailing slashes
3. Lower case the example path and the request mock path
4. Strip out alphanumeric ID’s from both input and example path
5. If all the steps have failed, the example is not eligible
135
134
135
2019-01-10
67
Matching algorithm – (cont’d)
4. Response code
− Check if the request has the x-mock-response-code header and filter out the
examples with a non matching response code
5. Highest threshold value
− Remaining response are sorted in descending order and the one with the highest
threshold value is returned.
136
Module Review
Key Points:
• Mock servers help speed up overall
application development
• Mock server calls are dependent on
configured example responses
• Postman supports multiple responses
per mock endpoint
137
136
137
2019-01-10
68
Module 5 – Monitors
138
©2018Postman
Module Objectives
After completing this module, you will be
able to:
• Describe the process of monitoring a
collection
• Setup and configure a monitor for a
collection
• Troubleshoot failed collection runs
• Describe some monitoring best practices
139
138
139
2019-01-10
69
Intro to Monitors
140
What is monitoring
• A monitor is a scheduled run of a Collection
• A monitor allows you to run a collection periodically to check for performance
• Checks are done to ensure all requests in a collection are healthy
• Tests in each request are also run
• Monitor’s can be configured to send notification alerts when there are test
failures
141
140
141
2019-01-10
70
API lifecycle
142
Collection Runner vs Monitor
• Differences exists between running collections with the collection runner and with a monitor
• Variables
− No import of global variables
− No variable persistence
• Console output
− Request and response bodies and sensitive headers are not logged by default
• Monitors only run 1 iteration and the max run time is 5 minutes
• Data files
− Cannot upload a data file but can use data files from API’s such as Google sheets or Dropbox
• All API’s endpoints must be publicly available
143
142
143
2019-01-10
71
Pricing
• Postman monitors are billed per-request made
• Free Postman users are allowed 1000 free monitoring calls per month
• Postman Pro teams allowed 10,000 free monitoring calls per month
• Postman Enterprise teams allowed 100,000 free monitoring calls per month
144
Setup a Monitor
145
144
145
2019-01-10
72
Create a monitor
• Can create a monitor from an existing Collection
or create a new API in the process
• Select environment to use when running the
collection
• Define the frequency
− Lowest interval is 5 minutes
• Select region where the monitor will run
146
Create a monitor – (cont’d)
• Monitors created on a shared collection will be visible to the team
• Monitors created on a private collection will only be visible to you
• Cannot share monitor’s across workspaces
147
146
147
2019-01-10
73
Additional preferences
148
Multi region monitoring
• When select the region for your monitor, you can choose multiple regions
• The region defines where the monitoring calls to the API are made from
• The monitor will run the collection once for each region specified
• Results in more monitoring calls
• Failures will be duplicated
149
148
149
2019-01-10
74
EX5.1 – Create a monitor
1. Open the Restful Booker environment and set the initial value of the password variable to
“password123”
2. Click the “New” dropdown and select “Monitor”
3. Select the “Use Collection from this Workspace” option and choose the Restful Booker
collection
4. Name the monitor “Restful Booker monitor”
5. Select the Restful Booker environment
6. Set the monitor frequency to be once per day
7. Select any region of your choice
8. Add yourself to receive email notifications on run failures and errors
9. Click Create
150
Viewing monitor results
151
150
151
2019-01-10
75
Monitors page
• Monitor results are viewed through the web portal of your Postman account
• Monitors page displays the list of monitors you have access to (individual and
team)
152
Monitor details page
• Shows all past runs of the monitor
• Red columns indicate failed runs, green indicates successful runs
• Click on the column to show the full run details
153
152
153
2019-01-10
76
Viewing your monitor results
• Monitor results are shown in the
web portal of your Postman
account
• Can have multiple monitors in a
collection
• Expand the collection view in the
Postman App and go to the
Monitors tab to find the list of
monitors for that collection
154
Monitor email summary
• Receive a daily or weekly email summary
of your monitors
• Configured in your
account Notification
preferences
155
154
155
2019-01-10
77
Demo Viewing Monitor
results
156
EX5.2 – View monitor results
1. On the Postman App, click on the Restful Booker collection and click on the
Monitors tab
2. Click the monitor listed to open up the monitor details page
3. Click the “Run” button to run the collection and then refresh the page
4. Open up the details of the latest run and alternate between the “Test Results”
tab and the “Console Log” tab
157
156
157
2019-01-10
78
Monitoring tips and tricks
158
Monitoring API’s and websites
• Monitoring individual endpoints
− Use different variants of the same endpoint in different requests
− Allows testing of a broad range of responses to cover the entire endpoint
• Monitoring websites
− Check for correct response codes within your test scripts
• Monitoring for latency
− Check for response time in your test script
− Ensures consistent API / website performance
159
158
159
2019-01-10
79
Troubleshooting monitors
• Use console logging to inspect where a run might be failing
• Request and response body are not automatically logged in the Postman
monitor console
• If a monitor run fails, run the collection locally to determine if it works
correctly
• If local run passes, ensure that “sync” in enabled. This will ensure any local
changes are persisted
160
Troubleshooting monitors – (cont’d)
• Use the same environment
for local collection runs and
monitor runs
• Change any global variables
to environment variables.
Global variables are not
supported in monitor runs
161
160
161
2019-01-10
80
Module Review
Key Points:
• Monitors run a collection in the cloud
on a scheduled basis to test our API’s
• Some differences exist when running
a collection on the collection runner
compared to running in a monitor
• Email notifications can be sent out in
the result of a failed collection run
162
Module 6 – Postman API
163
©2018Postman
162
163
2019-01-10
81
Module Objectives
After completing this module, you will be
able to:
• Add the Postman API integration to your
account
• Send requests to the Postman API
endpoints
164
Using the Postman API
165
164
165
2019-01-10
82
Postman API overview
• The Postman API contains endpoints that allow you to integrate Postman into
your development infrastructure
• Provides programmatic access to data stored in your Postman account
− Add an update collections, environments, users
− Run monitors
− Create mocks
− More …
• Access to the API is rate limited to 60 requests per minute
166
Postman API Key
• The Postman API Key is needed to authenticate requests against the Postman API
• API Key is generated in Postman account by adding the Postman API integration
• Key can be specified using the x-api-key header or the apikey query string
parameter
(ie. https://api.getpostman.com/collections?apikey=96d02f.... )
167
166
167
2019-01-10
83
Adding Postman API Integration
• Go to “Integrations” tab on your Postman account via the web portal
• Add the integration to be able to generate your API key
168
EX6.1 – Send Postman API Request
1. Login to your Postman account on the web browser.
2. Go to your Workspace and click the Integrations tab.
3. Add the Postman API Integration. This should also generate an API key.
4. Switch the Postman desktop app and create a new Request with the request
URL https://api.getpostman.com/collections
5. Add the “x-api-key” Header and enter your API key as the value.
6. Send the Request and observe the response.
169
168
169
2019-01-10
84
Example Postman API endpoints
• Environment (Get all environments)
− https://api.getpostman.com/environments
• Environment (Get individual environment)
− https://api.getpostman.com/environments/{{environment_uid}}
• Environment (Delete)
− https://api.getpostman.com/environments/{{environment_uid}}
− Request method set to DELETE
• Run a monitor
− https://api.getpostman.com/monitors/{{monitor_uid}}/run
• Full API reference at https://docs.api.getpostman.com/
170
Module Review
Key Points:
• Postman API gives you programmatic
access to the core Postman functions
• Requests to the Postman API are
secured by an API key
171
170
171
2019-01-10
85
Module 7 – Continuous Integration with
Postman
172
©2018Postman
Module Objective
After completing this module, you will be
able to:
• Describe how Postman can fit into your
CI/CD pipeline
• Use Newman to run a collection by
calling the Postman API
173
172
173
2019-01-10
86
CI/CD Overview
174
Intro to Continuous Integration
• A process of ensuring there is a constant working copy of your system that is
fully integrated
− Integration problems always exist in projects where components are developed
independently and integrated at the end
− With Continuous Integration, integration is frequent
• Bugs are found and resolved faster
• Greater visibility in a project
• Requires developers to regularly commit code into a shared repository, which
then triggers a process of building and testing the code
175
174
175
2019-01-10
87
CI/CD overview
176
Postman in CI/CD process
• API Developers commit code to repo, which triggers a build on the CI/CD
server
• Build runs the unit and integration tests if applicable and if successful, the API
is deployed into an environment (i.e QA, staging etc…)
• CI/CD server then runs the API’s Postman collection to test the API endpoints
• If tests are successful, we can consider automating the next deployment (i.e.
Deploy to production)
177
176
177
2019-01-10
88
Postman in CI/CD process
178
CI/CD server
Run unit tests
Run integration test
Package
Deploy to Staging
Staging server
API
Run Postman collection
Environment: staging
Deploy to Production
API
Production server
Newman
Demo Run Newman in
Jenkins
179
178
179
2019-01-10
89
Using the Postman API for CI/CD
180
Run Collection using API
• Running a Collection against a JSON file is not ideal due to the export process
• If the collection is updated, we have to export the file again
• Same applies for equivalent environments
• Better option is to use the Postman API to get the collection we want to run
• This ensures we are always running the latest copy of the collection
• Newman allows us to run a collection by making a Postman API call
181
180
181
2019-01-10
90
Newman and Postman API
Run a collection by calling the Postman API
newman run 
https://api.getpostman.com/collections/{{collection_uid}}?apikey={{postman-api-key-
here}}
Run a collection using the Postman API with specified environment
newman run 
https://api.getpostman.com/collections/{{collection_uid}}?apikey={{postman-api-key-
here}} 
--environment
https://api.getpostman.com/environments/{{environment_uid}}?apikey={{postman-api-
key-here}}
182
Newman reporters
• Newman reporters allow the results of a collection run to be outputted into a specific format
• Built in options:
− CLI (default option)
− JSON file
− JUnit XML file
• Can install additional external reporters or write your own reporter
• See https://github.com/postmanlabs/newman#configuring-reporters
183
Run a collection by calling the Postman API and ouput to JUnit
newman run
https://api.getpostman.com/collections/{{collection_uid}}?apikey={{postman-api-key-
here}} --reporters junit
182
183
2019-01-10
91
Getting the Collection UID
• Open the Collection in your Postman account on the browser
• The Collection UID is listed on the URL at “/collections/{uid}”
184
Getting the Environment UID
• Open the Environment in your Postman account on the browser
• The Environment UID is listed on the URL at “/environments/{uid}”
185
184
185
2019-01-10
92
EX7.1 – Get collection and environment UID
1. Open the Postman Dashboard on your web browser
2. Navigate into the Workspace you’ve been using for this course
3. Click on the “Restful Booker” collection
4. Look at the URL of the collection and copy the UID portion of it into a text file
5. Go back to the previous page and then click on the “Environments” tab
6. Click on the “Restful Booker private” environment
7. Look at the URL of the environment and copy the UID portion of it into a text
file
186
EX7.2 – Run collection with Newman
1. Open your terminal and use Newman to run the “Restful Booker” collection by
specifying an API call to the collection and the environment
Hint: Use the UID’s from the previous exercise. Also, do not forget to input
your API key
187
186
187
2019-01-10
93
Module Review
Key Points:
• A Postman collection can be run in
CI/CD pipeline after an API has been
built and deployed
• The Collection run serves to test the
API endpoints
• It is more effective to run a collection
by calling the Postman API collection
endpoint as opposed to exporting the
collection to a JSON file
188
Further references
• Documentation - https://learning.getpostman.com
• Blog - http://blog.getpostman.com
• Postman API docs - https://docs.api.getpostman.com/
• Restful Booker sample API - https://restful-booker.herokuapp.com/apidoc/index.html
189
188
189
2019-01-10
94
You have reached the end of
the Postman Expert course!
190

More Related Content

What's hot

API Testing. Streamline your testing process.
API Testing. Streamline your testing process.API Testing. Streamline your testing process.
API Testing. Streamline your testing process.Andrey Oleynik
 
Test Design and Automation for REST API
Test Design and Automation for REST APITest Design and Automation for REST API
Test Design and Automation for REST APIIvan Katunou
 
Web Services and Introduction of SOAPUI
Web Services and Introduction of SOAPUIWeb Services and Introduction of SOAPUI
Web Services and Introduction of SOAPUIDinesh Kaushik
 
Continuous Quality with Postman
Continuous Quality with PostmanContinuous Quality with Postman
Continuous Quality with PostmanPostman
 
SoapUI Pro Plugin Workshop #SoapUIPlugins
SoapUI Pro Plugin Workshop #SoapUIPluginsSoapUI Pro Plugin Workshop #SoapUIPlugins
SoapUI Pro Plugin Workshop #SoapUIPluginsSmartBear
 
POST/CON 2019 Workshop: Fundamentals
POST/CON 2019 Workshop: FundamentalsPOST/CON 2019 Workshop: Fundamentals
POST/CON 2019 Workshop: FundamentalsPostman
 
Postman 101 & Office Hours
Postman 101 & Office HoursPostman 101 & Office Hours
Postman 101 & Office HoursPostman
 
Presentation for soap ui
Presentation for soap uiPresentation for soap ui
Presentation for soap uiAnjali Rao
 
Webservice performance testing with SoapUI
Webservice performance testing with SoapUIWebservice performance testing with SoapUI
Webservice performance testing with SoapUIPhuoc Nguyen
 
Postman Webinar: “Continuous Testing with Postman”
Postman Webinar: “Continuous Testing with Postman”Postman Webinar: “Continuous Testing with Postman”
Postman Webinar: “Continuous Testing with Postman”Postman
 
Soap UI - Lesson45
Soap UI - Lesson45Soap UI - Lesson45
Soap UI - Lesson45Qualitest
 
Postman: An Introduction for Testers
Postman: An Introduction for TestersPostman: An Introduction for Testers
Postman: An Introduction for TestersPostman
 
Ppt of soap ui
Ppt of soap uiPpt of soap ui
Ppt of soap uipkslide28
 
Postman Webinar: Postman 101
Postman Webinar: Postman 101Postman Webinar: Postman 101
Postman Webinar: Postman 101Nikita Sharma
 

What's hot (20)

Learn SoapUI
Learn SoapUILearn SoapUI
Learn SoapUI
 
API Testing. Streamline your testing process.
API Testing. Streamline your testing process.API Testing. Streamline your testing process.
API Testing. Streamline your testing process.
 
Test Design and Automation for REST API
Test Design and Automation for REST APITest Design and Automation for REST API
Test Design and Automation for REST API
 
Web Services and Introduction of SOAPUI
Web Services and Introduction of SOAPUIWeb Services and Introduction of SOAPUI
Web Services and Introduction of SOAPUI
 
Belajar Postman test runner
Belajar Postman test runnerBelajar Postman test runner
Belajar Postman test runner
 
Agile Tools
Agile ToolsAgile Tools
Agile Tools
 
Continuous Quality with Postman
Continuous Quality with PostmanContinuous Quality with Postman
Continuous Quality with Postman
 
SoapUI Pro Plugin Workshop #SoapUIPlugins
SoapUI Pro Plugin Workshop #SoapUIPluginsSoapUI Pro Plugin Workshop #SoapUIPlugins
SoapUI Pro Plugin Workshop #SoapUIPlugins
 
POST/CON 2019 Workshop: Fundamentals
POST/CON 2019 Workshop: FundamentalsPOST/CON 2019 Workshop: Fundamentals
POST/CON 2019 Workshop: Fundamentals
 
Paper CS
Paper CSPaper CS
Paper CS
 
Postman 101 & Office Hours
Postman 101 & Office HoursPostman 101 & Office Hours
Postman 101 & Office Hours
 
Presentation for soap ui
Presentation for soap uiPresentation for soap ui
Presentation for soap ui
 
Webservice performance testing with SoapUI
Webservice performance testing with SoapUIWebservice performance testing with SoapUI
Webservice performance testing with SoapUI
 
Postman Webinar: “Continuous Testing with Postman”
Postman Webinar: “Continuous Testing with Postman”Postman Webinar: “Continuous Testing with Postman”
Postman Webinar: “Continuous Testing with Postman”
 
Soap UI - Lesson45
Soap UI - Lesson45Soap UI - Lesson45
Soap UI - Lesson45
 
Testing microservices with rest assured
Testing microservices with rest assuredTesting microservices with rest assured
Testing microservices with rest assured
 
Postman: An Introduction for Testers
Postman: An Introduction for TestersPostman: An Introduction for Testers
Postman: An Introduction for Testers
 
Ppt of soap ui
Ppt of soap uiPpt of soap ui
Ppt of soap ui
 
Rest assured
Rest assuredRest assured
Rest assured
 
Postman Webinar: Postman 101
Postman Webinar: Postman 101Postman Webinar: Postman 101
Postman Webinar: Postman 101
 

Similar to POST/CON 2019 Workshop: Experts

40+ tips to use Postman more efficiently
40+ tips to use Postman more efficiently40+ tips to use Postman more efficiently
40+ tips to use Postman more efficientlypostmanclient
 
Getting Started with Selenium
Getting Started with SeleniumGetting Started with Selenium
Getting Started with SeleniumDave Haeffner
 
Automation anywhere Training Materials
Automation anywhere Training MaterialsAutomation anywhere Training Materials
Automation anywhere Training MaterialsShekar S
 
Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Vincent Massol
 
How To Use Selenium Successfully
How To Use Selenium SuccessfullyHow To Use Selenium Successfully
How To Use Selenium SuccessfullyDave Haeffner
 
Maven TestNg frame work (1) (1)
Maven TestNg frame work (1) (1)Maven TestNg frame work (1) (1)
Maven TestNg frame work (1) (1)QA Programmer
 
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium MeetupSelenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium MeetupDave Haeffner
 
Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Applitools
 
Salesforce Developer Console ppt
Salesforce Developer Console  pptSalesforce Developer Console  ppt
Salesforce Developer Console pptKuhinoor Alom
 
How to use selenium successfully
How to use selenium successfullyHow to use selenium successfully
How to use selenium successfullyTEST Huddle
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projectsVincent Massol
 
Testing 2: Advanced Test Management
Testing 2: Advanced Test Management Testing 2: Advanced Test Management
Testing 2: Advanced Test Management Inflectra
 
Maven TestNg frame work (1) (1)
Maven TestNg frame work (1) (1)Maven TestNg frame work (1) (1)
Maven TestNg frame work (1) (1)Gopi Raghavendra
 
Tna how taxonomy applications were built
Tna how taxonomy applications were builtTna how taxonomy applications were built
Tna how taxonomy applications were builtJeremie Charlet
 
How to upgrade OJS 2 to OJS 3 latest
How to upgrade OJS 2 to OJS 3 latestHow to upgrade OJS 2 to OJS 3 latest
How to upgrade OJS 2 to OJS 3 latestOpenjournaltheme
 
Measuring IPv6 using ad-based measurement
Measuring IPv6 using ad-based measurementMeasuring IPv6 using ad-based measurement
Measuring IPv6 using ad-based measurementAPNIC
 
Performance Analysis of Idle Programs
Performance Analysis of Idle ProgramsPerformance Analysis of Idle Programs
Performance Analysis of Idle Programsgreenwop
 
SOA with PHP and Symfony
SOA with PHP and SymfonySOA with PHP and Symfony
SOA with PHP and SymfonyMichalSchroeder
 

Similar to POST/CON 2019 Workshop: Experts (20)

40+ tips to use Postman more efficiently
40+ tips to use Postman more efficiently40+ tips to use Postman more efficiently
40+ tips to use Postman more efficiently
 
Getting Started with Selenium
Getting Started with SeleniumGetting Started with Selenium
Getting Started with Selenium
 
Automation anywhere Training Materials
Automation anywhere Training MaterialsAutomation anywhere Training Materials
Automation anywhere Training Materials
 
Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019
 
How To Use Selenium Successfully
How To Use Selenium SuccessfullyHow To Use Selenium Successfully
How To Use Selenium Successfully
 
Maven TestNg frame work (1) (1)
Maven TestNg frame work (1) (1)Maven TestNg frame work (1) (1)
Maven TestNg frame work (1) (1)
 
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium MeetupSelenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
 
Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully
 
Salesforce Developer Console ppt
Salesforce Developer Console  pptSalesforce Developer Console  ppt
Salesforce Developer Console ppt
 
How to use selenium successfully
How to use selenium successfullyHow to use selenium successfully
How to use selenium successfully
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projects
 
Testing 2: Advanced Test Management
Testing 2: Advanced Test Management Testing 2: Advanced Test Management
Testing 2: Advanced Test Management
 
Maven TestNg frame work (1) (1)
Maven TestNg frame work (1) (1)Maven TestNg frame work (1) (1)
Maven TestNg frame work (1) (1)
 
Why meteor
Why meteorWhy meteor
Why meteor
 
Selenium Training in Chennai
Selenium Training in ChennaiSelenium Training in Chennai
Selenium Training in Chennai
 
Tna how taxonomy applications were built
Tna how taxonomy applications were builtTna how taxonomy applications were built
Tna how taxonomy applications were built
 
How to upgrade OJS 2 to OJS 3 latest
How to upgrade OJS 2 to OJS 3 latestHow to upgrade OJS 2 to OJS 3 latest
How to upgrade OJS 2 to OJS 3 latest
 
Measuring IPv6 using ad-based measurement
Measuring IPv6 using ad-based measurementMeasuring IPv6 using ad-based measurement
Measuring IPv6 using ad-based measurement
 
Performance Analysis of Idle Programs
Performance Analysis of Idle ProgramsPerformance Analysis of Idle Programs
Performance Analysis of Idle Programs
 
SOA with PHP and Symfony
SOA with PHP and SymfonySOA with PHP and Symfony
SOA with PHP and Symfony
 

More from Postman

Elevating Developer Experiences with AI-Powered API Testing & Documentation
Elevating Developer Experiences with AI-Powered API Testing & DocumentationElevating Developer Experiences with AI-Powered API Testing & Documentation
Elevating Developer Experiences with AI-Powered API Testing & DocumentationPostman
 
Discovering Public APIs and Public API Network with Postman
Discovering Public APIs and Public API Network with PostmanDiscovering Public APIs and Public API Network with Postman
Discovering Public APIs and Public API Network with PostmanPostman
 
Optimizing Teamwork: Harnessing Collections & Workspaces for Collaboration
Optimizing Teamwork: Harnessing Collections & Workspaces for CollaborationOptimizing Teamwork: Harnessing Collections & Workspaces for Collaboration
Optimizing Teamwork: Harnessing Collections & Workspaces for CollaborationPostman
 
API testing Beyond the Basics AI & Automation Techniques
API testing Beyond the Basics AI & Automation TechniquesAPI testing Beyond the Basics AI & Automation Techniques
API testing Beyond the Basics AI & Automation TechniquesPostman
 
Not Your Grandma’s Rate Limiting (slides)
Not Your Grandma’s Rate Limiting (slides)Not Your Grandma’s Rate Limiting (slides)
Not Your Grandma’s Rate Limiting (slides)Postman
 
Five Ways to Automate API Testing with Postman
Five Ways to Automate API Testing with PostmanFive Ways to Automate API Testing with Postman
Five Ways to Automate API Testing with PostmanPostman
 
How to Scale APIs-as-Product for Future Success
How to Scale APIs-as-Product for Future SuccessHow to Scale APIs-as-Product for Future Success
How to Scale APIs-as-Product for Future SuccessPostman
 
Revolutionizing API Development: Collaborative Workflows with Postman
Revolutionizing API Development: Collaborative Workflows with PostmanRevolutionizing API Development: Collaborative Workflows with Postman
Revolutionizing API Development: Collaborative Workflows with PostmanPostman
 
Everything You Always Wanted to Know About AsyncAPI
Everything You Always Wanted to Know About AsyncAPIEverything You Always Wanted to Know About AsyncAPI
Everything You Always Wanted to Know About AsyncAPIPostman
 
Elevating Event-Driven World: A Deep Dive into AsyncAPI v3
Elevating Event-Driven World: A Deep Dive into AsyncAPI v3Elevating Event-Driven World: A Deep Dive into AsyncAPI v3
Elevating Event-Driven World: A Deep Dive into AsyncAPI v3Postman
 
Five Things You SHOULD Know About Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About PostmanPostman
 
Integration-, Snapshot- and Performance-Testing APIs
Integration-, Snapshot- and Performance-Testing APIs Integration-, Snapshot- and Performance-Testing APIs
Integration-, Snapshot- and Performance-Testing APIs Postman
 
How ChatGPT led OpenAPI's Recent Spike in Popularity
How ChatGPT led OpenAPI's Recent Spike in PopularityHow ChatGPT led OpenAPI's Recent Spike in Popularity
How ChatGPT led OpenAPI's Recent Spike in PopularityPostman
 
Exploring Postman’s VS Code Extension
Exploring Postman’s VS Code ExtensionExploring Postman’s VS Code Extension
Exploring Postman’s VS Code ExtensionPostman
 
2023 State of the API Report: Key Findings and Trends
2023 State of the API Report: Key Findings and Trends2023 State of the API Report: Key Findings and Trends
2023 State of the API Report: Key Findings and TrendsPostman
 
Nordic- APIOps is here What will you build in an API First World
Nordic- APIOps is here What will you build in an API First World Nordic- APIOps is here What will you build in an API First World
Nordic- APIOps is here What will you build in an API First World Postman
 
Testing and Developing gRPC APIs
Testing and Developing gRPC APIsTesting and Developing gRPC APIs
Testing and Developing gRPC APIsPostman
 
Testing and Developing GraphQL APIs
Testing and Developing GraphQL APIsTesting and Developing GraphQL APIs
Testing and Developing GraphQL APIsPostman
 
Introduction to API Security - Intergalactic
Introduction to API Security - IntergalacticIntroduction to API Security - Intergalactic
Introduction to API Security - IntergalacticPostman
 
Unboxing What's New in Postman Q2
Unboxing What's New in Postman Q2Unboxing What's New in Postman Q2
Unboxing What's New in Postman Q2Postman
 

More from Postman (20)

Elevating Developer Experiences with AI-Powered API Testing & Documentation
Elevating Developer Experiences with AI-Powered API Testing & DocumentationElevating Developer Experiences with AI-Powered API Testing & Documentation
Elevating Developer Experiences with AI-Powered API Testing & Documentation
 
Discovering Public APIs and Public API Network with Postman
Discovering Public APIs and Public API Network with PostmanDiscovering Public APIs and Public API Network with Postman
Discovering Public APIs and Public API Network with Postman
 
Optimizing Teamwork: Harnessing Collections & Workspaces for Collaboration
Optimizing Teamwork: Harnessing Collections & Workspaces for CollaborationOptimizing Teamwork: Harnessing Collections & Workspaces for Collaboration
Optimizing Teamwork: Harnessing Collections & Workspaces for Collaboration
 
API testing Beyond the Basics AI & Automation Techniques
API testing Beyond the Basics AI & Automation TechniquesAPI testing Beyond the Basics AI & Automation Techniques
API testing Beyond the Basics AI & Automation Techniques
 
Not Your Grandma’s Rate Limiting (slides)
Not Your Grandma’s Rate Limiting (slides)Not Your Grandma’s Rate Limiting (slides)
Not Your Grandma’s Rate Limiting (slides)
 
Five Ways to Automate API Testing with Postman
Five Ways to Automate API Testing with PostmanFive Ways to Automate API Testing with Postman
Five Ways to Automate API Testing with Postman
 
How to Scale APIs-as-Product for Future Success
How to Scale APIs-as-Product for Future SuccessHow to Scale APIs-as-Product for Future Success
How to Scale APIs-as-Product for Future Success
 
Revolutionizing API Development: Collaborative Workflows with Postman
Revolutionizing API Development: Collaborative Workflows with PostmanRevolutionizing API Development: Collaborative Workflows with Postman
Revolutionizing API Development: Collaborative Workflows with Postman
 
Everything You Always Wanted to Know About AsyncAPI
Everything You Always Wanted to Know About AsyncAPIEverything You Always Wanted to Know About AsyncAPI
Everything You Always Wanted to Know About AsyncAPI
 
Elevating Event-Driven World: A Deep Dive into AsyncAPI v3
Elevating Event-Driven World: A Deep Dive into AsyncAPI v3Elevating Event-Driven World: A Deep Dive into AsyncAPI v3
Elevating Event-Driven World: A Deep Dive into AsyncAPI v3
 
Five Things You SHOULD Know About Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
 
Integration-, Snapshot- and Performance-Testing APIs
Integration-, Snapshot- and Performance-Testing APIs Integration-, Snapshot- and Performance-Testing APIs
Integration-, Snapshot- and Performance-Testing APIs
 
How ChatGPT led OpenAPI's Recent Spike in Popularity
How ChatGPT led OpenAPI's Recent Spike in PopularityHow ChatGPT led OpenAPI's Recent Spike in Popularity
How ChatGPT led OpenAPI's Recent Spike in Popularity
 
Exploring Postman’s VS Code Extension
Exploring Postman’s VS Code ExtensionExploring Postman’s VS Code Extension
Exploring Postman’s VS Code Extension
 
2023 State of the API Report: Key Findings and Trends
2023 State of the API Report: Key Findings and Trends2023 State of the API Report: Key Findings and Trends
2023 State of the API Report: Key Findings and Trends
 
Nordic- APIOps is here What will you build in an API First World
Nordic- APIOps is here What will you build in an API First World Nordic- APIOps is here What will you build in an API First World
Nordic- APIOps is here What will you build in an API First World
 
Testing and Developing gRPC APIs
Testing and Developing gRPC APIsTesting and Developing gRPC APIs
Testing and Developing gRPC APIs
 
Testing and Developing GraphQL APIs
Testing and Developing GraphQL APIsTesting and Developing GraphQL APIs
Testing and Developing GraphQL APIs
 
Introduction to API Security - Intergalactic
Introduction to API Security - IntergalacticIntroduction to API Security - Intergalactic
Introduction to API Security - Intergalactic
 
Unboxing What's New in Postman Q2
Unboxing What's New in Postman Q2Unboxing What's New in Postman Q2
Unboxing What's New in Postman Q2
 

Recently uploaded

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Recently uploaded (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

POST/CON 2019 Workshop: Experts

  • 1. 2019-01-10 1 PRESENTED BY ©2018Postman Postman Expert Johnny Tu Welcome & Introductions Instructor: Johnny Tu 1. B. Science (Information Technology) 2. Based in Sydney, Australia 3. Training experience includes: Atlassian, Zendesk, GoodData, NGINX, Docker 4. Developed training courses for: Bamboo Fundamentals, Bamboo Administrators, Bamboo Integration, Stash Essentials 5. Conducted Customer training for: IBM, US Federal Reserve Bank, Graybar Electric Company, AmerisourceBergen, Royal Bank of Canada, Bank of America, National Security Agency, Credit Suisse, US Marine Corps, The World Bank, Allianz Insurance, ESPN, University of California, United Nations, Symantec Participant Introductions 2 1 2
  • 2. 2019-01-10 2 Housekeeping 3 Format • Slides • Demonstrations • Exercises Teleconference • Please mute when possible • Stay on the line during break • Please use headset and microphone Duration • 4 hours • 10 minute break every hour • Ask questions anytime 4 Prior Training and/or knowledge You should have either taken the Postman Fundamentals course or be familiar with the following topics • Postman Requests, Collections, Variables and Environments, Workspaces • Basic scripting to test API’s • Simple JavaScript code • HTTP Request structure (HTTP methods, common headers etc…) Required Tools • Postman Desktop application and account • Node.js and Newman installed • OpenWeather API account Course Prerequisites 3 4
  • 3. 2019-01-10 3 Course Pre-requisites (cont’d) If you do not have Postman installed already: 1. Go to https://www.getpostman.com/apps, download and install the app. 2. If you do not have a Postman account, sign up for a free account. 3. Open the Postman desktop application and make sure you are signed into your account OpenWeather API account is needed for later exercises 1. Go to https://home.openweathermap.org/users/sign_up and register for a free account 2. Sign in to your newly registered account 3. Click on the “API Keys” tab and verify that an API key was created 5 Get course materials 1. Open your Postman desktop application and create a new private Workspace 2. Open a web browser and go to https://documenter.getpostman.com/view/4805376/RznEKJNG and https://documenter.getpostman.com/view/4805376/RznEKJSb 3. On each page, click the Run in Postman button 4. Select “Postman for Windows / Mac” option 5. At the end of this, you should have 2 collections and 2 environments in your workspace 6 5 6
  • 4. 2019-01-10 4 Get course materials (cont’d) 1. Click the “New” button on the top left of the Postman App 2. Select the Templates tab 3. Use the search function to search for “EX2.2” 4. You should see a template called “Postman Expert Training EX2.2” 5. Select the template and click “Use this Template” 6. Click on “Create’’ 7. You should now have a collection called “Restful Booker” 7 Agenda 1. Collection Runs 2. Advanced Scripting 3. API Documentation 4. Mock Servers 5. Monitors 6. Postman API 7. Continuous Integration 8 7 8
  • 5. 2019-01-10 5 Module 1 – Collection Runs 9 ©2018Postman Module Objectives After completing this module, you will be able to: • Start a collection run • Use environments in a collection run • Run multiple iterations of a collection • Upload a data file for a collection run • Debug a collection run 10 9 10
  • 6. 2019-01-10 6 Start a Collection Run 11 Intro to Collection runs • A collection run is an execution of all requests in a collection • Requests are run one after another • Collections can be run by ➢ Postman application collection runner ➢ Newman (CLI tool) ➢ Postman monitors 11 12
  • 7. 2019-01-10 7 Why run Collections • Useful in automated API testing • Scripts can be used to build test suites and pass data between API requests ➢ Helps to mirror a workflow ➢ Replicate a user experience • Test for hundreds of scenarios by using a data file Starting a Collection Run • Click on “Runner” to open the Postman Application Collection Runner • Select the Collection or folder to run ➢ Selecting a collection will run all requests in every folder sequentially in the order listed ➢ Selecting a folder will run only the requests in that folder • Click “Run” 13 14
  • 8. 2019-01-10 8 Viewing Results Drill down in Results • Can inspect the request and response details for each Request in the collection run • Useful for troubleshooting failed requests 15 16
  • 9. 2019-01-10 9 Demo Run a Collection 17 Collection run variables 18 17 18
  • 10. 2019-01-10 10 Using variables in a collection run • Select environment to use the variable values in a collection run • “Keep variable values” will preserve the “current value” of variables if they are changed during the collection run Ex1.1 – Run a collection 1. Import the sample Ex1.1 collection and environment provided by the instructor. You should have a collection called “Using Environments” and an environment called “testEnv” 2. Open the request in the “Using Environments” collection 3. Select the “testEnv” environment on the request builder 4. Click on the “Environment quick look” button 5. Check the current value of the “foo” variable. It should be “bar” 6. Send the request and then check the current value of the “foo” variable again. Can you identify the cause of the change in the value? 7. Change the current value of “foo” back to “bar” 19 20
  • 11. 2019-01-10 11 Ex1.1 – Run a collection (cont’d) 8. Click the “Runner” button 9. Select the “Using Environments” collection and the “testEnv” environment 10. Run the collection and then check the value of the “foo” variable. What do you notice? 11. Start a new Collection run using the same settings as before but this time, tick the “Keep variable values” option 12. What do you notice about the current value of the “foo” variable afterwards? Multiple iterations run 22 21 22
  • 12. 2019-01-10 12 Running multiple iterations • An iteration represents the number of times a collection will run • Run multiple iterations to test for consistent behaviour Multiple iteration results 23 24
  • 13. 2019-01-10 13 Using red and green filters • Useful for filtering results on large collections • A request where one or more test cases failed will be marked red Run summary • Shows each request and iteration in a timeline format • Can easily see which request in the collection failed and which iteration the request failed in 25 26
  • 15. 2019-01-10 15 Using a data file • Upload a data file and use the values defined in the file in your HTTP requests and scripts • Supported formats are CSV and JSON • Each record in the data file is treated as a separate iteration • Benefits: ➢ More robust testing of API’s by testing for many variations in request parameters ➢ Can be used to perform database initialization and ➢ Setup and teardown for testing Data variables • Values from an uploaded CSV or JSON file during a Collection run are treated as data variables • Can be used in the same manner as global, collection and environment variables 29 30
  • 16. 2019-01-10 16 CSV file format • First row contains the variable names to be used in the request • Every row after is used as a data row • Rows should have the same number of columns JSON file format • Array of key value pairs • Each key represents the name of the variable 31 32
  • 17. 2019-01-10 17 Debugging requests • Drill down on the results to inspect the request and response headers and body • Use the Postman console • Console must be open prior to running the collection Ex1.2 – Use a data file 1. Import the Ex1.2 collection and environment provided to you by the instructor 2. You should have a collection called OpenWeather API and an environment call OpenWeather 3. Open the OpenWeather environment and add your OpenWeather API key to the current value of the “apikey” variable 4. Open the Postman console 5. Configure a new collection run using the newly imported collection and environment 6. Next to data, click “Select File” and select the sample.csv file provided to you 7. Run the collection and observe the results on the Collection runner as well as the console 8. Expand some of the console entries to observe the request and response headers 33 34
  • 18. 2019-01-10 18 Newman 35 Running collections with Newman • Newman is the command line tool used to run Postman collections • Built on Node.js • Easily integrated with CI/CD servers • Maintains feature parity with the Postman App • For more detailed information and examples of usage, see https://github.com/postmanlabs/newman 35 36
  • 19. 2019-01-10 19 EX1.3 - Install Newman Newman requires Node.js and resides in the NPM registry 1. Go to https://nodejs.org/en/download/ and download the latest release of Node.js 2. Run the installation file to install Node.js 3. Open your terminal and run npm install -g newman 37 Running a Collection with Newman • Need to export the Collection and any environment it uses to a JSON file • Run Newman against the file newman run <collection file> 38 37 38
  • 20. 2019-01-10 20 Newman run parameters 39 Display run options newman run –h Run the collection using an environment (environment must first be exported) newman run <collection_file> -e <environment_file.json> Run the collection over 10 iterations newman run <collection_file> -n 10 Demo Newman run options 40 39 40
  • 21. 2019-01-10 21 EX1.4 – Run collection with Newman 1. Export the OpenWeather API collection to a JSON file 2. Export the OpenWeather environment to a JSON file. Save the file into the same folder as the OpenWeather API JSON file 3. Open your terminal to the folder in steps 1 and 2 4. Run the collection using Newman newman run <collection> -e <environment file> 41 Module Review • Collections can be run via the Postman app collection runner or via Newman • Changes in variable values during a collection run, can be persisted • Using a data file allows us to run a collection over many iterations to test for as many variations in input as needed 42 41 42
  • 22. 2019-01-10 22 Module 2 – Advanced Scripting 43 ©2018Postman Module Objectives After completing this module, you will be able to: • Describe the difference between pre- request and test scripts • Describe the execution order of Postman scripts • Write a pre-request script • Set the script execution order to create a workflow 44 43 44
  • 23. 2019-01-10 23 Intro to Scripting 45 Recall: Postman API Testing • JavaScript code can be executed after receiving the response to a request • Access request, response, and variable data • Postman Sandbox API provides a set of JavaScript variables and functions to access the request and response data • The Tests Results tab in the response area to show the results of each test 46 45 46
  • 24. 2019-01-10 24 Types of Postman scripts • Pre-request script − Executed before the postman request is sent • Test script − Executed after the response has been received 47 Script execution order For an individual request: • Pre-request scripts are executed before the request is sent • Test scripts executes after the request is sent 48 47 48
  • 25. 2019-01-10 25 Collection script execution order 49 Script debugging • Use console.log() function to log values to the console • Useful for inspect variable and response data and script flow • Postman Console must be open before running the request 50 49 50
  • 26. 2019-01-10 26 Pre-request scripts 51 Writing a pre-request script • Written in JavaScript • Same as test scripts but without access to the response object • Typically used to manipulate data before a request is sent − Set variable values based on a function call − Add headers such as timestamp 52 51 52
  • 27. 2019-01-10 27 EX2.1 – Write a pre-request script 1. Create a Collection called IEX 2. Create a new request with the following URL: https://api.iextrading.com/1.0/stock/{{stock}}/chart/date/{{date}} and save it to the IEX collection 3. Create an environment called IEX with the “stock” and “date” variables defined 4. Set the initial and current value of the “stock” variable to “amzn” 53 EX2.1 – (cont’d) 5. Switch to the “Pre-request” tab and write the following script: const moment = require('moment’); var previousWeek = moment().subtract(7, 'days').format('YYYYMMDD’); pm.environment.set("date", previousWeek); 6. Run the request and check the date on the response body. The date we should see should be exactly 7 days ago from today. 54 53 54
  • 28. 2019-01-10 28 Test Scripts 55 Recall – Examples of Test Scripts • Many types of tests are available in snippets − Check response code − Check JSON value − Check response headers and body 56 55 56
  • 29. 2019-01-10 29 Check response schema • Verify that API responses comply with the JSON schema definition • Postman includes the Tiny Validator (tv4) library for writing tests to check the schema − https://geraintluff.github.io/tv4/ • How to write a JSON schema definition − https://json-schema.org/understanding-json-schema/about.html − https://assertible.com/blog/testing-and-validating-api-responses-with-json-schema 57 Example schema check Response Body { "token": "12bd4c389b9efb8“ } 58 57 58
  • 30. 2019-01-10 30 Example schema check (cont’d) [ { "bookingid": 9 }, { "bookingid": 5 }, { "bookingid": 6 } ] 59 Schema check – best practices • Don’t define the schema directly in the test script − Not a good approach when multiple requests require the same schema − Lots of updating if the schema changes • Better to define the schema as a variable value 61 59 61
  • 31. 2019-01-10 31 Building Workflows 63 Intro to Workflows • A workflow is a sequence of requests in a collection, which represents a particular user story / application feature • Each sequence in the workflow is a separate API call • For example: Purchase an item from a store 64 Search for product Add to shopping cart Checkout Call Payment gateway Send confirmation email /product?q= /cart/add /checkout /payment/card /order/confirm 63 64
  • 32. 2019-01-10 32 Controlling the request order • Requests in a collection are executed in linear order (in the order that you see them listed) • To build a workflow, we must control the sequencing of our requests. • Use the postman.setNextRequest()function in our test script − postman.setNextRequest(“request name”); − postman.setNextRequest(null); 65 postman.setNextRequest() function • Can be used in pre-request or test script − Last set value is considered • Always executed at the end of the current script. • Function scope is limited to the source of your collection run − If running from Collection level, you can set any request as the next request − If running from a folder level, you can only set a request in the same folder as the next request • If function is not present in any script in a request, the collection runner defaults to the next request in linear order 66 65 66
  • 33. 2019-01-10 33 Our example workflow • Restful booker API hosted on a server • Instructor will provide server URL • Collection is already defined and ready for import 68 Get Bookings /booking Create new booking /booking Update Booking /booking/{{id}} Get booking by ID /booking/{{id}} Delete booking /booking/{{id}} Get auth token /auth Building our example workflow (part 1) 69 Get Bookings Get list of bookings Create new booking Create new hotel booking for “Sally”. • Returns bookingID Get booking by ID Use the bookingID from step 2, to check That the new booking is in the system Step 1 Step 2 Step 3 68 69
  • 34. 2019-01-10 34 EX2.2 – Build Example Workflow (part 1) 1. Open the Restful Booker collection 2. Create an environment call Restful Booker and define a variable called “url”. Your instructor will provide the URL value. 3. In the same environment, define a variable called “bookingID”. Do not set a value 4. Open the Create new booking request inside the Restful Booker collection. 5. Go to the “Tests” tab and add the following lines at the end: var bookingID = jsonData.bookingid; console.log(bookingID); pm.environment.set("bookingID", bookingID); postman.setNextRequest("Get Booking by ID"); 70 EX2.2 – (cont’d) 6. Open the Postman Console 7. Select the Restful Booker environment 8. Run the Create New Booking request. Take note of the booking ID in the JSON response data and also in the Console log 9. Open the Restful Booker environment and check the current value of the booking ID. Does this match the value in step 4? 10. Run the Get Booking by ID request. You should get the same record returned as the one you just created. 71 70 71
  • 35. 2019-01-10 35 Building our example workflow (part 2) 72 Get auth token Get auth token and store in environment variable Update Booking Change the name of the booking from “Sally” to “James”. • Returns updated record Delete Booking Use the bookingID from step 2, to delete the booking Step 4 Step 5 Step 6 Requires auth token Requires auth token EX2.3 - Build Example Workflow (part 2) 1. Open the Get Booking by ID request and go to the “Tests” tab 2. Write a line to set the next request to Get Auth Token 3. Open the Restful Booker environment and define a new variable called “authToken”. Set a placeholder value in the Initial Value field 4. Open the Get Auth Token request and go to the “Tests” tab 5. Add the following lines: var jsonData = pm.response.json(); pm.environment.set("authToken", jsonData.token); 6. Add a line to set the next request to Update Booking 73 72 73
  • 36. 2019-01-10 36 EX2.3 – (cont’d) 7. In the Restful Booker environment, define a variable called “password” and set it’s current value to “password123”” 8. Run the Get Auth Token request. Check the token on the response and then check the value of the “authToken” environment variable. They should match 9. Open the Update Booking request and go to the “Headers” tab 10. Add the “Cookie” header with value of “token={{authToken}}” 11. Go to the “Tests” tab and set the next request to Delete Booking 12. Open the Delete Booking request and repeat Step 8 74 EX2.3 – (cont’d) 12. Run the Update Booking request. You should see that the booking name is now “James” 13. Confirm step 12 by running Get booking by ID again 14. Run the Delete Booking request 15. Run Get booking by ID again. This time you should get a response saying “Not Found” 75 74 75
  • 37. 2019-01-10 37 Our example workflow (correct order) • Now we are ready to run the collection 76 Get Bookings /booking Create new booking /booking Update Booking /booking/{{id}} Get booking by ID /booking/{{id}} Delete booking /booking/{{id}} Get auth token /auth EX2.4 – Run workflow 1. Open the Collection Runner 2. Select the Restful Booker collection 3. Select the Restful Booker environment 4. Click Run. What do you notice? Why do you think this is occurring? 5. Open the Delete Booking request from the collection and go to the “Tests” tab 6. Add the line postman.setNextRequest(null); 7. Run the Collection again. What do you observe this time? 77 76 77
  • 38. 2019-01-10 38 Send a Request in script • Use the pm.sendRequest() function • Useful for making additional API calls as part of your testing 78 Demo 79 Send request in script 78 79
  • 39. 2019-01-10 39 Workflow conditional logic 80 Search for product Add to shopping cart Checkout Call Payment gateway Send confirmation email /product?q= /cart/add /checkout /payment/card /order/confirm Product in stock? yes Add to wish list /wishlist no Implementing conditional logic • Use ‘if’ statement to check a condition and decide which request to execute next 81 80 81
  • 40. 2019-01-10 40 EX2.5 – Implement condition logic 82 Get auth token Update Booking Step 4 Step 5 Auth token returned yes Stop workflow no EX2.5 - (cont’d) 1. Open the Get Auth Token request and replace the “postman.setNextRequest” line with the following: if (jsonData.token === undefined) { postman.setNextRequest(null); } else { postman.setNextRequest("Update Booking (partial)”; } 2. Change the value of the password variable to anything and run the collection. 3. What do you observe? 83 82 83
  • 41. 2019-01-10 41 Postman Sandbox API • The JavaScript execution environment for pre-request and test scripts • Gives access to the request, response and variable objects • Functions from common utility libraries such as − cheerio − tv4 JSON schema validation • https://www.getpostman.com/docs/v6/postman/scripts/postman_sandbox • API reference at https://www.getpostman.com/docs/v6/postman/scripts/postman_sandbox_a pi_reference 84 Organizing collections • Suggestions for organizing requests into folders • Three level folder hierarchy • Group API resources in top level folder (users, orders, products etc…) • Second level folder contains test suites for those resources − Create new user − Submit order • Third level folder for complex tests which require a workflow through multiple requests 85 84 85
  • 42. 2019-01-10 42 Module Review Key Points: • Pre-request scripts are effective for manipulating data • The response of a request can be used as input in a subsequent request • Scripts at the collection level are executed first, followed by the folder level and then individual request 86 Module 3 – API Documentation 87 ©2018Postman 86 87
  • 43. 2019-01-10 43 Module Objectives After completing this module, you will be able to: • Create public and private documentation for your API • Outline the content that is automatically generated in documentation • Write documentation content using markdown 88 Creating Private Documentation 89 88 89
  • 44. 2019-01-10 44 Intro to API documentation • Postman can generate and host web based documentation for your API • Documentation is based on the requests defined in a collection • Markdown support for formatting • Private view for you and your team • Publish docs to make them visible to the public 90 Creating Documentation • Different ways to create documentation − New button − View the private documentation of an existing collection − Publishing public documentation of an existing collection − From the Postman app launch screen 91 90 91
  • 45. 2019-01-10 45 Create documentation from New Button • Choose the “Use Collection from this workspace” tab • Select the collection • Configure name and description and click “Create” 92 Viewing private documentation • Click the “Play” button of a collection • Click “View in web” • If there’s no existing documentation on the collection, it will be created • Visible only to author of collection unless the collection is shared in a team workspace 93 92 93
  • 46. 2019-01-10 46 Documentation content • Postman automatically generates the documentation content by using the contents of the folders and requests in your collection • Descriptions for the collection, folders and requests • For each request the docs will show: − Configured headers and parameters − Request body (if applicable) − Generated cope snippets in various programming languages 94 Example Documentation page 95 Collection name Collection descriptionFolders and requests Selected programming language 94 95
  • 47. 2019-01-10 47 Documented Requests 96 Folder description Folder name Request name Request description Code snippet Selecting an environment • Selecting an environment will assign the environment values to any variables in the documentation − Only the variable “Initial Value” is assigned • Can select from all local and shared environments 97 96 97
  • 48. 2019-01-10 48 EX3.1 – Generate private documentation 1. Click the “New” dropdown and select “Documentation” 2. Select the Restful Booker collection and create the documentation for it 3. Open the Restful Booker collection documentation 4. Browse through the requests in the docs 5. Select the Restful Booker environment and observe how variable values are substituted in the docs 98 Example requests and responses • It’s useful to show example responses in the documentation to assist developers in understanding what to expect • To include example responses, run the request and save the response • Can include as many examples as needed − Name them effectively to make it easy for users to understand what each example illustrates 99 98 99
  • 49. 2019-01-10 49 Viewing Example responses 100 EX3.2 – Save example responses 1. Open the Get Auth Token request in the Restful Booker collection 2. Change the “password” configured in the body to “wrongpw” and send the request. You should get a response saying “Bad Credentials” 3. Save the response and call it “Get Auth Token – Bad credentials” 4. Change the “password” on the request body to “password123” and send the request. This time you should receive an auth token in the response 5. Save the response and call it “Get Auth Token – Token returned” 6. Go to the web browser and refresh your documentation page 7. Scroll down to the “Get Auth Token” endpoint. You should be able to select from your two example responses 101 100 101
  • 50. 2019-01-10 50 Using Markdown 102 Where to use Markdown • Markdown can be used to format text in your Collection, request and folder descriptions • Descriptions for request headers and parameters can also be written in markdown • Markdown is rendered in your workspace and on private and public documentation pages 103 102 103
  • 51. 2019-01-10 51 Basic syntax Headers # Heading 1 ## Heading 2 Bullet points * Point 1 * Point 2 1. number 1 2. number 2 Formatting *emphasis* **strong emphasis** 104 Links [Link text](http://www.google.com) Images ![Text](/path/to/file.png) Full syntax guide • https://daringfireball.net/projects/markdown/basics • https://daringfireball.net/projects/markdown/syntax • Live preview for practicing writing in markdown https://markdownlivepreview.com/ 105 104 105
  • 53. 2019-01-10 53 Creating public documentation • Click the “Publish” button on the private documentation page • Click “Publish Docs” from collection drop down • Must be collection author or have write permissions to publish the docs • Changes made in the collection will be automatically reflected in the published docs 108 Publishing options • Select the appropriate environment so references to variables will be replaced with the value from the environment − Remember not to include any sensitive data in the environment values • Custom page styling options • Make your API discoverable through the API network (Postman Pro and Enterprise only) − https://www.getpostman.com/docs/v6/postman/launching_postman/newbutton# api-network • Share as a template 109 108 109
  • 54. 2019-01-10 54 Public documentation view 110 Run in Postman button • Allows anyone to import a collection and its associated environment with one click • Included on public documentation pages • Can generate your own “Run in Postman” embed code and embed it onto any web page • Great for developer onboarding • Examples: − https://developer.okta.com/reference/postman_collections/ − https://apidocs.imgur.com/ 111 110 111
  • 55. 2019-01-10 55 Embed the Run in Postman button • Use the “Share Collection” operation and look for the “Embed” tab to generate the code snippet 112 Demo Publishing options 113 112 113
  • 56. 2019-01-10 56 Using a Custom domain • By default published documentation is hosted on the documenter.getpostman.com domain • Postman Pro and Enterprise users have the ability to host documentation on their own custom domain • Add a custom domain to your Team Settings and then select it when publishing the docs − https://www.getpostman.com/docs/v6/postman/api_documentation/adding_and_verifying_c ustom_domains • Can also configure the team name and logo − https://www.getpostman.com/docs/v6/postman/api_documentation/adding_team_name_an d_logo 114 EX3.3 – Publish documentation 1. On your web browser, go to the private documentation view you created in Exercise 3.1 2. Click Publish 3. Select the Restful Booker environment and then publish the documentation 4. Go back to the Postman App and open the Restful Booker docs in the private view (use the “View in Web” option) 5. Click on the “Published” button on the top right 6. Select “Unpublish” to remove your documentation from public view 115 114 115
  • 57. 2019-01-10 57 Module Review Key Points: • Private documentation is created based on a collection and it’s configured folders and requests • Publishing as collection’s private documentation makes it available for public viewing • Markdown is helpful for formatting our descriptions 116 Module 4 – Mock Servers 117 ©2018Postman 116 117
  • 58. 2019-01-10 58 Module Objectives After completing this module, you will be able to: • Create a mock server for a new API • Define example responses for mock requests • Describe how Postman selects which response to use for a given mock request 118 Intro to Mock servers 119 118 119
  • 59. 2019-01-10 59 What is a mock • A mock is a fake API that simulates a server response • Postman mocks are associated with an underlying collection 120 Front end devs API devs Mock server Actual API API Lifecycle 121 120 121
  • 60. 2019-01-10 60 Public vs Private mocks • Public mock − Mock server is accessible by anyone − No need for Postman API key − Mock servers are by default, publicly available • Private mock − Only accessible to users who have access to the underlying Collection − Users must use their Postman API key when sending requests to the mock endpoints 122 Create a mock server 123 122 123
  • 61. 2019-01-10 61 Create a mock • Two ways to create a Mock − Create a new API − Create from an existing Collection 124 Create a mock (cont’d) • Create from API − Define the endpoints you want to mock − Specify the HTTP method and response code for each endpoint − Define an example response for each endpoint • Postman will create a new mock server and collection for your API • An environment will be created with a “url” variable, which contains the URL to the mock server • Open the Collection and go to the “Mocks” tab to see the mock server 125 124 125
  • 62. 2019-01-10 62 EX4.1 – Create a mock server 1. Click the “New” dropdown in the header and select “Mock Server” 2. Select the “Create a new API” tab 3. Fill in the details as indicated on the screenshot below and click “Next” 126 EX4.1 – (cont’d) 4. On the “Name” field, type “Shopping Cart API” 5. Do not select an environment and leave the “Make this mock server private” checkout blank 6. Click “Create” 7. You should now see the mock server URL 8. Find the Shopping Cart API on your Collection’s list and expand it 9. Click the “Mocks” tab to see your mock server listed 10. Find and select the “Shopping Cart API” on the environment drop down list 11. Click on the “Environment quick look” button and confirm that you can see the mock URL 12. Open your browser and sends a request to <mock url>/orders. What do you see in the response? 127 126 127
  • 63. 2019-01-10 63 Mock with Examples 128 Mock responses • Mock responses are dependant on your saved examples • Examples are matched against the request URL and method type • Multiple examples can be saved against each request in a Collection • Example can have a unique endpoint 129 Request /orders Request /products Example response 1 - /orders Example response 2 - /search Example response 1 - /products 128 129
  • 64. 2019-01-10 64 EX4.2 – Create examples 1. Open the Orders request in the in the Shopping Cart API 2. Click the “Examples” dropdown and select “Add Example” 3. Configure the name and example request as shown: 130 EX4.2 – (cont’d) 4. In the example response body, type “This is the list of orders based on our search” 5. Click “Save Example” on the top right corner 6. Use Postman to send a request to the mock server on the “/search” endpoint 7. What can you observe in your response? 8. Change the request to /orders and observe the response 131 130 131
  • 65. 2019-01-10 65 Using query parameters • Different example responses can be returned based on matching query parameters • Allows mocking of different responses for different query parameters on the same request path 132 Request /products Example response 1 - GET /products Example response 2 – GET /products?q=alienware Example response 3 – GET /products?q=apple Query: GET /products?q=alienware ? Matching algorithm • When multiple examples are configured for a request, how does the mock service know which one to return? • When a mock call is made, the mock service retrieves all saved examples for that collection, from the Postman servers and begins the matching process. 133 132 133
  • 66. 2019-01-10 66 Matching algorithm (cont’d) • The incoming request is paired with the closest matching example • The request method, mock path and various request headers are checked • The matching algorithm will remove example responses from the list of options it can return, based on the following logic 1. Properly formatted responses − Responses not in the expected format are removed 134 Matching algorithm – (cont’d) 2. HTTP method − Responses that don’t correspond to the request HTTP method are removed 3. URL filter − Iterate over the remaining examples to compare the mock path of the request to the example and set a threshold value − Step by step matching in the following order 1. Exact match 2. Strip out trailing slashes 3. Lower case the example path and the request mock path 4. Strip out alphanumeric ID’s from both input and example path 5. If all the steps have failed, the example is not eligible 135 134 135
  • 67. 2019-01-10 67 Matching algorithm – (cont’d) 4. Response code − Check if the request has the x-mock-response-code header and filter out the examples with a non matching response code 5. Highest threshold value − Remaining response are sorted in descending order and the one with the highest threshold value is returned. 136 Module Review Key Points: • Mock servers help speed up overall application development • Mock server calls are dependent on configured example responses • Postman supports multiple responses per mock endpoint 137 136 137
  • 68. 2019-01-10 68 Module 5 – Monitors 138 ©2018Postman Module Objectives After completing this module, you will be able to: • Describe the process of monitoring a collection • Setup and configure a monitor for a collection • Troubleshoot failed collection runs • Describe some monitoring best practices 139 138 139
  • 69. 2019-01-10 69 Intro to Monitors 140 What is monitoring • A monitor is a scheduled run of a Collection • A monitor allows you to run a collection periodically to check for performance • Checks are done to ensure all requests in a collection are healthy • Tests in each request are also run • Monitor’s can be configured to send notification alerts when there are test failures 141 140 141
  • 70. 2019-01-10 70 API lifecycle 142 Collection Runner vs Monitor • Differences exists between running collections with the collection runner and with a monitor • Variables − No import of global variables − No variable persistence • Console output − Request and response bodies and sensitive headers are not logged by default • Monitors only run 1 iteration and the max run time is 5 minutes • Data files − Cannot upload a data file but can use data files from API’s such as Google sheets or Dropbox • All API’s endpoints must be publicly available 143 142 143
  • 71. 2019-01-10 71 Pricing • Postman monitors are billed per-request made • Free Postman users are allowed 1000 free monitoring calls per month • Postman Pro teams allowed 10,000 free monitoring calls per month • Postman Enterprise teams allowed 100,000 free monitoring calls per month 144 Setup a Monitor 145 144 145
  • 72. 2019-01-10 72 Create a monitor • Can create a monitor from an existing Collection or create a new API in the process • Select environment to use when running the collection • Define the frequency − Lowest interval is 5 minutes • Select region where the monitor will run 146 Create a monitor – (cont’d) • Monitors created on a shared collection will be visible to the team • Monitors created on a private collection will only be visible to you • Cannot share monitor’s across workspaces 147 146 147
  • 73. 2019-01-10 73 Additional preferences 148 Multi region monitoring • When select the region for your monitor, you can choose multiple regions • The region defines where the monitoring calls to the API are made from • The monitor will run the collection once for each region specified • Results in more monitoring calls • Failures will be duplicated 149 148 149
  • 74. 2019-01-10 74 EX5.1 – Create a monitor 1. Open the Restful Booker environment and set the initial value of the password variable to “password123” 2. Click the “New” dropdown and select “Monitor” 3. Select the “Use Collection from this Workspace” option and choose the Restful Booker collection 4. Name the monitor “Restful Booker monitor” 5. Select the Restful Booker environment 6. Set the monitor frequency to be once per day 7. Select any region of your choice 8. Add yourself to receive email notifications on run failures and errors 9. Click Create 150 Viewing monitor results 151 150 151
  • 75. 2019-01-10 75 Monitors page • Monitor results are viewed through the web portal of your Postman account • Monitors page displays the list of monitors you have access to (individual and team) 152 Monitor details page • Shows all past runs of the monitor • Red columns indicate failed runs, green indicates successful runs • Click on the column to show the full run details 153 152 153
  • 76. 2019-01-10 76 Viewing your monitor results • Monitor results are shown in the web portal of your Postman account • Can have multiple monitors in a collection • Expand the collection view in the Postman App and go to the Monitors tab to find the list of monitors for that collection 154 Monitor email summary • Receive a daily or weekly email summary of your monitors • Configured in your account Notification preferences 155 154 155
  • 77. 2019-01-10 77 Demo Viewing Monitor results 156 EX5.2 – View monitor results 1. On the Postman App, click on the Restful Booker collection and click on the Monitors tab 2. Click the monitor listed to open up the monitor details page 3. Click the “Run” button to run the collection and then refresh the page 4. Open up the details of the latest run and alternate between the “Test Results” tab and the “Console Log” tab 157 156 157
  • 78. 2019-01-10 78 Monitoring tips and tricks 158 Monitoring API’s and websites • Monitoring individual endpoints − Use different variants of the same endpoint in different requests − Allows testing of a broad range of responses to cover the entire endpoint • Monitoring websites − Check for correct response codes within your test scripts • Monitoring for latency − Check for response time in your test script − Ensures consistent API / website performance 159 158 159
  • 79. 2019-01-10 79 Troubleshooting monitors • Use console logging to inspect where a run might be failing • Request and response body are not automatically logged in the Postman monitor console • If a monitor run fails, run the collection locally to determine if it works correctly • If local run passes, ensure that “sync” in enabled. This will ensure any local changes are persisted 160 Troubleshooting monitors – (cont’d) • Use the same environment for local collection runs and monitor runs • Change any global variables to environment variables. Global variables are not supported in monitor runs 161 160 161
  • 80. 2019-01-10 80 Module Review Key Points: • Monitors run a collection in the cloud on a scheduled basis to test our API’s • Some differences exist when running a collection on the collection runner compared to running in a monitor • Email notifications can be sent out in the result of a failed collection run 162 Module 6 – Postman API 163 ©2018Postman 162 163
  • 81. 2019-01-10 81 Module Objectives After completing this module, you will be able to: • Add the Postman API integration to your account • Send requests to the Postman API endpoints 164 Using the Postman API 165 164 165
  • 82. 2019-01-10 82 Postman API overview • The Postman API contains endpoints that allow you to integrate Postman into your development infrastructure • Provides programmatic access to data stored in your Postman account − Add an update collections, environments, users − Run monitors − Create mocks − More … • Access to the API is rate limited to 60 requests per minute 166 Postman API Key • The Postman API Key is needed to authenticate requests against the Postman API • API Key is generated in Postman account by adding the Postman API integration • Key can be specified using the x-api-key header or the apikey query string parameter (ie. https://api.getpostman.com/collections?apikey=96d02f.... ) 167 166 167
  • 83. 2019-01-10 83 Adding Postman API Integration • Go to “Integrations” tab on your Postman account via the web portal • Add the integration to be able to generate your API key 168 EX6.1 – Send Postman API Request 1. Login to your Postman account on the web browser. 2. Go to your Workspace and click the Integrations tab. 3. Add the Postman API Integration. This should also generate an API key. 4. Switch the Postman desktop app and create a new Request with the request URL https://api.getpostman.com/collections 5. Add the “x-api-key” Header and enter your API key as the value. 6. Send the Request and observe the response. 169 168 169
  • 84. 2019-01-10 84 Example Postman API endpoints • Environment (Get all environments) − https://api.getpostman.com/environments • Environment (Get individual environment) − https://api.getpostman.com/environments/{{environment_uid}} • Environment (Delete) − https://api.getpostman.com/environments/{{environment_uid}} − Request method set to DELETE • Run a monitor − https://api.getpostman.com/monitors/{{monitor_uid}}/run • Full API reference at https://docs.api.getpostman.com/ 170 Module Review Key Points: • Postman API gives you programmatic access to the core Postman functions • Requests to the Postman API are secured by an API key 171 170 171
  • 85. 2019-01-10 85 Module 7 – Continuous Integration with Postman 172 ©2018Postman Module Objective After completing this module, you will be able to: • Describe how Postman can fit into your CI/CD pipeline • Use Newman to run a collection by calling the Postman API 173 172 173
  • 86. 2019-01-10 86 CI/CD Overview 174 Intro to Continuous Integration • A process of ensuring there is a constant working copy of your system that is fully integrated − Integration problems always exist in projects where components are developed independently and integrated at the end − With Continuous Integration, integration is frequent • Bugs are found and resolved faster • Greater visibility in a project • Requires developers to regularly commit code into a shared repository, which then triggers a process of building and testing the code 175 174 175
  • 87. 2019-01-10 87 CI/CD overview 176 Postman in CI/CD process • API Developers commit code to repo, which triggers a build on the CI/CD server • Build runs the unit and integration tests if applicable and if successful, the API is deployed into an environment (i.e QA, staging etc…) • CI/CD server then runs the API’s Postman collection to test the API endpoints • If tests are successful, we can consider automating the next deployment (i.e. Deploy to production) 177 176 177
  • 88. 2019-01-10 88 Postman in CI/CD process 178 CI/CD server Run unit tests Run integration test Package Deploy to Staging Staging server API Run Postman collection Environment: staging Deploy to Production API Production server Newman Demo Run Newman in Jenkins 179 178 179
  • 89. 2019-01-10 89 Using the Postman API for CI/CD 180 Run Collection using API • Running a Collection against a JSON file is not ideal due to the export process • If the collection is updated, we have to export the file again • Same applies for equivalent environments • Better option is to use the Postman API to get the collection we want to run • This ensures we are always running the latest copy of the collection • Newman allows us to run a collection by making a Postman API call 181 180 181
  • 90. 2019-01-10 90 Newman and Postman API Run a collection by calling the Postman API newman run https://api.getpostman.com/collections/{{collection_uid}}?apikey={{postman-api-key- here}} Run a collection using the Postman API with specified environment newman run https://api.getpostman.com/collections/{{collection_uid}}?apikey={{postman-api-key- here}} --environment https://api.getpostman.com/environments/{{environment_uid}}?apikey={{postman-api- key-here}} 182 Newman reporters • Newman reporters allow the results of a collection run to be outputted into a specific format • Built in options: − CLI (default option) − JSON file − JUnit XML file • Can install additional external reporters or write your own reporter • See https://github.com/postmanlabs/newman#configuring-reporters 183 Run a collection by calling the Postman API and ouput to JUnit newman run https://api.getpostman.com/collections/{{collection_uid}}?apikey={{postman-api-key- here}} --reporters junit 182 183
  • 91. 2019-01-10 91 Getting the Collection UID • Open the Collection in your Postman account on the browser • The Collection UID is listed on the URL at “/collections/{uid}” 184 Getting the Environment UID • Open the Environment in your Postman account on the browser • The Environment UID is listed on the URL at “/environments/{uid}” 185 184 185
  • 92. 2019-01-10 92 EX7.1 – Get collection and environment UID 1. Open the Postman Dashboard on your web browser 2. Navigate into the Workspace you’ve been using for this course 3. Click on the “Restful Booker” collection 4. Look at the URL of the collection and copy the UID portion of it into a text file 5. Go back to the previous page and then click on the “Environments” tab 6. Click on the “Restful Booker private” environment 7. Look at the URL of the environment and copy the UID portion of it into a text file 186 EX7.2 – Run collection with Newman 1. Open your terminal and use Newman to run the “Restful Booker” collection by specifying an API call to the collection and the environment Hint: Use the UID’s from the previous exercise. Also, do not forget to input your API key 187 186 187
  • 93. 2019-01-10 93 Module Review Key Points: • A Postman collection can be run in CI/CD pipeline after an API has been built and deployed • The Collection run serves to test the API endpoints • It is more effective to run a collection by calling the Postman API collection endpoint as opposed to exporting the collection to a JSON file 188 Further references • Documentation - https://learning.getpostman.com • Blog - http://blog.getpostman.com • Postman API docs - https://docs.api.getpostman.com/ • Restful Booker sample API - https://restful-booker.herokuapp.com/apidoc/index.html 189 188 189
  • 94. 2019-01-10 94 You have reached the end of the Postman Expert course! 190