{"id":139,"date":"2026-06-22T18:19:43","date_gmt":"2026-06-22T10:19:43","guid":{"rendered":"https:\/\/www.deartester.com\/index.php\/2026\/06\/22\/%e5%9f%ba%e4%ba%8eubuntu-server%e9%83%a8%e7%bd%b2jmeter%e8%87%aa%e5%8a%a8%e5%8c%96%e6%b5%8b%e8%af%95%e6%9c%8d%e5%8a%a1%e5%b9%b3%e5%8f%b0\/"},"modified":"2026-09-03T23:17:48","modified_gmt":"2026-09-03T15:17:48","slug":"%e5%9f%ba%e4%ba%8eubuntu-server%e9%83%a8%e7%bd%b2jmeter%e8%87%aa%e5%8a%a8%e5%8c%96%e6%b5%8b%e8%af%95%e6%9c%8d%e5%8a%a1%e5%b9%b3%e5%8f%b0","status":"publish","type":"post","link":"https:\/\/www.deartester.com\/index.php\/2026\/06\/22\/%e5%9f%ba%e4%ba%8eubuntu-server%e9%83%a8%e7%bd%b2jmeter%e8%87%aa%e5%8a%a8%e5%8c%96%e6%b5%8b%e8%af%95%e6%9c%8d%e5%8a%a1%e5%b9%b3%e5%8f%b0\/","title":{"rendered":"\u57fa\u4e8eUbuntu Server\u90e8\u7f72JMeter\u81ea\u52a8\u5316\u6d4b\u8bd5\u670d\u52a1\u5e73\u53f0"},"content":{"rendered":"<table>\n<tbody>\n<tr>\n<td data-colwidth=\"576\">\n<section><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" data-pm-slice=\"0 0 []\"><span leaf=\"\">\u6587\u7ae0\u5bfc\u8bfb\uff1a<\/span><\/strong><span style=\"color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;display: inline !important;float: none;\"><span leaf=\"\">\u672c\u6587\u5c06\u5e26\u9886\u8bfb\u8005\u4ece\u96f6\u5f00\u59cb\uff0c\u5728\u4e00\u53f0 Ubuntu 26.04 Server \u670d\u52a1\u5668\u4e0a\u5b8c\u6210 JMeter \u81ea\u52a8\u5316\u6d4b\u8bd5\u670d\u52a1\u5e73\u53f0\u7684\u5b8c\u6574\u90e8\u7f72<\/span><\/span><\/section>\n<section><span style=\"color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;display: inline !important;float: none;\"><span leaf=\"\">\u3002\u6587\u7ae0\u5185\u5bb9\u6db5\u76d6\u7cfb\u7edf\u5b89\u88c5\u4e0e\u521d\u59cb\u5316\u3001Java \u73af\u5883\u642d\u5efa\u3001JMeter \u5b89\u88c5\u4e0e\u914d\u7f6e\u3001\u5e73\u53f0\u540e\u7aef\u4e0e\u524d\u7aef\u4ee3\u7801\u5b9e\u73b0\u3001\u670d\u52a1\u90e8\u7f72\u4e0e\u8fd0\u884c\u3001\u4ee5\u53ca\u4e00\u4e2a\u5b8c\u6574\u7684\u5b9e\u6218\u6f14\u793a\u3002\u901a\u8fc7\u672c\u6587\uff0c\u8bfb\u8005\u53ef\u4ee5\u6784\u5efa\u4e00\u4e2a\u57fa\u4e8e Web \u7684 JMeter \u6d4b\u8bd5\u5e73\u53f0\uff0c\u5b9e\u73b0\u6d4b\u8bd5\u8ba1\u5212\u7684\u521b\u5efa\u3001\u6267\u884c\u3001\u7ed3\u679c\u6536\u96c6\u548c\u62a5\u544a\u5c55\u793a\uff0c\u9002\u7528\u4e8e\u63a5\u53e3\u6027\u80fd\u6d4b\u8bd5\u3001\u538b\u529b\u6d4b\u8bd5\u3001\u7a33\u5b9a\u6027\u6d4b\u8bd5\u7b49\u591a\u79cd\u573a\u666f\u3002<\/span><\/span><\/section>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<h2 data-pm-slice=\"0 0 []\"><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: rgb(0, 128, 255);font-weight: bold;\">\u4e00\u3001\u524d\u8a00\uff1a\u4e3a\u4ec0\u4e48\u8981\u642d\u5efa JMeter \u81ea\u52a8\u5316\u6d4b\u8bd5\u670d\u52a1\u5e73\u53f0<\/span><\/span><\/h2>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728\u8f6f\u4ef6\u6d4b\u8bd5\u9886\u57df\uff0c\u6027\u80fd\u6d4b\u8bd5\u662f\u4fdd\u969c\u7cfb\u7edf\u7a33\u5b9a\u6027\u7684\u5173\u952e\u73af\u8282\u3002Apache JMeter \u4f5c\u4e3a\u4e00\u6b3e\u5f00\u6e90\u7684\u6027\u80fd\u6d4b\u8bd5\u5de5\u5177\uff0c\u51ed\u501f\u5176\u5f3a\u5927\u7684\u534f\u8bae\u652f\u6301\u3001\u7075\u6d3b\u7684\u6d4b\u8bd5\u8ba1\u5212\u8bbe\u8ba1\u3001\u4e30\u5bcc\u7684\u63d2\u4ef6\u751f\u6001\u4ee5\u53ca\u6d3b\u8dc3\u7684\u793e\u533a\uff0c\u5df2\u7ecf\u6210\u4e3a\u4e1a\u754c\u4f7f\u7528\u6700\u5e7f\u6cdb\u7684\u6027\u80fd\u6d4b\u8bd5\u5de5\u5177\u4e4b\u4e00\u3002\u7136\u800c\uff0c\u5728\u5b9e\u9645\u5de5\u4f5c\u4e2d\uff0c\u6211\u4eec\u5e38\u5e38\u4f1a\u9047\u5230\u4e00\u4e9b\u573a\u666f\uff1a\u6d4b\u8bd5\u56e2\u961f\u9700\u8981\u591a\u4eba\u534f\u4f5c\u7ba1\u7406\u6d4b\u8bd5\u7528\u4f8b\u3001\u9700\u8981\u5b9a\u65f6\u6267\u884c\u56de\u5f52\u6d4b\u8bd5\u3001\u9700\u8981\u5c06\u6d4b\u8bd5\u7ed3\u679c\u53ef\u89c6\u5316\u5c55\u793a\u3001\u9700\u8981\u5c06\u6d4b\u8bd5\u80fd\u529b\u96c6\u6210\u5230 DevOps \u6d41\u6c34\u7ebf\u4e2d\u3002<\/span><\/span><\/p>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4f20\u7edf\u7684 JMeter \u4f7f\u7528\u65b9\u5f0f\u901a\u5e38\u662f\uff1a\u6d4b\u8bd5\u5de5\u7a0b\u5e08\u5728\u672c\u5730 Windows \u6216 macOS \u4e0a\u6253\u5f00 JMeter GUI\uff0c\u624b\u52a8\u7f16\u5199\u6d4b\u8bd5\u8ba1\u5212\uff08.jmx \u6587\u4ef6\uff09\uff0c\u7136\u540e\u672c\u5730\u6267\u884c\u6216\u4f20\u5230\u670d\u52a1\u5668\u4e0a\u6267\u884c\u3002\u8fd9\u79cd\u65b9\u5f0f\u5b58\u5728\u4ee5\u4e0b\u51e0\u4e2a\u660e\u663e\u7684\u95ee\u9898\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u534f\u4f5c\u56f0\u96be<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u6d4b\u8bd5\u8ba1\u5212\u6587\u4ef6\u5206\u6563\u5728\u4e2a\u4eba\u7535\u8111\u4e0a\uff0c\u7248\u672c\u7ba1\u7406\u6df7\u4e71\uff0c\u56e2\u961f\u6210\u5458\u96be\u4ee5\u5171\u4eab\u548c\u590d\u7528\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u6267\u884c\u4e0d\u4fbf<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u9700\u8981\u624b\u52a8\u767b\u5f55\u670d\u52a1\u5668\uff0c\u4e0a\u4f20 JMX \u6587\u4ef6\uff0c\u6267\u884c\u547d\u4ee4\u884c\uff0c\u518d\u4e0b\u8f7d\u7ed3\u679c\u6587\u4ef6\uff0c\u6548\u7387\u4f4e\u4e0b\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u7ed3\u679c\u5206\u6563<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u6d4b\u8bd5\u7ed3\u679c\u4ee5\u6587\u4ef6\u5f62\u5f0f\u5206\u6563\u5b58\u50a8\uff0c\u7f3a\u4e4f\u7edf\u4e00\u7684\u5c55\u793a\u548c\u5bf9\u6bd4\u5206\u6790\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u96be\u4ee5\u96c6\u6210<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u4e0e CI\/CD \u6d41\u6c34\u7ebf\u96c6\u6210\u65f6\uff0c\u9700\u8981\u7f16\u5199\u5927\u91cf\u811a\u672c\u548c\u914d\u7f6e\uff0c\u7ef4\u62a4\u6210\u672c\u9ad8\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u8d44\u6e90\u6d6a\u8d39<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u4e2a\u4eba\u7535\u8111\u6027\u80fd\u6709\u9650\uff0c\u65e0\u6cd5\u652f\u6301\u5927\u89c4\u6a21\u5e76\u53d1\u6d4b\u8bd5\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u56e0\u6b64\uff0c\u642d\u5efa\u4e00\u4e2a\u57fa\u4e8e\u670d\u52a1\u5668\u7684 JMeter \u81ea\u52a8\u5316\u6d4b\u8bd5\u670d\u52a1\u5e73\u53f0\u5177\u6709\u91cd\u8981\u7684\u73b0\u5b9e\u610f\u4e49\u3002\u901a\u8fc7 Web \u5316\u7684\u5e73\u53f0\uff0c\u6211\u4eec\u53ef\u4ee5\u5b9e\u73b0\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u6d4b\u8bd5\u8ba1\u5212\u7684\u96c6\u4e2d\u5b58\u50a8\u3001\u7248\u672c\u7ba1\u7406\u548c\u6743\u9650\u63a7\u5236\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u901a\u8fc7\u6d4f\u89c8\u5668\u5373\u53ef\u521b\u5efa\u3001\u7f16\u8f91\u3001\u6267\u884c\u6d4b\u8bd5\u4efb\u52a1\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u6d4b\u8bd5\u7ed3\u679c\u7684\u81ea\u52a8\u6536\u96c6\u3001\u6301\u4e45\u5316\u548c\u53ef\u89c6\u5316\u5c55\u793a\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u901a\u8fc7 API \u63a5\u53e3\u4e0e Jenkins\u3001GitLab CI \u7b49\u5de5\u5177\u96c6\u6210\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u5229\u7528\u670d\u52a1\u5668\u8d44\u6e90\u6267\u884c\u9ad8\u5e76\u53d1\u6d4b\u8bd5\uff0c\u83b7\u5f97\u66f4\u51c6\u786e\u7684\u6027\u80fd\u6570\u636e\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u672c\u6587\u5047\u8bbe\u8bfb\u8005\u5177\u5907\u4e00\u5b9a\u7684 Linux \u57fa\u7840\u77e5\u8bc6\u3001Java \u7f16\u7a0b\u57fa\u7840\u4ee5\u53ca\u5bf9 JMeter \u7684\u57fa\u672c\u4e86\u89e3\u3002\u6211\u4eec\u5c06\u4f7f\u7528 Ubuntu 26.04 Server \u4f5c\u4e3a\u5e95\u5c42\u64cd\u4f5c\u7cfb\u7edf\uff0cOpenJDK 17 \u4f5c\u4e3a Java \u8fd0\u884c\u73af\u5883\uff0cApache JMeter 5.6.3 \u4f5c\u4e3a\u6d4b\u8bd5\u5f15\u64ce\uff0cSpring Boot 3.2 \u4f5c\u4e3a\u540e\u7aef\u670d\u52a1\u6846\u67b6\uff0cVue 3 \u4f5c\u4e3a\u524d\u7aef\u6846\u67b6\uff0cMySQL 8.0 \u4f5c\u4e3a\u6570\u636e\u6301\u4e45\u5316\u5b58\u50a8\uff0cNginx \u4f5c\u4e3a\u53cd\u5411\u4ee3\u7406\u3002\u6700\u7ec8\u76ee\u6807\u662f\u6784\u5efa\u4e00\u4e2a\u53ef\u4ee5\u8fd0\u884c\u5728\u751f\u4ea7\u73af\u5883\u4e2d\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u670d\u52a1\u5e73\u53f0\u3002<\/span><\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"576\">\n<p data-pm-slice=\"3 2 []\"><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 15px;color: rgb(0, 128, 255);font-weight: bold;\">\u9605\u8bfb\u5efa\u8bae\uff1a<\/span><\/span><\/strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 12px;\">\u672c\u6587\u6d89\u53ca\u5927\u91cf\u547d\u4ee4\u548c\u4ee3\u7801\uff0c\u5efa\u8bae\u8bfb\u8005\u6309\u7167\u7ae0\u8282\u987a\u5e8f\u9010\u6b65\u64cd\u4f5c\uff0c\u5e76\u5728\u81ea\u5df1\u7684\u6d4b\u8bd5\u670d\u52a1\u5668\u6216\u865a\u62df\u673a\u4e0a\u8fdb\u884c\u5b9e\u8df5\u3002\u6240\u6709\u547d\u4ee4\u548c\u4ee3\u7801\u5747\u7ecf\u8fc7\u9a8c\u8bc1\uff0c\u8bfb\u8005\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u73af\u5883\u8c03\u6574 IP \u5730\u5740\u3001\u7aef\u53e3\u53f7\u3001\u7528\u6237\u540d\u7b49\u53c2\u6570\u3002<\/span><\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><mpcpc class=\"js_cpc_area res_iframe cpc_iframe\" data-category_id_list=\"1|16|2|21|28|29|3|35|36|37|39|41|42|43|48|5|50|51|58|6|61|62|63|69|7|70|71|72|73|74|75|76|77\" js_editor_cpcad=\"\" src=\"\/cgi-bin\/readtemplate?t=tmpl\/cpc_tmpl#1782123295207\" data-id=\"1782123295207\"><\/mpcpc><\/p>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><br  \/><\/span><\/p>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><br  \/><\/span><\/p>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: rgb(0, 128, 255);font-weight: bold;\">\u4e8c\u3001Ubuntu 26.04 Server \u7cfb\u7edf\u5b89\u88c5\u4e0e\u57fa\u7840\u914d\u7f6e<\/span><\/span><\/h2>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">Ubuntu Server \u662f\u6784\u5efa\u670d\u52a1\u5668\u7aef\u5e94\u7528\u7684\u9996\u9009 Linux \u53d1\u884c\u7248\u4e4b\u4e00\uff0c\u5b83\u4ee5\u7a33\u5b9a\u3001\u5b89\u5168\u3001\u6613\u7ef4\u62a4\u8457\u79f0\u3002Ubuntu 26.04 Server \u662f Canonical \u516c\u53f8\u53d1\u5e03\u7684\u957f\u671f\u652f\u6301\uff08LTS\uff09\u7248\u672c\uff0c\u63d0\u4f9b\u4e86\u4e94\u5e74\u7684\u5b89\u5168\u66f4\u65b0\u548c\u6280\u672f\u652f\u6301\uff0c\u975e\u5e38\u9002\u5408\u90e8\u7f72\u4f01\u4e1a\u7ea7\u6d4b\u8bd5\u5e73\u53f0\u3002\u672c\u8282\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u4ece\u4e0b\u8f7d\u955c\u50cf\u5230\u5b8c\u6210\u7cfb\u7edf\u57fa\u7840\u914d\u7f6e\u7684\u5b8c\u6574\u8fc7\u7a0b\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">2.1 \u4e0b\u8f7d Ubuntu 26.04 Server \u955c\u50cf<\/span><\/span><\/h3>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u4ece Ubuntu \u5b98\u65b9\u7f51\u7ad9\u4e0b\u8f7d Ubuntu 26.04 Server \u7684 ISO \u955c\u50cf\u6587\u4ef6\u3002<\/span><\/span><\/p>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">Ubuntu \u5b98\u65b9\u4e0b\u8f7d\u9875\u9762\uff08https:\/\/ubuntu.com\/download\/server\uff09\uff0c\u9009\u62e9 Ubuntu 26.04 LTS Server \u7248\u672c\uff0c\u4e0b\u8f7d\u5bf9\u5e94\u7684 ISO \u6587\u4ef6\u3002\u901a\u5e38\u6587\u4ef6\u540d\u7c7b\u4f3c\u4e8e<\/span><span textstyle=\"\" style=\"font-size: 12px;color: rgb(123, 12, 0);\">&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 12px;color: rgb(123, 12, 0);\">ubuntu-26.04-live-server-amd64.iso<\/span><\/span><\/code><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u3002\u5efa\u8bae\u4e0b\u8f7d\u524d\u6838\u5bf9\u6587\u4ef6\u7684 SHA256 \u6821\u9a8c\u503c\uff0c\u786e\u4fdd\u6587\u4ef6\u5728\u4e0b\u8f7d\u8fc7\u7a0b\u4e2d\u6ca1\u6709\u88ab\u635f\u574f\u6216\u7be1\u6539\u3002<\/span><\/span><\/p>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u7f51\u7edc\u6709\u9650\u5236\uff0c\u53ef\u4ee5\u516c\u4f17\u53f7\u540e\u53f0\u56de\u590d\u201cubuntu\u201d\u83b7\u53d6\u7f51\u76d8\u5730\u5740<\/span><\/span><\/p>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4e5f\u53ef\u4ee5\u5728\u547d\u4ee4\u884c\u4e2d\u4f7f\u7528 wget \u76f4\u63a5\u4e0b\u8f7d\u955c\u50cf\uff08\u4ee5\u4e0b\u4e3a\u793a\u4f8b\u547d\u4ee4\uff0c\u5177\u4f53 URL \u8bf7\u4ee5\u5b98\u7f51\u5b9e\u9645\u5730\u5740\u4e3a\u51c6\uff09\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">wget https:\/\/releases.ubuntu.com\/26.04\/ubuntu-26.04-live-server-amd64.iso<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sha256sum ubuntu-26.04-live-server-amd64.iso<\/span><\/code><\/pre>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u4f60\u662f\u5728\u672c\u5730\u865a\u62df\u673a\uff08\u5982 VMware Workstation\u3001VirtualBox\uff09\u4e2d\u5b89\u88c5\uff0c\u53ef\u4ee5\u76f4\u63a5\u6302\u8f7d ISO \u6587\u4ef6\uff1b\u5982\u679c\u662f\u5728\u7269\u7406\u670d\u52a1\u5668\u4e0a\u5b89\u88c5\uff0c\u9700\u8981\u5236\u4f5c\u542f\u52a8 U \u76d8\u3002\u5236\u4f5c\u542f\u52a8\u76d8\u7684\u5de5\u5177\u63a8\u8350\u4f7f\u7528 Rufus\uff08Windows\uff09\u6216 balenaEtcher\uff08\u8de8\u5e73\u53f0\uff09\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">2.2 \u5b89\u88c5 Ubuntu 26.04 Server<\/span><\/span><\/h3>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5c06 ISO \u955c\u50cf\u6302\u8f7d\u5230\u670d\u52a1\u5668\u6216\u865a\u62df\u673a\u540e\uff0c\u542f\u52a8\u7cfb\u7edf\u8fdb\u5165\u5b89\u88c5\u754c\u9762\u3002Ubuntu 26.04 Server \u91c7\u7528\u57fa\u4e8e\u6587\u672c\u7684\u5b89\u88c5\u5411\u5bfc\uff0c\u6574\u4e2a\u5b89\u88c5\u8fc7\u7a0b\u6e05\u6670\u660e\u4e86\u3002\u4ee5\u4e0b\u662f\u5173\u952e\u6b65\u9aa4\u7684\u8be6\u7ec6\u8bf4\u660e\uff1a<\/span><\/span><\/p>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><span style=\"box-sizing: border-box;margin: 0px 12px 0px 0px;padding: 0px;display: inline-flex;align-items: center;justify-content: center;width: 32px;height: 32px;background: var(--primary-color);color: white;border-radius: 50%;font-weight: bold;\"><span leaf=\"\">1<\/span><\/span><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u9009\u62e9\u8bed\u8a00<\/span><\/strong><span leaf=\"\">\uff1a\u5b89\u88c5\u5411\u5bfc\u542f\u52a8\u540e\uff0c\u9996\u5148\u9009\u62e9\u5b89\u88c5\u8bed\u8a00\u3002\u5efa\u8bae\u9009\u62e9 English\uff0c\u56e0\u4e3a\u5728\u670d\u52a1\u5668\u73af\u5883\u4e2d\u4f7f\u7528\u82f1\u6587\u53ef\u4ee5\u51cf\u5c11\u56e0\u672c\u5730\u5316\u5e26\u6765\u7684\u8def\u5f84\u6216\u7f16\u7801\u95ee\u9898\u3002\u540e\u7eed\u8fdb\u5165\u7cfb\u7edf\u540e\u4e5f\u53ef\u4ee5\u5b89\u88c5\u4e2d\u6587\u8bed\u8a00\u5305\u3002<\/span><\/p>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><span style=\"box-sizing: border-box;margin: 0px 12px 0px 0px;padding: 0px;display: inline-flex;align-items: center;justify-content: center;width: 32px;height: 32px;background: var(--primary-color);color: white;border-radius: 50%;font-weight: bold;\"><span leaf=\"\">2<\/span><\/span><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u952e\u76d8\u5e03\u5c40<\/span><\/strong><span leaf=\"\">\uff1a\u9009\u62e9\u9002\u5408\u7684\u952e\u76d8\u5e03\u5c40\uff0c\u901a\u5e38\u9ed8\u8ba4\u7684 English (US) \u5373\u53ef\u3002\u5982\u679c\u4f60\u4f7f\u7528\u7684\u662f\u4e2d\u6587\u952e\u76d8\uff0c\u53ef\u4ee5\u9009\u62e9 Chinese\u3002<\/span><\/p>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><span style=\"box-sizing: border-box;margin: 0px 12px 0px 0px;padding: 0px;display: inline-flex;align-items: center;justify-content: center;width: 32px;height: 32px;background: var(--primary-color);color: white;border-radius: 50%;font-weight: bold;\"><span leaf=\"\">3<\/span><\/span><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u9009\u62e9\u5b89\u88c5\u7c7b\u578b<\/span><\/strong><span leaf=\"\">\uff1aUbuntu 26.04 Server \u63d0\u4f9b\u591a\u79cd\u5b89\u88c5\u9009\u9879\u3002\u5bf9\u4e8e\u6211\u4eec\u7684\u6d4b\u8bd5\u5e73\u53f0\uff0c\u5efa\u8bae\u9009\u62e9&nbsp;<\/span><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">Ubuntu Server<\/span><\/strong><span leaf=\"\">\uff08\u6807\u51c6\u670d\u52a1\u5668\u5b89\u88c5\uff09\uff0c\u4e0d\u9700\u8981\u9009\u62e9 Ubuntu Server (minimized) \u7248\u672c\uff0c\u56e0\u4e3a\u6807\u51c6\u7248\u672c\u5305\u542b\u66f4\u591a\u5e38\u7528\u5de5\u5177\uff0c\u53ef\u4ee5\u51cf\u5c11\u540e\u7eed\u624b\u52a8\u5b89\u88c5\u7684\u6b65\u9aa4\u3002<\/span><\/p>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><span style=\"box-sizing: border-box;margin: 0px 12px 0px 0px;padding: 0px;display: inline-flex;align-items: center;justify-content: center;width: 32px;height: 32px;background: var(--primary-color);color: white;border-radius: 50%;font-weight: bold;\"><span leaf=\"\">4<\/span><\/span><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u7f51\u7edc\u914d\u7f6e<\/span><\/strong><span leaf=\"\">\uff1a\u5b89\u88c5\u7a0b\u5e8f\u4f1a\u81ea\u52a8\u68c0\u6d4b\u7f51\u5361\u5e76\u5c1d\u8bd5\u901a\u8fc7 DHCP \u83b7\u53d6 IP \u5730\u5740\u3002\u5982\u679c\u4f60\u7684\u7f51\u7edc\u73af\u5883\u652f\u6301 DHCP\uff0c\u8fd9\u4e00\u6b65\u53ef\u4ee5\u76f4\u63a5\u4fdd\u6301\u9ed8\u8ba4\u3002\u5982\u679c\u670d\u52a1\u5668\u9700\u8981\u9759\u6001 IP\uff0c\u53ef\u4ee5\u5728\u8fd9\u4e00\u6b65\u624b\u52a8\u914d\u7f6e\u3002\u5efa\u8bae\u4e3a\u6d4b\u8bd5\u670d\u52a1\u5668\u914d\u7f6e\u56fa\u5b9a IP\uff0c\u4fbf\u4e8e\u540e\u7eed\u901a\u8fc7 SSH \u7ba1\u7406\u548c\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u5e73\u53f0\u3002<\/span><\/p>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><span style=\"box-sizing: border-box;margin: 0px 12px 0px 0px;padding: 0px;display: inline-flex;align-items: center;justify-content: center;width: 32px;height: 32px;background: var(--primary-color);color: white;border-radius: 50%;font-weight: bold;\"><span leaf=\"\">5<\/span><\/span><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u4ee3\u7406\u914d\u7f6e<\/span><\/strong><span leaf=\"\">\uff1a\u5982\u679c\u670d\u52a1\u5668\u9700\u8981\u901a\u8fc7\u4ee3\u7406\u624d\u80fd\u8bbf\u95ee\u4e92\u8054\u7f51\uff0c\u53ef\u4ee5\u5728\u8fd9\u91cc\u914d\u7f6e\u4ee3\u7406\u5730\u5740\u3002\u5927\u591a\u6570\u60c5\u51b5\u4e0b\u53ef\u4ee5\u76f4\u63a5\u7559\u7a7a\u8df3\u8fc7\u3002<\/span><\/p>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><span style=\"box-sizing: border-box;margin: 0px 12px 0px 0px;padding: 0px;display: inline-flex;align-items: center;justify-content: center;width: 32px;height: 32px;background: var(--primary-color);color: white;border-radius: 50%;font-weight: bold;\"><span leaf=\"\">6<\/span><\/span><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u955c\u50cf\u6e90\u9009\u62e9<\/span><\/strong><span leaf=\"\">\uff1a\u5b89\u88c5\u7a0b\u5e8f\u4f1a\u5217\u51fa\u591a\u4e2a Ubuntu \u8f6f\u4ef6\u955c\u50cf\u6e90\u3002\u5bf9\u4e8e\u4e2d\u56fd\u7528\u6237\uff0c\u5efa\u8bae\u9009\u62e9\u963f\u91cc\u4e91\u3001\u6e05\u534e\u5927\u5b66\u6216\u4e2d\u79d1\u5927\u955c\u50cf\u6e90\uff0c\u53ef\u4ee5\u5927\u5e45\u63d0\u5347\u8f6f\u4ef6\u4e0b\u8f7d\u901f\u5ea6\u3002\u4f8b\u5982\uff1ahttp:\/\/mirrors.aliyun.com\/ubuntu\u3002<\/span><\/p>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><span style=\"box-sizing: border-box;margin: 0px 12px 0px 0px;padding: 0px;display: inline-flex;align-items: center;justify-content: center;width: 32px;height: 32px;background: var(--primary-color);color: white;border-radius: 50%;font-weight: bold;\"><span leaf=\"\">7<\/span><\/span><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u78c1\u76d8\u5206\u533a<\/span><\/strong><span leaf=\"\">\uff1a\u6839\u636e\u670d\u52a1\u5668\u78c1\u76d8\u5927\u5c0f\u9009\u62e9\u5408\u9002\u7684\u5206\u533a\u65b9\u6848\u3002\u5bf9\u4e8e\u6d4b\u8bd5\u73af\u5883\uff0c\u53ef\u4ee5\u9009\u62e9&nbsp;<\/span><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">Use an entire disk<\/span><\/strong><span leaf=\"\">\uff08\u4f7f\u7528\u6574\u5757\u78c1\u76d8\uff09\uff0c\u5e76\u542f\u7528 LVM\uff08\u903b\u8f91\u5377\u7ba1\u7406\uff09\uff0c\u8fd9\u6837\u540e\u7eed\u6269\u5c55\u78c1\u76d8\u66f4\u52a0\u65b9\u4fbf\u3002\u5982\u679c\u4f60\u6709\u7279\u6b8a\u7684\u5206\u533a\u9700\u6c42\uff0c\u4e5f\u53ef\u4ee5\u9009\u62e9\u624b\u52a8\u5206\u533a\u3002<\/span><\/p>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><span style=\"box-sizing: border-box;margin: 0px 12px 0px 0px;padding: 0px;display: inline-flex;align-items: center;justify-content: center;width: 32px;height: 32px;background: var(--primary-color);color: white;border-radius: 50%;font-weight: bold;\"><span leaf=\"\">8<\/span><\/span><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u521b\u5efa\u7528\u6237<\/span><\/strong><span leaf=\"\">\uff1a\u8bbe\u7f6e\u670d\u52a1\u5668\u4e3b\u673a\u540d\uff08\u4f8b\u5982 jmeter-test-platform\uff09\u3001\u521b\u5efa\u4e00\u4e2a\u666e\u901a\u7528\u6237\uff08\u4f8b\u5982 jmeter\uff09\u5e76\u8bbe\u7f6e\u5bc6\u7801\u3002\u6ce8\u610f\uff0cUbuntu Server \u9ed8\u8ba4\u7981\u7528 root \u7528\u6237\u76f4\u63a5\u767b\u5f55\uff0c\u56e0\u6b64\u521b\u5efa\u7684\u7b2c\u4e00\u4e2a\u7528\u6237\u5c06\u62e5\u6709 sudo \u6743\u9650\u3002\u8fd9\u4e2a\u7528\u6237\u4e5f\u5c06\u7528\u4e8e\u540e\u7eed\u90e8\u7f72\u548c\u7ba1\u7406\u3002<\/span><\/p>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><span style=\"box-sizing: border-box;margin: 0px 12px 0px 0px;padding: 0px;display: inline-flex;align-items: center;justify-content: center;width: 32px;height: 32px;background: var(--primary-color);color: white;border-radius: 50%;font-weight: bold;\"><span leaf=\"\">9<\/span><\/span><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">SSH \u670d\u52a1<\/span><\/strong><span leaf=\"\">\uff1a\u5efa\u8bae\u52fe\u9009&nbsp;<\/span><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">Install OpenSSH server<\/span><\/strong><span leaf=\"\">\uff0c\u8fd9\u6837\u5b89\u88c5\u5b8c\u6210\u540e\u53ef\u4ee5\u901a\u8fc7 SSH \u8fdc\u7a0b\u7ba1\u7406\u670d\u52a1\u5668\u3002\u540c\u65f6\u53ef\u4ee5\u5bfc\u5165 SSH \u516c\u94a5\uff0c\u5b9e\u73b0\u514d\u5bc6\u767b\u5f55\u3002<\/span><\/p>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><span style=\"box-sizing: border-box;margin: 0px 12px 0px 0px;padding: 0px;display: inline-flex;align-items: center;justify-content: center;width: 32px;height: 32px;background: var(--primary-color);color: white;border-radius: 50%;font-weight: bold;\"><span leaf=\"\">10<\/span><\/span><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u7279\u8272\u8f6f\u4ef6\u5305<\/span><\/strong><span leaf=\"\">\uff1a\u5b89\u88c5\u5411\u5bfc\u4f1a\u5217\u51fa\u4e00\u4e9b\u53ef\u9009\u8f6f\u4ef6\u5305\uff0c\u5982 Docker\u3001PostgreSQL \u7b49\u3002\u8fd9\u4e00\u6b65\u4e0d\u9700\u8981\u9009\u62e9\u4efb\u4f55\u989d\u5916\u8f6f\u4ef6\u5305\uff0c\u6211\u4eec\u5c06\u5728\u540e\u7eed\u7ae0\u8282\u4e2d\u624b\u52a8\u5b89\u88c5\u6240\u9700\u7ec4\u4ef6\uff0c\u4ee5\u4fbf\u7cbe\u786e\u63a7\u5236\u7248\u672c\u3002<\/span><\/p>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5b8c\u6210\u4ee5\u4e0a\u6b65\u9aa4\u540e\uff0c\u5b89\u88c5\u7a0b\u5e8f\u4f1a\u81ea\u52a8\u5b8c\u6210\u7cfb\u7edf\u5b89\u88c5\u5e76\u91cd\u542f\u3002\u91cd\u542f\u540e\uff0c\u4f7f\u7528\u4e4b\u524d\u521b\u5efa\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u767b\u5f55\u7cfb\u7edf\u3002\u5982\u679c\u4e4b\u524d\u914d\u7f6e\u4e86 SSH \u516c\u94a5\uff0c\u4e5f\u53ef\u4ee5\u76f4\u63a5\u901a\u8fc7 SSH \u514d\u5bc6\u767b\u5f55\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">2.3 \u7cfb\u7edf\u521d\u59cb\u5316\u914d\u7f6e<\/span><\/span><\/h3>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u7cfb\u7edf\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u9700\u8981\u8fdb\u884c\u4e00\u7cfb\u5217\u521d\u59cb\u5316\u914d\u7f6e\uff0c\u786e\u4fdd\u670d\u52a1\u5668\u5b89\u5168\u3001\u7a33\u5b9a\u3001\u4fbf\u4e8e\u7ef4\u62a4\u3002\u4ee5\u4e0b\u662f\u5efa\u8bae\u7684\u521d\u59cb\u5316\u6b65\u9aa4\uff1a<\/span><\/span><\/p>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 17px;font-weight: bold;\">2.3.1 \u66f4\u65b0\u7cfb\u7edf\u8f6f\u4ef6\u5305<\/span><\/span><\/h4>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u9996\u5148\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u66f4\u65b0\u7cfb\u7edf\u7684\u8f6f\u4ef6\u5305\u7d22\u5f15\u548c\u5df2\u5b89\u88c5\u8f6f\u4ef6\u5305\u3002\u8fd9\u4e00\u6b65\u53ef\u4ee5\u4fee\u590d\u5df2\u77e5\u7684\u5b89\u5168\u6f0f\u6d1e\uff0c\u5e76\u786e\u4fdd\u7cfb\u7edf\u4e2d\u7684\u5de5\u5177\u5904\u4e8e\u6700\u65b0\u72b6\u6001\u3002<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo apt update<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo apt upgrade -y<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo apt autoremove -y<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5176\u4e2d\uff0c<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">apt update<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u7528\u4e8e\u66f4\u65b0\u8f6f\u4ef6\u5305\u5217\u8868\uff0c<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">apt upgrade -y<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u7528\u4e8e\u5347\u7ea7\u6240\u6709\u53ef\u5347\u7ea7\u7684\u8f6f\u4ef6\u5305\uff0c<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">apt autoremove -y<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u7528\u4e8e\u6e05\u7406\u4e0d\u518d\u9700\u8981\u7684\u4f9d\u8d56\u5305\u3002\u6267\u884c\u8fd9\u4e9b\u547d\u4ee4\u53ef\u80fd\u9700\u8981\u51e0\u5206\u949f\u65f6\u95f4\uff0c\u5177\u4f53\u53d6\u51b3\u4e8e\u7f51\u7edc\u901f\u5ea6\u548c\u7cfb\u7edf\u72b6\u6001\u3002<\/span><\/span><\/p>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-weight: bold;\">2.3.2 \u914d\u7f6e\u9759\u6001 IP \u5730\u5740<\/span><\/span><\/h4>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u670d\u52a1\u5668\u5728\u90e8\u7f72\u65f6\u6ca1\u6709\u914d\u7f6e\u9759\u6001 IP\uff0c\u5efa\u8bae\u901a\u8fc7 Netplan \u914d\u7f6e\u56fa\u5b9a IP\u3002Ubuntu 22.04 \u53ca\u4ee5\u540e\u7248\u672c\u4f7f\u7528 Netplan \u7ba1\u7406\u7f51\u7edc\u914d\u7f6e\u3002\u7f16\u8f91 Netplan \u914d\u7f6e\u6587\u4ef6\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo nano \/etc\/netplan\/00-installer-config.yaml<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5c06\u6587\u4ef6\u5185\u5bb9\u4fee\u6539\u4e3a\u5982\u4e0b\u793a\u4f8b\uff08\u8bf7\u6839\u636e\u5b9e\u9645\u7f51\u7edc\u73af\u5883\u8c03\u6574 IP\u3001\u7f51\u5173\u548c DNS\uff09\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">network:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; version: 2<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; ethernets:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; eth0:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; dhcp4: false<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; addresses:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; - 192.168.1.100\/24<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; routes:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; - to: default<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; via: 192.168.1.1<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; nameservers:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; addresses:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - 114.114.114.114<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - 8.8.8.8<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4fdd\u5b58\u6587\u4ef6\u540e\uff0c\u5e94\u7528\u7f51\u7edc\u914d\u7f6e\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo netplan apply<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u53ef\u4ee5\u901a\u8fc7&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">ip addr<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u547d\u4ee4\u9a8c\u8bc1 IP \u5730\u5740\u662f\u5426\u751f\u6548\u3002<\/span><\/span><\/p>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-weight: bold;\">2.3.3 \u914d\u7f6e SSH \u5b89\u5168\u767b\u5f55<\/span><\/span><\/h4>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4e3a\u4e86\u63d0\u9ad8\u5b89\u5168\u6027\uff0c\u5efa\u8bae\u5bf9 SSH \u670d\u52a1\u8fdb\u884c\u57fa\u7840\u52a0\u56fa\u3002\u7f16\u8f91 SSH \u914d\u7f6e\u6587\u4ef6\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo nano \/etc\/ssh\/sshd_config<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5efa\u8bae\u8fdb\u884c\u4ee5\u4e0b\u4fee\u6539\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u5c06&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">PermitRootLogin<\/span><\/code><span leaf=\"\">&nbsp;\u8bbe\u7f6e\u4e3a&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">no<\/span><\/code><span leaf=\"\">\uff0c\u7981\u6b62 root \u76f4\u63a5\u767b\u5f55\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u5c06&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">PasswordAuthentication<\/span><\/code><span leaf=\"\">&nbsp;\u8bbe\u7f6e\u4e3a&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">no<\/span><\/code><span leaf=\"\">\uff08\u5982\u679c\u4f60\u5df2\u7ecf\u914d\u7f6e\u597d SSH \u5bc6\u94a5\uff09\uff0c\u4ec5\u5141\u8bb8\u5bc6\u94a5\u767b\u5f55\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u4fee\u6539\u9ed8\u8ba4\u7684 SSH \u7aef\u53e3\uff08\u53ef\u9009\uff0c\u4f8b\u5982\u6539\u4e3a 2222\uff09\uff0c\u51cf\u5c11\u88ab\u626b\u63cf\u653b\u51fb\u7684\u6982\u7387\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4fee\u6539\u5b8c\u6210\u540e\uff0c\u91cd\u542f SSH \u670d\u52a1\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo systemctl restart sshd<\/span><\/code><\/pre>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u6ce8\u610f\u4e8b\u9879\uff1a<\/span><\/strong><span leaf=\"\">\u4fee\u6539 SSH \u914d\u7f6e\u65f6\uff0c\u5efa\u8bae\u4fdd\u7559\u4e00\u4e2a\u5df2\u7ecf\u767b\u5f55\u7684\u4f1a\u8bdd\u7a97\u53e3\uff0c\u4ee5\u9632\u914d\u7f6e\u9519\u8bef\u5bfc\u81f4\u65e0\u6cd5\u8fde\u63a5\u3002\u4fee\u6539\u7aef\u53e3\u540e\uff0c\u767b\u5f55\u547d\u4ee4\u9700\u8981\u52a0\u4e0a -p \u53c2\u6570\uff0c\u4f8b\u5982&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">ssh -p 2222 jmeter@192.168.1.100<\/span><\/code><span leaf=\"\">\u3002<\/span><\/p>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-weight: bold;\">2.3.4 \u5b89\u88c5\u5e38\u7528\u5de5\u5177<\/span><\/span><\/h4>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728\u540e\u7eed\u90e8\u7f72\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u9700\u8981\u4f7f\u7528\u4e00\u4e9b\u5e38\u7528\u7684\u547d\u4ee4\u884c\u5de5\u5177\u3002\u5efa\u8bae\u63d0\u524d\u5b89\u88c5\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo apt install -y vim wget curl unzip net-tools htop git build-essential<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5404\u5de5\u5177\u7528\u9014\u8bf4\u660e\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">vim<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u6587\u672c\u7f16\u8f91\u5668\uff0c\u7528\u4e8e\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">wget \/ curl<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u7528\u4e8e\u4e0b\u8f7d\u6587\u4ef6\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">unzip<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u7528\u4e8e\u89e3\u538b zip \u6587\u4ef6\uff08JMeter \u53d1\u5e03\u5305\u4e3a zip \u683c\u5f0f\uff09\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">net-tools<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u63d0\u4f9b ifconfig\u3001netstat \u7b49\u7f51\u7edc\u5de5\u5177\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">htop<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u4ea4\u4e92\u5f0f\u8fdb\u7a0b\u67e5\u770b\u5668\uff0c\u65b9\u4fbf\u76d1\u63a7\u7cfb\u7edf\u8d44\u6e90\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">git<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u7248\u672c\u63a7\u5236\u5de5\u5177\uff0c\u7528\u4e8e\u62c9\u53d6\u4ee3\u7801\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">build-essential<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u7f16\u8bd1\u5de5\u5177\u94fe\uff0c\u67d0\u4e9b\u8f6f\u4ef6\u4f9d\u8d56\u65f6\u9700\u8981\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-weight: bold;\">2.3.5 \u914d\u7f6e\u65f6\u533a\u548c\u65f6\u95f4\u540c\u6b65<\/span><\/span><\/h4>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6d4b\u8bd5\u5e73\u53f0\u4e2d\u7684\u65e5\u5fd7\u3001\u62a5\u544a\u548c\u8c03\u5ea6\u4efb\u52a1\u90fd\u4f9d\u8d56\u51c6\u786e\u7684\u65f6\u95f4\u3002\u5efa\u8bae\u5c06\u670d\u52a1\u5668\u65f6\u533a\u8bbe\u7f6e\u4e3a\u4e9a\u6d32\/\u4e0a\u6d77\uff0c\u5e76\u542f\u7528\u65f6\u95f4\u540c\u6b65\u670d\u52a1\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo timedatectl set-timezone Asia\/Shanghai<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo timedatectl set-ntp true<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">timedatectl status<\/span><\/code><\/pre>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-weight: bold;\">2.3.6 \u521b\u5efa\u4e13\u7528\u8fd0\u884c\u7528\u6237<\/span><\/span><\/h4>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4e3a\u4e86\u5b89\u5168\u8d77\u89c1\uff0c\u5efa\u8bae\u4e3a\u6d4b\u8bd5\u5e73\u53f0\u521b\u5efa\u4e00\u4e2a\u4e13\u7528\u7684\u8fd0\u884c\u7528\u6237\uff0c\u907f\u514d\u4f7f\u7528 root \u7528\u6237\u90e8\u7f72\u5e94\u7528\u3002\u8fd9\u4e2a\u7528\u6237\u53ea\u62e5\u6709\u5fc5\u8981\u7684\u6743\u9650\uff0c\u964d\u4f4e\u6f5c\u5728\u98ce\u9669\u3002<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo useradd -m -s \/bin\/bash jmeter-app<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo passwd jmeter-app<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo usermod -aG sudo jmeter-app<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6267\u884c&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">passwd<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u547d\u4ee4\u540e\uff0c\u6309\u63d0\u793a\u8bbe\u7f6e\u7528\u6237\u5bc6\u7801\u3002\u540e\u7eed\u90e8\u7f72\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u5c06\u4e3b\u8981\u4f7f\u7528&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">jmeter-app<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u7528\u6237\u64cd\u4f5c\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">2.4 \u5b89\u88c5\u4e0e\u914d\u7f6e\u9632\u706b\u5899<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u670d\u52a1\u5668\u5b89\u5168\u662f\u90e8\u7f72\u8fc7\u7a0b\u4e2d\u4e0d\u53ef\u5ffd\u89c6\u7684\u73af\u8282\u3002Ubuntu \u9ed8\u8ba4\u4f7f\u7528 ufw\uff08Uncomplicated Firewall\uff09\u4f5c\u4e3a\u9632\u706b\u5899\u7ba1\u7406\u5de5\u5177\u3002\u6211\u4eec\u9700\u8981\u914d\u7f6e\u9632\u706b\u5899\uff0c\u4ec5\u5f00\u653e\u5fc5\u8981\u7684\u7aef\u53e3\u3002<\/span><\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u9996\u5148\uff0c\u542f\u7528 ufw \u5e76\u8bbe\u7f6e\u9ed8\u8ba4\u7b56\u7565\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo ufw default deny incoming<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo ufw default allow outgoing<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo ufw allow 22\/tcp<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo ufw allow 80\/tcp<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo ufw allow 443\/tcp<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo ufw allow 8080\/tcp<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo ufw enable<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u8fd9\u91cc\u5f00\u653e\u7684\u7aef\u53e3\u8bf4\u660e\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">22<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1aSSH \u8fdc\u7a0b\u7ba1\u7406\u7aef\u53e3\uff08\u5982\u679c\u4f60\u4fee\u6539\u4e86 SSH \u7aef\u53e3\uff0c\u8bf7\u653e\u884c\u5bf9\u5e94\u7aef\u53e3\uff09\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">80<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1aHTTP \u7aef\u53e3\uff0cNginx \u53cd\u5411\u4ee3\u7406\u4f7f\u7528\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">443<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1aHTTPS \u7aef\u53e3\uff08\u53ef\u9009\uff0c\u914d\u7f6e SSL \u8bc1\u4e66\u540e\u4f7f\u7528\uff09\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">8080<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u6d4b\u8bd5\u5e73\u53f0\u540e\u7aef\u670d\u52a1\u7aef\u53e3\uff0c\u5f00\u53d1\u8c03\u8bd5\u9636\u6bb5\u4f7f\u7528\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><span leaf=\"\">\u67e5\u770b\u9632\u706b\u5899\u72b6\u6001\uff1a<\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo ufw status verbose<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5b8c\u6210\u4ee5\u4e0a\u57fa\u7840\u914d\u7f6e\u540e\uff0c\u670d\u52a1\u5668\u5df2\u7ecf\u5177\u5907\u90e8\u7f72 JMeter \u6d4b\u8bd5\u5e73\u53f0\u7684\u57fa\u672c\u73af\u5883\u3002\u4e0b\u4e00\u8282\u5c06\u4ecb\u7ecd Java \u8fd0\u884c\u73af\u5883\u7684\u5b89\u88c5\u4e0e\u914d\u7f6e\u3002<\/span><\/span><\/p>\n<p><mpcpc class=\"js_cpc_area res_iframe cpc_iframe\" data-category_id_list=\"1|16|2|21|28|29|3|35|36|37|39|41|42|43|48|5|50|51|58|6|61|62|63|69|7|70|71|72|73|74|75|76|77\" js_editor_cpcad=\"\" src=\"\/cgi-bin\/readtemplate?t=tmpl\/cpc_tmpl#1782123316521\" data-id=\"1782123316521\"><\/mpcpc><\/p>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><br  \/><\/span><\/p>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;font-weight: bold;\">\u4e09\u3001Java \u73af\u5883\u5b89\u88c5\u4e0e\u53d8\u91cf\u914d\u7f6e<\/span><\/span><\/h2>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">Apache JMeter \u662f\u57fa\u4e8e Java \u5f00\u53d1\u7684\u684c\u9762\u5e94\u7528\u7a0b\u5e8f\uff0c\u56e0\u6b64\u8fd0\u884c JMeter \u5fc5\u987b\u4f9d\u8d56 Java \u8fd0\u884c\u73af\u5883\uff08JRE\uff09\u6216 Java \u5f00\u53d1\u5de5\u5177\u5305\uff08JDK\uff09\u3002\u540c\u65f6\uff0c\u6211\u4eec\u7684\u540e\u7aef\u670d\u52a1\u91c7\u7528 Spring Boot \u6846\u67b6\u5f00\u53d1\uff0c\u4e5f\u9700\u8981 JDK \u6765\u7f16\u8bd1\u548c\u8fd0\u884c\u3002\u56e0\u6b64\uff0c\u5b89\u88c5\u548c\u914d\u7f6e Java \u73af\u5883\u662f\u90e8\u7f72\u6d4b\u8bd5\u5e73\u53f0\u7684\u5173\u952e\u6b65\u9aa4\u4e4b\u4e00\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">3.1 Java \u7248\u672c\u9009\u62e9<\/span><\/span><\/h3>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">Apache JMeter 5.6.x \u5b98\u65b9\u652f\u6301 Java 8\u3001Java 11\u3001Java 17 \u548c Java 21\u3002\u4e3a\u4e86\u4fdd\u8bc1\u517c\u5bb9\u6027\u548c\u6027\u80fd\uff0c\u63a8\u8350\u4f7f\u7528 Java 17 \u6216 Java 21\u3002\u672c\u6587\u9009\u62e9 OpenJDK 17 \u4f5c\u4e3a\u57fa\u7840 Java \u73af\u5883\uff0c\u56e0\u4e3a Java 17 \u662f\u957f\u671f\u652f\u6301\uff08LTS\uff09\u7248\u672c\uff0c\u65e2\u7a33\u5b9a\u53c8\u62e5\u6709\u8f83\u597d\u7684\u6027\u80fd\u8868\u73b0\uff0c\u4e14\u4e0e Spring Boot 3.x \u5b8c\u7f8e\u517c\u5bb9\u3002<\/span><\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728 Ubuntu \u7cfb\u7edf\u4e2d\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e24\u79cd\u65b9\u5f0f\u5b89\u88c5 Java\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u901a\u8fc7 apt \u5b89\u88c5 OpenJDK<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u7b80\u5355\u5feb\u6377\uff0c\u9002\u5408\u5927\u591a\u6570\u573a\u666f\uff0c\u4f46\u7248\u672c\u53ef\u80fd\u4e0d\u662f\u6700\u65b0\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u624b\u52a8\u4e0b\u8f7d Oracle JDK \u6216 Adoptium Eclipse Temurin<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u53ef\u4ee5\u5b89\u88c5\u7279\u5b9a\u7248\u672c\uff0c\u9002\u5408\u5bf9\u7248\u672c\u6709\u4e25\u683c\u8981\u6c42\u7684\u573a\u666f\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u672c\u6587\u91c7\u7528 apt \u65b9\u5f0f\u5b89\u88c5 OpenJDK 17\uff0c\u8fd9\u79cd\u65b9\u5f0f\u6700\u7a33\u5b9a\uff0c\u4e5f\u6700\u5bb9\u6613\u7ef4\u62a4\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">3.2 \u5b89\u88c5 OpenJDK 17<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u9996\u5148\uff0c\u66f4\u65b0\u8f6f\u4ef6\u5305\u5217\u8868\uff0c\u7136\u540e\u5b89\u88c5 OpenJDK 17\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo apt update<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo apt install -y openjdk-17-jdk<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5b89\u88c5\u8fc7\u7a0b\u53ef\u80fd\u9700\u8981\u51e0\u5206\u949f\uff0c\u5177\u4f53\u53d6\u51b3\u4e8e\u7f51\u7edc\u901f\u5ea6\u3002\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u9a8c\u8bc1 Java \u662f\u5426\u5b89\u88c5\u6210\u529f\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">java -version<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">javac -version<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6b63\u5e38\u8f93\u51fa\u5e94\u7c7b\u4f3c\u5982\u4e0b\u5185\u5bb9\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">openjdk version \"17.0.8\" 2023-07-18<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">OpenJDK Runtime Environment (build 17.0.8+7-Ubuntu-122.04.2)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">OpenJDK 64-Bit Server VM (build 17.0.8+7-Ubuntu-122.04.2, mixed mode, sharing)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">javac 17.0.8<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u7cfb\u7edf\u4e2d\u540c\u65f6\u5b89\u88c5\u4e86\u591a\u4e2a Java \u7248\u672c\uff0c\u53ef\u4ee5\u4f7f\u7528&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">update-alternatives<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u547d\u4ee4\u5207\u6362\u9ed8\u8ba4\u7684 Java \u7248\u672c\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo update-alternatives --config java<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728\u5f39\u51fa\u7684\u5217\u8868\u4e2d\u9009\u62e9 Java 17 \u5bf9\u5e94\u7684\u7f16\u53f7\u5373\u53ef\u3002\u5efa\u8bae\u5c06 Java 17 \u8bbe\u7f6e\u4e3a\u9ed8\u8ba4\u7248\u672c\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">3.3 \u914d\u7f6e JAVA_HOME \u73af\u5883\u53d8\u91cf<\/span><\/span><\/h3>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\">\u5f88\u591a Java \u5e94\u7528\uff08\u5305\u62ec JMeter \u548c Maven\uff09\u5728\u8fd0\u884c\u65f6\u9700\u8981\u77e5\u9053 JDK \u7684\u5b89\u88c5\u8def\u5f84\uff0c\u4e5f\u5c31\u662f JAVA_HOME \u73af\u5883\u53d8\u91cf\u3002\u6b63\u786e\u914d\u7f6e JAVA_HOME \u53ef\u4ee5\u907f\u514d\u540e\u7eed\u51fa\u73b0\u5404\u79cd\u627e\u4e0d\u5230 Java \u6216\u8def\u5f84\u9519\u8bef\u7684\u95ee\u9898\u3002<\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u9996\u5148\uff0c\u627e\u5230 OpenJDK 17 \u7684\u5b89\u88c5\u8def\u5f84\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">readlink -f $(which java)<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u8f93\u51fa\u901a\u5e38\u7c7b\u4f3c\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">\/usr\/lib\/jvm\/java-17-openjdk-amd64\/bin\/java<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u56e0\u6b64\uff0c<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">JAVA_HOME<\/span><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u5e94\u8bbe\u7f6e\u4e3a&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">\/usr\/lib\/jvm\/java-17-openjdk-amd64<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\uff08\u53bb\u6389\u672b\u5c3e\u7684&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">\/bin\/java<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\uff09\u3002<\/span><\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u63a5\u4e0b\u6765\uff0c\u7f16\u8f91\u5168\u5c40\u73af\u5883\u53d8\u91cf\u914d\u7f6e\u6587\u4ef6\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo nano \/etc\/profile.d\/jdk.sh<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">export JAVA_HOME=\/usr\/lib\/jvm\/java-17-openjdk-amd64<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">export PATH=$JAVA_HOME\/bin:$PATH<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">export CLASSPATH=.:$JAVA_HOME\/lib<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4fdd\u5b58\u5e76\u9000\u51fa\u3002\u7136\u540e\u4f7f\u73af\u5883\u53d8\u91cf\u751f\u6548\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">source \/etc\/profile.d\/jdk.sh<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u9a8c\u8bc1 JAVA_HOME \u662f\u5426\u914d\u7f6e\u6210\u529f\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">echo $JAVA_HOME<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">$JAVA_HOME\/bin\/java -version<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u8f93\u51fa\u6b63\u786e\u7684\u8def\u5f84\u548c Java \u7248\u672c\u4fe1\u606f\uff0c\u8bf4\u660e\u914d\u7f6e\u6210\u529f\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">3.4 \u5b89\u88c5 Maven \u6784\u5efa\u5de5\u5177<\/span><\/span><\/h3>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u7531\u4e8e\u540e\u7aef\u670d\u52a1\u4f7f\u7528 Spring Boot \u5f00\u53d1\uff0c\u9700\u8981\u901a\u8fc7 Maven \u8fdb\u884c\u9879\u76ee\u6784\u5efa\u3002Maven \u662f Java \u9879\u76ee\u6700\u5e38\u7528\u7684\u6784\u5efa\u5de5\u5177\u4e4b\u4e00\uff0c\u80fd\u591f\u7ba1\u7406\u4f9d\u8d56\u3001\u7f16\u8bd1\u4ee3\u7801\u3001\u6253\u5305\u5e94\u7528\u3002<\/span><\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u901a\u8fc7 apt \u5b89\u88c5 Maven\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo apt install -y maven<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u9a8c\u8bc1\u5b89\u88c5\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">mvn -version<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u8f93\u51fa\u793a\u4f8b\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">Apache Maven 3.8.7<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">Maven home: \/usr\/share\/maven<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">Java version: 17.0.8, vendor: Ubuntu, runtime: \/usr\/lib\/jvm\/java-17-openjdk-amd64<\/span><\/code><\/pre>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u9700\u8981\u4f7f\u7528\u7279\u5b9a\u7248\u672c\u7684 Maven\uff0c\u4e5f\u53ef\u4ee5\u4ece Apache \u5b98\u7f51\u4e0b\u8f7d\u4e8c\u8fdb\u5236\u5305\u5e76\u624b\u52a8\u914d\u7f6e\u73af\u5883\u53d8\u91cf\u3002\u4e0d\u8fc7\u5bf9\u4e8e\u6211\u4eec\u7684\u9879\u76ee\uff0capt \u5b89\u88c5\u7684\u7248\u672c\u5df2\u7ecf\u8db3\u591f\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">3.5 Java \u73af\u5883\u914d\u7f6e\u68c0\u67e5\u6e05\u5355<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5b8c\u6210\u4ee5\u4e0a\u6b65\u9aa4\u540e\uff0c\u5efa\u8bae\u518d\u6b21\u786e\u8ba4\u4ee5\u4e0b\u73af\u5883\u53d8\u91cf\u548c\u547d\u4ee4\u662f\u5426\u6b63\u5e38\uff1a<\/span><\/span><\/p>\n<table style=\"box-sizing: border-box;margin: 20px 0px;padding: 0px;width: 860px;border-collapse: collapse;background: var(--card-bg);border-radius: 8px;overflow: hidden;box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\">\n<thead>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<th style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);background: var(--primary-color);color: white;font-weight: 600;\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: rgb(123, 12, 0);\">\u68c0\u67e5\u9879<\/span><\/span><\/section>\n<\/th>\n<th style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);background: var(--primary-color);color: white;font-weight: 600;\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: rgb(123, 12, 0);\">\u547d\u4ee4<\/span><\/span><\/section>\n<\/th>\n<th style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);background: var(--primary-color);color: white;font-weight: 600;\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: rgb(123, 12, 0);\">\u9884\u671f\u7ed3\u679c<\/span><\/span><\/section>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">Java \u7248\u672c<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">java -version<\/span><\/code><\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u663e\u793a OpenJDK 17<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">Java \u7f16\u8bd1\u5668<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">javac -version<\/span><\/code><\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u663e\u793a 17.x<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">JAVA_HOME<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">echo $JAVA_HOME<\/span><\/code><\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\/usr\/lib\/jvm\/java-17-openjdk-amd64<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">Maven \u7248\u672c<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">mvn -version<\/span><\/code><\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u663e\u793a Apache Maven 3.x<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">Java \u53ef\u6267\u884c\u8def\u5f84<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">which java<\/span><\/code><\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u6307\u5411 JAVA_HOME\/bin\/java<\/span><\/section>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u6240\u6709\u68c0\u67e5\u9879\u90fd\u901a\u8fc7\uff0c\u8bf4\u660e Java \u73af\u5883\u5df2\u7ecf\u51c6\u5907\u5c31\u7eea\u3002\u4e0b\u4e00\u8282\u5c06\u5b89\u88c5 Apache JMeter \u5e76\u8fdb\u884c\u914d\u7f6e\u3002<\/span><\/span><\/p>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><br  \/><\/span><\/p>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;font-weight: bold;\">\u56db\u3001JMeter \u5b89\u88c5\u3001\u914d\u7f6e\u4e0e\u63d2\u4ef6\u6269\u5c55<\/span><\/span><\/h2>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">Apache JMeter \u662f\u4e00\u4e2a\u7eaf Java \u7f16\u5199\u7684\u684c\u9762\u5e94\u7528\u7a0b\u5e8f\uff0c\u7528\u4e8e\u6027\u80fd\u6d4b\u8bd5\u548c\u529f\u80fd\u6d4b\u8bd5\u3002\u5b83\u53ef\u4ee5\u6a21\u62df\u5927\u91cf\u7528\u6237\u5bf9\u670d\u52a1\u5668\u3001\u7f51\u7edc\u6216\u5bf9\u8c61\u8fdb\u884c\u538b\u529b\u6d4b\u8bd5\uff0c\u652f\u6301 HTTP\/HTTPS\u3001FTP\u3001JDBC\u3001JMS\u3001SOAP\u3001REST \u7b49\u591a\u79cd\u534f\u8bae\u3002\u672c\u8282\u5c06\u4ecb\u7ecd\u5982\u4f55\u5728 Ubuntu 26.04 Server \u4e0a\u5b89\u88c5\u548c\u914d\u7f6e JMeter\uff0c\u5e76\u5b89\u88c5\u5e38\u7528\u63d2\u4ef6\u6269\u5c55\u5176\u529f\u80fd\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">4.1 JMeter \u7248\u672c\u9009\u62e9<\/span><\/span><\/h3>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u672c\u6587\u9009\u62e9 Apache JMeter 5.6.3 \u4f5c\u4e3a\u6d4b\u8bd5\u5f15\u64ce\u3002\u8fd9\u662f\u76ee\u524d\u8f83\u4e3a\u7a33\u5b9a\u7684\u7248\u672c\uff0c\u652f\u6301 Java 17\uff0c\u5177\u6709\u4e30\u5bcc\u7684\u63d2\u4ef6\u751f\u6001\uff0c\u5e76\u4e14\u5bf9\u73b0\u4ee3 Web \u5e94\u7528\u6d4b\u8bd5\u6709\u826f\u597d\u7684\u652f\u6301\u3002\u5efa\u8bae\u4ece JMeter \u5b98\u65b9\u7f51\u7ad9\u4e0b\u8f7d\u4e8c\u8fdb\u5236\u53d1\u5e03\u5305\uff0c\u907f\u514d\u4f7f\u7528\u7b2c\u4e09\u65b9\u4fee\u6539\u7248\u3002<\/span><\/span><\/p>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><span leaf=\"\">\u8bbf\u95ee Apache JMeter \u4e0b\u8f7d\u9875\u9762\uff1ahttps:\/\/jmeter.apache.org\/download_jmeter.cgi\uff0c\u627e\u5230 Binaries \u90e8\u5206\u7684&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">apache-jmeter-5.6.3.zip<\/span><\/code><span leaf=\"\">&nbsp;\u6216&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">apache-jmeter-5.6.3.tgz<\/span><\/code><span leaf=\"\">&nbsp;\u4e0b\u8f7d\u94fe\u63a5\u3002<\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">4.2 \u4e0b\u8f7d\u4e0e\u89e3\u538b JMeter<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4ee5 jmeter-app \u7528\u6237\u767b\u5f55\u670d\u52a1\u5668\uff0c\u6216\u4f7f\u7528\u666e\u901a\u7528\u6237\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u3002\u6211\u4eec\u5c06 JMeter \u5b89\u88c5\u5230<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">\/opt\/jmeter<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u76ee\u5f55\uff0c\u8fd9\u662f\u4e00\u4e2a\u5e38\u7528\u7684\u7cfb\u7edf\u7ea7\u8f6f\u4ef6\u5b89\u88c5\u76ee\u5f55\u3002<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">cd \/tmp<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">wget https:\/\/dlcdn.apache.org\/\/jmeter\/binaries\/apache-jmeter-5.6.3.zip<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"># \u5982\u679c\u5b98\u65b9\u955c\u50cf\u4e0b\u8f7d\u8f83\u6162\uff0c\u53ef\u4ee5\u66ff\u6362\u4e3a\u56fd\u5185\u955c\u50cf\u6216 GitHub \u52a0\u901f\u5730\u5740<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"># \u4f8b\u5982\u4f7f\u7528\u6e05\u534e\u955c\u50cf\uff1a<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"># wget https:\/\/mirrors.tuna.tsinghua.edu.cn\/apache\/jmeter\/binaries\/apache-jmeter-5.6.3.zip<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4e0b\u8f7d\u5b8c\u6210\u540e\uff0c\u89e3\u538b\u5e76\u79fb\u52a8\u5230\u5b89\u88c5\u76ee\u5f55\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">unzip apache-jmeter-5.6.3.zip<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo mv apache-jmeter-5.6.3 \/opt\/jmeter<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo chown -R jmeter-app:jmeter-app \/opt\/jmeter<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u8fd9\u91cc\u4f7f\u7528&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">chown<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u5c06\u76ee\u5f55\u6240\u6709\u8005\u6539\u4e3a jmeter-app \u7528\u6237\uff0c\u786e\u4fdd\u540e\u7eed\u8fd0\u884c\u6d4b\u8bd5\u65f6\u8be5\u7528\u6237\u5bf9 JMeter \u76ee\u5f55\u6709\u8bfb\u5199\u6743\u9650\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">4.3 \u914d\u7f6e JMeter \u73af\u5883\u53d8\u91cf<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4e3a\u4e86\u65b9\u4fbf\u5728\u547d\u4ee4\u884c\u4e2d\u76f4\u63a5\u8c03\u7528 JMeter\uff0c\u6211\u4eec\u9700\u8981\u914d\u7f6e JMeter \u7684\u73af\u5883\u53d8\u91cf\u3002\u7f16\u8f91&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">\/etc\/profile.d\/jmeter.sh<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u6587\u4ef6\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo nano \/etc\/profile.d\/jmeter.sh<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">export JMETER_HOME=\/opt\/jmeter<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">export PATH=$JMETER_HOME\/bin:$PATH<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4f7f\u73af\u5883\u53d8\u91cf\u751f\u6548\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">source \/etc\/profile.d\/jmeter.sh<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u9a8c\u8bc1 JMeter \u5b89\u88c5\u662f\u5426\u6210\u529f\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">jmeter -v<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6b63\u5e38\u8f93\u51fa\u5e94\u5305\u542b JMeter \u7248\u672c\u4fe1\u606f\uff0c\u4f8b\u5982\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">Copyright (c) 1999-2024 The Apache Software Foundation<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">Version 5.6.3<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">4.4 \u4fee\u6539 JMeter \u5185\u5b58\u914d\u7f6e<\/span><\/span><\/h3>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">JMeter \u5728\u8fd0\u884c\u5927\u89c4\u6a21\u5e76\u53d1\u6d4b\u8bd5\u65f6\u9700\u8981\u8f83\u5927\u7684\u5185\u5b58\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cJMeter \u7684\u5806\u5185\u5b58\u8bbe\u7f6e\u8f83\u5c0f\uff0c\u53ef\u80fd\u65e0\u6cd5\u6ee1\u8db3\u9ad8\u5e76\u53d1\u6d4b\u8bd5\u9700\u6c42\u3002\u6211\u4eec\u9700\u8981\u4fee\u6539 JMeter \u7684\u542f\u52a8\u811a\u672c\uff0c\u589e\u5927\u5185\u5b58\u5206\u914d\u3002<\/span><\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u7f16\u8f91&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">\/opt\/jmeter\/bin\/jmeter<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u6587\u4ef6\uff08Linux \u542f\u52a8\u811a\u672c\uff09\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo nano \/opt\/jmeter\/bin\/jmeter<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u627e\u5230\u4ee5\u4e0b\u914d\u7f6e\uff08\u5927\u7ea6\u5728\u6587\u4ef6\u5f00\u5934\uff09\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">HEAP=\"-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m\"<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6839\u636e\u670d\u52a1\u5668\u5185\u5b58\u5927\u5c0f\u8fdb\u884c\u4fee\u6539\u3002\u4f8b\u5982\uff0c\u5982\u679c\u670d\u52a1\u5668\u6709 8GB \u5185\u5b58\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u4e3a\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">HEAP=\"-Xms2g -Xmx4g -XX:MaxMetaspaceSize=512m\"<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5176\u4e2d&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">-Xms<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u662f\u521d\u59cb\u5806\u5185\u5b58\uff0c<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">-Xmx<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u662f\u6700\u5927\u5806\u5185\u5b58\uff0c<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">-XX:MaxMetaspaceSize<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u662f\u6700\u5927\u5143\u7a7a\u95f4\u5927\u5c0f\u3002\u5efa\u8bae\u6839\u636e\u5b9e\u9645\u6d4b\u8bd5\u9700\u6c42\u548c\u670d\u52a1\u5668\u7684\u7269\u7406\u5185\u5b58\u8fdb\u884c\u8c03\u6574\uff0c\u4e0d\u8981\u5c06&nbsp;<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">Xmx<\/span><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u8bbe\u7f6e\u8fc7\u5927\uff0c\u5426\u5219\u4f1a\u5bfc\u81f4\u7cfb\u7edf\u9891\u7e41\u8fdb\u884c\u5783\u573e\u56de\u6536\u6216\u5185\u5b58\u4ea4\u6362\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">4.5 \u5b89\u88c5 JMeter \u63d2\u4ef6\u7ba1\u7406\u5668<\/span><\/span><\/h3>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">JMeter \u63d2\u4ef6\u7ba1\u7406\u5668\uff08JMeter Plugins Manager\uff09\u662f\u6269\u5c55 JMeter \u529f\u80fd\u7684\u5fc5\u5907\u5de5\u5177\u3002\u901a\u8fc7\u5b83\uff0c\u6211\u4eec\u53ef\u4ee5\u65b9\u4fbf\u5730\u5b89\u88c5\u5404\u79cd\u56fe\u8868\u63d2\u4ef6\u3001\u534f\u8bae\u63d2\u4ef6\u3001\u91c7\u6837\u5668\u63d2\u4ef6\u7b49\u3002\u6700\u5e38\u7528\u7684\u63d2\u4ef6\u5305\u62ec\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">Custom Thread Groups<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u63d0\u4f9b\u66f4\u7075\u6d3b\u7684\u7ebf\u7a0b\u7ec4\uff0c\u5982 Stepping Thread Group\u3001Ultimate Thread Group\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">3 Basic Graphs<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u63d0\u4f9b\u54cd\u5e94\u65f6\u95f4\u3001TPS\u3001\u6d3b\u8dc3\u7ebf\u7a0b\u6570\u7b49\u57fa\u7840\u56fe\u8868\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">PerfMon Metrics Collector<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u7528\u4e8e\u76d1\u63a7\u670d\u52a1\u5668\u6027\u80fd\u6307\u6807\uff08CPU\u3001\u5185\u5b58\u3001\u78c1\u76d8\u3001\u7f51\u7edc\uff09\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">JSON Plugins<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u7528\u4e8e\u5904\u7406 JSON \u54cd\u5e94\u6570\u636e\u7684\u63d0\u53d6\u548c\u65ad\u8a00\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">WebSocket Sampler<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u7528\u4e8e WebSocket \u534f\u8bae\u6d4b\u8bd5\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5b89\u88c5\u63d2\u4ef6\u7ba1\u7406\u5668\u7684\u65b9\u6cd5\u5f88\u7b80\u5355\uff1a\u4ece JMeter Plugins \u5b98\u7f51\u4e0b\u8f7d<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">jmeter-plugins-manager-1.9.jar<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\uff0c\u5c06\u5176\u653e\u5230 JMeter \u7684 lib\/ext \u76ee\u5f55\u4e0b\u5373\u53ef\u3002<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">cd \/tmp<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">wget https:\/\/jmeter-plugins.org\/get\/ -O jmeter-plugins-manager.jar<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo mv jmeter-plugins-manager.jar \/opt\/jmeter\/lib\/ext\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo chown jmeter-app:jmeter-app \/opt\/jmeter\/lib\/ext\/jmeter-plugins-manager.jar<\/span><\/code><\/pre>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u91cd\u65b0\u542f\u52a8 JMeter GUI \u65f6\uff0c\u83dc\u5355\u680f\u4f1a\u51fa\u73b0 &#8220;Plugins&#8221; \u83dc\u5355\u3002\u7531\u4e8e\u6211\u4eec\u5728\u670d\u52a1\u5668\u4e0a\u8fd0\u884c\uff0c\u901a\u5e38\u4f7f\u7528 CLI \u6a21\u5f0f\uff0c\u56e0\u6b64\u63d2\u4ef6\u7ba1\u7406\u5668\u4e3b\u8981\u7528\u4e8e\u5b89\u88c5\u5fc5\u8981\u7684 jar \u6587\u4ef6\u5230 lib\/ext \u76ee\u5f55\u3002\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u5728 GUI \u73af\u5883\uff08\u672c\u5730\u5f00\u53d1\u673a\uff09\u4e2d\u9009\u62e9\u9700\u8981\u7684\u63d2\u4ef6\uff0c\u518d\u5c06\u751f\u6210\u7684\u4f9d\u8d56\u5305\u4e0a\u4f20\u5230\u670d\u52a1\u5668\u7684<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">&nbsp;lib\/ext<\/span><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u76ee\u5f55\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">4.6 \u9a8c\u8bc1 JMeter \u547d\u4ee4\u884c\u6267\u884c<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728\u670d\u52a1\u5668\u73af\u5883\u4e2d\uff0c\u6211\u4eec\u901a\u5e38\u4f7f\u7528 JMeter \u7684\u975e GUI \u6a21\u5f0f\uff08CLI \u6a21\u5f0f\uff09\u6267\u884c\u6d4b\u8bd5\uff0c\u56e0\u4e3a GUI \u6a21\u5f0f\u4f1a\u6d88\u8017\u5927\u91cf\u8d44\u6e90\uff0c\u4e0d\u9002\u5408\u9ad8\u5e76\u53d1\u6d4b\u8bd5\u3002\u975e GUI \u6a21\u5f0f\u7684\u547d\u4ee4\u683c\u5f0f\u5982\u4e0b\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">jmeter -n -t \/path\/to\/test-plan.jmx -l \/path\/to\/results.jtl -e -o \/path\/to\/report<\/span><\/code><\/pre>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><span leaf=\"\">\u53c2\u6570\u8bf4\u660e\uff1a<\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">-n<\/span><\/code><br \/>\n<section><span leaf=\"\">\uff1a\u975e GUI \u6a21\u5f0f\u8fd0\u884c\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">-t<\/span><\/code><br \/>\n<section><span leaf=\"\">\uff1a\u6307\u5b9a\u6d4b\u8bd5\u8ba1\u5212\u6587\u4ef6\uff08.jmx\uff09\u8def\u5f84\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">-l<\/span><\/code><br \/>\n<section><span leaf=\"\">\uff1a\u6307\u5b9a\u7ed3\u679c\u65e5\u5fd7\u6587\u4ef6\uff08.jtl\uff09\u8def\u5f84\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">-e<\/span><\/code><br \/>\n<section><span leaf=\"\">\uff1a\u751f\u6210 HTML \u62a5\u544a\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">-o<\/span><\/code><br \/>\n<section><span leaf=\"\">\uff1a\u6307\u5b9a HTML \u62a5\u544a\u8f93\u51fa\u76ee\u5f55\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4e3a\u4e86\u9a8c\u8bc1 JMeter \u662f\u5426\u6b63\u5e38\u5de5\u4f5c\uff0c\u6211\u4eec\u53ef\u4ee5\u521b\u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u6d4b\u8bd5\u8ba1\u5212\u3002\u9996\u5148\uff0c\u5728\u672c\u5730 JMeter GUI \u4e2d\u521b\u5efa\u4e00\u4e2a HTTP \u8bf7\u6c42\u6d4b\u8bd5\u8ba1\u5212\uff0c\u4fdd\u5b58\u4e3a<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">\/opt\/jmeter\/test-samples\/demo.jmx<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u3002\u5982\u679c\u6682\u65f6\u6ca1\u6709\u6d4b\u8bd5\u8ba1\u5212\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u68c0\u67e5 JMeter \u662f\u5426\u80fd\u6b63\u5e38\u542f\u52a8\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">jmeter -n -t \/opt\/jmeter\/extras\/Test.jmx -l \/tmp\/test.jtl -e -o \/tmp\/test-report<\/span><\/code><\/pre>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><span leaf=\"\">\u5982\u679c\u770b\u5230\u7c7b\u4f3c &#8220;summary = 1 in 00:00:01 = 0.9\/s Avg: 5 Min: 5 Max: 5 Err: 0 (0.00%)&#8221; \u7684\u8f93\u51fa\uff0c\u8bf4\u660e JMeter \u5b89\u88c5\u6210\u529f\u5e76\u80fd\u6b63\u5e38\u6267\u884c\u6d4b\u8bd5\u3002<\/span><\/p>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u63d0\u793a\uff1a<\/span><\/strong><span leaf=\"\">\u975e GUI \u6a21\u5f0f\u4e0b\uff0cJMeter \u65e0\u6cd5\u76f4\u63a5\u5c55\u793a GUI \u4e2d\u7684\u63d2\u4ef6\u56fe\u8868\u3002\u56e0\u6b64\uff0c\u5982\u679c\u9700\u8981\u4f7f\u7528 PerfMon \u7b49\u76d1\u63a7\u63d2\u4ef6\uff0c\u5efa\u8bae\u901a\u8fc7 JMeter \u7684\u540e\u7aef\u76d1\u542c\u5668\uff08Backend Listener\uff09\u5c06\u6570\u636e\u53d1\u9001\u5230 InfluxDB + Grafana\uff0c\u6216\u8005\u4f7f\u7528 JMeter \u751f\u6210\u7684 HTML \u62a5\u544a\u67e5\u770b\u7ed3\u679c\u3002<\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">4.7 JMeter \u76ee\u5f55\u7ed3\u6784\u8bf4\u660e<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4e86\u89e3 JMeter \u7684\u76ee\u5f55\u7ed3\u6784\u6709\u52a9\u4e8e\u540e\u7eed\u8fdb\u884c\u914d\u7f6e\u548c\u6269\u5c55\u3002\u4e3b\u8981\u76ee\u5f55\u8bf4\u660e\u5982\u4e0b\uff1a<\/span><\/span><\/p>\n<table style=\"box-sizing: border-box;margin: 20px 0px;padding: 0px;width: 860px;border-collapse: collapse;background: var(--card-bg);border-radius: 8px;overflow: hidden;box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\">\n<thead>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<th style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);background: var(--primary-color);color: white;font-weight: 600;\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: rgb(123, 12, 0);\">\u76ee\u5f55<\/span><\/span><\/section>\n<\/th>\n<th style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);background: var(--primary-color);color: white;font-weight: 600;\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: rgb(123, 12, 0);\">\u8bf4\u660e<\/span><\/span><\/section>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">bin\/<\/span><\/code><\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u5b58\u653e JMeter \u542f\u52a8\u811a\u672c\u3001\u914d\u7f6e\u6587\u4ef6\u3001\u793a\u4f8b\u6d4b\u8bd5\u8ba1\u5212\u3002<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">lib\/<\/span><\/code><\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u5b58\u653e JMeter \u8fd0\u884c\u6240\u9700\u7684\u6838\u5fc3\u5e93\u548c\u4f9d\u8d56 jar\u3002<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">lib\/ext\/<\/span><\/code><\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u5b58\u653e JMeter \u63d2\u4ef6 jar \u6587\u4ef6\u3002<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">extras\/<\/span><\/code><\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u5b58\u653e\u4e00\u4e9b\u989d\u5916\u5de5\u5177\u548c\u793a\u4f8b\u811a\u672c\u3002<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">printable_docs\/<\/span><\/code><\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">JMeter \u5b98\u65b9\u6587\u6863\u3002<\/span><\/section>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><br  \/><\/span><\/h2>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><br  \/><\/span><\/h2>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;font-weight: bold;\">\u4e94\u3001\u5e73\u53f0\u6574\u4f53\u67b6\u6784\u8bbe\u8ba1\u4e0e\u6280\u672f\u9009\u578b<\/span><\/span><\/h2>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728\u6b63\u5f0f\u5f00\u59cb\u7f16\u5199\u4ee3\u7801\u4e4b\u524d\uff0c\u6211\u4eec\u9700\u8981\u5bf9\u6574\u4e2a\u6d4b\u8bd5\u5e73\u53f0\u7684\u67b6\u6784\u6709\u4e00\u4e2a\u6e05\u6670\u7684\u8ba4\u8bc6\u3002\u4e00\u4e2a\u826f\u597d\u7684\u67b6\u6784\u8bbe\u8ba1\u80fd\u591f\u6307\u5bfc\u540e\u7eed\u7684\u5f00\u53d1\u548c\u90e8\u7f72\uff0c\u786e\u4fdd\u7cfb\u7edf\u5177\u6709\u826f\u597d\u7684\u53ef\u6269\u5c55\u6027\u3001\u53ef\u7ef4\u62a4\u6027\u548c\u7a33\u5b9a\u6027\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">5.1 \u4e1a\u52a1\u9700\u6c42\u5206\u6790<\/span><\/span><\/h3>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6211\u4eec\u6784\u5efa\u7684 JMeter \u81ea\u52a8\u5316\u6d4b\u8bd5\u670d\u52a1\u5e73\u53f0\uff0c\u6838\u5fc3\u76ee\u6807\u662f\u8ba9\u6d4b\u8bd5\u4eba\u5458\u80fd\u591f\u65b9\u4fbf\u5730\u901a\u8fc7 Web \u754c\u9762\u5bf9\u6d4b\u8bd5\u8ba1\u5212\u8fdb\u884c\u7ba1\u7406\u3001\u6267\u884c\u548c\u7ed3\u679c\u67e5\u770b\u3002\u5177\u4f53\u4e1a\u52a1\u9700\u6c42\u5982\u4e0b\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u6d4b\u8bd5\u8ba1\u5212\u7ba1\u7406<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u652f\u6301\u4e0a\u4f20\u3001\u4e0b\u8f7d\u3001\u7f16\u8f91\u3001\u5220\u9664 JMeter \u6d4b\u8bd5\u8ba1\u5212\u6587\u4ef6\uff08.jmx\uff09\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u6d4b\u8bd5\u4efb\u52a1\u6267\u884c<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u9009\u62e9\u6d4b\u8bd5\u8ba1\u5212\uff0c\u914d\u7f6e\u5e76\u53d1\u6570\u3001\u6301\u7eed\u65f6\u95f4\u7b49\u53c2\u6570\uff0c\u4e00\u952e\u542f\u52a8\u6d4b\u8bd5\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u6267\u884c\u72b6\u6001\u76d1\u63a7<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u5b9e\u65f6\u67e5\u770b\u6d4b\u8bd5\u4efb\u52a1\u7684\u8fd0\u884c\u72b6\u6001\u3001\u8fdb\u5ea6\u548c\u65e5\u5fd7\u8f93\u51fa\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u6d4b\u8bd5\u7ed3\u679c\u7ba1\u7406<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u4fdd\u5b58\u6bcf\u6b21\u6d4b\u8bd5\u7684 JTL \u7ed3\u679c\u6587\u4ef6\u548c HTML \u62a5\u544a\uff0c\u652f\u6301\u5386\u53f2\u5bf9\u6bd4\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u6d4b\u8bd5\u62a5\u544a\u67e5\u770b<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u5728 Web \u754c\u9762\u4e2d\u5c55\u793a\u5173\u952e\u6027\u80fd\u6307\u6807\uff0c\u5982\u5e73\u5747\u54cd\u5e94\u65f6\u95f4\u3001\u541e\u5410\u91cf\u3001\u9519\u8bef\u7387\u7b49\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u7528\u6237\u4e0e\u6743\u9650\u7ba1\u7406<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u57fa\u7840\u7684\u7528\u6237\u767b\u5f55\u548c\u6743\u9650\u63a7\u5236\uff0c\u533a\u5206\u7ba1\u7406\u5458\u548c\u666e\u901a\u7528\u6237\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">API \u63a5\u53e3<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u63d0\u4f9b RESTful API\uff0c\u4fbf\u4e8e\u4e0e CI\/CD \u6d41\u6c34\u7ebf\u96c6\u6210\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">5.2 \u6574\u4f53\u67b6\u6784\u8bbe\u8ba1<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u57fa\u4e8e\u4ee5\u4e0a\u9700\u6c42\uff0c\u5e73\u53f0\u91c7\u7528\u524d\u540e\u7aef\u5206\u79bb\u7684\u5fae\u670d\u52a1\u67b6\u6784\u3002\u6574\u4f53\u67b6\u6784\u5982\u4e0b\uff1a<\/span><\/span><\/p>\n<section style=\"text-align: center;\" nodeleaf=\"\">\n<figure class=\"wx-qr-wrap\"><img decoding=\"async\" class=\"rich_pages wxw-img\" data-aistatus=\"1\" data-imgfileid=\"100000408\" data-s=\"300,640\" data-type=\"png\" type=\"block\" src=\"https:\/\/mmbiz.qpic.cn\/mmbiz_png\/BWmfcibGhS1IA6JQwethKKibvlltt6vnUgO4NdGIjEYzG9GMo99geJvUY1QcHl9nYjEo3oDGEVf9xdlo9LJp0yEeEMA6dMMx1ptFKIB1YaeRM\/640?wx_fmt=png&#038;from=appmsg\" \/><figcaption class=\"wx-qr-tip\"><img decoding=\"async\" src=\"https:\/\/www.deartester.com\/wp-content\/uploads\/2026\/09\/wechat-qr.jpg\" alt=\"\u5fae\u4fe1\u516c\u4f17\u53f7\u4e8c\u7ef4\u7801\" loading=\"lazy\"><span>\u56fe\u7247\u5f15\u81ea\u5fae\u4fe1\u516c\u4f17\u53f7\uff0c\u626b\u7801\u5173\u6ce8\u9605\u8bfb\u539f\u6587<\/span><\/figcaption><\/figure>\n<\/section>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><span leaf=\"\"><br  \/><\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u67b6\u6784\u5c42\u6b21\u8bf4\u660e\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u8868\u73b0\u5c42<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u57fa\u4e8e Vue 3 \u5f00\u53d1\u7684\u5355\u9875\u5e94\u7528\uff08SPA\uff09\uff0c\u63d0\u4f9b\u7528\u6237\u4ea4\u4e92\u754c\u9762\u3002\u7528\u6237\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u5e73\u53f0\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u7f51\u5173\u5c42<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1aNginx \u4f5c\u4e3a\u53cd\u5411\u4ee3\u7406\u548c\u9759\u6001\u8d44\u6e90\u670d\u52a1\u5668\uff0c\u5c06\u524d\u7aef\u8bf7\u6c42\u8f6c\u53d1\u5230\u524d\u7aef\u8d44\u6e90\uff0c\u5c06 API \u8bf7\u6c42\u8f6c\u53d1\u5230\u540e\u7aef\u670d\u52a1\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u4e1a\u52a1\u5c42<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1aSpring Boot \u540e\u7aef\u670d\u52a1\uff0c\u5904\u7406\u4e1a\u52a1\u903b\u8f91\u3001\u7528\u6237\u8ba4\u8bc1\u3001\u6d4b\u8bd5\u8ba1\u5212\u7ba1\u7406\u3001\u4efb\u52a1\u8c03\u5ea6\u3001\u7ed3\u679c\u89e3\u6790\u7b49\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u6267\u884c\u5c42<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1aJMeter CLI \u8fdb\u7a0b\uff0c\u7531\u540e\u7aef\u670d\u52a1\u901a\u8fc7 Java \u7684 ProcessBuilder \u542f\u52a8\uff0c\u8d1f\u8d23\u5b9e\u9645\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u6570\u636e\u5c42<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1aMySQL \u6570\u636e\u5e93\u5b58\u50a8\u7528\u6237\u4fe1\u606f\u3001\u6d4b\u8bd5\u8ba1\u5212\u5143\u6570\u636e\u3001\u6d4b\u8bd5\u4efb\u52a1\u8bb0\u5f55\u7b49\uff1b\u6587\u4ef6\u7cfb\u7edf\u5b58\u50a8 JMX \u6587\u4ef6\u3001JTL \u7ed3\u679c\u6587\u4ef6\u548c HTML \u62a5\u544a\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u88ab\u6d4b\u7cfb\u7edf<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u5e73\u53f0\u6d4b\u8bd5\u7684\u76ee\u6807\u7cfb\u7edf\uff0c\u53ef\u4ee5\u662f\u5185\u90e8\u670d\u52a1\u3001\u516c\u7f51 API \u6216\u672c\u5730\u5e94\u7528\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">5.3 \u6280\u672f\u9009\u578b<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6839\u636e\u67b6\u6784\u8bbe\u8ba1\uff0c\u5404\u5c42\u6280\u672f\u9009\u578b\u5982\u4e0b\uff1a<\/span><\/span><\/p>\n<table style=\"box-sizing: border-box;margin: 20px 0px;padding: 0px;width: 860px;border-collapse: collapse;background: var(--card-bg);border-radius: 8px;overflow: hidden;box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\">\n<thead>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<th style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);background: var(--primary-color);color: white;font-weight: 600;\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: rgb(123, 12, 0);\">\u5c42\u6b21<\/span><\/span><\/section>\n<\/th>\n<th style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);background: var(--primary-color);color: white;font-weight: 600;\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: rgb(123, 12, 0);\">\u6280\u672f<\/span><\/span><\/section>\n<\/th>\n<th style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);background: var(--primary-color);color: white;font-weight: 600;\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: rgb(123, 12, 0);\">\u7248\u672c<\/span><\/span><\/section>\n<\/th>\n<th style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);background: var(--primary-color);color: white;font-weight: 600;\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: rgb(123, 12, 0);\">\u9009\u578b\u7406\u7531<\/span><\/span><\/section>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u64cd\u4f5c\u7cfb\u7edf<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">Ubuntu Server<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">26.04 LTS<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u7a33\u5b9a\u3001\u957f\u671f\u652f\u6301\u3001\u793e\u533a\u6d3b\u8dc3\u3002<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">Java \u73af\u5883<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">OpenJDK<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">17<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">LTS \u7248\u672c\uff0c\u4e0e Spring Boot 3.x \u548c JMeter 5.6 \u517c\u5bb9\u3002<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u6d4b\u8bd5\u5f15\u64ce<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">Apache JMeter<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">5.6.3<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u529f\u80fd\u5f3a\u5927\u3001\u63d2\u4ef6\u4e30\u5bcc\u3001\u751f\u6001\u6210\u719f\u3002<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u540e\u7aef\u6846\u67b6<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">Spring Boot<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">3.2.x<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u5f00\u53d1\u6548\u7387\u9ad8\u3001\u751f\u6001\u5b8c\u5584\u3001\u6613\u4e8e\u90e8\u7f72\u3002<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u524d\u7aef\u6846\u67b6<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">Vue 3 + Element Plus<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">3.4.x<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u7ec4\u4ef6\u4e30\u5bcc\u3001\u6587\u6863\u5b8c\u5584\u3001\u9002\u5408\u7ba1\u7406\u540e\u53f0\u3002<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u6570\u636e\u5e93<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">MySQL<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">8.0<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u7a33\u5b9a\u3001\u6027\u80fd\u597d\u3001\u9002\u5408\u7ed3\u6784\u5316\u6570\u636e\u5b58\u50a8\u3002<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u53cd\u5411\u4ee3\u7406<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">Nginx<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">1.24<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u9ad8\u6027\u80fd\u3001\u4f4e\u8d44\u6e90\u5360\u7528\u3001\u914d\u7f6e\u7075\u6d3b\u3002<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u8fdb\u7a0b\u7ba1\u7406<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">systemd<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">&#8211;<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">Ubuntu \u9ed8\u8ba4\u670d\u52a1\u7ba1\u7406\u5de5\u5177\uff0c\u65b9\u4fbf\u7ba1\u7406\u5e94\u7528\u751f\u547d\u5468\u671f\u3002<\/span><\/section>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">5.4 \u6570\u636e\u6a21\u578b\u8bbe\u8ba1<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728\u6570\u636e\u5e93\u8bbe\u8ba1\u65b9\u9762\uff0c\u6211\u4eec\u9700\u8981\u81f3\u5c11\u4ee5\u4e0b\u51e0\u4e2a\u6838\u5fc3\u8868\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">user<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u7528\u6237\u8868\uff0c\u8bb0\u5f55\u7528\u6237\u540d\u3001\u5bc6\u7801\u3001\u89d2\u8272\u3001\u72b6\u6001\u7b49\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">test_plan<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u6d4b\u8bd5\u8ba1\u5212\u8868\uff0c\u8bb0\u5f55\u6d4b\u8bd5\u8ba1\u5212\u540d\u79f0\u3001\u63cf\u8ff0\u3001\u6587\u4ef6\u8def\u5f84\u3001\u521b\u5efa\u65f6\u95f4\u3001\u66f4\u65b0\u65f6\u95f4\u3001\u521b\u5efa\u4eba\u7b49\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">test_task<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u6d4b\u8bd5\u4efb\u52a1\u8868\uff0c\u8bb0\u5f55\u4efb\u52a1\u5173\u8054\u7684\u6d4b\u8bd5\u8ba1\u5212\u3001\u6267\u884c\u72b6\u6001\u3001\u5e76\u53d1\u6570\u3001\u6301\u7eed\u65f6\u95f4\u3001\u5f00\u59cb\u65f6\u95f4\u3001\u7ed3\u675f\u65f6\u95f4\u3001\u7ed3\u679c\u8def\u5f84\u7b49\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">test_report<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u6d4b\u8bd5\u62a5\u544a\u8868\uff0c\u8bb0\u5f55\u4efb\u52a1\u751f\u6210\u7684\u62a5\u544a\u6458\u8981\u4fe1\u606f\uff0c\u5982\u5e73\u5747\u54cd\u5e94\u65f6\u95f4\u3001\u541e\u5410\u91cf\u3001\u9519\u8bef\u7387\u3001\u6837\u672c\u6570\u7b49\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u8fd9\u4e9b\u8868\u4e4b\u95f4\u7684\u5173\u7cfb\u4e3a\uff1a\u4e00\u4e2a\u7528\u6237\u53ef\u4ee5\u521b\u5efa\u591a\u4e2a\u6d4b\u8bd5\u8ba1\u5212\uff1b\u4e00\u4e2a\u6d4b\u8bd5\u8ba1\u5212\u53ef\u4ee5\u88ab\u591a\u6b21\u6267\u884c\uff0c\u4ea7\u751f\u591a\u4e2a\u6d4b\u8bd5\u4efb\u52a1\uff1b\u4e00\u4e2a\u6d4b\u8bd5\u4efb\u52a1\u5bf9\u5e94\u4e00\u4e2a\u6d4b\u8bd5\u62a5\u544a\u3002\u540e\u7eed\u5728\u4ee3\u7801\u5b9e\u73b0\u90e8\u5206\uff0c\u6211\u4eec\u5c06\u8be6\u7ec6\u5c55\u793a\u8fd9\u4e9b\u8868\u7684\u5efa\u8868\u8bed\u53e5\u548c\u5b9e\u4f53\u7c7b\u5b9a\u4e49\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">5.5 \u5b89\u5168\u8bbe\u8ba1\u8003\u8651<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6d4b\u8bd5\u5e73\u53f0\u867d\u7136\u4e3b\u8981\u4f9b\u5185\u90e8\u56e2\u961f\u4f7f\u7528\uff0c\u4f46\u4ecd\u9700\u6ce8\u610f\u57fa\u672c\u7684\u5b89\u5168\u8bbe\u8ba1\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u7528\u6237\u8ba4\u8bc1<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u4f7f\u7528 JWT\uff08JSON Web Token\uff09\u8fdb\u884c\u65e0\u72b6\u6001\u8ba4\u8bc1\uff0c\u907f\u514d\u4f7f\u7528 Session \u5e26\u6765\u7684\u5206\u5e03\u5f0f\u90e8\u7f72\u95ee\u9898\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u5bc6\u7801\u52a0\u5bc6<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u7528\u6237\u5bc6\u7801\u4f7f\u7528 BCrypt \u7b97\u6cd5\u52a0\u5bc6\u5b58\u50a8\uff0c\u907f\u514d\u660e\u6587\u4fdd\u5b58\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u6587\u4ef6\u4e0a\u4f20\u5b89\u5168<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u9650\u5236\u4e0a\u4f20\u6587\u4ef6\u7c7b\u578b\u4e3a .jmx\uff0c\u6821\u9a8c\u6587\u4ef6\u5185\u5bb9\uff0c\u9632\u6b62\u4e0a\u4f20\u6076\u610f\u6587\u4ef6\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u547d\u4ee4\u6267\u884c\u5b89\u5168<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u542f\u52a8 JMeter \u65f6\uff0c\u4e25\u683c\u6821\u9a8c\u53c2\u6570\uff0c\u907f\u514d\u547d\u4ee4\u6ce8\u5165\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u6743\u9650\u63a7\u5236<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u57fa\u4e8e\u89d2\u8272\u7684\u6743\u9650\u63a7\u5236\uff0c\u7ba1\u7406\u5458\u53ef\u4ee5\u7ba1\u7406\u7528\u6237\uff0c\u666e\u901a\u7528\u6237\u53ea\u80fd\u7ba1\u7406\u81ea\u5df1\u7684\u6d4b\u8bd5\u8ba1\u5212\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><br  \/><\/span><\/h2>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><br  \/><\/span><\/h2>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;font-weight: bold;\">\u516d\u3001\u540e\u7aef\u670d\u52a1\u5b9e\u73b0\uff1aSpring Boot \u4e0e JMeter \u96c6\u6210<\/span><\/span><\/h2>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u540e\u7aef\u670d\u52a1\u662f\u6574\u4e2a\u5e73\u53f0\u7684\u6838\u5fc3\uff0c\u8d1f\u8d23\u4e1a\u52a1\u903b\u8f91\u5904\u7406\u3001\u6587\u4ef6\u7ba1\u7406\u3001\u4efb\u52a1\u8c03\u5ea6\u548c\u7ed3\u679c\u89e3\u6790\u3002\u672c\u8282\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Spring Boot 3.2 \u6784\u5efa\u540e\u7aef\u670d\u52a1\uff0c\u5e76\u5b9e\u73b0\u4e0e JMeter \u7684\u96c6\u6210\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">6.1 \u521b\u5efa Spring Boot \u9879\u76ee<\/span><\/span><\/h3>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528 Spring Initializr\uff08https:\/\/start.spring.io\/\uff09\u521b\u5efa\u9879\u76ee\uff0c\u4e5f\u53ef\u4ee5\u76f4\u63a5\u5728\u670d\u52a1\u5668\u4e0a\u4f7f\u7528\u547d\u4ee4\u884c\u521b\u5efa\u3002\u672c\u6587\u63a8\u8350\u4f7f\u7528 Spring Initializr \u7684 Web \u754c\u9762\u751f\u6210\u9879\u76ee\u57fa\u7840\u9aa8\u67b6\uff0c\u7136\u540e\u5bfc\u5165\u5230 IDEA \u6216 VS Code \u4e2d\u5f00\u53d1\u3002\u5728\u670d\u52a1\u5668\u4e0a\uff0c\u6211\u4eec\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 Maven \u547d\u4ee4\u6784\u5efa\u3002<\/span><\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u521b\u5efa\u9879\u76ee\u65f6\u9009\u62e9\u4ee5\u4e0b\u4f9d\u8d56\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Spring Boot 3.2.x<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Java 17<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Spring Web\uff08\u6784\u5efa RESTful API\uff09<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Spring Data JPA\uff08\u6570\u636e\u5e93\u8bbf\u95ee\uff09<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">MySQL Driver\uff08\u8fde\u63a5 MySQL\uff09<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Lombok\uff08\u7b80\u5316\u4ee3\u7801\uff09<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Spring Security\uff08\u5b89\u5168\u8ba4\u8bc1\uff09<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">JWT\uff08\u53ef\u9009\uff0c\u7528\u4e8e Token \u8ba4\u8bc1\uff09<\/span><\/section>\n<\/li>\n<\/ul>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4e3a\u4e86\u7b80\u5316\uff0c\u672c\u6587\u7684\u793a\u4f8b\u4ee3\u7801\u5c06\u4f7f\u7528 Spring Boot + Spring Data JPA + MySQL + JWT \u7684\u7ec4\u5408\u3002\u6211\u4eec\u9996\u5148\u521b\u5efa\u9879\u76ee\u76ee\u5f55\u7ed3\u6784\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">mkdir -p ~\/projects\/jmeter-platform<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">cd ~\/projects\/jmeter-platform<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728\u9879\u76ee\u76ee\u5f55\u4e0b\u521b\u5efa&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">pom.xml<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u6587\u4ef6\uff0c\u914d\u7f6e Maven \u4f9d\u8d56\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&lt;project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\"<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;http:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;parent&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;artifactId&gt;spring-boot-starter-parent&lt;\/artifactId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;version&gt;3.2.5&lt;\/version&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;relativePath\/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;\/parent&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;groupId&gt;com.example&lt;\/groupId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;artifactId&gt;jmeter-platform&lt;\/artifactId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;version&gt;1.0.0&lt;\/version&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;name&gt;jmeter-platform&lt;\/name&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;description&gt;JMeter Automation Testing Platform&lt;\/description&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;properties&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;java.version&gt;17&lt;\/java.version&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;\/properties&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;dependencies&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;artifactId&gt;spring-boot-starter-web&lt;\/artifactId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;artifactId&gt;spring-boot-starter-data-jpa&lt;\/artifactId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;artifactId&gt;spring-boot-starter-security&lt;\/artifactId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;groupId&gt;com.mysql&lt;\/groupId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;artifactId&gt;mysql-connector-j&lt;\/artifactId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;scope&gt;runtime&lt;\/scope&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;groupId&gt;org.projectlombok&lt;\/groupId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;artifactId&gt;lombok&lt;\/artifactId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;optional&gt;true&lt;\/optional&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;groupId&gt;io.jsonwebtoken&lt;\/groupId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;artifactId&gt;jjwt-api&lt;\/artifactId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;version&gt;0.12.3&lt;\/version&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;groupId&gt;io.jsonwebtoken&lt;\/groupId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;artifactId&gt;jjwt-impl&lt;\/artifactId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;version&gt;0.12.3&lt;\/version&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;scope&gt;runtime&lt;\/scope&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;groupId&gt;io.jsonwebtoken&lt;\/groupId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;artifactId&gt;jjwt-jackson&lt;\/artifactId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;version&gt;0.12.3&lt;\/version&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;scope&gt;runtime&lt;\/scope&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;artifactId&gt;spring-boot-starter-test&lt;\/artifactId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;scope&gt;test&lt;\/scope&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/dependency&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;\/dependencies&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;build&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;plugins&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;plugin&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;artifactId&gt;spring-boot-maven-plugin&lt;\/artifactId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;configuration&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;excludes&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;exclude&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;groupId&gt;org.projectlombok&lt;\/groupId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;artifactId&gt;lombok&lt;\/artifactId&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;\/exclude&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;\/excludes&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;\/configuration&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;\/plugin&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/plugins&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;\/build&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&lt;\/project&gt;<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">6.2 \u9879\u76ee\u76ee\u5f55\u7ed3\u6784<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4e00\u4e2a\u6e05\u6670\u7684\u9879\u76ee\u76ee\u5f55\u7ed3\u6784\u6709\u52a9\u4e8e\u4ee3\u7801\u7ef4\u62a4\u3002\u5efa\u8bae\u7684\u76ee\u5f55\u7ed3\u6784\u5982\u4e0b\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">jmeter-platform\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u251c\u2500\u2500 pom.xml<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u251c\u2500\u2500 src\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u251c\u2500\u2500 main\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 java\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; \u2514\u2500\u2500 com\/example\/jmeterplatform\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u251c\u2500\u2500 JmeterPlatformApplication.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u251c\u2500\u2500 config\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 SecurityConfig.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 JwtConfig.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u2514\u2500\u2500 WebConfig.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u251c\u2500\u2500 controller\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 AuthController.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 TestPlanController.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 TestTaskController.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u2514\u2500\u2500 ReportController.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u251c\u2500\u2500 entity\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 User.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 TestPlan.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 TestTask.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u2514\u2500\u2500 TestReport.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u251c\u2500\u2500 repository\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 UserRepository.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 TestPlanRepository.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 TestTaskRepository.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u2514\u2500\u2500 TestReportRepository.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u251c\u2500\u2500 service\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 UserService.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 TestPlanService.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 TestTaskService.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u2514\u2500\u2500 ReportService.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u251c\u2500\u2500 dto\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 LoginRequest.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 ExecuteTaskRequest.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2502 &nbsp; \u2514\u2500\u2500 ApiResponse.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2514\u2500\u2500 util\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \u251c\u2500\u2500 JwtUtil.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \u2514\u2500\u2500 JmxUtil.java<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2514\u2500\u2500 resources\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u251c\u2500\u2500 application.yml<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u251c\u2500\u2500 application-prod.yml<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; &nbsp; &nbsp; \u2514\u2500\u2500 static\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2514\u2500\u2500 test\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; &nbsp; &nbsp; \u2514\u2500\u2500 java\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2514\u2500\u2500 uploads\/ &nbsp; &nbsp;# \u8fd0\u884c\u65f6\u6587\u4ef6\u4e0a\u4f20\u76ee\u5f55\uff08\u751f\u4ea7\u73af\u5883\u53ef\u914d\u7f6e\u4e3a\u5916\u90e8\u76ee\u5f55\uff09<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">6.3 \u914d\u7f6e\u6587\u4ef6<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">src\/main\/resources\/application.yml<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u4e2d\u914d\u7f6e\u6570\u636e\u5e93\u8fde\u63a5\u3001\u6587\u4ef6\u4e0a\u4f20\u8def\u5f84\u3001JMeter \u8def\u5f84\u7b49\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">server:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; port: 8080<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">spring:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; application:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; name: jmeter-platform<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; datasource:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; url: jdbc:mysql:\/\/localhost:3306\/jmeter_platform?useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=Asia\/Shanghai&amp;useSSL=false<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; username: jmeter<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; password: Jmeter@123456<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; driver-class-name: com.mysql.cj.jdbc.Driver<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; jpa:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; hibernate:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; ddl-auto: update<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; show-sql: false<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; properties:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; hibernate:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; dialect: org.hibernate.dialect.MySQL8Dialect<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; servlet:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; multipart:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; max-file-size: 50MB<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; max-request-size: 100MB<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">jmeter:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; home: \/opt\/jmeter<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; upload-dir: \/var\/lib\/jmeter-platform\/uploads<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; report-dir: \/var\/lib\/jmeter-platform\/reports<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">jwt:<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; secret: your-256-bit-secret-key-for-jwt-signing-must-be-at-least-32-characters<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; expiration: 86400000<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6ce8\u610f\uff1a\u5728\u751f\u4ea7\u73af\u5883\u4e2d\uff0c\u5bc6\u7801\u548c JWT \u5bc6\u94a5\u4e0d\u5e94\u8be5\u76f4\u63a5\u5199\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\uff0c\u5e94\u8be5\u901a\u8fc7\u73af\u5883\u53d8\u91cf\u6216\u5916\u90e8\u914d\u7f6e\u4e2d\u5fc3\u6ce8\u5165\u3002\u8fd9\u91cc\u4e3a\u4e86\u6f14\u793a\u65b9\u4fbf\uff0c\u76f4\u63a5\u5199\u5165\u4e86\u914d\u7f6e\u6587\u4ef6\u4e2d\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">6.4 \u5b9e\u4f53\u7c7b\u5b9a\u4e49<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4ee5\u4e0b\u662f\u6838\u5fc3\u5b9e\u4f53\u7c7b\u7684\u5b9a\u4e49\u3002\u6211\u4eec\u4f7f\u7528 JPA \u6ce8\u89e3\u8fdb\u884c\u5bf9\u8c61\u5173\u7cfb\u6620\u5c04\u3002<\/span><\/span><\/p>\n<p><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;font-weight: bold;\">User.java<\/span><\/span><\/strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;\">\uff08\u7528\u6237\u5b9e\u4f53\uff09\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">package com.example.jmeterplatform.entity;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import jakarta.persistence.*;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import lombok.Data;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.time.LocalDateTime;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Entity<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Table(name = \"user\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Data<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">public class User {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Id<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @GeneratedValue(strategy = GenerationType.IDENTITY)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Long id;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(unique = true, nullable = false)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private String username;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(nullable = false)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private String password;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(nullable = false)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private String role = \"USER\";<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(nullable = false)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Boolean enabled = true;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"created_at\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private LocalDateTime createdAt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"updated_at\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private LocalDateTime updatedAt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @PrePersist<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public void prePersist() {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; createdAt = LocalDateTime.now();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; updatedAt = LocalDateTime.now();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @PreUpdate<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public void preUpdate() {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; updatedAt = LocalDateTime.now();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">}<\/span><\/code><\/pre>\n<p><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;font-weight: bold;\">TestPlan.java<\/span><\/span><\/strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;\">\uff08\u6d4b\u8bd5\u8ba1\u5212\u5b9e\u4f53\uff09\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">package com.example.jmeterplatform.entity;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import jakarta.persistence.*;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import lombok.Data;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.time.LocalDateTime;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Entity<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Table(name = \"test_plan\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Data<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">public class TestPlan {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Id<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @GeneratedValue(strategy = GenerationType.IDENTITY)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Long id;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(nullable = false)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private String name;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private String description;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"file_path\", nullable = false)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private String filePath;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"created_by\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Long createdBy;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"created_at\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private LocalDateTime createdAt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"updated_at\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private LocalDateTime updatedAt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @PrePersist<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public void prePersist() {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; createdAt = LocalDateTime.now();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; updatedAt = LocalDateTime.now();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @PreUpdate<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public void preUpdate() {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; updatedAt = LocalDateTime.now();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">}<\/span><\/code><\/pre>\n<p><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;font-weight: bold;\">TestTask.java<\/span><\/span><\/strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;\">\uff08\u6d4b\u8bd5\u4efb\u52a1\u5b9e\u4f53\uff09\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">package com.example.jmeterplatform.entity;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import jakarta.persistence.*;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import lombok.Data;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.time.LocalDateTime;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Entity<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Table(name = \"test_task\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Data<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">public class TestTask {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Id<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @GeneratedValue(strategy = GenerationType.IDENTITY)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Long id;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"plan_id\", nullable = false)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Long planId;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(nullable = false)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private String status = \"PENDING\"; \/\/ PENDING, RUNNING, SUCCESS, FAILED, CANCELLED<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"thread_count\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Integer threadCount = 10;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"duration_seconds\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Integer durationSeconds = 60;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"ramp_up_seconds\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Integer rampUpSeconds = 10;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"jtl_path\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private String jtlPath;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"report_path\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private String reportPath;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"log_output\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private String logOutput;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"error_message\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private String errorMessage;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"started_at\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private LocalDateTime startedAt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"finished_at\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private LocalDateTime finishedAt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"created_by\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Long createdBy;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"created_at\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private LocalDateTime createdAt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @PrePersist<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public void prePersist() {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; createdAt = LocalDateTime.now();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">}<\/span><\/code><\/pre>\n<p><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;font-weight: bold;\">TestReport.java<\/span><\/span><\/strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;\">\uff08\u6d4b\u8bd5\u62a5\u544a\u5b9e\u4f53\uff09\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">package com.example.jmeterplatform.entity;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import jakarta.persistence.*;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import lombok.Data;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.time.LocalDateTime;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Entity<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Table(name = \"test_report\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Data<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">public class TestReport {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Id<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @GeneratedValue(strategy = GenerationType.IDENTITY)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Long id;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"task_id\", nullable = false)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Long taskId;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"sample_count\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Long sampleCount;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"error_count\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Long errorCount;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"error_rate\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Double errorRate;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"avg_response_time\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Double avgResponseTime;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"min_response_time\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Long minResponseTime;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"max_response_time\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Long maxResponseTime;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"throughput\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private Double throughput;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"report_path\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private String reportPath;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Column(name = \"created_at\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private LocalDateTime createdAt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @PrePersist<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public void prePersist() {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; createdAt = LocalDateTime.now();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">}<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">6.5 JMeter \u6267\u884c\u670d\u52a1<\/span><\/span><\/h3>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6838\u5fc3\u529f\u80fd\u4e4b\u4e00\u662f\u542f\u52a8 JMeter \u8fdb\u7a0b\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\u3002\u6211\u4eec\u4f7f\u7528 Java \u7684&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">ProcessBuilder<\/span><\/span><\/code><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u6765\u542f\u52a8&nbsp;<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">JMeter CLI&nbsp;<\/span><span textstyle=\"\" style=\"font-size: 16px;\">\u8fdb\u7a0b\u3002\u6267\u884c\u670d\u52a1\u9700\u8981\u5904\u7406\u53c2\u6570\u6784\u9020\u3001\u8fdb\u7a0b\u542f\u52a8\u3001\u8f93\u51fa\u6355\u83b7\u3001\u72b6\u6001\u66f4\u65b0\u548c\u5f02\u5e38\u5904\u7406\u3002<\/span><\/span><\/p>\n<p><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;font-weight: bold;\">TestTaskService.java<\/span><\/span><\/strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u7684\u6838\u5fc3\u6267\u884c\u65b9\u6cd5\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">package com.example.jmeterplatform.service;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import com.example.jmeterplatform.dto.ExecuteTaskRequest;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import com.example.jmeterplatform.entity.TestPlan;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import com.example.jmeterplatform.entity.TestReport;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import com.example.jmeterplatform.entity.TestTask;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import com.example.jmeterplatform.repository.TestPlanRepository;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import com.example.jmeterplatform.repository.TestReportRepository;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import com.example.jmeterplatform.repository.TestTaskRepository;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import lombok.RequiredArgsConstructor;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import lombok.extern.slf4j.Slf4j;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import org.springframework.beans.factory.annotation.Value;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import org.springframework.scheduling.annotation.Async;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import org.springframework.stereotype.Service;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import org.springframework.transaction.annotation.Transactional;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.io.BufferedReader;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.io.File;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.io.InputStreamReader;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.nio.file.Files;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.nio.file.Path;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.nio.file.Paths;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.time.LocalDateTime;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.util.UUID;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Slf4j<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Service<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@RequiredArgsConstructor<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">public class TestTaskService {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private final TestTaskRepository taskRepository;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private final TestPlanRepository planRepository;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private final TestReportRepository reportRepository;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Value(\"${jmeter.home}\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private String jmeterHome;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Value(\"${jmeter.report-dir}\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private String reportDir;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Transactional<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public TestTask createTask(Long planId, ExecuteTaskRequest request, Long userId) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; TestPlan plan = planRepository.findById(planId)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .orElseThrow(() -&gt; new RuntimeException(\"\u6d4b\u8bd5\u8ba1\u5212\u4e0d\u5b58\u5728\"));<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; TestTask task = new TestTask();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; task.setPlanId(planId);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; task.setThreadCount(request.getThreadCount());<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; task.setDurationSeconds(request.getDurationSeconds());<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; task.setRampUpSeconds(request.getRampUpSeconds());<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; task.setStatus(\"PENDING\");<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; task.setCreatedBy(userId);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; taskRepository.save(task);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; return task;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Async(\"taskExecutor\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public void executeTask(Long taskId) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; TestTask task = taskRepository.findById(taskId)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .orElseThrow(() -&gt; new RuntimeException(\"\u4efb\u52a1\u4e0d\u5b58\u5728\"));<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; TestPlan plan = planRepository.findById(task.getPlanId())<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .orElseThrow(() -&gt; new RuntimeException(\"\u6d4b\u8bd5\u8ba1\u5212\u4e0d\u5b58\u5728\"));<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; task.setStatus(\"RUNNING\");<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; task.setStartedAt(LocalDateTime.now());<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; taskRepository.save(task);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; String taskUuid = UUID.randomUUID().toString();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; Path taskReportDir = Paths.get(reportDir, taskUuid);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; Path jtlFile = Paths.get(taskReportDir.toString(), \"result.jtl\");<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; Path reportOutputDir = Paths.get(taskReportDir.toString(), \"report\");<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; try {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Files.createDirectories(taskReportDir);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Files.createDirectories(reportOutputDir);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String jmeterPath = Paths.get(jmeterHome, \"bin\", \"jmeter\").toString();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String jmxPath = plan.getFilePath();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ProcessBuilder pb = new ProcessBuilder(<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jmeterPath,<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"-n\",<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"-t\", jmxPath,<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"-l\", jtlFile.toString(),<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"-e\",<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"-o\", reportOutputDir.toString(),<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"-JthreadCount=\" + task.getThreadCount(),<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"-JdurationSeconds=\" + task.getDurationSeconds(),<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \"-JrampUpSeconds=\" + task.getRampUpSeconds()<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pb.redirectErrorStream(true);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pb.environment().put(\"JAVA_HOME\", System.getenv(\"JAVA_HOME\"));<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pb.environment().put(\"JMETER_HOME\", jmeterHome);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Process process = pb.start();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; StringBuilder output = new StringBuilder();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try (BufferedReader reader = new BufferedReader(<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new InputStreamReader(process.getInputStream()))) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String line;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; while ((line = reader.readLine()) != null) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; output.append(line).append(\"\\n\");<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; log.info(\"[JMeter-{}] {}\", taskId, line);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int exitCode = process.waitFor();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; task.setLogOutput(output.toString());<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; task.setJtlPath(jtlFile.toString());<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; task.setReportPath(reportOutputDir.toString());<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; task.setFinishedAt(LocalDateTime.now());<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (exitCode == 0) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; task.setStatus(\"SUCCESS\");<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; generateReportSummary(task, jtlFile.toString(), reportOutputDir.toString());<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; task.setStatus(\"FAILED\");<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; task.setErrorMessage(\"JMeter \u8fdb\u7a0b\u5f02\u5e38\u9000\u51fa\uff0c\u9000\u51fa\u7801\uff1a\" + exitCode);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; } catch (Exception e) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; log.error(\"\u6267\u884c\u4efb\u52a1\u5931\u8d25: {}\", taskId, e);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; task.setStatus(\"FAILED\");<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; task.setErrorMessage(e.getMessage());<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; task.setFinishedAt(LocalDateTime.now());<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; } finally {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; taskRepository.save(task);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private void generateReportSummary(TestTask task, String jtlPath, String reportPath) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; \/\/ \u8fd9\u91cc\u53ef\u4ee5\u6269\u5c55\u4e3a\u89e3\u6790 JTL \u6587\u4ef6\u5e76\u751f\u6210\u7edf\u8ba1\u6307\u6807<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; \/\/ \u7b80\u5316\u793a\u4f8b\uff1a\u53ea\u4fdd\u5b58\u62a5\u544a\u8def\u5f84<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; TestReport report = new TestReport();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; report.setTaskId(task.getId());<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; report.setReportPath(reportPath);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; reportRepository.save(report);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">}<\/span><\/code><\/pre>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u5173\u952e\u8bbe\u8ba1\u8bf4\u660e\uff1a<\/span><\/strong><span leaf=\"\">\u8fd9\u91cc\u4f7f\u7528&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">@Async(\"taskExecutor\")<\/span><\/code><span leaf=\"\">&nbsp;\u5c06 JMeter \u6267\u884c\u653e\u5728\u5f02\u6b65\u7ebf\u7a0b\u6c60\u4e2d\uff0c\u907f\u514d HTTP \u8bf7\u6c42\u957f\u65f6\u95f4\u963b\u585e\u3002\u5728 Spring Boot \u4e2d\u9700\u8981\u914d\u7f6e\u4e00\u4e2a\u5f02\u6b65\u4efb\u52a1\u6267\u884c\u5668\uff0c\u5e76\u901a\u8fc7&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">@EnableAsync<\/span><\/code><span leaf=\"\">&nbsp;\u542f\u7528\u5f02\u6b65\u652f\u6301\u3002JMeter \u53c2\u6570\u901a\u8fc7&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">-J<\/span><\/code><span leaf=\"\">&nbsp;\u9009\u9879\u4f20\u9012\uff0c\u8fd9\u4e9b\u53c2\u6570\u53ef\u4ee5\u5728 JMX \u6587\u4ef6\u4e2d\u4f7f\u7528&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">${__P(threadCount)}<\/span><\/code><span leaf=\"\">&nbsp;\u7b49\u51fd\u6570\u5f15\u7528\uff0c\u5b9e\u73b0\u52a8\u6001\u63a7\u5236\u5e76\u53d1\u6570\u3001\u6301\u7eed\u65f6\u95f4\u7b49\u3002<\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">6.6 \u5f02\u6b65\u6267\u884c\u5668\u914d\u7f6e<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728\u4e3b\u7c7b\u6216\u914d\u7f6e\u7c7b\u4e2d\u542f\u7528\u5f02\u6b65\u652f\u6301\u5e76\u914d\u7f6e\u7ebf\u7a0b\u6c60\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">package com.example.jmeterplatform.config;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import org.springframework.context.annotation.Bean;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import org.springframework.context.annotation.Configuration;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import org.springframework.scheduling.annotation.EnableAsync;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.util.concurrent.Executor;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@Configuration<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@EnableAsync<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">public class AsyncConfig {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @Bean(name = \"taskExecutor\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public Executor taskExecutor() {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; executor.setCorePoolSize(2);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; executor.setMaxPoolSize(10);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; executor.setQueueCapacity(100);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; executor.setThreadNamePrefix(\"jmeter-task-\");<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; executor.initialize();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; return executor;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">}<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">6.7 \u63a7\u5236\u5668\u5c42<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u63a7\u5236\u5668\u8d1f\u8d23\u63a5\u6536\u524d\u7aef\u8bf7\u6c42\u5e76\u8c03\u7528\u4e1a\u52a1\u670d\u52a1\u3002\u4ee5\u4e0b\u662f\u6d4b\u8bd5\u8ba1\u5212\u63a7\u5236\u5668\u548c\u4efb\u52a1\u63a7\u5236\u5668\u7684\u793a\u4f8b\u3002<\/span><\/span><\/p>\n<p><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 18px;color: #0052ff;font-weight: bold;\">TestPlanController.java<\/span><\/span><\/strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 18px;color: #0052ff;font-weight: bold;\">\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">package com.example.jmeterplatform.controller;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import com.example.jmeterplatform.dto.ApiResponse;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import com.example.jmeterplatform.entity.TestPlan;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import com.example.jmeterplatform.service.TestPlanService;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import lombok.RequiredArgsConstructor;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import org.springframework.http.ResponseEntity;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import org.springframework.web.bind.annotation.*;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import org.springframework.web.multipart.MultipartFile;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.util.List;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@RestController<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@RequestMapping(\"\/api\/plans\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@RequiredArgsConstructor<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">public class TestPlanController {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private final TestPlanService planService;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @GetMapping<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public ResponseEntity&lt;ApiResponse&lt;List&lt;TestPlan&gt;&gt;&gt; listPlans() {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; return ResponseEntity.ok(ApiResponse.success(planService.listAll()));<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @PostMapping<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public ResponseEntity&lt;ApiResponse&lt;TestPlan&gt;&gt; uploadPlan(<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @RequestParam(\"name\") String name,<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @RequestParam(\"description\") String description,<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @RequestParam(\"file\") MultipartFile file) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; return ResponseEntity.ok(ApiResponse.success(planService.savePlan(name, description, file)));<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @GetMapping(\"\/{id}\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public ResponseEntity&lt;ApiResponse&lt;TestPlan&gt;&gt; getPlan(@PathVariable Long id) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; return ResponseEntity.ok(ApiResponse.success(planService.getById(id)));<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @DeleteMapping(\"\/{id}\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public ResponseEntity&lt;ApiResponse&lt;Void&gt;&gt; deletePlan(@PathVariable Long id) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; planService.deletePlan(id);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; return ResponseEntity.ok(ApiResponse.success(null));<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">}<\/span><\/code><\/pre>\n<p><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 18px;color: #0052ff;font-weight: bold;\">TestTaskController.java<\/span><\/span><\/strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 18px;color: #0052ff;font-weight: bold;\">\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">package com.example.jmeterplatform.controller;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import com.example.jmeterplatform.dto.ApiResponse;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import com.example.jmeterplatform.dto.ExecuteTaskRequest;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import com.example.jmeterplatform.entity.TestTask;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import com.example.jmeterplatform.service.TestTaskService;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import lombok.RequiredArgsConstructor;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import org.springframework.http.ResponseEntity;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import org.springframework.web.bind.annotation.*;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import java.util.List;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@RestController<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@RequestMapping(\"\/api\/tasks\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">@RequiredArgsConstructor<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">public class TestTaskController {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; private final TestTaskService taskService;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @PostMapping(\"\/execute\/{planId}\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public ResponseEntity&lt;ApiResponse&lt;TestTask&gt;&gt; execute(@PathVariable Long planId,<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @RequestBody ExecuteTaskRequest request) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; \/\/ \u5b9e\u9645\u9879\u76ee\u4e2d\u5e94\u4ece SecurityContext \u83b7\u53d6\u5f53\u524d\u7528\u6237 ID<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; Long userId = 1L;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; TestTask task = taskService.createTask(planId, request, userId);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; taskService.executeTask(task.getId());<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; return ResponseEntity.ok(ApiResponse.success(task));<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @GetMapping<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public ResponseEntity&lt;ApiResponse&lt;List&lt;TestTask&gt;&gt;&gt; listTasks() {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; return ResponseEntity.ok(ApiResponse.success(taskService.listAll()));<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @GetMapping(\"\/{id}\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public ResponseEntity&lt;ApiResponse&lt;TestTask&gt;&gt; getTask(@PathVariable Long id) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; return ResponseEntity.ok(ApiResponse.success(taskService.getById(id)));<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; @GetMapping(\"\/{id}\/log\")<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; public ResponseEntity&lt;ApiResponse&lt;String&gt;&gt; getTaskLog(@PathVariable Long id) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; return ResponseEntity.ok(ApiResponse.success(taskService.getTaskLog(id)));<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">}<\/span><\/code><\/pre>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u7531\u4e8e\u7bc7\u5e45\u9650\u5236\uff0cUser\u3001TestPlanService\u3001Repository \u63a5\u53e3\u3001DTO \u7b49\u4ee3\u7801\u7684\u5b8c\u6574\u5b9e\u73b0\u53ef\u4ee5\u53c2\u8003\u9879\u76ee\u6e90\u7801\u3002\u5728\u4e0b\u4e00\u8282\u4e2d\uff0c\u6211\u4eec\u5c06\u4ecb\u7ecd\u524d\u7aef Vue 3 \u7684\u5b9e\u73b0\u3002<\/span><\/span><\/p>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><br  \/><\/span><\/h2>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;font-weight: bold;\">\u4e03\u3001\u524d\u7aef\u754c\u9762\u5b9e\u73b0\uff1aVue 3 \u6d4b\u8bd5\u63a7\u5236\u53f0<\/span><\/span><\/h2>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u524d\u7aef\u754c\u9762\u662f\u7528\u6237\u4e0e\u6d4b\u8bd5\u5e73\u53f0\u4ea4\u4e92\u7684\u7a97\u53e3\u3002\u4e00\u4e2a\u8bbe\u8ba1\u826f\u597d\u7684\u524d\u7aef\u754c\u9762\u80fd\u591f\u663e\u8457\u63d0\u5347\u6d4b\u8bd5\u4eba\u5458\u7684\u5de5\u4f5c\u6548\u7387\u3002\u672c\u8282\u5c06\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Vue 3 + Element Plus \u6784\u5efa\u4e00\u4e2a\u7b80\u6d01\u3001\u5b9e\u7528\u7684\u6d4b\u8bd5\u63a7\u5236\u53f0\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">7.1 \u524d\u7aef\u9879\u76ee\u521d\u59cb\u5316<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6211\u4eec\u5c06\u4f7f\u7528 Vue CLI \u521b\u5efa\u524d\u7aef\u9879\u76ee\u3002\u5982\u679c\u4f60\u7684\u5f00\u53d1\u73af\u5883\u4e2d\u8fd8\u6ca1\u6709\u5b89\u88c5 Vue CLI\uff0c\u53ef\u4ee5\u5148\u901a\u8fc7 npm \u5b89\u88c5\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">npm install -g @vue\/cli<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"># \u6216\u8005\u4f7f\u7528 create-vue\uff08Vue \u5b98\u65b9\u63a8\u8350\uff09<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">npm create vue@latest jmeter-platform-ui<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u672c\u6587\u4f7f\u7528 create-vue \u521b\u5efa\u9879\u76ee\uff0c\u9009\u62e9 Vue 3 + TypeScript + Vite + Element Plus\u3002\u521b\u5efa\u5b8c\u6210\u540e\uff0c\u8fdb\u5165\u9879\u76ee\u76ee\u5f55\u5e76\u5b89\u88c5\u4f9d\u8d56\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">cd jmeter-platform-ui<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">npm install<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">npm install element-plus axios vue-router pinia<\/span><\/code><\/pre>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><span leaf=\"\">\u4f9d\u8d56\u8bf4\u660e\uff1a<\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">element-plus<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u57fa\u4e8e Vue 3 \u7684\u7ec4\u4ef6\u5e93\uff0c\u63d0\u4f9b\u8868\u683c\u3001\u8868\u5355\u3001\u6309\u94ae\u3001\u5bf9\u8bdd\u6846\u7b49\u5e38\u7528\u7ec4\u4ef6\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">axios<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1aHTTP \u5ba2\u6237\u7aef\uff0c\u7528\u4e8e\u8c03\u7528\u540e\u7aef API\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">vue-router<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1aVue \u5b98\u65b9\u8def\u7531\u7ba1\u7406\u5e93\uff0c\u7528\u4e8e\u5b9e\u73b0\u5355\u9875\u5e94\u7528\u7684\u591a\u9875\u9762\u5bfc\u822a\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">pinia<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1aVue \u5b98\u65b9\u63a8\u8350\u7684\u72b6\u6001\u7ba1\u7406\u5e93\uff0c\u7528\u4e8e\u7ba1\u7406\u7528\u6237\u767b\u5f55\u72b6\u6001\u7b49\u5168\u5c40\u72b6\u6001\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">7.2 \u9879\u76ee\u76ee\u5f55\u7ed3\u6784<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5efa\u8bae\u7684\u524d\u7aef\u9879\u76ee\u76ee\u5f55\u7ed3\u6784\u5982\u4e0b\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">jmeter-platform-ui\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u251c\u2500\u2500 public\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u251c\u2500\u2500 src\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u251c\u2500\u2500 api\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 plan.ts<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 task.ts<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2514\u2500\u2500 auth.ts<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u251c\u2500\u2500 assets\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u251c\u2500\u2500 components\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u251c\u2500\u2500 router\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2514\u2500\u2500 index.ts<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u251c\u2500\u2500 stores\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2514\u2500\u2500 user.ts<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u251c\u2500\u2500 views\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 LoginView.vue<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 PlanListView.vue<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 PlanUploadView.vue<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u251c\u2500\u2500 TaskListView.vue<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2502 &nbsp; \u2514\u2500\u2500 TaskDetailView.vue<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u251c\u2500\u2500 App.vue<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2502 &nbsp; \u2514\u2500\u2500 main.ts<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u251c\u2500\u2500 index.html<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u251c\u2500\u2500 package.json<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u251c\u2500\u2500 tsconfig.json<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u2514\u2500\u2500 vite.config.ts<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">7.3 API \u5c01\u88c5<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728\u524d\u7aef\u9879\u76ee\u4e2d\uff0c\u6211\u4eec\u901a\u5e38\u5c06 API \u8c03\u7528\u5c01\u88c5\u5230\u72ec\u7acb\u7684\u6a21\u5757\u4e2d\uff0c\u4fbf\u4e8e\u7edf\u4e00\u7ba1\u7406\u548c\u590d\u7528\u3002\u4ee5\u4e0b\u662f&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">src\/api\/plan.ts<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u7684\u793a\u4f8b\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">import axios from 'axios';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const API_BASE = '\/api';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">export interface TestPlan {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; id: number;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; name: string;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; description: string;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; filePath: string;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; createdAt: string;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; updatedAt: string;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">}<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">export interface ApiResponse&lt;T&gt; {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; code: number;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; message: string;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; data: T;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">}<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">export const planApi = {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; list: () =&gt; axios.get&lt;ApiResponse&lt;TestPlan[]&gt;&gt;(`${API_BASE}\/plans`),<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; get: (id: number) =&gt; axios.get&lt;ApiResponse&lt;TestPlan&gt;&gt;(`${API_BASE}\/plans\/${id}`),<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; upload: (formData: FormData) =&gt; axios.post&lt;ApiResponse&lt;TestPlan&gt;&gt;(<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; `${API_BASE}\/plans`, formData, {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; headers: { 'Content-Type': 'multipart\/form-data' }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; }),<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; delete: (id: number) =&gt; axios.delete&lt;ApiResponse&lt;void&gt;&gt;(`${API_BASE}\/plans\/${id}`)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">};<\/span><\/code><\/pre>\n<p><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">src\/api\/task.ts<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u7684\u793a\u4f8b\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">import axios from 'axios';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const API_BASE = '\/api';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">export interface TestTask {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; id: number;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; planId: number;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; status: string;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; threadCount: number;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; durationSeconds: number;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; rampUpSeconds: number;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; jtlPath: string;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; reportPath: string;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; logOutput: string;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; errorMessage: string;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; startedAt: string;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; finishedAt: string;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">}<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">export const taskApi = {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; list: () =&gt; axios.get&lt;ApiResponse&lt;TestTask[]&gt;&gt;(`${API_BASE}\/tasks`),<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; get: (id: number) =&gt; axios.get&lt;ApiResponse&lt;TestTask&gt;&gt;(`${API_BASE}\/tasks\/${id}`),<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; getLog: (id: number) =&gt; axios.get&lt;ApiResponse&lt;string&gt;&gt;(`${API_BASE}\/tasks\/${id}\/log`),<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; execute: (planId: number, params: object) =&gt; axios.post&lt;ApiResponse&lt;TestTask&gt;&gt;(<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; `${API_BASE}\/tasks\/execute\/${planId}`, params)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">};<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">7.4 \u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u9875\u9762<\/span><\/span><\/h3>\n<p><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;font-weight: bold;\">PlanListView.vue<\/span><\/span><\/strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u7528\u4e8e\u5c55\u793a\u6240\u6709\u5df2\u4e0a\u4f20\u7684\u6d4b\u8bd5\u8ba1\u5212\uff0c\u5e76\u63d0\u4f9b\u4e0a\u4f20\u3001\u6267\u884c\u548c\u5220\u9664\u64cd\u4f5c\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">&lt;template&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &lt;div class=\"plan-list\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;el-card&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;template&nbsp;<a class=\"wx_topic_link\" topic-id=\"mqmh0cvy-6hhqsf\" style=\"color: #576B95 !important;\" data-topic=\"1\" data-recommend=\"\">#header<\/a>&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;div class=\"card-header\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;span&gt;\u6d4b\u8bd5\u8ba1\u5212\u7ba1\u7406&lt;\/span&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;el-button type=\"primary\" @click=\"showUploadDialog = true\"&gt;\u4e0a\u4f20\u8ba1\u5212&lt;\/el-button&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/div&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;\/template&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;el-table :data=\"plans\" v-loading=\"loading\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-table-column prop=\"id\" label=\"ID\" width=\"80\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-table-column prop=\"name\" label=\"\u8ba1\u5212\u540d\u79f0\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-table-column prop=\"description\" label=\"\u63cf\u8ff0\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-table-column prop=\"createdAt\" label=\"\u521b\u5efa\u65f6\u95f4\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-table-column label=\"\u64cd\u4f5c\" width=\"240\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;template&nbsp;<a class=\"wx_topic_link\" topic-id=\"mqmh0cvz-l11w7h\" style=\"color: #576B95 !important;\" data-topic=\"1\" data-recommend=\"\">#default<\/a>=\"scope\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;el-button size=\"small\" @click=\"executePlan(scope.row)\"&gt;\u6267\u884c&lt;\/el-button&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;el-button size=\"small\" type=\"danger\" @click=\"deletePlan(scope.row.id)\"&gt;\u5220\u9664&lt;\/el-button&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;\/template&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/el-table-column&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;\/el-table&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;\/el-card&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;el-dialog v-model=\"showUploadDialog\" title=\"\u4e0a\u4f20\u6d4b\u8bd5\u8ba1\u5212\" width=\"500px\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;el-form :model=\"uploadForm\" label-width=\"80px\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-form-item label=\"\u8ba1\u5212\u540d\u79f0\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;el-input v-model=\"uploadForm.name\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/el-form-item&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-form-item label=\"\u63cf\u8ff0\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;el-input v-model=\"uploadForm.description\" type=\"textarea\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/el-form-item&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-form-item label=\"JMX \u6587\u4ef6\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;el-upload ref=\"uploadRef\" :auto-upload=\"false\" :on-change=\"handleFileChange\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;el-button&gt;\u9009\u62e9\u6587\u4ef6&lt;\/el-button&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;\/el-upload&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/el-form-item&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;\/el-form&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;template&nbsp;<a class=\"wx_topic_link\" topic-id=\"mqmh0cvz-4ggusi\" style=\"color: #576B95 !important;\" data-topic=\"1\" data-recommend=\"\">#footer<\/a>&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-button @click=\"showUploadDialog = false\"&gt;\u53d6\u6d88&lt;\/el-button&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-button type=\"primary\" @click=\"submitUpload\"&gt;\u4e0a\u4f20&lt;\/el-button&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;\/template&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;\/el-dialog&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;el-dialog v-model=\"showExecuteDialog\" title=\"\u6267\u884c\u6d4b\u8bd5\" width=\"500px\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;el-form :model=\"executeForm\" label-width=\"120px\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-form-item label=\"\u5e76\u53d1\u7ebf\u7a0b\u6570\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;el-input-number v-model=\"executeForm.threadCount\" :min=\"1\" :max=\"1000\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/el-form-item&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-form-item label=\"\u6301\u7eed\u65f6\u95f4(\u79d2)\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;el-input-number v-model=\"executeForm.durationSeconds\" :min=\"1\" :max=\"3600\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/el-form-item&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-form-item label=\"\u542f\u52a8\u65f6\u95f4(\u79d2)\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;el-input-number v-model=\"executeForm.rampUpSeconds\" :min=\"1\" :max=\"300\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/el-form-item&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;\/el-form&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;template&nbsp;<a class=\"wx_topic_link\" topic-id=\"mqmh0cvz-l926py\" style=\"color: #576B95 !important;\" data-topic=\"1\" data-recommend=\"\">#footer<\/a>&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-button @click=\"showExecuteDialog = false\"&gt;\u53d6\u6d88&lt;\/el-button&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-button type=\"primary\" @click=\"submitExecute\"&gt;\u542f\u52a8&lt;\/el-button&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;\/template&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;\/el-dialog&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &lt;\/div&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&lt;\/template&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&lt;script setup lang=\"ts\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import { ref, onMounted } from 'vue';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import { ElMessage, ElMessageBox } from 'element-plus';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import { planApi, type TestPlan } from '@\/api\/plan';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import { taskApi } from '@\/api\/task';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const plans = ref&lt;TestPlan[]&gt;([]);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const loading = ref(false);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const showUploadDialog = ref(false);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const showExecuteDialog = ref(false);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const selectedPlan = ref&lt;TestPlan | null&gt;(null);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const uploadFile = ref&lt;File | null&gt;(null);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const uploadForm = ref({ name: '', description: '' });<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const executeForm = ref({ threadCount: 10, durationSeconds: 60, rampUpSeconds: 10 });<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const loadPlans = async () =&gt; {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; loading.value = true;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; try {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; const res = await planApi.list();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; plans.value = res.data.data;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; } catch (error) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; ElMessage.error('\u52a0\u8f7d\u6d4b\u8bd5\u8ba1\u5212\u5931\u8d25');<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; } finally {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; loading.value = false;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">};<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const handleFileChange = (file: any) =&gt; {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; uploadFile.value = file.raw;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">};<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const submitUpload = async () =&gt; {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; if (!uploadFile.value) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; ElMessage.warning('\u8bf7\u9009\u62e9 JMX \u6587\u4ef6');<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; return;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; const formData = new FormData();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; formData.append('name', uploadForm.value.name);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; formData.append('description', uploadForm.value.description);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; formData.append('file', uploadFile.value);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; try {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; await planApi.upload(formData);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; ElMessage.success('\u4e0a\u4f20\u6210\u529f');<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; showUploadDialog.value = false;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; loadPlans();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; } catch (error) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; ElMessage.error('\u4e0a\u4f20\u5931\u8d25');<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">};<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const executePlan = (plan: TestPlan) =&gt; {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; selectedPlan.value = plan;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; showExecuteDialog.value = true;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">};<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const submitExecute = async () =&gt; {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; if (!selectedPlan.value) return;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; try {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; await taskApi.execute(selectedPlan.value.id, executeForm.value);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; ElMessage.success('\u6d4b\u8bd5\u4efb\u52a1\u5df2\u542f\u52a8');<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; showExecuteDialog.value = false;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; } catch (error) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; ElMessage.error('\u542f\u52a8\u5931\u8d25');<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">};<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const deletePlan = async (id: number) =&gt; {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; try {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; await ElMessageBox.confirm('\u786e\u5b9a\u5220\u9664\u8be5\u6d4b\u8bd5\u8ba1\u5212\u5417\uff1f', '\u63d0\u793a', { type: 'warning' });<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; await planApi.delete(id);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; ElMessage.success('\u5220\u9664\u6210\u529f');<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; loadPlans();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; } catch (error) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; \/\/ \u7528\u6237\u53d6\u6d88\u6216\u5220\u9664\u5931\u8d25<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">};<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">onMounted(() =&gt; {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; loadPlans();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">});<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&lt;\/script&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&lt;style scoped&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">.card-header {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; display: flex;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; justify-content: space-between;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; align-items: center;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">}<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">.plan-list {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; padding: 20px;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">}<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&lt;\/style&gt;<\/span><\/code><\/pre>\n<section style=\"text-align: center;\" nodeleaf=\"\">\n<figure class=\"wx-qr-wrap\"><img decoding=\"async\" class=\"rich_pages wxw-img\" data-aistatus=\"1\" data-imgfileid=\"100000409\" data-s=\"300,640\" data-type=\"png\" type=\"block\" src=\"https:\/\/mmbiz.qpic.cn\/sz_mmbiz_png\/BWmfcibGhS1KxtMwLicwM6LA8ye8icTEXtKiaUlEQ7UDycBiagFdFaxUuqX4W6bt5WIjUbytSwnSKPMKUjtwMicOnPEQLdA6rWgMO7p2vicM1rBJMM\/640?wx_fmt=png&#038;from=appmsg\" \/><figcaption class=\"wx-qr-tip\"><img decoding=\"async\" src=\"https:\/\/www.deartester.com\/wp-content\/uploads\/2026\/09\/wechat-qr.jpg\" alt=\"\u5fae\u4fe1\u516c\u4f17\u53f7\u4e8c\u7ef4\u7801\" loading=\"lazy\"><span>\u56fe\u7247\u5f15\u81ea\u5fae\u4fe1\u516c\u4f17\u53f7\uff0c\u626b\u7801\u5173\u6ce8\u9605\u8bfb\u539f\u6587<\/span><\/figcaption><\/figure>\n<\/section>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">7.5 \u4efb\u52a1\u5217\u8868\u4e0e\u8be6\u60c5\u9875\u9762<\/span><\/span><\/h3>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><span leaf=\"\">\u4efb\u52a1\u5217\u8868\u9875\u9762\u7528\u4e8e\u5c55\u793a\u6240\u6709\u6d4b\u8bd5\u4efb\u52a1\u7684\u6267\u884c\u72b6\u6001\uff0c\u4efb\u52a1\u8be6\u60c5\u9875\u9762\u7528\u4e8e\u67e5\u770b\u4efb\u52a1\u65e5\u5fd7\u548c\u62a5\u544a\u3002\u4ee5\u4e0b\u662f&nbsp;<\/span><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">TaskListView.vue<\/span><\/strong><span leaf=\"\">&nbsp;\u7684\u6838\u5fc3\u4ee3\u7801\u7247\u6bb5\uff1a<\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">&lt;template&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &lt;div class=\"task-list\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;el-card&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;template&nbsp;<a class=\"wx_topic_link\" topic-id=\"mqmh0cvz-hslozq\" style=\"color: #576B95 !important;\" data-topic=\"1\" data-recommend=\"\">#header<\/a>&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;span&gt;\u6d4b\u8bd5\u4efb\u52a1&lt;\/span&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;\/template&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;el-table :data=\"tasks\" v-loading=\"loading\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-table-column prop=\"id\" label=\"ID\" width=\"80\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-table-column prop=\"planId\" label=\"\u8ba1\u5212ID\" width=\"100\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-table-column prop=\"status\" label=\"\u72b6\u6001\" width=\"120\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;template&nbsp;<a class=\"wx_topic_link\" topic-id=\"mqmh0cvz-1cg5lf\" style=\"color: #576B95 !important;\" data-topic=\"1\" data-recommend=\"\">#default<\/a>=\"scope\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;el-tag :type=\"statusType(scope.row.status)\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {{ scope.row.status }}<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;\/el-tag&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;\/template&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/el-table-column&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-table-column prop=\"threadCount\" label=\"\u5e76\u53d1\u6570\" width=\"100\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-table-column prop=\"durationSeconds\" label=\"\u6301\u7eed\u65f6\u95f4\" width=\"100\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-table-column prop=\"startedAt\" label=\"\u5f00\u59cb\u65f6\u95f4\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-table-column prop=\"finishedAt\" label=\"\u7ed3\u675f\u65f6\u95f4\" \/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;el-table-column label=\"\u64cd\u4f5c\" width=\"180\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;template&nbsp;<a class=\"wx_topic_link\" topic-id=\"mqmh0cvz-nh96aq\" style=\"color: #576B95 !important;\" data-topic=\"1\" data-recommend=\"\">#default<\/a>=\"scope\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;el-button size=\"small\" @click=\"viewDetail(scope.row.id)\"&gt;\u8be6\u60c5&lt;\/el-button&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;\/template&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/el-table-column&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;\/el-table&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;\/el-card&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &lt;\/div&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&lt;\/template&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&lt;script setup lang=\"ts\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import { ref, onMounted } from 'vue';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import { useRouter } from 'vue-router';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import { ElMessage } from 'element-plus';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import { taskApi, type TestTask } from '@\/api\/task';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const router = useRouter();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const tasks = ref&lt;TestTask[]&gt;([]);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const loading = ref(false);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const statusType = (status: string) =&gt; {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; switch (status) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; case 'SUCCESS': return 'success';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; case 'FAILED': return 'danger';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; case 'RUNNING': return 'warning';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; default: return 'info';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">};<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const loadTasks = async () =&gt; {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; loading.value = true;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; try {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; const res = await taskApi.list();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; tasks.value = res.data.data;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; } catch (error) {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; ElMessage.error('\u52a0\u8f7d\u4efb\u52a1\u5931\u8d25');<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; } finally {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; loading.value = false;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">};<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const viewDetail = (id: number) =&gt; {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; router.push(`\/tasks\/${id}`);<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">};<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">onMounted(() =&gt; {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; loadTasks();<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">});<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&lt;\/script&gt;<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">7.6 \u8def\u7531\u914d\u7f6e<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">src\/router\/index.ts<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u4e2d\u914d\u7f6e\u8def\u7531\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">import { createRouter, createWebHistory } from 'vue-router';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import PlanListView from '@\/views\/PlanListView.vue';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import TaskListView from '@\/views\/TaskListView.vue';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import TaskDetailView from '@\/views\/TaskDetailView.vue';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import LoginView from '@\/views\/LoginView.vue';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">const router = createRouter({<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; history: createWebHistory(),<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; routes: [<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; { path: '\/', redirect: '\/plans' },<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; { path: '\/login', component: LoginView },<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; { path: '\/plans', component: PlanListView },<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; { path: '\/tasks', component: TaskListView },<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; { path: '\/tasks\/:id', component: TaskDetailView }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; ]<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">});<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">export default router;<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">7.7 \u5f00\u53d1\u4ee3\u7406\u4e0e\u6784\u5efa\u914d\u7f6e<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728\u5f00\u53d1\u9636\u6bb5\uff0c\u524d\u7aef\u901a\u8fc7 Vite \u7684\u4ee3\u7406\u529f\u80fd\u5c06 API \u8bf7\u6c42\u8f6c\u53d1\u5230\u540e\u7aef\u670d\u52a1\u3002\u7f16\u8f91&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">vite.config.ts<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">import { defineConfig } from 'vite';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import vue from '@vitejs\/plugin-vue';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">import { resolve } from 'path';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">export default defineConfig({<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; plugins: [vue()],<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; resolve: {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; alias: {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; '@': resolve(__dirname, 'src')<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; },<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; server: {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; proxy: {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; '\/api': {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; target: 'http:\/\/localhost:8080',<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; changeOrigin: true<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; },<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; build: {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; outDir: 'dist',<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; assetsDir: 'assets'<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">});<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5f00\u53d1\u6a21\u5f0f\u4e0b\uff0c\u8fd0\u884c&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">npm_run_dev<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u5373\u53ef\u542f\u52a8\u524d\u7aef\u5f00\u53d1\u670d\u52a1\u5668\u3002\u751f\u4ea7\u73af\u5883\u4e0b\uff0c\u8fd0\u884c&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">npm_run_build<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u751f\u6210\u9759\u6001\u6587\u4ef6\uff0c\u5c06\u5176\u90e8\u7f72\u5230 Nginx \u4e2d\u3002<\/span><\/span><\/p>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><br  \/><\/span><\/h2>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;font-weight: bold;\">\u516b\u3001\u5e73\u53f0\u90e8\u7f72\uff1a\u6253\u5305\u3001systemd \u4e0e Nginx \u53cd\u5411\u4ee3\u7406<\/span><\/span><\/h2>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5b8c\u6210\u524d\u540e\u7aef\u4ee3\u7801\u5f00\u53d1\u540e\uff0c\u6211\u4eec\u9700\u8981\u5c06\u6574\u4e2a\u5e73\u53f0\u90e8\u7f72\u5230 Ubuntu \u670d\u52a1\u5668\u4e0a\uff0c\u5e76\u914d\u7f6e\u4e3a\u53ef\u957f\u671f\u7a33\u5b9a\u8fd0\u884c\u7684\u670d\u52a1\u3002\u672c\u8282\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u6570\u636e\u5e93\u5b89\u88c5\u3001\u540e\u7aef\u6253\u5305\u3001\u524d\u7aef\u6784\u5efa\u3001systemd \u670d\u52a1\u7ba1\u7406\u4ee5\u53ca Nginx \u53cd\u5411\u4ee3\u7406\u914d\u7f6e\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">8.1 \u5b89\u88c5 MySQL \u6570\u636e\u5e93<\/span><\/span><\/h3>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6d4b\u8bd5\u5e73\u53f0\u9700\u8981\u6301\u4e45\u5316\u5b58\u50a8\u7528\u6237\u4fe1\u606f\u3001\u6d4b\u8bd5\u8ba1\u5212\u3001\u4efb\u52a1\u8bb0\u5f55\u7b49\u6570\u636e\u3002\u6211\u4eec\u9009\u62e9 MySQL 8.0 \u4f5c\u4e3a\u6570\u636e\u5e93\u3002<\/span><\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5b89\u88c5 MySQL \u670d\u52a1\u5668\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo apt update<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo apt install -y mysql-server<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u542f\u52a8 MySQL \u5e76\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo systemctl start mysql<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo systemctl enable mysql<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u8fd0\u884c MySQL \u5b89\u5168\u521d\u59cb\u5316\u811a\u672c\uff0c\u8bbe\u7f6e root \u5bc6\u7801\u5e76\u52a0\u56fa\u5b89\u5168\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo mysql_secure_installation<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6309\u63d0\u793a\u8bbe\u7f6e root \u5bc6\u7801\u3001\u5220\u9664\u533f\u540d\u7528\u6237\u3001\u7981\u6b62 root \u8fdc\u7a0b\u767b\u5f55\u3001\u5220\u9664\u6d4b\u8bd5\u6570\u636e\u5e93\u3001\u91cd\u65b0\u52a0\u8f7d\u6743\u9650\u8868\u3002<\/span><\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u767b\u5f55 MySQL \u521b\u5efa\u4e13\u7528\u6570\u636e\u5e93\u548c\u7528\u6237\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo mysql -u root -p<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728 MySQL \u547d\u4ee4\u884c\u4e2d\u6267\u884c\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">CREATE DATABASE jmeter_platform CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">CREATE USER 'jmeter'@'localhost' IDENTIFIED BY 'Jmeter@123456';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">GRANT ALL PRIVILEGES ON jmeter_platform.* TO 'jmeter'@'localhost';<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">FLUSH PRIVILEGES;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">EXIT;<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u8fd9\u91cc\u521b\u5efa\u4e86\u540d\u4e3a<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">jmeter_platform<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;<\/span><\/span><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u7684\u6570\u636e\u5e93\uff0c\u4ee5\u53ca\u7528\u6237\u540d\u4e3a<\/span><\/span><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">jmeter<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u3001\u5bc6\u7801\u4e3a<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">Jmeter@123456<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u7684\u4e13\u7528\u7528\u6237\u3002\u8bf7\u6839\u636e\u5b9e\u9645\u5b89\u5168\u9700\u6c42\u4fee\u6539\u5bc6\u7801\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">8.2 \u521b\u5efa\u5e73\u53f0\u6570\u636e\u76ee\u5f55<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6d4b\u8bd5\u5e73\u53f0\u9700\u8981\u5b58\u50a8\u4e0a\u4f20\u7684 JMX \u6587\u4ef6\u3001\u751f\u6210\u7684 JTL \u7ed3\u679c\u548c HTML \u62a5\u544a\u3002\u5efa\u8bae\u521b\u5efa\u4e13\u7528\u7684\u6570\u636e\u76ee\u5f55\uff0c\u5e76\u8bbe\u7f6e\u5408\u9002\u7684\u6743\u9650\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo mkdir -p \/var\/lib\/jmeter-platform\/uploads<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo mkdir -p \/var\/lib\/jmeter-platform\/reports<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo chown -R jmeter-app:jmeter-app \/var\/lib\/jmeter-platform<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo chmod -R 755 \/var\/lib\/jmeter-platform<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">8.3 \u540e\u7aef\u6253\u5305<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u8fdb\u5165\u540e\u7aef\u9879\u76ee\u76ee\u5f55\uff0c\u4f7f\u7528 Maven \u6253\u5305\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">cd ~\/projects\/jmeter-platform<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">mvn clean package -DskipTests<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6253\u5305\u5b8c\u6210\u540e\uff0c\u5728&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">target<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u76ee\u5f55\u4e0b\u4f1a\u751f\u6210<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">jmeter-platform-1.0.0.jar<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u6587\u4ef6\u3002\u6211\u4eec\u5c06\u8fd9\u4e2a jar \u6587\u4ef6\u590d\u5236\u5230\u90e8\u7f72\u76ee\u5f55\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo mkdir -p \/opt\/jmeter-platform<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo cp target\/jmeter-platform-1.0.0.jar \/opt\/jmeter-platform\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo chown -R jmeter-app:jmeter-app \/opt\/jmeter-platform<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">8.4 \u524d\u7aef\u6784\u5efa<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u8fdb\u5165\u524d\u7aef\u9879\u76ee\u76ee\u5f55\uff0c\u5b89\u88c5\u4f9d\u8d56\u5e76\u6784\u5efa\u751f\u4ea7\u7248\u672c\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">cd ~\/projects\/jmeter-platform-ui<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">npm install<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">npm run build<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6784\u5efa\u5b8c\u6210\u540e\uff0c\u4f1a\u751f\u6210&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">dist<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u76ee\u5f55\u3002\u5c06&nbsp;<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">dist<\/span><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u76ee\u5f55\u590d\u5236\u5230&nbsp;<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">Nginx<\/span><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u7684\u7f51\u7ad9\u76ee\u5f55\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo mkdir -p \/var\/www\/jmeter-platform<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo cp -r dist\/* \/var\/www\/jmeter-platform\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo chown -R www-data:www-data \/var\/www\/jmeter-platform<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">8.5 \u4f7f\u7528 systemd \u7ba1\u7406\u540e\u7aef\u670d\u52a1<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">systemd \u662f Ubuntu \u7cfb\u7edf\u7684\u670d\u52a1\u7ba1\u7406\u5de5\u5177\uff0c\u901a\u8fc7\u914d\u7f6e systemd \u670d\u52a1\u5355\u5143\uff0c\u6211\u4eec\u53ef\u4ee5\u5b9e\u73b0\u540e\u7aef\u670d\u52a1\u7684\u5f00\u673a\u81ea\u542f\u3001\u81ea\u52a8\u91cd\u542f\u548c\u65e5\u5fd7\u7ba1\u7406\u3002<\/span><\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u521b\u5efa systemd \u670d\u52a1\u6587\u4ef6\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo nano \/etc\/systemd\/system\/jmeter-platform.service<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6587\u4ef6\u5185\u5bb9\u5982\u4e0b\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">[Unit]<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">Description=JMeter Automation Testing Platform<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">After=network.target mysql.service<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">[Service]<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">Type=simple<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">User=jmeter-app<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">Group=jmeter-app<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">WorkingDirectory=\/opt\/jmeter-platform<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">ExecStart=\/usr\/bin\/java -jar \/opt\/jmeter-platform\/jmeter-platform-1.0.0.jar<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">Restart=on-failure<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">RestartSec=10<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">Environment=JAVA_HOME=\/usr\/lib\/jvm\/java-17-openjdk-amd64<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">Environment=JMETER_HOME=\/opt\/jmeter<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">[Install]<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">WantedBy=multi-user.target<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u670d\u52a1\u6587\u4ef6\u8bf4\u660e\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">After=network.target mysql.service<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u786e\u4fdd\u7f51\u7edc\u548c MySQL \u670d\u52a1\u542f\u52a8\u540e\u518d\u542f\u52a8\u672c\u5e73\u53f0\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">User\/Group=jmeter-app<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u4f7f\u7528\u4e13\u7528\u7528\u6237\u8fd0\u884c\u670d\u52a1\uff0c\u964d\u4f4e\u6743\u9650\u98ce\u9669\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">WorkingDirectory<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u8bbe\u7f6e\u5de5\u4f5c\u76ee\u5f55\uff0cSpring Boot \u4f1a\u5728\u6b64\u76ee\u5f55\u4e0b\u8fd0\u884c\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">ExecStart<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u542f\u52a8\u547d\u4ee4\uff0c\u4f7f\u7528\u7cfb\u7edf Java \u8fd0\u884c jar \u5305\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">Restart=on-failure<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u5f53\u670d\u52a1\u5f02\u5e38\u9000\u51fa\u65f6\u81ea\u52a8\u91cd\u542f\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">Environment<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u8bbe\u7f6e\u5fc5\u8981\u7684\u73af\u5883\u53d8\u91cf\uff0c\u786e\u4fdd JMeter \u80fd\u6b63\u786e\u627e\u5230 Java \u548c JMeter \u8def\u5f84\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u91cd\u65b0\u52a0\u8f7d systemd \u914d\u7f6e\uff0c\u542f\u52a8\u5e76\u542f\u7528\u670d\u52a1\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo systemctl daemon-reload<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo systemctl start jmeter-platform<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo systemctl enable jmeter-platform<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u67e5\u770b\u670d\u52a1\u72b6\u6001\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo systemctl status jmeter-platform<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u67e5\u770b\u65e5\u5fd7\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo journalctl -u jmeter-platform -f<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u670d\u52a1\u542f\u52a8\u5931\u8d25\uff0c\u53ef\u4ee5\u901a\u8fc7<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">journalctl<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u67e5\u770b\u8be6\u7ec6\u9519\u8bef\u4fe1\u606f\uff0c\u5e38\u89c1\u95ee\u9898\u5305\u62ec\u6570\u636e\u5e93\u8fde\u63a5\u5931\u8d25\u3001\u7aef\u53e3\u88ab\u5360\u7528\u3001JMeter \u8def\u5f84\u9519\u8bef\u7b49\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">8.6 \u914d\u7f6e Nginx \u53cd\u5411\u4ee3\u7406<\/span><\/span><\/h3>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">Nginx \u8d1f\u8d23\u5bf9\u5916\u63d0\u4f9b\u7edf\u4e00\u7684\u8bbf\u95ee\u5165\u53e3\uff0c\u5c06\u524d\u7aef\u9759\u6001\u8d44\u6e90\u8bf7\u6c42\u548c API \u8bf7\u6c42\u5206\u522b\u8def\u7531\u5230\u6b63\u786e\u7684\u4f4d\u7f6e\u3002\u8fd9\u79cd\u914d\u7f6e\u65b9\u5f0f\u53ef\u4ee5\u907f\u514d\u6d4f\u89c8\u5668\u8de8\u57df\u95ee\u9898\uff0c\u4e5f\u66f4\u7b26\u5408\u751f\u4ea7\u73af\u5883\u90e8\u7f72\u4e60\u60ef\u3002<\/span><\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u9996\u5148\u5b89\u88c5 Nginx\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo apt install -y nginx<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u521b\u5efa Nginx \u914d\u7f6e\u6587\u4ef6\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo nano \/etc\/nginx\/sites-available\/jmeter-platform<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u914d\u7f6e\u6587\u4ef6\u5185\u5bb9\u5982\u4e0b\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">server {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; listen 80;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; server_name _; &nbsp;# \u53ef\u6539\u4e3a\u5b9e\u9645\u57df\u540d\u6216\u670d\u52a1\u5668 IP<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; client_max_body_size 100M;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; # \u524d\u7aef\u9759\u6001\u8d44\u6e90<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; location \/ {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; root \/var\/www\/jmeter-platform;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; index index.html;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; try_files $uri $uri\/ \/index.html;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; # \u540e\u7aef API \u4ee3\u7406<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; location \/api\/ {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; proxy_pass http:\/\/localhost:8080\/;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; proxy_http_version 1.1;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header Host $host;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header X-Real-IP $remote_addr;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header X-Forwarded-Proto $scheme;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; # \u53ef\u9009\uff1a\u9759\u6001\u62a5\u544a\u76ee\u5f55\u4ee3\u7406<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; location \/reports\/ {<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; alias \/var\/lib\/jmeter-platform\/reports\/;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; autoindex on;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; }<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">}<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u542f\u7528\u8be5\u7ad9\u70b9\u914d\u7f6e\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo ln -s \/etc\/nginx\/sites-available\/jmeter-platform \/etc\/nginx\/sites-enabled\/<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo nginx -t<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo systemctl reload nginx<\/span><\/code><\/pre>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><span leaf=\"\">\u6ce8\u610f\uff1a\u4f7f\u7528&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">proxy_pass http:\/\/localhost:8080\/;<\/span><\/code><span leaf=\"\">&nbsp;\u65f6\uff0c\u672b\u5c3e\u7684\u659c\u6760\u5f88\u91cd\u8981\u3002\u8fd9\u6837\u914d\u7f6e\u540e\uff0c\u524d\u7aef\u8bf7\u6c42&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">\/api\/plans<\/span><\/code><span leaf=\"\">&nbsp;\u4f1a\u88ab\u8f6c\u53d1\u5230\u540e\u7aef\u7684&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">\/plans<\/span><\/code><span leaf=\"\">\u3002<\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u9ed8\u8ba4\u7684 Nginx \u9ed8\u8ba4\u7ad9\u70b9\u5360\u7528 80 \u7aef\u53e3\uff0c\u5efa\u8bae\u5220\u9664\u6216\u7981\u7528\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo rm \/etc\/nginx\/sites-enabled\/default<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">sudo systemctl reload nginx<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">8.7 \u90e8\u7f72\u540e\u7684\u9a8c\u8bc1\u6e05\u5355<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5b8c\u6210\u4ee5\u4e0a\u90e8\u7f72\u6b65\u9aa4\u540e\uff0c\u5efa\u8bae\u6309\u7167\u4ee5\u4e0b\u6e05\u5355\u8fdb\u884c\u9a8c\u8bc1\uff1a<\/span><\/span><\/p>\n<table style=\"box-sizing: border-box;margin: 20px 0px;padding: 0px;width: 860px;border-collapse: collapse;background: var(--card-bg);border-radius: 8px;overflow: hidden;box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\">\n<thead>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<th style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);background: var(--primary-color);color: white;font-weight: 600;\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 16px;color: rgb(123, 12, 0);\">\u68c0\u67e5\u9879<\/span><\/span><\/section>\n<\/th>\n<th style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);background: var(--primary-color);color: white;font-weight: 600;\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: rgb(123, 12, 0);\">\u9a8c\u8bc1\u65b9\u6cd5<\/span><\/span><\/section>\n<\/th>\n<th style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);background: var(--primary-color);color: white;font-weight: 600;\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: rgb(123, 12, 0);\">\u9884\u671f\u7ed3\u679c<\/span><\/span><\/section>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">MySQL \u670d\u52a1<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">sudo systemctl status mysql<\/span><\/code><\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u72b6\u6001\u4e3a active (running)<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u540e\u7aef\u670d\u52a1<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">sudo systemctl status jmeter-platform<\/span><\/code><\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u72b6\u6001\u4e3a active (running)<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">Nginx \u670d\u52a1<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">sudo systemctl status nginx<\/span><\/code><\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u72b6\u6001\u4e3a active (running)<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">API \u63a5\u53e3<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">curl http:\/\/localhost\/api\/plans<\/span><\/code><\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u8fd4\u56de JSON \u6570\u636e<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u524d\u7aef\u9875\u9762<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u6d4f\u89c8\u5668\u8bbf\u95ee http:\/\/\u670d\u52a1\u5668IP<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u663e\u793a\u5e73\u53f0\u767b\u5f55\u6216\u9996\u9875<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"box-sizing: border-box;margin: 0px;padding: 0px;\">\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u6587\u4ef6\u4e0a\u4f20<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u4e0a\u4f20\u4e00\u4e2a JMX \u6587\u4ef6<\/span><\/section>\n<\/td>\n<td style=\"box-sizing: border-box;margin: 0px;padding: 12px 16px;text-align: left;border-bottom: 1px solid var(--border-color);\">\n<section><span leaf=\"\">\u6587\u4ef6\u4fdd\u5b58\u5230 \/var\/lib\/jmeter-platform\/uploads<\/span><\/section>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><br  \/><\/span><\/h2>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><br  \/><\/span><\/h2>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;font-weight: bold;\">\u4e5d\u3001\u5b9e\u6218\u6f14\u793a\uff1a\u4ece\u96f6\u6267\u884c\u4e00\u6b21\u5b8c\u6574\u7684\u6027\u80fd\u6d4b\u8bd5<\/span><\/span><\/h2>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u7ecf\u8fc7\u524d\u9762\u7684\u90e8\u7f72\uff0c\u5e73\u53f0\u5df2\u7ecf\u5177\u5907\u4e86\u8fd0\u884c\u6d4b\u8bd5\u7684\u57fa\u672c\u80fd\u529b\u3002\u672c\u8282\u5c06\u901a\u8fc7\u4e00\u4e2a\u5b8c\u6574\u7684\u5b9e\u6218\u6848\u4f8b\uff0c\u6f14\u793a\u5982\u4f55\u8bbe\u8ba1\u6d4b\u8bd5\u8ba1\u5212\u3001\u4e0a\u4f20\u8ba1\u5212\u3001\u914d\u7f6e\u6267\u884c\u53c2\u6570\u3001\u542f\u52a8\u6d4b\u8bd5\u3001\u67e5\u770b\u7ed3\u679c\u548c\u751f\u6210\u62a5\u544a\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">9.1 \u6d4b\u8bd5\u573a\u666f\u8bbe\u8ba1<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5047\u8bbe\u6211\u4eec\u8981\u6d4b\u8bd5\u4e00\u4e2a\u57fa\u4e8e Spring Boot \u5f00\u53d1\u7684\u7528\u6237\u67e5\u8be2\u63a5\u53e3\uff0c\u63a5\u53e3\u5730\u5740\u4e3a&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">http:\/\/demo.example.com\/api\/users<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u3002\u6d4b\u8bd5\u76ee\u6807\u662f\u9a8c\u8bc1\u8be5\u63a5\u53e3\u5728 50 \u5e76\u53d1\u7528\u6237\u3001\u6301\u7eed 5 \u5206\u949f\u7684\u60c5\u51b5\u4e0b\uff0c\u80fd\u5426\u4fdd\u6301\u7a33\u5b9a\u54cd\u5e94\uff0c\u4ee5\u53ca\u7cfb\u7edf\u7684\u5e73\u5747\u54cd\u5e94\u65f6\u95f4\u548c\u541e\u5410\u91cf\u3002<\/span><\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6d4b\u8bd5\u6307\u6807\u5173\u6ce8\u70b9\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u5e73\u5747\u54cd\u5e94\u65f6\u95f4<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u53cd\u6620\u63a5\u53e3\u5904\u7406\u901f\u5ea6\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u541e\u5410\u91cf\uff08TPS\uff09<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u6bcf\u79d2\u5904\u7406\u7684\u8bf7\u6c42\u6570\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u9519\u8bef\u7387<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u8bf7\u6c42\u5931\u8d25\u7684\u6bd4\u4f8b\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">90% \u54cd\u5e94\u65f6\u95f4<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a90% \u7684\u8bf7\u6c42\u54cd\u5e94\u65f6\u95f4\u4f4e\u4e8e\u8be5\u503c\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u6700\u5c0f\/\u6700\u5927\u54cd\u5e94\u65f6\u95f4<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u54cd\u5e94\u65f6\u95f4\u7684\u8fb9\u754c\u503c\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">9.2 \u521b\u5efa JMeter \u6d4b\u8bd5\u8ba1\u5212<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u4f60\u6709\u672c\u5730 JMeter GUI\uff0c\u53ef\u4ee5\u6309\u4ee5\u4e0b\u6b65\u9aa4\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\u3002\u5982\u679c\u6ca1\u6709\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u6211\u4eec\u63d0\u4f9b\u7684 JMX \u6a21\u677f\u5185\u5bb9\uff0c\u4fdd\u5b58\u4e3a&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;\">demo-user-api.jmx<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u540e\u4e0a\u4f20\u3002<\/span><\/span><\/p>\n<p><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;font-weight: bold;\">\u6b65\u9aa4 1\uff1a\u65b0\u5efa\u6d4b\u8bd5\u8ba1\u5212<\/span><\/span><\/strong><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6253\u5f00 JMeter GUI\uff0c\u65b0\u5efa\u4e00\u4e2a\u6d4b\u8bd5\u8ba1\u5212\uff0c\u547d\u540d\u4e3a &#8220;\u7528\u6237\u67e5\u8be2\u63a5\u53e3\u538b\u529b\u6d4b\u8bd5&#8221;\u3002<\/span><\/span><\/p>\n<p><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;font-weight: bold;\">\u6b65\u9aa4 2\uff1a\u6dfb\u52a0\u7ebf\u7a0b\u7ec4<\/span><\/span><\/strong><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u53f3\u952e\u70b9\u51fb\u6d4b\u8bd5\u8ba1\u5212\uff0c\u9009\u62e9 &#8220;Add -&gt; Threads (Users) -&gt; Thread Group&#8221;\u3002\u5728\u7ebf\u7a0b\u7ec4\u4e2d\u914d\u7f6e\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Number of Threads (users)\uff1a\u4f7f\u7528&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">${__P(threadCount,10)}<\/span><\/code><span leaf=\"\">\uff0c\u8868\u793a\u9ed8\u8ba4 10\uff0c\u53ef\u901a\u8fc7\u547d\u4ee4\u884c\u53c2\u6570\u8986\u76d6\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Ramp-up period (seconds)\uff1a\u4f7f\u7528&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">${__P(rampUpSeconds,10)}<\/span><\/code><span leaf=\"\">\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Loop Count\uff1a\u9009\u62e9 Forever\uff0c\u5e76\u52fe\u9009 &#8220;Specify Thread lifetime&#8221;\uff0cDuration \u4f7f\u7528&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">${__P(durationSeconds,60)}<\/span><\/code><span leaf=\"\">\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: #0052ff;\">\u4e3a\u4ec0\u4e48\u4f7f\u7528 ${__P(&#8230;)}\uff1f<\/span><\/span><\/strong><span leaf=\"\"><span textstyle=\"\" style=\"color: #0052ff;\">\uff1a<\/span>\u901a\u8fc7 JMeter \u5c5e\u6027\u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u5728\u542f\u52a8\u6d4b\u8bd5\u65f6\u52a8\u6001\u4f20\u5165\u53c2\u6570\u3002\u4f8b\u5982&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">-JthreadCount=50<\/span><\/code><span leaf=\"\">&nbsp;\u4f1a\u8986\u76d6\u9ed8\u8ba4\u503c\uff0c\u8fd9\u6837\u5e73\u53f0\u5c31\u53ef\u4ee5\u6839\u636e\u7528\u6237\u5728\u524d\u7aef\u586b\u5199\u7684\u53c2\u6570\u6765\u7075\u6d3b\u63a7\u5236\u5e76\u53d1\u6570\u548c\u6301\u7eed\u65f6\u95f4\uff0c\u800c\u65e0\u9700\u4fee\u6539 JMX \u6587\u4ef6\u3002<\/span><\/p>\n<p><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;font-weight: bold;\">\u6b65\u9aa4 3\uff1a\u6dfb\u52a0 HTTP \u8bf7\u6c42<\/span><\/span><\/strong><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u53f3\u952e\u7ebf\u7a0b\u7ec4\uff0c\u9009\u62e9 &#8220;Add -&gt; Sampler -&gt; HTTP Request&#8221;\u3002\u914d\u7f6e\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Protocol\uff1ahttp<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Server Name or IP\uff1ademo.example.com\uff08\u6216\u5b9e\u9645\u88ab\u6d4b\u7cfb\u7edf\u5730\u5740\uff09<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Port Number\uff1a80<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Method\uff1aGET<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Path\uff1a\/api\/users<\/span><\/section>\n<\/li>\n<\/ul>\n<p><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;font-weight: bold;\">\u6b65\u9aa4 4\uff1a\u6dfb\u52a0\u8bf7\u6c42\u5934<\/span><\/span><\/strong><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u53f3\u952e HTTP \u8bf7\u6c42\uff0c\u9009\u62e9 &#8220;Add -&gt; Config Element -&gt; HTTP Header Manager&#8221;\u3002\u6839\u636e\u63a5\u53e3\u9700\u6c42\u6dfb\u52a0\u8bf7\u6c42\u5934\uff0c\u4f8b\u5982\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Content-Type: application\/json<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">Authorization: Bearer xxx\uff08\u5982\u679c\u9700\u8981\u8ba4\u8bc1\uff09<\/span><\/section>\n<\/li>\n<\/ul>\n<p><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;font-weight: bold;\">\u6b65\u9aa4 5\uff1a\u6dfb\u52a0\u76d1\u542c\u5668<\/span><\/span><\/strong><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6dfb\u52a0 &#8220;View Results Tree&#8221; \u548c &#8220;Summary Report&#8221; \u76d1\u542c\u5668\u7528\u4e8e\u8c03\u8bd5\u3002\u5728 GUI \u672c\u5730\u8c03\u8bd5\u65f6\u4f7f\u7528\uff0c\u4e0a\u4f20\u5230\u670d\u52a1\u5668\u540e\u4e0d\u9700\u8981\u8fd9\u4e9b\u76d1\u542c\u5668\uff08\u4e5f\u53ef\u4ee5\u4fdd\u7559\uff0c\u4e0d\u5f71\u54cd CLI \u6267\u884c\uff09\u3002<\/span><\/span><\/p>\n<p><strong><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;font-weight: bold;\">\u6b65\u9aa4 6\uff1a\u4fdd\u5b58\u4e3a JMX \u6587\u4ef6<\/span><\/span><\/strong><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5c06\u6d4b\u8bd5\u8ba1\u5212\u4fdd\u5b58\u4e3a&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">demo-user-api.jmx<\/span><\/span><\/code><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u4f60\u4e0d\u60f3\u4f7f\u7528 GUI\uff0c\u4e5f\u53ef\u4ee5\u76f4\u63a5\u521b\u5efa\u4ee5\u4e0b JMX \u6587\u4ef6\u5185\u5bb9\u3002\u8fd9\u662f\u4e00\u4e2a\u7b80\u5316\u7248\u7684 JMX \u6587\u4ef6\u793a\u4f8b\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&lt;jmeterTestPlan version=\"1.2\" properties=\"5.0\" jmeter=\"5.6.3\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &lt;hashTree&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;TestPlan guiclass=\"TestPlanGui\" testclass=\"TestPlan\" testname=\"\u7528\u6237\u67e5\u8be2\u63a5\u53e3\u538b\u529b\u6d4b\u8bd5\" enabled=\"true\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;stringProp name=\"TestPlan.comments\"&gt;&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;boolProp name=\"TestPlan.functional_mode\"&gt;false&lt;\/boolProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;boolProp name=\"TestPlan.tearDown_on_shutdown\"&gt;true&lt;\/boolProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;boolProp name=\"TestPlan.serialize_threadgroups\"&gt;false&lt;\/boolProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;elementProp name=\"TestPlan.user_defined_variables\" elementType=\"Arguments\" guiclass=\"ArgumentsPanel\" testclass=\"Arguments\" testname=\"\u7528\u6237\u5b9a\u4e49\u7684\u53d8\u91cf\" enabled=\"true\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;collectionProp name=\"Arguments.arguments\"\/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;\/elementProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;stringProp name=\"TestPlan.user_define_classpath\"&gt;&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;\/TestPlan&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;hashTree&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;ThreadGroup guiclass=\"ThreadGroupGui\" testclass=\"ThreadGroup\" testname=\"\u7528\u6237\u7ebf\u7a0b\u7ec4\" enabled=\"true\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"ThreadGroup.on_sample_error\"&gt;continue&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;elementProp name=\"ThreadGroup.main_controller\" elementType=\"LoopController\" guiclass=\"LoopControlPanel\" testclass=\"LoopController\" testname=\"\u5faa\u73af\u63a7\u5236\u5668\" enabled=\"true\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;boolProp name=\"LoopController.continue_forever\"&gt;false&lt;\/boolProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"LoopController.loops\"&gt;${__P(loopCount,-1)}&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/elementProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"ThreadGroup.num_threads\"&gt;${__P(threadCount,10)}&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"ThreadGroup.ramp_time\"&gt;${__P(rampUpSeconds,10)}&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;boolProp name=\"ThreadGroup.scheduler\"&gt;true&lt;\/boolProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"ThreadGroup.duration\"&gt;${__P(durationSeconds,60)}&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"ThreadGroup.delay\"&gt;&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;boolProp name=\"ThreadGroup.same_user_on_next_iteration\"&gt;true&lt;\/boolProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;\/ThreadGroup&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;hashTree&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;HTTPSamplerProxy guiclass=\"HttpTestSampleGui\" testclass=\"HTTPSamplerProxy\" testname=\"\u7528\u6237\u67e5\u8be2\u63a5\u53e3\" enabled=\"true\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;elementProp name=\"HTTPsampler.Arguments\" elementType=\"Arguments\" guiclass=\"HTTPArgumentsPanel\" testclass=\"Arguments\" testname=\"\u7528\u6237\u5b9a\u4e49\u7684\u53d8\u91cf\" enabled=\"true\"&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;collectionProp name=\"Arguments.arguments\"\/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;\/elementProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"HTTPSampler.domain\"&gt;demo.example.com&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"HTTPSampler.port\"&gt;&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"HTTPSampler.protocol\"&gt;http&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"HTTPSampler.contentEncoding\"&gt;&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"HTTPSampler.path\"&gt;\/api\/users&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"HTTPSampler.method\"&gt;GET&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;boolProp name=\"HTTPSampler.follow_redirects\"&gt;true&lt;\/boolProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;boolProp name=\"HTTPSampler.auto_redirects\"&gt;false&lt;\/boolProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;boolProp name=\"HTTPSampler.use_keepalive\"&gt;true&lt;\/boolProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;boolProp name=\"HTTPSampler.DO_MULTIPART_POST\"&gt;false&lt;\/boolProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"HTTPSampler.embedded_url_re\"&gt;&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"HTTPSampler.connect_timeout\"&gt;&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;stringProp name=\"HTTPSampler.response_timeout\"&gt;&lt;\/stringProp&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;\/HTTPSamplerProxy&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &lt;hashTree\/&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &nbsp; &lt;\/hashTree&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &nbsp; &lt;\/hashTree&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&nbsp; &lt;\/hashTree&gt;<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">&lt;\/jmeterTestPlan&gt;<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">9.3 \u4e0a\u4f20\u6d4b\u8bd5\u8ba1\u5212<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6253\u5f00\u6d4f\u89c8\u5668\uff0c\u8bbf\u95ee\u5e73\u53f0\u5730\u5740\uff08\u4f8b\u5982&nbsp;<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;\">http:\/\/192.168.1.100<\/span><span textstyle=\"\" style=\"font-size: 16px;\">\uff09\u3002\u767b\u5f55\u540e\u8fdb\u5165 &#8220;\u6d4b\u8bd5\u8ba1\u5212\u7ba1\u7406&#8221; \u9875\u9762\uff0c\u70b9\u51fb &#8220;\u4e0a\u4f20\u8ba1\u5212&#8221; \u6309\u94ae\uff0c\u9009\u62e9&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;\">demo-user-api.jmx<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;\">&nbsp;<\/span><span textstyle=\"\" style=\"font-size: 16px;\">\u6587\u4ef6\uff0c\u586b\u5199\u8ba1\u5212\u540d\u79f0\u548c\u63cf\u8ff0\uff0c\u70b9\u51fb\u4e0a\u4f20\u3002<\/span><\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4e0a\u4f20\u6210\u529f\u540e\uff0c\u6587\u4ef6\u4f1a\u88ab\u4fdd\u5b58\u5230&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">\/var\/lib\/jmeter-platform\/uploads<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u76ee\u5f55\uff0c\u540c\u65f6\u5728\u6570\u636e\u5e93\u7684<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">test_plan<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u8868\u4e2d\u65b0\u589e\u4e00\u6761\u8bb0\u5f55\u3002\u4f60\u53ef\u4ee5\u5728\u670d\u52a1\u5668\u4e0a\u67e5\u770b\u786e\u8ba4\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">ls -la \/var\/lib\/jmeter-platform\/uploads<\/span><\/code><\/pre>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">9.4 \u914d\u7f6e\u5e76\u542f\u52a8\u6d4b\u8bd5<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u4e2d\uff0c\u627e\u5230\u521a\u4e0a\u4f20\u7684 &#8220;\u7528\u6237\u67e5\u8be2\u63a5\u53e3\u538b\u529b\u6d4b\u8bd5&#8221; \u8ba1\u5212\uff0c\u70b9\u51fb &#8220;\u6267\u884c&#8221; \u6309\u94ae\u3002\u5728\u5f39\u51fa\u7684\u5bf9\u8bdd\u6846\u4e2d\u914d\u7f6e\u53c2\u6570\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u5e76\u53d1\u7ebf\u7a0b\u6570\uff1a50<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u6301\u7eed\u65f6\u95f4\uff1a300 \u79d2\uff085 \u5206\u949f\uff09<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u542f\u52a8\u65f6\u95f4\uff1a30 \u79d2<\/span><\/section>\n<\/li>\n<\/ul>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u70b9\u51fb &#8220;\u542f\u52a8&#8221; \u540e\uff0c\u524d\u7aef\u4f1a\u8c03\u7528\u540e\u7aef API&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">POST&nbsp;<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">\/api\/tasks\/execute\/{planId}<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\uff0c\u540e\u7aef\u521b\u5efa\u4efb\u52a1\u8bb0\u5f55\u5e76\u542f\u52a8\u5f02\u6b65\u6267\u884c\u3002\u6b64\u65f6\u4efb\u52a1\u72b6\u6001\u53d8\u4e3a RUNNING\u3002<\/span><\/span><\/p>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728\u540e\u7aef\u65e5\u5fd7\u4e2d\uff0c\u53ef\u4ee5\u901a\u8fc7&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">journalctl<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u5b9e\u65f6\u67e5\u770b JMeter \u7684\u8f93\u51fa\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">sudo journalctl -u jmeter-platform -f<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728 JMeter \u6267\u884c\u8fc7\u7a0b\u4e2d\uff0c\u4f60\u53ef\u4ee5\u5728\u4efb\u52a1\u5217\u8868\u9875\u9762\u770b\u5230\u4efb\u52a1\u72b6\u6001\u4e3a RUNNING\u3002\u6d4b\u8bd5\u6267\u884c\u5b8c\u6210\u540e\uff0c\u72b6\u6001\u4f1a\u53d8\u4e3a SUCCESS \u6216 FAILED\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">9.5 \u67e5\u770b\u6d4b\u8bd5\u7ed3\u679c\u4e0e\u65e5\u5fd7<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6d4b\u8bd5\u6267\u884c\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u4efb\u52a1\u5217\u8868\u4e2d\u7684 &#8220;\u8be6\u60c5&#8221; \u6309\u94ae\uff0c\u53ef\u4ee5\u67e5\u770b\u4efb\u52a1\u7684\u8be6\u7ec6\u4fe1\u606f\u3002\u540e\u7aef\u4f1a\u5c06 JMeter \u7684\u5b8c\u6574\u65e5\u5fd7\u8f93\u51fa\u4fdd\u5b58\u5230<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;\">&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;\">log_output<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u5b57\u6bb5\uff0c\u5e76\u5728\u8be6\u60c5\u9875\u9762\u5c55\u793a\u3002\u5178\u578b\u65e5\u5fd7\u5185\u5bb9\u5305\u62ec\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">Creating summariser summary<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">Created the tree successfully using \/var\/lib\/jmeter-platform\/uploads\/demo-user-api.jmx<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">Starting standalone test on Sat Jun 20 11:46:00 CST 2026 at 1624182360000<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">Waiting for possible Shutdown\/StopTestNow\/HeapDump\/ThreadDump message on port 4445<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">summary + 1234 in 00:00:10 = 123.4\/s Avg: 45 Min: 12 Max: 234 Err: 0 (0.00%) Active: 50 Started: 50 Finished: 0<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">summary + 5678 in 00:00:30 = 189.3\/s Avg: 52 Min: 15 Max: 456 Err: 2 (0.04%) Active: 50 Started: 50 Finished: 0<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">summary = 6912 in 00:00:40 = 172.8\/s Avg: 50 Min: 12 Max: 456 Err: 2 (0.03%)<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">Tidying up ...<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">... end of run<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u65e5\u5fd7\u4e2d\u7684\u5173\u952e\u4fe1\u606f\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">Avg<\/span><\/code><br \/>\n<section><span leaf=\"\">\uff1a\u5e73\u5747\u54cd\u5e94\u65f6\u95f4\uff08\u6beb\u79d2\uff09\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">Min\/Max<\/span><\/code><br \/>\n<section><span leaf=\"\">\uff1a\u6700\u5c0f\u548c\u6700\u5927\u54cd\u5e94\u65f6\u95f4\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">Err<\/span><\/code><br \/>\n<section><span leaf=\"\">\uff1a\u9519\u8bef\u6570\u548c\u9519\u8bef\u7387\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">Active<\/span><\/code><br \/>\n<section><span leaf=\"\">\uff1a\u5f53\u524d\u6d3b\u8dc3\u7ebf\u7a0b\u6570\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">Started\/Finished<\/span><\/code><br \/>\n<section><span leaf=\"\">\uff1a\u5df2\u542f\u52a8\u548c\u5df2\u5b8c\u6210\u7684\u7ebf\u7a0b\u6570\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">9.6 \u67e5\u770b HTML \u6d4b\u8bd5\u62a5\u544a<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">JMeter \u6267\u884c\u5b8c\u6210\u540e\uff0c\u4f1a\u81ea\u52a8\u751f\u6210 HTML \u62a5\u544a\uff0c\u4fdd\u5b58\u5230&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">\/var\/lib\/jmeter-platform\/reports\/{uuid}\/report<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u76ee\u5f55\u3002\u62a5\u544a\u4e2d\u5305\u542b\u4e30\u5bcc\u7684\u56fe\u8868\u548c\u7edf\u8ba1\u4fe1\u606f\uff0c\u4e3b\u8981\u5305\u62ec\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">Dashboard<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u6d4b\u8bd5\u6982\u89c8\uff0c\u5305\u62ec\u6837\u672c\u6570\u3001\u5e73\u5747\u54cd\u5e94\u65f6\u95f4\u3001\u541e\u5410\u91cf\u3001\u9519\u8bef\u7387\u7b49\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">Charts<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u54cd\u5e94\u65f6\u95f4\u968f\u65f6\u95f4\u53d8\u5316\u56fe\u3001\u6d3b\u8dc3\u7ebf\u7a0b\u6570\u56fe\u3001\u541e\u5410\u91cf\u56fe\u3001\u9519\u8bef\u7387\u56fe\u7b49\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">Statistics<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u6bcf\u4e2a\u8bf7\u6c42\u6837\u672c\u7684\u7edf\u8ba1\u8868\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">Errors<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u9519\u8bef\u8bf7\u6c42\u8be6\u60c5\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c Nginx \u914d\u7f6e\u4e86<\/span><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #ff2941;\">\/reports\/<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u8def\u5f84\u4ee3\u7406\uff0c\u53ef\u4ee5\u76f4\u63a5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\uff1a<\/span><\/span><\/p>\n<pre style=\"box-sizing: border-box;margin: 20px 0px;padding: 20px;background: rgb(30, 41, 59);color: rgb(226, 232, 240);border-radius: 8px;overflow-x: auto;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;font-size: 0.9em;line-height: 1.5;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><code style=\"box-sizing: border-box;margin: 0px;padding: 0px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: transparent;border-radius: 4px;font-size: 1em;color: inherit;\"><span leaf=\"\">http:\/\/192.168.1.100\/reports\/{uuid}\/report\/index.html<\/span><\/code><\/pre>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u9700\u8981\u901a\u8fc7\u5e73\u53f0\u754c\u9762\u5c55\u793a\uff0c\u53ef\u4ee5\u5728\u540e\u7aef\u63d0\u4f9b API \u8fd4\u56de\u62a5\u544a\u8def\u5f84\uff0c\u6216\u76f4\u63a5\u8bfb\u53d6\u62a5\u544a\u4e2d\u7684\u5173\u952e\u6307\u6807\u5b58\u5165\u6570\u636e\u5e93\uff0c\u524d\u7aef\u5c55\u793a\u805a\u5408\u540e\u7684\u6307\u6807\u3002<\/span><\/span><\/p>\n<section style=\"text-align: center;\" nodeleaf=\"\">\n<figure class=\"wx-qr-wrap\"><img decoding=\"async\" class=\"rich_pages wxw-img\" data-aistatus=\"1\" data-imgfileid=\"100000407\" data-s=\"300,640\" data-type=\"png\" type=\"block\" src=\"https:\/\/mmbiz.qpic.cn\/mmbiz_png\/BWmfcibGhS1JGuEVdibzqyOToKpNb90z6YR5paEQicxXW1uzarqN6iar3R8mvjXDUkmwCfE7NTpAr1fCSUHjiaLlruXLaNB4YOjicWNPke9f2oFM4\/640?wx_fmt=png&#038;from=appmsg\" \/><figcaption class=\"wx-qr-tip\"><img decoding=\"async\" src=\"https:\/\/www.deartester.com\/wp-content\/uploads\/2026\/09\/wechat-qr.jpg\" alt=\"\u5fae\u4fe1\u516c\u4f17\u53f7\u4e8c\u7ef4\u7801\" loading=\"lazy\"><span>\u56fe\u7247\u5f15\u81ea\u5fae\u4fe1\u516c\u4f17\u53f7\uff0c\u626b\u7801\u5173\u6ce8\u9605\u8bfb\u539f\u6587<\/span><\/figcaption><\/figure>\n<\/section>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">9.7 \u7ed3\u679c\u5206\u6790\u4e0e\u4f18\u5316\u5efa\u8bae<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u62ff\u5230\u6d4b\u8bd5\u62a5\u544a\u540e\uff0c\u9700\u8981\u6839\u636e\u5173\u952e\u6307\u6807\u8fdb\u884c\u5206\u6790\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u89c1\u7684\u5206\u6790\u7ef4\u5ea6\u548c\u4f18\u5316\u5efa\u8bae\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u5e73\u5747\u54cd\u5e94\u65f6\u95f4\u8fc7\u957f<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u68c0\u67e5\u540e\u7aef\u63a5\u53e3\u662f\u5426\u6709\u6162 SQL\u3001\u662f\u5426\u9700\u8981\u589e\u52a0\u7d22\u5f15\u3001\u662f\u5426\u6709\u591a\u4f59\u7684\u6570\u636e\u5e93\u67e5\u8be2\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u9519\u8bef\u7387\u8f83\u9ad8<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u67e5\u770b\u9519\u8bef\u7c7b\u578b\uff0c\u53ef\u80fd\u662f\u8fde\u63a5\u8d85\u65f6\u3001\u670d\u52a1\u7aef 500 \u9519\u8bef\u3001\u6570\u636e\u5e93\u8fde\u63a5\u6c60\u8017\u5c3d\u7b49\u3002\u9700\u8981\u67e5\u770b\u5e94\u7528\u65e5\u5fd7\u5b9a\u4f4d\u539f\u56e0\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u541e\u5410\u91cf\u4e0a\u4e0d\u53bb<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u68c0\u67e5\u7f51\u7edc\u5e26\u5bbd\u3001\u670d\u52a1\u5668 CPU\/\u5185\u5b58\u3001\u5e94\u7528\u7ebf\u7a0b\u6570\u3001\u6570\u636e\u5e93\u8fde\u63a5\u6c60\u5927\u5c0f\u7b49\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u54cd\u5e94\u65f6\u95f4\u968f\u65f6\u95f4\u589e\u957f<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u53ef\u80fd\u5b58\u5728\u5185\u5b58\u6cc4\u6f0f\u3001\u8fde\u63a5\u672a\u91ca\u653e\u3001\u7f13\u5b58\u672a\u547d\u4e2d\u7b49\u95ee\u9898\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u901a\u8fc7\u591a\u6b21\u6267\u884c\u4e0d\u540c\u5e76\u53d1\u6570\u7684\u6d4b\u8bd5\uff0c\u53ef\u4ee5\u7ed8\u5236\u51fa\u7cfb\u7edf\u7684\u6027\u80fd\u66f2\u7ebf\uff0c\u627e\u5230\u7cfb\u7edf\u7684\u6027\u80fd\u74f6\u9888\u70b9\u548c\u6700\u5927\u627f\u8f7d\u80fd\u529b\u3002<\/span><\/span><\/p>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><br  \/><\/span><\/h2>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;font-weight: bold;\">\u5341\u3001\u5e38\u89c1\u95ee\u9898\u6392\u67e5\u4e0e\u4f18\u5316\u5efa\u8bae<\/span><\/span><\/h2>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5728\u642d\u5efa\u548c\u8fd0\u884c JMeter \u81ea\u52a8\u5316\u6d4b\u8bd5\u5e73\u53f0\u7684\u8fc7\u7a0b\u4e2d\uff0c\u53ef\u80fd\u4f1a\u9047\u5230\u5404\u79cd\u5404\u6837\u7684\u95ee\u9898\u3002\u672c\u8282\u603b\u7ed3\u4e00\u4e9b\u5e38\u89c1\u95ee\u9898\u548c\u89e3\u51b3\u65b9\u6848\uff0c\u5e2e\u52a9\u8bfb\u8005\u5feb\u901f\u6392\u67e5\u6545\u969c\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">10.1 \u7cfb\u7edf\u5b89\u88c5\u9636\u6bb5\u95ee\u9898<\/span><\/span><\/h3>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;\">\u95ee\u9898 1\uff1a\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u65e0\u6cd5\u8fde\u63a5\u7f51\u7edc<\/span><\/span><\/h4>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u5728\u5b89\u88c5 Ubuntu \u65f6\u65e0\u6cd5\u8fde\u63a5\u7f51\u7edc\uff0c\u53ef\u80fd\u662f\u7f51\u5361\u9a71\u52a8\u4e0d\u517c\u5bb9\u6216 DHCP \u65e0\u6cd5\u83b7\u53d6 IP\u3002\u89e3\u51b3\u65b9\u6cd5\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u68c0\u67e5\u7f51\u7ebf\u662f\u5426\u8fde\u63a5\uff0c\u6216\u865a\u62df\u673a\u7f51\u7edc\u9002\u914d\u5668\u662f\u5426\u8bbe\u7f6e\u4e3a NAT\/\u6865\u63a5\u6a21\u5f0f\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u5728\u5b89\u88c5\u754c\u9762\u9009\u62e9\u624b\u52a8\u914d\u7f6e\u7f51\u7edc\uff0c\u8f93\u5165\u9759\u6001 IP\u3001\u7f51\u5173\u548c DNS\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u5982\u679c\u662f\u7279\u6b8a\u7f51\u5361\uff0c\u53ef\u80fd\u9700\u8981\u624b\u52a8\u52a0\u8f7d\u9a71\u52a8\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;\">\u95ee\u9898 2\uff1aSSH \u65e0\u6cd5\u8fde\u63a5<\/span><\/span><\/h4>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u5b89\u88c5\u540e\u65e0\u6cd5\u901a\u8fc7 SSH \u8fde\u63a5\uff0c\u53ef\u80fd\u539f\u56e0\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">SSH \u670d\u52a1\u672a\u5b89\u88c5\u6216\u672a\u542f\u52a8\uff1a\u6267\u884c&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">sudo systemctl start sshd<\/span><\/code><span leaf=\"\">\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u9632\u706b\u5899\u672a\u653e\u884c 22 \u7aef\u53e3\uff1a\u6267\u884c&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">sudo ufw allow 22\/tcp<\/span><\/code><span leaf=\"\">\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">IP \u5730\u5740\u914d\u7f6e\u9519\u8bef\uff1a\u901a\u8fc7&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">ip addr<\/span><\/code><span leaf=\"\">&nbsp;\u786e\u8ba4 IP \u5730\u5740\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">10.2 Java \u73af\u5883\u5e38\u89c1\u95ee\u9898<\/span><\/span><\/h3>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;\">\u95ee\u9898 3\uff1aJMeter \u63d0\u793a\u627e\u4e0d\u5230 Java<\/span><\/span><\/h4>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u6267\u884c&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;\">jmeter -v<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u65f6\u63d0\u793a\u627e\u4e0d\u5230 Java\uff0c\u53ef\u80fd JAVA_HOME \u672a\u6b63\u786e\u8bbe\u7f6e\u3002\u89e3\u51b3\u65b9\u6cd5\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u68c0\u67e5&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">\/etc\/profile.d\/jdk.sh<\/span><\/code><span leaf=\"\">&nbsp;\u662f\u5426\u5b58\u5728\u4e14\u5185\u5bb9\u6b63\u786e\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u6267\u884c&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">source \/etc\/profile.d\/jdk.sh<\/span><\/code><span leaf=\"\">&nbsp;\u4f7f\u914d\u7f6e\u751f\u6548\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u786e\u8ba4&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">which java<\/span><\/code><span leaf=\"\">&nbsp;\u548c&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">echo $JAVA_HOME<\/span><\/code><span leaf=\"\">&nbsp;\u8f93\u51fa\u6b63\u786e\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;\">\u95ee\u9898 4\uff1aJava \u7248\u672c\u4e0d\u5339\u914d<\/span><\/span><\/h4>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">JMeter 5.6 \u4e0d\u652f\u6301 Java 8 \u4ee5\u4e0b\u7248\u672c\uff0c\u4e5f\u4e0d\u652f\u6301\u67d0\u4e9b\u975e\u5e38\u65b0\u7684 Java \u7248\u672c\u3002\u5efa\u8bae\u7edf\u4e00\u4f7f\u7528 Java 17\u3002\u5982\u679c\u7cfb\u7edf\u4e2d\u5b89\u88c5\u4e86\u591a\u4e2a Java \u7248\u672c\uff0c\u4f7f\u7528&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">update-alternatives<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u5207\u6362\u3002<\/span><\/span><\/p>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">10.3 JMeter \u6267\u884c\u5e38\u89c1\u95ee\u9898<\/span><\/span><\/h3>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;\">\u95ee\u9898 5\uff1aJMeter \u975e GUI \u6a21\u5f0f\u62a5\u9519 &#8220;Cannot find .jmx file&#8221;<\/span><\/span><\/h4>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c JMeter \u627e\u4e0d\u5230 JMX \u6587\u4ef6\uff0c\u53ef\u80fd\u539f\u56e0\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u6587\u4ef6\u8def\u5f84\u4e0d\u6b63\u786e\uff0c\u68c0\u67e5&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">-t<\/span><\/code><span leaf=\"\">&nbsp;\u53c2\u6570\u540e\u7684\u8def\u5f84\u662f\u5426\u771f\u5b9e\u5b58\u5728\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u8fd0\u884c JMeter \u7684\u7528\u6237\u5bf9\u6587\u4ef6\u6ca1\u6709\u8bfb\u53d6\u6743\u9650\uff0c\u4f7f\u7528&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">chown<\/span><\/code><span leaf=\"\">&nbsp;\u548c&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">chmod<\/span><\/code><span leaf=\"\">&nbsp;\u8bbe\u7f6e\u6743\u9650\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">JMX \u6587\u4ef6\u4e0a\u4f20\u65f6\u635f\u574f\uff0c\u5c1d\u8bd5\u91cd\u65b0\u4e0a\u4f20\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;\">\u95ee\u9898 6\uff1a\u6d4b\u8bd5\u6267\u884c\u8fc7\u7a0b\u4e2d\u51fa\u73b0 OutOfMemoryError<\/span><\/span><\/h4>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c JMeter \u65e5\u5fd7\u4e2d\u51fa\u73b0&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;color: #0052ff;\">java.lang.OutOfMemoryError: Java heap space<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\uff0c\u8bf4\u660e\u5806\u5185\u5b58\u4e0d\u8db3\u3002\u89e3\u51b3\u65b9\u6cd5\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u4fee\u6539&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">\/opt\/jmeter\/bin\/jmeter<\/span><\/code><span leaf=\"\">&nbsp;\u4e2d\u7684 HEAP \u53c2\u6570\uff0c\u589e\u5927&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">-Xmx<\/span><\/code><span leaf=\"\">&nbsp;\u503c\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u5982\u679c\u5e76\u53d1\u6570\u5f88\u5927\uff0c\u8003\u8651\u4f7f\u7528 JMeter \u5206\u5e03\u5f0f\u6d4b\u8bd5\uff0c\u5c06\u8d1f\u8f7d\u5206\u6563\u5230\u591a\u53f0\u673a\u5668\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u51cf\u5c11\u76d1\u542c\u5668\u548c\u8c03\u8bd5\u7ec4\u4ef6\uff0c\u907f\u514d\u4fdd\u5b58\u8fc7\u591a\u4e2d\u95f4\u6570\u636e\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;\">\u95ee\u9898 7\uff1aHTML \u62a5\u544a\u751f\u6210\u5931\u8d25<\/span><\/span><\/h4>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u4f7f\u7528&nbsp;<\/span><\/span><code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">-e -o<\/span><\/span><\/code><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">&nbsp;\u751f\u6210\u62a5\u544a\u65f6\u5931\u8d25\uff0c\u53ef\u80fd\u539f\u56e0\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u8f93\u51fa\u76ee\u5f55\u5df2\u5b58\u5728\u4e14\u4e0d\u4e3a\u7a7a\uff0c\u9700\u8981\u5148\u5220\u9664\u6216\u66f4\u6362\u76ee\u5f55\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">JTL \u6587\u4ef6\u4e3a\u7a7a\u6216\u683c\u5f0f\u9519\u8bef\uff0c\u68c0\u67e5&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">-l<\/span><\/code><span leaf=\"\">&nbsp;\u6307\u5b9a\u7684\u7ed3\u679c\u6587\u4ef6\u662f\u5426\u6b63\u786e\u751f\u6210\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">JMeter \u63d2\u4ef6\u51b2\u7a81\uff0c\u5c1d\u8bd5\u7981\u7528\u90e8\u5206\u63d2\u4ef6\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">10.4 \u540e\u7aef\u670d\u52a1\u5e38\u89c1\u95ee\u9898<\/span><\/span><\/h3>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;\">\u95ee\u9898 8\uff1a\u540e\u7aef\u670d\u52a1\u65e0\u6cd5\u8fde\u63a5 MySQL<\/span><\/span><\/h4>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u540e\u7aef\u542f\u52a8\u65f6\u62a5\u6570\u636e\u5e93\u8fde\u63a5\u9519\u8bef\uff0c\u53ef\u80fd\u539f\u56e0\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">MySQL \u670d\u52a1\u672a\u542f\u52a8\uff1a\u6267\u884c&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">sudo systemctl start mysql<\/span><\/code><span leaf=\"\">\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u6570\u636e\u5e93\u7528\u6237\u540d\u6216\u5bc6\u7801\u9519\u8bef\uff1a\u68c0\u67e5&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">application.yml<\/span><\/code><span leaf=\"\">&nbsp;\u4e2d\u7684\u914d\u7f6e\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u6570\u636e\u5e93\u4e0d\u5b58\u5728\uff1a\u786e\u8ba4\u5df2\u6267\u884c&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">CREATE DATABASE<\/span><\/code><span leaf=\"\">&nbsp;\u8bed\u53e5\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">MySQL 8.0 \u9a71\u52a8\u517c\u5bb9\u6027\u95ee\u9898\uff1a\u786e\u8ba4\u4f7f\u7528\u4e86&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">mysql-connector-j<\/span><\/code><span leaf=\"\">&nbsp;\u9a71\u52a8\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;\">\u95ee\u9898 9\uff1aJMeter \u8fdb\u7a0b\u65e0\u6cd5\u542f\u52a8<\/span><\/span><\/h4>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u540e\u7aef\u8c03\u7528 JMeter \u65f6\u8fdb\u7a0b\u65e0\u6cd5\u542f\u52a8\uff0c\u53ef\u80fd\u539f\u56e0\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">JMETER_HOME \u73af\u5883\u53d8\u91cf\u672a\u8bbe\u7f6e\uff0c\u6216\u8def\u5f84\u9519\u8bef\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u8fd0\u884c\u7528\u6237\u6ca1\u6709&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">\/opt\/jmeter<\/span><\/code><span leaf=\"\">&nbsp;\u7684\u6267\u884c\u6743\u9650\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">JMX \u6587\u4ef6\u8def\u5f84\u4e2d\u6709\u7a7a\u683c\u6216\u7279\u6b8a\u5b57\u7b26\uff0c\u5efa\u8bae\u8def\u5f84\u4fdd\u6301\u7b80\u6d01\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">ProcessBuilder \u7684\u53c2\u6570\u5217\u8868\u4e2d\u67d0\u4e2a\u53c2\u6570\u4e3a\u7a7a\uff0c\u5bfc\u81f4\u547d\u4ee4\u89e3\u6790\u9519\u8bef\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h4><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;\">\u95ee\u9898 10\uff1a\u524d\u7aef\u8bf7\u6c42\u8de8\u57df\u6216\u88ab 404<\/span><\/span><\/h4>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u5982\u679c\u524d\u7aef\u9875\u9762\u65e0\u6cd5\u8c03\u7528\u540e\u7aef API\uff0c\u53ef\u80fd\u539f\u56e0\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u5f00\u53d1\u73af\u5883\u672a\u914d\u7f6e Vite \u4ee3\u7406\uff0c\u6216\u4ee3\u7406\u76ee\u6807\u5730\u5740\u9519\u8bef\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u751f\u4ea7\u73af\u5883 Nginx \u914d\u7f6e\u4e0d\u6b63\u786e\uff0c\u68c0\u67e5&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">location \/api\/<\/span><\/code><span leaf=\"\">&nbsp;\u7684 proxy_pass \u672b\u5c3e\u662f\u5426\u6709\u659c\u6760\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u540e\u7aef\u670d\u52a1\u672a\u542f\u52a8\u6216\u7aef\u53e3\u88ab\u5360\u7528\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">10.5 \u6027\u80fd\u4f18\u5316\u5efa\u8bae<\/span><\/span><\/h3>\n<p><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u4e3a\u4e86\u8ba9\u5e73\u53f0\u80fd\u591f\u7a33\u5b9a\u652f\u6491\u5927\u89c4\u6a21\u6d4b\u8bd5\uff0c\u4ee5\u4e0b\u662f\u4e00\u4e9b\u4f18\u5316\u5efa\u8bae\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u4f7f\u7528\u975e GUI \u6a21\u5f0f<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u6c38\u8fdc\u4e0d\u8981\u5728\u670d\u52a1\u5668\u4e0a\u4f7f\u7528 JMeter GUI \u6267\u884c\u6b63\u5f0f\u6d4b\u8bd5\uff0cGUI \u6a21\u5f0f\u4f1a\u6d88\u8017\u5927\u91cf CPU \u548c\u5185\u5b58\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u7981\u7528\u4e0d\u5fc5\u8981\u7684\u76d1\u542c\u5668<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u5728 JMX \u6587\u4ef6\u4e2d\u79fb\u9664 View Results Tree \u7b49\u8c03\u8bd5\u76d1\u542c\u5668\uff0c\u51cf\u5c11\u8d44\u6e90\u6d88\u8017\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u5408\u7406\u8bbe\u7f6e JVM \u53c2\u6570<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u6839\u636e\u6d4b\u8bd5\u89c4\u6a21\u548c\u670d\u52a1\u5668\u5185\u5b58\u8c03\u6574&nbsp;<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">-Xms<\/span><\/code><span leaf=\"\">\u3001<\/span><code style=\"box-sizing: border-box;margin: 0px;padding: 2px 6px;font-family: Consolas, Monaco, &quot;Courier New&quot;, monospace;background: var(--code-bg);border-radius: 4px;font-size: 0.9em;color: rgb(199, 37, 78);\"><span leaf=\"\">-Xmx<\/span><\/code><span leaf=\"\">&nbsp;\u548c\u5783\u573e\u56de\u6536\u5668\u53c2\u6570\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u4f7f\u7528\u5206\u5e03\u5f0f\u6d4b\u8bd5<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u5f53\u5355\u53f0\u670d\u52a1\u5668\u65e0\u6cd5\u4ea7\u751f\u8db3\u591f\u8d1f\u8f7d\u65f6\uff0c\u4f7f\u7528 JMeter \u7684\u5206\u5e03\u5f0f\u6a21\u5f0f\uff08Master-Slave\uff09\u6269\u5c55\u538b\u529b\u673a\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u76d1\u63a7\u670d\u52a1\u5668\u8d44\u6e90<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u4f7f\u7528 htop\u3001vmstat\u3001iostat \u7b49\u5de5\u5177\u76d1\u63a7 CPU\u3001\u5185\u5b58\u3001\u78c1\u76d8 IO\uff0c\u907f\u514d\u6d4b\u8bd5\u673a\u672c\u8eab\u6210\u4e3a\u74f6\u9888\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u6570\u636e\u5e93\u4f18\u5316<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u5b9a\u671f\u6e05\u7406\u65e7\u7684 JTL \u6587\u4ef6\u548c\u62a5\u544a\uff0c\u907f\u514d\u78c1\u76d8\u7a7a\u95f4\u5360\u6ee1\u3002\u53ef\u4ee5\u5c06\u5386\u53f2\u62a5\u544a\u5f52\u6863\u5230\u5bf9\u8c61\u5b58\u50a8\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u65e5\u5fd7\u7ea7\u522b\u63a7\u5236<\/span><\/strong><br \/>\n<section><span leaf=\"\">\uff1a\u751f\u4ea7\u73af\u5883\u4e2d\u5c06 JMeter \u548c\u540e\u7aef\u65e5\u5fd7\u7ea7\u522b\u8bbe\u7f6e\u4e3a INFO \u6216 WARN\uff0c\u907f\u514d DEBUG \u65e5\u5fd7\u4ea7\u751f\u8fc7\u5927 IO\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h3><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;font-weight: bold;\">10.6 \u5b89\u5168\u5efa\u8bae<\/span><\/span><\/h3>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u5b9a\u671f\u66f4\u65b0 Ubuntu \u7cfb\u7edf\u548c JMeter \u7684\u5b89\u5168\u8865\u4e01\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u4e3a MySQL \u8bbe\u7f6e\u5f3a\u5bc6\u7801\uff0c\u5e76\u9650\u5236\u6570\u636e\u5e93\u7528\u6237\u53ea\u80fd\u672c\u5730\u8bbf\u95ee\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u914d\u7f6e Nginx \u7684 HTTPS\uff08\u4f7f\u7528 Let&#8217;s Encrypt \u514d\u8d39\u8bc1\u4e66\uff09\uff0c\u4fdd\u62a4\u4f20\u8f93\u5b89\u5168\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u9650\u5236\u4e0a\u4f20\u6587\u4ef6\u5927\u5c0f\u548c\u7c7b\u578b\uff0c\u9632\u6b62\u6076\u610f\u6587\u4ef6\u4e0a\u4f20\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u4e3a\u4e0d\u540c\u7528\u6237\u5206\u914d\u4e0d\u540c\u6743\u9650\uff0c\u907f\u514d\u666e\u901a\u7528\u6237\u5220\u9664\u4ed6\u4eba\u7684\u6d4b\u8bd5\u8ba1\u5212\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><br  \/><\/span><\/h2>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><br  \/><\/span><\/h2>\n<h2><span leaf=\"\" style=\"color:rgba(0, 0, 0, 0.9);font-size:17px;font-family:&quot;mp-quote&quot;, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height:1.6;letter-spacing:0.034em;font-style:normal;font-weight:normal;\"><span textstyle=\"\" style=\"font-size: 20px;color: #0052ff;font-weight: bold;\">\u5341\u4e00\u3001\u603b\u7ed3\u4e0e\u5c55\u671b<\/span><\/span><\/h2>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u672c\u6587\u4ece\u7cfb\u7edf\u5b89\u88c5\u5f00\u59cb\uff0c\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u5982\u4f55\u5728 Ubuntu 26.04 Server \u4e0a\u90e8\u7f72\u4e00\u5957\u5b8c\u6574\u7684 JMeter \u81ea\u52a8\u5316\u6d4b\u8bd5\u670d\u52a1\u5e73\u53f0\u3002\u6211\u4eec\u5b8c\u6210\u4e86\u4ee5\u4e0b\u5de5\u4f5c\uff1a<\/span><\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u5b89\u88c5\u5e76\u914d\u7f6e\u4e86 Ubuntu 26.04 Server \u64cd\u4f5c\u7cfb\u7edf\uff0c\u5b8c\u6210\u4e86\u7f51\u7edc\u3001SSH\u3001\u9632\u706b\u5899\u7b49\u57fa\u7840\u914d\u7f6e\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u5b89\u88c5\u4e86 OpenJDK 17 \u548c Maven\uff0c\u914d\u7f6e\u4e86 JAVA_HOME \u73af\u5883\u53d8\u91cf\uff0c\u4e3a JMeter \u548c\u540e\u7aef\u670d\u52a1\u63d0\u4f9b\u4e86 Java \u8fd0\u884c\u73af\u5883\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u4e0b\u8f7d\u3001\u5b89\u88c5\u5e76\u914d\u7f6e\u4e86 Apache JMeter 5.6.3\uff0c\u5305\u62ec\u73af\u5883\u53d8\u91cf\u3001\u5185\u5b58\u914d\u7f6e\u548c\u63d2\u4ef6\u7ba1\u7406\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u8bbe\u8ba1\u4e86\u5e73\u53f0\u6574\u4f53\u67b6\u6784\uff0c\u5b8c\u6210\u4e86 Spring Boot \u540e\u7aef\u670d\u52a1\u7684\u6838\u5fc3\u4ee3\u7801\u5b9e\u73b0\uff0c\u5305\u62ec\u5b9e\u4f53\u7c7b\u3001\u6570\u636e\u5e93\u8bbf\u95ee\u3001\u4efb\u52a1\u6267\u884c\u670d\u52a1\u7b49\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u4f7f\u7528 Vue 3 + Element Plus \u5b9e\u73b0\u4e86\u524d\u7aef\u7ba1\u7406\u754c\u9762\uff0c\u652f\u6301\u6d4b\u8bd5\u8ba1\u5212\u4e0a\u4f20\u3001\u4efb\u52a1\u6267\u884c\u548c\u7ed3\u679c\u67e5\u770b\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u5b8c\u6210\u4e86 MySQL \u6570\u636e\u5e93\u5b89\u88c5\u3001\u540e\u7aef\u6253\u5305\u3001\u524d\u7aef\u6784\u5efa\u3001systemd \u670d\u52a1\u7ba1\u7406\u548c Nginx \u53cd\u5411\u4ee3\u7406\u914d\u7f6e\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u901a\u8fc7\u4e00\u4e2a\u5b8c\u6574\u7684\u5b9e\u6218\u6848\u4f8b\uff0c\u6f14\u793a\u4e86\u4ece JMX \u6587\u4ef6\u521b\u5efa\u5230\u6d4b\u8bd5\u6267\u884c\u3001\u7ed3\u679c\u67e5\u770b\u7684\u5168\u8fc7\u7a0b\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u603b\u7ed3\u4e86\u5e38\u89c1\u95ee\u9898\u548c\u4f18\u5316\u5efa\u8bae\uff0c\u5e2e\u52a9\u8bfb\u8005\u5728\u5b9e\u9645\u4f7f\u7528\u4e2d\u5feb\u901f\u5b9a\u4f4d\u548c\u89e3\u51b3\u95ee\u9898\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\"><span leaf=\"\">\u8fd9\u5957\u5e73\u53f0\u867d\u7136\u662f\u4e00\u4e2a\u57fa\u7840\u7248\u672c\uff0c\u4f46\u5df2\u7ecf\u6db5\u76d6\u4e86\u81ea\u52a8\u5316\u6d4b\u8bd5\u5e73\u53f0\u6700\u6838\u5fc3\u7684\u529f\u80fd\u3002\u8bfb\u8005\u53ef\u4ee5\u6839\u636e\u56e2\u961f\u7684\u5b9e\u9645\u9700\u6c42\u8fdb\u884c\u6269\u5c55\uff0c\u4f8b\u5982\uff1a<\/span><\/p>\n<ul style=\"box-sizing: border-box;margin: 15px 0px 15px 30px;padding: 0px;color: rgb(30, 41, 59);font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size: medium;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(248, 250, 252);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;\" class=\"list-paddingleft-1\">\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u589e\u52a0\u6d4b\u8bd5\u8ba1\u5212\u6a21\u677f\u5e93\uff0c\u652f\u6301\u5feb\u901f\u521b\u5efa\u5e38\u89c1\u6d4b\u8bd5\u573a\u666f\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u96c6\u6210\u5b9a\u65f6\u4efb\u52a1\u8c03\u5ea6\uff0c\u5b9e\u73b0\u5b9a\u65f6\u56de\u5f52\u6d4b\u8bd5\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u5bf9\u63a5\u4f01\u4e1a\u5fae\u4fe1\u3001\u9489\u9489\u6216\u90ae\u4ef6\uff0c\u5b9e\u73b0\u6d4b\u8bd5\u5b8c\u6210\u540e\u7684\u81ea\u52a8\u901a\u77e5\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u4f7f\u7528 InfluxDB + Grafana \u5b9e\u73b0\u5b9e\u65f6\u6027\u80fd\u76d1\u63a7\u548c\u53ef\u89c6\u5316\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u652f\u6301 JMeter \u5206\u5e03\u5f0f\u6d4b\u8bd5\uff0c\u6269\u5c55\u538b\u529b\u751f\u6210\u80fd\u529b\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u589e\u52a0\u6d4b\u8bd5\u62a5\u544a\u5bf9\u6bd4\u529f\u80fd\uff0c\u652f\u6301\u5386\u53f2\u8d8b\u52bf\u5206\u6790\u3002<\/span><\/section>\n<\/li>\n<li style=\"box-sizing: border-box;margin: 8px 0px;padding: 0px;\">\n<section><span leaf=\"\">\u4e0e Jenkins\u3001GitLab CI \u7b49\u5de5\u5177\u96c6\u6210\uff0c\u5b9e\u73b0 DevOps \u6d41\u6c34\u7ebf\u3002<\/span><\/section>\n<\/li>\n<\/ul>\n<p style=\"text-indent: 2em;\"><span leaf=\"\" style=\"color: rgba(0, 0, 0, 0.9);font-size: 17px;font-family: mp-quote, &quot;PingFang SC&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-style: normal;font-weight: normal;\"><span textstyle=\"\" style=\"font-size: 16px;\">\u6027\u80fd\u6d4b\u8bd5\u5e73\u53f0\u5efa\u8bbe\u4e0d\u662f\u4e00\u8e74\u800c\u5c31\u7684\uff0c\u9700\u8981\u6839\u636e\u5b9e\u9645\u4e1a\u52a1\u573a\u666f\u6301\u7eed\u8fed\u4ee3\u3002\u5e0c\u671b\u672c\u6587\u80fd\u591f\u4e3a\u8bfb\u8005\u63d0\u4f9b\u4e00\u4e2a\u6e05\u6670\u7684\u8d77\u70b9\uff0c\u5e2e\u52a9\u56e2\u961f\u5efa\u7acb\u89c4\u8303\u3001\u9ad8\u6548\u7684\u6027\u80fd\u6d4b\u8bd5\u80fd\u529b\u3002\u5982\u679c\u5728\u5b9e\u8df5\u8fc7\u7a0b\u4e2d\u9047\u5230\u95ee\u9898\uff0c\u6b22\u8fce\u53c2\u8003\u672c\u6587\u7684\u6392\u67e5\u7ae0\u8282\uff0c\u6216\u5728 JMeter \u793e\u533a\u548c\u76f8\u5173\u6280\u672f\u8bba\u575b\u4e2d\u5bfb\u6c42\u5e2e\u52a9\u3002<\/span><\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"576\">\n<p style=\"box-sizing: border-box;margin: 15px 0px;padding: 0px;text-align: justify;\" data-pm-slice=\"3 2 []\"><strong style=\"box-sizing: border-box;margin: 0px;padding: 0px;\"><span leaf=\"\">\u5199\u5728\u6700\u540e\uff1a<\/span><\/strong><span leaf=\"\">\u81ea\u52a8\u5316\u6d4b\u8bd5\u5e73\u53f0\u7684\u4ef7\u503c\u4e0d\u4ec5\u5728\u4e8e\u5de5\u5177\u672c\u8eab\uff0c\u66f4\u5728\u4e8e\u5b83\u627f\u8f7d\u7684\u6d4b\u8bd5\u6d41\u7a0b\u548c\u56e2\u961f\u534f\u4f5c\u65b9\u5f0f\u3002\u5e0c\u671b\u8bfb\u8005\u80fd\u591f\u901a\u8fc7\u672c\u6587\u6784\u5efa\u7684\u5e73\u53f0\uff0c\u5c06\u6027\u80fd\u6d4b\u8bd5\u878d\u5165\u65e5\u5e38\u7814\u53d1\u6d41\u7a0b\uff0c\u65e9\u53d1\u73b0\u3001\u65e9\u4f18\u5316\uff0c\u4e3a\u7528\u6237\u63d0\u4f9b\u66f4\u7a33\u5b9a\u3001\u66f4\u5feb\u901f\u7684\u4ea7\u54c1\u4f53\u9a8c\u3002<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span leaf=\"\"><br  \/><\/span><\/p>\n<p style=\"display: none;\"><mp-style-type data-value=\"3\"><\/mp-style-type><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6587\u7ae0\u5bfc\u8bfb\uff1a\u672c\u6587\u5c06\u5e26\u9886\u8bfb\u8005\u4ece\u96f6\u5f00\u59cb\uff0c\u5728\u4e00\u53f0 Ubuntu 26.04 Server \u670d\u52a1\u5668\u4e0a\u5b8c\u6210 JMeter  [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":138,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-139","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-auto-tools"],"_links":{"self":[{"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/posts\/139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/comments?post=139"}],"version-history":[{"count":1,"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/posts\/139\/revisions"}],"predecessor-version":[{"id":219,"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/posts\/139\/revisions\/219"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/media\/138"}],"wp:attachment":[{"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/media?parent=139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/categories?post=139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/tags?post=139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}