Data Generation API¶
Random data generator for testing using the Faker library.
Data Class¶
Static class providing fake data generation methods for testing purposes.
Personal Information¶
generate_name¶
Generates a random full name.
Example:
generate_email¶
Generates a random email address.
Example:
generate_phone¶
Generates a random phone number.
Example:
Authentication Data¶
generate_auth_user¶
Generates a complete user authentication object with username and password.
Returns:
Example:
user = Data.generate_auth_user()
print(user["username"]) # "john_smith_123"
print(user["password"]) # "SecureP@ssw0rd123"
generate_password¶
Generates a secure random password.
Example:
Identification¶
generate_id¶
Generates a unique UUID.
Example:
Address Information¶
generate_address¶
Generates a complete postal address.
Example:
generate_city¶
Generates a random city name.
generate_state¶
Generates a random state/province name.
generate_zipcode¶
Generates a random postal code.
generate_country¶
Generates a random country name.
Text Content¶
generate_text¶
Generates random text (short paragraph).
Example:
generate_paragraph¶
Generates a longer random paragraph.
Professional Information¶
generate_job¶
Generates a random job title.
Example:
Date and Time¶
generate_date¶
Generates a random date in ISO format (YYYY-MM-DD).
generate_datetime¶
Generates random date and time in ISO format.
generate_time¶
Generates a random time.
URL and Network¶
generate_url¶
Generates a random URL.
Example:
generate_domain¶
Generates a random domain name.
Example:
generate_ipv4¶
Generates a random IPv4 address.
Example:
Company Information¶
generate_company¶
Generates a random company name.
generate_company_email¶
Generates a random company email address.
Example:
Product Information¶
generate_product_name¶
Generates a random product name.
generate_price¶
Generates a random price.
Parameters:
- min_price (float): Minimum price value. Default is 1.0.
- max_price (float): Maximum price value. Default is 1000.0.
Example:
price = Data.generate_price()
print(price) # "99.99"
price = Data.generate_price(min_price=10.0, max_price=500.0)
print(price) # "249.50"
Bulk Generation¶
generate_users¶
Generates a list of users.
Parameters:
- count (int): Number of users to generate. Default is 1.
- fields (list[str] | None): Fields to include. Available: 'id', 'name', 'username', 'password', 'email', 'age', 'address', 'phone', 'city', 'state', 'country', 'company'. If None, generates all fields.
Example:
users = Data.generate_users(5)
print(users) # [{'id': '...', 'name': '...', ...}, ...]
users = Data.generate_users(3, fields=['name', 'email'])
print(users) # [{'name': '...', 'email': '...'}, ...]
generate_companies¶
Generates a list of companies.
Parameters:
- count (int): Number of companies to generate. Default is 1.
Example:
companies = Data.generate_companies(3)
print(companies) # [{'name': '...', 'email': '...', ...}, ...]
generate_products¶
Generates a list of products.
Parameters:
- count (int): Number of products to generate. Default is 1.
- include_price (bool): Include random price. Default is True.
Example:
products = Data.generate_products(5)
print(products) # [{'name': '...', 'price': '...'}, ...]
products = Data.generate_products(3, include_price=False)
print(products) # [{'name': '...'}, ...]
Locale Management¶
set_locale¶
Sets the locale for data generation.
Parameters:
- locale (str): Locale code (e.g., 'es_ES', 'en_US', 'fr_FR', 'de_DE').
Example:
Data.set_locale("es_ES")
print(Data.generate_name()) # "Carlos GarcĂa"
Data.set_locale("en_US")
print(Data.generate_name()) # "John Smith"
reset_locale¶
Resets Faker to default locale (en_US).
Example:
Complete Example¶
from rapidtest import HTTPTest, Data
# Initialize API tester
api = HTTPTest(url="http://localhost:8000")
# Generate fake user data
fake_user = {
"id": Data.generate_id(),
"username": Data.generate_name().replace(" ", "_").lower(),
"email": Data.generate_email(),
"password": Data.generate_password(),
"phone": Data.generate_phone(),
"address": Data.generate_address(),
"job": Data.generate_job()
}
# Use fake data in API test
response = api.post(
path="/users",
json=fake_user,
status=201
)
# Generate auth user for login tests
auth_user = Data.generate_auth_user()
api.post(
path="/login",
json=auth_user,
status=200
)
# Generate multiple users for testing
users = Data.generate_users(10, fields=['name', 'email'])
for user in users:
api.post(path="/users", json=user, status=201)
Benefits¶
- Realistic Data: Uses the Faker library for realistic fake data
- No Hardcoding: Avoid hardcoded test values that may become stale
- Variety: Each test run uses different data, improving test coverage
- Convenience: Simple static methods for quick data generation
- Locale Support: Generate data in different languages and regions