FOR MOBILE TESTING nodetonet.com
Use case Mobile testing QA

Mobil uygulama testi için Nodetonet — gerçek operatör IP'leri, gerçek cihaz DNS'i, gerçek test koşulları

Uygulamanı gerçek Vodafone, Türk Telekom ve T-Mobile operatör IP'lerinde test et. CGNAT, gerçek DNS ve geo-IP kısıtlamalarını iOS simülatörü hiçbir zaman yeniden üretemez.

N Nodetonet Team
15 Mayıs 2026 8 dk okuma

Çoğu mobil uygulama hatası kodundaki bir hata değildir. Sadece gerçek bir hücresel ağda ortaya çıkan hatalardır: uzun-polling bağlantısını kesen bir Vodafone CGNAT zaman aşımı, SDK çağrılarını sessizce yeniden yazan bir Türk Telekom DNS interceptor'ı, TLS handshake'ini oturum ortasında parçalayan bir T-Mobile MTU clamp'i ya da backend GPS yerine çıkış IP'sine baktığı için simülatörün "Konum Ayarla" menüsünün asla tetikleyemediği geo-fenced bir özellik.

Uygulamanı gönderdiğin her ülkede SIM alabilirsin — pahalı, yavaş ve otomatikleştirilmesi imkânsız. Ya da bir Android telefonu Nodetonet ile eşleştirip dev laptop'unu ona SOCKS5 çıkışı olarak yönlendirebilir ve tüm test suite'ini gerçek Türk Telekom IP'lerinden çıkacak şekilde kod yazdığın masadan çalıştırabilirsin. Bu sayfa tam olarak bunu anlatıyor.

iOS simülatörü neden gerçek bir operatör bağlantısının yerini tutamaz

Üç hata sınıfı simülatörlerde ve staging ortamlarında sistematik olarak görünmez:

Aşağıdaki tablo her test ortamının neyi yakalayıp neyi yakalayamadığını özetler:

Test ortamı Geo-IP kısıtlaması Operatör DNS / MTU İçerik filtreleri Gerçek CGNAT Otomasyona uygun
iOS / Android simülatörü Hayır Hayır Hayır Hayır Evet
Ofis Wi-Fi'ında fiziksel cihaz Hayır Hayır Hayır Hayır Kısmi
Yerel operatör SIM'iyle fiziksel cihaz Yalnız yerel operatör Yalnız yerel operatör Yalnız yerel operatör Evet (yerel) Zor
Nodetonet mobil proxy (SOCKS5) Evet — herhangi bir operatör Evet — DNS telefon üzerinden Evet — gerçek egress Evet Evet — betiklenebilir

Nodetonet bir mobil QA iş akışına nasıl giriyor

Bir Android telefonu Nodetonet ajanı ile eşleştiriyorsun. Telefon, gerçek bir hücresel SIM'de adlandırılmış, kontrol edilebilir bir çıkış oluyor. Dev laptop'undan o cihaza bağlı bir SOCKS5 proxy oluşturuyorsun: localhost:1080'e gönderdiğin her şey phone-istanbul-vodafone-01 üzerinden çıkıyor. curl'ün, Postman koleksiyonun, CI entegrasyon testlerin, yerel bir DNS'e yönlenen iOS simülatörün — hepsi dünyaya Türk bir Vodafone abonesi gibi görünüyor.

Kritik detay: SOCKS5 kullandığında DNS de telefon üzerinden çözülüyor. Türk Telekom'un şeffaf resolver'ı api.yourapp.com'u yeniden yazıyorsa test koşucun gerçek kullanıcılarının gördüğünün aynısını görüyor. Bu bir HTTP proxy'nin sağlayabileceği bir şey değil — HTTP proxy'ler DNS'i telefon ağında değil, proxy sunucusunda çözüyor. Sadık ağ-katmanı simülasyonu için SOCKS5 doğru seçimdir.

Tek bir çıkışla sınırlı değilsin. Token grupları ile birkaç telefonu havuzlayabilirsin — bir Vodafone TR, bir Turkcell TR, bir T-Mobile DE — ve CI pipeline'ının her birine sırayla vurmasını sağlayabilirsin. Bir cihaz çevrimdışı olursa failover kuralı test suite değişikliği gerektirmeksizin otomatik olarak bir sonrakini devreye alır. Kurulum için mobil proxy'ler için otomatik failover'a bak.

Proxy kullanıcı adında belirli bir operatör veya şehri hedeflemek mi istiyorsun? Geo-hedefleme modifier sistemi uç noktayı değiştirmeden -country-tr, -carrier-vodafone veya -city-istanbul eklemenize olanak tanır. Spesifik operatör ağları hakkında daha fazla bilgi: Vodafone TR, Türk Telekom, Turkcell.

Adım adım kurulum (5 adım)

  1. Hesap oluştur. /auth/register'a kaydol ve küçük bir peşin kredi bakiyesi ekle — birkaç dolar haftalarca QA kullanımını karşılar.
  2. Telefona ajanı yükle. Android ajanı /download'dan indir ve bir token ile eşleştir. Telefonu test etmek istediğin operatörde tut: Vodafone TR, T-Mobile DE, EE UK vb. Rehberli bir kurulum için ilk token ve Android eşleştirme'ye bak.
  3. Çıkış başına token oluştur. Tokens sayfasında her telefon için açıklayıcı bir isimle token oluştur (phone-vf-tr-01, phone-tm-de-02). Test harness'inin referans vereceği tanımlayıcı bu olacak.
  4. Her token için SOCKS5 proxy oluştur. Proxies sayfasında her token'a bağlı bir SOCKS5 proxy oluştur. HTTP değil SOCKS5 — böylece DNS telefon üzerinden çözülür. Proxy-başı kimlik doğrulama (kullanıcı adı ve şifre) ekle ve isteğe bağlı olarak yalnızca CI koşucunun bağlanabilmesi için bir IP allowlist ekle. Seçenekler için kimlik doğrulamalı SOCKS5 rehberine bak.
  5. Test koşucunu proxy'ye yönlendir. iOS simülatörü: Sistem Ayarları → Ağ → Wi-Fi'ın → Detaylar → Proxy'ler → SOCKS Proxy. Android emülatörü: başlatırken -http-proxy flag'i (emulator -http-proxy socks5://… şeklinde). Headless betikler: ALL_PROXY ortam değişkenini ayarla veya proxy URL'ini doğrudan HTTP istemci kütüphanenize geçir.

CI'da çok-operatör regresyonunu otomatikleştirme

Gerçek getiri, entegrasyon test suite'ini operatör başına bir döngüye sarıp CI pipeline'ına bağladığında geliyor. Aşağıdaki betik testleri her bölgesel çıkış üzerinden sırayla çalıştırır ve operatör başına bir JUnit raporu yazar — böylece dashboard'un ağ başına geçti/kaldı gösterir:

#!/bin/bash
# Eşleştirdiğimiz her bölgesel çıkış üzerinden entegrasyon testleri çalıştır.
# Her EXIT, Nodetonet panelinde oluşturulan bir SOCKS5 proxy URL'idir.

EXITS=(
  "tr-vodafone|socks5://tok_vf_tr:secret@panel.nodetonet.com:11080"
  "de-tmobile|socks5://tok_tm_de:secret@panel.nodetonet.com:11081"
  "uk-ee|socks5://tok_ee_uk:secret@panel.nodetonet.com:11082"
)

for entry in "${EXITS[@]}"; do
  name="${entry%%|*}"
  proxy="${entry##*|}"
  echo "${name} uzerinde test ediliyor: ${proxy}"
  ALL_PROXY="${proxy}" npm run test:integration -- --reporter junit > "results-${name}.xml"
done

Bunu her pull request'te tetiklenen bir GitHub Action'a ekle ve kod yazdığın yerden sıfır manuel çaba ile operatör başına regresyon kapsaman olsun. Operatöre özgü bir hata çıktığında, başarısız test raporu tam olarak hangi ağın bozulduğunu ve hangisinin çalışmaya devam ettiğini gösterir. Koddan birçok proxy'yi yönetme hakkında daha fazla bilgi için proxy'leri toplu yönetme ve ilk REST API çağrın'a bak.

QA ortamları için proxy başına kontroller

Nodetonet her proxy'ye kendi erişim kontrollerini verir; bu, bir QA filosunu takım genelinde paylaşırken kullanışlıdır:

Her çıkışın canlı olduğunu ve uzun bir test koşusu başlatmadan önce beklediğin operatör IP'sini döndürdüğünü doğrulamak için ücretsiz proxy checker'ımızı kullanabilirsin.

Bu yaklaşımın uygun olmadığı durumlar

Başlayın

Ücretsiz hesap oluştur, bir telefon eşleştir ve simülatörünü ona yönlendir. Çoğu takım ilk saat içinde ilk operatöre özgü hatasını bulur. Mobil proxy'lerin neler yapabileceğine dair daha geniş bir bakış için mobil proxy nedir'i oku ya da tüm özellikleri keşfet. Sorularınız için Discord veya e-posta ile bize ulaşın.

Sıkça sorulan sorular

SOCKS5 tüneli DNS'i de telefon üzerinden yönlendirir mi, yoksa sadece HTTP trafiği mi?
SOCKS5 DNS'i telefon üzerinden yönlendirir — mobil QA için SOCKS5'i HTTP'ye tercih etmemizin tüm sebebi bu. Operatör tarafındaki DNS yeniden yazımları, captive portal'lar ve içerik filtreleri dahil gerçek kullanıcılarının gördüğü DNS çözümlemesinin aynısını görürsün. HTTP proxy ise DNS'i telefon ağında değil, proxy sunucusunda çözer.
macOS'taki iOS simülatörü bir Nodetonet SOCKS5 proxy'si kullanabilir mi?
Evet. SOCKS5 proxy'yi macOS ağ seviyesinde ayarla (Sistem Ayarları → Ağ → Wi-Fi'ın → Detaylar → Proxy'ler → SOCKS Proxy). iOS simülatörü host makinenin proxy ayarlarını miras alır. Xcode UI test koşuları için aynı yapılandırmayı komut satırından simctl aracılığıyla da enjekte edebilirsin.
Nodetonet ajanını çalıştıran Android telefonu root'lamak gerekiyor mu?
Hayır. Ajan normal bir ön plan servisi olarak çalışır ve trafiği root erişimi veya özel ROM olmadan yakalamak için Android'in VPNService API'sini kullanır. Stok Pixel, Samsung One UI, Xiaomi MIUI ve Android 11'den itibaren stok AOSP derlemelerinde test ediyoruz.
Birden fazla operatörde testleri otomatik olarak nasıl çalıştırırım?
Cihaz başına bir SOCKS5 proxy oluştur (her biri farklı bir telefona bağlı), sonra test koşucu betiğinde proxy URL'leri üzerinde döngüye gir. Bu sayfadaki shell örneği kalıbı gösteriyor: ALL_PROXY'yi sırayla her proxy URL'ine ayarla, test suite'ini çalıştır ve operatör başına bir JUnit raporu topla. Betiği GitHub Actions, Jenkins veya herhangi bir CI aracına bağla ve her commit'te otomatik operatör-bazlı regresyon elde et.
Uygulamam sertifika pinleme kullanıyor. SOCKS5 proxy bunu bozar mı?
Hayır. SOCKS5 proxy ham TCP bağlantısını tüneller ve TLS'i kesmez. Sertifika pinleme gerçek sunucunun TLS sertifikasını kontrol eder; bu etkilenmez. Uygulaman pin'i doğru şekilde doğrulamaya devam eder; sadece çıkış olarak operatör IP'si ve operatör-çözümlenmiş DNS'i alırsın; geo-IP ve operatör-tuhaflığı testi için tam ihtiyacın olan şey bu.
Faturalama residential proxy'ler gibi gigabyte başına mı?
Hayır. Nodetonet, gigabyte başına sayaç değil peşin kredi kullanır. Kullandığın kadar ödersin ve boştaki proxy'ler hiçbir şey tutmaz. QA iş yükü için — tipik olarak haftada birkaç gigabayt test trafiği — maliyet, eşdeğer bir residential proxy planından çok daha düşüktür. Tam bir döküm için kullandıkça-öde fiyatlandırma'ya bak.
Sadece ülkeler için değil, şehirler için de geo-IP özelliklerini test edebilir miyim?
Evet. Geo-hedefleme modifier'ları ile uç noktayı değiştirmeden proxy kullanıcı adında belirli bir şehri (İstanbul gibi) hedefleyebilirsin. Bunu o şehirde fiziksel olarak bulunan bir cihazla birleştirdiğinde test trafiğin, şehrin kullanıcılarının gördüğü tam metropolitan IP aralığından çıkar. Tam sözdizimi ve kullanılabilir modifier'lar için geo-hedefleme'ye bak.

Gerçek Vodafone, Türk Telekom ve T-Mobile üzerinde test edin

Peşin kredi, abonelik yok. Ağ hatalarını kullanıcılarınızdan önce bulun.