Satunnainen käyttäjäagentin generaattori verkkokehityksen testaamiseen
Luo realistisia selainkäyttäjäagenttijonoja vaihtoehdoilla suodattaa laitetyyppiä, selainperhettä ja käyttöjärjestelmää mukaan. Täydellinen verkkokehityksen testaamiseen ja yhteensopivuuden tarkistamiseen.
Satunnainen käyttäjäagentin generaattori
Luo satunnaisia, realistisia selaimen käyttäjäagenttijonoja verkkokehityksen testaamista varten.
Luotu käyttäjäagentti
Dokumentaatio
Satunnainen Käyttäjäagenttigeneraattori
Johdanto
Käyttäjäagenttijono on erityinen tekstidentifikaattori, jonka verkkoselaimet ja muut sovellukset lähettävät verkkosivustoille tunnistaakseen itsensä. Tämä jono sisältää tyypillisesti tietoja selaimesta, käyttöjärjestelmästä, laitetyypistä ja käytettävästä renderöintimoottorista. Verkkokehittäjille ja testaajille on olennaista, että heillä on pääsy monenlaisiin realistisiin käyttäjäagenttijonoihin verkkosivustojen yhteensopivuuden, responsiivisuuden ja toiminnallisuuden testaamiseksi eri alustoilla.
Tämä satunnainen käyttäjäagenttigeneraattori luo aitoja käyttäjäagenttijonoja valitsemiesi parametrien perusteella. Voit suodattaa laitetypen (työpöytä tai mobiili), selainperheen (Chrome, Firefox, Safari tai Edge) ja käyttöjärjestelmän mukaan luodaksesi käyttäjäagentteja, jotka vastaavat testivaatimuksiasi. Työkalu tarjoaa yksinkertaisen käyttöliittymän, jossa on vaihtoehtoja kopioida luotu jono yhdellä napsautuksella ja luoda uusia satunnaisia jonoja välittömästi.
Käyttäjäagentin rakenne
Käyttäjäagenttijonot seuraavat tiettyjä kaavoja selaimen ja alustan mukaan, mutta ne sisältävät yleensä useita yhteisiä komponentteja:
- Selaimen tunniste: Yleensä alkaa "Mozilla/5.0" historiallisten yhteensopivuussyiden vuoksi
- Alustan/Käyttöjärjestelmän tiedot: Tietoja käyttöjärjestelmästä (Windows, macOS, Android, iOS)
- Selaimen moottori: Renderöintimoottori (kuten Gecko, WebKit tai Blink)
- Selaimen tiedot: Tietty selaimen nimi ja versio
Tässä on erittely tyypillisistä käyttäjäagentin rakenteista suurimmille selaimille:
Chrome
1Mozilla/5.0 (alusta; tiedot) AppleWebKit/537.36 (KHTML, kuten Gecko) Chrome/versio Safari/537.36
2
Firefox
1Mozilla/5.0 (alusta; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
2
Safari
1Mozilla/5.0 (alusta) AppleWebKit/webkitversion (KHTML, kuten Gecko) Versio/safariversio Safari/safariversio
2
Edge
1Mozilla/5.0 (alusta) AppleWebKit/537.36 (KHTML, kuten Gecko) Chrome/chromiumversion Safari/537.36 Edg/edgeversion
2
Alustasegmentti vaihtelee merkittävästi työpöytä- ja mobiililaitteiden välillä:
Työpöytäesimerkit:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Mobiiliesimerkit:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 like Mac OS X
Laitetyypin erot
Työpöytäkäyttäjäagentit
Työpöytäkäyttäjäagentit sisältävät tyypillisesti erityisiä käyttöjärjestelmätietoja, arkkitehtuuritietoja (kuten x86_64 tai Win64) ja joskus kielimieltymyksiä. Ne ovat yleensä johdonmukaisempia eri selaimissa kuin mobiilikäyttäjäagentit.
Mobiilikäyttäjäagentit
Mobiilikäyttäjäagentit sisältävät laitemallin tietoja, mobiilikäyttöjärjestelmän versioita ja usein sanan "Mobile" lopussa. Mobiili-Safari iOS-laitteilla sisältää "iPhone" tai "iPad" tunnisteita, kun taas Android-laitteet sisältävät valmistajan ja mallinumeron.
Selaimen versioiden kaavat
Jokainen selain seuraa erilaisia versiointikaavoja:
- Chrome: Käyttää neljän osan versionumeroita (esim. 96.0.4664.110)
- Firefox: Käyttää tyypillisesti kahta tai kolmea osaa versioita (esim. 95.0 tai 95.0.2)
- Safari: Käyttää yksinkertaisia versionumeroita, kuten 15.2
- Edge: Käyttää versionumeroita, jotka ovat samankaltaisia kuin Chromella, mutta omalla Edge-versionsa (esim. 96.0.1054.62)
Käyttötapaukset
Satunnaisen käyttäjäagentin luomisella on useita tärkeitä sovelluksia verkkokehityksessä ja testauksessa:
-
Ristiinselaustestauksen yhteensopivuus: Testaa, miten verkkosivustosi renderöityy ja toimii eri selaimissa ilman, että sinun tarvitsee asentaa useita selaimia tai käyttää useita laitteita.
-
Responsiivisen suunnittelun testaus: Varmista, että verkkosivustosi havaitsee oikein mobiili- ja työpöytälaitteet ja palvelee oikeaa asettelua.
-
Ominaisuuksien tunnistamisen vahvistaminen: Varmista, että verkkosivustosi ominaisuuksien tunnistamismekanismit toimivat oikein eri selainten kyvykkyyksille.
-
Laadunvarmistus ja automatisoitu testaus: Sisällytä erilaisia käyttäjäagentteja automatisoituihin testausohjelmiisi simuloidaksesi erilaisia käyttäjäympäristöjä.
-
Suorituskykytestaus: Analysoi, miten verkkosivustosi toimii eri selaimien ympäristöistä.
-
Selaimeen liittyvien ongelmien virheenkorjaus: Toista ja korjaa virheitä, jotka esiintyvät vain tietyissä selaimissa tai versioissa.
-
API-testauksen: Testaa, miten API:si käsittelee pyyntöjä eri asiakasohjelmista.
Vaihtoehdot
Vaikka satunnainen käyttäjäagenttigeneraattorimme on hyödyllinen monissa testausolosuhteissa, on olemassa vaihtoehtoisia lähestymistapoja:
-
Selaintestauspalvelut: Alustat kuten BrowserStack, Sauce Labs tai LambdaTest tarjoavat todellisia selaininstansseja testaamiseen sen sijaan, että vain simuloitaisiin käyttäjäagenttia.
-
Selaimen kehitystyökalut: Useimmat modernit selaimet sallivat käyttäjäagentin ohittamisen kehitystyökalujensa kautta, mikä voi olla hyödyllistä nopeissa testeissä.
-
Käyttäjäagentin vaihtajalaajennukset: Selaimen laajennukset, jotka sallivat sinun vaihtaa määriteltyjen käyttäjäagenttien välillä selaamisen aikana.
-
Virtuaalikoneet tai kontit: Eri käyttöjärjestelmien ja selainten todellisten instanssien ajaminen tarkimman testauksen saavuttamiseksi.
-
Päänäkymäselain testaus: Käytä työkaluja kuten Puppeteer tai Selenium ohjelmallisesti ohjaamaan selaimia eri käyttäjäagenttiasetuksilla.
Jokaisella vaihtoehdolla on omat etunsa, ja se voi olla sopivampi riippuen erityisistä testausvaatimuksistasi ja resursseistasi.
Historia
Käyttäjäagenttijonon käsite juontaa juurensa WWW:n varhaisiin päiviin. Termi "käyttäjäagentti" tulee HTTP-määrityksestä, jossa se viittaa asiakasohjelmaan, joka tekee pyynnön verkkopalvelimelle.
Varhaiset päivät (1990-luku)
Ensimmäinen laajasti käytetty selain, NCSA Mosaic, sisälsi yksinkertaisen käyttäjäagenttijonon, joka tunnisti selaimen nimen ja version. Kun Netscape Navigator julkaistiin, se käytti samanlaista formaattia. Kuitenkin, kun verkkopalvelimet alkoivat toimittaa eri sisältöä selaimen mukaan, syntyi käytäntö, jota kutsutaan "selaimen nuuskinnaksi".
Selaimen sodan ja käyttäjäagentin huijaaminen (1990-luvun loppu)
Netscape ja Internet Explorerin välisen selaimen sodan aikana verkkosivustot tarjoivat usein optimoitua sisältöä vain tietyille selaimille. Varmistaakseen yhteensopivuuden selaimet alkoivat sisällyttää merkkijonoja, jotka tunnistivat itsensä muiksi selaimiksi. Tämä on syy siihen, miksi useimmat modernit selaimet sisältävät edelleen "Mozilla" käyttäjäagenttijonoissaan, viittaus Netscape Navigatorin koodinimeen.
Mobiilivallankumous (2000-luku-2010-luku)
Mobiililaitteiden nousu toi lisää monimutkaisuutta käyttäjäagenttijonoihin. Mobiiliselainten tarvitsi tunnistaa itsensä mobiilina saadakseen sopivaa sisältöä, mikä johti laitemallin tietojen ja mobiilispecificien tokenien lisäämiseen.
Nykyiset haasteet (2010-luku-nykyhetki)
Kun verkkosovellusympäristö on kasvanut monimutkaiseksi, käyttäjäagenttijonot ovat tulleet yhä monimutkaisemmiksi. Ne sisältävät nyt viittauksia useisiin selaimen moottoreihin (kuten "AppleWebKit" ja "Gecko") yhteensopivuussyistä, vaikka näitä moottoreita ei oikeasti käytetä.
Tämä monimutkaisuus on johtanut haasteisiin käyttäjäagenttijonojen tarkassa analysoinnissa, ja jotkut verkkostandardiryhmät ovat ehdottaneet käyttäjäagenttijonojen de facto -deprecointia tai yksinkertaistamista rakenteellisten asiakashintojen hyväksi. Kuitenkin taaksepäin yhteensopivuussyistä perinteinen käyttäjäagenttijono pysyy olennaisena osana verkkoselausta.
Koodiesimerkit
Tässä on esimerkkejä siitä, miten työskennellä käyttäjäagenttijonojen kanssa eri ohjelmointikielissä:
1// JavaScript: Selaintyypin tunnistaminen käyttäjäagentista
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 "Tuntematon";
21 }
22}
23
24// Käyttö
25console.log("Käytät: " + detectBrowser());
26
1# Python: Mukautetun käyttäjäagentin asettaminen pyynnöissä
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# Esimerkin käyttö
12chrome_ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, kuten Gecko) Chrome/96.0.4664.110 Safari/537.36'
13content = fetch_with_user_agent('https://example.com', chrome_ua)
14print(content[:100]) # Tulosta ensimmäiset 100 merkkiä vastauksesta
15
1<?php
2// PHP: Mobiililaitteiden tunnistaminen käyttäjäagentin avulla
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// Käyttö
16if (isMobileDevice()) {
17 echo "Käytät mobiililaitetta.";
18} else {
19 echo "Käytät työpöytälaitetta.";
20}
21?>
22
1// Java: Satunnaisen käyttäjäagentin luominen
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, kuten 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: Käyttäjäagenttijonon analysointi
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# Esimerkin käyttö
18ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, kuten Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1'
19info = parse_user_agent(ua)
20puts info
21
1// C#: Käyttäjäagentin asettaminen HttpClientissä
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Luo HttpClient mukautetulla käyttäjäagentilla
11 using (var httpClient = new HttpClient())
12 {
13 string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, kuten Gecko) Chrome/96.0.4664.110 Safari/537.36";
14 httpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
15
16 try
17 {
18 // Tee pyyntö mukautetulla käyttäjäagentilla
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Vastaus saatu tilakoodilla: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Ensimmäiset 100 merkkiä
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Pyyntövirhe: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: HTTP-pyyntöjen luominen mukautetuilla käyttäjä agenteilla
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Luo uusi pyyntö
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Virhe pyynnön luomisessa: %s\n", err)
15 return
16 }
17
18 // Aseta mukautettu käyttäjäagentti
19 req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, kuten Gecko) Chrome/96.0.4664.110 Safari/537.36")
20
21 // Lähetä pyyntö
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Virhe pyynnön lähettämisessä: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Lue vastaus
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Virhe vastauksen lukemisessa: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Vastauksen tila: %s\n", resp.Status)
38 fmt.Printf("Vastauksen sisällön esikatselu: %s\n", body[:100])
39}
40
Yleiset käyttäjäagenttikaavat
Tässä on esimerkkejä todellisista käyttäjäagenttijonoista eri selaimille ja alustoille:
Työpöytäselaimet
Chrome Windowsilla:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, kuten Gecko) Chrome/96.0.4664.110 Safari/537.36
2
Firefox macOS:lla:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari macOS:lla:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, kuten Gecko) Versio/15.2 Safari/605.1.15
2
Edge Windowsilla:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, kuten Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62
2
Mobiiliselaimet
Chrome Androidilla:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, kuten Gecko) Chrome/96.0.4664.104 Mobile Safari/537.36
2
Safari iPhonella:
1Mozilla/5.0 (iPhone; CPU iPhone OS 15_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, kuten Gecko) Versio/15.2 Mobile/15E148 Safari/604.1
2
Firefox Androidilla:
1Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0
2
Samsung Internet Galaxylla:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, kuten Gecko) SamsungBrowser/16.0 Chrome/92.0.4515.166 Mobile Safari/537.36
2
Viitteet
-
"Käyttäjäagentti." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Selaimen käyttäjäagenttijonot." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"HTTP Käyttäjä-agenttiotsake selitetty." KeyCDN, https://www.keycdn.com/support/user-agent
-
"Asiakashinnat." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"Käyttäjäagenttijonon historia." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Selaimen tunnistaminen käyttäjäagentin avulla." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Palaute
Klikkaa palautetoastia aloittaaksesi palautteen antamisen tästä työkalusta
Liittyvät Työkalut
Löydä lisää työkaluja, jotka saattavat olla hyödyllisiä työnkulullesi