Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÐÔÄܲâÊÔ×î¼Ñʵ¼ùÖ®JMeter
 
À´Ô´£ºjmeter.apache.org ·¢²¼ÓÚ£º 2017-7-17
  2412  次浏览      31
 

±£³ÖʹÓÃ×îа汾

JMeter±»¾­³£ÍƼöÓÃÀ´²âÊÔÐÔÄÜ£¬¹ÄÀøÓû§Ê¹ÓÃ×îеİ汾¡£

È·±£ÄãÒª¾­³£È¥ÔĶÁ±ä¸ü¼Ç¼ÖеÄй¦ÄܺÍÄ£¿éµÄÌáÉý¡£Äã²»Ó¦¸ÃÔÙʹÓÃ3.0֮ǰµÄ°æ±¾ÁË

ʹÓÃÕýÈ·µÄÏß³ÌÊý

ÄãÓ²¼þÉ豸µÄÄÜÁ¦¼°²âÊԼƻ®½«¶¼»áÓ°ÏìÄãµÄJMeter¿ÉÔËÐеÄÏß³ÌÊý¡£ÊýÁ¿Ò²ÒÀÀµÓÚÄãµÄ·þÎñÓжà¿ì(Ò»¸ö¿É¿ìËÙÏìÓ¦µÄ·þÎñ¿ÉÒÔÈÃJMeter±ä¸ü¸ü¼Ó¸øÁ¦)¡£ÏñÆäËüÐÔÄܲâÊÔ¹¤¾ßÒ»Ñù£¬Èç¹ûÄãûÓÐÕýÈ·µÄÏß³ÌÊý£¬Äã½«Ãæ¶Ô²»×¼±¸»ò´íÎó½á¹ûµÄCoordinated OmissionÎÊÌâ¡£Èç¹ûÄãÐèÒª´óÊýÁ¿¼¶µÄѹÁ¦²âÊÔ£¬¿¼ÂÇʹÓ÷ֲ¼Ê½Ä£Ê½ÔÚ¶ą̀»úÆ÷ÉÏÔËÐÐÎÞGUIµÄJMeterʵÀý¡£µ±Ê¹Ó÷ֲ¼Ê½Ä£Ê½Ê±£¬½á¹û½«±»¾ÛºÏÔÚ¿ØÖÆÆ÷µÄ½á¹ûÖУ¬Èç¹ûʹÓöà¸ö×ÔÒѵÄʵÀý£¬½á¹ûÎļþ¿ÉÒÔ¾ÛºÏÓÃÓÚ³ÖÐøÐÔ·ÖÎö¡£¶ÔÓÚÈçºÎÔÚÒ»¸ö¸ø¶¨µÄƽ̨ÉÏʹÓÃJMeter²âÊÔ£¬JavaTest Sampler¿ÉÒÔ¿¼ÂÇʹÓá£Ëü²»ÐèÒªÈκÎÍøÂçÇëÇó±ã¿É·µ»ØÒ»Ð©ÐÅÏ¢ÔÚ×î´óµÄÍÌÍÂÁ¿¡£

JMeterÓÐÑ¡ÏîÓÃÓÚÑÓ³ÙÏ̴߳´½¨Ö±µ½Ïß³ÌÕý³£Æô¶¯£¬ÈçÔÚÆäËüÏß³Ì×éÑÓ³ÙÖ®ºóºÍÏß³Ì×ÔÉíµÄÆô¶¯Ê±¼ä¡£ÕâÑù¾ÍÔÊÐíÒ»¸ö·Ç³£´óÊýÁ¿¼¶µÄÏß³ÌÊý£¬²»ÐèҪ̫¶àµÄÏß³Ìͬʱ²¢·¢¡£

Cookie¹ÜÀíÆ÷µÄλÖÃ

¿ÉÔÚ¹¹½¨Ò»¸öWeb²âÊÔÖв鿴

Authorization¹ÜÀíÆ÷µÄλÖÃ

¿ÉÔÚ¹¹½¨Ò»¸ö¸ß¼¶Web²âÊÔÖв鿴

ʹÓÃHTTP(S) Test Script RecorderÂ¼ÖÆ

¹ØÓÚHTTP(S) Test Script RecorderµÄϸ½ÚÔÚ½¨ÒéÂ¼ÖÆÆ÷ÖС£×îÖØÒªµÄÊÂÇéÊÇ£¬ÌÞ³ýÄã²»¸ÐÐËȤµÄ¡£±ÈÈ磬²»¹ØÐÄÔÚÂ¼ÖÆ¹ý³ÌÖеÄͼƬÇëÇó(JMeter¿ÉÒÔÏÂÔØÒ»¸öÒ³ÃæÖеÄËùÓÐͼƬ-¾ßÌå²é¿´HTTP Request)¡£ÕâЩÄÚÈݽ«»áÈÃÄãµÄ²âÊԼƻ®Ò»ÍÅÔã¸â¡£´ó²¿È˶¼»áÕâÑù£¬ÓÐÒ»¸öÀ©Õ¹¶ÔÄãµÄËùÓÐÎļþ¼¯£¬Èç.jsp,.asp,.php,.html»òÕ߯äËü¡£ÕâЩÄÚÈÝÄãͨ¹ýÊäÈë.*\.jspÔÚInclude PatternÖÐÒýÈë¡£

»òÕߣ¬ÄãÒ²¿ÉÒÔÌÞ³ýͼƬͨ¹ýÊäÈë.*\.gifÔÚExclude PatternÖС£¾ßÌåÒÀ¾ÝÄãµÄÓ¦ÓóÌÐò£¬Äã¿ÉÒÔÑ¡ÔñÒ»ÖÖ¸üºÃµÄ·½°¸È¥Ö´ÐС£ÄãÒ²¿ÉÒÔÈ¥ÌÞ³ýstylesheets,javascritptÎļþºÍÆäËüÎļþÀàÐÍ¡£²âÊÔÄãµÄÅäÖÆÀ´ÑéÖ¤ÄãµÄ¼ÈëÄÚÈÝÊÇÄãÏëÒªµÄ£¬½Ó×ÅÇå³ýÄÚÈݲ¢ÇÒ¿ªÊ¼Ë¢ÐÂÒ³Ãæ¡£

HTTP(S) Test Script RecorderÆÚÍûÓÃÓÚʹÓÃRecording Controller·¢ÏÖHTTP Request¼Ç¼µÄÔªËØÖÁÒ»¸öÏß³Ì×éÔªËØÖС£ÕâÑù±ãÓÚÄã¿ÉÒÔÖ±½Ó½«ËùÓеÄÑùÀý´ò°üÖÁÒ»¸ö¿ØÖÆÆ÷Ï£¬µ±È»¿ÉÒÔÔÙ¸ø³öÒ»¸ö¿ÉÃèÊö²âÊÔÓÃÀýµÄÃû³Æ¡£

ÏÖÔÚ£¬Ö´ÐвâÊÔÓÃÀýµÄ²½Öè¡£Èç¹ûÄãÓÐÎÞǰÖò½ÖèµÄ²âÊÔÓÃÀý£¬Ê¹ÓÃJMeterÀ´Â¼ÖÆÄãµÄ²Ù×÷¶¨ÒåÄãµÄ²âÊÔÓÃÀý¡£Ò»µ©ÄãÍê³ÉÁËһϵÁÐÌØ¶¨µÄ²Ù×÷£¬±£´æÕû¸ö²âÊÔÓÃÀýÖÁÒ»¸öºÏÊʵÄÎļþÃûÖС£½Ó×Å£¬ÇåÀí¼Ç¼¿ªÊ¼Ò»¸öеIJâÊÔÓÃÀý¡£Í¨¹ýÕâÑù²Ù×÷£¬Äã¿ÉÒÔ¿ìËټǼ´óÁ¿´Ö²ÚµÄ²âÊÔÓÃÀý¡£

HTTP(S) Test Script Recorder×îÓÐÓõÄÒ»¸öÌØÐÔÊÇÄã¿ÉÒÔͨ¹ýÂ¼ÖÆµÄÑùÀýÀ´³éÏó³öͨÓõÄÔªËØ¡£Í¨¹ý¶¨Òå×Ô¶¨ÒåµÄÓû§±äÁ¿ÔÚ²âÊԼƻ®¼¶±ð»òÔÚÓû§×Ô¶¨Òå±äÁ¿ÔªËØÖУ¬Äã¿ÉÒÔÓÃJMeter×Ô¶¯Ìæ»»ÄãÂ¼ÖÆÑùÀýÖеÄÖµ¡£±ÈÈ磬Èç¹ûÄã²âÊÔÒ»¸öAPPÔÚ·þÎñxxx.example.com£¬Äã¿ÉÒÔ¶¨ÒåÒ»¸ö±äÁ¿serverµÄֵΪxxx.example.com£¬ÔÙËùÓÐÔÚÂ¼ÖÆÑùÀýÖеÄÖµ½«»á±»Ì滻Ϊ${server}

Æ¥Åäʱ£¬×¢Òâ´óСдÃô¸Ð

Èç¹ûJMeterûÓÐÂ¼ÖÆµ½ÈκÎÇëÇ󣬼ì²éÄãµÄä¯ÀÀÆ÷ÊÇ·ñÆôÓôúÀíÉèÖá£Èç¹ûÔÚJMeterûÓÐÆô¶¯Ê±£¬ä¯ÀÀÆ÷¿ÉÕý³£Ê¹Óã¬ÄÇä¯ÀÀÆ÷Ò»¶¨ÊÇûÓÐʹÓôúÀíÉèÖá£Ò»Ð©ä¯ÀÀÆ÷ºöÂÔÁË´úÀíÉèÖÃlocalhost»ò127.0.0.1£¬ÄÇôÇëʹÓñ¾»úÃû»òIP´úÌæ¡£

´íÎóunknown_ca¿ÉÒÔÊÇÄãÕýÊÔͼ¼ÈëHTTPS£¬ä¯ÀÀÆ÷²»½ÓÊÕJMeterµÄ´úÀí·þÎñÖ¤Êé¡£

Óû§±äÁ¿

һЩ²âÊԼƻ®ÖУ¬ÐèҪʹÓò»Í¬µÄÖµ¶ÔÓÚ²»Í¬µÄÓû§/Ï̡߳£È磬ÄãÏë²âÊÔÐèҪÿ¸öÓû§µÇ¼ºóµÄһϵÁв½Öè¡£Õâ¸öʹÓÃJMeter¿ÉÒÔºÜÈÝÒ×ʵÏÖ¡£

±ÈÈç:

´´½¨Ò»¸öÎļþ£¬°üº¬Óû§ÃûºÍÃÜÂëÇÒʹÓöººÅ·Ö¸ô¡£´æ·Åµ½ÓëÄãµÄ²âÊԼƻ®ÔÚͬһÎļþ¼Ð¡£

Ìí¼ÓÒ»¸öCSV DataSetµÄÅäÖÆÔªËØÖÁÄãµÄ²âÊԼƻ®¡£¶¨Òå±äÁ¿ÃûΪUSERºÍPASS¡£

Ìæ»»µÇ¼ÃûΪ${USER}ºÍÃÜÂëΪ${PASS}

CSV DataSetÔªËØ½«»áΪÿ¸öÏ̶߳ÁȡһÐÂÐÐÄÚÈÝ¡£

¼õÉÙ×ÊԴʹÓÃ

¼õÉÙ×ÊԴʹÓõÄһЩ½¨Òé:

ʹÓÃÎÞGUIµÄģʽ: jmeter -n -t test.jmx -l test.jtl

¾¡Á¿ÉÙʹÓüàÌýÆ÷Listener;Èç¹ûʹÓÃÉÏÃæµÄ-l±ê¼Ç£¬ËûÃǾù¿ÉÒÔ±»É¾³ý»ò½ûÓÃ

ÔÚѹÁ¦²âÊÔ¹ý³ÌÖУ¬²»ÒªÊ¹Óò鿴½á¹ûÊ÷»òÔÚTableÖв鿴½á¹û¼àÌýÆ÷£¬½öÔڽű¾µ÷ÊÔ½×¶ÎʹÓü´¿É

Ïà±ÈʹÓôóÁ¿ÏàËÆµÄÑùÀý£¬ÔÚÒ»¸öÑ­»·ÖÐʹÓÃÏàͬµÄÑùÀý£¬²¢Ê¹ÓñäÁ¿(CSV DataSet)À´ÊµÏÖÑùÀýµÄ²»Í¬¡£[Include ControllerÔڴ˲½ÖèûÓÐÈκÎÓã¬ËüÔÚÎļþÖÐÌí¼ÓËùÓеIJâÊÔÔªËØÖÁ²âÊԼƻ®ÖÐ]

²»ÒªÊ¹Óù¦ÄÜģʽ

ʹÓÃCSV¸ñʽÊä³öÒªÓÅÓÚXML

½ö±£´æÐèÒªµÄÊý¾Ý

¾¡¿ÉÄÜʹÓÃÉٵĶÏÑÔ

ʹÓÃ×îÓŵĽű¾ÓïÑÔ(²é¿´JSR223²¿·Ö)

Èç¹ûÄãµÄ²âÊÔÐèÒª´óÁ¿µÄÊý¾Ý - ÌØ±ðÊÇÈç¹ûÐèÒªËæ»ú»¯µÄ - ´´½¨²âÊÔÊý¾ÝÔڿɱ»¶ÁÈ¡µÄCSVÎļþÖС£ÕâÑù»á±ÜÃâÀË·Ñ×ÊÔ´ÔÚÔËÐÐʱ¡£

BeanShell·þÎñ

BeanShell½âÊÍÆ÷ÓÐÒ»¸öºÜÓÐÓõÄÌØÐÔ - µ±¿ÉÒÔÓÃÀ´°çÑÝserver£¬¿É±»telnet»òhttp·ÃÎÊ¡£

ûÓа²È«ÐÔ¡£ÄÜÁ¬½ÓÖÁ¶Ë¿ÚµÄÈκÎÈ˶¼¿ÉÒÔ·¢²¼ÈκÎBeanShellÃüÁî¡£ÕâЩ¿ÉÒÔÌṩÎÞÏÞÖÆµÄ·ÃÎÊÖÁJMeter³ÌÐòºÍÄ¿±ê¡£

²»ÒªÆôÓ÷þÎñ³ý·Ç¶Ë¿Ú±»ÏÞÖÆ·ÃÎÊ£¬È磬±»·À»ðǽ¡£

Èç¹ûÄãÏëʹÓ÷þÎñ£¬ÔÚjmeter.propertiesÖж¨ÒåÏÂÃæÄÚÈÝ:

beanshell.server.port=9000
beanshell.server.file=../extras/startup.bsh

ÔÚÉÏÃæµÄÀý×ÓÖУ¬·þÎñ½«»á±»Æô¶¯£¬½«»á¼àÌý¶Ë¿Ú9000ºÍ9001¡£¶Ë¿Ú9000ÓÃÓÚhttp·ÃÎÊ£¬¶Ë¿Ú9001ÓÃÓÚtelnet·ÃÎÊ¡£startup.bshÎļþ½«»á±»·þÎñ´¦Àí£¬¿É±»ÓÃÓÚ¶¨Ò幦ÄÜºÍÆô¶¯Ê±µÄ±äÁ¿¡£Æô¶¯Îļþ¶¨ÒåÓÃÓÚÆô¶¯ºÍÊä³öJMterºÍϵͳÊôÐԵķ½·¨¡£ÕâЩÊÇÄ㽫ÔÚJMeter¿ØÖÆÌ¨¿´µ½µÄ:

Startup script running
Startup script completed
Session started on port: 9001

ÓÐÒ»¸öÑùÀý½Å±¾(extras/remote.bsh)Äã¿ÉÒÔÓÃÀ´²âÊÔ·þÎñ¡£[¿´¿´ËüÔõô¹¤×÷µÄ]

µ±Æô¶¯µ±ÔÚJMeterbinĿ¼(µ÷ÕûĿ¼£¬Èç¹ûÄãÔÚÆäËüλÖÃ)£¬Êä³ö»áÏñÕâÑù:

$ java -jar ../lib/bshclient.jar localhost 9000 ../extras/remote.bsh
Connecting to BSH server on localhost:9000
Reading responses from server ¡­
BeanShell 2.0b5 - by Pat Niemeyer (pat@pat.net)
bsh % remote.bsh starting
user.home = C:\Documents and Settings\User
user.dir = D:\eclipseworkspaces\main\JMeter_trunk\bin
log_level.jmeter = INFO
log_level.jorphan = INFO
Setting property 'EXAMPLE' to '0'.
Setting property 'EXAMPLE' to '1'.
Setting property 'EXAMPLE' to '2'.
Setting property 'EXAMPLE' to '3'.
Setting property 'EXAMPLE' to '4'.
Setting property 'EXAMPLE' to '5'.
Setting property 'EXAMPLE' to '6'.
Setting property 'EXAMPLE' to '7'.
Setting property 'EXAMPLE' to '8'.
Setting property 'EXAMPLE' to '9'.
EXAMPLE = 9
remote.bsh ended
bsh % ¡­ disconnected from server.

¾Ù¸öÀý×Ó£¬¼ÙÉèÄãÓÐÒ»¸öÔËÐÐʱ¼ä½Ï³¤µÄ·ÇGUIÔËÐÐģʽ²âÊÔ£¬²¢ÇÒÄãÏëÈÃÍÌÍÂÁ¿ÔÚ²âÊÔ¹ý³ÌÖв»Í¬¡£²âÊԼƻ®°üÀ¨Constant Throughout Timer¶¨ÒåÊôÐÔ£¬Èç${__P(thoughput)}¡£ÏÂÃæµÄBeanShell¿ÉÓÃÓڸıä²âÊÔ:

printprop("throughput");
curr = Integer.decode(args[0]); // Start value
inc = Integer.decode(args[1]); // Increment
end = Integer.decode(args[2]); // Final value
secs = Integer.decode(args[3]); // Wait between changes
while(curr <= end) {
setprop ("throughput",curr.toString()); // Needs to be a string here
Thread.sleep(secs*1000);
curr += inc;
}
printprop("throughput");

½Å±¾¿ÉÒÔ±»´æ´¢ÔÚÒ»¸öÎļþÖÐ(È磬throughput.bsh)£¬Ê¹ÓÃbshclient.jar·¢ËÍÖÁ·þÎñ¡£²Î¿¼:

java -jar ../lib/bshclient.jar localhost 9000 throughput.bsh 70 5 100 60

BeanShell½Å±¾

¸ÅÊö

ÿһ¸öBeanShell²âÊÔÔªËØÔÚ½âÊÍÆ÷ÖеÄÿ¸öÏß³ÌÖоùÓÐ×Ô¼ºµÄ¸±±¾¡£Èç¹û²âÊÔÔªËØ±»Öظ´µ÷Óã¬Èç: ÔÚloopÖУ¬ÄÇÃ´ÔªËØ»á±»½âÊÍÆ÷´æ´¢ÔÚ±¨ÎÄÖгý·ÇReset bsh.Interpreter before each callÑ¡Ïî±»¹´Ñ¡¡£¶ÔÀ©Õ¹µÄѹÁ¦²âÊÔ£¬ÍƼöʹÓýű¾ÒýÇæ¼¯³ÉÁ˿ɱàÒëµÄJSR223½Å±¾ÓïÑÔ£¬¿ÉÔÚJSR223Öв鿴ÏêÇé¡£

һЩÔËÐÐʱ¼ä½Ï³¤µÄ²âÊԻᵼÖ½âÊÍÆ÷ʹÓôóÁ¿µÄÄÚ´æ;Èç¹ûÕæµÄÒªÕâÑù×ö£¬³¢ÊÔʹÓÃresetÑ¡Ïî¡£

Äã¿ÉÒÔ²âÊÔBeanShell½Å±¾Ê¹ÓÃÃüÁîÐнâÊÍÆ÷£¬²»ÒÀÀµÓÚJMeter:

$ java -cp bsh-xxx.ja r[;other jars as needed] bsh.Interpreter file.bsh [parameters]

»ò

$ java -cp bsh-xxx.jar bsh.Interpreter
bsh% source("file.bsh");
bsh% exit(); // or use EOF key (e.g. ^Z or ^D)

¹²Ïí±äÁ¿

±äÁ¿¿ÉÒÔ±»¶¨ÒåÔÚÆô¶¯(°²×°)½Å±¾¡£ÕâЩÊý¾Ý½«»á±»´æ´¢ÔÚ²âÊÔÔªËØµÄ±¨ÎÄÖУ¬³ý·ÇÄãʹÓÃresetÑ¡Ïî¡£

½Å±¾Ò²¿ÉÒÔ¶ÁÈ¡JMeterµÄ±äÁ¿Í¨¹ýʹÓÃget()ºÍput()·½·¨£¬Èç:

vars.get("HOST");
vars.put("MSG","Successful");

get()ºÍput()·½·¨½öÖ§³Ö×Ö·û´®±äÁ¿£¬µ«ÓÐgetObject()ºÍputObject()·½·¨¿ÉÒÔ´¦ÀíÆäËüÀàÐÍ¡£JMeter±äÁ¿¶ÔÓÚÏß³ÌÊǾֲ¿µÄ£¬µ«¿ÉÒÔ±»ËùÓеIJâÊÔÔªËØÊ¹Ó㨲»ÊÊÓÃÓÚBeanShell£©¡£

Èç¹ûÄãÐèÒª¹²Ïí±äÁ¿ÔÚÏ̼߳䣬JMeterµÄÊôÐÔ¿ÉÒÔʹÓÃ:

import org.apache.jmeter.util.JMeterUtils;
String value = JMeterUtils.getPropDefault("name","");
JMeterUtils.setProperty ("name", "value");

ÑùÀý.bshrcÎļþ°üÀ¨ÑùÀýgetprop()ºÍsetprop()µÄ·½·¨¶¨Òå¡£

ÆäËü¿ÉÓÃÓÚ¹²Ïí±äÁ¿µÄ·½·¨£¬Ê¹ÓÃbsh.shared¹²ÏíÃüÃû¿Õ¼ä¡£²Î¿¼:

if (bsh.shared.myObj == void){
// not yet defined, so create it:
myObj = new AnyObject();
}
bsh.shared.myObj.process();

Ïà±ÈÔÚ²âÊÔÔªËØÖд´½¨¶ÔÏ󣬿Éͨ¹ýJMeterµÄÊôÐÔbeanshell.init.fileÎļþÅäÖÆÔÚÆô¶¯Ê±´´½¨¡£Õâ¸ö½ö»áÖ´ÐÐÒ»´Î¡£

ʹÓÃBeanShell Javascript Jexl½Å±¾¿ª·¢¹¦ÄÜ

Ïñ¹¦ÄÜÒ»Ñù±àдºÍ²âÊԽű¾ÊǺÜÀ§Äѵġ£È»¶ø£¬JMeterÓÐJSR223£¬BSFºÍBeanShell¿ÉÓÃÀ´³¢ÊÔ¡£

´´½¨Ò»¸ö¼òµ¥µÄ²âÊԼƻ®°üÀ¨JSR223»òBSFÑùÀýºÍ½á¹ûÊ÷¼àÌýÆ÷¡£ÔÚÑùÀý°å¿é±àд½Å±¾£¬Í¨¹ýÔËÐвâÊÔÀ´²âÊÔËü¡£Èç¹ûÓкܶà´íÎó£¬ÕâЩ½á¹û½«»á±»Õ¹Ê¾ÔÚ½á¹ûÊ÷ÖС£Í¬Ê±ÔËÐнű¾µÄ½á¹û½«»á±»Õ¹Ê¾Ïñ·µ»ØÄÚÈÝÒ»Ñù¡£

Ò»µ©½Å±¾µ÷ÊÔͨ¹ý£¬¿ÉÒÔµ±Ò»¸ö±äÁ¿±»´æ´¢ÔÚ²âÊԼƻ®ÖС£½Å±¾µÄ±äÁ¿¿É±»ÓÃÓÚ´´½¨¹¦Äܵ÷Óá£È磬֧³ÖÒ»¸öBeanShell½Å±¾±»´æ´¢ÔÚ±äÁ¿RANDOM_NAME¡£¹¦Äܵ÷ÓÿÉÒÔ±»±àдΪ${__BeanShell($RANDOM_NAME)}¡£²»ÐèÒªÆäËüµÄ¶ººÅÔڽű¾ÖУ¬ÒòΪÔÚ±äÁ¿Öµ±»Ìí¼Ó֮ǰ£¬¹¦Äܵ÷ÓÃÒѾ­±»×ª»¯¡£

²ÎÊý»¯²âÊÔ

¾­³£¶ÔÓÚÖØ¸´ÔËÐÐÒ»¸ö²âÊÔÔÚ²»Í¬µÄÅäÖÆÖÐÊǺÜÓÐÓõġ£±ÈÈ磬¸Ä±äÏß³ÌÊý/Ñ­»·Êý/¸Ä±äµØÖ·Ãû¡£

Ò»ÖÖ·½Ê½ÊÇÔÚ²âÊԼƻ®Öж¨Òå±äÁ¿¼¯£¬²¢ÔÚ²âÊÔÔªËØÖÐʹÓÃÕâЩ±äÁ¿¡£±ÈÈ磬һ¸ö¿ÉÒÔ¶¨Òå±äÁ¿LOOPS=10£¬¹ØÁª${LOOPS}ÖÁÏß³Ì×éÖС£ÎªÁËÔËÐвâÊÔÑ­»·20´Î£¬Ö»ÐèÒªµ÷ÕûLOOPSÔÚ²âÊԼƻ®ÖеÄÖµ¡£

Õâ¸ö»á¿ì±äµÃÔã¸â£¬Èç¹ûÄãÏëÔÚ·ÇGUIģʽÔËÐеϰ¡£Ò»¸ö½â¾ö·½°¸ÊÇ£¬¶¨Òå²âÊԼƻ®±äÁ¿ÔÚÊôÐÔÖУ¬ÈçLOOPS=${__P(loop,10)}¡£Õâ¸öʹÓÃÊôÐÔloopsµÄÖµ£¬Èç¹ûûÕÒµ½µÄ»°Ä¬ÈÏΪ10¡£loopsÊôÐÔÒ²¿É±»JMeterµÄ¿ØÖÆÌ¨ÃüÁÒå:

jmeter ... -Jloops=12 ...

Èç¹ûÓдóÁ¿µÄÊôÐÔÔÚÒ»´Î±ä¸üµÄ»°£¬Ò»ÖÖʵÏÖ·½Ê½ÊÇʹÓÃÊôÐÔÎļþ¡£ÊôÐÔÎļþ¿Éͨ¹ýʹÓÃ-qÔÚÃüÁîÐÐģʽÏ´«µÝÖÁJMeter¡£

JSR223ÔªËØ

ΪÁËÀ©Õ¹Ñ¹Á¦²âÊÔ£¬ÍƼöµÄ½Å±¾ÓïÑÔÊÇÒ»Öֽű¾ÒýÇæÊµÏֿɱàÒë½Ó¿ÚµÄ½Å±¾ÓïÑÔ¡£Groovy½Å±¾ÒýÇæ¿É±àÒ롣Ȼ¶ø£¬ÔÚJMeter 2.13°æ±¾ÎÞÂÛÊÇBeanShell»¹ÊÇJavascript¶¼Ã»ÓÐʵÏÖ£¬Òò´Ë×îºÃ²»ÒªÊ¹ÓÃËüÃÇÀ´À©Õ¹Ñ¹Á¦²âÊÔ¡£

ÌáÐÑ: BeanShell¼Ì³Ð¿É±àÒë½Ó¿Úµ«»¹Ã»Óб»ÊµÏÖ£¬·½·¨»áÅ×Òì³£¡£JMeterÓÐÒ»¸öÃ÷È·µÄ˵Ã÷¹ØÓÚÕâ¸öÎÊÌâ¡£

µ±Ê¹ÓÃJSR223ÔªËØÊ±£¬¾­³£ÉèÖô洢һ¸öÖµÖÁÒ»¸öΨһµÄ±äÁ¿ÖУ¬Èç¹ûÓïÑÔÖ§³ÖËü¡£È·±£½Å±¾Ã»ÓÐʹÓñäÁ¿${varName}À´´æ´¢½«»á»ñÈ¡µÚÒ»¸öÖµ£¬½«»á»ñÈ¡${varName}µÄµÚÒ»¸öÖµ¡£Ì滻ʹÓÃ:

vars.get("varName")

ÄãÒ²¿ÉÒÔ´«µÝËûÃÇÏñ²ÎÊýÒ»Ñùµ½½Å±¾ÖУ¬²¢ÇÒÏñÕâÑùʹÓÃËüÃÇ¡£

Ïß³Ì×éÖ®¼ä¹²Ïí±äÁ¿

±äÁ¿¶ÔÓÚÏß³ÌÊǾֲ¿µÄ;ÔÚÒ»¸öÏß³ÌÖеÄÒ»¸ö±äÁ¿¼¯²»Äܱ»ÆäËüÏ̶߳ÁÈ¡¡£Éè¼Æ¾ÍÊÇÕâÑùµÄ¡£Õë¶Ô±äÁ¿£¬¿ÉÒÔÔÚ²âÊÔÆô¶¯Ç°½øÐÐÃ÷È·£¬²é¿´²Î¿¼»¯²âÊÔ¡£Èç¹ûÖµÖ±µ½²âÊÔÆô¶¯¶¼²»ÖªµÀ£¬ÓÐÈçÏÂÑ¡Ïî:

´æ´¢±äÁ¿ÔÚÊôÐÔÖÐ - ÊôÐÔ¶ÔÓÚJMterʵÀýÊÇÈ«¾ÖµÄ

д±äÁ¿ÖÁÎļþÖУ¬ÖØÐ¶ÁÈ¡ËûÃÇ

ʹÓÃbsh.sharedÃüÁî¿Õ¼ä - ²é¿´¹²Ïí±äÁ¿

д×Ô¼ºµÄJavaÀà

ÊôÐÔÅäÖÆ¹ÜÀí

µ±ÄãÐèÒªÐÞ¸ÄJMeterÊôÐÔ£¬È·±£ÄãûÓÐÐÞ¸Äjmeter.propertiesÎļþ¡£Ìæ»»¿½±´ÊôÐÔ´Ójmter.properties²¢ÐÞ¸ÄÔÚuser.propertiesÖеÄÖµ¡£

ÕâÑù×öµÄ»°£¬»áºÜÈÝÒ׺ϲ¢ÖÁÏÂÒ»¸öJMeter°æ±¾¡£

×¢Òâjmeter.propertiesÎļþÖо­³£Éæ¼°µ«±»Àí½â¡°´Ójmeter.properties¿½±´µ½user.propertiesÄãÏëÐÞ¸ÄÇÒÕâÑù×öµÄÊôÐÔ¡£¡±

user.properties file supersedes the properties defined in jmeter.properties

¹ýʱµÄÔªËØ

½¨Ò鲻ҪʹÓùýʱµÄÔªËØ(±»ÕâÑù±ê¼ÇÔÚ±ä¸ü¼Ç¼ºÍÔÚ×é¼þÏà¹Ø)£¬²¢ÇҺϲ¢Ê¹ÓÃеÄÔªËØÈç¹û¿ÉÓõϰ£¬»òеķ½Ê½¿ÉÒÔʵÏÖÏàͬµÄÊÂÇé¡£

¹ýʱµÄÔªËØ±»É¾³ý´Ó²Ëµ¥ÔÚ°æ±¾NÖУ¬µ«Í¨¹ýÐÞ¸Äuser.propertiesÖÐnot_in_menuÖÐÊôÐԿɱ»ÆôÓ㬲¢ÇÒ´ÓÄÇɾ³ýÍêÕûµÄÀàÃû¡£

Çë×¢Òâ¹ýÂËʱµÄÔªËØµØ°æ±¾`N`½«»á±»É¾³ýÔÚÈ·¶¨µÄ°æ±¾`N+1`ÖУ¬Òò´Ë¾¡ÔçÈ·±£ÄãûÓÐʹÓá£

   
2412 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù