წინასიტყვაობა:)
საკითხის განვილვა საწყის სტატიებში არ მივიჩნიე მიზანშეწონილად, რადგან პირველ რიგში უნდა გვესმოდეს მინიმალურ დონეზე, როგორ მუშოაბს საბაზისო ელემენტები JMeter-ში.
რეალურ გარემოსთან მაქსიმალურად მიხლოებული სიმულაციის შესაქმნელად, რიგ შემთხვევებში Performance Testing უნდა იყოს დროში დაგეგმილი(Scheduled) და თანმიმდევრული/პარალელური.
სწორედ ასეთი ტიპის ტესტებისთვის JMeter-ში შეგვიძლია ვაკონტროლოთ დრო, თუ როდის გაეშვას ტესტის ცალკეული Tread Group.
რა ხდება იმ შემთხვევაში თუკი ჩვენ გვაქვს სიტუაცია, როდესაც Test Plan მოიცავს რამდენიმე Thread Group-ს, რომლებიც ასრულებს ოპერაციებს სადაც მნიშვნელოვანია თანმიმდევრობა და დაყოვნება(Tread group-ების გარდა დროის ინტერვალების გამოყენება შესაძლებელია request-ებს შორის Time ელემენტებით. Add->Time) გარკვეული დროით?
მაგალით: არის სიტუაცია, როცა Thread group გვაძლევს შედეგს, რაც უნდა შევინახოთ ფაილში და შემდეგ, მეორე Thread-ში გამოვიყენოთ როგორც ცვლადი ან დასამუშავებელი მონაცემები. ამ შემთხვევაში ორივე Thread-ის პარალელურად გაშვება არ იქნება შედეგიანი.
დავიწყოთ საბაზისო ვარიანტით — Tread Group-ის ხანგხძლიობა
იმისთვის, რომ “ვმართოთ დრო”(ამ შემთხვევაში ჩავციკლოთ Thread სასურველი დროით), საჭიროა 3 ძირითადი პარამეტრის არჩევა:
1. Thread Group-ის Loop-ში ჩასმა. ანუ უსასრულო რაოდენობის იტერაციაზე გაშვება. Loop Count = infinite;
2. ვააქტიურებთ სექციას Specify Thread lifetime;
3. ვუთითებთ სრული ციკლის ხანგრძლიობას(Duration ველი)
Screenshot-ზე მოცემულ შემთხვევაში Thread Group-ში დამატებული მოქმედებები გამეორდება 10 წამის განმავლობაში. ეს არ ნიშნავს იმას, რომ თუ გვაქვს 1 Sampler და Listener, მოქმედება აუცილებლად იქნება 10 ან სხვა რაოდენობა. საუბარია request/response დროზე, რაც მოესწრება 10 წამში. შეიძლება იყოს შედარებით მძიმე response და პირობითად თუ ჭირდება 5 წამი, ამ შემთხვევაში მოესწრება 2 ციკლი.
Thread Group-ების თანმიმდევრული სტარტი
თუ გვაქვს 2 ან მეტი Thread და მიზანია ტესტი გაეშვას თანმიმდევრულად, საჭიროა Test Plan-ში მოინიშნოს “Run Thread Group Consequently”
ამ შემთხვევაში სტანდარული პარამეტრებისგან განსხვავებით, JMeter შეასრულებს რიგით პირველი Thread Group-ის ოპერაციებს(ყველა ციკლს, რაოდენობით ან დროის მიხედვით არჩეულს) და შემდეგ გადავა მომდევნო Thread-ზე. ვიდეოში ჩანს ორივე ვარიანტი:
Thread Group-ების გაშვება/დამატება პროცესში
წინა 2 ვარიანტის დროს საუბარია 1 Thread Group-ის გაშვებაზე. მაგრამ არის მომენტი, როცა გვჭირდება პარალელური ტესტირება, სადაც პროცესი იწყება ერთი ან რამდენიმე Thread-ით და ეტაპობრივად ემატება ახალი Thread Group-ები. ასეთ შემთხვევაში თანმიმდევრული მუშაობის პარამეტრი უნდა იყოს გამორთული და ვარეგულირებთ დროს დაწყებისა და ხანგრძლიობის მითითებით.
კონკრტული მაგალითი:
ვსტარტავთ Thread-ს სადაც იგზავნება request-ები https://www.google.com/-ზე, 5 მომხმარებლის იმიტაციით და დრო შეადგენს 10 წამს.
შემდეგი/პარალელური ტესტი იწყება 5 წამში და გრძელდება 5 წამს.
აქ მისამართია: https://www.google.com/search?q=jmeter
რა ვისწავლეთ ამ სტატიაში?
ვმართავთ Thread Group-ებს 🙂
განვმეორდები: სწავლა პრაქტიკაშია. ეს და წინა სტატიები დაგეხმარებათ გაიგოთ ასავალ-დასავალი, ექსპერიმენტები კი უნდა ატაროთ დამოუკიდებლად 🙂
გისურვებთ წარმატებების!
ავტორი: anri.phutkaradze