Generator nasumičnih korisničkih agenata za testiranje web razvoja
Generirajte realistične nizove korisničkih agenata preglednika s opcijama filtriranja prema vrsti uređaja, obitelji preglednika i operativnom sustavu. Savršeno za testiranje web razvoja i provjere kompatibilnosti.
Generator nasumičnih korisničkih agenata
Generirajte nasumične, realistične nizove korisničkih agenata preglednika za testiranje web razvoja.
Generirani korisnički agent
Dokumentacija
Generator nasumičnih korisničkih agenata
Uvod
Korisnička agenta string je specifičan tekstualni identifikator koji web preglednici i druge aplikacije šalju web stranicama kako bi se identificirali. Ovaj string obično sadrži informacije o pregledniku, operativnom sustavu, vrsti uređaja i renderirajućem motoru koji se koristi. Za web programere i testere, pristup raznim realističnim korisničkim agentima je bitan za testiranje kompatibilnosti web stranica, responzivnosti i funkcionalnosti na različitim platformama.
Ovaj alat za generiranje nasumičnih korisničkih agenata stvara autentične korisničke agenta stringove na temelju vaših odabranih parametara. Možete filtrirati prema vrsti uređaja (desktop ili mobilni), obitelji preglednika (Chrome, Firefox, Safari ili Edge) i operativnom sustavu kako biste generirali korisničke agente koji odgovaraju vašim testnim zahtjevima. Alat pruža jednostavno sučelje s opcijama za kopiranje generiranog stringa jednim klikom i trenutnim generiranjem novih nasumičnih stringova.
Struktura korisničkog agenta
Korisnički agent stringovi slijede specifične obrasce ovisno o pregledniku i platformi, ali općenito sadrže nekoliko zajedničkih komponenti:
- Identifikator preglednika: Obično počinje s "Mozilla/5.0" iz povijesnih razloga kompatibilnosti
- Informacije o platformi/OS-u: Detalji o operativnom sustavu (Windows, macOS, Android, iOS)
- Motor preglednika: Renderirajući motor (poput Gecko, WebKit ili Blink)
- Detalji preglednika: Specifično ime i verzija preglednika
Evo pregleda tipičnih struktura korisničkog agenta za glavne preglednike:
Chrome
1Mozilla/5.0 (platform; details) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/version Safari/537.36
2
Firefox
1Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
2
Safari
1Mozilla/5.0 (platform) AppleWebKit/webkitversion (KHTML, like Gecko) Version/safariversion Safari/safariversion
2
Edge
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/chromiumversion Safari/537.36 Edg/edgeversion
2
Odjeljak platforme značajno varira između desktop i mobilnih uređaja:
Primjeri za desktop:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Primjeri za mobilne uređaje:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 like Mac OS X
Razlike u vrstama uređaja
Desktop korisnički agenti
Desktop korisnički agenti obično uključuju specifične informacije o operativnom sustavu, detalje arhitekture (poput x86_64 ili Win64) i ponekad jezične preference. Obično su dosljedniji među preglednicima nego mobilni korisnički agenti.
Mobilni korisnički agenti
Mobilni korisnički agenti sadrže informacije o modelu uređaja, verzijama mobilnog operativnog sustava i često uključuju riječ "Mobile" na kraju. Mobilni Safari na iOS uređajima uključit će identifikatore "iPhone" ili "iPad", dok Android uređaji uključuju proizvođača i broj modela.
Obrasci verzija preglednika
Svaki preglednik slijedi različite obrasce verzioniranja:
- Chrome: Koristi četverodijelne brojeve verzija (npr. 96.0.4664.110)
- Firefox: Obično koristi dvo- ili trodijelne brojeve verzija (npr. 95.0 ili 95.0.2)
- Safari: Koristi jednostavne brojeve verzija poput 15.2
- Edge: Koristi brojeve verzija slične Chromeu, ali s vlastitom Edge verzijom (npr. 96.0.1054.62)
Upotrebe
Generiranje nasumičnih korisničkih agenata ima nekoliko važnih primjena u web razvoju i testiranju:
-
Testiranje kompatibilnosti između preglednika: Testirajte kako se vaša web stranica prikazuje i funkcionira na različitim preglednicima bez potrebe za instaliranjem više preglednika ili korištenjem više uređaja.
-
Testiranje responzivnog dizajna: Provjerite da li vaša web stranica ispravno prepoznaje mobilne i desktop uređaje i isporučuje odgovarajući izgled.
-
Validacija detekcije značajki: Osigurajte da mehanizmi detekcije značajki vaše web stranice ispravno rade za različite mogućnosti preglednika.
-
QA i automatizirano testiranje: Uključite različite korisničke agente u svoje skripte automatiziranog testiranja kako biste simulirali različita korisnička okruženja.
-
Testiranje performansi: Analizirajte kako vaša web stranica radi kada joj pristupaju iz različitih pregledničkih okruženja.
-
Otklanjanje grešaka specifičnih za preglednik: Ponovno reproducirajte i ispravite greške koje se javljaju samo u određenim preglednicima ili verzijama.
-
Testiranje API-ja: Testirajte kako vaš API obrađuje zahtjeve iz različitih klijentskih aplikacija.
Alternativne opcije
Iako je naš generator nasumičnih korisničkih agenata koristan za mnoge testne scenarije, postoje alternativni pristupi:
-
Usluge testiranja preglednika: Platforme poput BrowserStack, Sauce Labs ili LambdaTest pružaju stvarne instance preglednika za testiranje umjesto samo simuliranja korisničkog agenta.
-
Alati za razvoj preglednika: Većina modernih preglednika omogućuje vam da nadjačate korisnički agent putem svojih alata za razvoj, što može biti korisno za brze testove.
-
Proširenja za promjenu korisničkog agenta: Proširenja preglednika koja vam omogućuju da prebacujete između unaprijed definiranih korisničkih agenata tijekom pregledavanja.
-
Virtualne mašine ili kontejneri: Pokretanje stvarnih instanci različitih operativnih sustava i preglednika za najtočnije testiranje.
-
Testiranje bez grafičkog sučelja: Korištenje alata poput Puppeteer ili Selenium za programatsko upravljanje preglednicima s različitim postavkama korisničkog agenta.
Svaka alternativa ima svoje prednosti i može biti prikladnija ovisno o vašim specifičnim testnim potrebama i resursima.
Povijest
Koncept korisničkog agenta stringa datira iz ranih dana Svjetske mreže. Pojam "korisnički agent" dolazi iz HTTP specifikacije, gdje se odnosi na klijentsku aplikaciju koja šalje zahtjev web poslužitelju.
Rani dani (1990-ih)
Prvi široko korišteni preglednik, NCSA Mosaic, uključivao je jednostavan korisnički agent string koji je identificirao ime i verziju preglednika. Kada je Netscape Navigator objavljen, koristio je sličan format. Međutim, kako su web poslužitelji počeli isporučivati različit sadržaj na temelju preglednika, pojavila se praksa poznata kao "sniffing preglednika".
Ratovi preglednika i lažno predstavljanje korisničkog agenta (kasni 1990-ih)
Tijekom ratova preglednika između Netscape-a i Internet Explorera, web stranice su često isporučivale optimizirani sadržaj isključivo određenim preglednicima. Kako bi osigurali kompatibilnost, preglednici su počeli uključivati stringove koji su se identificirali kao drugi preglednici. To je razlog zašto većina modernih preglednika još uvijek uključuje "Mozilla" u svojim korisničkim agentima stringovima, referencu na kodno ime Netscape Navigatora.
Mobilna revolucija (2000-ih-2010-ih)
Uspon mobilnih uređaja uveo je novu složenost u korisničke agente stringove. Mobilni preglednici su trebali identificirati sebe kao mobilne kako bi primili odgovarajući sadržaj, što je dovelo do dodavanja identifikatora uređaja i mobilnih specifičnih tokena.
Moderni izazovi (2010.-danas)
Kako je web ekosustav postao složeniji, korisnički agent stringovi postali su sve zamršeniji. Sada sadrže reference na više pregledničkih motora (poput "AppleWebKit" i "Gecko") iz razloga kompatibilnosti, čak i kada ti motori zapravo nisu u upotrebi.
Ova složenost dovela je do izazova u točnom analiziranju korisničkih agenata stringova, a neke web standardne grupe predložile su depreciranje ili pojednostavljenje korisničkih agenata stringova u korist strukturiranijih klijentskih hintova. Međutim, iz razloga unazadne kompatibilnosti, tradicionalni korisnički agent string ostaje bitan dio web pregledavanja.
Primjeri koda
Evo primjera kako raditi s korisničkim agentima stringovima u raznim programskim jezicima:
1// JavaScript: Detekcija vrste preglednika iz korisničkog 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 "Nepoznato";
21 }
22}
23
24// Upotreba
25console.log("Koristite: " + detectBrowser());
26
1# Python: Postavljanje prilagođenog korisničkog agenta u zahtjevima
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# Primjer upotrebe
12chrome_ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
13content = fetch_with_user_agent('https://example.com', chrome_ua)
14print(content[:100]) # Ispis prvih 100 znakova odgovora
15
1<?php
2// PHP: Detekcija mobilnih uređaja koristeći korisnički agent
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// Upotreba
16if (isMobileDevice()) {
17 echo "Koristite mobilni uređaj.";
18} else {
19 echo "Koristite desktop uređaj.";
20}
21?>
22
1// Java: Generiranje nasumičnog korisničkog 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, like 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: Parsiranje korisničkog agenta stringa
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# Primjer upotrebe
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#: Postavljanje korisničkog agenta u HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Kreiranje HttpClient s prilagođenim korisničkim agentom
11 using (var httpClient = new HttpClient())
12 {
13 string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36";
14 httpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
15
16 try
17 {
18 // Izvršavanje zahtjeva s prilagođenim korisničkim agentom
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Primljen odgovor s status kodom: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Prvih 100 znakova
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Greška u zahtjevu: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: Kreiranje HTTP zahtjeva s prilagođenim korisničkim agentima
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Kreiranje novog zahtjeva
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Greška prilikom kreiranja zahtjeva: %s\n", err)
15 return
16 }
17
18 // Postavljanje prilagođenog korisničkog agenta
19 req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36")
20
21 // Slanje zahtjeva
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Greška prilikom slanja zahtjeva: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Čitanje odgovora
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Greška prilikom čitanja odgovora: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Status odgovora: %s\n", resp.Status)
38 fmt.Printf("Pregled tijela odgovora: %s\n", body[:100])
39}
40
Uobičajeni obrasci korisničkog agenta
Evo nekoliko primjera stvarnih korisničkih agenata stringova za različite preglednike i platforme:
Desktop preglednici
Chrome na Windowsu:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
2
Firefox na macOS-u:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari na macOS-u:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15
2
Edge na Windowsu:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62
2
Mobilni preglednici
Chrome na Androidu:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.104 Mobile Safari/537.36
2
Safari na iPhoneu:
1Mozilla/5.0 (iPhone; CPU iPhone OS 15_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Mobile/15E148 Safari/604.1
2
Firefox na Androidu:
1Mozilla/5.0 (Android 12; Mobile; 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, like Gecko) SamsungBrowser/16.0 Chrome/92.0.4515.166 Mobile Safari/537.36
2
Reference
-
"Korisnički agent." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Korisnički agent stringovi preglednika." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"HTTP korisnički agent zaglavlje objašnjeno." KeyCDN, https://www.keycdn.com/support/user-agent
-
"Klijentski hintovi." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"Povijest korisničkog agenta stringa." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Detekcija preglednika koristeći korisnički agent." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Povratne informacije
Kliknite na povratnu informaciju da biste počeli davati povratne informacije o ovom alatu
Povezani alati
Otkrijte više alata koji bi mogli biti korisni za vaš radni proces