Bird
Raised Fist0
Postmantesting~15 mins

Basic authentication in Postman - Build an Automation Script

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Verify API access with Basic Authentication
Preconditions (3)
Step 1: Open Postman and create a new GET request
Step 2: Enter the URL https://api.example.com/data in the request URL field
Step 3: Go to the Authorization tab
Step 4: Select 'Basic Auth' from the Type dropdown
Step 5: Enter username 'user1' and password 'pass123'
Step 6: Click Send to submit the request
✅ Expected Result: The API responds with status code 200 and returns the expected data in JSON format
Automation Requirements - Postman test scripts
Assertions Needed:
Verify response status code is 200
Verify response body contains expected data fields
Best Practices:
Use environment variables for username and password
Use pm.response.to.have.status for status code assertion
Use pm.expect with JSON parsing for response body validation
Automated Solution
Postman
pm.test('Status code is 200', () => {
    pm.response.to.have.status(200);
});

pm.test('Response has expected data', () => {
    const jsonData = pm.response.json();
    pm.expect(jsonData).to.have.property('data');
    pm.expect(jsonData.data).to.be.an('array');
});

The first test checks that the API response status code is 200, which means the request was successful.

The second test parses the response body as JSON and verifies it contains a property named 'data' which should be an array. This confirms the API returned the expected data structure.

Using pm.response.to.have.status and pm.expect are Postman's recommended ways to write assertions in test scripts.

Environment variables for username and password help keep credentials secure and reusable.

Common Mistakes - 3 Pitfalls
Hardcoding username and password directly in the request
Not verifying the response status code
Assuming response body is always JSON without parsing
Bonus Challenge

Now add data-driven testing with 3 different username and password combinations

Show Hint

Practice

(1/5)
1. What does Basic Authentication in Postman primarily require to access a protected API?
easy
A. A username and password
B. An API key only
C. A token generated by OAuth
D. No credentials, just the URL

Solution

  1. Step 1: Understand Basic Authentication

    Basic Authentication requires a username and password to verify identity.
  2. Step 2: Identify Postman's method

    Postman uses these credentials to add an Authorization header automatically.
  3. Final Answer:

    A username and password -> Option A
  4. Quick Check:

    Basic Auth = username + password [OK]
Hint: Basic Auth always needs username and password [OK]
Common Mistakes:
  • Confusing Basic Auth with API key or OAuth tokens
  • Thinking no credentials are needed
  • Using only username or only password
2. Which is the correct way to set Basic Authentication in Postman?
easy
A. Select 'Basic Auth' in the Authorization tab and enter credentials
B. Use the Body tab to send username and password
C. Put credentials in the URL query parameters
D. Add username and password in the Headers tab manually

Solution

  1. Step 1: Locate Authorization tab in Postman

    Postman provides an Authorization tab to set authentication types easily.
  2. Step 2: Choose Basic Auth and enter credentials

    Selecting Basic Auth lets you enter username and password which Postman encodes automatically.
  3. Final Answer:

    Select 'Basic Auth' in the Authorization tab and enter credentials -> Option A
  4. Quick Check:

    Use Authorization tab for Basic Auth [OK]
Hint: Use Authorization tab, not Headers or Body [OK]
Common Mistakes:
  • Manually adding Authorization header incorrectly
  • Putting credentials in URL which is insecure
  • Sending credentials in request body for Basic Auth
3. What will Postman send in the Authorization header when you enter username 'user1' and password 'pass123' for Basic Auth?
medium
A. Authorization: Basic user1:pass123
B. Authorization: Bearer user1:pass123
C. Authorization: Basic dXNlcjE6cGFzczEyMw==
D. Authorization: Token dXNlcjE6cGFzczEyMw==

Solution

  1. Step 1: Understand Basic Auth header format

    Basic Auth sends 'Authorization: Basic ' plus base64 encoding of 'username:password'.
  2. Step 2: Encode 'user1:pass123' in base64

    Encoding 'user1:pass123' results in 'dXNlcjE6cGFzczEyMw=='.
  3. Final Answer:

    Authorization: Basic dXNlcjE6cGFzczEyMw== -> Option C
  4. Quick Check:

    Basic Auth header = 'Basic ' + base64(username:password) [OK]
Hint: Basic Auth header is 'Basic ' + base64(username:password) [OK]
Common Mistakes:
  • Using 'Bearer' instead of 'Basic'
  • Sending plain username:password without encoding
  • Confusing token or API key formats
4. You set Basic Auth in Postman but get a 401 Unauthorized error. What is the most likely cause?
medium
A. Using HTTPS instead of HTTP
B. Incorrect username or password entered
C. Headers tab is empty
D. Request body is missing

Solution

  1. Step 1: Understand 401 Unauthorized meaning

    401 means the server rejected the credentials provided.
  2. Step 2: Check credentials correctness

    Most common cause is wrong username or password causing authentication failure.
  3. Final Answer:

    Incorrect username or password entered -> Option B
  4. Quick Check:

    401 error = bad credentials [OK]
Hint: 401 usually means wrong username or password [OK]
Common Mistakes:
  • Thinking HTTPS causes 401 error
  • Assuming missing body causes authentication failure
  • Ignoring credential typos
5. You want to test an API with Basic Auth but keep your password secure. Which Postman feature helps you avoid exposing your password in the request headers?
hard
A. Write the password directly in the URL
B. Disable SSL verification
C. Send credentials in the request body as plain text
D. Use environment variables to store credentials and reference them

Solution

  1. Step 1: Identify secure ways to handle credentials

    Storing credentials in environment variables keeps them hidden and reusable.
  2. Step 2: Use variables in Authorization tab

    Referencing variables in Basic Auth fields avoids hardcoding sensitive info in requests.
  3. Final Answer:

    Use environment variables to store credentials and reference them -> Option D
  4. Quick Check:

    Environment variables protect sensitive data [OK]
Hint: Use environment variables for credentials security [OK]
Common Mistakes:
  • Putting password in URL exposes it
  • Sending password in body is insecure for Basic Auth
  • Disabling SSL reduces security, not protects password