nGrinder 3.0 : Load Test even kids can do

4,436 views

Published on

nGrinder 3.0 basic introduction

Published in: Technology
0 Comments
13 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,436
On SlideShare
0
From Embeds
0
Number of Embeds
992
Actions
Shares
0
Downloads
0
Comments
0
Likes
13
Embeds 0
No embeds

No notes for slide

nGrinder 3.0 : Load Test even kids can do

  1. 1. nGrinder 3.0Load Test even Kids can do NHN
  2. 2. 1 nGrinder Since 2011 What’s my servers maximum TPS? What’s the optimal DB pool size? 2 / nGrinder
  3. 3. 1 nGrinder Since 2011 Base on grinder technology. LINE, Cubrid and a lot of services uses nGrinder for performance tests in NHN nGrinder Farm Agent 컨트롤러 Agent Agent Agent 3 / nGrinder
  4. 4. 1 nGrinder Since 2011 nGrinder Farm Agent 컨트롤러 Agent Agent Agent 4 / nGrinder
  5. 5. 1 nGrinder Since 2011 nGrinder Farm Agent 컨트롤러 PYTHON Agent Agent Agent 5 / nGrinder
  6. 6. 1 nGrinder Since 2011 nGrinder Farm Agent 컨트롤러 PYTHON Agent Agent Agent 6 / nGrinder
  7. 7. 1 nGrinder Since 2011 nGrinder Farm Agent 컨트롤러 PYTHON Agent Agent Agent 7 / nGrinder
  8. 8. 2 Difficult Situation I can not test because we didn’t reserve the farm. We should release this by tomorrow.  All host based performance test tools needs a reservation. (nGrinder 2.X, Performance Center) The tool should be always available whenever users need . 8 / nGrinder
  9. 9. 2 Difficult Situation I can not test because we didn’t reserve the farm. We should release this by tomorrow.  All host based performance test tools needs a reservation. (nGrinder 2.X, Performance Center) The tool should be always available whenever users need . Should I get a training for just one day use? The tool should be easy enough for novices to use. 9 / nGrinder
  10. 10. 2 Difficult Situation I can not test because we didn’t reserve the farm. We should release this by tomorrow.  All host based performance test tools needs a reservation. (nGrinder 2.X, Performance Center) The tool should be always available whenever users need . Should I get a training for just one day use? The tool should be easy enough for novices to use. We needs performance test tools which even kids can do anytime. 10 / nGrinder
  11. 11. 2 nGrinder 3.0 Since 2012.11 – Born again 11 / nGrinder
  12. 12. 2 nGrinder 3.0 Since 2012.11 – Born again 12 / nGrinder
  13. 13. 2 nGrinder 3.0 Since 2012.11 – Born again 13 / nGrinder
  14. 14. 2 nGrinder 3.0 Since 2012.11 – Born again 14 / nGrinder
  15. 15. 3 nGrinder 3.0 What’s changed? Availability Reservation? NO!! Anytime!! Just access to your preinstalled nGrinder instance. 15 / nGrinder
  16. 16. 3 nGrinder 3.0 What’s changed? Availability Reservation? NO!! Anytime!! It was really good to use even when I was really busy 16 / nGrinder
  17. 17. 3 nGrinder 3.0 What’s changed? Availability Reservation? NO!! Anytime!! It’s easy enough for kids to run tests. Usability Only 5 fields are necessary to set 17 / nGrinder
  18. 18. 3 nGrinder 3.0 What’s changed? Availability Reservation? NO!! Anytime!! It’s easy enough for kids to run tests. Usability Only 5 fields are necessary to set 18 / nGrinder
  19. 19. 3 nGrinder 3.0 What’s changed? Availability Reservation? NO!! Anytime!! It’s easy enough for kids to run tests. Usability Only 5 fields are necessary to set You can run test within 1 min 19 / nGrinder
  20. 20. 3 nGrinder 3.0 What’s changed? Availability Reservation? NO!! Anytime!! It’s easy enough for kids to run tests. Usability Only 5 fields are necessary to set It has the UI which users likes to continue to use 20 / nGrinder
  21. 21. 3 nGrinder 3.0 What’s changed? Availability Reservation? NO!! Anytime!! It’s easy enough for kids to run tests. Usability Only 5 fields are necessary to set Usability Use your favorite IDE then commit through SVN 21 / nGrinder
  22. 22. 3 nGrinder 3.0 What’s changed? Availability Reservation? NO!! Anytime!! It’s easy enough for kids to run tests. Usability Only 5 fields are necessary to set Usability Use your favorite IDE then commit through SVN 22 / nGrinder
  23. 23. 3 nGrinder 3.0 What’s changed? Availability Reservation? NO!! Anytime!! It’s easy enough for kids to run tests. Usability Only 5 fields are necessary to set Usability Use your favorite IDE then commit through SVN Installability Just download and run! Zero Configuration run_agent.bat controller_ip 23 / nGrinder
  24. 24. 3 nGrinder 3.0 What’s changed? Availability Reservation? NO!! Anytime!! It’s easy enough for kids to run tests. Usability Only 5 fields are necessary to set Usability Use your favorite IDE then commit through SVN Installability Just download and run! Stability Bugs? Not much than before…  The best Quality Control among all previous versions. 24 / nGrinder
  25. 25. 3 nGrinder 3.0 What’s changed? Availability Reservation? NO!! Anytime!! It’s easy enough for kids to run tests. Usability Only 5 fields are necessary to set Usability Use your favorite IDE then commit through SVN Installability Just download and run! Stability Bugs? Not much than before…  OK!! Let’s see how to run it. 25 / nGrinder
  26. 26. 4 Demo Write Script 26 / nGrinder
  27. 27. 4 Demo Write Script Configure Test (ex:Vuser) 27 / nGrinder
  28. 28. 4 Demo Write Script Configure Test (ex:Vuser) Run test 28 / nGrinder
  29. 29. 4 Demo Write Script Configure Test (ex:Vuser) Final Report Run test 29 / nGrinder
  30. 30. 4 Demo Write Script Configure Test (ex:Vuser) See the detailed result Final Report Run test 30 / nGrinder
  31. 31. http://www.nhnopensource.org/ngrinder/ 31
  32. 32. A1 nGrinder Script Sample It’s same as grinder. # -*- coding:utf-8 -*- from net.grinder.script.Grinder import grinder from net.grinder.script import Test from net.grinder.plugin.http import HTTPPluginControl, HTTPRequest from HTTPClient import NVPair url = "http://beta.api.camera.line.naver.jp" header = (NVPair(User-Agent, Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1),) test1 = Test(1, "Test1") def page(): result1 = HTTPRequest(url=url, headers=header).GET("/stamp/overview") result2 = HTTPRequest(url=url, headers=header).GET("/stamp/log/pick/CV/myDeviceId/101") result3 = HTTPRequest(url=url, headers=header).GET("/stamp/section/36") result4 = HTTPRequest(url=url, headers=header).GET("/stamp/log/pick/CV/myDeviceId/101") assert result1.getText().find("SPONSOR") != -1 assert result2.getText().find("error") == -1 assert result3.getText().find("Beads") != -1 assert result4.getText().find("error") == -1 page = test1.wrap(Page) class TestRunner: def __call__(self): page() 32 / nGrinder
  33. 33. A2 nGrinder: Architecture 33 / nGrinder

×