![](https://habrastorage.org/files/1d7/d54/2f5/1d7d542f5aff4a60a71849b9a1da54a1.jpg)
1. HTTP Request Tailãã©ã°ã€ã³ã®ç®ç
ãã©ã°ã€ã³ã¯ãåã蟌ã¿ãªãœãŒã¹ã®ããŒããç°¡çŽ åãã æå®ããã GETãªã¯ãšã¹ãã䞊è¡ããŠå®è¡ã§ããããã«ããŸã ã ããŠã³ããŒããããªãœãŒã¹ã®æ§æãšãããã®ãªãœãŒã¹ãããŒãããæ¹æ³ã«é¢ããŠããã¹ããã§ããã ããã©ãŠã¶ã«è¿ã¥ããŸãã
TailSamplerã¯å¿ èŠã«å¿ããŠåœ¹ç«ã¡ãŸãã
- GETèŠæ±ã®ã°ã«ãŒãã䞊è¡ããŠå®è¡ããŸãã
- 1000 HTTPãªã¯ãšã¹ãã³ã³ããŒãã³ããäœæããã«1000 GETãªã¯ãšã¹ããå®è¡ããŸã
- AJAX ã Adobe Flash ã Adobe AIR ã SilverLigthãªã©ãç©æ¥µçã«äœ¿çšãããµã€ãããã¹ãããŸãã
2.䜿çšèª¬ææž
HTTP Request Tailã¯ããªã³ã¯ã®ãªã¹ããHTMLããã¥ã¡ã³ãã«å€æããçµã¿èŸŒã¿ãªãœãŒã¹ãããŒãããŠãæå®ãããåãªã³ã¯ã®GETãªã¯ãšã¹ããäœæããŸãã
![<b> TailSampler </ b>ãã©ã°ã€ã³ã®ããŒã¿æºåããã»ã¹ãšãã®äœ¿çš](https://habrastorage.org/files/6ef/258/983/6ef25898340a4970952bccb41c52f0fa.png)
å³1. TailSamplerãã©ã°ã€ã³ã®ããŒã¿æºåããã»ã¹ãšãã®äœ¿çš
- Fiddlerãèµ·åããŸãã
- Webãã©ãŠã¶ãŒã§ããŒãžãéããŸããããŒãã¯ãã¹ãã§è©³çŽ°ã«æš¡å£ããå¿ èŠããããŸããããã¯ã Adobe Flash ã Adobe AIR ã Microsoft SilverLigth ã ActiveXã³ã³ããŒãã³ããå«ãããŒãžã§ãã
- ããŒãžã§å¿ èŠãªã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
- Fiddlerãªã³ã¯ããããã©ãŠã¶ã§å®è¡ããããã®ããã«ããã¹ãã§äžŠè¡ããŠå®è¡ããå¿ èŠãããGETãªã¯ãšã¹ãã«ã³ããŒããŸãã
- TailSamplerã«ãªã³ã¯ãæ¿å ¥ããå¿ èŠã«å¿ããŠãã©ã¡ãŒã¿ãŒåããŸãã
- ãã¹ãã§æå®ããããªã¯ãšã¹ãã®äžŠåå®è¡ãååŸãã䞊å床ãèšå®ãããŸãã
3.æšæºã®HTMLããŒãµãŒJMeterã®åäœ
JMeterã§HTTPçµç±ã§HTMLããã¥ã¡ã³ããååŸããæšæºçãªæ¹æ³ã¯ã HTTPãªã¯ãšã¹ããµã³ãã©ãŒã䜿çšããããšã§ãã HTTPãªã¯ãšã¹ãã§ã¯ãåã蟌ã¿ããŒãžãªãœãŒã¹ãç°¡åã«ãªã¯ãšã¹ãã§ããŸã-ãã§ãã¯ããŒã¯[v] åã蟌ã¿ãªãœãŒã¹ãååŸããŸãã ããŒãžãªãœãŒã¹ãžã®ãªã³ã¯ã圢æããæšæºã®ããŒãµãŒã¯LagartoBasedHtmlParserã§ãã ããŒãµãŒã¯ã jmeter.propertiesãã¡ã€ã«ã®htmlparser.classnameèšå®ã§å€æŽã§ããŸãã
5ã€ã®äººæ°ãµã€ãã®Apache.JMeterããŒãµãŒã®ç 究ã¯ãèšäºãApache.JMeterã®HTMLããŒãµãŒã®éžæãã«èšèŒãããŠããŸãã
ããŒãµãŒã䜿çšãããšãã»ãšãã©ãã¹ãŠã®å¿ èŠãªãªãœãŒã¹ãããŒããããŸãã ãã ããç°ãªããµã€ãã§ã¯ãããŠã³ããŒãã®å®å šæ§ã¯ç°ãªããŸãã ãããã£ãŠãWebãµã€ããMicrosoft Silverlightã«å®è£ ãããŠããå Žåã Apache.JMeterããŒãµãŒã®ããã©ãŒãã³ã¹ã¯çŽ0ïŒ ã«ãªããŸãã äžæ¹ã TailSamplerã䜿çšãããšããã©ãŠã¶ãç°¡åã«æ©èœããæ¹æ³ãšåæ§ã®è² è·ãé©çšããããšãå¯èœã«ãªããŸãã
3.1ã è€éãªatlas.mos.ruãµã€ãã§ã®äœæ¥ã®äŸ
![]() å³2. ãã©ãŠã¶ãŒã®atlas.mos.ruãµã€ã-ã¡ã€ã³ãã¡ã€ã³ãžã® 85
ãªã¯ãšã¹ã | ![]() å³3. JMeterã® Atlas.mos.ruãµã€ã-ã¡ã€ã³ãã¡ã€ã³ãžã® 2
ãªã¯ãšã¹ã |
![]() å³4. ã¯ãšãªå®è¡ã®ãã¬ãŒã¹ã¯webpagetest.orgã§ç¢ºèªã§ããŸã | ![]() å³5. ãã©ãŠã¶ãŒã¯ã¡ã€ã³ãã¡ã€ã³ã«å¯Ÿã㊠85
ãªã¯ãšã¹ããè¡ããJMeterã®å¹ç㯠2,35%
ã®ã¿ã§ããGoogleããã¥ã¡ã³ãã®ãã°ãåç §ããŠãã ãã |
AJAXãç©æ¥µçã«äœ¿çšããatlas.mos.ruãµã€ããéããšãéããèŠããŸãã
-
2
GETãªã¯ãšã¹ãïŒ LagartoBasedHtmlParser ã HTTPãªã¯ãšã¹ã ã JMeter 3.0ãå®è¡ãããŠããå ŽåïŒ; -
85
Chromeãã©ãŠã¶ãŒãå®è¡ãããŠããå ŽåãGETèŠæ±ã
ãããã£ãŠã atlas.mos.ruã¢ãã¬ã¹
83
ã®[v] åã蟌ã¿ãªãœãŒã¹ã®ååŸèšå®ã§HTTPãªã¯ãšã¹ãã䜿çšããå Žå
83
GETãªã¯ãšã¹ãã¯éä¿¡ãããŸããã
![](https://habrastorage.org/files/daf/51c/368/daf51c3684a846d599d8fc978aa66883.jpg)
足ããªã
ãæšå¹Žã®éªãéã£ãã
83
GETãªã¯ãšã¹ãã®éä¿¡ãã·ãã¥ã¬ãŒãããã«ã¯ã
83
HTTPãªã¯ãšã¹ãã³ã³ããŒãã³ããJMeterã¹ã¯ãªããã«è¿œå ããå¿ èŠããããŸãã
- JMeterã¹ã¯ãªããã¯é¢åã«ãªããŸãã
è¿œå ããã83
HTTPãªã¯ãšã¹ãã¯æ¬¡ã
ã«é çªã«åŠçãããŸã-ãã©ãŠã¶ã¯åã蟌ã¿ãªãœãŒã¹ã®ãªã¯ãšã¹ãã䞊è¡ããŠéä¿¡ããŸãïŒ
- ããŒãžãªãœãŒã¹ã®èªã¿èŸŒã¿ã®åèšæéã¯ãã©ãŠã¶ãããé·ããªããŸããé 次èªã¿èŸŒã¿ã¯ãèªã¿èŸŒã¿è§£é€ããããµãŒããŒã§ã®äžŠåèªã¿èŸŒã¿ãããæéãããããŸãã
- ãµãŒããŒãžã®åæãªãŒãã³æ¥ç¶ã®æ°ã¯ããã©ãŠã¶ãŒã®å®è¡æãããå°ãªããªãããµãŒããŒãžã®æ¥ç¶æ°ã¯ããã©ãŒãã³ã¹ã«éæ¥çã«åœ±é¿ããŸãã
![](https://habrastorage.org/files/9b7/e30/e9f/9b7e30e9fec8482ea7229eeb3ebf27c3.png)
å³6. Firefoxã§ã®pflb.ruãµã€ãã®èªã¿èŸŒã¿ã«é¢ããã¬ããŒã-http://www.webpagetest.org/result/160319_RQ_Q3W/1/details/-6
6
ãªã¯ãšã¹ãã®äžŠåèªã¿èŸŒã¿ã°ã«ãŒãã衚瀺ãããŸã
ãããã£ãŠã HTTPãªã¯ãšã¹ãã®ã¿ã䜿çšãããšããã¹ãŠã®ãµãã¯ãšãªã§htmlããŒãžã®èªã¿èŸŒã¿æéãæ£ç¢ºã«æž¬å®ãããããªæ¹æ³ã§ãåã蟌ã¿ãªãœãŒã¹ã®èªã¿èŸŒã¿ãå®å šã«ç¹°ãè¿ãããšã¯ã§ããŸããã
![](https://habrastorage.org/files/6df/8e9/03d/6df8e903de274468a7372d3e8f8afbef.jpg)
å³7. HTTPãªã¯ãšã¹ãã§ã¯å šäœåãèŠãããšãã§ããŸãã; HTTPãªã¯ãšã¹ãããŒã«ã¯ãµããªã¯ãšã¹ãã®ããŒã«ãå®è£ ããã®ã«åœ¹ç«ã¡ãŸã
4.äœæã®æŽå²
JMeterã®HTTP Request Tailãã©ã°ã€ã³ã¯ã pythonã® Tile ServerãµãŒãã¹ã®ä»£æ¿ãšããŠäœæãããŸããã以äžã®èª¬æãåç §ããŠãã ããã
Tile ServerãµãŒãã¹ãåããŠç¥ã£ãã®ã¯ãååã®Zhenya BorodenkovãšMaxim Konyshevããã¹ã©ã€ã¹ãã¿ã€ã«ã«å€§ããªç»åãããŒãããWebãããžã§ã¯ãã®ããŒããã¹ãã«ã€ããŠè©±ãåã£ããšãã§ãã 次ã«ãã¯ã©ã€ã¢ã³ãã§SilverLightã䜿çšãã SOAP / MSBin1ãããã³ã«ã䜿çšããŠãµãŒããŒããã³ã³ãã³ããã¹ããªãŒãã³ã°ãããã®Webãããžã§ã¯ãã®ããŒãžã§ã³ã®1ã€ãã¹ãã¬ã¹ãã¹ãããã¿ã¹ã¯ã解決ããŸããã SOAP / MSBin1ãããã³ã«ãä»ããŠJMeterãããªã¯ãšã¹ããéä¿¡ããããããžã®åçãåŠçããããã«ãæåã«æ¹æ³ãããããªãã£ãããããªãã·ã§ã³ã«ã€ããŠèª¬æããŸããã
ã¹ããŒãªãŒã¯æ¬¡ã®ãããªãã®ã§ããïŒ
-Vovaãããã«ããå ŽåãäžéãµãŒãã¹ã䜿çšããŠå¿ èŠãªãªã¯ãšã¹ããäœæãããšèšããŸãã
-äžéãµãŒãã¹ãè€éãããŸãïŒåçæžã¿ïŒã JMeterã®ãã©ã°ã€ã³ãæžããŸãããã ãã©ã°ã€ã³ã¯ã·ã³ãã«ã§ä¿¡é Œæ§ããããŸãã
-ååã®ãã¹ãã§ã¯ãAndrei Pishchulinãpythonã§Tile ServerãµãŒãã¹ãäœæããŸãããããã®ãµãŒãã¹ãã¿ã€ã«ãæäœããããã®ãµãŒãã¹ãåŒãç¶ã䜿çšããŠããŸããåãããšãããŸãããã
- JMeterã¯ã HTTPèŠæ±çµç±ã§POSTã¡ãœããã䜿çšããŠã ã¿ã€ã«ãµãŒããŒã«ãªã³ã¯ã®ãªã¹ããéä¿¡ããŸã ã
- Tile Serverã¯WebãµãŒããŒãå®è£ ãããªã³ã¯ã®ãªã¹ããåãå ¥ãããªã³ã¯ãæãiframeã®ãªã¹ãã䜿çšããŠãªã³ã¯ããhtmlããã¥ã¡ã³ãã圢æãã JMeter htmlããã¥ã¡ã³ããè¿ããŸãã
- JMeterã¯htmlããã¥ã¡ã³ãã解æãããµãã¯ãšãªãªã©ã®å¿ èŠãªGETãªã¯ãšã¹ããå®è¡ããŸãã
-ããŠã SOAP / MSBin1ã§ã®äœæ¥ãå®è£ ããäžéãµãŒãã¹ãå®è¡ããŸãããã
å³8. ã¿ã€ã«ãµãŒããŒ
ä»åŸã¯ãåãããšããããšèšããŸãã SOAP / MSBin1ãä»ããŠãªã¯ãšã¹ããçæãã.NETãããã·ãµãŒãã¹ãäœæããŸãããJMeter㯠SOAP / XMLãä»ããŠãã®ãµãŒãã¹ã«ã³ãã³ããéä¿¡ãããµãŒãã¹ã¯SOAP / MSBin1ãä»ããŠããŒãããããã¹ãã«ãªã¯ãšã¹ããéä¿¡ãã JMeterã«å¿çãè¿ããŸããã
ãŸããé«è² è·ã®å Žåããããã·ãµãŒãã¹ãããã«ããã¯ã«ãªãããªã¯ãšã¹ããçæã§ãããå¿çãåŠçã§ããªãã£ããããããŒãããããµãŒããŒãéããŠãŽã£ããã§ããã ãã¹ãããããµãŒããŒã¯è² è·ãåãåããŸãããã
10
ç§ã§ãããã·ãµãŒãã¹ã«å¿çããå Žåããããã·ãµãŒãã¹ã¯
110
ç§ã§JMeterã«å¿çããŸããã çµ±èšã«ãããšã JMeterãã°ãããããŒãããããµãŒãã¹ãèœã¡èŸŒãã§ããããã«èŠãããããããŒãã¯è¯å¥œã§ããããããŒãããããµãŒãã¹ã¯JMeterãã°ã蚌èšãããããæ¿ããåå¿ããŸããã ãããã·ãµãŒãã¹ãžã®è©³çŽ°ãªãã°ã®è¿ éãªè¿œå ã«ããç¶æ³ã¯ä¿®æ£ãããŸãããããããã·ãµãŒãã¹ãã¯ã©ãã·ã¥ããå Žåããã®ãã°ãªã³ã¯é 延ããŸãã-äžéãµãŒãã¹ãã¹ã±ãŒãªã³ã°ãããå®å šã«æžãæããå¿ èŠãããã1ã€ã®ã€ã³ã¹ã¿ã³ã¹ãTsar Cannonã®åœ¹å²ãåŒãç¶ãã§ããŸããã§ããã
![](https://habrastorage.org/files/b8e/0db/c6d/b8e0dbc6d298450c9ddb0ee4ac9aea0e.jpg)
å³9. çåžãã£ãã³
ãããã·ãµãŒãã¹ãé害ç¹ã«ãªããŸããã 次ã«ã JMeterã®ãã©ã°ã€ã³ã®ã¢ã€ãã¢ã«æ»ãã JSR223 ã JNAã©ã€ãã©ãªãããã³.NETã®ãããã·ã¯ã©ã€ã¢ã³ãããSOAP / MSBin1ãããã³ã«ãæäœããããã®ãã·ã³ã¬ã³ãäœæããŸããã ãã©ã°ã€ã³ã¯ãè€æ°ã®çä¿¡ã¹ããªãŒã ãåŠçããå¿ èŠããªããªããŸããã ãã¡ãããRAMã®ãªãŒããŒãããã¯ãã以äžã§ãããåäœã¯é«éã§ãã
ãã®åŸã Tile Serverã眮ãæããããã«ãµã³ãã©ãŒJMeterãjavaã§æžããšããã¢ã€ãã¢ãçãŸããŸãããçªç¶ãè² è·ãããã£ãç¶æ ã§é害ãçºçããŸããã å°æ¥ã®ãµã³ãã©ãŒã®ååã§ãããHTTP Request TailããŸãã¯ãTail Samplerããç»å ŽããŸããã è±èªã®ç¥èãä¹ããããããã¿ã€ã«ããšããèšèããããŒã«ããšèããŸããããå°ãç解ã§ããŸããã§ãããããã«ããã¿ã€ã«ããšãããŒã«ããšèš³ãããèšèã¯ããã«ãããŸãã è³ãèãããªãæºåž¯é»è©±ããã£ãœããã£ãœã人éã®ç»åãçµµãåŒãç«ãŠãŸããã ã¢ã€ãã¢ãå®çããã¢ã€ãã¢ã¯æ確ã§ãååããããŸãã æ®ã£ãŠããã®ã¯ãããè¡ãããšã ãã§ãã ãã®åŸããã©ã°ã€ã³éçºã®å°é家ã§ããSasha Perevozchikova Sanchez92ãæ¯æŽããŸããã
ç§ã®ååã«ãããšã Tile Serverã«å¯ŸããèŠæ ã¯ãããŸãã-ããã¯é«éã§ä¿¡é Œã§ããããŒã«ã§ãã ãã®ãã©ã°ã€ã³ã¯ãç§ã«ãšã£ãŠæ°ããJMeterããŒã«ã«å¯Ÿãã奜å¥å¿ãšé¢å¿ããäœæããããã®ã§ãSashaã¯äœããåãå¿ èŠããããŸãããããã§ãªããã°ã女ã®åã¯éå±ããŠããŸããã
ãã®ã¹ããŒãªãŒã®ãã¹ãŠã®ååã¯æ¶ç©ºã®ãã®ã§ãããæ瀺çãŸãã¯éæ¥çã«ãHTTP Request Tailãã©ã°ã€ã³ã¯ããããŸããïŒ
- ãµãŒã·ã£ã»ãã¬ããºãã³ã¯;
- ã¢ã³ãã¬ã€ã»ãã·ã¥ãã¥ãªã³;
- Vova Lavrentiev;
- ããã·ã ã»ã³ãã·ã§ã;
- ãžã§ã³ã€ã»ãããã³ã³ã;
- ãããŠç§ã¯ããã«ããŠãäœãã飲ã¿ãŸããã
5.説æ
5.1ã ããã©ã«ãèšå®
å³10. ããã©ã«ãèšå®
ããã©ã«ãèšå®ã¯æ¬¡ã®ãšããã§ãã
- [v] ãã¹ãŠã®åã蟌ã¿ãªãœãŒã¹ãååŸãã -ãã§ãã¯ããã¯ã¹ã¯ããã©ã«ãã§ãªã³ã«ãªã£ãŠããããªãã«ã§ããŸããããµãã¯ãšãªã¯å®è¡ãããã HTTPãªã¯ãšã¹ãããŒã«ã¯äœ¿çšã§ããªããªããŸãã
- [v] åæããŒã«ãäœ¿çš -ããã©ã«ãã§ãã§ãã¯ããŒã¯ããªã³ã«ãªã£ãŠããŸããå€æ°ã®çµã¿èŸŒã¿ãªãœãŒã¹ã§ã¯ããã«ãã¹ã¬ããããŠã³ããŒãã«ããããŠã³ããŒãé床ãåäžããŸãã
- é¢é£ããŒã«ã䜿çšãµã€ãº ïŒ
4
ããã©ã«ãå€ã¯4ã§ãããã®å€ã¯ã JMeterãããŒã¹ãšããŠäœ¿çšããŸãã
- HttpClient4ãã»ããã¢ãããããšãã«äœ¿çšããé¢é£ããŒã«ãµã€ãº ïŒ
4
ã¯äžåºŠã«æ倧4ã€ã®èŠæ±ãéä¿¡ããåã¹ã¬ããã¯åãã¡ã€ã³ãžã®1ã€ã®æ°žç¶çãªæ¥ç¶ã䜿çšããŸãã
- ã¹ã¬ããã®ã°ã«ãŒããéå§ããããšãã°ã«ãŒããµã€ãºã¯[é¢é£ããŒã«ãµã€ãºã®äœ¿çš]èšå®ã«ãã£ãŠæ±ºå®ãããŸãã
- [v] ããŒãã¢ã©ã€ããèšå®ãããšãäžæã®ãã¡ã€ã³ããšã«åã¹ã¬ããã1ã€ã®æ°žç¶çãªæ¥ç¶ãäœæããŸãã
- Mozilla Firefox 44.0ãã©ãŠã¶ãŒã¯ãããã©ã«ãã§ãã¡ã€ã³ããšã«æ倧
6
åæãªã¯ãšã¹ããéä¿¡ããŸãïŒabout:config
åç §ïŒïŒ
-
256
- network.http.max-connections-æ¥ç¶ã®æ倧æ°ã -
6
- network.http.max-persistent-connections-per- server-ãµãŒããŒãžã®åžžææ¥ç¶ã®æ倧æ°ïŒããŒãã¢ã©ã€ãïŒã -
32
- network.http.max-persistent-connections-per- proxy-ãããã·ãµãŒããŒãžã®æ°žç¶çãªæ¥ç¶ã®æ倧æ°ïŒããŒãã¢ã©ã€ãïŒã
-
- Mozilla Firefox 44.0ã®èšå®ãããã³è² è·ãã¹ããããžã§ã¯ãã®åã蟌ã¿ãªãœãŒã¹ãžã®ãªã³ã¯ãéåžžåããã¡ã€ã³ã«å±ããŠãããšããäºå®ã«çŠç¹ãåœãŠãå Žåã Use concerent pool Sizeã§ã¯ãå€ãæšæºå€ã®
4
ã§ã¯ãªã6
èšå®ã§ããŸãã
- HttpClient4ãã»ããã¢ãããããšãã«äœ¿çšããé¢é£ããŒã«ãµã€ãº ïŒ
æªäœ¿çšã®èšå®-POSTãªã¯ãšã¹ãã®èšå®ãå€ã¯ã¡ã€ã³ãªã¯ãšã¹ããŸãã¯ãµãã¯ãšãªã®ãããã§ã䜿çšãããŸããã
- [] POSTã«multipart / form-dataã䜿çšããŸãã
- [] ãã©ãŠã¶äºæããã㌠ã
ã¡ã€ã³ãªã¯ãšã¹ãã¯éä¿¡ãããã«çæãããPOSTãªã¯ãšã¹ãã®èšå®ã¯åœ±é¿ããŸããã ãµãã¯ãšãªã¯GETã¡ãœããã䜿çšããŸã; POSTãªã¯ãšã¹ãã®èšå®ãé©çšãããŸããã
ä»ã®èšå®ã¯ãµãã¯ãšãªã«åœ±é¿ããŸãã
HTTP Request Tailã¯HTTP Requestã®åŸç¶ã§ããèšå®ã®èª¬æã¯ã HTTP Requestã®ããã¥ã¡ã³ãã«ãããŸã ã
- http://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request-HTTP èŠæ±ã®ããã¥ã¡ã³ã
5.2ã æ§æãããHTTPãªã¯ãšã¹ãããŒã«
![](https://habrastorage.org/files/401/7bb/e33/4017bbe3372d4f6f9d846506dcbafdac.png)
å³11. æ§æãããHTTPãªã¯ãšã¹ãããŒã«
åã蟌ã¿ãªãœãŒã¹ãžã®ãªã³ã¯ã¯ã[ åã蟌ã¿ãªãœãŒã¹]ããã¹ãããã¯ã¹ã«è¡šç€ºãããŸãã çžå¯Ÿãªã³ã¯ãšçµ¶å¯Ÿãªã³ã¯ãæå®ã§ããŸãã
5.2.1ã 絶察ãªã³ã¯
絶察ãªã³ã¯åœ¢åŒã®èª¬æã«ã€ããŠã¯ãRFCãåç §ããŠãã ããïŒ https : //tools.ietf.org/html/rfc3986
絶察ãªã³ã¯ã¯ãããã³ã«ã§å§ãŸããŸãïŒ
-
file://
-
http://
-
https://
ä»ã®ãããã³ã«ã¯HTTP Request Tailã«ãã£ãŠåŠçãããŸããã 絶察ãªã³ã¯ã®äŸïŒ
-
file://C:\Data\htmlDocument.html#Part1
-
http://www.pflb.ru/
-
https://yandex.ru/?q=Testing&client=Mozilla
5.2.2ã çžå¯Ÿãªã³ã¯
çžå¯Ÿãªã³ã¯ã¯ãã£ãŒã«ãå€ã«ãã£ãŠè£å®ãããŸãïŒ
- ãã¹ -ããŒãžã«é¢é£ãããã¹ãã«é¢é£ããªããªã³ã¯ã®ãã£ã¬ã¯ããªãããã§ããããã³ã«ãšãã¹ãããã³ããŒããæå®ã§ããŸãã
- WebãµãŒã㌠-ãã¹ããšããŒãïŒ
- ãµãŒããŒåãŸãã¯IP ;
- ããŒãçªå·
- ãããã³ã«[http] -ãããã³ã«ããããã³ã«ãPathã§æå®ãããŠããªãå Žåãå€ãèæ
®ãããŸããå€ã¯
file
ãhttp
ãhttps
ã§ãã
çžå¯Ÿãªã³ã¯ã®äŸïŒ
-
image1.png
-
/images/image1.png
-
/ResourceGenerator.aspx?id=0121
-
subFolder/style.css
-
subFolder/1/2/3/test.php
5.2.3ã å€æ°ãšé¢æ°ã䜿çšãããã©ã¡ãŒã¿ãŒå
JMeterã®å€æ°ãšé¢æ°ã䜿çšããŠãGETèŠæ±ããã©ã¡ãŒã¿ãŒåã§ããŸãã äŸïŒ
-
${variable_URL}
-
/search.php?q= ${variable_Query_String}
-
/search.php?q= ${variable_Query_String} &client=Mozilla
-
/search.php?q= ${__urlencode(${variable_Query_String})} &client=Mozilla
5.2.4ã Unicodeããã³htmlãšã³ãã£ãã£ãåŠçããæ©èœ
ãªã³ã¯ããhtmlããŒãžã圢æããå Žåãhtmlãšã¹ã±ãŒãã䜿çšãããŸãã ãããã£ãŠããªã³ã¯ãäœæãããšãã«ã次ã䜿çšã§ããŸãã
- ããªã«æåãã¡ã€ã³
-
<
ã>
ã&
ãªã©ã®ç¹æ®æåã - ãŠãã³ãŒãæåã
htmlããŒãžã®æ§é ã«éåããããšã¯ãªãããªã³ã¯ã¯æ£ããå®å šã«åŠçãããŸãã
html4ã®htmlãšã³ãã£ãã£ã®å®å šãªãªã¹ãã¯ãã¡ããã芧ãã ããã
ä»æ§ã®äžéšã®ãšã³ãã£ãã£ããšã¹ã±ãŒããããŠããªãå Žåããã©ã°ã€ã³ã«é¢ããã¡ã¢ãçºè¡ããŸãã
ç¹æ®æåãäºåã«ãšã¹ã±ãŒãããå¿ èŠã¯ãããŸããã ãããã£ãŠããã©ãŒã ã®URLãæå®ããå¿ èŠãããå ŽåïŒ
-
/search.php?q=Testing & client=Mozilla
æ£ããã
ãããæžãæ¹æ³ã§ã-
&
ããã«äºåã«éžå¥ããã å¿ èŠãªãïŒ
-
/search.php?q=Testing & amp; client=Mozilla
/search.php?q=Testing & amp; client=Mozilla
ééã£ãŠããŸãã
5.2.5ã Javaçšã®Unicode
ã¢ãã¬ã¹ã«ãŠãã³ãŒãæåãå«ãŸããŠããå Žåãããšãã°ã®ãΩãÏãâã§ããããšãããããŸãã
-
/search.php?q=Microsoft®
å®è£ ã®èšå®ã§ã¯ãå€ã¯
Java
ã§ããããµãã¯ãšãªã§ã¯Unicodeæåãæ£æ¹åœ¢ã«çœ®ãæããããŸãã
-
/search.php?q=Microsoftâ¡
bat-fileã䜿çšããŠWindowsããJMeterãèµ·åãããšã javaã®ãšã³ã³ãŒãã£ã³ã°ãšããŠ
windows-1251
ãå²ãåœãŠãããŸãããããUnicodeæåãå°ããªæ£æ¹åœ¢ã«çœ®ãæããçç±ã ãšæããŸãã ãšã³ã³ãŒãã£ã³ã°ãæå®ããã«ã¯ãbat-fileã§javaã®åŒæ°
-Dfile.encoding=UTF-8
ãæå®ããå¿ èŠããããŸãã
HttpClient4
ããã³
HttpClient3.1
ã䜿çšããå Žå
HttpClient3.1
ãã®äžèŠãªå€æã¯çºçããŸããã
5.3ã çæãããå¿ç
å³12. ã¡ã€ã³ãªã¯ãšã¹ãã«å¯Ÿããã¬ã¹ãã³ã¹-çæãããã¬ã¹ãã³ã¹
ã¡ã€ã³ãªã¯ãšã¹ããžã®å¿çãçæãããŸãã èŠæ±ã¯ãªããå¿çæ¬æã®ã¿ããããŸãã
å¿çæ¬æã¯ãUTF-8ã§ãšã³ã³ãŒããããHTMLããã¥ã¡ã³ãã§ãããåã蟌ã¿ãªãœãŒã¹ãžã®ãªã³ã¯ããšã«
iframe
ã¿ã°ãçæãããŸãã
ãµã³ãã«ææžïŒ
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Embedded resources</title> </head> <body> <iframe src="http://www.google-analytics.com/analytics.js"></iframe> <iframe src="/sites/all/themes/pro/static/img/icons.png"></iframe> <iframe src="sites/all/themes/pro/static/img/main_3_block90-s.png"></iframe> <iframe src="http://pflb.ru/sites/all/themes/pro/static/img/footer-shadow.png"></iframe> <iframe src="http://staticxx.facebook.com/connect/xd_arbiter.php"></iframe> </body> </html>
å³13. çæããããªã¯ãšã¹ãã®å®è¡çµ±èš
5.3.1ã èšç»ãå€æŽãã
JMeterããŒãµãŒã«é¢ããèšäºãæžããšããéçºè ã®JMeter Philippe M. philmdotã¯ã³ã¡ã³ãã«ç»å Žããååž°åŠçãç ç²ã«ããŠæ¬ é¥ãæçš¿ããããã«èŠæ±ããŸããã
æ¬ é¥ãæçš¿ããä¿®æ£ããäºå®ã§ãã
img
ã¿ã°ããã®ãªã¯ãšã¹ãã«å¿çããããã«ããªãœãŒã¹ãžã®ãªã³ã¯ã®ååž°çãªæ€çŽ¢ãå®è¡ãããªãããã«ããŸãã JMeter解æã§ã¯ããã©ãŠã¶ãšåãããã«æ©èœããŸããã çŸåšã
iframe
å Žåã解æãå®è¡ããå¿ èŠãããã
img
ã®ã¿ã®å Žåãåäžã®èŠæ±ãå®è¡ãããŸãã
ãããŠãçæäžã«
iframe
ã¿ã°ã®ä»£ããã«
img
ã¿ã°ã䜿çšãããããã«ã TailSamplerãã©ã°ã€ã³ãå€æŽããå¿ èŠããããŸãã
ä»æ¥ãPhilippeã¯ããã®ã³ãŒããJMeterã³ã¢ã§èŠãããšæžããŠããããããAJAXãæäœããè¯ãæ¹æ³ã«ãªããšæžããŠããŸã ã ä»å¹Žããã£ããããããšæããŸããé¢çœãçµéšã«ãªãã§ãããã
5.4ã æ¢ç¥ã®å¹æ
5.4.1ã ãã°å ã®+1ãªã¯ãšã¹ã
ã«ãŒããªã¯ãšã¹ãã¯éä¿¡ãããŸãããããã°ã«èšé²ãããŸãã
- 匱ããã 1ç§ãããã®ãããæ°ã€ã³ãžã±ãŒã¿ãŒã®å€ãé倧è©äŸ¡ãã-1 ç§ãããã®ãããæ°ã
- éæ¥çã«ãJMeterãã°ã®äžè¬çãªçµ±èšã«åœ±é¿ããŸãã
- ãã®åäžã®ã¯ãšãªãçµ±èšã«äžãã圱é¿ãæžããã«ã¯ãå®éã®ãµãã¯ãšãªã®æ°ãå€ããã[ çµã¿èŸŒã¿ãªãœãŒã¹]ãã£ãŒã«ãã«æ°åã®ãªã³ã¯ãé 眮ããå¿ èŠããããŸãã
5.4.2ã åçã®é¯èŠ302
[ ãªãã€ã¬ã¯ãã®ãã©ããŒ]èšå®ãèšå®ãããŠããå Žåãå¿çã³ãŒã
302
ïŒèŠã€ãã£ãïŒãæã€ååã蟌ã¿ãªãœãŒã¹ã«å¯ŸããŠïŒ
- å¿çããããŒã®Locationå€ã§æå®ãããããŒãžã«ãªãã€ã¬ã¯ãããŸãã
- JMeterã§ã¯ããªãã€ã¬ã¯ãã¯ãµãã¯ãšãªãšããŠè¡šç€ºãããŸããèŠèŠçã«ã¯ãªã¯ãšã¹ãã®ã«ã¹ã±ãŒãã®ããã«èŠããŸãã
5.4.3ã ååž°
ãŸãã§ã¯ããããèããããå¹æã¯ãã€ã³ã©ã€ã³ãªãœãŒã¹ã®ã€ã³ã©ã€ã³ãªãœãŒã¹ã®ããŒãã§ãã
- ã³ã³ãã³ãã¿ã€ãã䜿çšïŒ jmeter.propertiesã®htmlParser.Typesããã³wmlParser.Typesèšå®ãåç
§ ïŒïŒ
- ããã¹ã/ html;
- application / xhtml + xml;
- ã¢ããªã±ãŒã·ã§ã³/ xml;
- ããã¹ã/ xml;
- text / vnd.wap.wml;
- å®è¡è
ïŒ
- çŸåšã®åã蟌ã¿ãªãœãŒã¹ã®åã蟌ã¿ãªãœãŒã¹ã®èªã¿èŸŒã¿â [ åã蟌ã¿ãªãœãŒã¹]ãã£ãŒã«ãã®ãªã³ã¯ãããå€ãã®ãµãã¯ãšãªãååšããå ŽåããããŸãã
ååž°ã®æ·±ãããããã©ã«ãã§3ã¬ãã«ã®ãã©ã°ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ããèšå®ã§ãããã©ã¡ãŒã¿ãŒã«å¶éããèšç»ããããŸãã ç»åïŒ imgã¿ã°ïŒãèªã¿èŸŒããšãããã©ãŠã¶ã¯ãã®ããã®åã蟌ã¿ãªãœãŒã¹ãèªã¿èŸŒã¿ãŸããã ããã«ããã¹ãŠã®ãªãœãŒã¹ã¯iframeã¿ã°ã§ã©ããããã Apache.JMeterã¯çŸåšããªã¯ãšã¹ããè¡ãããã¿ã°ãåºå¥ããŸãããå¿çã®ã³ã³ãã³ãã¿ã€ããé©åãªå Žåããµãã¯ãšãªã®ãµããžã§ã¯ãã®å¿çãåžžã«è§£æããŸãã
![](https://habrastorage.org/files/640/bff/594/640bff5949084b1e98f03dc3295db0a9.png)
å³14. æåã®test_server.ruãªã¯ãšã¹ãã衚瀺ãããŠããŸãããå®éã«ã¯å®è¡ãããŠããŸããïŒã+1ãªã¯ãšã¹ããå¹æïŒã ãªãã€ã¬ã¯ãã®ã«ã¹ã±ãŒãïŒãåç302ã®ããžã¥ã¢ã«ããŒãããšãã§ã¯ãïŒããã³ãµãã¯ãšãªã®ãµãã¯ãšãªïŒãååž°ããšãã§ã¯ãïŒã確èªã§ããŸãã
5.5ã æéç¹æ§
[ ãã¹ãŠã®åã蟌ã¿ãªãœãŒã¹ãååŸ ]ã®ãã§ãã¯ãå€ããå ŽåããŸãã¯åã蟌ã¿ãªãœãŒã¹ã«ãªã³ã¯ãæå®ããªãã£ãå Žåããã°ã«ã¯ãªã¯ãšã¹ããå³åº§ã«éä¿¡ãããåçãå³åº§ã«éä¿¡ãããããšãèšé²ãããŸãã
æéç¹æ§ã®èª¬æïŒ
- ããŒãæé -åã蟌ã¿ãªãœãŒã¹ã®ããŒãã®åèšæéã
- æ¥ç¶æéã¯åžžã«
0
ã§ãã - é
延ã¯åžžã«
0
ã§ãã
6. Githubã§ã®ãããžã§ã¯ã
- https://github.com/pflb/Jmeter.Plugin.TailSampler-ãããžã§ã¯ããžã®ãªã³ã¯ã
- https://github.com/pflb/Jmeter.Plugin.TailSampler/issues-ãããžã§ã¯ãã«é¢ããã³ã¡ã³ããçºè¡ããŸã ã
7.ãããžã§ã¯ãã®æ§é
ãã£ã¬ã¯ããªå ã®ãœãŒã¹ã³ãŒãïŒ
/ src / ru / pflb / jmeter
- ãããã³ã«/ http / config / gui ïŒ
- TailUrlConfigGui.java-åã蟌ã¿ãªãœãŒã¹ãžã®ãªã³ã¯çšã®å€§ããªå ¥åãã£ãŒã«ããæã€ã³ã³ãããŒã«ã
- ãµã³ãã©ãŒïŒ
- wrapper-å®è£
ãã©ãŒã ã§æå®ããã䜿çšããã©ãããŒïŒ
- WrapperHTTPFileImpl.java-
file://
ã䜿çšããã©ãããŒfile://
ãµãã¯ãšãªã®ãããã³ã«ãã³ãã©ã - WrapperHTTPHC3Impl.java-ãµãã¯ãšãªã®å®è£
èšå®ãã
HttpClient3.1
ã䜿çšããã©ãããŒã - WrapperHTTPHC4Impl.java-ãµãã¯ãšãªã®å®è£
èšå®ãã
HttpClient4
ã䜿çšããã©ãããŒã - WrapperHTTPJavaImpl.java-ãµãã¯ãšãªã®å®è£
èšå®ãã
Java
ã䜿çšããã©ãããŒã - WrapperHTTPSamplerFactory.java-ã©ãããŒãäœæããããã®ãã¡ã¯ããªãŒã¯ããããã³ã«å€ãšå®è£ èšå®ã«ãã£ãŠãã³ãã©ãŒãè¿ããŸãã
- WrapperHTTPFileImpl.java-
- EscapeUtils.java -htmlãšã¹ã±ãŒãã®å®è£ ã«ããããã·ã¢ã®ãã¡ã€ã³ãUnicodeãããã³ãªã³ã¯å ã®ç¹æ®æåã䜿çšã§ããŸãã
- ITailHTTPImpl.java-ãã¹ãŠã®ãã³ãã©ãŒã®åºæ¬ã€ã³ã¿ãŒãã§ãŒã¹ã
- TailHTTPHC4Impl.java-èŠæ±ãéä¿¡ããã«æå®ãããå¿çæ¬æã䜿çšããä¿®æ£ãããHttpClient4 ã
- TailHTTPSamplerProxy.java - TailSamplerã®ãã¹ãŠã®ããžãã¯ãå®è£
ãããŠãããããã·ã¯ã©ã¹ïŒ
- æåã®ãªã¯ãšã¹ãã§ã¯ã åã蟌ã¿ãªãœãŒã¹ãã£ãŒã«ããããªã³ã¯ã®ãªã¹ããååŸããŠTailHTTPHC4Implã«æž¡ããŸã -ã³ã³ãã³ãå ã®iframeã®ãªã¹ããå«ãããŒãžãåä¿¡ãããšãã¥ã¬ãŒã·ã§ã³ã
- åã蟌ã¿ãªãœãŒã¹ã®èŠæ±ã®å Žåãæšæºãã³ãã©ãŒãäœæãããŠåŒã³åºãããŸããããã¯ã å®è£ èšå®ã§æå®ãããŸã-èŠæ±ã®å®éã®éä¿¡ã
- TailHttpSamplerGui.java - TailSamplerã®èŠèŠçè¡šçŸã
- wrapper-å®è£
ãã©ãŒã ã§æå®ããã䜿çšããã©ãããŒïŒ
ä»ã®è£å©ãã£ã¬ã¯ããªã¯ããããžã§ã¯ãã®äŸ¿å©ãªãããã°ã«äœ¿çšãããŸãã
7.1ã 圢
TailUrlConfigGuiãã©ãŒã ã¯ã Apache.JMeter 2.13ã®ã¡ã€ã³HTTPãªã¯ãšã¹ããã©ãŒã ãä¿®æ£ãããã®ã§ããªã¯ãšã¹ãæ¬æã®ç·šéãšãã©ã¡ãŒã¿ãŒã®ãªã¹ãã®æå®ã®ããã®ãã£ãŒã«ãã¯åé€ãããŸããããªã³ã¯ã®ãªã¹ããå ¥åããããã®1ã€ã®å€§ããªãã£ãŒã«ããè¿œå ãããŸãã
ãŸãã TailHttpSamplerGuiã®å€èŠ³ã¯ãæ°ããTailUrlConfigGuiã¡ã€ã³ã³ã³ãããŒã«ã䜿çšããHTTPãªã¯ãšã¹ãã®ã³ããŒã§ããããŸãã
ã³ããŒã¢ã³ãããŒã¹ãããªãããã§ã¯ãããŸããã HTTPãªã¯ãšã¹ãããŒã«ãHTTPãªã¯ãšã¹ããšã»ãšãã©å€ãããªãããã«ããã®ã¹ãããã«é²ã¿ãŸããã
ãã ãã JMeter 3.0ã§ã¯ã HTTPãªã¯ãšã¹ãã®å€èŠ³ãå€æŽãããã³ã³ãããŒã«ãåé 眮ãããŸããã çŸåšã HTTPãªã¯ãšã¹ãããŒã«ã¯JMeter 3.0ã®HTTPãªã¯ãšã¹ããšã¯ç°ãªããŸã ã ããããããã¯äœæ¥ã«åœ±é¿ããŸããã
7.2ã ã©ãããŒ
æ¢åã®ã³ãŒããæ倧éã«æŽ»çšãããã£ãã®ã§ãããã³ããŒããŒã¹ãã¯ããããããŸããã§ããã ãããã£ãŠãWrapperã¯ã©ã¹ãäœæãããŸãããããã«ãããã¡ãœããsample ã notifyFirstSampleAfterLoopRestartããã³threadFinishedã䜿çšå¯èœã«ãªããŸããã
7.3ã ã·ãŒã«ããŠãŒãã£ãªãã£
ãšã¹ã±ãŒãã¯ã©ã¹ã®ã³ãŒãã¯ãibm.comããååŸãããŸãïŒ www.ibm.com/developerworks/en/library/se-prevent/index.html
HTML4ã®èª¬æãå«ãRFCã«ãããhtmlãšã³ãã£ãã£ã®ããŒãã«ãæ¡åŒµãããŸããã
8.ã€ã³ã¹ããŒã«
- ãã©ã°ã€ã³ru.pflb.jmeter.samplers.TailSampler.jarãããŠã³ããŒãããŸãã
- ãã¹ãŠã®ããŒãžã§ã³ïŒ github.com/pflb/Jmeter.Plugin.TailSampler/releases
- ãã©ã°ã€ã³ãJMeterã® lib / extãã£ã¬ã¯ããªã«ã³ããŒããŸãã
- JMeterãåèµ·åããŸãã
![](https://habrastorage.org/files/d08/636/3bd/d086363bd0154c90904e7a1f9f646bf5.png)
å³15. JMeter㧠HTTP Request Tailãã©ã°ã€ã³ãå©çšå¯èœã«ãªããŸãã
ãã£ã¬ã¯ããªã®äŸïŒ
DïŒ\ããŒã«\ apache-jmeter-2.13 \ lib \ ext \ DïŒ\ TOOLS \ apache-jmeter-2.13 \ lib \ ext \ ru.pflb.jmeter.samplers.TailSampler.jar DïŒ\ããŒã«\ apache-jmeter-3.0 \ lib \ ext \ DïŒ\ TOOLS \ apache-jmeter-3.0 \ lib \ ext \ ru.pflb.jmeter.samplers.TailSampler.jar
9.ã·ã¹ãã èŠä»¶
9.1ã Apache.JMeter 2.13ã䜿çšããã«ã¯
- JavaïŒTMïŒSE Runtime EnvironmentããŒãžã§ã³6ïŒãã«ã1.6.0_45-b06ïŒä»¥éïŒ
- http://www.oracle.com/technetwork/java/javase/downloads/419409-æäœéå¿ èŠãªããŒãžã§ã³ïŒãããžã§ã¯ããåæ§ç¯ããå¿ èŠããããŸãããããžã§ã¯ãã¯JDK 1.7çšã«æ§ç¯ããããªããžããªã«ãããŸãïŒã
- http://www.java.com/en/download/manual.jsp-Oracle JDKã®ææ°ããŒãžã§ã³ã
- OpenJDK 1.7.0_09-icedteaãªã©ã®OpenJDKããŒãžã§ã³1.6以äžãé©ããŠããŸãã
- JMeter 2.13ïŒ
Apache.JMeter 2.13ã¯Java 6ã䜿çšããŠã³ã³ãã€ã«ãããŸã ãããšãã°ã OpenJDK 1.7.0_09-icedteaã䜿çšããŠTailSamplerãã©ã°ã€ã³ããã«ããã Apache.JMeter 2.13 + Java 6ã®ã¿ãååšããã³ã³ãã¥ãŒã¿ãŒã§ã³ã³ãã€ã«æžã¿ãã©ã°ã€ã³ãå®è¡ãããšã Apache.JMeter 2.13èµ·åããŸããããã©ã°ã€ã³ã¯èµ·åããŸããã ãã®çµæããããã®ãã³ãã«ã¯æ©èœããŸããã Javaã®ç°ãªãããŒãžã§ã³ãšãããã®äºææ§ã®ããã®ãããžã§ã¯ããšã©ã€ãã©ãªãæ§ç¯ããåé¡ã¯ãåå¥ã®æ瀺ã«å€ããŸãã
9.2ã Apache.JMeter 3.0ã䜿çšããã«ã¯
- JavaïŒTMïŒSE Runtime EnvironmentããŒãžã§ã³7ïŒãã«ã1.7.0_80-b15ïŒOracle CorporationïŒïŒä»¥äžïŒ
- http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jre-7u80-oth-JPR-æäœéå¿ èŠãªããŒãžã§ã³ã
- http://www.java.com/en/download/manual.jsp-Oracle JREã®ææ°ããŒãžã§ã³ã
- 1.7以äžã®OpenJDKããŒãžã§ã³ãé©ããŠããŸãã
- JMeter 3.0ïŒ
Apache.JMeter 3.0ã¯Java 7ã䜿çšããŠæ§ç¯ãããŸããTailSamplerãã©ã°ã€ã³ã¯ãJava 7ãŸãã¯JMeterãšãã©ã°ã€ã³ã®å®è¡ã«äœ¿çšãããJavaã®ããŒãžã§ã³ã䜿çšããŠæ§ç¯ããå¿ èŠããããŸãã