28. Data-Driven Testing with @pytest.mark.parametrize

Parameterized Testing in pytest

import pytest

@pytest.mark.parametrize("username,password,expected_error", [
("invalid_user", "Secret123", "User not found"),
("admin@targetqa.com", "wrong_pass", "Invalid password"),
("", "Secret123", "Username required"),
])
def test_login_validation_errors(page, username, password, expected_error):
page.goto("https://targetqa.com/login")
page.get_by_label("Username").fill(username)
page.get_by_label("Password").fill(password)
page.get_by_role("button", name="Log In").click()
expect(page.locator(".error-banner")).to_contain_text(expected_error)

Task

  • Implement generate_random_user_payload():
  • 1. Return {"email": f"user_{int(time.time())}@targetqa.com", "role": "USER"}
πŸ’‘Common doubts
Did you like the problem?
Lesson 28 of 37
Python
Loading code editor…
Next