You are on page 1of 23

Jmeter ile Uygulama Katmannda Yk

Testi Gerekletirme

Temel Admlar
Apache Jmeter Java tabanl, ortam bamsz statik ve dinamik kaynaklar test etmek iin
kullanlan bir yk testi aracdr. Apache Jmeter uygulamas ile gerekletirebileceiniz baz
sunucu veya protokol trleri aadaki gibidir:

Web - HTTP, HTTPS


FTP
SOAP
DBMS
LDAP
Mail - SMTP(S), POP3(S)ve IMAP(S)
MongoDB (NoSQL)
TCP

ncelikle makalemize giri yapmadan Jmeter.org adresinden yk testimiz iin gerekli olan
Apache Jmeter uygulamasn indirilelim. ndirdiimiz apache-jmeter-2.12.zip ariv
dosyasn klasre kartp, klasr ierisinde bulunan bin klasr
ierisindeki ApacheJMeter.jar uygulamasn altralm.

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
1

Web Sunucu Test Senaryosunun Hazrlanmas


Web sunucu test senaryosunu hazrlamak iin birden fazla farkl yntem bulunmaktadr. Bu
makalemizde en temel admlardan balayacaz ve sonraki admlarda yeri geldike dier
yntemlerden bahsedeceiz.
Bir web sunucusunu uygulama katmannda yke kar dayankln test etmek iin, ncelikli
olarak kullanc saysn belirlememiz gerekmektedir.

Test Plana farenin sa tk butonuna basarak Add mensnden Thread (Users)


ksmndan, Thread Groupu seelim.

Eklemi olduumuz Thread Groupa ilikin ekran grnts aadaki gibidir:

Thread Group ierisinde yer alan alan baz parametre alanlarna gz atalm,
Name:Thread Groupu adlandrmak iin kullanlr.
Action to be taken a Sampler error: Test yapldnda hata durumundaki davrann ifade
eder.

"Continue" - Hata oluursa bile test etmeye devam et

Start Next Thread Loop Hata alndnda bir sonraki dizi dngsne ge

"Stop Thread" letim diziyi durdur

"Stop Test" - Testi durdur

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
2

Number of Threads (users): Oluturulacak sanal kullanc (virtul user(s) veya concurrent
user(s) deeri bu alana girilir.
Ram-up period (in seconds): Number of Threads ksmnda belirlenen kullanc saysna ka
saniye eriilmek isteniyorsa buraya o deer yazlr.
Loop Count: Testin ka defa tekrarlanaca bu alanda belirlenir. Frover seenei seilirse
kullanc tarafndan test durdurulana kadar yk testi devam edecektir.
Scheduler: Testin belirtilen zaman aralnda gerekletirilmesini salar.

HTTP sayfa yk testi iin ayarlar konfigre etmek iin Thread Groupa farenin sa
tuuna basarak Add mensnden, Config Element ksmndan HTTP Request
Defaultsu seelim.

Server Name or IP: Bu alana test yapmak istediimiz Http sunucusu alan (domain) adn veya
IP adres deerini yazalm.
Port Number: Bu alana Http sunucuna balanlmak istenen port numarasn yazalm.
Timeouts: Connect (Balant) ve Respons (Yant) alanlarna mili saniye cinsinden deerler
girerek zaman am deerlerini tanmlayabilirsiniz.

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
3

Path: Http sunucusu dizininde yer alan yol (iz) bilgisini tanm yaplabilinir.

blog.btrisk.com sitesi iin aadaki gibi parametre tanmlar yaplmtr.

HTTP isteini (HTTP Request) Thread Groupa farenin sa tuuna basarak Add
mensnden, Sampler ksmnda HTTP Request i aadaki gibi ekleyebiliriz.

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
4

Karmza kan HTTP Request sayfas aadaki gibidir.

rnek olarak blog.btrisk.com sitesine ynelik yk testi iin HTTP Request ierisinde
yer alan ilgili parametreleri aadaki gibi dzenleyelim.

Path alan yukarda da grlecei zere ana sayfaya giri olduu iin / deeri girilmitir.

Ayrca Blog.btrisk.com sitesinde yer alan dier bir sayfaya yaplacak istek iinde yeni
bir HTTP Request ekleyip ierisindeki parametre alanlarna aadaki gibi bilgiler
girilmitir.

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
5

Yaplan isteklere karlk alnan yant srelerine ilikin deerleri grafiksel olarak
grntleyebilmek iin Thread Groupa farenin sa tuuna basarak Add
mensnden, Listener ksmndan Response Time Graph seelim.

Bu admda Thread Group sayfasndan kullanc saysn, belirlenen kullanc saysna


ka saniyede ulaacan ve testin ka defa tekrar edileceini belirleyelim.

Son adm olarak Run mensnden Start veya Crtl+R tu kombinasyonunu


kullanarak yk testini balatalm.

Test baladnda Test sresince sa st kede yeil kare yanacak ve kullanc says
tanmlanan deere kadar artacaktr.

Test bitiminde veya test devam ederken Response Time Graph seip Graph
sekmesinden yant srelerinin deiimini gzlemleyebiliriz.

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
6

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
7

Gelimi Seeneklerin Kullanm


Bu admda Http ve Https temelli senaryolarmz daha kolay bir ekilde oluturmay ve
Jmeter-Plugin eklentisi ile daha fazla grafik elde ederek yk testi analizlerimizin daha anlaml
ve anlalr olmasn salayacaz.
Makalemize balamadan nce Jmeter-Plugin.org sayfasndan Extras Set eklentisini indirelim.
ndirdiimiz Extras Set ariv dosyasn bir klasre karp ierisindeki dosyalar ApacheJmeter ana dizine kopyalayp, var olan dosyalar yenileri ile deitirilmesine izin verelim.
Yukardaki anlatlan ilemleri doru bir ekilde gerekletirdiinizde Apache-Jmeter/bin dizini
ierisinde yer alan ApacheJMeter.jar uygulamasn altrdnzda aadaki gibi deiikler
olduunu greceksiniz.

rnein Listener sekmesine tkadnzda seeneklerin aadaki gibi art grlmekte.

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
8

HTTP(S) Test Script Recorder ile Yk(Stres) Testi Senaryosunun


Hazrlanmas

Apache-Jmeter uygulamasnn bulunduu klasr ierisinden ApacheJmeter.jar


uygulamasn altralm.

Test Plana sa tklayp Add sekmesinden Thread (user) alanndan Thread Group
bileenini seelim.

Thread Group ierisinde yer alan daha nce temel admlarda deindiimiz
parametreler alanlarn yk testimizin ihtiyalar dorultusunda dzenleyelim

rnein biz yk testimizi 100 sanal kullancya 10 saniyede ulaabilecek ve senaryoyu 4 defa
tekrarlayacak ekilde dzenleyelim.

Thread Group bileenine sa tklayp Add sekmesinden Logic Controller ierisinden


Recording Controller seelim. Recorder Controller bileenini kullanmamzn amac,
yapacamz istekleri bu bileen aracl ile test senaryosu ierisine kayt etmek.

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
9

Thread Group bileine sa tklayp Add sekmesinden Timer ierisinden Constant


Timer seelim.

Constant Timer bileeni ile yaplan her bir istek arasndaki bekleme sresini belirleyebiliriz.
Bu test senaryosu iin yaplan istekler arasndaki bekleme sresi 300 mili saniye olarak
belirlenmitir.

WorkBenche sa tklayp Non-Test Elements sekmesinden HTTP(S) Test Script


Recorder bileenini seelim.

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
10

HTTP(S) Test Script Recorder bileeni bizlere tanmlayacamz proxy aracl ile
herhangi bir internet taraycs ile gerekletriceimiz istekleri, Thread Group altnda yer
alan Recoring Controller bileeni ierisine eklenmesini salayacaktr.

HTTP(S) Test Script Recorder zerinde yer alan Global Settings alanndaki Port numarasn
proxy aracal ile dinlemek istediimiz Port numarasn yazalm ve Test plan content altnda
yer alan Target Controller alanndan yk testi senaryomuzu oluturacamz Recoring
Controllern adn aadaki gibi seelim.

Bunlara ek olarak test senaryonuz ierisinde olmasn istemediiniz, sayfalar ierisinde yer
alan uzantlar URL Patterns to Exclude alanndan belirleye bilirsiniz.
blog.btrisk.com

@btrisk

/btrisktv

/btrisk
11

Taraycmzn Ayarlar ksmndan Balant ayarlarndan yukarda tanmladmz port


numarasn 8080 ve domain balna localhost veya 127.0.0.1 yazalm.

Yukar anlatlan btn ayarlar yapldk sonra WorkBenchin altnda yer alan HTTP(S)
Test Script Recorder seilip Start butonu tklanp proxy ayarlar yaplm tarayc
zerinden yk testi yapacamz ilgili web sayfasnn test senaryosu kapsamnda ilgili

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
12

alanlarnda gezinerek test senaryosunu oluturalm.

Kontrol Notu: Test senaryosunun kayt edildiinden emin olabilmek iin Test Plann
altnda yer alan Thread Groupun altndaki Recording Controller sekmesi geniletelim
ve gezilen sayfalara ait ilgili linklere gz atalm.

Gelimi seeneklerinin kullanm admnda bahsediimiz Jmeter-Plugin eklentisi ile


gelen grafiklerin ne anlama geldiine ksaca gz atalm.

Therad Group sa tklayp Add Listener sekmesinden aada kullanm amalar yer alan baz
bileenleri ekleyelim;

Response Codes per Second: Yaptmz isteklere karlk gelen yant balndaki
mesajlarn istatistiksel dalmn grafiksel olarak gsterir.

Response Latencies Over Time: Yaplan isteklere karlk alnan yantlarn gecikme
(Latencies) deerlerinin istatistiksel dalmn grafiksel olarak gsterir.

Response Times vs Threads: Yaptmz isteklere karlk gelen yantlarn sresini ve o


andaki kullanc saysnn istatistiksel dalmn grafiksel olarak gsterir.

Hits per Second: Bir saniyede iletilen istek saysnn istatistiksel dalmn grafiksel
olarak gsterir.

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
13

Son adm olarak testimizi Ctrl + R veya Run sekmesinde Start butonuna basarak
balatalm.

rnek grafik ktlar aadaki gibidir:

Response Codes per Second

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
14

Response Latencies Over Time

Response Times vs Threads

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
15

Hits per Second

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
16

HTTPS steklerinin Proxyden Geirilmesi


Jmeter fonksiyonaliteleri ierisinde yer alan HTTP(S) Test Script Recorder kullanarak 443
portundan yayn yapan yani HTTPS ile iletiim kuran sayfalar proxyden geirmek iin Jmeter
sertifikasn yklemeniz gerekmetedir.

Apache-Jmeter Sertifikasnn Web Taraycsna Yklenmesi


Apache-Jmeter sertifikasn taraycmza yklemek iin aadaki admlar uygulayalm:
ncelikle ApaceheJmeter.jar uygulamasn aalm ve WorkBenche sa tklayp Add->NonTest Elements->HTTP(S) Test Script Recorder ekleyelim.

HTTP(S) Test Script Recorder zerinde yer alan Start butonu tklayalm ve karmza kan
uyarda OK butonuna basalm,

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
17

Oluturulan sertifikay Mozilla taraycya yklenmesi:

Taraycmzn Aralar sekmesinde Seenekler->Gelimi->Sertifikalar


blmnden Sertifikalar Gster butonuna tklayalm ve Yetkili sekmesine
tklayalm.

Onay belgesi yneticisinden e aktar butonuna tklayarak ApacheJmeterin kurulu


olduu dizin ierisindeki bin klasrnn yolu gsterelim.

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
18

ApacheJMeterTemporaryRootCA.crt dosyasn seip ykleyelim.

Tm alanlar yukardaki gibi kutucuklar iaretleyip onaylayalm. Artk HTTPS istekleri


HTTP(S) Test Script Recorder bileeni aracl ile kaydedebilirsiniz.

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
19

Komut Satrnda Yk Testi Gerekletirme


Lokalde yaplacak yk (rnein 1000 ve zeri sanal kullanc ile) testinde performans
probleminin nne gemek iin Jmeter, komut satrnda parametrelerle altrlmal. Birden
fazla eklenen grafik bileenleri yksek kullanc saysnda arayz kullanlarak yaplan
testlerde, yk testinin gerekletrildii sunucuda bellek ve ilemci kullanmn byk oranda
artrmaktadr.
Jmeter arayz modunda istenilen test senaryosu ve grafikler ekledikten sonra yk testini
balatmak yerine File sekmesinden Save Test Plan seeneini kullanarak test senaryosunu
Apache-Jmeter uygulamasnn bulunduu dizindeki bin dosyas ierisine kaydedelim.
Ayrca Apache-JMetern kullanaca Ram miktarn aadaki gibi konfigre edelim:
Apache-Jmeter dizininde Bin klasrnn altnda yer alan jmeter.bat dosyasna sa tklayp
birlikte a seeneini kullanarak ile notpad uygulamasyla aalm.
Alan sayfada set HEAP parametresini bulalm ve parametre ierisinde yer alan megabyte
cinsindeki bellek miktarn deitirelim.
rnein: set HEAP=-Xms1024m Xmx1024m
Yukarda anlatlan ilgili konfigrasyonlar yaptktan sonra komut satrndan Apache-Jmeter
dizini ierisindeki bin klasrne ulaalm.

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
20

Komut satrna jmeter -t TestPlan.jmx -n -l c:\Test_Plan_Data.csv yazalm.

.jmx uzantl dosyada test senaryosu yer almaktadr, c dizini altnda


oluacak Test_Plan_Data.csv dosyasna ise test sonular yazlacaktr.
.csv uzantl dosya ierisindeki verileri ilemek iin test bittikten sonra Apache-Jmeter
uygulamas ile oluturduumuz test senaryosunu ap ilgili grafik bileenlerine aarak
Browse seeneindenTest_Plan_Data.csv dosyasnn bulunduu yeri gsterelim.

blog.btrisk.com

@btrisk

/btrisktv

/btrisk
21

Hakkmzda
2009 ylnda kurulmu ve sadece bilgi gvenlii hizmetlerine odaklanm olan BTRisk Bilgi
Gvenlii ve BT Ynetiim Hizmetleri bilgi gvenlii problemine ynetim kurulu seviyesinden
sistem odas uygulamasna kadar uzanan alanda zm retmektedir.
BTRisk bilgi gvenlii problemini grnr hale getirerek alglanmasn, anlalmasn ve
dolaysyla ele alnmasn mmkn hale getirmektedir.
BTRisk bilgi gvenlii problemine kar gelitirdii yaklamlar gerek hayat koullarnda test
etmi ve uygulanabilir hale getirmitir.

Bilgi gvenlii ve BT ynetiim hizmet alanlarmz aadaki gibidir:

Pentest Hizmetleri
Bilgi Gvenlii ve BT Ynetiim Hizmetleri
Bilgi Gvenlii Operasyon Hizmetleri
Teknik Gvenlik Denetim Eitimleri
Ynetiim ve Denetim Eitimleri

zgn rnlerimiz aadaki gibidir:

5651 Uyumlu Wi-Fi ve Kablolu


A Hotspot zm

blog.btrisk.com

Bilgi Gvenlii Risk Analizi


ve Denetim Uygulamas

@btrisk

Tek Kullanmlk Parola


zm

/btrisktv

/btrisk
22

You might also like