Generator naključnih uporabniških agentov za testiranje spletnega razvoja
Ustvarite realistične nize uporabniških agentov brskalnika z možnostmi filtriranja po vrsti naprave, družini brskalnikov in operacijskem sistemu. Popolno za testiranje spletnega razvoja in preverjanje združljivosti.
Generator naključnih uporabniških agentov
Ustvarite naključne, realistične nize uporabniškega agenta brskalnika za testiranje spletnega razvoja.
Generirani uporabniški agent
Dokumentacija
Naključni generator uporabniških agentov
Uvod
Niz uporabniškega agenta je specifičen tekstovni identifikator, ki ga spletni brskalniki in druge aplikacije pošljejo spletnim mestom, da se identificirajo. Ta niz običajno vsebuje informacije o brskalniku, operacijskem sistemu, vrsti naprave in renderirnem motorju, ki se uporablja. Za spletne razvijalce in testerje je dostop do različnih realističnih nizov uporabniških agentov bistven za testiranje združljivosti spletnih mest, odzivnosti in funkcionalnosti na različnih platformah.
Ta orodje za naključni generator uporabniških agentov ustvarja avtentične nize uporabniških agentov na podlagi vaših izbranih parametrov. Lahko filtrirate po vrsti naprave (namizna ali mobilna), družini brskalnikov (Chrome, Firefox, Safari ali Edge) in operacijskem sistemu, da ustvarite uporabniške agente, ki ustrezajo vašim zahtevam za testiranje. Orodje ponuja preprost vmesnik z možnostmi za kopiranje ustvarjenega niza z enim klikom in takojšnje generiranje novih naključnih nizov.
Struktura uporabniškega agenta
Nizi uporabniških agentov sledijo specifičnim vzorcem, odvisno od brskalnika in platforme, vendar običajno vsebujejo več skupnih komponent:
- Identifikator brskalnika: Običajno se začne z "Mozilla/5.0" iz zgodovinskih razlogov združljivosti
- Informacije o platformi/OS: Podrobnosti o operacijskem sistemu (Windows, macOS, Android, iOS)
- Brskalniški motor: Renderirni motor (kot so Gecko, WebKit ali Blink)
- Podrobnosti o brskalniku: Specifično ime in različica brskalnika
Tukaj je razčlenitev tipičnih struktur uporabniških agentov za glavne brskalnike:
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
Odsek platforme se znatno razlikuje med namiznimi in mobilnimi napravami:
Primeri za namizje:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Primeri za mobilne naprave:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 like Mac OS X
Razlike v vrstah naprav
Uporabniški agenti za namizje
Uporabniški agenti za namizje običajno vključujejo specifične informacije o operacijskem sistemu, podrobnosti o arhitekturi (kot so x86_64 ali Win64) in včasih jezikovne preference. Običajno so bolj dosledni med brskalniki kot mobilni uporabniški agenti.
Uporabniški agenti za mobilne naprave
Mobilni uporabniški agenti vsebujejo informacije o modelu naprave, različicah mobilnega operacijskega sistema in pogosto vključujejo besedo "Mobile" na koncu. Mobilni Safari na napravah iOS bo vključil identifikatorje "iPhone" ali "iPad", medtem ko Android naprave vključujejo proizvajalca in številko modela.
Vzorci različic brskalnikov
Vsak brskalnik sledi različnim vzorcem različic:
- Chrome: Uporablja štiridelne številke različic (npr. 96.0.4664.110)
- Firefox: Običajno uporablja dvo- ali tridelnice številke različic (npr. 95.0 ali 95.0.2)
- Safari: Uporablja preproste številke različic, kot je 15.2
- Edge: Uporablja številke različic, podobne Chrome, vendar z lastno različico Edge (npr. 96.0.1054.62)
Uporabe
Generiranje naključnih uporabniških agentov ima več pomembnih aplikacij v spletnem razvoju in testiranju:
-
Testiranje združljivosti med brskalniki: Preverite, kako se vaše spletno mesto prikazuje in deluje v različnih brskalnikih, ne da bi bilo potrebno namestiti več brskalnikov ali uporabljati več naprav.
-
Testiranje odzivnega oblikovanja: Preverite, ali vaše spletno mesto pravilno zaznava mobilne in namizne naprave ter služi ustrezno postavitev.
-
Validacija zaznavanja funkcij: Preverite, ali mehanizmi zaznavanja funkcij vašega spletnega mesta delujejo pravilno za različne zmogljivosti brskalnikov.
-
QA in avtomatizirano testiranje: Vključite različne uporabniške agente v svoje skripte za avtomatizirano testiranje, da simulirate različna uporabniška okolja.
-
Testiranje zmogljivosti: Analizirajte, kako vaše spletno mesto deluje, ko ga dostopate iz različnih brskalniških okolij.
-
Odpravljanje težav, specifičnih za brskalnike: Ponovno ustvarite in odpravite napake, ki se pojavijo le v določenih brskalnikih ali različicah.
-
Testiranje API-jev: Preverite, kako vaš API obravnava zahteve iz različnih odjemalskih aplikacij.
Alternativen
Medtem ko je naš generator naključnih uporabniških agentov koristen za številne scenarije testiranja, obstajajo alternativni pristopi:
-
Storitve testiranja brskalnikov: Platforme, kot so BrowserStack, Sauce Labs ali LambdaTest, zagotavljajo dejanske brskalniške instance za testiranje namesto le simuliranja uporabniškega agenta.
-
Orodja za razvijalce brskalnikov: Večina sodobnih brskalnikov omogoča, da prek svojih orodij za razvijalce prepišete uporabniški agent, kar je lahko koristno za hitre teste.
-
Razširitve za preklapljanje uporabniških agentov: Razširitve brskalnika, ki vam omogočajo preklapljanje med prednastavljenimi uporabniškimi agenti med brskanjem.
-
Virtualne naprave ali kontejnerji: Zagon dejanskih primerov različnih operacijskih sistemov in brskalnikov za najbolj natančno testiranje.
-
Testiranje brez glave: Uporaba orodij, kot so Puppeteer ali Selenium za programatično nadzorovanje brskalnikov z različnimi nastavitvami uporabniškega agenta.
Vsaka alternativa ima svoje prednosti in je lahko bolj primerna glede na vaše specifične potrebe in vire testiranja.
Zgodovina
Koncept niza uporabniškega agenta sega v zgodnje dni svetovnega spleta. Izraz "uporabniški agent" izhaja iz specifikacije HTTP, kjer se nanaša na odjemalsko aplikacijo, ki pošilja zahtevo spletnemu strežniku.
Zgodnji dnevi (1990-ih)
Prvi široko uporabljeni brskalnik, NCSA Mosaic, je vključil preprost niz uporabniškega agenta, ki je identificiral ime in različico brskalnika. Ko je bil izdan Netscape Navigator, je uporabil podoben format. Vendar pa so spletni strežniki začeli dostavljati različne vsebine na podlagi brskalnika, kar je povzročilo prakso, znano kot "zaznavanje brskalnika".
Vojne brskalnikov in ponarejanje uporabniškega agenta (pozna 1990-a)
Med vojnami brskalnikov med Netscape in Internet Explorerjem so spletna mesta pogosto dostavljala optimizirano vsebino izključno določenim brskalnikom. Da bi zagotovili združljivost, so brskalniki začeli vključevati nize, ki so se identificirali kot drugi brskalniki. To je razlog, zakaj večina sodobnih brskalnikov še vedno vključuje "Mozilla" v svojih nizih uporabniških agentov, kar se nanaša na kodno ime Netscape Navigatorja.
Mobilna revolucija (2000-ih-2010-ih)
Vzpon mobilnih naprav je uvedel novo kompleksnost v nize uporabniških agentov. Mobilni brskalniki so se morali identificirati kot mobilni, da bi prejeli ustrezno vsebino, kar je privedlo do dodajanja identifikatorjev naprav in mobilnih specifičnih žetonov.
Sodobni izzivi (2010-ih-danes)
Ker je ekosistem spleta postal bolj kompleksen, so nizi uporabniških agentov postali vse bolj zapleteni. Zdaj vsebujejo reference na več brskalniških motorjev (kot so "AppleWebKit" in "Gecko") iz razlogov združljivosti, tudi ko ti motorji dejansko niso v uporabi.
Ta kompleksnost je privedla do izzivov pri natančnem razčlenjevanju nizov uporabniških agentov, nekateri standardni skupini so predlagali opustitev ali poenostavitev nizov uporabniških agentov v korist bolj strukturiranih namigov odjemalca. Vendar pa iz razlogov združljivosti ostaja tradicionalni niz uporabniškega agenta bistven del brskanja po spletu.
Kodeksni primeri
Tukaj so primeri, kako delati z nizi uporabniških agentov v različnih programskih jezikih:
1// JavaScript: Zaznavanje vrste brskalnika iz niza uporabniškega 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 "Unknown";
21 }
22}
23
24// Uporaba
25console.log("Uporabljate: " + detectBrowser());
26
1# Python: Nastavljanje lastnega uporabniškega agenta v zahtevah
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# Primer uporabe
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]) # Prikaži prvih 100 znakov odgovora
15
1<?php
2// PHP: Zaznavanje mobilnih naprav z uporabo uporabniškega agenta
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// Uporaba
16if (isMobileDevice()) {
17 echo "Uporabljate mobilno napravo.";
18} else {
19 echo "Uporabljate namizno napravo.";
20}
21?>
22
1// Java: Generiranje naključnega uporabniškega 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: Razčlenjevanje niza uporabniškega 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# Primer uporabe
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#: Nastavljanje uporabniškega agenta v HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Ustvarite HttpClient z lastnim uporabniš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 // Pošljite zahtevo z lastnim uporabniš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($"Prejet odgovor s statusno kodo: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Prvih 100 znakov
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Napaka pri zahtevku: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: Ustvarjanje HTTP zahtevkov z lastnimi uporabniškimi agenti
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Ustvarite novo zahtevo
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Napaka pri ustvarjanju zahtevka: %s\n", err)
15 return
16 }
17
18 // Nastavite lastni uporabniški agent
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 // Pošljite zahtevo
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Napaka pri pošiljanju zahtevka: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Preberite odgovor
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Napaka pri branju odgovora: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Status odgovora: %s\n", resp.Status)
38 fmt.Printf("Predogled telesa odgovora: %s\n", body[:100])
39}
40
Pogosti vzorci uporabniških agentov
Tukaj je nekaj primerov pravih nizov uporabniških agentov za različne brskalnike in platforme:
Namizni brskalniki
Chrome na Windows:
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:
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, like Gecko) Version/15.2 Safari/605.1.15
2
Edge na Windows:
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 brskalniki
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 iPhone:
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
-
"Uporabniški agent." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Nizi uporabniških agentov brskalnika." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"HTTP Uporabniški agent Header pojasnjen." KeyCDN, https://www.keycdn.com/support/user-agent
-
"Klientski namigi." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"Zgodovina niza uporabniškega agenta brskalnika." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Zaznavanje brskalnika z uporabo uporabniškega agenta." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Povratne informacije
Kliknite na toast za povratne informacije, da začnete dajati povratne informacije o tem orodju
Sorodne orodja
Odkrijte več orodij, ki bi lahko bila koristna za vaš delovni proces