Skip to main content

Otomatik iOS Uygulama Testi

Simülatör üzerinden iOS uygulama testlerini otomatikleştirmek için Synapse + Computer Control API kullanın.


Otomatik iOS Uygulama Testi

LLM odaklı iOS uygulama testleri oluşturmak için Synapse'in bellek sistemini Computer Control API ile birleştirin. LLM test senaryolarını hatırlar, geçmiş başarısızlıklardan öğrenir ve UI değişikliklerine uyum sağlar.

Mimari

┌──────────────┐    commands    ┌──────────────┐    screenshots    ┌──────────────┐
│  LLM Agent   │ ─────────────▶│  Synapse     │ ────────────────▶ │  iOS Sim     │
│  (Claude)    │               │  Computer    │ ◀──────────────── │  (via agent) │
└──────────────┘               │  Control     │    results        └──────────────┘
       │                       └──────────────┘
       │ store/recall
       ▼
┌──────────────┐
│  Memories    │ (test scenarios, past failures, UI patterns)
└──────────────┘

Önkoşullar

  • Synapse hesabı + Mind Key
  • Claude Desktop'da yapılandırılmış Synapse MCP sunucusu
  • screen-remote-agent yüklü iOS Simülatörü
  • Synapse'e kayıtlı bilgisayar (bkz. Computer Control API)

Adım 1: Simülatör Bilgisayarını Kaydetme

iOS Simülatörü çalışan Mac'te:

# Get install code from Synapse
curl -X POST https://synapse.schaefer.zone/computers/install-code \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -d '{"computer_name":"ios-sim"}'
# → { "install_code": "ic_..." }

# Run screen-remote-agent on the Mac
# (uses the install code to register)

Adım 2: Test Senaryolarını Bellekte Saklama

Yeniden kullanılabilir test senaryolarını bellek olarak saklayın:

import requests

def store_test_scenario(name, steps, app):
    requests.post(f"{URL}/memory",
        headers={"Authorization": f"Bearer {MIND_KEY}"},
        json={
            "category": "skill",
            "key": f"test_scenario_{name}",
            "content": f"App: {app}\nSteps:\n" + "\n".join(steps),
            "tags": ["test", "ios", app],
            "priority": "high"
        })

store_test_scenario("login_flow", [
    "Launch app",
    "Tap email field",
    "Type test@example.com",
    "Tap password field",
    "Type password123",
    "Tap Login button",
    "Verify home screen appears"
], "MyApp")

Adım 3: LLM Odaklı Test Yürütme

Claude Desktop'da (Synapse MCP yapılandırılmış):

Run the login_flow test scenario on the iOS Simulator.
Take a screenshot after each step and verify the expected UI.
If any step fails, store the failure as a memory so we can
avoid it next time.

Claude şunları yapacak:

  1. test_scenario_login_flow belleğini bulmak için memory_search çağırır
  2. Mevcut durumu görmek için computer_screenshot çağırır
  3. Her adımı computer_command_queue ile yürütür (tıkla, yaz)
  4. Sonuçları ekran görüntüleriyle doğrular
  5. Başarısızlıkları mistake bellek olarak saklar

Adım 4: Kendinden İyileşen Testler

Bir test başarısız olduğunda, başarısızlığı ve kurtarmayı saklayın:

def store_test_failure(scenario, step, error, recovery):
    requests.post(f"{URL}/memory",
        headers={"Authorization": f"Bearer {MIND_KEY}"},
        json={
            "category": "mistake",
            "key": f"failure_{scenario}_{step}",
            "content": f"Scenario: {scenario}\nStep: {step}\nError: {error}\nRecovery: {recovery}",
            "tags": ["test", "failure", "ios", scenario],
            "priority": "high"
        })

# Example
store_test_failure("login_flow", "tap_login",
    "Login button not found at expected coordinates",
    "Button moved due to new logo. Search by accessibility label instead.")

Bir dahaki sefere LLM testi çalıştırdığında, başarısızlığı geri çağırır ve kurtarmayı otomatik olarak uygular.

Adım 5: Test Sonucu İzleme

Test çalışmalarını görev olarak izleyin:

def track_test_run(scenario, status, duration):
    requests.post(f"{URL}/mind/task",
        headers={"Authorization": f"Bearer {MIND_KEY}",
                 "Content-Type": "application/json"},
        json={
            "title": f"Test: {scenario}",
            "description": f"Status: {status}, Duration: {duration}s",
            "priority": "normal"
        })

Yaygın Komutlar

Eylem Komut
Simülatörü başlat xcrun simctl launch booted com.example.app
Ekran görüntüsü computer_screenshot (Synapse MCP ile)
(x,y)'de dokun computer_command_queue {type:"click", payload:{x,y}}
Metin yaz computer_command_queue {type:"type", payload:{text:"..."}}
Home'a bas computer_command_queue {type:"key", payload:{keys:["Cmd","Shift","H"]}}

En İyi Uygulamalar

Sonraki Adımlar