Luo realistisia selainkäyttäjäagenttijonoja vaihtoehdoilla suodattaa laitetyyppiä, selainperhettä ja käyttöjärjestelmää mukaan. Täydellinen verkkokehityksen testaamiseen ja yhteensopivuuden tarkistamiseen.
Luo satunnaisia, realistisia selaimen käyttäjäagenttijonoja verkkokehityksen testaamista varten.
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äagenttijonot seuraavat tiettyjä kaavoja selaimen ja alustan mukaan, mutta ne sisältävät yleensä useita yhteisiä komponentteja:
Tässä on erittely tyypillisistä käyttäjäagentin rakenteista suurimmille selaimille:
1Mozilla/5.0 (alusta; tiedot) AppleWebKit/537.36 (KHTML, kuten Gecko) Chrome/versio Safari/537.36
2
1Mozilla/5.0 (alusta; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
2
1Mozilla/5.0 (alusta) AppleWebKit/webkitversion (KHTML, kuten Gecko) Versio/safariversio Safari/safariversio
2
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 NT 10.0; Win64; x64
Macintosh; Intel Mac OS X 10_15_7
X11; Linux x86_64
Mobiiliesimerkit:
Linux; Android 12; SM-G998B
iPhone; CPU iPhone OS 15_4 like Mac OS X
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 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.
Jokainen selain seuraa erilaisia versiointikaavoja:
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.
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.
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.
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".
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.
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.
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.
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
Tässä on esimerkkejä todellisista käyttäjäagenttijonoista eri selaimille ja alustoille:
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
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
"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/
Löydä lisää työkaluja, jotka saattavat olla hyödyllisiä työnkulullesi