Günümüzün dijital çağında, web uygulamalarının performansı sadece arzu edilen bir özellik değil, aynı zamanda temel bir gerekliliktir. Performans Testi Nedir? Performans testi, yazılım testinin ayrılmaz bir parçasıdır ve web uygulamalarınızın öngörülen yükleri kaldırabilmesini, sorunsuz ve tatmin edici bir kullanıcı deneyimi sunmasını sağlar. Sadece hata keşfinin ötesinde, performans testi, uygulamalarınızın gerçek dünya yük koşulları altında ölçeklenebilirliğini ve güvenilirliğini proaktif olarak doğrulamakla ilgilidir.
Performans Testi için Apache JMeter
Sağlam performans testi yapmaya gelince, Apache JMeter öne çıkan bir isimdir. Bu açık kaynaklı, %100 saf Java uygulaması, yük ve performans testi için özel olarak tasarlanmıştır.
Statik ve dinamik kaynakları test etme ve çeşitli öğeler üzerinde ağır yükleri simüle etme yeteneği, onu çeşitli sektörlerde performans testi için güvenilir bir seçim haline getirir. JMeter, kapsamlı bir test IDE'sinden son derece genişletilebilir bir çekirdeğe kadar birçok özelliğe sahip olmasıyla, performans testi ihtiyaçları için tercih edilen bir çözüm olarak konumunu sağlamlaştırmıştır.

Apache JMeter'da Performans Testinde Çok Yönlülük
JMeter'ın belirleyici özelliklerinden biri çok yönlülüğüdür. Statik ve dinamik kaynaklar üzerinde performans testi yapma yeteneği onu farklı kılar. İster tek bir sunucuyu, ister bir grup sunucuyu, bir ağı veya bir nesneyi test ediyor olun, JMeter size gücünü ve genel performansını farklı yük türleri altında değerlendirme esnekliği sağlar. Ayrıca, Web - HTTP, HTTPS, SOAP/REST Webservices, FTP, JDBC aracılığıyla veritabanları, LDAP ve JMS aracılığıyla çeşitli mesaj yönelimli ara yazılımlar dahil olmak üzere (ancak bunlarla sınırlı olmamak üzere) çok çeşitli uygulamaları, sunucuları ve protokol türlerini destekler.
Apache JMeter'ın Temel Özellikleri
Apache JMeter, çeşitli performans testi ihtiyaçlarını karşılayan özelliklerle doludur. Tam özellikli Test IDE'si, hızlı Test Planı kaydı, oluşturma ve hata ayıklama olanağı sağlarken, Komut satırı arayüzü (CLI) modu, herhangi bir Java uyumlu işletim sisteminden yük testini kolaylaştırır. JMeter'ın genişletilebilir çekirdeği, sınırsız test yetenekleri sağlayan takılabilir Örnekleyiciler ve birçok iş parçacığı tarafından eşzamanlı örnekleme ve ayrı iş parçacığı grupları tarafından farklı işlevlerin eşzamanlı örneklemesini sağlayan çok iş parçacıklı bir çerçeve ile bir diğer önemli özelliktir.
JMeter'ın Sınırlamalarını Anlamak: Bir Tarayıcı Değil
JMeter güçlü bir araç olsa da, yeteneklerinden etkili bir şekilde yararlanmak için sınırlamalarını anlamak önemlidir. JMeter, protokol düzeyinde çalışır ve bir tarayıcı gibi çalışmaz. Bir tarayıcının eylemlerini belirli bir ölçüde taklit edebilse de, HTML sayfalarında bulunan JavaScript'i yürütmez veya bir tarayıcının yapacağı gibi oluşturmaz. JMeter ile performans testi stratejinizi planlarken bu sınırlamaları not etmekte fayda var.
JMeter'ın işlevlerini ve uygulamalarını daha fazla keşfettikçe, web uygulamanızın performansını optimize etmek ve böylece kusursuz bir kullanıcı deneyimi sunmak için yeteneklerinden nasıl verimli bir şekilde yararlanacağınızı keşfedeceksiniz.
Apidog: API Yaşam Döngüsü Yönetimi için Kapsamlı Bir Paket
Performans testine paralel olarak, bir API'nin yaşam döngüsünü yönetmek, modern web uygulaması geliştirme için çok önemlidir. İşte Apidog devreye giriyor. Apidog, API yaşam döngüsünün her aşamasını tek bir çatı altında entegre eden, her şeyi kapsayan bir araç setidir. API'leri tasarlamaktan ve hatalarını ayıklamaktan, yaşam döngüsü testlerini otomatikleştirmeye ve görsel olarak ilgi çekici API belgeleri oluşturmaya kadar, Apidog, API Design-first geliştirme olanağı sağlar ve Ar-Ge ekiplerinin en iyi uygulamaları uygulamasına yardımcı olur.
Apidog, performans testi stratejinizde önemli bir rol oynayabilen güçlü bir araçtır.
Bu araç, üç farklı performans testi modu sunar:
- Apidog uygulama içi test: Bu tür, test senaryosu yürütme sırasında iş parçacığı sayısını 1'den büyük ayarlayarak birden fazla iş parçacığını eşzamanlı olarak çalıştırmanıza olanak tanır. Ancak, bu özelliğin hala beta aşamasında olduğunu ve optimize edildiğini lütfen unutmayın. Yüksek eşzamanlı test için Apidog, JMeter kullanmanızı önerir.
- Apidog CLI testi: Apidog CLI, sürekli entegrasyon ve stres testi için tasarlanmış bir komut satırı aracıdır. Stres testi özelliği geliştirme aşamasındadır ve Apidog paketine daha da fazla çok yönlülük getirmeyi vaat ediyor.
- JMeter testi: Apidog ile test senaryolarını JMeter formatında dışa aktarabilir ve ardından performans testi için bunları JMeter'a içe aktarabilirsiniz. Bu özellik, JMeter'ın güçlü test yeteneklerini Apidog ortamına etkili bir şekilde entegre ederek daha kapsamlı performans testi stratejileri sağlar.

Optimize Web Uygulaması Geliştirme için JMeter ve Apidog'u Birleştirmek
JMeter'ın sağlam performans testi yeteneklerinin ve Apidog'un kapsamlı API yaşam döngüsü yönetiminin birleşimi, geliştiriciler için güçlü bir kombinasyon oluşturur. Bu araçlar, web uygulamaları oluşturmak, test etmek ve yönetmek için çok yönlü bir yaklaşım sağlayarak kaliteyi, performansı ve sorunsuz kullanıcı deneyimlerini garanti eder.
Bu makalede, JMeter ve Apidog'un inceliklerine daha derinlemesine inecek ve bunları performans testi için nasıl etkili bir şekilde kullanacağımızı öğreneceğiz.
JMeter'ı İndirme ve Kurma
JMeter, yazılımın yük testi ve işlevsel testi için tasarlanmış güçlü bir açık kaynaklı Java uygulamasıdır. Başlangıçta Web Uygulamalarını test etmek için tasarlanmış, ancak o zamandan beri diğer test işlevlerine genişletilmiştir. JMeter'a başlamak için, onu bilgisayarınıza indirip kurmanız gerekir:
- Apache JMeter web sitesini ziyaret edin.
- "Download Releases" bağlantısına tıklayın.
- Sisteminiz için uygun ikili sürümü seçin (örneğin, Windows için apache-jmeter-5.4.1.zip) ve indirin.
- İndirme tamamlandıktan sonra, zip dosyasını bilgisayarınızdaki bir konuma çıkarın.
- JMeter'ı başlatmak için, çıkarılan JMeter dizinindeki bin klasörüne gidin ve jmeter.bat (Windows için) veya jmeter.sh (Linux/Mac için) dosyasına çift tıklayın.
JMeter Arayüzüne Genel Bakış
JMeter'ı başlattığınızda, öncelikle iki bölümden oluşan arayüzüyle karşılaşacaksınız:
- Test Planı: Test Planı, yük testinizi tasarladığınız yerdir. İş Parçacığı Grupları (kullanıcıları simüle etme), Örnekleyiciler (HTTP istekleri) ve Dinleyiciler (sonuç işleme ve görselleştirme) gibi öğeler içerir.
- Workbench: Workbench, test öğelerini depolamak için geçici bir çalışma alanıdır. Şu anda kullanmadığınız ancak daha sonra kullanabileceğiniz test planınızın öğelerini veya parçalarını saklamak için bir yerdir.

4 Performans Testi Türü
Performans testi, yazılım uygulamalarının hızı, kararlılığı ve ölçeklenebilirliği hakkında test etme ve raporlama ile ilgilenen bir disiplindir. Her biri belirli bir amaca sahip çeşitli performans testi türleri vardır.
- Yük Testi: Bu, en yaygın performans testi biçimidir. Sisteme bir yük uygulamayı ve zaman içinde kademeli olarak artırmayı içerir. Amaç, darboğazları belirlemek ve sistemin ağır yükler altında nasıl performans gösterdiğini anlamaktır.
- Stres Testi: Bu, sistemi aşırı yükler altında, genellikle arıza noktasına kadar test etmeyi içerir. Amaç, sistemin kırılma noktasını anlamak ve yük azaldıktan sonra nasıl kurtulduğunu belirlemektir.
- Emme Testi (Dayanıklılık Testi): Bu, bir sistemi uzun süre yüksek yük seviyelerinde çalıştırmayı içerir. Amaç, bellek sızıntıları veya diğer kaynak kullanım sorunları gibi standart bir yük altında görünmeyebilecek sorunları belirlemektir.
- Ani Yük Testi: Bu, sistemdeki yükü aniden artırmayı veya azaltmayı ve davranışı gözlemlemeyi içerir. Amaç, sistemin yükteki ani değişiklikleri işleyebilmesini sağlamaktır.
JMeter Eğitimi: İlk Kullanım için JMeter'ı Yapılandırma
Bu testlerden herhangi birini gerçekleştirmek için JMeter'ı uygun şekilde yapılandırmanız gerekir. İşte JMeter'da bir yük testi kurmanın temel bir örneği:
- Test Planı Oluşturun: JMeter, testleri "Test Planları" olarak bilinen bir yapıda düzenler. Sol kenar çubuğundaki Test Planı öğesine sağ tıklayarak, "Ekle", ardından "İş Parçacıkları (Kullanıcılar)" ve son olarak "İş Parçacığı Grubu"nu seçerek yeni bir test planı oluşturabilirsiniz.

- Bir Örnekleyici Ekle: JMeter'da, bir "Örnekleyici", bir sunucuya gönderdiğiniz bir istektir. Oluşturduğunuz İş Parçacığı Grubuna sağ tıklayarak, ardından "Ekle", ardından "Örnekleyici" ve son olarak göndermek istediğiniz istek türünü (örneğin, "HTTP İsteği") seçerek bir örnekleyici ekleyebilirsiniz.

- Bir Dinleyici Ekle: Dinleyiciler, test yürütmenizin sonuçlarını görüntülemek için JMeter'da kullanılır. Test planınıza sağ tıklayarak, ardından "Ekle", ardından "Dinleyici" ve son olarak eklemek istediğiniz dinleyici türünü (örneğin, "Sonuçları Sekmede Görüntüle") seçerek bir dinleyici ekleyebilirsiniz.

- Test Planınızı Çalıştırın: Test planınızı kurduktan sonra, JMeter araç çubuğundaki "Çalıştır" düğmesine tıklayarak çalıştırabilirsiniz.
Performans Test Senaryoları Tasarlama ve Yürütme
Performans testi senaryoları tasarlamak, hangi eylemlerin, kaç sanal kullanıcı tarafından ve ne kadar süreyle gerçekleştirileceğini tanımlamayı içerir. Uygulamanın gerçek dünya kullanımını yakından taklit eden test senaryoları tasarlamak çok önemlidir.
Örneğin, bir yük testinde, JMeter'ı 10 dakika boyunca uygulamanıza giriş yapan 1000 kullanıcıyı simüle edecek şekilde yapılandırabilirsiniz. Bir stres testinde, uygulamanın aşırı yükleri nasıl ele aldığını görmek için bu sayıyı 1 dakika içinde 10.000 kullanıcıya çıkarabilirsiniz.
Test senaryolarını yürütmek, testleri JMeter'da çalıştırmayı ve sonuçları toplamayı içerir. JMeter, tablolar, grafikler ve ağaç görünümleri dahil olmak üzere test sonuçlarını görüntülemek ve kaydetmek için çeşitli dinleyici türleri sağlar.
Performans Testi için JMeter'ı Apidog ile Entegre Etme
İşte JMeter'ı performans testi için Apidog ile entegre etmek için adım adım ayrıntılı bir kılavuz.
Adım 1: JMeter'da Bir Test Planı Oluşturma
- JMeter'ı açın.
- Soldaki ağaç yapısında, "Test Planı"na sağ tıklayın ve "Ekle" -> "İş Parçacıkları (Kullanıcılar)" -> "İş Parçacığı Grubu"na gidin.
- Test ihtiyaçlarınıza göre iş parçacığı (kullanıcı) sayısını, döngü sayısını ve yükselme süresini ayarlayın.
- Oluşturduğunuz "İş Parçacığı Grubu"na sağ tıklayın ve "Ekle" -> "Örnekleyici" -> "HTTP İsteği"ne gidin.
- HTTP İsteğinde, test etmek istediğiniz sunucunun ayrıntılarını (örneğin, Sunucu Adı veya IP, Protokol, Yol vb.) doldurun.
- Test planınızı yapılandırdıktan sonra, "Dosya" -> "Kaydet" (veya "Test Planını Farklı Kaydet")'e tıklayarak kaydedebilirsiniz. Bunu bir .jmx dosyası olarak kaydettiğinizden emin olun.
İşte demo testi için Apidog'a içe aktarabileceğiniz bir örnek XML dosyası (.jmx dosya uzantısı):
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.5">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
</TestPlan>
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
<boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="false">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">httpbin.org</stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol">http</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/get</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
</jmeterTestPlan>
Adım 2: JMeter Test Planını Apidog'a İçe Aktarma
- Bir Hesap Kaydedin: Apidog'u açın ve e-postanızı kullanarak yeni bir hesap kaydedin.
2. Bir Çalışma Alanı Oluşturun: Oturum açtıktan sonra, bir ekip çalışma alanı oluşturun. Projelerinizi oluşturacağınız ve test planlarınızı içe aktaracağınız yer burasıdır. Gerekirse, diğer ekip üyelerini çalışma alanınıza katılmaya davet edebilirsiniz.
3. Test Planını İçe Aktarın: Projenizin "İçe Aktar" sekmesine gidin

4. "JMeter"'ı seçin ve dosyayı yükleyin.

5. "Onayla"'ya tıklayın. Daha önce kaydettiğiniz .jmx dosyasını seçin ve "Aç"'a tıklayın

Adım 3: Testi Apidog'da Çalıştırma
- Projeye Gidin: JMeter test planını başarıyla içe aktardıktan sonra, içe aktarılan projenize gidin.
- Testi Çalıştırın: "Çalıştır" düğmesine tıklayarak performans testini başlatın. Apidog artık JMeter'dan içe aktardığınız test planını yürütecektir.

3. Testi İzleyin: Test ilerlemesini ve sonuçlarını Apidog içinde gerçek zamanlı olarak izleyebilirsiniz. Bu, yanıt sürelerini, hata oranlarını vb. içerir

Unutmayın, performans testi tek seferlik bir görev değildir, API'nizin optimum performansını sağlamak için geliştirme ve dağıtım sürecinizin düzenli bir parçası olmalıdır.
Sonuç
Özetlemek gerekirse, JMeter, Apidog ile tasarlanan API'lerinizde performans testi yapmak için güçlü bir araçtır. Test senaryolarını Apidog'dan dışa aktarma ve bunları JMeter'a içe aktarma yeteneği, performans testini API geliştirme sürecinize dahil etmeyi kolaylaştırır. Ayrıca, sürekli entegrasyon sürecinizde JMeter testlerini kullanmak, API'nizin performansının geliştikçe tutarlı kalmasına yardımcı olur.
API tasarımı için Apidog ve performans testi için JMeter kombinasyonu ile API'lerinizin iyi tasarlanmış ve yüksek performanslı olmasını sağlayabilirsiniz.
Bu nedenle, API'lerinizi bugün JMeter ve Apidog ile test etmeye başlayın ve güvenilir, yüksek performanslı API'ler oluşturmaya yönelik ilk adımı atın!