Workflow'ları test etmek: Pin Data, Mock Data, Debug modu
n8n'de Pin Data, Mock Data ve Debug modu: workflow'ları üretim sistemlerine karşı canlı olarak değil, sabitlenmiş test verileriyle nasıl test edersin.
Bir n8n workflow'unda çalışan ve bu workflow bir e-posta gönderiyor, bir ödeme tetikliyor veya bir CRM'e kayıt yazıyorsa, test sırasında her seferinde gerçek bir mesaj göndermek veya gerçek bir müşteri kaydı oluşturmak istemez. n8n tam da bunun için birbirini tamamlayan iki özellik sunar: Pin Data bir düğümün çıktısını dondurur, Mock Data ise harici bir kaynakla hiç bağlantı kurmadan test verisi oluşturur. Bunu tamamlayan Debug modu sayesinde başarısız olan üretim çalıştırmaları doğrudan editörde yeniden canlandırılabilir.
Üretim otomasyonları kuran bir ekip olarak senin için bu, bir konfor özelliğinden fazlasıdır. Sabitlenmiş test verisi olmadan, her "Execute workflow" tıklamasında gerçek sistemlere karşı test yaparsın, API kotalarını tüketirsin ve bir testin yanlışlıkla gerçek bir eylemi tetikleme riskini alırsın. Pin Data, Mock Data ve Debug modu ile hangi verinin workflow'undan ne zaman geçtiği üzerinde kontrolü elinde tutarsın ve aynı mantığı aynı girdilerle birden fazla kez güvenilir şekilde kontrol edebilirsin.
Üretim sistemlerine karşı canlı test yapmak yerine neden test verisi sabitlenmeli
Workflow oluştururken tipik bir sorun: ilk düğüm, örneğin bir webhook, bir tablo veya bir API gibi harici bir kaynaktan veri alır. Workflow'u test etmek için her çalıştırdığında bu istek yeniden çalışır, zaman kaybettirir, muhtemelen bir kota tüketir ve bir önceki çalıştırmayla aynı değerleri garanti etmez. Pin Data ve Mock Data tam olarak burada devreye girer: n8n'e göre her iki özellik de geliştirme sırasında test için araçlar olarak tasarlanmıştır, "geliştirme sırasında zamandan ve kaynaklardan tasarruf etmek, tutarlı veri kümeleriyle çalışmak ve canlı sistemleri tekrarlanan test çağrılarından korumak" amacıyla. Her test çalıştırmasında gerçek bir sisteme karşı istek göndermek yerine, sabit ve tekrarlanabilir bir veri kümesiyle çalışır ve mantığındaki bir değişikliğin istenen sonucu verip vermediğini hemen görürsün.
Pin Data: düğüm çıktısını dondurmak
Data Pinning, bir düğümün çıktı verisini kaydeder ve gelecekteki çalıştırmalarda yeniden taze veri almak yerine bu kaydedilmiş veriyi kullanır. İşte nasıl yapılacağı:
- İlgili düğümü bir kez çalıştır, böylece OUTPUT görünümünde veriler görünür.
- OUTPUT görünümünde pin simgesine tıkla. Bir banner, verilerin artık sabitlendiğini onaylar.
- Aynı banner içindeki Unpin bağlantısıyla sabitlemeyi tekrar kaldırırsın; ardından düğüm bir sonraki çalıştırmada tekrar taze veri alır.
- Sabitlenmiş veriler daha sonra da düzenlenebilir: OUTPUT görünümünde JSON görünümüne geç, Edit'i seç, değerleri düzenle ve Save ile kaydet.
Bu, özellikle bir webhook gibi harici bir sistem tarafından tetiklenen workflow'larda oldukça pratiktir: başlangıç verileri bir kez sabitlendiğinde, tetikleyen sistemi her testte yeniden tetiklemen gerekmez, doğrudan sabitlenmiş veri kümesiyle çalışmaya devam edersin. Bunun için önceki bir çalıştırmadan gelen verileri de yeniden kullanabilirsin: Executions sekmesinde geçmiş bir çalıştırmayı aç, istediğin düğümü çift tıklayarak aç, JSON görünümüne geç, verileri kopyala ve bir düğümün hedef görünümüne yapıştırıp kaydet.
Mock Data: gerçek bir kaynak olmadan test verisi oluşturmak
Data Mocking, gerçek bir veri kaynağına hiç bağlanmadan test verisi oluşturmak veya simüle etmek anlamına gelir. Bu, henüz gerçek sisteme erişimin olmadığında, gerçek verilerin şu anda sağlamadığı bir uç durumun test edilmesi gerektiğinde veya harici bir kaynağın kullanılabilirliğinden ve izinlerinden bağımsız olarak geliştirme yapmak istediğinde her zaman yararlıdır. n8n bunun için öncelikle iki yol belirtir:
- Edit Fields düğümü veya Code düğümü: Küçük, anlaşılır test durumları için, tek tek alanları ve değerleri elle ayarlamanı sağlayan Edit Fields düğümü uygundur. Daha karmaşık veri yapıları veya hedeflenen uç durumlar için Code düğümü sana test verisinin yapısı ve içeriği üzerinde tam kontrol verir.
- Customer Datastore düğümü: Bu düğüm, elinde kendi test verilerin olmadığında ve yine de gerçekçi görünen veri kümeleriyle çalışmaya devam etmek istediğinde hazır bir örnek veri kümesi sağlar.
Uygulamada iki özelliği sık sık birlikte kullanırsın: önce belirli bir test senaryosu için Mock Data oluşturursun, değerleri hedefe yönelik olarak ayarlarsın ve ardından her bir sonraki test çalıştırmasında aynı durumu tam olarak yeniden bulmak için bunları sabitlersin.
Pin Data ve Mock Data'nın sınırları
Her iki özellik de açıkça geliştirme aşaması için tasarlanmıştır, sürmekte olan işletim için değil. Pin Data ve Mock Data hakkındaki resmi n8n dokümantasyonuna göre şunlar geçerlidir:
- Data Pinning, üretimdeki workflow çalıştırmaları için kullanılamaz. Aktif edilmiş bir workflow çalıştığında n8n, sabitlenmiş verileri yok sayar ve gerçek verileri alır.
- Çıktı ikili (binary) veri içeriyorsa veri sabitleyemezsin.
- Data Pinning yalnızca tam olarak tek bir ana çıkışa sahip düğümlerde çalışır.
Bu kısıtlamalar tesadüf değildir: sabitlenmiş test verisinin yanlışlıkla üretim çalıştırmalarına sızmasını ve orada eski veya hatalı değerler vermesini engellerler. Bu nedenle bir workflow'u üretim kullanımı için serbest bıraktığında, etkinleştirmeden önce herhangi bir yerde hâlâ sabitlenmiş test verisi olup olmadığını bir kez daha özellikle kontrol etmelisin.
Debug modu: gerçek hata verileriyle yeniden çalışma
Debug modu, tam olarak Pin Data ve Mock Data'nın bittiği yerde devreye girer: zaten çalışmış ama başarısız olmuş bir üretim çalıştırmasında. n8n'in çalıştırmaları hata ayıklama (debug) konusundaki dokümantasyonuna göre bu özellik, geçmiş bir çalıştırmanın verilerini mevcut workflow'una yükler; bu, başarısız üretim çalıştırmalarını anlamak için özellikle değerlidir. İşte nasıl yapılacağı:
- Çalıştırma geçmişini görmek için workflow'da Executions sekmesini aç.
- İncelemek istediğin çalıştırmayı seç.
- Başarısız çalıştırmalarda Debug in editor'a, başarılı olanlarda Copy to editor'a tıklarsın.
- n8n, çalıştırma verilerini otomatik olarak workflow editörüne aktarır ve bu sırada verileri workflow'un ilk düğümünde sabitler.
Bu sayede hataya neden olan verilerle tam olarak çalışmaya devam edebilir, düzeltmeni doğrudan bu duruma karşı test edebilir ve ancak ondan sonra tekrar canlıya alabilirsin. n8n'e göre bu özellik n8n Cloud'da ve ayrıca kayıtlı topluluk (community) örneklerinde kullanılabilir; hangi çalıştırmaların listede görüneceği ayrıca workflow'unun saklama ayarlarına bağlıdır.
n8n workflow'larını üretimde çalıştırıyorsan ve her hatada baştan başlamak istemiyorsan, sabit bir rutin kurman işine yarar: mantık üzerinde çalışmadan önce test verisini sabitle, gerçek hata durumlarını Debug modu üzerinden yeniden canlandır ve ancak sabitlenmiş veri içermeyen temiz bir test çalıştırmasından sonra tekrar canlıya al. n8n ile otomasyon kapsamında, değişikliklerin şansa bırakılarak üretim sistemlerine karşı çalışmaması için bu tür test rutinlerini müşterilerimizin workflow'larına en baştan entegre ediyoruz.
Sık sorulan sorular
Pin Data'yı bir webhook tetikleyicisiyle de kullanabilir miyim?
Evet. Özellikle bir workflow, bir webhook çağrısı gibi harici bir sistem tarafından başlatıldığında, Pin Data tetikleyen sistemi her testte yeniden tetiklemen gerekmemesine yardımcı olur. Bir kez alınan başlangıç verilerini sabitlersin ve ardından doğrudan bu sabitlenmiş veri kümesiyle çalışmaya devam edersin.
Pin Data, dosyalar veya görseller gibi ikili (binary) verilerle de çalışır mı?
Hayır. Bir düğümün çıktısı ikili veri içeriyorsa, n8n dokümantasyonuna göre bu çıktı sabitlenemez. Böyle durumlarda geriye yalnızca test sırasında ikili kaynağı gerçekten bir kez canlı olarak çağırmak veya ikili bileşen içermeyen basitleştirilmiş bir yedek veri kümesiyle çalışmak kalır.
Workflow'u etkinleştirdiğimde sabitlenmiş test verilerine ne olur?
Temiz çalıştıysan sorunlu bir şey olmaz: Data Pinning üretim çalıştırmalarında etkili değildir, bu nedenle etkinleştirilmiş bir workflow otomatik olarak yeniden gerçek verileri alır. Yine de canlıya almadan önce, bir sonraki düzenlemede karışıklığı önlemek için tek tek düğümlerde hâlâ sabitlenmiş test verisi olup olmadığını bilinçli olarak kontrol etmen faydalı olur.
Pin Data ile Mock Data arasındaki fark somut olarak nedir?
Mock Data, örneğin Edit Fields veya Code düğümü üzerinden, hiçbir gerçek veri kaynağı olmadan sıfırdan bir test veri kümesi oluşturur. Pin Data ise, bu çıktı gerçek bir sistem çağrısından gelsin ya da daha önce Mock Data olarak oluşturulmuş olsun, bir düğümün gerçek çıktısını dondurur. Uygulamada iki özellik sık sık birlikte kullanılır.
Debug modu, kendi barındırılan (self-hosted) bir n8n örneğinde de kullanılabilir mi?
n8n dokümantasyonuna göre debug özelliği n8n Cloud'da ve ayrıca kayıtlı topluluk (community) örneklerinde kullanılabilir. Geçmişte hangi somut çalıştırmaların görüneceği ve ne kadar süreyle saklanacağı ayrıca workflow'un çalıştırma verisi saklama ayarlarına bağlıdır.
NordFlux UG (haftungsbeschränkt)
NordFlux, kuruluşlar için dijital çalışanlar kurar: tekrar eden işleri üstlenen otomasyonlar ve KI ajanları. Kontrol sizde kalır.
Otomasyon veya KI hakkında somut sorularınız mı var?
Ücretsiz bir ön analizde durumunuzu doğrudan görüşürüz. Bağlayıcı değildir.