ããŒãµãŒã®å¹³åå質ïŒ7ã€ã®ãµã€ãïŒ
ç§ã¯ææ¡ããïŒ
- Apache.JMeter htmlããŒãµãŒã䜿çšããŠãåã蟌ã¿ãªãœãŒã¹ãžã®ãªã³ã¯ãæœåºããå®å šæ§ã®å¹³åå質ãèšç®ããŸãã
- Apache.JMeter 3.0ã®ãªã³ã¯æœåºãããå®å šã«ãªã£ããã©ããã確èªããŠãã ããã
- CsvLogWriterãã©ã°ã€ã³ãè©ŠããŠãã ããã
人æ°ã®ããç¥æµãèšãããã«ïŒä¿¡ããã...
ãããžã§ã¯ãã®èª¬æ
Apache.JMeter 3.0ããªãªãŒã¹ããããšããããã¯ãŸã éçºäžã§ãããååã§ãããç§ã¯ããããã¹ãããä»äºã§ããã䜿çšãå§ããŸããã Artyom zetsigemonã¯ãæ°ãããµãŒãã¹pgu.mos.ruã®ããããã®æŠéãã¹ãã§æåã«æ°ããããŒãžã§ã³ã䜿çšããŸãããApache.JMeter3.0ã䜿çšãããšãçµã¿èŸŒã¿ãªãœãŒã¹ã®è§£æã®å質ãåã®ããŒãžã§ã³ã«æ¯ã¹ãŠå€§å¹ ã«åäžããŸããã
ãããŠãçåãçããŸããããã®å質ãšã¯äœã§ãããç°ãªããµã€ãã§ã©ã®ããã«æž¬å®ããã®ããããã¯äœã§ãäœã«ãªã£ãã®ã§ããïŒ
ç 究ã®è³æãšçµæã¯ãçŸåšã®èšäºã«åæ ãããŠããŸãã
ãã¹ã察象
HtmlParsersã¯ã Apache.JMeter 2.13ããã³Apache.JMeter 3.0ã§ãã¹ããããŠããŸãã
ããŒãµãŒApache.JMeter 2.13 ïŒ
- LagartoBasedHtmlParser;
- HtmlParserHTMLParser;
- JTidyHTMLParser;
- RegexpHTMLParser;
- JsoupBasedHtmlParserã
Apache.JMeter 3.0ã解æããŸã ã
- LagartoBasedHtmlParser;
- JTidyHTMLParser;
- RegexpHTMLParser;
- JsoupBasedHtmlParserã
ããŒãµãŒã¯ãããŸããŸãªWebãµã€ãã®éå§ããŒãžã解æããŸãã
- stackoverflow.com;
- habrahabr.ru;
- yandex.ru;
- mos.ru;
- jmeter.apache.org;
- google.ru;
- linkedin.com;
- github.comã
ãã¹ãã®åºç€
åºç€ã¯Apache.JMeter 3.0ã®å€æŽã§ãããhttp ïŒ //jmeter.apache.org/changes.htmlãåç §ããŠãã ããã
å€æŽã®ãªã¹ãããã®æç²ïŒ
ã³ã¢ã®æ¹å
äŸåé¢ä¿ã®æŽæ°
å»æ¢ãããã©ã€ãã©ãªã¯ãææ°ã®ãã®ã«ãããããŸãã¯çœ®ãæããããŸããïŒ
- htmllexerãhtmlparserãåé€ãããŸãã
- åé€ãããjdom
htmlparserããŒãµãŒãšããå€ãã®æªäœ¿çšã®jdomã©ã€ãã©ãªãåé€ããŸããã
ãããã³ã«ãšè² è·ãã¹ãã®æ¹å
䞊åããŠã³ããŒããçŸå®çã«ãªããã¹ã±ãŒã«ãå€§å¹ ã«æ¹åãããŸããã
- CSSã€ã³ããŒãããããã¡ã€ã«ïŒ ã€ã³ããŒããä»ããŠïŒãŸãã¯åã蟌ã¿ãªãœãŒã¹ïŒèæ¯ãç»åãªã©ïŒã®è§£æ
CSSãã¡ã€ã«çšã®æ°ããããŒãµãŒãè¿œå ãããä»ã®CSSãã¡ã€ã«ãžã®ãªã³ã¯ïŒ ã€ã³ããŒããä»ããŠïŒããã³CSSãã¡ã€ã«ã§æå®ããããªãœãŒã¹ãžã®ãªã³ã¯ãæœåºãããŸãïŒèæ¯ç»åãç»åã...
äºææ§ã®ãªãå€æŽ
- ããŒãžã§ã³3.0以éãhtmlparserã©ã€ãã©ãªïŒHtmlParserHTMLParserïŒã«äŸåããŠããåã蟌ã¿ãªãœãŒã¹ã®ããŒãµãŒïŒ2.10以éã¯LagartoããŒã¹ã®å®è£ ã«çœ®ãæããããŸããïŒã¯ããã®äŸåé¢ä¿ãšãšãã«åé€ãããŸããã
- 次ã®jarã¯åé€ãããŸããã
- htmllexer-2.1.jarïŒ ãã°59037ãåç §ïŒ
- htmlparser-2.1.jarïŒ ãã°59037ãåç §ïŒ
- jdom-1.1.3.jarïŒ ãã°59156ãåç §ïŒ
htmlparserããŒãµãŒãšãæªäœ¿çšã®htmllexerããã³jdomã©ã€ãã©ãªãŒã åé€ããŸãã ã
æ¹åç¹
HTTPãµã³ãã©ãŒãšãã¹ãã¹ã¯ãªããã¬ã³ãŒããŒ
- ãã°59036 -FormCharSetFinderïŒéæšå¥šã®HTMLParserã®ä»£ããã«JSoupã䜿çš
- ãã°59033-䞊åããŠã³ããŒãïŒç°ãªãMIMEã¿ã€ãã®ãã©ã°ã€ã³ããŒãµãŒãèš±å¯ããããã«ããŒãµãŒã¯ã©ã¹ã®éå±€ãäœãçŽããŸãã
- Bug 59140-䞊è¡ããŠã³ããŒãïŒCSSãã¡ã€ã«ãããªã³ã¯ãæœåºããCSS解æãè¿œå
form
ã¿ã°ã®accept-charset
å±æ§ãæ€çŽ¢ããããã«ããªã¢ãŒãHTMLParserã®ä»£ããã«JSoupã䜿çšãããããã«ãªããŸãã [ãã°59036]ã CSSãã¡ã€ã«ããŒãµãŒ[ãã°59140]ãå®è£ ããããã©ã«ãã§ãã®ããŒãµãŒã䜿çšãããŸã[ãã°59033]ã
ãã¹ãã®ç®ç
å©çšå¯èœãªãã¹ãŠã®ããŒãµãŒã®äœæ¥ãæ¯èŒããŸãã ç¹ã«ãããŒãžã§ã³2.13ãš3.0ã®ããŒãµãŒãçžäºã«æ¯èŒããçµã¿èŸŒã¿ãªãœãŒã¹ã®ããŒããããçŸå®çã§è¯ããªã£ãŠããããšã確èªããŠãã ããã
æŠç¥
ã¹ããŒãž1ïŒ
- 5ã€ã®Apache.JMeter 2.13ããŒãµãŒããã¹ãŠäœ¿çšããŠããµã€ããªã¹ãã®éå§ããŒãžãããŠã³ããŒãã ããã°ãèšé²ããŸãã
- 4ã€ã®Apache.JMeter 3.0ããŒãµãŒããã¹ãŠäœ¿çšããŠãµã€ããªã¹ãã®éå§ããŒãžãããŠã³ããŒããããã°ãæžã蟌ã¿ãŸãã
- Apache.JMeterãã°ãåæããäºãã«æ¯èŒããŸãã åã蟌ã¿ãªãœãŒã¹ã®èªã¿èŸŒã¿ãæ¹åããããã©ãããèªã¿èŸŒãŸããåã蟌ã¿ãªãœãŒã¹ã®ãªã¹ããæ¡åŒµããããã©ãããè©äŸ¡ããŸãã
ã¹ããŒãž2ïŒ
- Google Chromeãšwebpagetest.orgãµãŒãã¹ã䜿çšããŠã人æ°ãµã€ãã®ãªã¹ãã®éå§ããŒãžãããŠã³ããŒãããŸãã
- webpagetest.orgããã®ã¬ããŒããåæãã Apache.JMeterãã°ã®åæçµæãšæ¯èŒããŸãã çµã¿èŸŒã¿ãªãœãŒã¹ã®ããŒãã®ãªã¢ãªãºã ãè©äŸ¡ããŸãã
ãã¹ãã¢ãããŒã
Apache.JMeterãããµã€ãããŒãžãéããšãã«éä¿¡ããããªã¯ãšã¹ãã®æ£ç¢ºãªæ°ãå€æããããã«ããã¹ãŠã®ãªã¯ãšã¹ãããã°ã«èšé²ãããŸãã
- çµæããªãŒã®è¡šç€º -æšæºãã¬ãŒããµãã¯ãšãªã®ãã®ã³ã°ã䌎ãXML圢åŒã§ã®ãã®ã³ã°ãXMLãã°ã䜿çšããŠãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹/ãšã©ãŒã®è©³çŽ°ã確èªããŸãã
- CsvLogWriter-ã«ã¹ã¿ã ãã¬ãŒhttps://github.com/pflb/Jmeter.Plugin.CsvLogWriter ããµãã¯ãšãªã®ãã®ã³ã°ã䌎ãCSV圢åŒã§ã®ãã®ã³ã°ãCSVãã°ã¯ããŸããŸãªããŒãµãŒã®åäœã«é¢ããçµ±èšãããã°ã©ã ã§èšç®ããããã«äœ¿çšãããŸãã
- å®éçè©äŸ¡ã®ã¿ãå®è¡ããããµãã¯ãšãªã®ã¢ãã¬ã¹ã¯åç §ã«ãã£ãŠèšç®ãããŸããã
Apache.JMeterã®ããŒãžã§ã³ãããŒãµãŒãããã³ãµã€ãããšã«ãªã¯ãšã¹ããã°ã«ãŒãåã§ããããã«ãåãªã¯ãšã¹ãã®è¿œå å€æ°ããã°ã«èšé²ãããŸãã
- siteKey-ãã¹ãäžã®ãµã€ãã
- jmeterVersion - Apache.JMeterã®ããŒãžã§ã³ã
- htmlParser-çŸåšäœ¿çšäžã®htmlããŒãµãŒã®ååã
çµæ
ããŒãžã§ã³2.13ãšæ¯èŒããããŒãžã§ã³3.0ã®ããŒãµãŒã®æ¹åã®è©äŸ¡
htmlããŒãžã®è§£æã®å®å šæ§ã«æ ¹æ¬çãªæ¹åã¯ãããŸããããå£åããããŸãã
éèŠãªéãã¯ãApache.JMeter 3.0ã®ããŒãµãŒã§ã¯ãYandexãã©ãŠã¶ãŒãã©ãŠã¶ãŒã®ããã¢ãŒã·ã§ã³ããŒãžã®ååž°çãªèªã¿èŸŒã¿ãããããšã§ãã ããã¯https://yandex.ru/ãããŠã³ããŒããããšãã«çŸããŸã ã
ã³ã³ãã³ãã®éãå°ãªããµã€ã-è¯ãçµæ
jmeter.apache.orgã®ãããªåçŽãªãµã€ãã§ã¯ããã¹ãŠã®ããŒãµãŒãåãããã«æ©èœããŸãã ãã©ãŠã¶ãäœæãããµãã¯ãšãªãšåãæ°ãäœæããŸãã jmeter.apache.orgã®ããŒãµãŒã®å質ã¯å®ç§ã§ã100ïŒ ã§ãã
ã³ã³ãã³ããå€ããµã€ãã¯æªãçµæã§ã
ããããmos.ruã®ãããªãµã€ãã§ã¯ãããŒãµãŒã¯åã蟌ã¿ãªãœãŒã¹ãžã®å¹³å22ãªã³ã¯ãèŠã€ããŸããããã¹ãŠã®ãã©ãŠã¶ãŒåã蟌ã¿ãªãœãŒã¹ãèªã¿èŸŒãŸããããŒãžå šäœã®èªã¿èŸŒã¿ã«ã¯144ã®ãªã¯ãšã¹ãããããŸãã å質ãæªãã
åæ§ã«ã habrahabr.ru Webãµã€ãã§ã¯ã Apache.JMeter 3.0ã®LagardoããŒãµãŒã¯55åã®ãªã³ã¯ãèŠã€ãããã©ãŠã¶ãŒã¯117åã®ãµãã¯ãšãªãäœæããŸãã å質-47.01ïŒ ã åã蟌ã¿ãªãœãŒã¹ãžã®ãªã³ã¯ãæœåºããããã®ååãªå質ã
ããŸããŸãªããŒãµãŒã䜿çšãããšãã®ãµãã¯ãšãªã®æ°
Googleããã¥ã¡ã³ãã®è¡šïŒ JMeter.HtmlParser.CompareïŒäžã®è¡šïŒ
ããŒãžã§ã³ããã³htmlããŒãµãŒã®ã³ã³ããã¹ãã§ã®Apache.JMeterã®åäœã®çµ±èšãããã³Google Chromeã®åäœãšã®æ¯èŒ
åã®èª¬æïŒ
- ã¬ã³ããªã³ã°ã®éå§å -ããŒãžã®ã³ã³ãã³ãã®è¡šç€ºãéå§ããåã«ãã©ãŠã¶ã«ãã£ãŠè¡ããããµãã¯ãšãªã®æ°ã ãããã¯ãhtmlããŒã¯ã¢ãããã¡ã€ã³ã®jsããã³cssãã¡ã€ã«ãã¡ã€ã³ã®ç»åã§ãã
- ããã¥ã¡ã³ãã®å®äº -ããã¥ã¡ã³ããå®å
šã«ããŒãããããšãã«ãã©ãŠã¶ãäœæãããµãã¯ãšãªã®æ°ã ããã§ã¯ããã¹ãŠã®ããŒãžãªãœãŒã¹ãæ¢ã«ããŒããããŠããŸãã
- å®å šã«ããŒã -ãã¹ãŠãããŒãããããšãã«ãjavascriptãæ©èœãããšãã«ãã©ãŠã¶ã«ãã£ãŠè¡ããããµãã¯ãšãªã®æ°ã
Document Completeã®æç¹ã§Google Chromeãã©ãŠã¶ãŒãšåãæ°ã®ãµãã¯ãšãªãããã Fully Loadedã®æç¹ã§çŽ æŽãããå ŽåãããŒãµãŒã¯ããŸãæ©èœããŸãã ç¹å®ã®ããŒãµãŒã䜿çšããå Žåã Apache.JMeterã®ãªã¢ãªãºã ã®å°ºåºŠãšããŠãFully Loadedã®æç¹ã§ãã©ãŠã¶ãŒãå®è¡ãããµãã¯ãšãªã®æ°ã«å¯Ÿãããµãã¯ãšãªã®æ°ã®è¿ããèæ ®ããŸãã
ãµã€ãyandex.ruã®ãã¹ãçµæãé€å€ããå Žåãããã§ïŒ
- 解æã¯ååž°ã«å
¥ããååž°ã®æ·±ããæ倧ã¬ãã«ã«éããŠå€±æãããŸã§yandex.ruã«äœåºŠããªã¯ãšã¹ããè¡ããŸãã
>java.lang.Exception: Maximum frame/iframe nesting depth exceeded
ã
ãããŠãããŒãµãŒã®å質ã®å°ºåºŠãšããŠã Fully Loadedã®æç¹ã§ãµãã¯ãšãªã®æ°ãååŸããããŒãµãŒã®å¹³åå質ã®ãã®ãããªããŒãã«ãååŸããŸãã
ããŒãµãŒã®å¹³åå質
Googleããã¥ã¡ã³ãã®è¡šïŒ JMeter.HtmlParser.CompareïŒäžã®è¡šïŒ ã
ããŒãµãŒã®å¹³åå質ïŒyandex.ruãªãã®7ã€ã®ãµã€ãïŒ
Apache.JMeter 2.13ã§æãæ£ç¢ºãªHTMLParserããŒãµãŒã Apache.JMeter 3.0ã§ã¯ã JsoupããŒãµãŒãšJTidyããŒãµãŒã¯åãå質ã瀺ããŸããã LagartoããŒãµãŒã¯ãªãŒããŒã«é ãããšã£ãŠããŸãã Apache.JMeter 3.0ã®LagartoããŒãµãŒã®è§£æã®å®å šæ§ã¯ã Apache.JMeter 2.13ãšæ¯èŒããŠäœäžããŠããŸãã
Apache.JMeter 3.0ã®çŸåšã®ããŒãžã§ã³ã§ã®LagartoããŒãµãŒã®å質ã¯32.73ïŒ ã§ããã¹ãŠã®ãµãã¯ãšãªã®3åã®1ã®ã¿ãéä¿¡ããã éçé¢æ°ã® 3åã®2ã®è² è·ã¯éä¿¡ãããŸããã§ããã
habrahabr.ruã®Apache.JMeter 3.0ã䜿çšããå Žåã®ã¹ãããããããªã³ã¯ã®è©³çŽ°ãªåæ
Googleããã¥ã¡ã³ãã®è¡šïŒ ããã©ã«ãã®ããŒãµãŒApache.JMeter 3.0ã«ãªãhabrahabr.ruãžã®ãªã³ã¯ã®æ¬ èœ
Apache.JMeter 3.0ã®è§£æãªã³ã¯ã®æ¬ èœhabrahabr.ru
å€ãã®è²©ä¿è³æãšçµ±èšãéããŸããã ãããŠããã¯è¯ãããšã§ãã
éçç¹æ§ã®ã¿ãè©äŸ¡ããããšã¯ãã§ã«äžã§è¿°ã¹ãŸããã æ°åã§èŠããšãåã蟌ã¿ãªãœãŒã¹ãžã®ãªã³ã¯ãæœåºããå質ãäœãããšãããããŸãã 詳现ãªåæã«ãããæ£ç¢ºã«èŠéããããã®ã瀺ãããããšããããŸãã ããã¯ããµãŒãããŒãã£ã®ãªãœãŒã¹ããã®åºåãšã³ã³ãã³ãã§ããããšãå€æããå ŽåããããŸãããç¹å®ã®ãµã€ãã®è² è·ãã¹ãã®äžéšãšããŠèªã¿èŸŒãå¿ èŠã¯ãããŸããã
ãã°ãšãã®åŠç
ãœãŒã¹ããŒã¿
ãã¹ãŠã®ãã°ã¯https://drive.google.com/drive/folders/0B5nKzHDZ1RIiVkN4dDlFWDR1ZGMã§å ¥æã§ããŸã ã
WebPageTest.orgã¬ããŒã
ã·ãã㌠| webpagetest.org | çããŒãžããŒã¿ïŒ.csvïŒ | çãªããžã§ã¯ãããŒã¿ïŒ.csvïŒ | HTTPã¢ãŒã«ã€ãïŒ.harïŒ |
---|---|---|---|---|
github.com | 160819_VF_FM8 | github.com.summary.csv | github.com.details.csv | github.com.har |
google.ru | 160819_C9_FQD | google.ru.summary.csv | google.ru.details.csv | google.ru.har |
habrahabr.ru | 160819_8N_FRB | habrahabr.ru.summary.csv | habrahabr.ru.details.csv | habrahabr.ru.har |
jmeter.apache.org | 160819_CG_FSM | jmeter.apache.org.summary.csv | jmeter.apache.org.details.csv | jmeter.apache.org.har |
linkedin.com | 160819_K2_FY1 | linkedin.com.summary.csv | linkedin.com.details.csv | linkedin.com.har |
mos.ru | 160819_91_G0F | mos.ru.summary.csv | mos.ru.details.csv | mos.ru.har |
stackoverflow.com | 160819_S0_G18 | stackoverflow.com.summary.csv | stackoverflow.com.details.csv | stackoverflow.com.har |
yandex.ru | 160819_MR_G1R | yandex.ru.summary.csv | yandex.ru.details.csv | yandex.ru.har |
ã¬ããŒãç»å
Document Completeããã³Fully LoadedããŒã¿ãæœåºãããWebpagetest.orgã¬ããŒãã®äžé
Document Completeããã³Fully LoadedããŒã¿ãæœåºãããWebpagetest.orgã¬ããŒãã®äžé
Document CompleteåãšFully Loadedåã®å€ããããµãã¯ãšãªã®æ°ãååŸããããã«1ã€ã®ã¯ãšãªïŒã«ãŒãïŒãé€å€ããå¿ èŠããããŸãã
ãã°Apache.JMeter
åŠçã«ã¯ã CsvLogWriterãã©ã°ã€ã³ã«ãã£ãŠçæãããcsvãã°ã䜿çšãããŸãã
- ãããžã§ã¯ãïŒ https : //github.com/pflb/Jmeter.Plugin.CsvLogWriter ;
- habrahabr.ruã®èª¬æïŒ JMeterã®CsvLogWriterãã©ã°ã€ã³ ã
ãµãŒãããŒãã£ã®ãã©ã°ã€ã³ã䜿çšããŠãåã蟌ã¿ãªãœãŒã¹ã®ãªã¯ãšã¹ããcsvãã°ã«èšé²ãããããã«ããŸãã
CsvLogWriteræäœã®çµæããã°ãçæããããã®åã®ãªã¹ãã«ã¯ä»¥äžãå«ãŸããŸãã
- timeStamp-ç¹å®æç¹;
- URL-ãªã¯ãšã¹ãã¢ãã¬ã¹;
- çµé -èŠæ±ã«å¯Ÿããå¿çã®æéã
- ãã€ã -å¿çãµã€ãºã
- siteKey-䜿çšæžã¿ãµã€ãã
- htmlParser-䜿çšãããååã
- jmeterVersion - Apache.JMeterã®äœ¿çšããŒãžã§ã³ã
- iã¯ãã¹ãã®å埩åæ°ã§ãã
ãã°åŠçã®èªåå
Apache.JMeter csvãã°ã®éçŽã¯ã次ã®Pythonã³ãŒãã§ãã³ãã䜿çšããŠå®è¡ãããŸãã
import pandas as pd import codecs from os import listdir import numpy as np # - . dirPath = "D:/project/jmeter.htmlParser.3.0.vs.2.13/logs" read_csv_param = dict( index_col=['timeStamp'], low_memory=False, sep = ";", na_values=[' ','','null']) # csv- . files = filter(lambda a: '.csv' in a, listdir(dirPath)) # csv- DataFrame dfs. csvfile = dirPath + "/" + files[0] print(files[0]) dfs = pd.read_csv(csvfile,**read_csv_param) for csvfile in files[1:]: print(csvfile) tempDfs = pd.read_csv(dirPath + "/" + csvfile, **read_csv_param) dfs = dfs.append(tempDfs) #dfs.to_excel(dirPath + "/total.xlsx") # JSR223, , HTTP Request Sampler. # JSR223 URL , HTTP- URL . dfs = dfs[(pd.isnull(dfs.URL) == False)] # , report.subrequests.html - . # , . # - , . pd.pivot_table(dfs, index=['siteKey', "jmeterVersion", "htmlParser"], values="URL", columns=["i"], aggfunc=lambda url: url.count()-1).to_html(dirPath + "/report.subrequest.count.html")
yandex.ruã§ã®ååž°çãªèªã¿èŸŒã¿
yandex.ruã®ããã©ã«ãèšå®ïŒLagarto htmlããŒãµãŒïŒã䜿çšããçŸåšã®ããŒãžã§ã³ã®Apache.JMeter 3.0ã®åã蟌ã¿ãªãœãŒã¹ã®ååž°çãªèªã¿èŸŒã¿
èŠãããããã«ïŒ
- Apache.JMeterã¯ã
https://yandex.ru/clck/redir/dtype=stred....7004fcb3793e79bb1ac9e&keyno=12
//yandex.ru/clck/redir/dtype=stred....7004fcb3793e79bb1ac9e&keyno=12ã®ãªã³ã¯ãèŠã€ããŠè¿œè·¡ãhttps://yandex.ru/clck/redir/dtype=stred....7004fcb3793e79bb1ac9e&keyno=12
- 次ã«ãæ°ããäžæã®ãªã³ã¯
https://yandex.ru/clck/redir/dtype=stred....cd1c46cad58fbfe2f61&keyno=12
ãèŠã€ãhttps://yandex.ru/clck/redir/dtype=stred....cd1c46cad58fbfe2f61&keyno=12
- ãªã©ãååž°ã«ãªããŸãã
ãã®å Žåãããã¯Yandex BrowserãããŠã³ããŒãããããã®ãªã³ã¯å ã®ç»åã§ãã
Yandex BrowserãããŠã³ããŒãããããã®ååž°ããªã³ã¯ãããã³ç»åã®æ°ããã¹ããããè¿œå ãããµã€ãyandex.ruåŠçã®htmlã³ãŒãã®ãã©ã°ã¡ã³ã
ããŒãµãŒã¯ç»åãèŠã€ããŸãã JMeterã¯ãããããŠã³ããŒãããããšããŸãããããã«å¿çããŠhtmlããŒãžãåä¿¡ãããšãåã³åçãžã®ãªã³ã¯ãšä»ã®ãªã³ã¯ããããŸãã ãããŠããã¹ãŠãç¹°ãè¿ãããŸãã Apache.JMeterã®åäœã¯æ£ããã§ãã
ãŸãã Apache.JMeter 2.13ã§ã¯ãååž°ã¯HtmlParserããŒãµãŒã§ã®ã¿çºçããä»ã§ã¯çºçããªãçç±ãæšæž¬ããŸãã
- ãªã³ã¯ã®é·ãã«å¶éãããããªã³ã¯ã®äžæã®ç«¯ãåæããããããååž°ã¯çºçããŸããã
- ãŸãã¯ã Apache.JMeter 2.13ã§ã¯ãããŒãµãŒã§äœããæ£ããæ©èœããŸããã
- ãŸãã¯Apache.JMeter 2.13ã§ã¯ãäœããæ£ããåé¿ãããŸã-Cookie ãä»ã®äœããYandexãµãŒããŒèªäœãå¿çããååž°ã«ãªããªãããã«ããŸããããšãã°ãæ°ããhtmlããŒãžã§ã¯ãªããç»åãªã¯ãšã¹ãã«ç»åã§å¿çããŸãã
æšæž¬ããŸãã ããã¯çµ¶æçãªç¶æ³ã®ããã§ãã ãããããã®ãããªç¶æ³ã¯ãããŸããã åžžã«è§£æ±ºçããããŸãã
ããšãã°ãYandex BrowserãUser-AgentãšããŠæå®ããŠã¿ãŠãã ããã ãµãŒããŒã¯ãããããããã©ãŠã¶ãããŠã³ããŒãããããã®ç»åã衚瀺ããªãããç»åãªã¯ãšã¹ãã«ç»åã§å¿çããååž°ã¯ãããŸããã ããã¯äºæã§ãããã¹ãããŸããã§ããã
ããã§ãã¹ã¯ãªããã¯webpagetest.orgã®æäœãšåæããããã«Google Chromeã®User-Agentãæå®ãããµãŒããŒã¯ãã©ãŠã¶ã§ã¯ãªããç¬èªã®ãªã³ã¯ãæäŸããŠããããã§ãã
ãããžã§ã¯ãæ§æ
- jmeter.testfile.jmx-å
¥åãšããŠãã©ã¡ãŒã¿ãŒãåãApache.JMeter 2.13ããã³Apache.JMeter 3.0ã®ãã¹ãã¹ã¯ãªããïŒ
-
URL
ãã¹ãããããµã€ãã®ã¢ãã¬ã¹ãããšãã°https://yandex.ru/ ; -
siteKey
ããã°å ã®ãšã³ããªã®ã°ã«ãŒãåãå®è¡ãããè¡ã -
loopCount
ãã¹ãã®å埩åæ°loopCount
ãµã€ãã®åäœãäžå®å®ã«ãªãå¯èœæ§ããããããããã€ãã®å埩ã䜿çšãããŸãã -
htmlParser.className
åã蟌ã¿ãªãœãŒã¹ãžã®ãªã³ã¯ãæœåºããããŒãµãŒã - ã¹ã¯ãªãããæ©èœãããã«ã¯ãè¿œå ã®CsvLogWriterãã©ã°ã€ã³ãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
-
- jmeter.3.0.bat - Apache.JMeter 3.0ã®ãã¹ããå®è¡ããã³ãã³ããã¡ã€ã«ãããã§ã¯/bin/Apache.JMeter 3.0ãã©ã«ããŒãžã®ãã¹ããã¹ãã¹ã¯ãªããjmeter.testfile.jmxãžã®ãã¹ããã¹ããéå§ããããã®ãªãã·ã§ã³ãããã³htmlParsersãã§ãã¯ã®ãªã¹ãäœæ¥ãå®è¡ãããŠãã人ã
- jmeter.2.13.bat - Apache.JMeter 2.13ã®ãã¹ããå®è¡ããã³ãã³ããã¡ã€ã«ãããã§ã¯
/bin/
Apache.JMeter 2.13ãã©ã«ããžã®ãã¹ããã¹ãã¹ã¯ãªããjmeter.testfile.jmxãžã®ãã¹ããã¹ããéå§ããããã®ãªãã·ã§ã³ãããã³htmlParsersãã§ãã¯ã®ãªã¹ããèšå®ãããŸãäœæ¥ãå®è¡ãããŠãã人ã
- test.bat - Apache.JMeterã® 2ã€ã®ããŒãžã§ã³ã2.13ããã³3.0ã§ãã¹ããå®è¡ããã³ãã³ããã¡ã€ã«ããã®ãã¡ã€ã«ã«ã¯ããã¹ãã®å埩åæ°ãšãã¹ã察象ã®ãµã€ãã®ã¢ãã¬ã¹ãå«ãŸããŠããŸãã ãã¡ã€ã«ã¯jmeter.2.13.batããã³jmeter.3.0.batãã¡ã€ã«ãåŒã³åºããŸã ã
- jmeter.3.0.vs.jmeter.2.13.ipynb - Apache.JMeterã®ãã°ãåæããããã®jupyterçšã®ã¡ã¢åž³ã
- statistics.xlsx-ããŒãµãŒã®äœæ¥ã«é¢ããçµ±èšæ å ±ãå«ãããŒãã«ã調æ»ã®çµæã
ãã¹ãã¯èªåã§ç°¡åã«å€æŽã§ãããµã€ããšé©åãªå埩åæ°ãæå®ããŸãã ãã¹ãŠã®èšå®ã¯test.batãã¡ã€ã«ã§èšå®ãããŸãã
CALL jmeter.2.13.bat http://stackoverflow.com/ 5 stackoverflow.com CALL jmeter.2.13.bat https://habrahabr.ru/ 5 habrahabr.ru CALL jmeter.2.13.bat https://yandex.ru/ 5 yandex.ru CALL jmeter.2.13.bat https://www.mos.ru/ 5 mos.ru CALL jmeter.2.13.bat http://jmeter.apache.org/ 5 jmeter.apache.org CALL jmeter.2.13.bat https://www.google.ru/ 5 google.ru CALL jmeter.2.13.bat https://www.linkedin.com/ 5 linkedin.com CALL jmeter.2.13.bat https://github.com/ 5 github.com CALL jmeter.3.0.bat http://stackoverflow.com/ 5 stackoverflow.com CALL jmeter.3.0.bat https://habrahabr.ru/ 5 habrahabr.ru CALL jmeter.3.0.bat https://yandex.ru/ 5 yandex.ru CALL jmeter.3.0.bat https://www.mos.ru/ 5 mos.ru CALL jmeter.3.0.bat http://jmeter.apache.org/ 5 jmeter.apache.org CALL jmeter.3.0.bat https://www.google.ru/ 5 google.ru CALL jmeter.3.0.bat https://www.linkedin.com/ 5 linkedin.com CALL jmeter.3.0.bat https://github.com/ 5 github.com
ããã«ãã«ã¹ã¿ãã€ãºãããæ°åŒã䜿çšããŠãExcelãã¡ã€ã«ããçµæãæ¿å ¥ããçµæã®èŠèŠçãªè¡šãååŸã§ããŸãã
ããŒãµãŒããã¡ã€ãã©ã€ãºããŠãåæ§ã®ææ³ã§ãåã蟌ã¿ãªãœãŒã¹ã®è§£æã®å質ã®åäžãç£èŠã§ããŸãã
çµè«
ãã®èšäºã«ã¯ç¹ã«å®çšçãªäŸ¡å€ã¯ãããŸããã ããããããã€ãã®æçšãªçµè«ãåºãããšãã§ããŸãã
- ããŒãµãŒã¯ãå¹³åããŠãªãœãŒã¹ã®3åã®1ãžã®ãªã³ã¯ã®ã¿ãååŸããŸãã
- ããŒãµãŒã¯ã»ãŒåãããã«æ©èœããŸããã€ãŸããä»»æã®ãã®ã䜿çšã§ããŸãã
- ããŒãµãŒã¯ãjmeter.apache.orgãªã©ã®åçŽãªãµã€ãã§åäœããããã«èª¿æŽãããŠããŸãã
- ã³ã³ãã³ããå€ããµã€ãã§ã¯ãããŒãµãŒã®åäœã¯å®éã®ãã©ãŠã¶ãŒãããã¯ããã«æªããªããŸãã
- JMeterã®æ°ããããŒãžã§ã³ã§ã®åã蟌ã¿ãªãœãŒã¹ã®ããŒãã®å®å šæ§ã¯ãããã«äœäžããŸããããå¢å ããŸããã§ããïŒéžæãããµã€ãïŒã
- ç§ã®ååã®Alexandra Sanchez92ãäœæããCsvLogWriterãã©ã°ã€ã³ã®ã¢ããªã±ãŒã·ã§ã³ã§ã®äœ¿çšäŸã瀺ããŸããã ãã®ãã©ã°ã€ã³ã¯ãåã蟌ã¿ãªãœãŒã¹ãžã®ãªã¯ãšã¹ããcsvãã°ã«èšé²ããŸãã
- batãã¡ã€ã«ã䜿çšããŠãã³ãã³ãã©ã€ã³ããJMeterãã©ã¡ãŒã¿ãæž¡ããå€æ°ãèšé²ãã pandasã䜿çšããŠcsvãã°ãåŠçãããšããã¹ãããŒã«èªäœããã¹ãã§ããŸããæ¹æ³è«ã¯ããŸããããŸãããgithubã®ãããžã§ã¯ããåç
§ããŠãã ããã