Kizazi cha Watumiaji wa Kijamii kwa Majaribio ya Maendeleo ya Mtandao
Zalisha mistari halisi ya watumiaji wa kivinjari na chaguzi za kuchuja kulingana na aina ya kifaa, familia ya kivinjari, na mfumo wa uendeshaji. Inafaa kwa majaribio ya maendeleo ya mtandao na ukaguzi wa ulinganifu.
Kizalishaji cha Wakala wa Mtumiaji wa Nasibu
Zalisha mistari ya wakala wa mtumiaji wa kivinjari ya nasibu na halisi kwa ajili ya majaribio ya maendeleo ya wavuti.
Kizalishaji cha Wakala wa Mtumiaji
Hati
Generator ya Watumiaji wa Nasibu
Utangulizi
Mfuatiliaji wa Watumiaji ni kitambulisho maalum cha maandiko ambacho vivinjari vya wavuti na programu nyingine hutuma kwa tovuti ili kujitambulisha. Maandiko haya kwa kawaida yana habari kuhusu kivinjari, mfumo wa uendeshaji, aina ya kifaa, na injini ya uwasilishaji inayotumika. Kwa wabunifu wa wavuti na wapimaji, kuwa na ufikiaji wa aina mbalimbali za maandiko ya mfuatiliaji wa watumiaji ni muhimu kwa ajili ya kupima ulinganifu wa tovuti, majibu, na kazi katika majukwaa tofauti.
Zana hii ya Generator ya Watumiaji wa Nasibu inaunda maandiko ya mfuatiliaji wa watumiaji yanayoonekana halisi kulingana na vigezo ulivyoteua. Unaweza kuchuja kwa aina ya kifaa (kompyuta au simu), familia ya kivinjari (Chrome, Firefox, Safari, au Edge), na mfumo wa uendeshaji ili kuunda mfuatiliaji wa watumiaji unaolingana na mahitaji yako ya upimaji. Zana inatoa kiolesura rahisi chenye chaguzi za nakala maandiko yaliyoandikwa kwa kubofya moja na kuunda maandiko mapya ya nasibu mara moja.
Muundo wa Mfuatiliaji wa Watumiaji
Maandiko ya mfuatiliaji wa watumiaji yanafuata mifumo maalum kulingana na kivinjari na jukwaa, lakini kwa ujumla yana sehemu kadhaa za kawaida:
- Kitambulisho cha Kivinjari: Kawaida huanza na "Mozilla/5.0" kwa sababu za ulinganifu wa kihistoria
- Habari za Jukwaa/OS: Maelezo kuhusu mfumo wa uendeshaji (Windows, macOS, Android, iOS)
- Injini ya Kivinjari: Injini ya uwasilishaji (kama Gecko, WebKit, au Blink)
- Maelezo ya Kivinjari: Jina maalum la kivinjari na toleo
Hapa kuna ufafanuzi wa muundo wa kawaida wa mfuatiliaji wa watumiaji kwa vivinjari vikuu:
Chrome
1Mozilla/5.0 (jukwaa; maelezo) AppleWebKit/537.36 (KHTML, kama Gecko) Chrome/toleo Safari/537.36
2
Firefox
1Mozilla/5.0 (jukwaa; rv:geckoversion) Gecko/geckotrail Firefox/toleo la firefox
2
Safari
1Mozilla/5.0 (jukwaa) AppleWebKit/webkitversion (KHTML, kama Gecko) Toleo/safariversion Safari/safariversion
2
Edge
1Mozilla/5.0 (jukwaa) AppleWebKit/537.36 (KHTML, kama Gecko) Chrome/chromiumversion Safari/537.36 Edg/toleo la edge
2
Sehemu ya jukwaa inatofautiana sana kati ya vifaa vya mezani na simu:
Mifano ya Mezani:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Mifano ya Simu:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 kama Mac OS X
Tofauti za Aina ya Kifaa
Mfuatiliaji wa Watumiaji wa Mezani
Mfuatiliaji wa watumiaji wa mezani kwa kawaida unajumuisha habari maalum za mfumo wa uendeshaji, maelezo ya usanidi (kama x86_64 au Win64), na wakati mwingine mapendeleo ya lugha. Wanakuwa na uthabiti zaidi kati ya vivinjari kuliko mfuatiliaji wa watumiaji wa simu.
Mfuatiliaji wa Watumiaji wa Simu
Mfuatiliaji wa watumiaji wa simu unajumuisha habari za mfano wa kifaa, matoleo ya mifumo ya uendeshaji ya simu, na mara nyingi hujumuisha neno "Simu" mwishoni. Safari ya simu kwenye vifaa vya iOS itajumuisha vitambulisho vya "iPhone" au "iPad", wakati vifaa vya Android vinajumuisha mtengenezaji na nambari ya mfano.
Mifumo ya Toleo la Kivinjari
Kila kivinjari kinafuata mifumo tofauti ya toleo:
- Chrome: Inatumia nambari za toleo za sehemu nne (mfano, 96.0.4664.110)
- Firefox: Kawaida hutumia nambari za sehemu mbili au tatu (mfano, 95.0 au 95.0.2)
- Safari: Inatumia nambari rahisi kama 15.2
- Edge: Inatumia nambari za toleo zinazofanana na Chrome lakini kwa toleo lake la Edge (mfano, 96.0.1054.62)
Matumizi
Uundaji wa mfuatiliaji wa watumiaji wa nasibu una matumizi kadhaa muhimu katika maendeleo ya wavuti na upimaji:
-
Upimaji wa Ulinganifu wa Vivinjari: Pima jinsi tovuti yako inavyopangwa na inavyofanya kazi katika vivinjari tofauti bila ya kuhitaji kufunga vivinjari vingi au kutumia vifaa vingi.
-
Upimaji wa Ubunifu wa Majibu: Hakikisha kwamba tovuti yako inatambua vifaa vya simu na mezani na inatoa muonekano unaofaa.
-
Uthibitishaji wa Ugunduzi wa Kipengele: Hakikisha kwamba mifumo yako ya ugunduzi wa kipengele inafanya kazi ipasavyo kwa uwezo wa vivinjari tofauti.
-
QA na Upimaji wa Otomatiki: Jumuisha mfuatiliaji wa watumiaji tofauti katika skripti zako za upimaji wa otomatiki ili kuiga mazingira mbalimbali ya watumiaji.
-
Upimaji wa Utendaji: Changanua jinsi tovuti yako inavyofanya kazi wakati inaccess kutoka kwa mazingira tofauti ya vivinjari.
-
Kutatua Masuala ya Kivinjari Maalum: Reproduce na kurekebisha makosa ambayo yanatokea tu katika vivinjari au matoleo maalum.
-
Upimaji wa API: Pima jinsi API yako inavyoshughulikia maombi kutoka kwa programu mbalimbali za mteja.
Mbadala
Ingawa generator yetu ya mfuatiliaji wa watumiaji wa nasibu ni muhimu kwa hali nyingi za upimaji, kuna njia mbadala:
-
Huduma za Upimaji wa Vivinjari: Majukwaa kama BrowserStack, Sauce Labs, au LambdaTest hutoa mifano halisi ya vivinjari kwa ajili ya upimaji badala ya kuiga tu mfuatiliaji wa watumiaji.
-
Zana za Wataalamu wa Vivinjari: Vivinjari vingi vya kisasa vinakuruhusu kubadilisha mfuatiliaji wa watumiaji kupitia zana zao za wataalamu, ambayo inaweza kuwa muhimu kwa majaribio ya haraka.
-
Kupanua Mfuatiliaji wa Watumiaji: Kupanua vivinjari ambavyo vinakuruhusu kubadilisha kati ya mfuatiliaji wa watumiaji waliowekwa awali wakati wa kuvinjari.
-
Mashine za Kijamii au Kontena: Kuendesha mifano halisi ya mifumo tofauti ya uendeshaji na vivinjari kwa ajili ya upimaji sahihi zaidi.
-
Upimaji wa Kivinjari Kisicho na Kichwa: Kutumia zana kama Puppeteer au Selenium kudhibiti vivinjari kwa njia ya programu na mipangilio tofauti ya mfuatiliaji wa watumiaji.
Kila mbadala ina faida zake na inaweza kuwa bora zaidi kulingana na mahitaji yako maalum ya upimaji na rasilimali.
Historia
Wazo la mfuatiliaji wa watumiaji linarejelea nyuma katika siku za awali za Mtandao wa Ulimwengu. Neno "mfuatiliaji wa watumiaji" linatoka kwenye spesifikesheni ya HTTP, ambapo linarejelea programu ya mteja inayofanya ombi kwa seva ya wavuti.
Siku za Mapema (1990s)
Vivinjari vya kwanza vilivyotumika sana, NCSA Mosaic, vilijumuisha mfuatiliaji wa watumiaji rahisi ambao ulitambulisha jina la kivinjari na toleo. Wakati Netscape Navigator ilipotolewa, ilitumia muundo unaofanana. Hata hivyo, kadri seva za wavuti zilivyoanza kutoa maudhui tofauti kulingana na kivinjari, mbinu inayojulikana kama "kuangalia kivinjari" ilianza kuibuka.
Vita vya Vivinjari na Uongozi wa Mfuatiliaji wa Watumiaji (Mwishoni mwa 1990s)
Wakati wa vita vya vivinjari kati ya Netscape na Internet Explorer, tovuti mara nyingi zilitumikia maudhui yaliyoandaliwa maalum kwa vivinjari fulani. Ili kuhakikisha ulinganifu, vivinjari vilianza kujumuisha maandiko ambayo yalijitambulisha kama vivinjari vingine. Hii ndiyo sababu vivinjari vingi vya kisasa bado vinajumuisha "Mozilla" katika maandiko yao ya mfuatiliaji wa watumiaji, rejeleo kwa jina la msimbo wa Netscape Navigator.
Mapinduzi ya Simu (2000s-2010s)
Kuibuka kwa vifaa vya simu kulileta changamoto mpya kwa maandiko ya mfuatiliaji wa watumiaji. Vivinjari vya simu vilihitaji kujitambulisha kama simu ili kupokea maudhui yanayofaa, na kusababisha kuongeza vitambulisho vya kifaa na alama maalum za simu.
Changamoto za Kisasa (2010s-Hadi Sasa)
Kadri mfumo wa wavuti umeendelea kuwa mgumu, maandiko ya mfuatiliaji wa watumiaji yamekuwa magumu zaidi. Sasa yana viwango vya marejeleo kwa injini nyingi za vivinjari (kama "AppleWebKit" na "Gecko") kwa sababu za ulinganifu, hata wakati injini hizo hazitumiki.
Ugumu huu umesababisha changamoto katika kuchambua kwa usahihi maandiko ya mfuatiliaji wa watumiaji, na baadhi ya vikundi vya viwango vya wavuti vimependekeza kuondoa au kurahisisha maandiko ya mfuatiliaji wa watumiaji kwa ajili ya vihashiri vya wateja vilivyojumuishwa zaidi. Hata hivyo, kwa sababu za ulinganifu wa nyuma, maandiko ya mfuatiliaji wa watumiaji ya jadi yanabaki kuwa sehemu muhimu ya kuvinjari wavuti.
Mifano ya Nambari
Hapa kuna mifano ya jinsi ya kufanya kazi na maandiko ya mfuatiliaji wa watumiaji katika lugha mbalimbali za programu:
1// JavaScript: Kutambua aina ya kivinjari kutoka kwa mfuatiliaji wa watumiaji
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 "Jina Halijulikani";
21 }
22}
23
24// Matumizi
25console.log("Unatumia: " + detectBrowser());
26
1# Python: Kuweka mfuatiliaji wa watumiaji maalum katika maombi
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# Mfano wa matumizi
12chrome_ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, kama Gecko) Chrome/96.0.4664.110 Safari/537.36'
13content = fetch_with_user_agent('https://example.com', chrome_ua)
14print(content[:100]) # Chapisha herufi 100 za kwanza za majibu
15
1<?php
2// PHP: Kutambua vifaa vya simu kwa kutumia mfuatiliaji wa watumiaji
3function isMobileDevice() {
4 $userAgent = $_SERVER['HTTP_USER_AGENT'];
5 $mobileKeywords = array('Simu', '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// Matumizi
16if (isMobileDevice()) {
17 echo "Unatumia kifaa cha simu.";
18} else {
19 echo "Unatumia kifaa cha mezani.";
20}
21?>
22
1// Java: Kuunda mfuatiliaji wa watumiaji wa nasibu
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, kama 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: Kuchambua mfuatiliaji wa watumiaji
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# Mfano wa matumizi
18ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 kama Mac OS X) AppleWebKit/605.1.15 (KHTML, kama Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1'
19info = parse_user_agent(ua)
20puts info
21
1// C#: Kuweka mfuatiliaji wa watumiaji katika HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Kuunda HttpClient na mfuatiliaji wa watumiaji maalum
11 using (var httpClient = new HttpClient())
12 {
13 string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, kama Gecko) Chrome/96.0.4664.110 Safari/537.36";
14 httpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
15
16 try
17 {
18 // Fanya ombi na mfuatiliaji wa watumiaji maalum
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Majibu yamepokelewa na msimbo wa hali: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Herufi 100 za kwanza
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Kosa la ombi: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: Kuunda maombi ya HTTP na mfuatiliaji wa watumiaji maalum
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Kuunda ombi jipya
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Kosa la kuunda ombi: %s\n", err)
15 return
16 }
17
18 // Kuweka mfuatiliaji wa watumiaji maalum
19 req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, kama Gecko) Chrome/96.0.4664.110 Safari/537.36")
20
21 // Tuma ombi
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Kosa la kutuma ombi: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Soma majibu
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Kosa la kusoma majibu: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Hali ya majibu: %s\n", resp.Status)
38 fmt.Printf("Muonekano wa mwili wa majibu: %s\n", body[:100])
39}
40
Mifano ya Mifumo ya Mfuatiliaji wa Watumiaji
Hapa kuna mifano ya halisi ya maandiko ya mfuatiliaji wa watumiaji kwa vivinjari na majukwaa tofauti:
Vivinjari vya Mezani
Chrome kwenye Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, kama Gecko) Chrome/96.0.4664.110 Safari/537.36
2
Firefox kwenye macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari kwenye macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, kama Gecko) Toleo/15.2 Safari/605.1.15
2
Edge kwenye Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, kama Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62
2
Vivinjari vya Simu
Chrome kwenye Android:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, kama Gecko) Chrome/96.0.4664.104 Simu Safari/537.36
2
Safari kwenye iPhone:
1Mozilla/5.0 (iPhone; CPU iPhone OS 15_2 kama Mac OS X) AppleWebKit/605.1.15 (KHTML, kama Gecko) Toleo/15.2 Simu/15E148 Safari/604.1
2
Firefox kwenye Android:
1Mozilla/5.0 (Android 12; Simu; rv:95.0) Gecko/95.0 Firefox/95.0
2
Samsung Internet kwenye Galaxy:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, kama Gecko) SamsungBrowser/16.0 Chrome/92.0.4515.166 Simu Safari/537.36
2
Marejeleo
-
"Mfuatiliaji wa Watumiaji." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Maandiko ya Mfuatiliaji wa Watumiaji wa Vivinjari." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"Mfuatiliaji wa HTTP User-Agent." KeyCDN, https://www.keycdn.com/support/user-agent
-
"Vihashiri vya Wateja." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"Historia ya mfuatiliaji wa watumiaji wa kivinjari." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Kutambua Kivinjari kwa Kutumia Mfuatiliaji wa Watumiaji." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Maoni
Bonyeza toast ya maoni kuanza kutoa maoni kuhusu zana hii
Zana Zinazohusiana
Gundua zana zaidi ambazo zinaweza kuwa na manufaa kwa mtiririko wako wa kazi