<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mustafa</title>
    <description>The latest articles on DEV Community by Mustafa (@byksy).</description>
    <link>https://dev.to/byksy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F764650%2Fd4dec84f-b11d-4f55-914d-3731d159bc23.jpeg</url>
      <title>DEV Community: Mustafa</title>
      <link>https://dev.to/byksy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/byksy"/>
    <language>en</language>
    <item>
      <title>Swagger İle Rest Api'ni Konuştur - 1</title>
      <dc:creator>Mustafa</dc:creator>
      <pubDate>Thu, 10 Mar 2022 20:21:52 +0000</pubDate>
      <link>https://dev.to/byksy/swagger-ile-rest-apini-konustur-1-1e9f</link>
      <guid>https://dev.to/byksy/swagger-ile-rest-apini-konustur-1-1e9f</guid>
      <description>&lt;p&gt;Uzatmadan neler yapacağımızı baştan söylemek isterim:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rest Api sistemi kuracağız.&lt;/li&gt;
&lt;li&gt;Swagger ile Rest Api mizin konuşmasını sağlayacağız.&lt;/li&gt;
&lt;li&gt;Token yapısını kuracağız. (Bonus)&lt;/li&gt;
&lt;li&gt;Api mizi Lokal bir veritabanına bağlayacağız.&lt;/li&gt;
&lt;li&gt;Veritabanı üzerinden CRUD işlemleri yapacağız.&lt;/li&gt;
&lt;li&gt;Api mizi Benchmark testine tabi tutacağız.&lt;/li&gt;
&lt;li&gt;Bir çok request ve response u thread group larda toplayıp Jmeter ile yük testini gerçekleştireceğiz.&lt;/li&gt;
&lt;li&gt;Grafana ile sistemizdeki performans metriklerini canlı olarak takip edeceğiz.&lt;/li&gt;
&lt;li&gt;Biraz da exception handling kapsamında Retry mekanizmasından bahsedeceğiz.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yeterli mi? 😊 Siz de takdir ederseniz ki yukarıda belirttiğim maddeler bir yazıya sığmaz o yüzden bir yazı serisine başlayacağız. Hadi başlayalım.&lt;/p&gt;




&lt;p&gt;Bir Rest Api oluştururken yapacağımız en önemli işlemlerden bir tanesi sistemimizin uygulama üzerinden gelecek isteklere (request) cevap verebilmesidir. Kullancı veri çekmek, herhangi bir veriyi güncellemek ya da silmek de isteyebilir. Eğer bir Rest Api yazıyorsanız bunlar için request/response methodları oluşturmanız, veri tabanına bağlantı yapmanız ve test etmeniz gerekecek ve bu esnada bir çok problemlerle (bug) karşılacabileceksiniz. Şimdi size bunu kısa yoldan nasıl test edebileceğimize, request ve response mantığının nasıl işlediğine beraber bakmak istiyorum. Bu yazı bir yemek tarifi kıvamında olacak. 😊 Yemek yaparken ihtiyaç duyduğumuz araçlar, malzemeler ve yapılış aşamaları bu yazımızda harfiyen uygulanacak. &lt;/p&gt;




&lt;p&gt;Araçlarımız:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visual Studio (Code değil! - Bir ara orada da yaparız.)&lt;/li&gt;
&lt;li&gt;Jmeter, InfluxDB, Grafana (Aciliyeti yok ama test yapacaksak, neden olmasın.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Malzemeler:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ASP.Net Web Application&lt;/li&gt;
&lt;li&gt;Swagger&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mental Olarak Hazırlık Aşaması:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sabır&lt;/li&gt;
&lt;li&gt;Kod yazma&lt;/li&gt;
&lt;li&gt;Test&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Araçlarımız, malzemelerimiz ve de yemek öncesi hazırlıklarımız tamamsa tarife geçebiliriz. &lt;/p&gt;




&lt;p&gt;Aklınıza şöyle bir düşünce gelebilir. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;İlk önce Web API nin sonra Swagger ın tanımını yapmalı, kullanma amaçlarını açıklamalıydı sonra tarife geçmeliydi, giriş-gelişme-sonuç, bize böyle öğretildi. Yanlış anlatıyor bu?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Peki şöyle düşünün ben bir yemek tarifine bakarken aşçı yemekte araç olarak kullandığı tavayı, doğradığı soğanı veya domatesi size tanımını mı yapıp daha sonra mı tarife geçiyor. Yoksa sen tavanın veya domatesin - eğer bilmiyorsanız tabii - ne olduğunu aşçı yaparken ve de kendin evde test ederken mi anlıyorsun. Aydınlandık biraz değil mi? 😊&lt;/p&gt;

&lt;p&gt;Tanımlamalara takılmayın, yapın, yapın ve yüz kere yapın, tadına bakın güzelse tabağa koyun, tuzu eksikse tuz ekleyin fazlaysa su, ama sıcak su - soğuk su eklerseniz yemek bulamaca dönebilir. Kodlama da böyle pratik yaparak, hatalar ... cümlenin sonunu hepimiz biliyoruz, çok uzatmayım hadi başlayalım.&lt;/p&gt;

&lt;p&gt;Başlıyoruz...&lt;/p&gt;




&lt;p&gt;Serimizin ilk yazısında Web Api yi kuracağız, Swagger ı ekleyeceğiz ve ilk ekran görüntüsünü alacağız.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Visual Studio yu açınız ve &lt;strong&gt;Create A New Project&lt;/strong&gt; tabına basınız&lt;/li&gt;
&lt;li&gt;Proje olarak &lt;strong&gt;ASP.NET Web Application (.NET FRAMEWORK)&lt;/strong&gt; seçiniz.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvxxx7jg3cv43iz7h1x68.png" alt="Web Api"&gt;
&lt;/li&gt;
&lt;li&gt;Proje ismini belirleyiniz, hangi klasörde muhafaza edeceğinizi ve framework ünüzü belirleyiniz. (Framework olarak 4.7.2 yi seçebilirsiniz)
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftgqwc9qalm7p0nlumsui.png" alt="Web Api"&gt;
&lt;/li&gt;
&lt;li&gt;Sonra aşağıdaki gibi Authentication bölümüne tıklayın ve &lt;strong&gt;Individual User Accounts&lt;/strong&gt; u seçiniz.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feosn3wlzyo2c6f9upi7j.png" alt="Web Api"&gt;
&lt;/li&gt;
&lt;li&gt;Karşınıza aşağıdaki gibi bir ekran gelecektir. Play tuşuna basın ve sisteminizin çalışıp çalışmadığını kontrol ediniz.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flcfkek03c1smgb0mx9m0.png" alt="Web Api"&gt;
&lt;/li&gt;
&lt;li&gt;Sisteminizin çalışıyorsa karşınıza böyle bir sayfa çıkmasını beklemeliyiz. Ne kadar kolay ilerliyoruz değil mi? 😊
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa1jwt08n051dfms7xqdx.png" alt="Web Api"&gt;
&lt;/li&gt;
&lt;li&gt;Şimdi sıra geldi &lt;strong&gt;Swagger&lt;/strong&gt; kütüphanesini eklemeye. Eğer web sitesi hala açıksa Visual Studio daki projenizdeki kırmızı kare tuşuna ki kendisi Stop düğmesi olarak bilinir, lütfen basınız.&lt;/li&gt;
&lt;li&gt;Swagger ı eklemek için projenizdeki &lt;strong&gt;References **sekmesine right-click yapınız ve **Manage Nuget Packages&lt;/strong&gt; kısmına tıklayınız.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjdnu7cyevoi8mn2dpajq.png" alt="Web Api"&gt;
&lt;/li&gt;
&lt;li&gt;Karşınıza çıkan ekranda &lt;strong&gt;Browse&lt;/strong&gt; tabını seçiniz ve &lt;strong&gt;Swashbuckle&lt;/strong&gt; yazın ve karşınıza aşağıdaki gibi bir liste gelecektir. Kırmızı ile çizdiğim kütüphaneyi seçip, Install butonuna basınız ve karşınıza çıkacak diğer onay ekranlarına da Kabul Et diyerek devam ediniz. Yükleme işlemi tamamlanınca yüklediğiniz kütüphanenin üzerinde aşağıda gösterilen resimdeki gibi yeşil bir tick işareti çıkar. Doğru yoldasınız😊
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkhfr1k7jimrs5ud1polo.png" alt="Web Api"&gt;
&lt;/li&gt;
&lt;li&gt;Öyle ise tekrar play tuşuna basınız sitenizin yüklendiğini göreceksiniz. Siteniz açıldığında Url kısmına, sitenizin isminin sonuna aşağıdaki gibi &lt;strong&gt;/swagger&lt;/strong&gt; yazınız.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwtnw4xqyjbr32po2dz5.png" alt="Web Api"&gt;
&lt;/li&gt;
&lt;li&gt;İşte bu kadar! Karşınızda Rest Api denince akla gelen request/response ların örnekleri ile dolu bir ekran.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2omw97ygz2lkx1bd3q19.png" alt="Web Api"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Bu ekranda ilgili resquest leri test edebilir ve response ları gözlemleyebilirsiniz. Büyük ihtimalle çoğunda yetki hatası alacaksınız. O durumu da bir sonraki yazıya devredeceğim.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Arkadaşlar şimdilik ilk kurulumu yaptık ve görüntüyü aldık. Bu aşamada herhangi bir problemle karşılaşırsanız mesaj atabilirsiniz, seve seve öğretmeye çalışırım. &lt;/p&gt;

&lt;p&gt;İyi kodlamalar... 💪😍&lt;/p&gt;

</description>
      <category>swagger</category>
      <category>rest</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>RESTful API Üzerinde Baştan Sona Performans Testi</title>
      <dc:creator>Mustafa</dc:creator>
      <pubDate>Mon, 17 Jan 2022 19:56:26 +0000</pubDate>
      <link>https://dev.to/byksy/restful-api-uzerinde-bastan-sona-performans-testi-3j24</link>
      <guid>https://dev.to/byksy/restful-api-uzerinde-bastan-sona-performans-testi-3j24</guid>
      <description>&lt;p&gt;Başlarken;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Jmeter kurulumu&lt;/li&gt;
&lt;li&gt;Jmeter ile test ortamının hazırlanması&lt;/li&gt;
&lt;li&gt;İlk sonuçların alınması&lt;/li&gt;
&lt;li&gt;InfluxDB kurulumu&lt;/li&gt;
&lt;li&gt;Grafana kurulumu&lt;/li&gt;
&lt;li&gt;Grafana gösterge paneli üzerinde test sonuçlarının gösterilmesi
üzerinden baştan sona bir perfomans testini ayrıntılı konuşacağız.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Performans testi: bir çok yazılım mühendisinin çok defa karşılaştığı, çözüm ürettiği ve bu testler sayesinde üzerinde çalıştığı sistemin artı ve eksilerini gördüğü bir testtir. Ama çoğu durumda test ekibi dışında olan yazılım mühendislerinin fazla dikkat etmediği de bir konudur aslında. Kendi testlerini genel olarak bir kaç defa yük veya performans testi yaptıktan sonra ki bu da genelde REST Api üzerinden olur, yazdığı kod bloğunu commit/deploy etme yada bir diğer ifadeyle canlıya alma yoluna gider. Genel olarak ben de böyle yapıyordum. Çünkü performans testinin çok çetrefilli olduğunu, bir çok konfigürasyon yapmam gerektiğini bununla zaman kaybedeceğime yeni geliştirmeler yapabileceğimi düşünüyordum. &lt;br&gt;
Fakat gördüm ki yazdığım kodlar, oluşturduğum sorgular her ne kadar optimize edilmiş olsa da canlı da yavaş çalışan sistemler, açılmayan web sayfaları olarak karşıma çıkıyordu. Bu durum beni performans veya yük testini kendi içimde nasıl yapabilirimin sorusunun cevabını bulmaya gitti ve öğrenmeye başladım. Öğrendikten sonra, yaklaşık 1-2 saat içerisinde yazmış olduğum herhangi bir HTTP Request i rahatlıkla test edebilir hale getirdiğimi gördüm. Bu sebeple sizin de benim gibi performans takıntınız varsa ve bunu kolay ve anlaşılır yoldan yapmak istiyorsanız, bu yazı size göre olabilir.&lt;br&gt;
Öncelikle REST Api mizi test edebilecek bir araca ihtiyacımız olacak. Bunlardan yaygın ve ücretsiz olanlardan bir tanesi JMeter ile başlayacağız. Jmeter nedir ne değildir bu gibi çok ayrıntıya girmeyeceğiz, işimizi görecek kadar bilsek yeterli şu an için. Kronometreleriniz açık mı? Bakalım siz kaç saat veya dakikada test sisteminizi oluşturacaksınız.&lt;/p&gt;




&lt;h2&gt;
  
  
  Jmeter Kurulumu ve İlk Test
&lt;/h2&gt;

&lt;p&gt;Jmeter aracını indirmek için &lt;a href="https://jmeter.apache.org/download_jmeter.cgi" rel="noopener noreferrer"&gt;bu linkten&lt;/a&gt; faydalanabilirsiniz. Şu an ben Apache JMeter 5.4.3 sürümünü kullanıyorum, belki siz bu yazıyı okuduğunuzda sürüm bilgileri değişmiş olabilir. İlgili sayfada belirttiği üzere bilgisayarımda Java 8+ olup olmadığında dikkat ediyorum, değilse Java nın 8 veya üstü sürümünü indiriyorum. Burada iki kaynak (Source / Binaries) var ben Binaries olanı seçiyorum ve aşağıdaki resimde görüldüğü üzere apache-jmeter-5.4.3.zip dosyasını indiriyorum.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2fwvygtonlu2fc3jkrmr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2fwvygtonlu2fc3jkrmr.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
İndirdiğim dosyayı unzip edip, &lt;strong&gt;apache-jmeter-5.4.3\bin\jmeter.bat&lt;/strong&gt; uzantısına tıklayarak Jmeter ımı açıyorum. Jmeter ana sayfam açıldıktan sonra sizin da karşınıza aşağıdaki gibi bir görsel çıkması gerekiyor. Eğer çıktıysa doğru yoldasınız demektir.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy333u7werzvhacjtohdf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy333u7werzvhacjtohdf.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
Önemli bir hatırlatma: Yukarıdaki resimde gördüğünüz üzere Jmeter 2 numaralı cmd.exe den beslendiği için kapatmanız durumunda Jmeter da kapanacaktır. Kapatmadan işlemlerinize devam ediniz.&lt;br&gt;
Şimdi test planımızı (1 numara) oluşturmamız lazım. Bir performans veya yük testi yapabilmek için ihtiyaç duyduğumuz yegane şey sanal kullanıcılardır. Yani sitemize 10 kişi veya 100 kişi girdiğinde sitemiz nasıl tepki veriyor, bu yükü kaldırabiliyor mu, performanslı çalışıyor mu görmek isteriz. Bu 10,100 veya 1000 sanal kullanıcıyı oluşturmak için Test Plan tabına sağ tıklayarak &lt;strong&gt;Add-&amp;gt;Threads(Users)-&amp;gt;Thread Group&lt;/strong&gt; sekmesine tıklıyoruz. Resimde görüldüğü üzere Thread Group ile ne kadar user ile test etmemiz gerektiğine ve hangi saniye aralıklarla bunu yapmamıza ve döngü yapıp yapmayacağımıza karar verebiliyoruz.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgeobcqgebrkrkzwqcw31.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgeobcqgebrkrkzwqcw31.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;İlgili RestAPI mizi kaç thread veya kullanıcı ile test edeceğimize karar verdikten sonra, örneğin ben 200 kullanıcı ile test edeceğim, REST API de çağırma methodlarımız olarak da bilinen bir HTTP Request oluşturacağız. HTTP Request ile belirlediğimiz bu 200 kullanıcı hangi HTTP Requesti ve Requestleri test etsin ona karar vereceğiz. Bunun için aşağıdaki resimde de görüldüğü üzere Thread Group tabına sağ tıklayıp &lt;strong&gt;Add-&amp;gt;Sampler-&amp;gt;HTTP Request&lt;/strong&gt; sekmesine tıklayıp yeni bir HTTP Request oluşturuyorum. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fwxac3m6sivr9bc9kjh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fwxac3m6sivr9bc9kjh.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ben kendi REST Api mi değil de internette free REST Api test edebileceğim bir sayfa üzerinde test edeceğim. Bunun için &lt;a href="https://reqres.in/" rel="noopener noreferrer"&gt;reqres.in&lt;/a&gt; web sayfasını kullanıp, oradan bir HTTP Request seçmek istiyorum. Aşağıdaki resimde görüldüğü üzere *&lt;em&gt;&lt;a href="https://reqres.in/api/users?page=2" rel="noopener noreferrer"&gt;https://reqres.in/api/users?page=2&lt;/a&gt; *&lt;/em&gt; api sayfasını test edeceğim. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fujs15jqu1vbymmm14u6d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fujs15jqu1vbymmm14u6d.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Eğer siz kendi oluşturduğunuz Rest API yı test etmek isterseniz ve bir HTTP Header a ihtiyacınız varsa, yine Thread Group a sağ tıklayıp Add-&amp;gt; Config Element-&amp;gt; HTTP Header Manager ı seçmeniz yeterli olacaktır. Bir sonraki yazımda kendi REST API mizi oluşturup test etmeyi de anlatmayı düşünüyorum.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Test edeceğimiz API url ini belirledikten sonra bunu Jmeter ile nasıl tanımlıyoruz ona bakalım. Jmeter da HTTP Request i sekmesini tıkladığımızda aşağıdaki gibi bir görsel gelecektir. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdni8shelic2y6njjfove.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdni8shelic2y6njjfove.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
 İlgili url imin *&lt;em&gt;&lt;a href="https://reqres.in/api/users?page=2" rel="noopener noreferrer"&gt;https://reqres.in/api/users?page=2&lt;/a&gt; *&lt;/em&gt;  yukarıdaki resimde nasıl dağıtıldığını görmektesiniz. 7 numaralı kısıma server veya ip ismi, 8  numaralı kısma path imiz, son olarak 9 nolu kısıma ise parametremizi yazıyoruz, bu da url deki soru işareti kısmından sonra kısıma denk geliyor. Şu an ufak bir API testi yaptığımızdan ve genel bir anlatım olduğundan çok detaya giremiyorum. İlerleyen zamanlarda bu kısmı da detaylandırabiliriz. Ayrıca şunu da belirtmek isterim ki, biz şu an her ne kadar bir HTTP Request le test etsek de normal de daha çok HTTP Requesti de test edebiliriz. Sadece yeni bir HTTP Request oluşturmanız ve farklı bir api url i girmeniz gerekecektir.&lt;/p&gt;

&lt;p&gt;Şimdi geldik verilerimizi analiz etmeye. İlk görseli görmek isterseniz, Thread Group a yine sağ tıklayarak Add-&amp;gt; Listener -&amp;gt; ... diyerek istediğiniz analiz verilerini görebilirsiniz. Ben örnek olsun diye &lt;strong&gt;View Result Tree&lt;/strong&gt; ve &lt;strong&gt;View Result in Table&lt;/strong&gt; ı ekleyeceğim. İlgili listener ları ekledikten sonra testi başlatmak için Jmeter ı ilk önce kaydedip, daha sonra Run(Play) butonuna basmak yeterli olacaktır. Test bittikten sonra ilgili listener lara tıkladığınızda sonuçları görebileceksiniz.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgo46j9pel1w334f0zhcy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgo46j9pel1w334f0zhcy.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hadi gelin şimdi bu test sonucunda dönen datayı görselleştirip, daha iyi analiz edilebilir hale getirelim. Bunun için test sonuç verilerini aktaracağımız Influx DB ye ve sonucu görselleştireceğimiz Grafana ya ihtiyacımız olacak.&lt;/p&gt;




&lt;h2&gt;
  
  
  Influx DB Kurulumu
&lt;/h2&gt;

&lt;p&gt;Jmeter yapmış olduğumuz testi daha iyi bir görsel ile analiz etmek istiyorsak bunun en kolay yollarından bir tanesi, InfluxDB ile Jmeter den gelen analiz verilerini kaydedip, Grafana aracı ile bu veriyi göstermek. Bunun için ihtiyacımız olan Influx DB yi indirmek için &lt;a href="https://portal.influxdata.com/downloads/" rel="noopener noreferrer"&gt;linke&lt;/a&gt; tıklayabilirsiniz. Fakat burada önemli bir detayı vermekte fayda var. Eğer InfluxDB nin son sürümünü indirirseniz, Grafana daki analiz görsellerinizi (dashboard) FluxDB query ile oluşturmanız gerekiyor, normalde Granfana da Jmeter analiz görselleri için hazır yapılar var fakat bunların çoğu FluxDB yi desteklemiyor. O yüzden benim amacım FluxDB ile dashboard oluşturmak olmadığından InfluxDB'nin 1.8... versiyonunu indirdim. Aşağıdaki resimden InfluxDB'nin eski versiyonunun nerede olduğunu görebilirsiniz. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn0tgp9ab5c22ptei3a6f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn0tgp9ab5c22ptei3a6f.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
Direk bir setup linki olmadığından veri tabanını Windows için verdiği PowerShell komutuyla indirebilirsiniz. İlgili satırı kopyalayıp PowerShell inize yapıştırdığınızda sürümün inmeye başladığını göreceksiniz. İşte bu kadar kolay. InfluxDB nizin indiği yere gidip dosyayı unzip ediyoruz. Genelde C:\Users[Bilgisayar İsminiz] olduğu yerde oluyor, dikkat etmekte fayda var.&lt;/p&gt;

&lt;p&gt;Unzip ettikten sonra &lt;strong&gt;...\influxdb-1.8.10_windows_amd64\influxdb-1.8.10-1\influxd.exe&lt;/strong&gt; yi çalıştırarak InfluxDB'imizi ayağa kaldırıyoruz. Ayağa kaldırdıktan sonra yapmamız gereken bir veri tabanı ve bir kullanıcı adı oluşturmak. Bunu oluşturmamızın sebebi, Jmeter veriyi hangi veritabanına yazsın onu söylemek, Grafana hangi veri tabanına hangi kullanıcı ile bağlansın onu belirtmek için. Bunun için &lt;strong&gt;...\influxdb-1.8.10_windows_amd64\influxdb-1.8.10-1\influx.exe&lt;/strong&gt; dosyasını çalıştırıyoruz ve karşımıza gelen .exe ekranına &lt;/p&gt;

&lt;p&gt;&lt;code&gt;CREATE DATABASE test_db&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;yazıyor ve enter a basıyoruz. Kullanıcı oluşturmak için de aşağıdaki kod satırını yazıp, enter a basmanız yeterli olacaktır.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CREATE USER root with password 'root'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tekrar hatırlatmak da fayda var, çalıştırdığınız .exe file larını lütfen tüm test süreciniz bitene kadar kapatmayınız.&lt;br&gt;
** &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Şimdi, InfluxDB yi bu şekilde bırakalım ve Grafana nın kurulumuna geçelim. Grafana nın kurulumunu yapıp veri tabanımızı bağladıktan sonra Jmeter üzerinde yapılan testin Grafana da nasıl göründüğüne hep beraber bakalım.&lt;/p&gt;




&lt;h2&gt;
  
  
  Grafana Kurulumu
&lt;/h2&gt;

&lt;p&gt;Ben yukarıda ki diğer kurulumlar gibi Grafanada da aynı yöntemle ilerleyeceğim. İlgili &lt;a href="https://grafana.com/grafana/download?platform=windows" rel="noopener noreferrer"&gt;linke &lt;/a&gt; tıkladığınızda aşağıdaki görselde görüldüğü üzere Windows Binaries i seçip, ilgili zip dosyasını indirip, unzip ediyoruz.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fysa0khy3ouqmhxv7m10b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fysa0khy3ouqmhxv7m10b.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unzip ettikten sonra indirdiğiniz yolun &lt;strong&gt;...\grafana-8.3.3\bin&lt;br&gt;
** klasörüne gidip grafana-server.exe yi çalıştırıyoruz. İlgili .exe dosyasını hiç kapamadan **&lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt;&lt;/strong&gt; adresine gidiyoruz. İlk açılışta sizi bir login sayfası karşılayacak, default user / password olan;&lt;br&gt;
&lt;code&gt;Username: admin&lt;br&gt;
Password: admin&lt;/code&gt;&lt;br&gt;
girip devam edebilirsiniz.&lt;/p&gt;

&lt;p&gt;Şimdi sıra geldi InfluxDB yi Grafana ya bağlama işlemine. Bunun için aşağıdaki görseldeki gibi Configuration-&amp;gt; Data Source sekmesine tıklıyoruz. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5cdjca0rch6dq278n899.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5cdjca0rch6dq278n899.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gelen sayfadan &lt;strong&gt;Add Data Source&lt;/strong&gt; butonuna tıklayıp, InfluxDB yi seçiyoruz. Karşınıza bir bağlamayı planladığınız InfluxDB nin bağlantı bilgilerini doldurmanız gereken bir form gelecek. Şimdi sırayla bu bilgileri dolduralım.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp1z23sdxxq2invuwidjx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp1z23sdxxq2invuwidjx.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;13 numaralı alana ilgili bağlantıya bir isim veriyosunuz, ben MyTest olarak isimlendirdim.&lt;/li&gt;
&lt;li&gt;14 numaralı alana sorgu dilinizi seçiyorsunuz, biz 1.8 versiyonunu indirdiğimiz için InfluxQL i seçiyoruz.&lt;/li&gt;
&lt;li&gt;15 numaralı alana veritabanınızın url sini giriyorsunuz. Burada default olarak bir url yazıyordur, fakat doğru olsa bile oraya ilgili url nizi yazınız. Url bilginiz yukarıda bahsettiğim influx.exe yi çalıştırdığınızda karşınıza çıkacaktır. Default url ekranda görüldüğü gibidir.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftgotpvsi5ujs8qbsxwdj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftgotpvsi5ujs8qbsxwdj.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;16 numaralı alana yukarıda oluşturduğumuz veri tabanı ismi, kullanıcı adı ve şifre bilgilerini giriyoruz.&lt;/li&gt;
&lt;li&gt;17 numaralı alanı GET olarak seçiyoruz ve 18 numaralı butona tıklayıp görseldeki gibi bağlantının başarılı olduğunu görüyoruz.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yukarıda yapılanları kısaca özetlersek, şimdiye kadar;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Jmeter kurulumu ve konfigürasyonu yaptık.&lt;/li&gt;
&lt;li&gt;Jmeter da ilk testimizi gerçekleştirdik.&lt;/li&gt;
&lt;li&gt;InfluxDB kurulumunu yaptık. Veri tabanı, kullanıcı ve şifre bilgilerini oluşturduk.&lt;/li&gt;
&lt;li&gt;Grafana yı kurduk, InfluxDB yi veri kaynağı (Data Source) olarak belirleyip, bağlantımızı gerçekleştirdik.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bundan sonra ise;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Grafana da Jmeter i görüntüleyebileceğimiz hazır bir dashboard oluşturacağız.&lt;/li&gt;
&lt;li&gt;Jmeter daki verileri InfluxDB ye canlı olarak aktarıp, Grafana dashboard u üzerinde görüntülemeye çalışacağız.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hadi başlayalım...&lt;/p&gt;

&lt;h2&gt;
  
  
  Grafana da Jmeter Gösterge Paneli (Dashboard) Oluşturma
&lt;/h2&gt;

&lt;p&gt;Buradaki amacımız Jmeter dan gelen verileri, log olarak satır satır okumak yerine görsel anlamda zengin bir dashboard kullanıp, performans analizimizi yapmak olacaktır. Bunun için hazır dashboardlar kullanacağız. &lt;br&gt;
Ben &lt;a href="https://grafana.com/grafana/dashboards/5496" rel="noopener noreferrer"&gt;linkteki &lt;/a&gt; dashbordu kullanacağım. Siz isterseniz ilk başta benim seçtiğim dashboard ile ilerleyin, testinizi bitirdikten sonra başka dashboardları &lt;a href="https://grafana.com/grafana/dashboards/" rel="noopener noreferrer"&gt;bu sayfadan&lt;/a&gt; seçebilirsiniz. Burada gördüğünüz üzere her dashboardun bir ID si var ve siz bu ID üzerinden dashboardunuzu kolaylıkla oluşturuyorsunuz. İlgili ID yi kopyalayıp, aşağıdaki görseldeki gibi Import alanına tıklıyoruz,&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmrx2o59j86hmtmrpcxbh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmrx2o59j86hmtmrpcxbh.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
ve &lt;strong&gt;_Import via grafana.com _&lt;/strong&gt; kolonuna yapıştırıyoruz. Load dedikten sonra, aşağıdaki görseldeki gibi ekranın gelmesini bekliyoruz.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvw4u8g3oedwyt7116kiw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvw4u8g3oedwyt7116kiw.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjaf0biobsjo4dgq72fjq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjaf0biobsjo4dgq72fjq.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yükleme tamamlandıktan sonra, 21 numarada görülen yere Data Soruce muzu seçiyoruz ve &lt;strong&gt;Import&lt;/strong&gt; butonuna tıklıyoruz.&lt;/p&gt;

&lt;p&gt;Ve işte ilk dashboardumuz hazır :)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fktjgr53nwj0evv743ctm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fktjgr53nwj0evv743ctm.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Şimdi en son olarak Jmeter ımızı InfluxDB ye aktarımını yapıp canlı olarak Grafana üzerinden görüntüleyeceğiz.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Burada &lt;strong&gt;önemli bir not düşeyim&lt;/strong&gt;, verilerinizin canlı aktığını görebilmeniz için Grafana daki dashbordunuzda Yineleme zamanını Off tan farklı değer vermeniz gerekecek. Bunu aşağıdaki görsele bakarak değiştirebilirsiniz.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F67kyh0jbyhxnuqoaiqts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F67kyh0jbyhxnuqoaiqts.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jmeter a tekrar geliyoruz ve yeni bir &lt;strong&gt;listener&lt;/strong&gt; daha ekleyeceğiz. Bunun için yukarıda anlattığım adımlara bakarak Thread Group a sağ tıklayıp &lt;strong&gt;Add-&amp;gt; Listener -&amp;gt; Backend Listener&lt;/strong&gt; ı ekliyoruz.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffv62f1gkxv4g346og0vy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffv62f1gkxv4g346og0vy.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ekledikten sonra 22 numaradaki listeye tıklayıp, benim seçtiğim kaynağı seçiyoruz. 23 numaradaki InfluxDbUrl alanını yine benim gibi dolduruyoruz. Burada yaptığım tek şey default gelen url alanına localhost ve veri tabanı ismini eklemek oldu. İşlemimiz bittikten sonra kaydet butonuna tıklıyoruz ve test planımızı en son haliyle kaydediyoruz.&lt;/p&gt;

&lt;p&gt;Hadi test edelim...&lt;/p&gt;

&lt;p&gt;Uzun bir yazıdan sonra yapmış olduğumuz emeğin karşılığını almaya hazırız. Jmeter Başla (Play) tuşuna basınız ve hemen ardından Grafana daki dashbordunuzu açınız. Tebrikler, ilk testinizin sonucunu aldınız. Tabii ben az bir kullanıcı ile yaptığımdan kaynak tüketimim az oldu ve bu sebeple hataya düşen hiç bir işlemim (thread) olmadı :) &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3unggjyeujq1sjlwfwm7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3unggjyeujq1sjlwfwm7.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bu konu ile ilgili takıldığınız veya yapamadığınız bir durum oluşursa lütfen yorumlara yazınız, birlikte sorunun üzerine gidip çözebiliriz. Bir sonraki yazımızda görüşmek üzere, sağlıcakla kalınız.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Learning Go #2</title>
      <dc:creator>Mustafa</dc:creator>
      <pubDate>Mon, 03 Jan 2022 20:03:00 +0000</pubDate>
      <link>https://dev.to/byksy/learning-go-2-5cjo</link>
      <guid>https://dev.to/byksy/learning-go-2-5cjo</guid>
      <description>&lt;p&gt;As I said, I started the learning GO language three weeks ago. This language is more popular these days and I wanted to be part of the Gophers :) You can look at the &lt;a href="https://dev.to/byksy/learning-go-1-3mgc"&gt;first blog&lt;/a&gt; why I choose the Go language and start to write a blog for learning this language. As you know I started to look at the basics of the Go language such as why this language is so important and what I am doing in this language. If you love backend development this language is for you. Also, there is a big community for helping each go developer. There are many open-source code samples and projects for your development. Lots of them are free :) There is one thing to do, and it is working on it and learning deeply.&lt;/p&gt;

&lt;p&gt;First of all, when you get started to learn this language, you may be limited to these language rules. You can not be free to define a variable for instance or you can not put the if braces whatever or wherever you want. Also, I will tell you about the troubleshooting that I encounter.&lt;br&gt;
Let's get started. I prepared a mindmap or you can say roadmap for my learning progress.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0a72m3cvimykbf9u73d.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0a72m3cvimykbf9u73d.PNG" alt="Go RoadMap"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the above roadmap, you can follow my progress easily. You know I told you to start a go tour that is an official site of Go and you can understand the basic things of Go. Before the start of this tour, you can say to yourself I can not understand whole things when I finished the tour. Because many of the terms or concepts of the language are not understandable or they may be foreign for you.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  DON'T GIVE UP, YOU ARE NOT THE FIRST PERSON WHO DIDN'T UNDERSTAND ANYTHING!!! COME ON, KEEP GOING...
&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a critical circumstance for a learner because we could say, "I didn't understand anything so I want to give up this programming language or I can learn the other language, I think it is very easy for me. Don't say the same things, keep going. When you finish the tour you may not understand many things and you can say "OMG!, what is the next and what am I doing after that?" Keep calm and Go ahead! Continue to learn this pretty language :)&lt;/p&gt;

&lt;p&gt;After the tour, there are many terms and concepts in your mind and you may not connect or tier to each other. Because I have experienced similar situations. With the starting the İnanç Gümüş's &lt;a href="https://www.udemy.com/course/learn-go-the-complete-bootcamp-course-golang/" rel="noopener noreferrer"&gt;Udemy Course&lt;/a&gt;, I understand the many things clearly and I connect the terms each other slowly because I don't finish the course yet. This course teaches a new term or concept for example for loop, you can watch the video about it and then do the code exercises. You can also share your code exercises on your own GitHub page, I did it for example. I kept learning this language every day, for example, one hour a day I took my time for this learning and I didn't give up.&lt;/p&gt;

&lt;p&gt;You can reach my Github link via &lt;a href="https://github.com/byksy/Go_Learning" rel="noopener noreferrer"&gt;this link&lt;/a&gt;.&lt;br&gt;
&lt;strong&gt;You can follow me to watch my progress and projects :)&lt;/strong&gt; Also, I am coding GO language at Visual Studio Code in Windows Operating System. When you start to İnanç Gümüş course you may encounter some problems with your operating system requirements or doing &lt;br&gt;
exercises. I wrote a Troubleshooting field for these problems you can find this field at the bottom of the Readme file.&lt;/p&gt;

&lt;p&gt;See you in my next post.&lt;/p&gt;

</description>
      <category>go</category>
      <category>learning</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Learning Go #1</title>
      <dc:creator>Mustafa</dc:creator>
      <pubDate>Sun, 05 Dec 2021 20:04:26 +0000</pubDate>
      <link>https://dev.to/byksy/learning-go-1-3mgc</link>
      <guid>https://dev.to/byksy/learning-go-1-3mgc</guid>
      <description>&lt;p&gt;I am a &lt;strong&gt;database engineer&lt;/strong&gt; for a while.  One time I decided to learn Go programming because many of the famous software developers such as &lt;a class="mentioned-user" href="https://dev.to/yakuter"&gt;@yakuter&lt;/a&gt; and &lt;a href="https://twitter.com/fatih?s=20" rel="noopener noreferrer"&gt;fatih&lt;/a&gt; are using Go and they share their experience. I thought it is amazing for me. They learn it and build an app with this language and then share their experience on Twitter, Linkedin, Github, etc. platform. After deciding the learn this language, I want to share my adventure of Go learning. &lt;/p&gt;

&lt;p&gt;First of all, I ask a question on Twitter about how can I learn Go language systematically and mentioned the &lt;a class="mentioned-user" href="https://dev.to/yakuter"&gt;@yakuter&lt;/a&gt;, then this good man shared a tweet flood about learning Go documents, courses, books, etc. &lt;br&gt;
Now, we can start the adventure of Go learning.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuozjl5xdocwrjc9hnr0h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuozjl5xdocwrjc9hnr0h.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
Let's Go :)&lt;br&gt;
Firstly, I started the official Go learning document with examples  &lt;a href="https://tour.golang.org" rel="noopener noreferrer"&gt;golang-tour&lt;/a&gt;. And I am on to read this documentation and learn basically. It is the first step for learning Go basically. This tour made up basic of Go language and some activities on them. The web page has two sides, left and right. The left page consists of the knowledge of the information such as variables, slices, maps, etc., on the other hand, the right page has consisted of activity/test area that is related to the information and you can run the sample code or can write your sample and then run it. With this tour, I learned data types, variables, packages, flow control statements, etc. basically and understand package and import logic, the usage of Go is simpler than in other languages, you can define any data type easily, and there is a spelling rule. For example, when you create any variable in Go, you must use this variable in your code block, at worst you can use this variable in the Println function :) Yeap, this is enough for the first step of learning Go. In the coming days, I will try to explain my Go experiences on the windows operating system in a more organized and regular way. &lt;/p&gt;

&lt;p&gt;The first code :)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;package main

import "fmt"

func main() {
    fmt.Println("I am learning Go.")
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>go</category>
      <category>learning</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
