🔧 Desired Capabilities & wdio.conf.ts
Desired Capabilities & wdio.conf.ts: Capabilities'i bir taksi şoförüne verdiğiniz iş emri gibi düşünün — ve bu emir sadece "nereye git" değil, "hangi araçla, hangi yoldan, hangi
Capabilities'i bir taksi şoförüne verdiğiniz iş emri gibi düşünün — ve bu emir sadece "nereye git" değil, "hangi araçla, hangi yoldan, hangi müşteriyle" gibi çok boyutlu bir bağlam paketidir: `platformName: Android`, `deviceName: emulator-5554`, `appium:app: /apk/app.apk`, `appium:automationName: UiAutomator2`. Peki Java'da basit bir `ChromeOptions` veya `DesiredCapabilities` yazarken bu kadar detay gerekmiyordu — neden Appium'da bu kadar fazla parametre var? Çünkü bir tarayıcı her makinede aynı şekilde başlarken, mobil ortam son derece parçalı: aynı Android sürümü farklı cihazlarda farklı davranır, aynı APK farklı mimarilerde (ARM vs x86) farklı kurulur, ve Appium'un doğru driver'ı devreye alabilmesi için tüm bu bağlamı önceden bilmesi gerekir. Java'daki `DesiredCapabilities` ile kıyaslamanın tam yeri burası: Appium 3'te W3C standardı gereği, `appPackage` veya `appActivity` gibi Appium'a özgü her capability artık `"appium:"` prefix'iyle gönderilmelidir — tıpkı Java'da vendor-specific annotation'ların özel package altında olması gibi. QA açısından kritik olan: yanlış ya da eksik bir capability ile başlatılan test, CI'da "session açılamadı" hatasıyla düşer ve hangi parametrenin yanlış olduğunu logdan okumak saatler alabilir.
Appium 3 Capability Prefix Kuralı
Java — UiAutomator2Options (Önerilen)
Java — Appium 3.x Capabilities (Type-Safe)
Micro Lab: Kod yazma
TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.
UiAutomator2Options DesiredCapabilities'e Göre Neden Daha Güvenlidir?
new UiAutomator2Options() ile başlayan ZİNCİR…
`new UiAutomator2Options()` ile başlayan ZİNCİR, eski `DesiredCapabilities` + `capability("key", "value")` string-tabanlı yaklaşımın YERİNİ alır — `.setPlatformName(...)` gibi TİP GÜVENLİ metotlar, yanlış yazılmış bir key'in DERLEME zamanında YAKALANMASINI sağlar.
W3C STANDART capability'ler (platformName…
W3C STANDART capability'ler (`platformName`, `deviceName`) HİÇBİR önek ALMAZ, ama Appium'a ÖZGÜ olanlar (`automationName`, `app`) java-client tarafından OTOMATİK `appium:` önekiyle GÖNDERİLİR — bunu elle yazmana gerek YOKTUR.
.setApp(...) VEYA .setAppPackage(...) +…
`.setApp(...)` VEYA `.setAppPackage(...)` + `.setAppActivity(...)` — İKİ FARKLI senaryo: APK dosyası HENÜZ cihazda değilse `setApp` onu YÜKLER, zaten kuruluysa package+activity DOĞRUDAN uygulamayı AÇAR.
.setNoReset(false) HER testten önce…