Izlases lietotāja aģenta ģenerators tīmekļa izstrādes testēšanai
Ģenerējiet reālistiskas pārlūkprogrammas lietotāja aģenta virknes ar iespējām filtrēt pēc ierīces veida, pārlūkprogrammas ģimenes un operētājsistēmas. Ideāli piemērots tīmekļa izstrādes testēšanai un saderības pārbaudēm.
Sakritīgu lietotāja aģentu ģenerators
Izveidojiet nejaušus, reālistiskus pārlūkprogrammas lietotāja aģenta virknes tīmekļa izstrādes testēšanai.
Izveidotais lietotāja aģents
Dokumentācija
Nejaušs lietotāja aģenta ģenerators
Ievads
Lietotāja aģenta virkne ir specifisks teksta identifikators, ko tīmekļa pārlūkprogrammas un citas lietojumprogrammas nosūta vietnēm, lai identificētu sevi. Šī virkne parasti satur informāciju par pārlūkprogrammu, operētājsistēmu, ierīces tipu un renderēšanas dzinēju, kas tiek izmantots. Tīmekļa izstrādātājiem un testētājiem piekļuve dažādām reālistiskām lietotāja aģenta virknēm ir būtiska, lai pārbaudītu vietnes saderību, reakcijas spēju un funkcionalitāti dažādās platformās.
Šis Nejaušs lietotāja aģenta ģenerators rīks rada autentiskas izskata lietotāja aģenta virknes, pamatojoties uz jūsu izvēlētajiem parametriem. Jūs varat filtrēt pēc ierīces tipa (datoru vai mobilo), pārlūkprogrammas ģimenes (Chrome, Firefox, Safari vai Edge) un operētājsistēmas, lai ģenerētu lietotāja aģentus, kas atbilst jūsu testēšanas prasībām. Rīks nodrošina vienkāršu saskarni ar iespējām kopēt ģenerēto virkni ar vienu klikšķi un nekavējoties ģenerēt jaunas nejaušas virknes.
Lietotāja aģenta struktūra
Lietotāja aģenta virknes seko specifiskām shēmām atkarībā no pārlūkprogrammas un platformas, taču tās parasti satur vairākus kopīgus komponentus:
- Pārlūkprogrammas identifikators: Parasti sākas ar "Mozilla/5.0" vēsturiski saderības iemeslu dēļ
- Platformas/OS informācija: Detalizēta informācija par operētājsistēmu (Windows, macOS, Android, iOS)
- Pārlūkprogrammas dzinējs: Renderēšanas dzinējs (piemēram, Gecko, WebKit vai Blink)
- Pārlūkprogrammas detaļas: Konkrētā pārlūkprogrammas nosaukums un versija
Šeit ir tipisku lietotāja aģenta struktūru sadalījums galvenajām pārlūkprogrammām:
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
Platformas sadaļa būtiski atšķiras starp datoru un mobilo ierīcēm:
Datoru piemēri:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Mobilo piemēri:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 like Mac OS X
Ierīces tipa atšķirības
Datoru lietotāja aģenti
Datoru lietotāja aģenti parasti ietver specifisku operētājsistēmas informāciju, arhitektūras detaļas (piemēram, x86_64 vai Win64) un dažreiz valodas preferences. Tie parasti ir konsekventāki starp pārlūkprogrammām nekā mobilo lietotāja aģenti.
Mobilo lietotāja aģenti
Mobilo lietotāja aģenti satur ierīces modeļa informāciju, mobilo operētājsistēmas versijas un bieži vien satur vārdu "Mobile" beigās. Mobilo Safari iOS ierīcēs iekļaus "iPhone" vai "iPad" identifikatorus, savukārt Android ierīces iekļauj ražotāja un modeļa numuru.
Pārlūkprogrammas versiju shēmas
Katra pārlūkprogramma seko dažādām versiju shēmām:
- Chrome: Izmanto četrdaļīgas versiju numurus (piemēram, 96.0.4664.110)
- Firefox: Parasti izmanto divu vai triju daļu versiju numurus (piemēram, 95.0 vai 95.0.2)
- Safari: Izmanto vienkāršus versiju numurus, piemēram, 15.2
- Edge: Izmanto versiju numurus, kas līdzīgi Chrome, bet ar savu Edge versiju (piemēram, 96.0.1054.62)
Lietošanas gadījumi
Nejaušas lietotāja aģenta ģenerēšanas ir vairāki svarīgi pielietojumi tīmekļa izstrādē un testēšanā:
-
Saderības testēšana starp pārlūkprogrammām: Pārbaudiet, kā jūsu vietne tiek attēlota un darbojas dažādās pārlūkprogrammās, neinstalējot vairākas pārlūkprogrammas vai neizmantojot vairākas ierīces.
-
Reakcijas dizaina testēšana: Pārliecinieties, ka jūsu vietne pareizi atpazīst mobilās un datoru ierīces un nodrošina atbilstošo izkārtojumu.
-
Funkciju noteikšanas validācija: Pārliecinieties, ka jūsu vietnes funkciju noteikšanas mehānismi darbojas pareizi dažādām pārlūkprogrammu iespējām.
-
Kvalitātes nodrošināšana un automatizētā testēšana: Iekļaujiet dažādus lietotāja aģentus savos automatizētās testēšanas skriptos, lai simulētu dažādas lietotāju vides.
-
Veiktspējas testēšana: Analizējiet, kā jūsu vietne darbojas, kad to apmeklē no dažādām pārlūkprogrammu vidēm.
-
Tīkla kļūdu novēršana: Reprodukcija un kļūdu labošana, kas rodas tikai konkrētās pārlūkprogrammās vai versijās.
-
API testēšana: Pārbaudiet, kā jūsu API apstrādā pieprasījumus no dažādām klientu lietojumprogrammām.
Alternatīvas
Lai gan mūsu nejaušā lietotāja aģenta ģenerators ir noderīgs daudziem testēšanas scenārijiem, ir arī alternatīvi pieejas:
-
Pārlūkprogrammu testēšanas pakalpojumi: Platformas, piemēram, BrowserStack, Sauce Labs vai LambdaTest, nodrošina faktiskas pārlūkprogrammas instances testēšanai, nevis tikai lietotāja aģenta simulēšanai.
-
Pārlūkprogrammu izstrādātāja rīki: Lielākā daļa mūsdienu pārlūkprogrammu ļauj jums pārspēt lietotāja aģentu caur saviem izstrādātāja rīkiem, kas var būt noderīgi ātriem testiem.
-
Lietotāja aģenta pārslēdzēja paplašinājumi: Pārlūkprogrammu paplašinājumi, kas ļauj jums pārslēgties starp iepriekš definētiem lietotāja aģentiem, pārlūkojot.
-
Virtuālās mašīnas vai konteineri: Faktisku dažādu operētājsistēmu un pārlūkprogrammu instance palaišana visprecīzākai testēšanai.
-
Bezgalvju pārlūkprogrammu testēšana: Izmantojot rīkus, piemēram, Puppeteer vai Selenium, lai programmatiskā veidā kontrolētu pārlūkprogrammas ar dažādiem lietotāja aģenta iestatījumiem.
Katrai alternatīvai ir savas priekšrocības un var būt piemērotāka atkarībā no jūsu konkrētajām testēšanas vajadzībām un resursiem.
Vēsture
Lietotāja aģenta virknes koncepts datējas ar agrīnajiem pasaules tīmekļa gadiem. Termins "lietotāja aģents" nāk no HTTP specifikācijas, kur tas attiecas uz klienta lietojumprogrammu, kas veic pieprasījumu uz tīmekļa serveri.
Agrīnie gadi (1990. gadi)
Pirmajā plaši izmantotajā pārlūkprogrammā, NCSA Mosaic, bija vienkārša lietotāja aģenta virkne, kas identificēja pārlūkprogrammas nosaukumu un versiju. Kad tika izlaista Netscape Navigator, tā izmantoja līdzīgu formātu. Tomēr, kad tīmekļa serveri sāka piegādāt atšķirīgu saturu, pamatojoties uz pārlūkprogrammu, radās prakse, ko sauc par "pārlūkprogrammu sniffing".
Pārlūkprogrammu kari un lietotāja aģenta viltošana (1990. gadu beigas)
Pārlūkprogrammu karu laikā starp Netscape un Internet Explorer vietnes bieži vien piegādāja optimizētu saturu tikai konkrētām pārlūkprogrammām. Lai nodrošinātu saderību, pārlūkprogrammas sāka iekļaut virknes, kas identificēja sevi kā citas pārlūkprogrammas. Tāpēc lielākā daļa mūsdienu pārlūkprogrammu joprojām iekļauj "Mozilla" savās lietotāja aģenta virknes, atsaucoties uz Netscape Navigator koda nosaukumu.
Mobilo revolūcija (2000. gadi - 2010. gadi)
Mobilo ierīču pieaugums ieviesa jaunu sarežģītību lietotāja aģenta virknes. Mobilās pārlūkprogrammas bija jāidentificē kā mobilās, lai saņemtu atbilstošu saturu, kas noveda pie ierīces identifikatoru un mobilo specifisku simbolu pievienošanas.
Mūsdienu izaicinājumi (2010. gadi - pašreiz)
Tā kā tīmekļa ekosistēma ir kļuvusi sarežģītāka, lietotāja aģenta virknes ir kļuvušas arvien sarežģītākas. Tās tagad satur atsauces uz vairākiem pārlūkprogrammu dzinējiem (piemēram, "AppleWebKit" un "Gecko") saderības iemeslu dēļ, pat ja šie dzinēji faktiski netiek izmantoti.
Šī sarežģītība ir radījusi izaicinājumus precīzai lietotāja aģenta virkņu parsēšanai, un dažas tīmekļa standartu grupas ir ierosinājušas atteikties no vai vienkāršot lietotāja aģenta virknes, dodot priekšroku strukturētākiem klientu padomiem. Tomēr vēsturiskās saderības iemeslu dēļ tradicionālā lietotāja aģenta virkne joprojām ir būtiska tīmekļa pārlūkošanai.
Koda piemēri
Šeit ir piemēri, kā strādāt ar lietotāja aģenta virkņu dažādās programmēšanas valodās:
1// JavaScript: Pārlūkprogrammas tipa noteikšana no lietotāja aģenta
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// Lietošana
25console.log("Jūs izmantojat: " + detectBrowser());
26
1# Python: Iestatot pielāgotu lietotāja aģentu pieprasījumos
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# Piemēra lietošana
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]) # Izdrukāt pirmos 100 rakstzīmes no atbildes
15
1<?php
2// PHP: Mobilās ierīces noteikšana, izmantojot lietotāja aģentu
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// Lietošana
16if (isMobileDevice()) {
17 echo "Jūs izmantojat mobilo ierīci.";
18} else {
19 echo "Jūs izmantojat datoru ierīci.";
20}
21?>
22
1// Java: Nejauša lietotāja aģenta ģenerēšana
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: Lietotāja aģenta virknes parsēšana
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# Piemēra lietošana
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#: Lietotāja aģenta iestatīšana HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Izveido HttpClient ar pielāgotu lietotāja aģentu
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 // Veic pieprasījumu ar pielāgotu lietotāja aģentu
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Saņemta atbilde ar statusa kodu: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Pirmās 100 rakstzīmes
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Pieprasījuma kļūda: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: HTTP pieprasījumu izveidošana ar pielāgotām lietotāja aģentēm
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Izveido jaunu pieprasījumu
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Kļūda pieprasījuma izveidē: %s\n", err)
15 return
16 }
17
18 // Iestata pielāgotu lietotāja aģentu
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 // Nosūta pieprasījumu
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Kļūda pieprasījuma sūtīšanā: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Lasīt atbildi
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Kļūda atbildes lasīšanā: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Atbildes statuss: %s\n", resp.Status)
38 fmt.Printf("Atbildes satura priekšskatījums: %s\n", body[:100])
39}
40
Bieži lietotāja aģenta shēmas
Šeit ir daži reāli lietotāja aģenta virkņu piemēri dažādām pārlūkprogrammām un platformām:
Datoru pārlūkprogrammas
Chrome uz 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 uz macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari uz 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 uz 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
Mobilo pārlūkprogrammas
Chrome uz 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 uz 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 uz Android:
1Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0
2
Samsung Internet uz 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
Atsauces
-
"Lietotāja aģents." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Pārlūkprogrammas lietotāja aģenta virknes." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"HTTP lietotāja aģenta galvenes skaidrojums." KeyCDN, https://www.keycdn.com/support/user-agent
-
"Klienta padomi." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"Lietotāja aģenta virknes vēsture." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Pārlūkprogrammas noteikšana, izmantojot lietotāja aģentu." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Atsauksmes
Noklikšķiniet uz atsauksmju tosta, lai sāktu sniegt atsauksmes par šo rīku
Saistītie Rīki
Atklājiet vairāk rīku, kas varētu būt noderīgi jūsu darbplūsmai