Using fake_useragent to Generate Random User-Agent Strings for API Automation Testing
This guide explains why random User-Agent headers improve API automation testing, introduces the Python fake_useragent library, shows how to install it, and provides comprehensive example code for generating, validating, and persisting random User-Agent strings.
When performing API automation testing, setting request headers such as User-Agent is required; using a fixed value can reveal patterned traffic to the server, triggering security mechanisms or skewing data collection. Randomizing the User-Agent mitigates these issues.
The fake_useragent library for Python can effortlessly generate random User-Agent strings, helping bypass anti‑scraping defenses and increasing the realism of automated requests.
Installation
Run the following command in your terminal or command line:
pip install fake-useragentExample Code
from fake_useragent import UserAgent
import requests
# Create a UserAgent object
ua = UserAgent()
# Generate a random User-Agent
random_ua = ua.random
print(f"Random User-Agent: {random_ua}")
# Get specific browser User-Agents
chrome_ua = ua.chrome
print(f"Chrome User-Agent: {chrome_ua}")
firefox_ua = ua.firefox
print(f"Firefox User-Agent: {firefox_ua}")
safari_ua = ua.safari
print(f"Safari User-Agent: {safari_ua}")
edge_ua = ua.edge
print(f"Edge User-Agent: {edge_ua}")
opera_ua = ua.opera
print(f"Opera User-Agent: {opera_ua}")
# Use the random User-Agent to send an HTTP request
headers = {'User-Agent': random_ua}
response = requests.get('https://httpbin.org/headers', headers=headers)
print(response.json()['headers']['User-Agent'])
# Advanced operations: list all available User-Agents
all_uas = list(ua.data.keys())
print("All available User-Agents:")
for ua_str in all_uas:
print(ua_str)
# Validate a User-Agent
def is_valid_useragent(user_agent):
try:
resp = requests.get('https://httpbin.org/headers', headers={'User-Agent': user_agent})
return resp.status_code == 200
except Exception:
return False
valid = is_valid_useragent(random_ua)
print(f"Is the generated User-Agent valid? {'Yes' if valid else 'No'}")
# Save generated User-Agents to a file
with open('my_useragents.txt', 'w') as f:
for _ in range(10):
f.write(ua.random + '\n')
# Load saved User-Agents
with open('my_useragents.txt', 'r') as f:
saved_uas = [line.strip() for line in f.readlines()]
print("Saved User-Agents:")
print(saved_uas)Summary
By using the fake_useragent library, you can easily generate random User-Agent strings in automation tests, improving test stability and realism. Each execution yields a new value, ready to be integrated into your test scripts.
Note
While randomizing User-Agent helps avoid detection, excessive or improper use may violate website terms of service; always respect robots.txt and applicable laws when scraping.
This tutorial is intended for Python environments such as Jupyter Notebook, Google Colab, or local development setups; ensure both fake_useragent and requests are installed before running the code.
Test Development Learning Exchange
Test Development Learning Exchange
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.