{"id":33770,"date":"2025-11-06T20:01:02","date_gmt":"2025-11-06T17:01:02","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/"},"modified":"2025-11-06T20:01:02","modified_gmt":"2025-11-06T17:01:02","slug":"browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/","title":{"rendered":"Browser Testlerinde AI \u0130\u00e7in Terminale Loglama Nas\u0131l Yap\u0131l\u0131r?"},"content":{"rendered":"<p>Test otomasyonu d\u00fcnyas\u0131nda, test sonu\u00e7lar\u0131n\u0131 do\u011fru ve h\u0131zl\u0131 bir \u015fekilde yorumlamak kritik \u00f6neme sahiptir. Geleneksel raporlama y\u00f6ntemleri genellikle insan g\u00f6z\u00fc i\u00e7in tasarlanm\u0131\u015fken, yapay zeka destekli analiz sistemleri i\u00e7in bu verileri daha eri\u015filebilir k\u0131lmak, test s\u00fcre\u00e7lerinizi bir sonraki seviyeye ta\u015f\u0131yabilir. Peki, taray\u0131c\u0131 testlerinizin \u00e7\u0131kt\u0131s\u0131n\u0131 do\u011frudan terminale yap\u0131land\u0131r\u0131lm\u0131\u015f bir \u015fekilde loglayarak yapay zekan\u0131n i\u015fini nas\u0131l kolayla\u015ft\u0131rabilirsiniz? Bu makale, test otomasyonunuzu AI dostu hale getirmenin yollar\u0131n\u0131 ke\u015ffetmenizi sa\u011flayacak.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde test otomasyonu, \u00fcr\u00fcn kalitesini g\u00fcvence alt\u0131na alman\u0131n temel direklerinden biridir. Selenium, Playwright veya Cypress gibi pop\u00fcler taray\u0131c\u0131 otomasyon ara\u00e7lar\u0131 sayesinde, karma\u015f\u0131k kullan\u0131c\u0131 senaryolar\u0131n\u0131 saniyeler i\u00e7inde test edebiliyoruz. Ancak, test say\u0131lar\u0131n\u0131n artmas\u0131 ve \u00fcr\u00fcnlerin kompleksle\u015fmesiyle birlikte, bu testlerden elde edilen sonu\u00e7lar\u0131n analizi de giderek zorla\u015f\u0131yor. Hangi testlerin neden ba\u015far\u0131s\u0131z oldu\u011funu anlamak, performans d\u00fc\u015f\u00fc\u015flerini tespit etmek veya regresyonlar\u0131 h\u0131zl\u0131ca belirlemek, \u00e7o\u011fu zaman manuel ve zaman al\u0131c\u0131 bir s\u00fcre\u00e7 haline gelebiliyor.<\/p>\n<p>\u0130\u015fte tam da bu noktada yapay zeka (AI), test otomasyon s\u00fcre\u00e7lerimize yeni bir soluk getiriyor. AI sistemleri, devasa veri k\u00fcmelerini analiz ederek insan g\u00f6z\u00fcn\u00fcn ka\u00e7\u0131rabilece\u011fi \u00f6r\u00fcnt\u00fcleri, anormallikleri ve potansiyel sorunlar\u0131 tespit etme yetene\u011fine sahip. Bir test paketinin neden ba\u015far\u0131s\u0131z oldu\u011funu, hangi kod de\u011fi\u015fikli\u011finin hataya yol a\u00e7t\u0131\u011f\u0131n\u0131 veya hangi testlerin s\u00fcrekli olarak sorun \u00e7\u0131kard\u0131\u011f\u0131n\u0131 anlamak i\u00e7in AI&#8217;dan faydalanmak, geli\u015ftirme ekiplerinin verimlili\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir. Ancak AI&#8217;\u0131n bu potansiyelini tam olarak kullanabilmesi i\u00e7in ona &#8220;do\u011fru&#8221; veriyi sa\u011flamam\u0131z gerekiyor. Geleneksel HTML raporlar\u0131 veya ekran g\u00f6r\u00fcnt\u00fcleri, insan i\u00e7in anlaml\u0131 olsa da, bir AI modelinin do\u011frudan i\u015fleyebilece\u011fi yap\u0131land\u0131r\u0131lm\u0131\u015f veriyi her zaman sunmayabilir. Bu durum, AI&#8217;\u0131n test sonu\u00e7lar\u0131n\u0131 analiz etme yetene\u011fini k\u0131s\u0131tlar ve de\u011ferli i\u00e7g\u00f6r\u00fclere ula\u015f\u0131lmas\u0131n\u0131 engeller.<\/p>\n<p>Bu makalede odak noktam\u0131z, taray\u0131c\u0131 testlerimizin \u00e7\u0131kt\u0131s\u0131n\u0131 do\u011frudan terminale, yapay zekan\u0131n kolayca i\u015fleyebilece\u011fi bir formatta loglamak. Terminale loglama, basit gibi g\u00f6r\u00fcnse de, do\u011fru yakla\u015f\u0131mla uyguland\u0131\u011f\u0131nda test s\u00fcre\u00e7lerinizi \u015feffaf ve AI dostu bir hale getirebilir. Yap\u0131land\u0131r\u0131lm\u0131\u015f loglar, AI&#8217;\u0131n ba\u015far\u0131s\u0131z testlerin k\u00f6k nedenlerini daha h\u0131zl\u0131 bulmas\u0131na, tekrarlayan hatalar\u0131 belirlemesine ve hatta test senaryolar\u0131n\u0131 optimize etmesine yard\u0131mc\u0131 olabilir. B\u00f6ylece, test otomasyon yat\u0131r\u0131mlar\u0131n\u0131z\u0131n geri d\u00f6n\u00fc\u015f\u00fcn\u00fc maksimize ederken, geli\u015ftirme d\u00f6ng\u00fcn\u00fcz\u00fc de h\u0131zland\u0131rm\u0131\u015f olursunuz. Gelin, bu d\u00f6n\u00fc\u015f\u00fcm\u00fcn nas\u0131l ger\u00e7ekle\u015ftirilece\u011fini ad\u0131m ad\u0131m inceleyelim ve modern test s\u00fcre\u00e7lerinizi yapay zeka ile nas\u0131l g\u00fc\u00e7lendirebilece\u011finizi ke\u015ffedelim.<\/p>\n<div class=\"interactive-tip\">\n  Uzman \u0130pucu: Yap\u0131land\u0131r\u0131lm\u0131\u015f loglama, sadece AI i\u00e7in de\u011fil, ayn\u0131 zamanda loglar\u0131n\u0131z\u0131 merkezi bir sistemde toplarken de b\u00fcy\u00fck avantaj sa\u011flar. JSON format\u0131, bu t\u00fcr entegrasyonlar i\u00e7in alt\u0131n standartt\u0131r.\n<\/div>\n<h2>Taray\u0131c\u0131 Testleri ve Yapay Zeka \u0130li\u015fkisi Nedir? Temel Kavramlar<\/h2>\n<p>Test otomasyonu, web uygulamalar\u0131n\u0131n kalitesini h\u0131zla do\u011frulamak i\u00e7in kritik bir rol oynar. Bu testler genellikle ger\u00e7ek kullan\u0131c\u0131 etkile\u015fimlerini sim\u00fcle eder ve sonu\u00e7lar\u0131 bir dizi rapor veya \u00e7\u0131kt\u0131 olarak sunar. Peki, bu \u00e7\u0131kt\u0131lar nas\u0131l olu\u015fturulur ve neden yapay zeka i\u00e7in \u00f6zel bir format gereklidir? \u0130\u015fte bu b\u00f6l\u00fcm, temel kavramlar\u0131 anlamam\u0131za yard\u0131mc\u0131 olacak.<\/p>\n<p>Taray\u0131c\u0131 testleri, web taray\u0131c\u0131lar\u0131n\u0131 programl\u0131 bir \u015fekilde kontrol eden yaz\u0131l\u0131m ara\u00e7lar\u0131 kullan\u0131larak ger\u00e7ekle\u015ftirilir. Bu ara\u00e7lar aras\u0131nda Playwright, Cypress ve Selenium gibi pop\u00fcler se\u00e7enekler bulunur. Her biri, belirli bir senaryoyu (\u00f6rne\u011fin, bir kullan\u0131c\u0131n\u0131n siteye kaydolmas\u0131, bir \u00fcr\u00fcn sepete eklemesi veya \u00f6deme yapmas\u0131) otomatik olarak y\u00fcr\u00fctmek \u00fczere tasarlanm\u0131\u015ft\u0131r. Bir test \u00e7al\u0131\u015ft\u0131\u011f\u0131nda, belirlenen ad\u0131mlar\u0131 takip eder ve her ad\u0131m\u0131n ba\u015far\u0131l\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol eder. Sonu\u00e7 olarak, testin genel durumunu (ba\u015far\u0131l\u0131\/ba\u015far\u0131s\u0131z) ve olas\u0131 hatalar\u0131 i\u00e7eren bir rapor \u00fcretir.<\/p>\n<p>Yapay zeka ise, bu test sonu\u00e7lar\u0131n\u0131 insan m\u00fcdahalesi olmadan analiz etme yetene\u011fine sahip sistemlerdir. AI, b\u00fcy\u00fck miktarda veriyi i\u015fleyerek kal\u0131plar\u0131 ve ili\u015fkileri \u00f6\u011frenir. Test otomasyonu ba\u011flam\u0131nda, bir AI sistemi \u015funlar\u0131 yapabilir:<\/p>\n<ol>\n<li><strong>K\u00f6k Neden Analizi:<\/strong> Ba\u015far\u0131s\u0131z bir testin temel nedenini belirlemek i\u00e7in loglar\u0131, hata mesajlar\u0131n\u0131 ve hatta kod de\u011fi\u015fikliklerini analiz eder.<\/li>\n<li><strong>\u00d6r\u00fcnt\u00fc Tan\u0131ma:<\/strong> S\u00fcrekli olarak ba\u015far\u0131s\u0131z olan veya belirli ko\u015fullar alt\u0131nda hata veren test senaryolar\u0131n\u0131 tespit eder.<\/li>\n<li><strong>Test Optimizasyonu:<\/strong> Gereksiz veya yinelenen testleri belirleyerek test paketini optimize etme \u00f6nerilerinde bulunur.<\/li>\n<li><strong>Kendi Kendini \u0130yile\u015ftiren Testler:<\/strong> Baz\u0131 geli\u015fmi\u015f AI sistemleri, k\u00fc\u00e7\u00fck UI de\u011fi\u015fiklikleri kar\u015f\u0131s\u0131nda test senaryolar\u0131n\u0131 otomatik olarak g\u00fcncelleyebilir.<\/li>\n<\/ol>\n<p>Ancak AI&#8217;\u0131n bu yeteneklerini tam olarak kullanabilmesi i\u00e7in ona &#8220;anla\u015f\u0131l\u0131r&#8221; bir dil sa\u011flamak gerekir. Geleneksel test raporlar\u0131 genellikle HTML format\u0131nda g\u00f6rsel \u00f6\u011feler, tablolar ve resimler i\u00e7erir. Bu formatlar, insanlar i\u00e7in kolay okunabilir olsa da, AI algoritmalar\u0131 i\u00e7in do\u011frudan i\u015flenmesi zordur. AI&#8217;\u0131n en iyi \u00e7al\u0131\u015ft\u0131\u011f\u0131 veri format\u0131, genellikle yap\u0131land\u0131r\u0131lm\u0131\u015f metin, \u00f6zellikle de JSON (JavaScript Object Notation) gibi formatlard\u0131r. JSON, anahtar-de\u011fer \u00e7iftleri ve listelerden olu\u015fan hiyerar\u015fik bir yap\u0131 sunar; bu da AI&#8217;\u0131n veriyi kolayca ayr\u0131\u015ft\u0131rmas\u0131na, ili\u015fkilendirmesine ve analiz etmesine olanak tan\u0131r.<\/p>\n<p>Terminal loglama, bu k\u00f6pr\u00fcy\u00fc kurman\u0131n en do\u011frudan yollar\u0131ndan biridir. Test y\u00fcr\u00fctme s\u0131ras\u0131nda, her ad\u0131m\u0131n sonucunu, olas\u0131 hatalar\u0131, s\u00fcreleri ve ilgili t\u00fcm meta verileri JSON format\u0131nda do\u011frudan terminale yazabiliriz. Bu \u00e7\u0131kt\u0131, daha sonra CI\/CD boru hatt\u0131 (Continuous Integration\/Continuous Deployment pipeline) ara\u00e7lar\u0131 veya \u00f6zel betikler arac\u0131l\u0131\u011f\u0131yla toplanabilir ve AI analiz sistemlerine beslenebilir. Bu yakla\u015f\u0131m, sadece AI&#8217;\u0131n i\u015fini kolayla\u015ft\u0131rmakla kalmaz, ayn\u0131 zamanda test s\u00fcre\u00e7lerini daha \u015feffaf ve denetlenebilir hale getirir. Her testin ne zaman, nas\u0131l ve hangi sonu\u00e7la \u00e7al\u0131\u015ft\u0131\u011f\u0131na dair kapsaml\u0131 ve yap\u0131land\u0131r\u0131lm\u0131\u015f bir kay\u0131t tutmam\u0131z\u0131 sa\u011flar. Bu sayede, test otomasyonu sadece bir &#8220;kontrol mekanizmas\u0131&#8221; olmaktan \u00e7\u0131k\u0131p, aktif bir &#8220;\u00f6\u011frenme ve iyile\u015ftirme&#8221; arac\u0131 haline gelir.<\/p>\n<pre><code>\n\/\/ \u00d6rnek: Basit bir JSON log \u00e7\u0131kt\u0131s\u0131\nconsole.log(JSON.stringify({\n  \"testName\": \"Kullan\u0131c\u0131 Kay\u0131t Testi\",\n  \"status\": \"PASS\",\n  \"duration\": \"1250ms\",\n  \"timestamp\": \"2023-10-27T10:30:00Z\",\n  \"details\": \"Yeni kullan\u0131c\u0131 ba\u015far\u0131yla olu\u015fturuldu.\"\n}));\n<\/pre>\n<p><\/code><\/p>\n<h2>Pratik Uygulama: Terminale Yap\u0131land\u0131r\u0131lm\u0131\u015f Loglama Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>Art\u0131k yapay zeka ile entegre test otomasyonunun teorik faydalar\u0131n\u0131 bildi\u011fimize g\u00f6re, \u015fimdi bunu pratik uygulamalara d\u00f6kelim. Taray\u0131c\u0131 testlerinizden terminale yap\u0131land\u0131r\u0131lm\u0131\u015f loglar g\u00f6ndermek, tahmin etti\u011finizden daha kolayd\u0131r ve \u00e7o\u011fu modern test \u00e7er\u00e7evesi bu yetene\u011fi destekler. Bu b\u00f6l\u00fcmde, ad\u0131m ad\u0131m nas\u0131l ilerleyece\u011fimizi ve baz\u0131 \u00f6rnek kod bloklar\u0131n\u0131 inceleyece\u011fiz.<\/p>\n<h3>Test \u00c7er\u00e7evesi Se\u00e7imi ve Loglama Yakla\u015f\u0131m\u0131 Nas\u0131l Belirlenir?<\/h3>\n<p>\u0130lk ad\u0131m, testlerinizi yazmak i\u00e7in kulland\u0131\u011f\u0131n\u0131z veya kullanaca\u011f\u0131n\u0131z taray\u0131c\u0131 otomasyon \u00e7er\u00e7evesini se\u00e7mektir. Playwright ve Cypress, modern web uygulamalar\u0131 i\u00e7in harika se\u00e7eneklerdir ve her ikisi de terminale loglama i\u00e7in g\u00fc\u00e7l\u00fc API'lara sahiptir. Se\u00e7iminiz ne olursa olsun, temel loglama prensipleri benzer kalacakt\u0131r: test ad\u0131mlar\u0131nda anlaml\u0131 verileri yakalamak ve bunlar\u0131 yap\u0131land\u0131r\u0131lm\u0131\u015f bir formatta \u00e7\u0131kt\u0131s\u0131n\u0131 almak.<\/p>\n<p><strong>Playwright ile \u00d6rnek Yakla\u015f\u0131m:<\/strong> Playwright, testlerinizi <code>test<\/code> fonksiyonlar\u0131 i\u00e7inde organize etmenizi sa\u011flar. Her test ad\u0131m\u0131nda <code>console.log<\/code> veya <code>test.info()<\/code> gibi metotlar\u0131 kullanarak terminale mesaj g\u00f6nderebilirsiniz. JSON format\u0131nda \u00e7\u0131kt\u0131 almak i\u00e7in, genellikle <code>JSON.stringify()<\/code> metodunu kullan\u0131r\u0131z. Bu, karma\u015f\u0131k nesneleri ve dizileri kolayca okunabilir bir metin dizisine d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p>\n<pre><code>\n\/\/ Playwright ile \u00f6rnek bir test senaryosu ve loglama\nimport { test, expect } from '@playwright\/test';\n\ntest('Kullan\u0131c\u0131n\u0131n sepete \u00fcr\u00fcn eklemesi gerekiyor', async ({ page }) => {\n  const testId = <code>CART_ADD_${Date.now()}<\/code>;\n  console.log(JSON.stringify({\n    event: \"test_start\",\n    testId: testId,\n    testName: \"Kullan\u0131c\u0131n\u0131n sepete \u00fcr\u00fcn eklemesi gerekiyor\",\n    timestamp: new Date().toISOString()\n  }));\n\n  await page.goto('https:\/\/www.example.com\/products');\n  console.log(JSON.stringify({\n    event: \"navigation_successful\",\n    testId: testId,\n    url: page.url(),\n    timestamp: new Date().toISOString()\n  }));\n\n  await page.click('button:has-text(\"\u00dcr\u00fcn\u00fc Sepete Ekle\")');\n  console.log(JSON.stringify({\n    event: \"product_added_to_cart\",\n    testId: testId,\n    productName: \"\u00d6rnek \u00dcr\u00fcn\",\n    timestamp: new Date().toISOString()\n  }));\n\n  await page.waitForSelector('.cart-count', { state: 'visible' });\n  const cartCount = await page.locator('.cart-count').textContent();\n  expect(cartCount).toBe('1');\n  console.log(JSON.stringify({\n    event: \"cart_count_verified\",\n    testId: testId,\n    count: cartCount,\n    timestamp: new Date().toISOString()\n  }));\n\n  console.log(JSON.stringify({\n    event: \"test_end\",\n    testId: testId,\n    status: \"PASS\",\n    timestamp: new Date().toISOString()\n  }));\n});\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, her \u00f6nemli ad\u0131mda (testin ba\u015flang\u0131c\u0131, navigasyon, sepete ekleme, do\u011frulama, testin sonu) bir JSON nesnesini <code>console.log<\/code> ile terminale yaz\u0131yoruz. Her log mesaj\u0131, <code>testId<\/code> gibi benzersiz bir tan\u0131mlay\u0131c\u0131 i\u00e7ererek, AI'\u0131n farkl\u0131 log mesajlar\u0131n\u0131 ayn\u0131 teste ba\u011flamas\u0131na olanak tan\u0131r. <code>event<\/code>, <code>testName<\/code>, <code>status<\/code>, <code>timestamp<\/code> gibi alanlar, AI'\u0131n analiz etmesi i\u00e7in temel verileri sa\u011flar.<\/p>\n<h3>Anlaml\u0131 ve Yap\u0131land\u0131r\u0131lm\u0131\u015f Log Mesajlar\u0131 Nas\u0131l Olu\u015fturulur?<\/h3>\n<p>Yapay zeka i\u00e7in loglar\u0131n en de\u011ferli k\u0131sm\u0131, onlar\u0131n yap\u0131land\u0131r\u0131lm\u0131\u015f ve anlaml\u0131 olmas\u0131d\u0131r. Sadece \"Test Ba\u015far\u0131l\u0131\" demek yerine, \"Test: Kullan\u0131c\u0131 Kay\u0131t Ak\u0131\u015f\u0131, Ad\u0131m: Email do\u011frulama ba\u015far\u0131l\u0131, Kullan\u0131c\u0131 ID: 12345, S\u00fcre: 50ms\" gibi daha zengin veriler sunmal\u0131s\u0131n\u0131z. \u0130\u015fte yap\u0131land\u0131r\u0131lm\u0131\u015f log mesajlar\u0131 olu\u015ftururken dikkat etmeniz gerekenler:<\/p>\n<ul>\n<li><strong>Benzersiz Tan\u0131mlay\u0131c\u0131lar:<\/strong> Her test \u00e7al\u0131\u015ft\u0131rmas\u0131 ve hatta her test ad\u0131m\u0131 i\u00e7in benzersiz bir ID (<code>testId<\/code>, <code>stepId<\/code>) kullan\u0131n. Bu, AI'\u0131n loglar\u0131 birbiriyle ili\u015fkilendirmesine yard\u0131mc\u0131 olur.<\/li>\n<li><strong>Olay Tabanl\u0131 Loglama:<\/strong> Her bir \u00f6nemli eylemi veya durumu bir \"olay\" olarak d\u00fc\u015f\u00fcn\u00fcn (\u00f6rne\u011fin, <code>page_loaded<\/code>, <code>button_clicked<\/code>, <code>assertion_failed<\/code>).<\/li>\n<li><strong>Temel Meta Veriler:<\/strong> <code>timestamp<\/code> (zaman damgas\u0131), <code>testName<\/code> (test ad\u0131), <code>status<\/code> (durum: PASS\/FAIL\/SKIP), <code>duration<\/code> (s\u00fcre).<\/li>\n<li><strong>Hata Detaylar\u0131:<\/strong> Bir test ba\u015far\u0131s\u0131z oldu\u011funda, tam hata mesaj\u0131n\u0131, stack trace'i ve hatta hata an\u0131ndaki sayfan\u0131n URL'sini veya ekran g\u00f6r\u00fcnt\u00fcs\u00fc yolunu ekleyin.<\/li>\n<li><strong>Ba\u011flam Bilgileri:<\/strong> Test edilen ortam (<code>environment<\/code>: dev\/test\/prod), taray\u0131c\u0131 (<code>browser<\/code>: chromium\/firefox\/webkit), platform (<code>platform<\/code>: windows\/linux\/macos) gibi bilgileri eklemek, AI'\u0131n farkl\u0131 ortamlardaki sorunlar\u0131 ili\u015fkilendirmesine yard\u0131mc\u0131 olur.<\/li>\n<\/ul>\n<pre><code>\n\/\/ Hata durumunda daha detayl\u0131 log \u00f6rne\u011fi\ntry {\n  await page.click('button:has-text(\"\u00d6deme Yap\")');\n  console.log(JSON.stringify({\n    event: \"payment_initiated\",\n    testId: testId,\n    timestamp: new Date().toISOString()\n  }));\n} catch (error) {\n  console.log(JSON.stringify({\n    event: \"payment_failed\",\n    testId: testId,\n    errorMessage: error.message,\n    stackTrace: error.stack,\n    url: page.url(),\n    screenshotPath: <code>\/screenshots\/${testId}.png<\/code>, \/\/ \u00d6rnek bir yol\n    timestamp: new Date().toISOString()\n  }));\n  throw error; \/\/ Testin ba\u015far\u0131s\u0131z oldu\u011funu belirtmek i\u00e7in hatay\u0131 yeniden f\u0131rlat\u0131n\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu yakla\u015f\u0131mla, AI sisteminiz, sadece bir testin ba\u015far\u0131s\u0131z oldu\u011funu de\u011fil, ayn\u0131 zamanda tam olarak nerede, ne zaman ve hangi hata mesaj\u0131yla ba\u015far\u0131s\u0131z oldu\u011funu \u00f6\u011frenebilir. Bu detayl\u0131 bilgiler, k\u00f6k neden analizi ve h\u0131zl\u0131 hata ay\u0131klama i\u00e7in paha bi\u00e7ilmezdir. Terminale loglanan bu JSON \u00e7\u0131kt\u0131lar\u0131, daha sonra bir log toplama arac\u0131s\u0131 (\u00f6rne\u011fin Fluentd, Logstash) arac\u0131l\u0131\u011f\u0131yla merkezi bir log y\u00f6netim sistemine (Elasticsearch, Splunk) g\u00f6nderilebilir ve burada AI modelleri taraf\u0131ndan i\u015flenebilir.<\/p>\n<h3>Mobil Uyumlu Loglama: Terminal \u00c7\u0131kt\u0131s\u0131n\u0131 Mobil i\u00e7in Optimize Etmek<\/h3>\n<p>Makalenin mobil uyumluluk k\u0131sm\u0131nda da bahsedildi\u011fi gibi, loglama yap\u0131s\u0131 da mobil i\u00e7in d\u00fc\u015f\u00fcn\u00fclmeli. Do\u011frudan terminal \u00e7\u0131kt\u0131s\u0131 i\u00e7in mobil uyumluluk pek ge\u00e7erli olmasa da, bu loglar\u0131 g\u00f6r\u00fcnt\u00fcleyecek veya i\u015fleyecek herhangi bir UI (kullan\u0131c\u0131 aray\u00fcz\u00fc) i\u00e7in \u00f6nemlidir. Loglar do\u011frudan terminalden al\u0131nd\u0131\u011f\u0131 i\u00e7in, bu loglar\u0131 i\u015fleyen bir ara y\u00fcz\u00fcn mobil cihazlarda da d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 gerekir. \u00d6rne\u011fin, bir log g\u00f6r\u00fcnt\u00fcleyici uygulaman\u0131z varsa:<\/p>\n<pre><code>\n\/* styles.css veya CSS in JS i\u00e7inde *\/\n@media (max-width: 768px) {\n  .log-container {\n    font-size: 0.8em;\n    padding: 10px;\n    overflow-x: scroll; \/* Uzun log sat\u0131rlar\u0131 i\u00e7in yatay kayd\u0131rma *\/\n  }\n  .log-entry {\n    border-left: 3px solid #ccc;\n    padding-left: 5px;\n    margin-bottom: 5px;\n  }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu, loglar\u0131 bir web sayfas\u0131nda g\u00f6steriyorsan\u0131z ge\u00e7erli bir yakla\u015f\u0131md\u0131r. Terminale loglama ba\u011flam\u0131nda ise, JSON \u00e7\u0131kt\u0131lar\u0131n\u0131n s\u0131k\u0131\u015ft\u0131r\u0131lmas\u0131 veya okunabilirli\u011finin art\u0131r\u0131lmas\u0131 i\u00e7in <code>console.group<\/code> gibi taray\u0131c\u0131 konsoluna \u00f6zel metotlar kullan\u0131labilir, ancak terminalde do\u011frudan ge\u00e7erli de\u011fildir. \u00d6nemli olan, log verilerinin format\u0131n\u0131n mobil cihazlarda veya d\u00fc\u015f\u00fck bant geni\u015fli\u011fine sahip ortamlarda bile h\u0131zl\u0131 bir \u015fekilde i\u015flenebilir olmas\u0131d\u0131r.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryosu: Bir E-ticaret Sitesi \u0130\u00e7in Vaka Analizi<\/h2>\n<p>\u015eimdiye kadar teorik bilgileri ve baz\u0131 kod \u00f6rneklerini inceledik. Bu b\u00f6l\u00fcmde, bir e-ticaret uygulamas\u0131nda \u00f6deme ak\u0131\u015f\u0131 testi \u00fczerinden, yap\u0131land\u0131r\u0131lm\u0131\u015f terminal loglaman\u0131n ger\u00e7ek bir senaryoda nas\u0131l fark yaratabilece\u011fini g\u00f6steren bir vaka analizini ele alaca\u011f\u0131z. Bir e-ticaret sitesi i\u00e7in \u00f6deme s\u00fcreci, genellikle bir\u00e7ok ad\u0131mdan olu\u015fur: \u00fcr\u00fcn sepete ekleme, adres ve kargo se\u00e7imi, \u00f6deme bilgileri giri\u015fi ve sipari\u015f onay\u0131. Bu karma\u015f\u0131k ak\u0131\u015f, potansiyel hata noktalar\u0131yla doludur ve her bir hata, \u015firkete do\u011frudan maliyet olarak geri d\u00f6nebilir.<\/p>\n<p>Geleneksel bir test otomasyonunda, bir \u00f6deme ak\u0131\u015f\u0131 testi ba\u015far\u0131s\u0131z oldu\u011funda, genellikle \u015funa benzer bir \u00e7\u0131kt\u0131 al\u0131rs\u0131n\u0131z:<\/p>\n<pre><code>\n  \u274c \u00d6deme Ak\u0131\u015f\u0131 Testi: Kullan\u0131c\u0131 ba\u015far\u0131l\u0131 bir \u015fekilde sipari\u015f vermeli\n    - Beklenen \"Sipari\u015f Onayland\u0131\" yaz\u0131s\u0131 bulunamad\u0131.\n    - Screenshot: \/reports\/screenshots\/\u00f6deme-hata-123.png\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00e7\u0131kt\u0131, bir insan\u0131n hatan\u0131n nerede oldu\u011funu anlamas\u0131 i\u00e7in yeterli olabilir. Ekran g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc inceleyerek, sayfan\u0131n y\u00fcklenmedi\u011fini veya bir hata mesaj\u0131 g\u00f6sterdi\u011fini g\u00f6rebilir. Ancak, bu bilgi AI i\u00e7in yetersizdir. AI, \"neden\" sorusunun cevab\u0131n\u0131 arar: \u00d6deme sa\u011flay\u0131c\u0131s\u0131yla bir entegrasyon hatas\u0131 m\u0131 oldu? Kredi kart\u0131 bilgileri yanl\u0131\u015f m\u0131 girildi? Kullan\u0131c\u0131n\u0131n adresi ge\u00e7ersiz miydi? Bu t\u00fcr sorular\u0131n cevaplar\u0131, geleneksel raporlarda genellikle sakl\u0131 kal\u0131r veya hi\u00e7 yer almaz.<\/p>\n<h3>AI Destekli Loglama ile Fark Yaratmak<\/h3>\n<p>Yap\u0131land\u0131r\u0131lm\u0131\u015f terminal loglamas\u0131 ile, ayn\u0131 \u00f6deme ak\u0131\u015f\u0131 testi ba\u015far\u0131s\u0131z oldu\u011funda AI'a \u00e7ok daha zengin bir veri seti sunabiliriz. \u0130\u015fte bu senaryo i\u00e7in tasarlanm\u0131\u015f JSON log \u00e7\u0131kt\u0131lar\u0131n\u0131n nas\u0131l g\u00f6r\u00fcnebilece\u011fine dair bir \u00f6rnek:<\/p>\n<pre><code>\n\/\/ Testin ba\u015flang\u0131c\u0131\n{\"event\":\"test_start\",\"testId\":\"PAYMENT_FLOW_123\",\"testName\":\"\u00d6deme Ak\u0131\u015f\u0131 Testi: Ba\u015far\u0131l\u0131 Sipari\u015f\",\"timestamp\":\"2023-10-27T11:00:00Z\"}\n\n\/\/ \u00dcr\u00fcn sepete eklendi\n{\"event\":\"item_added\",\"testId\":\"PAYMENT_FLOW_123\",\"productId\":\"PROD_SKU_001\",\"quantity\":1,\"timestamp\":\"2023-10-27T11:00:05Z\"}\n\n\/\/ Adres bilgileri girildi\n{\"event\":\"address_entered\",\"testId\":\"PAYMENT_FLOW_123\",\"country\":\"TR\",\"city\":\"Istanbul\",\"timestamp\":\"2023-10-27T11:00:10Z\"}\n\n\/\/ Kargo se\u00e7ene\u011fi belirlendi\n{\"event\":\"shipping_selected\",\"testId\":\"PAYMENT_FLOW_123\",\"method\":\"Standard\",\"cost\":15.00,\"timestamp\":\"2023-10-27T11:00:15Z\"}\n\n\/\/ \u00d6deme bilgileri giri\u015fi - Hata Durumu\n{\"event\":\"payment_failed\",\"testId\":\"PAYMENT_FLOW_123\",\"errorCode\":\"PAYMENT_GATEWAY_TIMEOUT\",\"errorMessage\":\"\u00d6deme sa\u011flay\u0131c\u0131dan yan\u0131t al\u0131namad\u0131.\",\"paymentMethod\":\"CreditCard\",\"url\":\"https:\/\/www.example.com\/checkout\/payment\",\"timestamp\":\"2023-10-27T11:00:20Z\"}\n\n\/\/ Testin sonu - Ba\u015far\u0131s\u0131z\n{\"event\":\"test_end\",\"testId\":\"PAYMENT_FLOW_123\",\"status\":\"FAIL\",\"reason\":\"Payment Gateway Timeout\",\"duration\":\"20s\",\"timestamp\":\"2023-10-27T11:00:21Z\"}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu JSON loglar\u0131 sayesinde, bir yapay zeka sistemi \u015funlar\u0131 h\u0131zla tespit edebilir:<\/p>\n<ul>\n<li><strong>Kesin Hata Noktas\u0131:<\/strong> Hatan\u0131n \u00f6deme a\u015famas\u0131nda ve \u00f6zellikle \u00f6deme sa\u011flay\u0131c\u0131 entegrasyonunda meydana geldi\u011fi net bir \u015fekilde g\u00f6r\u00fcl\u00fcyor (<code>\"event\":\"payment_failed\"<\/code>, <code>\"errorCode\":\"PAYMENT_GATEWAY_TIMEOUT\"<\/code>).<\/li>\n<li><strong>Tekrarlayan Hatalar:<\/strong> E\u011fer bu log mesaj\u0131 bir\u00e7ok test \u00e7al\u0131\u015ft\u0131rmas\u0131nda tekrar ediyorsa, AI, \"PAYMENT_GATEWAY_TIMEOUT\" hatas\u0131n\u0131n yayg\u0131n bir sorun oldu\u011funu ve \u00f6ncelikli olarak incelenmesi gerekti\u011fini otomatik olarak belirleyebilir.<\/li>\n<li><strong>Etkilenen Alanlar:<\/strong> AI, bu hatan\u0131n yaln\u0131zca kredi kart\u0131 \u00f6deme y\u00f6ntemini mi etkiledi\u011fini, yoksa t\u00fcm \u00f6deme y\u00f6ntemlerinde mi g\u00f6r\u00fcld\u00fc\u011f\u00fcn\u00fc analiz edebilir.<\/li>\n<li><strong>Trend Analizi:<\/strong> Belirli bir da\u011f\u0131t\u0131m sonras\u0131 bu hata say\u0131s\u0131nda ani bir art\u0131\u015f olup olmad\u0131\u011f\u0131n\u0131 izleyebilir ve bir regresyon uyar\u0131s\u0131 verebilir.<\/li>\n<\/ul>\n<h3>AI'\u0131n Sundu\u011fu \u0130\u00e7g\u00f6r\u00fcler \u0130\u00e7in Bir Kar\u015f\u0131la\u015ft\u0131rma Tablosu<\/h3>\n<p>A\u015fa\u011f\u0131daki tablo, geleneksel loglama ile AI destekli yap\u0131land\u0131r\u0131lm\u0131\u015f loglaman\u0131n kar\u015f\u0131la\u015ft\u0131rmas\u0131n\u0131 sunmaktad\u0131r:<\/p>\n<table>\n<thead>\n<tr>\n<th>\u00d6zellik<\/th>\n<th>Geleneksel Loglama\/Raporlama<\/th>\n<th>AI Destekli Yap\u0131land\u0131r\u0131lm\u0131\u015f Loglama<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Veri Format\u0131<\/strong><\/td>\n<td>\u0130nsan odakl\u0131 (HTML, ekran g\u00f6r\u00fcnt\u00fcleri)<\/td>\n<td>Makine odakl\u0131 (JSON, YAML)<\/td>\n<\/tr>\n<tr>\n<td><strong>Analiz Derinli\u011fi<\/strong><\/td>\n<td>Y\u00fczeysel, insan yorumuna ba\u011f\u0131ml\u0131<\/td>\n<td>Derinlemesine, otomatik k\u00f6k neden analizi<\/td>\n<\/tr>\n<tr>\n<td><strong>Hata Tespiti H\u0131z\u0131<\/strong><\/td>\n<td>Manuel inceleme gerektirir, yava\u015f<\/td>\n<td>Otomatik ve an\u0131nda, proaktif uyar\u0131lar<\/td>\n<\/tr>\n<tr>\n<td><strong>\u00d6r\u00fcnt\u00fc Tan\u0131ma<\/strong><\/td>\n<td>Zor, genellikle g\u00f6zden ka\u00e7ar<\/td>\n<td>Y\u00fcksek do\u011fruluk, tekrarlayan hatalar\u0131 belirler<\/td>\n<\/tr>\n<tr>\n<td><strong>Ekip Verimlili\u011fi<\/strong><\/td>\n<td>Hata ay\u0131klama zaman al\u0131c\u0131<\/td>\n<td>H\u0131zl\u0131 sorun giderme, geli\u015ftiriciye odaklanma<\/td>\n<\/tr>\n<tr>\n<td><strong>\u00d6l\u00e7eklenebilirlik<\/strong><\/td>\n<td>Test say\u0131s\u0131 artt\u0131k\u00e7a zorla\u015f\u0131r<\/td>\n<td>Y\u00fcksek \u00f6l\u00e7eklenebilirlik, b\u00fcy\u00fck test paketleri i\u00e7in ideal<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Bu vaka analizi, yap\u0131land\u0131r\u0131lm\u0131\u015f terminal loglamas\u0131n\u0131n sadece bir \"ek \u00f6zellik\" olmad\u0131\u011f\u0131n\u0131, ayn\u0131 zamanda modern ve verimli bir test otomasyon stratejisinin temel bir bile\u015feni oldu\u011funu a\u00e7\u0131k\u00e7a g\u00f6stermektedir. AI'a do\u011fru veriyi sa\u011flayarak, test otomasyonunuzu pasif bir raporlama sisteminden aktif bir zeka ve iyile\u015ftirme motoruna d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz.<\/p>\n<h2>\u0130leri D\u00fczey Teknikler: Loglamay\u0131 Daha Ak\u0131ll\u0131 Hale Getirmek<\/h2>\n<p>Basit <code>console.log<\/code> \u00e7a\u011fr\u0131lar\u0131 ile yap\u0131land\u0131r\u0131lm\u0131\u015f \u00e7\u0131kt\u0131 almak iyi bir ba\u015flang\u0131\u00e7 olsa da, test loglama stratejinizi daha da geli\u015ftirecek ileri d\u00fczey teknikler mevcuttur. Bu teknikler, loglar\u0131n\u0131z\u0131n zenginli\u011fini art\u0131r\u0131rken, ayn\u0131 zamanda performans ve y\u00f6netilebilirlik a\u00e7\u0131s\u0131ndan da avantajlar sunar. Yapay zekan\u0131n daha karma\u015f\u0131k analizler yapabilmesi i\u00e7in, log verilerinizin kalitesini ve miktar\u0131n\u0131 optimize etmek esast\u0131r.<\/p>\n<h3>1. \u00d6zel Test Raporlay\u0131c\u0131lar\u0131 (Custom Reporters) Kullan\u0131m\u0131<\/h3>\n<p>\u00c7o\u011fu test \u00e7er\u00e7evesi (Cypress, Playwright, Jest, Mocha), test sonu\u00e7lar\u0131n\u0131 farkl\u0131 formatlarda d\u0131\u015fa aktarmak i\u00e7in \u00f6zel raporlay\u0131c\u0131lar yazman\u0131za olanak tan\u0131r. Bu, <code>console.log<\/code> \u00e7a\u011fr\u0131lar\u0131n\u0131 test kodunuzdan ay\u0131rarak daha temiz bir kod taban\u0131 olu\u015fturman\u0131za ve log \u00e7\u0131kt\u0131s\u0131n\u0131 tamamen kontrol etmenize olanak tan\u0131r. \u00d6zel bir raporlay\u0131c\u0131 ile, her testin ba\u015flang\u0131c\u0131nda, biti\u015finde, her ad\u0131mda veya bir hata meydana geldi\u011finde otomatik olarak yap\u0131land\u0131r\u0131lm\u0131\u015f JSON loglar\u0131 olu\u015fturabilirsiniz.<\/p>\n<p>\u00d6rne\u011fin, Playwright i\u00e7in \u00f6zel bir <code>reporter.ts<\/code> dosyas\u0131 olu\u015fturabilirsiniz:<\/p>\n<pre><code>\n\/\/ my-json-reporter.ts\nimport type { Reporter, TestCase, TestResult, FullResult } from '@playwright\/test\/reporter';\n\nclass MyJsonReporter implements Reporter {\n  onBegin(config, suite) {\n    console.log(JSON.stringify({ event: \"run_start\", timestamp: new Date().toISOString(), totalTests: suite.allTests().length }));\n  }\n\n  onTestEnd(test: TestCase, result: TestResult) {\n    const logData = {\n      event: \"test_end\",\n      testId: test.id,\n      testTitle: test.title,\n      status: result.status.toUpperCase(), \/\/ 'passed', 'failed', 'skipped'\n      duration: result.duration,\n      startTime: new Date(result.startTime).toISOString(),\n      endTime: new Date(result.startTime.getTime() + result.duration).toISOString(),\n      errors: result.errors.map(err => ({ message: err.message, stack: err.stack })),\n      attachments: result.attachments.map(att => ({ name: att.name, path: att.path, contentType: att.contentType }))\n    };\n    console.log(JSON.stringify(logData));\n  }\n\n  onEnd(result: FullResult) {\n    console.log(JSON.stringify({ event: \"run_end\", timestamp: new Date().toISOString(), status: result.status.toUpperCase(), totalDuration: result.duration }));\n  }\n}\nexport default MyJsonReporter;\n<\/pre>\n<p><\/code><\/p>\n<p>Bu raporlay\u0131c\u0131y\u0131 <code>playwright.config.ts<\/code> dosyan\u0131zda etkinle\u015ftirebilirsiniz:<\/p>\n<pre><code>\n\/\/ playwright.config.ts\nimport { defineConfig } from '@playwright\/test';\n\nexport default defineConfig({\n  reporter: [\n    ['list'], \/\/ Terminalde okunabilirlik i\u00e7in varsay\u0131lan list raporlay\u0131c\u0131\n    ['.\/my-json-reporter.ts', { \/* options *\/ }] \/\/ Kendi \u00f6zel raporlay\u0131c\u0131m\u0131z\n  ],\n  \/\/ ... di\u011fer yap\u0131land\u0131rmalar\n});\n<\/pre>\n<p><\/code><\/p>\n<p>Bu y\u00f6ntem, test kodunuzu loglama mant\u0131\u011f\u0131ndan ay\u0131rarak daha s\u00fcrd\u00fcr\u00fclebilir bir yap\u0131 sa\u011flar. AI, bu zengin JSON \u00e7\u0131kt\u0131s\u0131n\u0131 kolayca t\u00fcketebilir.<\/p>\n<h3>2. Ko\u015fullu Loglama ve Detay Seviyeleri (Verbose Mode)<\/h3>\n<p>Her test ad\u0131m\u0131nda detayl\u0131 loglar \u00fcretmek, bazen terminal \u00e7\u0131kt\u0131s\u0131n\u0131 a\u015f\u0131r\u0131 derecede doldurabilir ve okunabilirli\u011fi d\u00fc\u015f\u00fcrebilir. Ayr\u0131ca, gereksiz loglar disk alan\u0131 t\u00fcketimini art\u0131rabilir ve log toplama sistemlerinin y\u00fck\u00fcn\u00fc y\u00fckseltebilir. Bu sorunu \u00e7\u00f6zmek i\u00e7in ko\u015fullu loglama veya detay seviyeleri kullanabilirsiniz. Loglama seviyelerini (DEBUG, INFO, WARN, ERROR) tan\u0131mlayarak, yaln\u0131zca belirli bir seviyenin \u00fczerindeki loglar\u0131n \u00e7\u0131kt\u0131ya yans\u0131mas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<p>Bunu genellikle ortam de\u011fi\u015fkenleri arac\u0131l\u0131\u011f\u0131yla kontrol ederiz:<\/p>\n<pre><code>\n\/\/ Test kodunuzda\nconst LOG_LEVEL = process.env.LOG_LEVEL || 'INFO'; \/\/ Ortam de\u011fi\u015fkeni ile kontrol\n\nfunction log(level, data) {\n  const levels = { 'DEBUG': 0, 'INFO': 1, 'WARN': 2, 'ERROR': 3 };\n  if (levels[level] >= levels[LOG_LEVEL]) {\n    console.log(JSON.stringify({ level: level, ...data, timestamp: new Date().toISOString() }));\n  }\n}\n\n\/\/ Kullan\u0131m \u00f6rne\u011fi\nlog('INFO', { event: \"page_load\", url: \"example.com\" });\n\/\/ LOG_LEVEL=DEBUG olarak ayarlan\u0131rsa bu log da g\u00f6r\u00fcn\u00fcr\nlog('DEBUG', { event: \"element_found\", selector: \"#myButton\" });\n<\/pre>\n<p><\/code><\/p>\n<p>Bu sayede, geli\u015ftirme s\u0131ras\u0131nda detayl\u0131 <code>DEBUG<\/code> loglar\u0131 alabilirken, CI\/CD ortam\u0131nda sadece <code>INFO<\/code> veya <code>ERROR<\/code> seviyesindeki kritik loglar\u0131 g\u00f6r\u00fcnt\u00fcleyebilirsiniz. AI sistemleri i\u00e7in ise genellikle t\u00fcm detay seviyelerindeki loglara eri\u015fim faydal\u0131d\u0131r, bu y\u00fczden AI'\u0131n t\u00fcketece\u011fi ak\u0131\u015f i\u00e7in <code>LOG_LEVEL<\/code> her zaman <code>DEBUG<\/code> olarak ayarlanabilir.<\/p>\n<h3>3. Log G\u00fcvenli\u011fi ve Hassas Verilerin Korunmas\u0131<\/h3>\n<p>Terminal loglar\u0131, kullan\u0131c\u0131 adlar\u0131, \u015fifreler, kredi kart\u0131 numaralar\u0131 veya ki\u015fisel kimlik bilgileri gibi hassas verileri i\u00e7ermemelidir. Bu t\u00fcr verilerin yanl\u0131\u015fl\u0131kla loglanmas\u0131, ciddi g\u00fcvenlik ihlallerine yol a\u00e7abilir. Bu nedenle, loglama stratejinizin bir par\u00e7as\u0131 olarak hassas veri maskeleme veya filtreleme mekanizmalar\u0131 uygulamak zorunludur.<\/p>\n<ul>\n<li><strong>Maskeleme Fonksiyonlar\u0131:<\/strong> Loglama yapmadan \u00f6nce hassas verileri <code>***<\/code> veya benzeri bir maske ile de\u011fi\u015ftiren yard\u0131mc\u0131 fonksiyonlar yaz\u0131n.<\/li>\n<li><strong>Ortam De\u011fi\u015fkenleri:<\/strong> Hassas konfig\u00fcrasyonlar\u0131 do\u011frudan koda g\u00f6mmek yerine ortam de\u011fi\u015fkenleri arac\u0131l\u0131\u011f\u0131yla y\u00f6netin.<\/li>\n<li><strong>Veri Sanitizasyonu:<\/strong> Loglama pipeline'\u0131n\u0131z\u0131n bir par\u00e7as\u0131 olarak, loglar\u0131 merkezi bir sisteme g\u00f6ndermeden \u00f6nce hassas bilgileri otomatik olarak alg\u0131lay\u0131p kald\u0131ran veya maskeleyen ara\u00e7lar kullan\u0131n.<\/li>\n<\/ul>\n<pre><code>\nfunction maskSensitiveData(data) {\n  const sensitiveKeys = ['password', 'creditCardNumber', 'email', 'ssn'];\n  const maskedData = { ...data };\n  for (const key of sensitiveKeys) {\n    if (maskedData[key]) {\n      maskedData[key] = '<strong>*MASKED<\/strong>*';\n    }\n  }\n  return maskedData;\n}\n\n\/\/ Kullan\u0131m \u00f6rne\u011fi\nconst userData = { username: \"testuser\", password: \"securepassword123\", email: \"test@example.com\" };\nlog('INFO', maskSensitiveData({ event: \"user_login\", ...userData }));\n<\/pre>\n<p><\/code><\/p>\n<p>Bu ileri d\u00fczey teknikler, loglama stratejinizi sadece AI dostu de\u011fil, ayn\u0131 zamanda daha sa\u011flam, y\u00f6netilebilir ve g\u00fcvenli hale getirecektir. Bu sayede, test otomasyonunuzdan elde etti\u011finiz de\u011fer, mevcut yeteneklerinin \u00e7ok \u00f6tesine ge\u00e7ecektir.<\/p>\n<h2>Sonu\u00e7: Test Loglamas\u0131n\u0131n Gelece\u011fi ve Yapay Zeka<\/h2>\n<p>Test otomasyonu, yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinin vazge\u00e7ilmez bir par\u00e7as\u0131 olmaya devam ederken, bu s\u00fcre\u00e7ten elde edilen verilerin kalitesi ve analizi giderek daha kritik hale gelmektedir. Geleneksel test raporlama y\u00f6ntemleri, insan odakl\u0131 olmalar\u0131 nedeniyle yapay zeka sistemleri i\u00e7in \u00e7o\u011fu zaman yetersiz kalmaktad\u0131r. Ancak, bu makalede detayland\u0131rd\u0131\u011f\u0131m\u0131z gibi, taray\u0131c\u0131 testlerinizin \u00e7\u0131kt\u0131s\u0131n\u0131 do\u011frudan terminale yap\u0131land\u0131r\u0131lm\u0131\u015f JSON format\u0131nda loglamak, bu durumu temelden de\u011fi\u015ftirebilir.<\/p>\n<p>Yap\u0131land\u0131r\u0131lm\u0131\u015f terminal loglamas\u0131, yapay zekan\u0131n test sonu\u00e7lar\u0131n\u0131 \u00e7ok daha derinlemesine analiz etmesine olanak tan\u0131r. Art\u0131k sadece bir testin \"ba\u015far\u0131s\u0131z\" oldu\u011funu de\u011fil, ayn\u0131 zamanda neden ba\u015far\u0131s\u0131z oldu\u011funu, hangi ad\u0131mda ger\u00e7ekle\u015fti\u011fini, hata kodunu, hata mesaj\u0131n\u0131 ve hatta ilgili t\u00fcm ba\u011flam bilgilerini i\u00e7eren zengin bir veri seti sunabiliyoruz. Bu sayede AI, k\u00f6k neden analizi yapabilir, tekrarlayan hatalar\u0131 tespit edebilir, performans d\u00fc\u015f\u00fc\u015flerini \u00f6ng\u00f6rebilir ve test paketlerinin optimizasyonu i\u00e7in de\u011ferli \u00f6nerilerde bulunabilir.<\/p>\n<p>Gelecekte, test otomasyonu ve yapay zeka aras\u0131ndaki bu simbiyotik ili\u015fki daha da g\u00fc\u00e7lenecektir. AI, sadece mevcut test sonu\u00e7lar\u0131n\u0131 analiz etmekle kalmayacak, ayn\u0131 zamanda test senaryolar\u0131n\u0131 otomatik olarak \u00fcretebilecek, UI de\u011fi\u015fikliklerine kar\u015f\u0131 kendini iyile\u015ftiren testler olu\u015fturabilecek ve hatta potansiyel hatalar\u0131 hen\u00fcz kod yaz\u0131lmadan tahmin edebilecektir. Bu vizyona ula\u015fman\u0131n temel ad\u0131mlar\u0131ndan biri ise, AI'\u0131 besleyecek kaliteli, yap\u0131land\u0131r\u0131lm\u0131\u015f ve anlaml\u0131 test verileri sa\u011flamakt\u0131r. Terminale yap\u0131land\u0131r\u0131lm\u0131\u015f loglama, bu b\u00fcy\u00fck resmin kritik bir par\u00e7as\u0131d\u0131r ve modern test ekiplerinin bu y\u00f6nde yat\u0131r\u0131m yapmas\u0131, uzun vadede b\u00fcy\u00fck faydalar sa\u011flayacakt\u0131r.<\/p>\n<div class=\"interactive-tip\">\n  Uzman \u0130pucu: Loglama stratejinizi geli\u015ftirirken, sadece ba\u015far\u0131l\u0131 senaryolar\u0131 de\u011fil, ayn\u0131 zamanda beklenen hata senaryolar\u0131n\u0131 da detayl\u0131 bir \u015fekilde loglamay\u0131 unutmay\u0131n. Bu, AI'\u0131n hata durumlar\u0131n\u0131 daha iyi anlamas\u0131na yard\u0131mc\u0131 olur.\n<\/div>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ol>\n<li>\n        <strong>Neden terminale loglama, geleneksel raporlardan daha iyi?<\/strong><\/p>\n<p>Geleneksel raporlar (HTML, PDF) genellikle g\u00f6rsel odakl\u0131 ve insanlar i\u00e7in tasarlanm\u0131\u015ft\u0131r. AI sistemleri ise yap\u0131land\u0131r\u0131lm\u0131\u015f metin verisini (JSON gibi) \u00e7ok daha h\u0131zl\u0131 ve verimli bir \u015fekilde i\u015fler. Terminale JSON format\u0131nda loglama, AI'\u0131n do\u011frudan analiz edebilece\u011fi, makine taraf\u0131ndan okunabilir bir veri ak\u0131\u015f\u0131 sa\u011flar, bu da otomasyon ve analiz s\u00fcre\u00e7lerini h\u0131zland\u0131r\u0131r.<\/p>\n<\/li>\n<li>\n        <strong>AI, yap\u0131land\u0131r\u0131lm\u0131\u015f loglar\u0131 nas\u0131l kullan\u0131r?<\/strong><\/p>\n<p>AI, yap\u0131land\u0131r\u0131lm\u0131\u015f loglardaki anahtar-de\u011fer \u00e7iftlerini ve hiyerar\u015fik bilgileri kullanarak \u00f6r\u00fcnt\u00fcleri tan\u0131r. \u00d6rne\u011fin, belirli bir hata kodunun hangi test senaryolar\u0131nda daha s\u0131k ortaya \u00e7\u0131kt\u0131\u011f\u0131n\u0131, belirli bir da\u011f\u0131t\u0131m sonras\u0131 hata say\u0131lar\u0131nda ani art\u0131\u015f olup olmad\u0131\u011f\u0131n\u0131 veya hangi kullan\u0131c\u0131 etkile\u015fimlerinin hataya yol a\u00e7t\u0131\u011f\u0131n\u0131 analiz edebilir. Bu sayede k\u00f6k neden analizi, hata tahmini ve test optimizasyonu gibi g\u00f6revleri yerine getirir.<\/p>\n<\/li>\n<li>\n        <strong>Her test ad\u0131m\u0131 i\u00e7in loglama performans\u0131 etkiler mi?<\/strong><\/p>\n<p>Evet, her test ad\u0131m\u0131 i\u00e7in a\u015f\u0131r\u0131 detayl\u0131 loglama yapmak, test s\u00fcresini bir miktar uzatabilir. Ancak modern sistemlerde <code>console.log<\/code> \u00e7a\u011fr\u0131lar\u0131 genellikle optimize edilmi\u015ftir ve performans etkisi minimaldir. Dengeli bir yakla\u015f\u0131m \u00f6nemlidir: kritik ad\u0131mlar\u0131, hata durumlar\u0131n\u0131 ve \u00f6nemli durum de\u011fi\u015fikliklerini loglay\u0131n. Ayr\u0131ca, ortam de\u011fi\u015fkenleriyle kontrol edilebilen ko\u015fullu loglama kullanarak, sadece ihtiya\u00e7 duyuldu\u011funda detayl\u0131 loglar alabilirsiniz.<\/p>\n<\/li>\n<li>\n        <strong>Hangi test \u00e7er\u00e7eveleri bu yakla\u015f\u0131ma en uygun?<\/strong><\/p>\n<p>Playwright ve Cypress gibi modern JavaScript tabanl\u0131 taray\u0131c\u0131 test \u00e7er\u00e7eveleri, <code>console.log<\/code> ve \u00f6zel raporlay\u0131c\u0131 mekanizmalar\u0131 sayesinde bu yakla\u015f\u0131ma olduk\u00e7a uygundur. Selenium tabanl\u0131 testler de Java, Python veya C# gibi dillerde benzer loglama k\u00fct\u00fcphaneleri (\u00f6rne\u011fin Log4j, Serilog) kullan\u0131larak yap\u0131land\u0131r\u0131lm\u0131\u015f loglar \u00fcretebilir.<\/p>\n<\/li>\n<li>\n        <strong>Log g\u00fcvenli\u011fi ve hassas veriler ne olacak?<\/strong><\/p>\n<p>Log g\u00fcvenli\u011fi hayati \u00f6neme sahiptir. Kullan\u0131c\u0131 adlar\u0131, \u015fifreler, kredi kart\u0131 bilgileri gibi hassas verilerin kesinlikle loglanmamas\u0131 gerekir. Loglama yapmadan \u00f6nce bu t\u00fcr verileri maskeleyen veya tamamen kald\u0131ran mekanizmalar (maskeleme fonksiyonlar\u0131, veri sanitizasyonu) uygulamak zorunludur. Ortam de\u011fi\u015fkenleri kullanarak hassas bilgileri do\u011frudan koddan ay\u0131rmak da iyi bir uygulamad\u0131r.<\/p>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"Test otomasyonu d\u00fcnyas\u0131nda, test sonu\u00e7lar\u0131n\u0131 do\u011fru ve h\u0131zl\u0131 bir \u015fekilde yorumlamak kritik \u00f6neme sahiptir. Geleneksel raporlama y\u00f6ntemleri genellikle&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1342],"tags":[],"class_list":{"0":"post-33770","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ai","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Browser Testlerinde AI \u0130\u00e7in Terminale Loglama Nas\u0131l Yap\u0131l\u0131r?<\/title>\n<meta name=\"description\" content=\"Test otomasyonu d\u00fcnyas\u0131nda, test sonu\u00e7lar\u0131n\u0131 do\u011fru ve h\u0131zl\u0131 bir \u015fekilde yorumlamak kritik \u00f6neme sahiptir. Geleneksel raporlama y\u00f6ntemleri genellikle insan g\u00f6z\u00fc i\u00e7in tasarlanm\u0131\u015fken, yapay zeka destekli analiz sistemleri i\u00e7in bu verileri daha eri\u015filebilir k\u0131lmak, test s\u00fcre\u00e7lerinizi bir sonraki seviyeye ta\u015f\u0131yabilir. Peki, taray\u0131c\u0131 testlerinizin \u00e7\u0131kt\u0131s\u0131n\u0131 do\u011frudan terminale yap\u0131land\u0131r\u0131lm\u0131\u015f bir \u015fekilde loglayarak yapay zekan\u0131n i\u015fini nas\u0131l kolayla\u015ft\u0131rabilirsiniz? Bu makale, test otomasyonunuzu AI dostu hale getirmenin yollar\u0131n\u0131 ke\u015ffetmenizi sa\u011flayacak.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Browser Testlerinde AI \u0130\u00e7in Terminale Loglama Nas\u0131l Yap\u0131l\u0131r?\" \/>\n<meta property=\"og:description\" content=\"Test otomasyonu d\u00fcnyas\u0131nda, test sonu\u00e7lar\u0131n\u0131 do\u011fru ve h\u0131zl\u0131 bir \u015fekilde yorumlamak kritik \u00f6neme sahiptir. Geleneksel raporlama y\u00f6ntemleri genellikle insan g\u00f6z\u00fc i\u00e7in tasarlanm\u0131\u015fken, yapay zeka destekli analiz sistemleri i\u00e7in bu verileri daha eri\u015filebilir k\u0131lmak, test s\u00fcre\u00e7lerinizi bir sonraki seviyeye ta\u015f\u0131yabilir. Peki, taray\u0131c\u0131 testlerinizin \u00e7\u0131kt\u0131s\u0131n\u0131 do\u011frudan terminale yap\u0131land\u0131r\u0131lm\u0131\u015f bir \u015fekilde loglayarak yapay zekan\u0131n i\u015fini nas\u0131l kolayla\u015ft\u0131rabilirsiniz? Bu makale, test otomasyonunuzu AI dostu hale getirmenin yollar\u0131n\u0131 ke\u015ffetmenizi sa\u011flayacak.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-06T17:01:02+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Browser Testlerinde AI \u0130\u00e7in Terminale Loglama Nas\u0131l Yap\u0131l\u0131r?\",\"datePublished\":\"2025-11-06T17:01:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/\"},\"wordCount\":3786,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"AI\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/\",\"name\":\"Browser Testlerinde AI \u0130\u00e7in Terminale Loglama Nas\u0131l Yap\u0131l\u0131r?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-06T17:01:02+00:00\",\"description\":\"Test otomasyonu d\u00fcnyas\u0131nda, test sonu\u00e7lar\u0131n\u0131 do\u011fru ve h\u0131zl\u0131 bir \u015fekilde yorumlamak kritik \u00f6neme sahiptir. Geleneksel raporlama y\u00f6ntemleri genellikle insan g\u00f6z\u00fc i\u00e7in tasarlanm\u0131\u015fken, yapay zeka destekli analiz sistemleri i\u00e7in bu verileri daha eri\u015filebilir k\u0131lmak, test s\u00fcre\u00e7lerinizi bir sonraki seviyeye ta\u015f\u0131yabilir. Peki, taray\u0131c\u0131 testlerinizin \u00e7\u0131kt\u0131s\u0131n\u0131 do\u011frudan terminale yap\u0131land\u0131r\u0131lm\u0131\u015f bir \u015fekilde loglayarak yapay zekan\u0131n i\u015fini nas\u0131l kolayla\u015ft\u0131rabilirsiniz? Bu makale, test otomasyonunuzu AI dostu hale getirmenin yollar\u0131n\u0131 ke\u015ffetmenizi sa\u011flayacak.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Browser Testlerinde AI \u0130\u00e7in Terminale Loglama Nas\u0131l Yap\u0131l\u0131r?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Browser Testlerinde AI \u0130\u00e7in Terminale Loglama Nas\u0131l Yap\u0131l\u0131r?","description":"Test otomasyonu d\u00fcnyas\u0131nda, test sonu\u00e7lar\u0131n\u0131 do\u011fru ve h\u0131zl\u0131 bir \u015fekilde yorumlamak kritik \u00f6neme sahiptir. Geleneksel raporlama y\u00f6ntemleri genellikle insan g\u00f6z\u00fc i\u00e7in tasarlanm\u0131\u015fken, yapay zeka destekli analiz sistemleri i\u00e7in bu verileri daha eri\u015filebilir k\u0131lmak, test s\u00fcre\u00e7lerinizi bir sonraki seviyeye ta\u015f\u0131yabilir. Peki, taray\u0131c\u0131 testlerinizin \u00e7\u0131kt\u0131s\u0131n\u0131 do\u011frudan terminale yap\u0131land\u0131r\u0131lm\u0131\u015f bir \u015fekilde loglayarak yapay zekan\u0131n i\u015fini nas\u0131l kolayla\u015ft\u0131rabilirsiniz? Bu makale, test otomasyonunuzu AI dostu hale getirmenin yollar\u0131n\u0131 ke\u015ffetmenizi sa\u011flayacak.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/","og_locale":"tr_TR","og_type":"article","og_title":"Browser Testlerinde AI \u0130\u00e7in Terminale Loglama Nas\u0131l Yap\u0131l\u0131r?","og_description":"Test otomasyonu d\u00fcnyas\u0131nda, test sonu\u00e7lar\u0131n\u0131 do\u011fru ve h\u0131zl\u0131 bir \u015fekilde yorumlamak kritik \u00f6neme sahiptir. Geleneksel raporlama y\u00f6ntemleri genellikle insan g\u00f6z\u00fc i\u00e7in tasarlanm\u0131\u015fken, yapay zeka destekli analiz sistemleri i\u00e7in bu verileri daha eri\u015filebilir k\u0131lmak, test s\u00fcre\u00e7lerinizi bir sonraki seviyeye ta\u015f\u0131yabilir. Peki, taray\u0131c\u0131 testlerinizin \u00e7\u0131kt\u0131s\u0131n\u0131 do\u011frudan terminale yap\u0131land\u0131r\u0131lm\u0131\u015f bir \u015fekilde loglayarak yapay zekan\u0131n i\u015fini nas\u0131l kolayla\u015ft\u0131rabilirsiniz? Bu makale, test otomasyonunuzu AI dostu hale getirmenin yollar\u0131n\u0131 ke\u015ffetmenizi sa\u011flayacak.","og_url":"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-06T17:01:02+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Browser Testlerinde AI \u0130\u00e7in Terminale Loglama Nas\u0131l Yap\u0131l\u0131r?","datePublished":"2025-11-06T17:01:02+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/"},"wordCount":3786,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["AI"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/","url":"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/","name":"Browser Testlerinde AI \u0130\u00e7in Terminale Loglama Nas\u0131l Yap\u0131l\u0131r?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-06T17:01:02+00:00","description":"Test otomasyonu d\u00fcnyas\u0131nda, test sonu\u00e7lar\u0131n\u0131 do\u011fru ve h\u0131zl\u0131 bir \u015fekilde yorumlamak kritik \u00f6neme sahiptir. Geleneksel raporlama y\u00f6ntemleri genellikle insan g\u00f6z\u00fc i\u00e7in tasarlanm\u0131\u015fken, yapay zeka destekli analiz sistemleri i\u00e7in bu verileri daha eri\u015filebilir k\u0131lmak, test s\u00fcre\u00e7lerinizi bir sonraki seviyeye ta\u015f\u0131yabilir. Peki, taray\u0131c\u0131 testlerinizin \u00e7\u0131kt\u0131s\u0131n\u0131 do\u011frudan terminale yap\u0131land\u0131r\u0131lm\u0131\u015f bir \u015fekilde loglayarak yapay zekan\u0131n i\u015fini nas\u0131l kolayla\u015ft\u0131rabilirsiniz? Bu makale, test otomasyonunuzu AI dostu hale getirmenin yollar\u0131n\u0131 ke\u015ffetmenizi sa\u011flayacak.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/browser-testlerinde-ai-icin-terminale-loglama-nasil-yapilir\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Browser Testlerinde AI \u0130\u00e7in Terminale Loglama Nas\u0131l Yap\u0131l\u0131r?"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=33770"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33770\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33770"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}