{"id":35,"date":"2026-05-21T10:00:00","date_gmt":"2026-05-21T02:00:00","guid":{"rendered":"http:\/\/localhost:8888\/?p=35"},"modified":"2026-07-09T16:17:45","modified_gmt":"2026-07-09T08:17:45","slug":"jmeter%e5%88%86%e5%b8%83%e5%bc%8f%e5%8e%8b%e6%b5%8b%e5%ae%9e%e6%88%98","status":"publish","type":"post","link":"https:\/\/blog.runnergo.cn\/?p=35","title":{"rendered":"JMeter\u5206\u5e03\u5f0f\u538b\u6d4b\u5b9e\u6218 &#8211; \u4ece\u5355\u673a\u5230\u96c6\u7fa4\u7684\u6027\u80fd\u6d4b\u8bd5\u65b9\u6848"},"content":{"rendered":"<h1>JMeter\u5206\u5e03\u5f0f\u538b\u6d4b\u5b9e\u6218 &#8211; \u4ece\u5355\u673a\u5230\u96c6\u7fa4\u7684\u6027\u80fd\u6d4b\u8bd5\u65b9\u6848<\/h1>\n<p>&gt; \u4f5c\u8005\uff1a\u8fd0\u7ef4\u4e0e\u6d4b\u8bd5<br \/>\n&#8212;<\/p>\n<h2>\u524d\u8a00<\/h2>\n<p>\u5927\u5bb6\u597d\uff0c\u6211\u662f\u8fd0\u7ef4\u4e0e\u6d4b\u8bd5\uff0c\u505a\u8fc7\u591a\u5e74\u6027\u80fd\u6d4b\u8bd5\u3002JMeter\u662f\u6211\u6700\u5e38\u7528\u7684\u538b\u6d4b\u5de5\u5177\uff0c\u4f46\u5728\u5904\u7406\u9ad8\u5e76\u53d1\u573a\u666f\u65f6\uff0c\u5355\u673aJMeter\u5f80\u5f80\u625b\u4e0d\u4f4f\u538b\u529b\u3002\u4eca\u5929\u8fd9\u7bc7\u6587\u7ae0\uff0c\u5206\u4eabJMeter\u5206\u5e03\u5f0f\u538b\u6d4b\u7684\u5b9e\u6218\u7ecf\u9a8c\u3002<\/p>\n<p>&#8212;<\/p>\n<h2>\u4e00\u3001\u4e3a\u4ec0\u4e48\u9700\u8981\u5206\u5e03\u5f0f\u538b\u6d4b\uff1f<\/h2>\n<h3>\u5355\u673a\u74f6\u9888<\/h3>\n<p>JMeter\u5355\u673a\u8fd0\u884c\u65f6\uff0c\u74f6\u9888\u5728\u4e8e\uff1a<\/p>\n<ul>\n<li><strong>CPU<\/strong>\uff1aJMeter\u662fJava\u5e94\u7528\uff0c\u6a21\u62df\u5927\u91cf\u7528\u6237\u9700\u8981CPU\u8d44\u6e90<\/li>\n<li><strong>\u5185\u5b58<\/strong>\uff1a\u6bcf\u4e2a\u7ebf\u7a0b\u6d88\u8017\u5185\u5b58\uff0c\u7ebf\u7a0b\u6570\u8d8a\u591a\u5185\u5b58\u5360\u7528\u8d8a\u5927<\/li>\n<li><strong>\u7f51\u7edc<\/strong>\uff1a\u5355\u673a\u7f51\u5361\u5e26\u5bbd\u6709\u9650<\/li>\n<\/ul>\n<p><strong>\u5b9e\u6d4b\u6570\u636e\uff1a<\/strong><\/p>\n<p>| \u5e76\u53d1\u6570 | \u5355\u673aJMeter\u8868\u73b0 |<br \/>\n|&#8212;&#8212;&#8211;|&#8212;&#8212;&#8212;&#8212;&#8212;-|<br \/>\n| 100 | \u7a33\u5b9a |<br \/>\n| 500 | CPU 70%+ |<br \/>\n| 1000 | CPU 95%+\uff0c\u54cd\u5e94\u65f6\u95f4\u53d8\u957f |<br \/>\n| 2000+ | JMeter\u5d29\u6e83\u6216\u62a5\u9519 |<\/p>\n<h3>\u5206\u5e03\u5f0f\u538b\u6d4b\u65b9\u6848<\/h3>\n<p>\u5206\u5e03\u5f0f\u538b\u6d4b\u4f7f\u7528\u591a\u53f0\u673a\u5668\uff1a<\/p>\n<ul>\n<li><strong>Controller<\/strong>\uff1a\u63a7\u5236\u8282\u70b9\uff0c\u8c03\u5ea6\u6d4b\u8bd5<\/li>\n<li><strong>Agent\/Server<\/strong>\uff1a\u6267\u884c\u8282\u70b9\uff0c\u5b9e\u9645\u4ea7\u751f\u538b\u529b<\/li>\n<\/ul>\n<p>\u67b6\u6784\uff1a<br \/>\n<code>`<\/code><br \/>\nController (\u63a7\u5236\u8282\u70b9)<br \/>\n    \u2514\u2500\u2500 Agent1 (\u6267\u884c\u8282\u70b9)<br \/>\n    \u2514\u2500\u2500 Agent2 (\u6267\u884c\u8282\u70b9)<br \/>\n    \u2514\u2500\u2500 Agent3 (\u6267\u884c\u8282\u70b9)<br \/>\n    \u2514\u2500\u2500 &#8230;<br \/>\n<code>`<\/code><\/p>\n<p>&#8212;<\/p>\n<h2>\u4e8c\u3001JMeter\u5206\u5e03\u5f0f\u90e8\u7f72<\/h2>\n<h3>\u73af\u5883\u51c6\u5907<\/h3>\n<p><strong>Controller\u8282\u70b9\uff1a<\/strong><\/p>\n<ul>\n<li>JMeter\u5b89\u88c5<\/li>\n<li>JDK\u73af\u5883<\/li>\n<li>\u8db3\u591f\u5185\u5b58\uff08\u5efa\u8bae4G+\uff09<\/li>\n<\/ul>\n<p><strong>Agent\u8282\u70b9\uff1a<\/strong><\/p>\n<ul>\n<li>JMeter\u5b89\u88c5<\/li>\n<li>JDK\u73af\u5883<\/li>\n<li>jmeter-server\u542f\u52a8<\/li>\n<\/ul>\n<h3>\u914d\u7f6eAgent\u8282\u70b9<\/h3>\n<p><strong>1. \u7f16\u8f91jmeter.properties<\/strong><\/p>\n<p><code>`<\/code>properties<\/p>\n<h1>Agent\u914d\u7f6e\u6587\u4ef6<\/h1>\n<p>remote_hosts=192.168.1.101:1099,192.168.1.102:1099,192.168.1.103:1099<br \/>\nserver_port=1099<br \/>\nserver.rmi.localport=1099<br \/>\n<code>`<\/code><\/p>\n<p><strong>2. \u542f\u52a8Agent\u670d\u52a1<\/strong><\/p>\n<p><code>`<\/code>bash<\/p>\n<h1>Linux\/Mac<\/h1>\n<p>.\/jmeter-server<\/p>\n<h1>Windows<\/h1>\n<p>jmeter-server.bat<br \/>\n<code>`<\/code><\/p>\n<h3>\u914d\u7f6eController\u8282\u70b9<\/h3>\n<p><code>`<\/code>properties<\/p>\n<h1>Controller\u7684jmeter.properties<\/h1>\n<p>remote_hosts=192.168.1.101,192.168.1.102,192.168.1.103<br \/>\nserver.rmi.ssl.disable=true  # \u5173\u95edSSL\uff08\u5185\u7f51\u6d4b\u8bd5\uff09<br \/>\n<code>`<\/code><\/p>\n<h3>\u542f\u52a8\u5206\u5e03\u5f0f\u6d4b\u8bd5<\/h3>\n<p><strong>\u65b9\u5f0f1\uff1aGUI\u6a21\u5f0f<\/strong><\/p>\n<p>\u5728JMeter GUI\u4e2d\uff1a<\/p>\n<ul>\n<li>\u70b9\u51fb <code>Run<\/code> -&gt; <code>Remote Start All<\/code><\/li>\n<li>\u6216\u9009\u62e9\u5355\u4e2aAgent\u542f\u52a8<\/li>\n<\/ul>\n<p><strong>\u65b9\u5f0f2\uff1a\u547d\u4ee4\u884c\u6a21\u5f0f<\/strong><\/p>\n<p><code>`<\/code>bash<\/p>\n<h1>\u542f\u52a8\u6240\u6709Agent<\/h1>\n<p>jmeter -n -t test.jmx -r<\/p>\n<h1>\u542f\u52a8\u6307\u5b9aAgent<\/h1>\n<p>jmeter -n -t test.jmx -R 192.168.1.101,192.168.1.102<br \/>\n<code>`<\/code><\/p>\n<p>&#8212;<\/p>\n<h2>\u4e09\u3001\u5206\u5e03\u5f0f\u538b\u6d4b\u5b9e\u6218<\/h2>\n<h3>\u6d4b\u8bd5\u811a\u672c\u8bbe\u8ba1<\/h3>\n<p><strong>\u5173\u952e\u70b9\uff1a\u5206\u5e03\u5f0f\u811a\u672c\u8981\u8003\u8651\u7ebf\u7a0b\u5206\u914d<\/strong><\/p>\n<p><code>`<\/code>xml<br \/>\n<!-- JMeter\u7ebf\u7a0b\u7ec4\u914d\u7f6e --><\/p>\n<p>  100<br \/>\n  10<br \/>\n  true<br \/>\n  300<\/p>\n<p><code>`<\/code><\/p>\n<p><strong>\u6ce8\u610f\uff1a<\/strong><\/p>\n<ul>\n<li>\u6bcf\u4e2aAgent\u90fd\u4f1a\u6267\u884c\u5b8c\u6574\u811a\u672c<\/li>\n<li>100\u7ebf\u7a0b \u00d7 3\u4e2aAgent = 300\u5b9e\u9645\u5e76\u53d1<\/li>\n<li>\u7ebf\u7a0b\u6570\u8981\u6309Agent\u6570\u91cf\u5206\u914d<\/li>\n<\/ul>\n<h3>\u6d4b\u8bd5\u6570\u636e\u5206\u79bb<\/h3>\n<p>\u5206\u5e03\u5f0f\u6d4b\u8bd5\u7684\u6570\u636e\u95ee\u9898\uff1a<\/p>\n<ul>\n<li>\u6bcf\u4e2aAgent\u4f7f\u7528\u76f8\u540c\u6570\u636e\u6587\u4ef6<\/li>\n<li>\u53ef\u80fd\u4ea7\u751f\u6570\u636e\u91cd\u590d<\/li>\n<\/ul>\n<p><strong>\u89e3\u51b3\u65b9\u6848\uff1aCSV\u6570\u636e\u6587\u4ef6\u5206\u5272<\/strong><\/p>\n<p><code>`<\/code><\/p>\n<h1>Agent1: data_1.csv<\/h1>\n<h1>Agent2: data_2.csv<\/h1>\n<h1>Agent3: data_3.csv<\/h1>\n<p><code>`<\/code><\/p>\n<p>\u5728\u811a\u672c\u4e2d\u4f7f\u7528\u53d8\u91cf\uff1a<br \/>\n<code>`<\/code><br \/>\n${__P(data.file,data_${agent_id}.csv)}<br \/>\n<code>`<\/code><\/p>\n<h3>\u6d4b\u8bd5\u62a5\u544a\u5408\u5e76<\/h3>\n<p>JMeter 5.0+\u652f\u6301\u5206\u5e03\u5f0f\u62a5\u544a\u81ea\u52a8\u5408\u5e76\uff1a<\/p>\n<p><code>`<\/code>bash<\/p>\n<h1>\u751f\u6210HTML\u62a5\u544a<\/h1>\n<p>jmeter -n -t test.jmx -r -l result.jtl -e -o report_folder<br \/>\n<code>`<\/code><\/p>\n<p>&#8212;<\/p>\n<h2>\u56db\u3001\u6027\u80fd\u4f18\u5316\u6280\u5de7<\/h2>\n<h3>JMeter\u4f18\u5316\u914d\u7f6e<\/h3>\n<p><code>`<\/code>properties<\/p>\n<h1>jmeter.properties\u4f18\u5316<\/h1>\n<h1>\u589e\u52a0\u5185\u5b58<\/h1>\n<p>HEAP=-Xms4g -Xmx4g<\/p>\n<h1>\u4f7f\u7528G1\u5783\u573e\u56de\u6536<\/h1>\n<p>GC_ALGO=-XX:+UseG1GC -XX:MaxGCPauseMillis=100<\/p>\n<h1>\u5173\u7528GUI\u4f18\u5316<\/h1>\n<p>jmeter.save.saveservice.output_format=csv<br \/>\njmeter.save.saveservice.data_type=true<br \/>\njmeter.save.saveservice.label=true<br \/>\njmeter.save.saveservice.response_code=true<br \/>\njmeter.save.saveservice.response_data=false  # \u4e0d\u4fdd\u5b58\u54cd\u5e94\u4f53<br \/>\njmeter.save.saveservice.response_message=true<br \/>\njmeter.save.saveservice.successful=true<br \/>\njmeter.save.saveservice.thread_name=true<br \/>\njmeter.save.saveservice.time=true<br \/>\njmeter.save.saveservice.subresults=false<br \/>\njmeter.save.saveservice.assertions=true<br \/>\njmeter.save.saveservice.latency=true<br \/>\njmeter.save.saveservice.connect_time=true<br \/>\njmeter.save.saveservice.samplerData=false<br \/>\njmeter.save.saveservice.responseHeaders=false<br \/>\njmeter.save.saveservice.requestHeaders=false<br \/>\njmeter.save.saveservice.encoding=false<br \/>\njmeter.save.saveservice.bytes=true<br \/>\njmeter.save.saveservice.sent_bytes=true<br \/>\njmeter.save.saveservice.url=true<br \/>\n<code>`<\/code><\/p>\n<h3>\u7981\u7528\u76d1\u542c\u5668<\/h3>\n<p>\u6d4b\u8bd5\u6267\u884c\u65f6\u7981\u7528\u6240\u6709\u76d1\u542c\u5668\uff1a<\/p>\n<ul>\n<li>View Results Tree<\/li>\n<li>Aggregate Report<\/li>\n<li>Summary Report<\/li>\n<\/ul>\n<p>\u4f7f\u7528\u540e\u7aef\u76d1\u542c\u5668\u66ff\u4ee3\uff1a<br \/>\n<code>`<\/code>xml<\/p>\n<p>  org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient<br \/>\n  org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender<br \/>\n  http:\/\/influxdb:8086\/write?db=jmeter<\/p>\n<p><code>`<\/code><\/p>\n<h3>\u4f7f\u7528\u975eGUI\u6a21\u5f0f<\/h3>\n<p><code>`<\/code>bash<\/p>\n<h1>\u6027\u80fd\u5bf9\u6bd4<\/h1>\n<p>GUI\u6a21\u5f0f\uff1aCPU\u5360\u7528\u9ad8\uff0c\u54cd\u5e94\u6162<br \/>\n\u975eGUI\u6a21\u5f0f\uff1aCPU\u5360\u7528\u4f4e\uff0c\u54cd\u5e94\u5feb<\/p>\n<h1>\u63a8\u8350\u547d\u4ee4<\/h1>\n<p>jmeter -n -t test.jmx -l result.jtl -Jthreads=100 -Jrampup=10 -Jduration=300<br \/>\n<code>`<\/code><\/p>\n<p>&#8212;<\/p>\n<h2>\u4e94\u3001\u76d1\u63a7\u4e0e\u62a5\u544a<\/h2>\n<h3>InfluxDB + Grafana\u76d1\u63a7<\/h3>\n<p><strong>1. \u5b89\u88c5InfluxDB<\/strong><\/p>\n<p><code>`<\/code>bash<br \/>\ndocker run -d -p 8086:8086 influxdb:2.0<br \/>\n<code>`<\/code><\/p>\n<p><strong>2. \u521b\u5efa\u6570\u636e\u5e93<\/strong><\/p>\n<p><code>`<\/code>sql<br \/>\nCREATE DATABASE jmeter<br \/>\n<code>`<\/code><\/p>\n<p><strong>3. JMeter\u914d\u7f6eBackend Listener<\/strong><\/p>\n<p><code>`<\/code>xml<\/p>\n<p>  http:\/\/localhost:8086\/write?db=jmeter<br \/>\n  jmeter_results<\/p>\n<p><code>`<\/code><\/p>\n<p><strong>4. Grafana\u914d\u7f6e<\/strong><\/p>\n<p>\u5bfc\u5165JMeter Dashboard\u6a21\u677f\uff08ID: 5495\uff09<\/p>\n<h3>\u5173\u952e\u76d1\u63a7\u6307\u6807<\/h3>\n<p>| \u6307\u6807 | \u8bf4\u660e | \u544a\u8b66\u9608\u503c |<br \/>\n|&#8212;&#8212;|&#8212;&#8212;|&#8212;&#8212;&#8212;-|<br \/>\n| \u5e73\u5747\u54cd\u5e94\u65f6\u95f4 | \u8bf7\u6c42\u5e73\u5747\u8017\u65f6 | &gt; 500ms |<br \/>\n| \u6700\u5927\u54cd\u5e94\u65f6\u95f4 | \u6700\u6162\u8bf7\u6c42\u8017\u65f6 | &gt; 3000ms |<br \/>\n| TPS | \u6bcf\u79d2\u4e8b\u52a1\u6570 |  1% |<br \/>\n| CPU\u4f7f\u7528\u7387 | Agent\u8282\u70b9CPU | &gt; 80% |<br \/>\n| \u5185\u5b58\u4f7f\u7528\u7387 | Agent\u8282\u70b9\u5185\u5b58 | &gt; 85% |<\/p>\n<p>&#8212;<\/p>\n<h2>\u516d\u3001\u5e38\u89c1\u95ee\u9898\u89e3\u51b3<\/h2>\n<h3>\u95ee\u98981\uff1aAgent\u8fde\u63a5\u5931\u8d25<\/h3>\n<p><strong>\u9519\u8bef\uff1a<\/strong><br \/>\n<code>`<\/code><br \/>\nConnection refused to host: 192.168.1.101<br \/>\n<code>`<\/code><\/p>\n<p><strong>\u89e3\u51b3\uff1a<\/strong><br \/>\n<code>`<\/code>bash<\/p>\n<h1>\u68c0\u67e5\u9632\u706b\u5899<\/h1>\n<p>firewall-cmd &#8211;add-port=1099\/tcp &#8211;permanent<br \/>\nfirewall-cmd &#8211;add-port=50000\/tcp &#8211;permanent<br \/>\nfirewall-cmd &#8211;reload<\/p>\n<h1>\u6216\u4e34\u65f6\u5173\u95ed\u9632\u706b\u5899<\/h1>\n<p>systemctl stop firewalld<br \/>\n<code>`<\/code><\/p>\n<h3>\u95ee\u98982\uff1aAgent\u542f\u52a8\u62a5\u9519<\/h3>\n<p><strong>\u9519\u8bef\uff1a<\/strong><br \/>\n<code>`<\/code><br \/>\nError creating rmi server<br \/>\n<code>`<\/code><\/p>\n<p><strong>\u89e3\u51b3\uff1a<\/strong><br \/>\n<code>`<\/code>bash<\/p>\n<h1>\u7f16\u8f91\u542f\u52a8\u811a\u672c<\/h1>\n<h1>jmeter-server.sh<\/h1>\n<p>SERVER_RMI_HOST=-Djava.rmi.server.hostname=192.168.1.101<\/p>\n<h1>\u6216\u5728jmeter.properties\u4e2d\u8bbe\u7f6e<\/h1>\n<p>server.rmi.host=192.168.1.101<br \/>\n<code>`<\/code><\/p>\n<h3>\u95ee\u98983\uff1a\u62a5\u544a\u6570\u636e\u4e0d\u51c6<\/h3>\n<p><strong>\u539f\u56e0\uff1a<\/strong>Agent\u65f6\u949f\u4e0d\u540c\u6b65<\/p>\n<p><strong>\u89e3\u51b3\uff1a<\/strong><br \/>\n<code>`<\/code>bash<\/p>\n<h1>\u540c\u6b65\u6240\u6709\u8282\u70b9\u65f6\u95f4<\/h1>\n<p>ntpdate time.windows.com<\/p>\n<h1>\u6216\u4f7f\u7528chrony<\/h1>\n<p>systemctl start chronyd<br \/>\n<code>`<\/code><\/p>\n<p>&#8212;<\/p>\n<h2>\u4e03\u3001\u5b9e\u6218\u6848\u4f8b\uff1a\u7535\u5546\u7cfb\u7edf\u538b\u6d4b<\/h2>\n<h3>\u6d4b\u8bd5\u573a\u666f<\/h3>\n<p>\u7535\u5546\u5927\u4fc3\u573a\u666f\uff1a<\/p>\n<ul>\n<li>\u7528\u6237\u767b\u5f55\uff1a10%\u6d41\u91cf<\/li>\n<li>\u5546\u54c1\u6d4f\u89c8\uff1a60%\u6d41\u91cf<\/li>\n<li>\u4e0b\u5355\u652f\u4ed8\uff1a30%\u6d41\u91cf<\/li>\n<\/ul>\n<h3>\u538b\u6d4b\u914d\u7f6e<\/h3>\n<p><code>`<\/code>yaml<br \/>\n\u76ee\u6807\u5e76\u53d1: 10000 TPS<br \/>\nAgent\u8282\u70b9: 10\u53f0<br \/>\n\u6bcf\u53f0\u7ebf\u7a0b: 1000<br \/>\n\u538b\u6d4b\u65f6\u957f: 1\u5c0f\u65f6<br \/>\n\u9884\u70ed\u65f6\u95f4: 5\u5206\u949f<br \/>\n<code>`<\/code><\/p>\n<h3>\u6d4b\u8bd5\u811a\u672c\u7ed3\u6784<\/h3>\n<p><code>`<\/code><br \/>\nThreadGroup (1000\u7ebf\u7a0b)<br \/>\n\u251c\u2500\u2500 If Controller (10%) -&gt; \u767b\u5f55\u573a\u666f<br \/>\n\u251c\u2500\u2500 If Controller (60%) -&gt; \u5546\u54c1\u6d4f\u89c8\u573a\u666f<br \/>\n\u2514\u2500\u2500 If Controller (30%) -&gt; \u4e0b\u5355\u652f\u4ed8\u573a\u666f<br \/>\n<code>`<\/code><\/p>\n<h3>\u538b\u6d4b\u7ed3\u679c\u5206\u6790<\/h3>\n<p>| \u6307\u6807 | \u7ed3\u679c | \u7ed3\u8bba |<br \/>\n|&#8212;&#8212;|&#8212;&#8212;|&#8212;&#8212;|<br \/>\n| TPS | 8500 | \u672a\u8fbe\u6807\uff0c\u9700\u4f18\u5316 |<br \/>\n| \u5e73\u5747\u54cd\u5e94\u65f6\u95f4 | 350ms | \u6b63\u5e38 |<br \/>\n| \u9519\u8bef\u7387 | 0.5% | \u6b63\u5e38 |<br \/>\n| \u7cfb\u7edfCPU | 75% | \u6709\u4f59\u91cf |<br \/>\n| \u6570\u636e\u5e93CPU | 95% | \u74f6\u9888\u70b9 |<\/p>\n<p><strong>\u4f18\u5316\u5efa\u8bae\uff1a<\/strong><\/p>\n<ul>\n<li>\u6570\u636e\u5e93\u589e\u52a0\u8fde\u63a5\u6c60<\/li>\n<li>\u6dfb\u52a0Redis\u7f13\u5b58<\/li>\n<li>SQL\u67e5\u8be2\u4f18\u5316<\/li>\n<\/ul>\n<p>&#8212;<\/p>\n<h2>\u516b\u3001RunnerGo\u5bf9\u6bd4<\/h2>\n<p>RunnerGo\u5185\u7f6e\u6027\u80fd\u6d4b\u8bd5\u529f\u80fd\uff0c\u76f8\u6bd4JMeter\uff1a<\/p>\n<p>| \u5bf9\u6bd4\u9879 | JMeter | RunnerGo |<br \/>\n|&#8212;&#8212;&#8211;|&#8212;&#8212;&#8211;|&#8212;&#8212;&#8212;-|<br \/>\n| \u5206\u5e03\u5f0f\u652f\u6301 | \u9700\u624b\u52a8\u914d\u7f6e | \u5185\u7f6e\u652f\u6301 |<br \/>\n| \u76d1\u63a7\u96c6\u6210 | \u9700\u989d\u5916\u914d\u7f6e | \u5185\u7f6e\u76d1\u63a7 |<br \/>\n| \u62a5\u544a\u53ef\u89c6\u5316 | Grafana\u96c6\u6210 | \u5185\u7f6e\u62a5\u544a |<br \/>\n| \u5b66\u4e60\u96be\u5ea6 | \u8f83\u9ad8 | \u8f83\u4f4e |<br \/>\n| \u53ef\u89c6\u5316\u7f16\u6392 | XML\u811a\u672c | \u53ef\u89c6\u5316 |<\/p>\n<p>\u5982\u679c\u56e2\u961f\u4e0d\u719f\u6089JMeter\uff0cRunnerGo\u662f\u66f4\u597d\u7684\u9009\u62e9\u3002<\/p>\n<p>&#8212;<\/p>\n<h2>\u603b\u7ed3<\/h2>\n<p>JMeter\u5206\u5e03\u5f0f\u538b\u6d4b\u8981\u70b9\uff1a<\/p>\n<p>| \u73af\u8282 | \u5173\u952e\u914d\u7f6e |<br \/>\n|&#8212;&#8212;|&#8212;&#8212;&#8212;-|<br \/>\n| Agent\u90e8\u7f72 | jmeter-server\u542f\u52a8 |<br \/>\n| Controller\u914d\u7f6e | remote_hosts\u914d\u7f6e |<br \/>\n| \u811a\u672c\u8bbe\u8ba1 | \u7ebf\u7a0b\u6570\u6309Agent\u5206\u914d |<br \/>\n| \u6570\u636e\u5206\u79bb | CSV\u6587\u4ef6\u5206\u5272 |<br \/>\n| \u76d1\u63a7\u96c6\u6210 | InfluxDB+Grafana |<br \/>\n| \u6027\u80fd\u4f18\u5316 | \u975eGUI\u3001\u7981\u7528\u76d1\u542c\u5668 |<\/p>\n<p>&#8212;<\/p>\n<p><strong>\u4e0b\u671f\u9884\u544a\uff1aRestAssured\u6846\u67b6\u7cbe\u8bb2 &#8211; Java\u63a5\u53e3\u81ea\u52a8\u5316\u6d4b\u8bd5\u4ece0\u52301<\/strong><\/p>\n<p>&gt; \u4f5c\u8005\uff1a\u8fd0\u7ef4\u4e0e\u6d4b\u8bd5\uff0c\u4e13\u6ce8\u6027\u80fd\u6d4b\u8bd5\u4e0eDevOps<\/p>\n","protected":false},"excerpt":{"rendered":"<p>JMeter\u5206\u5e03\u5f0f\u538b\u6d4b\u5b9e\u6218 &#8211; \u4ece\u5355\u673a\u5230\u96c6\u7fa4\u7684\u6027\u80fd\u6d4b\u8bd5\u65b9\u6848 &gt; \u4f5c\u8005\uff1a\u8fd0\u7ef4\u4e0e\u6d4b\u8bd5 &#8212; \u524d\u8a00 \u5927\u5bb6\u597d\uff0c\u6211\u662f\u8fd0\u7ef4\u4e0e\u6d4b\u8bd5\uff0c\u505a\u8fc7\u591a\u5e74\u6027\u80fd\u6d4b\u8bd5\u3002JMeter\u662f\u6211\u6700\u5e38\u7528\u7684\u538b\u6d4b\u5de5\u5177\uff0c\u4f46&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-35","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.runnergo.cn\/index.php?rest_route=\/wp\/v2\/posts\/35","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.runnergo.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.runnergo.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.runnergo.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.runnergo.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=35"}],"version-history":[{"count":0,"href":"https:\/\/blog.runnergo.cn\/index.php?rest_route=\/wp\/v2\/posts\/35\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.runnergo.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=35"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.runnergo.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=35"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.runnergo.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}