Atsitiktinis vartotojo agento generatorius žiniatinklio kūrimo testavimui
Generuokite realistiškas naršyklės vartotojo agento eilutes su galimybėmis filtruoti pagal įrenginio tipą, naršyklės šeimą ir operacinę sistemą. Puikiai tinka žiniatinklio kūrimo testavimui ir suderinamumo patikrinimams.
Atsitiktinis naudotojo agento generatorius
Sugeneruokite atsitiktinius, realistiškus naršyklės naudotojo agento eilutes web kūrimo testavimui.
Sugeneruotas naudotojo agentas
Dokumentacija
Atsitiktinis naudotojo agento generatorius
Įvadas
Naudotojo agento eilutė yra specifinė teksto identifikacija, kurią interneto naršyklės ir kitos programos siunčia svetainėms, kad identifikuotų save. Ši eilutė paprastai apima informaciją apie naršyklę, operacinę sistemą, įrenginio tipą ir naudojamą atvaizdavimo variklį. Interneto kūrėjams ir testuotojams prieiga prie įvairių realistiškų naudotojo agento eilutėmis yra būtina testuojant svetainės suderinamumą, reaguojamumą ir funkcionalumą skirtingose platformose.
Šis Atsitiktinis naudotojo agento generatorius sukuria autentiškai atrodantčias naudotojo agento eilutes, remiantis jūsų pasirinktais parametrais. Galite filtruoti pagal įrenginio tipą (darbalaukis arba mobilusis), naršyklės šeimą (Chrome, Firefox, Safari arba Edge) ir operacinę sistemą, kad sugeneruotumėte naudotojo agentus, kurie atitinka jūsų testavimo reikalavimus. Įrankis suteikia paprastą sąsają su galimybėmis kopijuoti sugeneruotą eilutę vienu paspaudimu ir akimirksniu generuoti naujas atsitiktines eilutes.
Naudotojo agento struktūra
Naudotojo agento eilutės seka specifinius modelius, priklausomai nuo naršyklės ir platformos, tačiau paprastai jos apima kelis bendrus komponentus:
- Naršyklės identifikatorius: Paprastai prasideda nuo "Mozilla/5.0" dėl istorinių suderinamumo priežasčių
- Platformos/OS informacija: Informacija apie operacinę sistemą (Windows, macOS, Android, iOS)
- Naršyklės variklis: Atvaizdavimo variklis (pvz., Gecko, WebKit arba Blink)
- Naršyklės detalės: Specifinė naršyklės pavadinimas ir versija
Štai tipinių naudotojo agento struktūrų išskaidymas pagrindinėms naršyklėms:
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
Platformos skyrius labai skiriasi tarp darbalaukio ir mobiliųjų įrenginių:
Darbalaukio pavyzdžiai:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Mobilieji pavyzdžiai:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 like Mac OS X
Įrenginio tipo skirtumai
Darbalaukio naudotojo agentai
Darbalaukio naudotojo agentai paprastai apima specifinę operacinės sistemos informaciją, architektūros detales (pvz., x86_64 arba Win64) ir kartais kalbos nuostatas. Jie paprastai yra nuoseklesni tarp naršyklių nei mobilieji naudotojo agentai.
Mobilieji naudotojo agentai
Mobilieji naudotojo agentai apima įrenginio modelio informaciją, mobiliųjų operacinių sistemų versijas ir dažnai pabaigoje turi žodį "Mobile". Mobilusis Safari iOS įrenginiuose apims "iPhone" arba "iPad" identifikatorius, o Android įrenginiuose - gamintojo ir modelio numerį.
Naršyklės versijų modeliai
Kiekviena naršyklė seka skirtingus versijų modelius:
- Chrome: Naudoja keturių dalių versijų numerius (pvz., 96.0.4664.110)
- Firefox: Paprastai naudoja dviejų arba trijų dalių versijų numerius (pvz., 95.0 arba 95.0.2)
- Safari: Naudoja paprastus versijų numerius, tokius kaip 15.2
- Edge: Naudoja versijų numerius, panašius į Chrome, tačiau su savo Edge versija (pvz., 96.0.1054.62)
Naudojimo atvejai
Atsitiktinis naudotojo agento generavimas turi keletą svarbių taikymo sričių interneto kūrime ir testavime:
-
Kryžminio naršyklės suderinamumo testavimas: Patikrinkite, kaip jūsų svetainė atvaizduojama ir veikia skirtingose naršyklėse, nesukurdami kelių naršyklių ar nenaudodami kelių įrenginių.
-
Reaguojančio dizaino testavimas: Patikrinkite, ar jūsų svetainė teisingai nustato mobiliuosius ir darbalaukio įrenginius ir pateikia tinkamą išdėstymą.
-
Funkcijų aptikimo patikrinimas: Užtikrinkite, kad jūsų svetainės funkcijų aptikimo mechanizmai veiktų teisingai skirtingoms naršyklių galimybėms.
-
QA ir automatizuotas testavimas: Įtraukite skirtingus naudotojo agentus į savo automatizuotų testavimo scenarijų, kad simuliuotumėte įvairias naudotojų aplinkas.
-
Veiklos testavimas: Analizuokite, kaip jūsų svetainė veikia, kai ji pasiekiama iš skirtingų naršyklių aplinkų.
-
Naršyklės specifinių problemų derinimas: Atkurkite ir išspręskite klaidas, kurios atsiranda tik tam tikrose naršyklėse ar versijose.
-
API testavimas: Patikrinkite, kaip jūsų API tvarko užklausas iš skirtingų klientų programų.
Alternatyvos
Nors mūsų atsitiktinis naudotojo agento generatorius yra naudingas daugeliui testavimo scenarijų, yra ir alternatyvių požiūrių:
-
Naršyklės testavimo paslaugos: Tokios platformos kaip BrowserStack, Sauce Labs arba LambdaTest teikia tikras naršyklių instancijas testavimui, o ne tik simuliuojant naudotojo agentą.
-
Naršyklės kūrėjo įrankiai: Dauguma šiuolaikinių naršyklių leidžia jums perrašyti naudotojo agentą per savo kūrėjo įrankius, kas gali būti naudinga greitiems testams.
-
Naudotojo agento keitiklio plėtiniai: Naršyklės plėtiniai, leidžiantys jums perjungti tarp iš anksto nustatytų naudotojo agentų naršant.
-
Virtualios mašinos arba konteineriai: Vykdydami tikras skirtingų operacinių sistemų ir naršyklių instancijas, kad gautumėte tiksliausią testavimą.
-
Be galvos naršyklių testavimas: Naudodami įrankius, tokius kaip Puppeteer arba Selenium, programiškai valdykite naršykles su skirtingais naudotojo agentų nustatymais.
Kiekviena alternatyva turi savo privalumų ir gali būti tinkamesnė priklausomai nuo jūsų specifinių testavimo poreikių ir išteklių.
Istorija
Naudotojo agento eilutės koncepcija atsirado ankstyvuoju Pasaulinio tinklo laikotarpiu. Terminas "naudotojo agentas" kyla iš HTTP specifikacijos, kur jis nurodo kliento programą, siunčiančią užklausą į interneto serverį.
Ankstyvieji laikai (1990-ieji)
Pirmasis plačiai naudojamas naršyklė, NCSA Mosaic, turėjo paprastą naudotojo agento eilutę, kuri identifikavo naršyklės pavadinimą ir versiją. Kai buvo išleista Netscape Navigator, ji naudojo panašų formatą. Tačiau, kai interneto serveriai pradėjo teikti skirtingą turinį, priklausomai nuo naršyklės, atsirado praktika, vadinama "naršyklės uostymu".
Naršyklių karai ir naudotojo agento apgaudinėjimas (1990-ųjų pabaiga)
Naršyklių karų metu tarp Netscape ir Internet Explorer, svetainės dažnai pateikdavo optimizuotą turinį tik konkrečioms naršyklėms. Norint užtikrinti suderinamumą, naršyklės pradėjo įtraukti eilutes, kurios identifikuotų save kaip kitas naršykles. Būtent dėl šios priežasties dauguma šiuolaikinių naršyklių vis dar įtraukia "Mozilla" į savo naudotojo agento eilutes, nuorodą į Netscape Navigatoro kodinį pavadinimą.
Mobilioji revoliucija (2000-2010)
Mobilųjų įrenginių augimas įvedė naują sudėtingumą į naudotojo agento eilutes. Mobiliosios naršyklės turėjo identifikuoti save kaip mobiliąsias, kad gautų tinkamą turinį, todėl buvo pridėta įrenginio identifikatorių ir mobiliųjų specifinių žodžių.
Šiuolaikiniai iššūkiai (2010-dabar)
Augant interneto ekosistemai, naudotojo agento eilutės tapo vis sudėtingesnės. Jos dabar apima nuorodas į kelis naršyklių variklius (pvz., "AppleWebKit" ir "Gecko"), kad užtikrintų suderinamumą, net jei šie varikliai iš tikrųjų nėra naudojami.
Ši sudėtingumas sukėlė sunkumų tiksliai analizuojant naudotojo agento eilutes, ir kai kurios interneto standartų grupės pasiūlė deponuoti arba supaprastinti naudotojo agento eilutes, siekiant pereiti prie struktūrizuotų klientų užuominų. Tačiau dėl atgalinio suderinamumo priežasčių tradicinė naudotojo agento eilutė išlieka esmine interneto naršymo dalimi.
Kodo pavyzdžiai
Štai pavyzdžiai, kaip dirbti su naudotojo agento eilutėmis įvairiose programavimo kalbose:
1// JavaScript: Naršyklės tipo nustatymas iš naudotojo agento
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// Naudojimas
25console.log("Jūs naudojate: " + detectBrowser());
26
1# Python: Nustatant pasirinktą naudotojo agentą užklausose
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# Pavyzdžio naudojimas
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]) # Atspausdinti pirmus 100 simbolių iš atsakymo
15
1<?php
2// PHP: Nustatant mobiliuosius įrenginius naudojant naudotojo 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// Naudojimas
16if (isMobileDevice()) {
17 echo "Jūs naudojate mobilųjį įrenginį.";
18} else {
19 echo "Jūs naudojate darbalaukio įrenginį.";
20}
21?>
22
1// Java: Atsitiktinio naudotojo agento generavimas
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: Analizuojant naudotojo agento eilutę
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# Pavyzdžio naudojimas
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#: Nustatant naudotojo agentą HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Sukurti HttpClient su pasirinktiniu naudotojo agentu
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 // Atlikti užklausą su pasirinktiniu naudotojo agentu
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Atsakymo statusas: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Pirmi 100 simbolių
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Užklausos klaida: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: Sukuriant HTTP užklausas su pasirinktiniu naudotojo agentu
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Sukurti naują užklausą
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Klaida kuriant užklausą: %s\n", err)
15 return
16 }
17
18 // Nustatyti pasirinktinius naudotojo agentus
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 // Išsiųsti užklausą
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Klaida siunčiant užklausą: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Perskaityti atsakymą
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Klaida skaitant atsakymą: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Atsakymo statusas: %s\n", resp.Status)
38 fmt.Printf("Atsakymo turinio peržiūra: %s\n", body[:100])
39}
40
Dažni naudotojo agento modeliai
Štai keletas tikrų naudotojo agento eilutės pavyzdžių skirtingoms naršyklėms ir platformoms:
Darbalaukio naršyklės
Chrome 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 macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari 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 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
Mobiliosios naršyklės
Chrome Android:
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 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 Android:
1Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0
2
Samsung Internet 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
Nuorodos
-
"Naudotojo agentas." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Naršyklės naudotojo agento eilutės." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"HTTP Naudotojo agento antraštė paaiškinta." KeyCDN, https://www.keycdn.com/support/user-agent
-
"Kliento užuominos." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"Naudotojo agento eilutės istorija." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Naršyklės aptikimas naudojant naudotojo agentą." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Atsiliepimai
Spustelėkite atsiliepimo skanėlį, norėdami pradėti teikti atsiliepimus apie šį įrankį
Susiję įrankiai
Raskite daugiau įrankių, kurie gali būti naudingi jūsų darbo eiga.