Web Geliştirme Testi için Rastgele Kullanıcı Aracısı Üretici
Cihaz türü, tarayıcı ailesi ve işletim sistemi filtreleme seçenekleri ile gerçekçi tarayıcı kullanıcı aracısı dizeleri oluşturun. Web geliştirme testi ve uyumluluk kontrolleri için mükemmel.
Rastgele Kullanıcı Aracı Oluşturucu
Web geliştirme testi için rastgele, gerçekçi tarayıcı kullanıcı aracı dizeleri oluşturun.
Oluşturulan Kullanıcı Aracı
Belgeler
Rastgele Kullanıcı Aracısı Üretici
Giriş
Bir Kullanıcı Aracısı dizesi, web tarayıcılarının ve diğer uygulamaların web sitelerine kendilerini tanıtmak için gönderdiği belirli bir metin tanımlayıcıdır. Bu dize genellikle kullanılan tarayıcı, işletim sistemi, cihaz türü ve render motoru hakkında bilgi içerir. Web geliştiricileri ve test uzmanları için, çeşitli gerçekçi kullanıcı aracısı dizelerine erişim, web sitesi uyumluluğunu, duyarlılığını ve farklı platformlardaki işlevselliğini test etmek için önemlidir.
Bu Rastgele Kullanıcı Aracısı Üretici aracı, seçtiğiniz parametrelere dayanarak gerçekçi görünen kullanıcı aracısı dizeleri oluşturur. Cihaz türüne (masaüstü veya mobil), tarayıcı ailesine (Chrome, Firefox, Safari veya Edge) ve işletim sistemine göre filtreleme yaparak test gereksinimlerinize uygun kullanıcı aracıları üretebilirsiniz. Araç, oluşturulan dizeyi tek tıklamayla kopyalama ve anında yeni rastgele dizeler oluşturma seçenekleriyle basit bir arayüz sunar.
Kullanıcı Aracısı Yapısı
Kullanıcı aracısı dizeleri, tarayıcı ve platforma bağlı olarak belirli kalıpları takip eder, ancak genellikle birkaç ortak bileşen içerir:
- Tarayıcı Tanımlayıcısı: Tarihsel uyumluluk nedenleriyle genellikle "Mozilla/5.0" ile başlar
- Platform/OS Bilgisi: İşletim sistemi hakkında detaylar (Windows, macOS, Android, iOS)
- Tarayıcı Motoru: Render motoru (Gecko, WebKit veya Blink gibi)
- Tarayıcı Detayları: Belirli tarayıcı adı ve versiyonu
İşte büyük tarayıcılar için tipik kullanıcı aracısı yapılarına bir bakış:
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
Platform bölümünün masaüstü ve mobil cihazlar arasında önemli ölçüde değiştiği durumlar vardır:
Masaüstü Örnekleri:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Mobil Örnekler:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 like Mac OS X
Cihaz Türü Farklılıkları
Masaüstü Kullanıcı Aracıları
Masaüstü kullanıcı aracıları genellikle belirli işletim sistemi bilgilerini, mimari detaylarını (x86_64 veya Win64 gibi) ve bazen dil tercihlerini içerir. Tarayıcılar arasında daha tutarlı olma eğilimindedirler.
Mobil Kullanıcı Aracıları
Mobil kullanıcı aracıları, cihaz modeli bilgilerini, mobil işletim sistemi sürümlerini içerir ve genellikle sonunda "Mobil" kelimesini bulundurur. iOS cihazlarındaki Mobil Safari, "iPhone" veya "iPad" tanımlayıcılarını içerecekken, Android cihazları üretici ve model numarasını içerir.
Tarayıcı Versiyon Kalıpları
Her tarayıcı farklı versiyonlama kalıplarını takip eder:
- Chrome: Dört parçalı versiyon numaraları kullanır (örneğin, 96.0.4664.110)
- Firefox: Genellikle iki veya üç parçalı versiyon numaraları kullanır (örneğin, 95.0 veya 95.0.2)
- Safari: 15.2 gibi basit versiyon numaraları kullanır
- Edge: Chrome'a benzer versiyon numaraları kullanır ancak kendi Edge versiyonunu içerir (örneğin, 96.0.1054.62)
Kullanım Senaryoları
Rastgele kullanıcı aracısı üretimi, web geliştirme ve testte birkaç önemli uygulamaya sahiptir:
-
Çapraz Tarayıcı Uyumluluk Testi: Web sitenizin farklı tarayıcılarda nasıl göründüğünü ve işlevselliğini test edin, birden fazla tarayıcıyı yüklemeye veya birden fazla cihaz kullanmaya gerek kalmadan.
-
Duyarlı Tasarım Testi: Web sitenizin mobil ve masaüstü cihazları doğru bir şekilde tespit ettiğinden ve uygun düzeni sunduğundan emin olun.
-
Özellik Tespiti Doğrulaması: Web sitenizin özellik tespit mekanizmalarının farklı tarayıcı yetenekleri için doğru çalıştığından emin olun.
-
QA ve Otomatik Test: Otomatik test betiklerinize farklı kullanıcı aracıları ekleyerek çeşitli kullanıcı ortamlarını simüle edin.
-
Performans Testi: Web sitenizin farklı tarayıcı ortamlarından erişildiğinde nasıl performans gösterdiğini analiz edin.
-
Tarayıcıya Özgü Hataları Ayıklama: Sadece belirli tarayıcılarda veya sürümlerde meydana gelen hataları yeniden üretin ve düzeltin.
-
API Testi: API'nizin farklı istemci uygulamalarından gelen istekleri nasıl işlediğini test edin.
Alternatifler
Rastgele kullanıcı aracısı üreticimiz birçok test senaryosu için faydalı olsa da, alternatif yaklaşımlar da vardır:
-
Tarayıcı Test Servisleri: BrowserStack, Sauce Labs veya LambdaTest gibi platformlar, sadece kullanıcı aracısını simüle etmek yerine test için gerçek tarayıcı örnekleri sunar.
-
Tarayıcı Geliştirici Araçları: Çoğu modern tarayıcı, geliştirici araçları aracılığıyla kullanıcı aracısını geçersiz kılmanıza izin verir, bu da hızlı testler için faydalı olabilir.
-
Kullanıcı Aracısı Değiştirici Uzantıları: Tarayıcıda gezinirken önceden tanımlanmış kullanıcı aracıları arasında geçiş yapmanıza olanak tanıyan tarayıcı uzantıları.
-
Sanal Makineler veya Konteynerler: Farklı işletim sistemleri ve tarayıcıların gerçek örneklerini çalıştırarak en doğru testi sağlama.
-
Başsız Tarayıcı Testi: Puppeteer veya Selenium gibi araçları kullanarak farklı kullanıcı aracısı ayarları ile tarayıcıları programlı olarak kontrol etme.
Her alternatifin kendi avantajları vardır ve belirli test ihtiyaçlarınıza ve kaynaklarınıza bağlı olarak daha uygun olabilir.
Tarihçe
Kullanıcı aracısı dizesi kavramı, Dünya Çapında Ağ'ın ilk günlerine kadar uzanır. "Kullanıcı aracısı" terimi, bir web sunucusuna istek yapan istemci uygulamasını tanımlamak için HTTP spesifikasyonundan gelir.
İlk Günler (1990'lar)
İlk yaygın olarak kullanılan tarayıcı olan NCSA Mosaic, tarayıcı adı ve versiyonunu tanımlayan basit bir kullanıcı aracısı dizesi içeriyordu. Netscape Navigator piyasaya sürüldüğünde, benzer bir format kullandı. Ancak, web sunucuları belirli tarayıcılara özel içerik sunmaya başladıkça, "tarayıcı sniffing" olarak bilinen bir uygulama ortaya çıktı.
Tarayıcı Savaşları ve Kullanıcı Aracısı Taklit Etme (1990'ların Sonları)
Netscape ve Internet Explorer arasındaki tarayıcı savaşları sırasında, web siteleri genellikle yalnızca belirli tarayıcılara optimize edilmiş içerikler sunuyordu. Uyumluluğu sağlamak için, tarayıcılar kendilerini diğer tarayıcılar olarak tanımlayan dizeler eklemeye başladılar. Bu nedenle, modern tarayıcıların çoğu hala kullanıcı aracısı dizelerinde "Mozilla" kelimesini içerir; bu, Netscape Navigator'ın kod adının bir referansıdır.
Mobil Devrim (2000'ler-2010'lar)
Mobil cihazların yükselişi, kullanıcı aracısı dizelerinde yeni karmaşıklıklar getirdi. Mobil tarayıcıların, uygun içerik almak için kendilerini mobil olarak tanımlamaları gerekiyordu; bu da cihaz tanımlayıcıları ve mobil özel belirteçlerin eklenmesine yol açtı.
Modern Zorluklar (2010'lar-Günümüz)
Web ekosistemi daha karmaşık hale geldikçe, kullanıcı aracısı dizeleri giderek daha karmaşık hale geldi. Artık birden fazla tarayıcı motoruna (örneğin "AppleWebKit" ve "Gecko") referanslar içeriyorlar; bu, uyumluluk nedenleriyle, o motorların gerçekten kullanılmadığı durumlarda bile.
Bu karmaşıklık, kullanıcı aracısı dizelerini doğru bir şekilde ayrıştırma konusunda zorluklara yol açtı ve bazı web standartları grupları, kullanıcı aracısı dizelerinin kullanımını azaltmayı veya basitleştirmeyi önermiştir. Ancak, geriye dönük uyumluluk nedenleriyle, geleneksel kullanıcı aracısı dizesi web tarayıcısının temel bir parçası olmaya devam etmektedir.
Kod Örnekleri
İşte farklı programlama dillerinde kullanıcı aracısı dizeleri ile nasıl çalışılacağına dair örnekler:
1// JavaScript: Kullanıcı aracısını tespit etme
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 Tarayıcı";
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 "Bilinmiyor";
21 }
22}
23
24// Kullanım
25console.log("Kullanıyorsunuz: " + detectBrowser());
26
1# Python: İsteklerde özel kullanıcı aracısı ayarlama
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# Örnek kullanım
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]) # Yanıtın ilk 100 karakterini yazdır
15
1<?php
2// PHP: Kullanıcı aracısını kullanarak mobil cihazları tespit etme
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// Kullanım
16if (isMobileDevice()) {
17 echo "Bir mobil cihaz kullanıyorsunuz.";
18} else {
19 echo "Bir masaüstü cihaz kullanıyorsunuz.";
20}
21?>
22
1// Java: Rastgele bir kullanıcı aracısı oluşturma
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: Kullanıcı aracısı dizesini ayrıştırma
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# Örnek kullanım
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#: HttpClient'te kullanıcı aracısını ayarlama
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Özel kullanıcı aracısı ile HttpClient oluştur
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 // Özel kullanıcı aracısı ile isteği yap
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Yanıt alınan durum kodu: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // İlk 100 karakter
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"İstek hatası: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: Özel kullanıcı aracıları ile HTTP istekleri oluşturma
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Yeni bir istek oluştur
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("İstek oluşturma hatası: %s\n", err)
15 return
16 }
17
18 // Özel kullanıcı aracısını ayarla
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 // İsteği gönder
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("İstek gönderme hatası: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Yanıtı oku
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Yanıt okuma hatası: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Yanıt durumu: %s\n", resp.Status)
38 fmt.Printf("Yanıt gövdesi önizlemesi: %s\n", body[:100])
39}
40
Yaygın Kullanıcı Aracısı Kalıpları
Farklı tarayıcılar ve platformlar için bazı gerçek kullanıcı aracısı dizeleri örnekleri:
Masaüstü Tarayıcılar
Windows'ta Chrome:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
2
macOS'ta Firefox:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
macOS'ta Safari:
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
Windows'ta Edge:
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
Mobil Tarayıcılar
Android'de Chrome:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.104 Mobile Safari/537.36
2
iPhone'da Safari:
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
Android'de Firefox:
1Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0
2
Galaxy'de Samsung İnterneti:
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
Referanslar
-
"Kullanıcı Aracısı." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Tarayıcı Kullanıcı Aracısı Dizeleri." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"HTTP Kullanıcı-Aracısı Başlığı Açıklandı." KeyCDN, https://www.keycdn.com/support/user-agent
-
"İstemci İpuçları." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"Kullanıcı aracısı dizesinin tarihi." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Kullanıcı aracısı kullanarak tarayıcı tespiti." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Geribildirim
Bu aracı hakkında geri bildirim vermeye başlamak için geri bildirim toast'una tıklayın
İlgili Araçlar
İş akışınız için faydalı olabilecek daha fazla aracı keşfedin