Magento2 Load Test – Jmeter

Magento2 için performance-toolkit içerisinde hazır gelen benchmark kullanılabilmektedir. Özetle 10 farklı kullanıcıyı 2 farklı ürün ve detayında farklı parametreler belirterek magento2’ye göndermek ve çıkan sonuçları incelemek istedik.

Takip ettiğim dökümanların neredeyse tümünde ilk önce sample ürün, admin user gibi içerikleri profiller sayesinde magento2’ye dahil etmek gerekiyor. Fakat gerçekleştirdiğimiz son test için böyle bir import işlemi yapmak istemedik.

Öncelikle test adımları – jmeter – magento2 ekosisteminde gerekli bilgileri aşağıda ilettiğim dökümanlardan yararlanarak inceleyebilirsiniz.

http://info2.magento.com/rs/magentosoftware/images/Developer%20Deep%20Dive%20-%20S%20Shymko.pdf

https://upcloud.com/resources/tutorials/benchmark-magento-with-jmeter

Jmeter testi için gui yada bir sunucu üzerinden test yapmak mümkün. Kendi bilgisayarınızda yaptığınız testler ve sonuçları gönderilen testin içeriğine göre hataya sebebiyet verebilir. Dolayısı ile jmeter için ayrı bir sunucu hazırlanması tavsiye edilir. Ben tüm süreci ci-cd adımı gerçekleşmesi adına jenkins üzerinde çalıştırdım. Herhangi bir değişiklik sonrası testi otomatik olarak çalıştırmak için webhook ekledim.

Genel görünüm aşağıdaki gibidir;

Kısa kısa açıklamak gerekirse;

1. Not: Userlist belirterek birden fazla kullanıcının sepete ürün eklemesini gerçekleştirdik,
2. Http Request Default: Thread group içerisindeki gerçekleşecek tüm adımlarda kullanılacak protocol(http-https) ve domain ismini belirtiyoruz,
3. Desktop Chrome: Test sırasında kullanılacak user-agent ve benzeri bilgileri içermekte,
4. Thread Group: Testin kaç kullanıcı ve kaç saniyelik ramp-up perioda sahip olacağı bilgileri içermekte,
5. Csv data set config: Multiple user bilgilerinin içerildiği alan,
6. Sırası ile hangi işlemlerin yapılacağı detaylar ( Anasayfa, Ürün detay, Kategori araması, checkout) gibi

Bu test için 2 ayrı dosya iletiyor olacağım. Bu dosyaların birisi jmx dosyası diğeri ise user-list csv dosyasıdır. Aşağıdaki linkten erişim sağlayabilirsiniz.

https://github.com/mertyakan/jmeter-magento2

Jenkins için performance trend eklentisi yüklü olmalı. Pipeline içerisinde çalıştırılacak komut aşağıdaki gibidir. Tabiki öncesinde kendi reponuzu pull etmelisiniz.

/opt/jmeter/bin/jmeter.sh -n -t test1.jmx -l test1.jtl

Örnek test çıktıları aşağıdaki gibidir;

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.