Tilfeldig Brukeragentgenerator for Webutviklingstesting
Generer realistiske nettleser brukeragentstrenger med muligheter for å filtrere etter enhetstype, nettleserfamilie og operativsystem. Perfekt for testing av webutvikling og kompatibilitetssjekker.
Tilfeldig brukeragentgenerator
Generer tilfeldige, realistiske nettleser brukeragent-strenger for testing av webutvikling.
Generert brukeragent
Dokumentasjon
Tilfeldig Brukeragentgenerator
Introduksjon
En brukeragentstreng er en spesifikk tekstidentifikator som nettlesere og andre applikasjoner sender til nettsteder for å identifisere seg selv. Denne strengen inneholder vanligvis informasjon om nettleseren, operativsystemet, enhetstypen og gjengivelsesmotoren som brukes. For webutviklere og testere er det viktig å ha tilgang til et variert utvalg av realistiske brukeragentstrenger for å teste nettstedets kompatibilitet, responsivitet og funksjonalitet på tvers av forskjellige plattformer.
Dette verktøyet for tilfeldig brukeragentgenerator lager autentiske brukeragentstrenger basert på dine valgte parametere. Du kan filtrere etter enhetstype (stasjonær eller mobil), nettleserfamilie (Chrome, Firefox, Safari eller Edge) og operativsystem for å generere brukeragenter som samsvarer med dine testkrav. Verktøyet gir et enkelt grensesnitt med alternativer for å kopiere den genererte strengen med ett klikk og generere nye tilfeldige strenger umiddelbart.
Brukeragentstruktur
Brukeragentstrenger følger spesifikke mønstre avhengig av nettleseren og plattformen, men de inneholder generelt flere vanlige komponenter:
- Nettleseridentifikator: Starter vanligvis med "Mozilla/5.0" av historiske kompatibilitetsgrunner
- Plattform/OS-informasjon: Detaljer om operativsystemet (Windows, macOS, Android, iOS)
- Nettlesermotor: Gjengivelsesmotoren (som Gecko, WebKit eller Blink)
- Nettleserdetaljer: Det spesifikke nettlesernavnet og versjonen
Her er en oversikt over typiske brukeragentstrukturer for store nettlesere:
Chrome
1Mozilla/5.0 (plattform; detaljer) AppleWebKit/537.36 (KHTML, som Gecko) Chrome/versjon Safari/537.36
2
Firefox
1Mozilla/5.0 (plattform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
2
Safari
1Mozilla/5.0 (plattform) AppleWebKit/webkitversjon (KHTML, som Gecko) Versjon/safariversjon Safari/safariversjon
2
Edge
1Mozilla/5.0 (plattform) AppleWebKit/537.36 (KHTML, som Gecko) Chrome/chromiumversjon Safari/537.36 Edg/edgeversjon
2
Plattformseksjonen varierer betydelig mellom stasjonære og mobile enheter:
Stasjonære eksempler:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Mobile eksempler:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 som Mac OS X
Forskjeller i enhetstype
Stasjonære brukeragenter
Stasjonære brukeragenter inkluderer vanligvis spesifikke operativsysteminformasjon, arkitekturdetaljer (som x86_64 eller Win64), og noen ganger språkpreferanser. De har en tendens til å være mer konsistente på tvers av nettlesere enn mobile brukeragenter.
Mobile brukeragenter
Mobile brukeragenter inneholder enhetsmodellinformasjon, mobile operativsystemversjoner, og inkluderer ofte ordet "Mobil" på slutten. Mobile Safari på iOS-enheter vil inkludere "iPhone" eller "iPad"-identifikatorer, mens Android-enheter inkluderer produsent- og modellnummer.
Nettleserversjonsmønstre
Hver nettleser følger forskjellige versjoneringsmønstre:
- Chrome: Bruker fire-delt versjonsnumre (f.eks. 96.0.4664.110)
- Firefox: Bruker vanligvis to eller tre-delt versjonsnumre (f.eks. 95.0 eller 95.0.2)
- Safari: Bruker enkle versjonsnumre som 15.2
- Edge: Bruker versjonsnumre som ligner på Chrome, men med sin egen Edge-versjon (f.eks. 96.0.1054.62)
Bruksområder
Generering av tilfeldige brukeragenter har flere viktige bruksområder innen webutvikling og testing:
-
Testing av tverrnettleserkompatibilitet: Test hvordan nettstedet ditt gjengis og fungerer på tvers av forskjellige nettlesere uten å måtte installere flere nettlesere eller bruke flere enheter.
-
Testing av responsiv design: Verifiser at nettstedet ditt korrekt oppdager mobile og stasjonære enheter og serverer det passende oppsettet.
-
Validering av funksjonsdeteksjon: Sørg for at nettstedets funksjonsdeteksjonsmekanismer fungerer korrekt for forskjellige nettleserfunksjoner.
-
QA og automatisert testing: Inkluder forskjellige brukeragenter i automatiserte testskriptene dine for å simulere forskjellige brukeromgivelser.
-
Ytelsestesting: Analyser hvordan nettstedet ditt presterer når det nås fra forskjellige nettlesermiljøer.
-
Feilsøking av nettleserspesifikke problemer: Reproduser og fiks feil som bare oppstår i spesifikke nettlesere eller versjoner.
-
API-testing: Test hvordan API-et ditt håndterer forespørsel fra forskjellige klientapplikasjoner.
Alternativer
Mens vår tilfeldige brukeragentgenerator er nyttig for mange testscenarier, finnes det alternative tilnærminger:
-
Nettlesertestingstjenester: Plattformer som BrowserStack, Sauce Labs eller LambdaTest gir faktiske nettleserinstanser for testing i stedet for bare å simulere brukeragenten.
-
Nettleserutviklerverktøy: De fleste moderne nettlesere lar deg overstyre brukeragenten gjennom utviklerverktøyene deres, noe som kan være nyttig for raske tester.
-
Utvidelser for brukeragentbytte: Nettleserutvidelser som lar deg bytte mellom forhåndsdefinerte brukeragenter mens du surfer.
-
Virtuelle maskiner eller containere: Kjøring av faktiske instanser av forskjellige operativsystemer og nettlesere for den mest nøyaktige testen.
-
Hodeløse nettlesertesting: Bruk av verktøy som Puppeteer eller Selenium for programmatisk å kontrollere nettlesere med forskjellige brukeragentinnstillinger.
Hver alternativ har sine egne fordeler og kan være mer passende avhengig av dine spesifikke testbehov og ressurser.
Historie
Konseptet med brukeragentstrengen går tilbake til de tidlige dagene av World Wide Web. Begrepet "brukeragent" kommer fra HTTP-spesifikasjonen, der det refererer til klientapplikasjonen som sender en forespørsel til en webserver.
Tidlige dager (1990-tallet)
Den første mye brukte nettleseren, NCSA Mosaic, inkluderte en enkel brukeragentstreng som identifiserte nettlesernavnet og versjonen. Da Netscape Navigator ble utgitt, brukte den et lignende format. Imidlertid, ettersom webservere begynte å levere forskjellig innhold basert på nettleseren, oppsto en praksis kjent som "nettlesersniffing".
Nettleserkrigene og brukeragentforfalskning (slutten av 1990-tallet)
Under nettleserkrigene mellom Netscape og Internet Explorer, serverte nettsteder ofte optimalisert innhold eksklusivt til spesifikke nettlesere. For å sikre kompatibilitet begynte nettlesere å inkludere strenger som identifiserte dem som andre nettlesere. Dette er grunnen til at de fleste moderne nettlesere fortsatt inkluderer "Mozilla" i brukeragentstrengene sine, en referanse til kodenavnet til Netscape Navigator.
Mobilrevolusjonen (2000-tallet-2010-tallet)
Fremveksten av mobile enheter introduserte ny kompleksitet til brukeragentstrenger. Mobile nettlesere måtte identifisere seg som mobile for å motta passende innhold, noe som førte til tillegg av enhetsidentifikatorer og mobile spesifikke token.
Moderne utfordringer (2010-tallet-nåtid)
Ettersom webøkosystemet har vokst mer komplekst, har brukeragentstrenger blitt stadig mer kronglete. De inneholder nå referanser til flere nettlesermotorer (som "AppleWebKit" og "Gecko") av kompatibilitetsgrunner, selv når disse motorene faktisk ikke brukes.
Denne kompleksiteten har ført til utfordringer med nøyaktig parsing av brukeragentstrenger, og noen webstandardgrupper har foreslått å avvikle eller forenkle brukeragentstrenger til fordel for mer strukturerte klienthint. Imidlertid, av bakoverkompatibilitetsgrunner, forblir den tradisjonelle brukeragentstrengen en viktig del av nettlesing.
Kodeeksempler
Her er eksempler på hvordan man arbeider med brukeragentstrenger i forskjellige programmeringsspråk:
1// JavaScript: Oppdage nettlesertype fra brukeragent
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 "Ukjent";
21 }
22}
23
24// Bruk
25console.log("Du bruker: " + detectBrowser());
26
1# Python: Sette tilpasset brukeragent i forespørselene
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# Eksempel på bruk
12chrome_ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, som Gecko) Chrome/96.0.4664.110 Safari/537.36'
13content = fetch_with_user_agent('https://example.com', chrome_ua)
14print(content[:100]) # Skriv ut de første 100 tegnene av svaret
15
1<?php
2// PHP: Oppdage mobile enheter ved hjelp av brukeragent
3function isMobileDevice() {
4 $userAgent = $_SERVER['HTTP_USER_AGENT'];
5 $mobileKeywords = array('Mobile', '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// Bruk
16if (isMobileDevice()) {
17 echo "Du bruker en mobil enhet.";
18} else {
19 echo "Du bruker en stasjonær enhet.";
20}
21?>
22
1// Java: Generere en tilfeldig brukeragent
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, som 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: Parsing brukeragentstreng
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# Eksempel på bruk
18ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1'
19info = parse_user_agent(ua)
20puts info
21
1// C#: Sette brukeragent i HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Opprett HttpClient med tilpasset brukeragent
11 using (var httpClient = new HttpClient())
12 {
13 string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, som Gecko) Chrome/96.0.4664.110 Safari/537.36";
14 httpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
15
16 try
17 {
18 // Gjør forespørsel med tilpasset brukeragent
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Svar mottatt med statuskode: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Første 100 tegn
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Forespørsel feil: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: Opprette HTTP-forespørsel med tilpassede brukeragenter
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Opprett en ny forespørsel
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Feil ved oppretting av forespørsel: %s\n", err)
15 return
16 }
17
18 // Sett tilpasset brukeragent
19 req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, som Gecko) Chrome/96.0.4664.110 Safari/537.36")
20
21 // Send forespørselen
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Feil ved sending av forespørsel: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Les svaret
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Feil ved lesing av svar: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Svarstatus: %s\n", resp.Status)
38 fmt.Printf("Forhåndsvisning av svarinnhold: %s\n", body[:100])
39}
40
Vanlige brukeragentmønstre
Her er noen eksempler på ekte brukeragentstrenger for forskjellige nettlesere og plattformer:
Stasjonære nettlesere
Chrome på Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, som Gecko) Chrome/96.0.4664.110 Safari/537.36
2
Firefox på macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari på macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, som Gecko) Versjon/15.2 Safari/605.1.15
2
Edge på Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, som Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62
2
Mobile nettlesere
Chrome på Android:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, som Gecko) Chrome/96.0.4664.104 Mobil Safari/537.36
2
Safari på iPhone:
1Mozilla/5.0 (iPhone; CPU iPhone OS 15_2 som Mac OS X) AppleWebKit/605.1.15 (KHTML, som Gecko) Versjon/15.2 Mobil/15E148 Safari/604.1
2
Firefox på Android:
1Mozilla/5.0 (Android 12; Mobil; rv:95.0) Gecko/95.0 Firefox/95.0
2
Samsung Internet på Galaxy:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, som Gecko) SamsungBrowser/16.0 Chrome/92.0.4515.166 Mobil Safari/537.36
2
Referanser
-
"Brukeragent." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Nettleserbrukeragentstrenger." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"HTTP Bruker-Agent Header Forklart." KeyCDN, https://www.keycdn.com/support/user-agent
-
"Klienthint." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"Historien om nettleserens brukeragentstreng." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Nettleserdeteksjon ved hjelp av brukeragent." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Tilbakemelding
Klikk på tilbakemeldings-toasten for å begynne å gi tilbakemelding om dette verktøyet
Relaterte verktøy
Oppdag flere verktøy som kan være nyttige for arbeidsflyten din