Generátor náhodných uživatelských agentů pro testování webového vývoje
Generujte realistické řetězce uživatelských agentů pro prohlížeče s možnostmi filtrování podle typu zařízení, rodiny prohlížeče a operačního systému. Ideální pro testování webového vývoje a kontrolu kompatibility.
Generátor náhodných uživatelských agentů
Generujte náhodné, realistické řetězce uživatelského agenta pro testování webového vývoje.
Vygenerovaný uživatelský agent
Dokumentace
Generátor náhodných uživatelských agentů
Úvod
Řetězec uživatelského agenta je specifický textový identifikátor, který webové prohlížeče a další aplikace posílají webovým stránkám, aby se identifikovaly. Tento řetězec obvykle obsahuje informace o prohlížeči, operačním systému, typu zařízení a vykreslovacím enginu, který se používá. Pro webové vývojáře a testery je přístup k různým realistickým řetězcům uživatelského agenta nezbytný pro testování kompatibility webových stránek, responzivnosti a funkčnosti napříč různými platformami.
Tento nástroj Generátor náhodných uživatelských agentů vytváří autentické řetězce uživatelského agenta na základě vašich vybraných parametrů. Můžete filtrovat podle typu zařízení (desktop nebo mobilní), rodiny prohlížeče (Chrome, Firefox, Safari nebo Edge) a operačního systému, abyste vygenerovali uživatelské agenty, které odpovídají vašim testovacím požadavkům. Nástroj poskytuje jednoduché rozhraní s možnostmi zkopírovat vygenerovaný řetězec jedním kliknutím a okamžitě generovat nové náhodné řetězce.
Struktura uživatelského agenta
Řetězce uživatelského agenta následují specifické vzory v závislosti na prohlížeči a platformě, ale obecně obsahují několik společných komponentů:
- Identifikátor prohlížeče: Obvykle začíná "Mozilla/5.0" z historických důvodů kompatibility
- Informace o platformě/OS: Podrobnosti o operačním systému (Windows, macOS, Android, iOS)
- Prohlížečský engine: Vykreslovací engine (jako Gecko, WebKit nebo Blink)
- Podrobnosti o prohlížeči: Specifický název prohlížeče a verze
Zde je rozpis typických struktur uživatelského agenta pro hlavní prohlížeče:
Chrome
1Mozilla/5.0 (platforma; podrobnosti) AppleWebKit/537.36 (KHTML, jako Gecko) Chrome/verze Safari/537.36
2
Firefox
1Mozilla/5.0 (platforma; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
2
Safari
1Mozilla/5.0 (platforma) AppleWebKit/webkitversion (KHTML, jako Gecko) Verze/safariversion Safari/safariversion
2
Edge
1Mozilla/5.0 (platforma) AppleWebKit/537.36 (KHTML, jako Gecko) Chrome/chromiumversion Safari/537.36 Edg/edgeversion
2
Sekce platformy se výrazně liší mezi desktopovými a mobilními zařízeními:
Příklady desktopů:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Příklady mobilních zařízení:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 jako Mac OS X
Rozdíly v typech zařízení
Desktopové uživatelské agenty
Desktopové uživatelské agenty obvykle zahrnují specifické informace o operačním systému, architektonické detaily (jako x86_64 nebo Win64) a někdy jazykové preference. Obecně jsou konzistentnější napříč prohlížeči než mobilní uživatelské agenty.
Mobilní uživatelské agenty
Mobilní uživatelské agenty obsahují informace o modelu zařízení, verzích mobilního operačního systému a často zahrnují slovo "Mobilní" na konci. Mobilní Safari na zařízeních iOS bude obsahovat identifikátory "iPhone" nebo "iPad", zatímco Android zařízení zahrnují výrobce a číslo modelu.
Vzory verzí prohlížeče
Každý prohlížeč následuje různé vzory verzování:
- Chrome: Používá čtyřdílná čísla verzí (např. 96.0.4664.110)
- Firefox: Obvykle používá dvoudílná nebo třídílná čísla verzí (např. 95.0 nebo 95.0.2)
- Safari: Používá jednoduchá čísla verzí jako 15.2
- Edge: Používá čísla verzí podobná Chrome, ale se svou vlastní verzí Edge (např. 96.0.1054.62)
Případy použití
Generování náhodných uživatelských agentů má několik důležitých aplikací ve webovém vývoji a testování:
-
Testování kompatibility napříč prohlížeči: Testujte, jak se vaše webové stránky vykreslují a fungují napříč různými prohlížeči, aniž byste museli instalovat více prohlížečů nebo používat více zařízení.
-
Testování responzivního designu: Ověřte, že vaše webové stránky správně detekují mobilní a desktopová zařízení a poskytují odpovídající rozložení.
-
Ověření detekce funkcí: Zajistěte, že mechanismy detekce funkcí vaší webové stránky fungují správně pro různé schopnosti prohlížečů.
-
QA a automatizované testování: Zahrňte různé uživatelské agenty do svých automatizovaných testovacích skriptů pro simulaci různých uživatelských prostředí.
-
Testování výkonu: Analyzujte, jak vaše webové stránky fungují, když jsou přístupné z různých prohlížečových prostředí.
-
Odstraňování chyb specifických pro prohlížeč: Reprodukujte a opravte chyby, které se vyskytují pouze v konkrétních prohlížečích nebo verzích.
-
Testování API: Testujte, jak vaše API zpracovává požadavky z různých klientských aplikací.
Alternativy
I když je náš generátor náhodných uživatelských agentů užitečný pro mnoho testovacích scénářů, existují alternativní přístupy:
-
Služby testování prohlížečů: Platformy jako BrowserStack, Sauce Labs nebo LambdaTest poskytují skutečné instance prohlížečů pro testování namísto pouhého simulování uživatelského agenta.
-
Nástroje pro vývojáře prohlížeče: Většina moderních prohlížečů vám umožňuje přepsat uživatelský agent prostřednictvím svých nástrojů pro vývojáře, což může být užitečné pro rychlé testy.
-
Rozšíření pro přepínač uživatelského agenta: Rozšíření pro prohlížeče, která vám umožňují přepínat mezi předdefinovanými uživatelskými agenty během prohlížení.
-
Virtuální stroje nebo kontejnery: Spuštění skutečných instancí různých operačních systémů a prohlížečů pro nejpřesnější testování.
-
Testování bezhlavého prohlížeče: Použití nástrojů jako Puppeteer nebo Selenium pro programové ovládání prohlížečů s různými nastaveními uživatelského agenta.
Každá alternativa má své vlastní výhody a může být vhodnější v závislosti na vašich konkrétních testovacích potřebách a zdrojích.
Historie
Koncept řetězce uživatelského agenta sahá až do raných dnů World Wide Webu. Termín "uživatelský agent" pochází ze specifikace HTTP, kde se odkazuje na klientskou aplikaci, která provádí požadavek na webový server.
Rané dny (90. léta)
První široce používaný prohlížeč, NCSA Mosaic, obsahoval jednoduchý řetězec uživatelského agenta, který identifikoval název a verzi prohlížeče. Když byl vydán Netscape Navigator, použil podobný formát. Nicméně, jak webové servery začaly poskytovat různý obsah na základě prohlížeče, vznikla praxe známá jako "prohlížečové špehování".
Prohlížečové války a spoofing uživatelského agenta (konec 90. let)
Během prohlížečových válek mezi Netscape a Internet Explorerem webové stránky často sloužily optimalizovaný obsah výhradně pro konkrétní prohlížeče. Aby byla zajištěna kompatibilita, prohlížeče začaly zahrnovat řetězce, které se identifikovaly jako jiné prohlížeče. To je důvod, proč většina moderních prohlížečů stále zahrnuje "Mozilla" ve svých řetězcích uživatelského agenta, což je odkaz na kódové jméno Netscape Navigatoru.
Mobilní revoluce (2000–2010)
Vzestup mobilních zařízení přinesl do řetězců uživatelského agenta novou složitost. Mobilní prohlížeče potřebovaly identifikovat se jako mobilní, aby obdržely odpovídající obsah, což vedlo k přidání identifikátorů zařízení a mobilních specifických tokenů.
Moderní výzvy (2010–současnost)
Jak se webový ekosystém stal složitějším, řetězce uživatelského agenta se staly stále více zamotanými. Nyní obsahují odkazy na více prohlížečových enginů (jako "AppleWebKit" a "Gecko") z důvodů kompatibility, i když tyto enginy ve skutečnosti nejsou používány.
Tato složitost vedla k výzvám při přesném parsování řetězců uživatelského agenta a některé skupiny pro standardy webu navrhly deprekování nebo zjednodušení řetězců uživatelského agenta ve prospěch strukturovanějších klientských náznaků. Nicméně, z důvodů zpětné kompatibility zůstává tradiční řetězec uživatelského agenta nezbytnou součástí webového prohlížení.
Příklady kódu
Zde jsou příklady, jak pracovat s řetězci uživatelského agenta v různých programovacích jazycích:
1// JavaScript: Detekce typu prohlížeče z uživatelského agenta
2function detectBrowser() {
3 const userAgent = navigator.userAgent;
4
5 if (userAgent.indexOf("Firefox") > -1) {
6 return "Firefox";
7 } else if (userAgent.indexOf("SamsungBrowser") > -1) {
8 return "Samsung Browser";
9 } else if (userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1) {
10 return "Opera";
11 } else if (userAgent.indexOf("Trident") > -1) {
12 return "Internet Explorer";
13 } else if (userAgent.indexOf("Edge") > -1) {
14 return "Edge";
15 } else if (userAgent.indexOf("Chrome") > -1) {
16 return "Chrome";
17 } else if (userAgent.indexOf("Safari") > -1) {
18 return "Safari";
19 } else {
20 return "Neznámý";
21 }
22}
23
24// Použití
25console.log("Používáte: " + detectBrowser());
26
1# Python: Nastavení vlastního uživatelského agenta v requests
2import requests
3
4def fetch_with_user_agent(url, user_agent):
5 headers = {
6 'User-Agent': user_agent
7 }
8 response = requests.get(url, headers=headers)
9 return response.text
10
11# Příklad použití
12chrome_ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, jako Gecko) Chrome/96.0.4664.110 Safari/537.36'
13content = fetch_with_user_agent('https://example.com', chrome_ua)
14print(content[:100]) # Vytisknout prvních 100 znaků odpovědi
15
1<?php
2// PHP: Detekce mobilních zařízení pomocí uživatelského agenta
3function isMobileDevice() {
4 $userAgent = $_SERVER['HTTP_USER_AGENT'];
5 $mobileKeywords = array('Mobilní', 'Android', 'iPhone', 'iPad', 'Windows Phone');
6
7 foreach ($mobileKeywords as $keyword) {
8 if (stripos($userAgent, $keyword) !== false) {
9 return true;
10 }
11 }
12 return false;
13}
14
15// Použití
16if (isMobileDevice()) {
17 echo "Používáte mobilní zařízení.";
18} else {
19 echo "Používáte desktopové zařízení.";
20}
21?>
22
1// Java: Generování náhodného uživatelského agenta
2import java.util.Random;
3
4public class UserAgentGenerator {
5 private static final String[] CHROME_VERSIONS = {"96.0.4664.110", "95.0.4638.69", "94.0.4606.81"};
6 private static final String[] OS_VERSIONS = {"Windows NT 10.0; Win64; x64",
7 "Macintosh; Intel Mac OS X 10_15_7",
8 "X11; Linux x86_64"};
9
10 public static String generateRandomChromeUserAgent() {
11 Random random = new Random();
12 String osVersion = OS_VERSIONS[random.nextInt(OS_VERSIONS.length)];
13 String chromeVersion = CHROME_VERSIONS[random.nextInt(CHROME_VERSIONS.length)];
14
15 return "Mozilla/5.0 (" + osVersion + ") AppleWebKit/537.36 (KHTML, jako Gecko) " +
16 "Chrome/" + chromeVersion + " Safari/537.36";
17 }
18
19 public static void main(String[] args) {
20 System.out.println(generateRandomChromeUserAgent());
21 }
22}
23
1# Ruby: Parsování řetězce uživatelského agenta
2require 'user_agent_parser'
3
4def parse_user_agent(user_agent_string)
5 parser = UserAgentParser::Parser.new
6 client = parser.parse(user_agent_string)
7
8 {
9 browser_name: client.family,
10 browser_version: client.version.to_s,
11 os_name: client.os.family,
12 os_version: client.os.version.to_s,
13 device: client.device.family
14 }
15end
16
17# Příklad použití
18ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 jako Mac OS X) AppleWebKit/605.1.15 (KHTML, jako Gecko) Verze/14.0.3 Mobilní/15E148 Safari/604.1'
19info = parse_user_agent(ua)
20puts info
21
1// C#: Nastavení uživatelského agenta v HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Vytvoření HttpClient s vlastním uživatelským agentem
11 using (var httpClient = new HttpClient())
12 {
13 string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, jako Gecko) Chrome/96.0.4664.110 Safari/537.36";
14 httpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
15
16 try
17 {
18 // Proveďte požadavek s vlastním uživatelským agentem
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Odpověď přijata se stavovým kódem: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Prvních 100 znaků
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Chyba požadavku: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: Vytváření HTTP požadavků s vlastními uživatelskými agenty
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Vytvoření nového požadavku
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Chyba při vytváření požadavku: %s\n", err)
15 return
16 }
17
18 // Nastavení vlastního uživatelského agenta
19 req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, jako Gecko) Chrome/96.0.4664.110 Safari/537.36")
20
21 // Odeslání požadavku
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Chyba při odesílání požadavku: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Čtení odpovědi
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Chyba při čtení odpovědi: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Stav odpovědi: %s\n", resp.Status)
38 fmt.Printf("Náhled těla odpovědi: %s\n", body[:100])
39}
40
Běžné vzory uživatelského agenta
Zde jsou některé příklady skutečných řetězců uživatelského agenta pro různé prohlížeče a platformy:
Desktopové prohlížeče
Chrome na Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, jako Gecko) Chrome/96.0.4664.110 Safari/537.36
2
Firefox na macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari na macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, jako Gecko) Verze/15.2 Safari/605.1.15
2
Edge na Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, jako Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62
2
Mobilní prohlížeče
Chrome na Androidu:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, jako Gecko) Chrome/96.0.4664.104 Mobilní Safari/537.36
2
Safari na iPhonu:
1Mozilla/5.0 (iPhone; CPU iPhone OS 15_2 jako Mac OS X) AppleWebKit/605.1.15 (KHTML, jako Gecko) Verze/15.2 Mobilní/15E148 Safari/604.1
2
Firefox na Androidu:
1Mozilla/5.0 (Android 12; Mobilní; rv:95.0) Gecko/95.0 Firefox/95.0
2
Samsung Internet na Galaxy:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, jako Gecko) SamsungBrowser/16.0 Chrome/92.0.4515.166 Mobilní Safari/537.36
2
Odkazy
-
"Uživatelský agent." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Řetězce uživatelského agenta pro prohlížeče." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"HTTP Uživatelský agent." KeyCDN, https://www.keycdn.com/support/user-agent
-
"Klientské náznaky." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"Historie řetězce uživatelského agenta pro prohlížeče." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Detekce prohlížeče pomocí uživatelského agenta." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Zpětná vazba
Kliknutím na zpětnou vazbu spustíte poskytování zpětné vazby o tomto nástroji.
Související nástroje
Objevte další nástroje, které by mohly být užitečné pro vaši pracovní postup.