From 8f6b26ae77df463338a1249da85fc538d017e12c Mon Sep 17 00:00:00 2001 From: 2lipan Date: Fri, 11 Oct 2024 06:57:23 +0000 Subject: [PATCH] Deployed a547a93c to v2.x with MkDocs 1.6.1 and mike 1.1.2 --- ...0\346\234\254\345\217\221\345\270\203.png" | Bin 0 -> 100880 bytes ...0\351\200\232\346\235\203\351\231\220.png" | Bin 0 -> 172366 bytes ...0\344\272\272\350\203\275\345\212\233.png" | Bin 0 -> 218891 bytes ...6\350\256\244\345\217\221\345\270\203.png" | Bin 0 -> 113450 bytes ...6\347\232\204\345\207\255\350\257\201.png" | Bin 0 -> 118375 bytes ...6\346\216\245\346\210\220\345\212\237.png" | Bin 0 -> 95076 bytes ...3\345\273\272\345\272\224\347\224\250.png" | Bin 0 -> 160178 bytes ...4\347\224\250\345\220\215\347\247\260.png" | Bin 0 -> 153626 bytes ...3\347\240\201\347\231\273\345\275\225.png" | Bin 0 -> 105713 bytes ...6\350\260\203\345\234\260\345\235\200.png" | Bin 0 -> 164295 bytes ...7\345\220\215\345\234\260\345\235\200.png" | Bin 0 -> 133238 bytes v2.x/search/search_index.json | 2 +- .../system_management/system/index.html | 51 ++++++++++++++++-- versions.json | 2 +- 14 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 "v2.x/img/system_management/\345\210\233\345\273\272\347\211\210\346\234\254\345\217\221\345\270\203.png" create mode 100644 "v2.x/img/system_management/\346\211\271\351\207\217\345\274\200\351\200\232\346\235\203\351\231\220.png" create mode 100644 "v2.x/img/system_management/\346\267\273\345\212\240\346\234\272\345\231\250\344\272\272\350\203\275\345\212\233.png" create mode 100644 "v2.x/img/system_management/\347\241\256\350\256\244\345\217\221\345\270\203.png" create mode 100644 "v2.x/img/system_management/\350\216\267\345\217\226\351\243\236\344\271\246\347\232\204\345\207\255\350\257\201.png" create mode 100644 "v2.x/img/system_management/\351\205\215\347\275\256\351\243\236\344\271\246\350\277\236\346\216\245\346\210\220\345\212\237.png" create mode 100644 "v2.x/img/system_management/\351\243\236\344\271\246\345\210\233\345\273\272\345\272\224\347\224\250.png" create mode 100644 "v2.x/img/system_management/\351\243\236\344\271\246\345\272\224\347\224\250\345\220\215\347\247\260.png" create mode 100644 "v2.x/img/system_management/\351\243\236\344\271\246\346\211\253\347\240\201\347\231\273\345\275\225.png" create mode 100644 "v2.x/img/system_management/\351\243\236\344\271\246\351\205\215\347\275\256\345\233\236\350\260\203\345\234\260\345\235\200.png" create mode 100644 "v2.x/img/system_management/\351\243\236\344\271\246\351\205\215\347\275\256\345\237\237\345\220\215\345\234\260\345\235\200.png" diff --git "a/v2.x/img/system_management/\345\210\233\345\273\272\347\211\210\346\234\254\345\217\221\345\270\203.png" "b/v2.x/img/system_management/\345\210\233\345\273\272\347\211\210\346\234\254\345\217\221\345\270\203.png" new file mode 100644 index 0000000000000000000000000000000000000000..9b72844d98dcc870997708ed9ec6cab4e035251f GIT binary patch literal 100880 zcmaHS2UwF^m#)2lvEKHfAXom zUEqNOJVE=fgLsdNVFwPdQ3m(#T825T%%05UBj&OFYnwHBOjLJBQ{o;ICbb@ORR-PY zFZT;?cx&?V7TCSk`~CTFCokV8?l+JBIBUswHQxRvElhn;O?#ymt+3W`R{MZVsFJdFh5}H^KduXf0Io~K}3ij zWza!&Md0YYru&Qe^^uqTyuM=29k*5c+Uu#g^F;s5mH%;Of9Px>-?jw!&6wtqzoV=2 z;vDX5W}KS+6X~F^qSU6V6DqC~JnZ+{9GvVRYlai@@e; zOu-c`LTnG>vNhI)m}7mWhAN*2ll))i9Pw~QERQ^jE`{cir_h756BVUr^2xu@sYsdg zEkvErQJp5+?@NXJWrv$bL|U)%wCL)n@F1J+mnu8}zis)-eosYMV||IO)_Z-uF6xAl z9mxN(oTB5Mt3&8g?L6{0I&n6%qI58ij7R@HmTA85j9KuerHxte*32U$nTj@bE-`-b zL>T@xZ_2hoboL6;`(D|(6IMPT@SB$F!AL?A6=0qCo_bgoP&@2E>avFNq$2*m&yjx& zX#tE@AFE^{`NtY8@-)UU7NVMCofdhTV*?gMov|?s3-QSK*s_s{pN0I#`eN2fV~*Pa zEkw$9vaObZc}1KFcoel92)5CCfZbl`^D^U|ChZgPi4ygJtMss}jZA_AX9Fu`XA6 z%MO?GnoAbE1X|vcDO-ADmGT=_S;~WKNiM{P%_Tf<4W)=Rg;MY&A8&8G^*N3;__r(h z)9NI@px_W_wv~>Lq-g5Fr~O&u%Fcx?1JZk%7IXysRV{*Z3{*iTAG z^<<6Cb(@OPmvcz#(V2lV{Zi8{L6KX2ZRG_8kNkaneA2KF{%sV_uU{XGjg6Jxg5aYF zt4#!G!5SI;2q}ET+$6T5CCa<_r=mSj6cAdZGsX(klX)UIrhgNDa_r#P^RqPt!inCA z9x9NHAwoDQ&mlWIduwsy_&=qGkIu|E7RSY6a-~zop0vMm0FGQL&w4q=*Zm2E%-*vN zJ~*vuh-@-04Jj>F3+am?KO=u69~sT<2V?>FyzD#xyX)w=qv-zLWo*j~rmd={&ljbiw zczEpNbMFIpRg&KcoByt}4#;PG7tJ$24dKkrvO~12IUVOm1XM;5dd)^}b}=seQ_vm3 z_rc5K-!Kt02AW^x>5rz$(ltV6Mbx0-Q}UcX{@ckh%dWDN(w7>R9b#oa&yLOX0K0m@IISa$8Fl043#x`hDv<@=qDyK4 zLs{>jc8KjxBAl(o83tCF9nau6+kd~_aeMpv`U-1BY7Py26!WdYmMguRel;X}ZS{|^L%{6|X6*gn-x z7^s`BNo3St9A$f*yJZ`V6expxOWkXz(U@I#v5vrP3~DqjvJU@a3eWr=4&`f^(E^IK z_8_usKi%NN07z%v*6n)pQtPs%#IXxK-c@cYp0(K;J0%>0mS03a`wsyJTAq{1D_xDHyoxmRGh1u_1l*LIYDmoYZcR3urG2zHj zAMRz_?=-@z9d-)fFDfrQBwAQ2am9Lb_C^&XQhpYF_M!{1lw*yWXnP0$F_$~HzH+S5 zc)3k=Vdd_}-q4Duj$U>hRZTV}w*7ErX~O6i@;yRBK}bN5tLvN-2KJ9HANXpr$uT#X z*3eRo=Y)Eyglw5?srm~V8>h1u<-z+E??|26irGgj74mvfq)q=imE zlAG{gGmfiCR^Xwv+OZO?apeaeI*)8G*~(u zHA^iB97?OrIc7Al{d#zFu$5sktGBP<$Kl)x_)CaHlC-_>hjBI%k3T0KznI!l*W3~dSS56oshc+^1Pal}I z>)Y}L?F=1vqxay_L;*WBa76bYf@K`C_e*~=d>+V|nR9PdAxxq*QOz`jMZQ(LJR#Y= z=4zHc+m$D-3){)D1ni~PuT53b#~aXR-mM)fGkr%sR+jh!XWwHlWhnxb`Y-6-DFMbF zQ6U4p?3$f8cD_Z4rs2R^E4DoGPQx%AZny&u?M}o4Qbhr4@){fmS^|LQ0obuCyPd$= zjqd$fB&LA%*!Cf!g>f-meQT~TA7W@N^Hxds8m}o_3#T>EyHraG^)wt?>=Fk8(R92D zjkAjr*3c)!NNcQnr#v5YychZ}1zHl|8hbVRYRnW`N$390=XPK|Pnh_Z(&YmOX5$&N zmC#p*?}UOhT(eggV~XxwNmg0EyG*mLtH}KP_8fRJDHDvd)@|o?r$bCLX1mzh;A@)e zrzQi3FS=2rJ^Szkwp|?4@e++YW3ezuYhRnKLl4gC{Isd~tiV^6fQfB)rTv@cw8_X; zzb`T6JgwOzhG-QulQXtCl%AIlJPDK2fR)9?aK?m%S9nIu5vE2&m=7d0feD6T87pc# zNwsu3EEQ9-XSbEVB`B@Vss;sp2?wzjZ%5Zx=>{LD+`S)qXxd83QUhsz;y>5=>`YB~ zpDMbdV%YiMfoE&?S!Zl;eXXhY>-0Mpik>(oC&SGedkggJ-N#w-)b(t95k)-^SDVvZBbQ)iL_4xH2yzlc;MYb zJQ#P^-rk;ObKt-`4Ir*#j6zkoEDdUsmTq0R=C-jJ(?)+%-gX0Pl>xxZY&>Y{-elUl zwdV~eEi`&$?LLi97XZo~iHJ)*I8jt`t5HwFQn$S@_uNTk&cpjA1i$VYF<0l71Qxd} zF*veQP~7c5oE@k=;n8SX=7- z=C*E&ZBMeRVJ9`2m;TEjh3@G5RJMwox1cB{J1vulxz*9zwNayv)%5?u!Lz}w@z!M; z;lP1Ap`#Me%%(U#d9&`wA@TXj5?<;Ti%RNVdQ97fae0Nukp?-C5)BE zeER#nMgMV zNsX7UMyIO(*KTk<)7b}x0}_^rYmm8YHajlfF$hUT!s>>bfG_hWq?*_bzz5D_azh0C z6{83B-PG1>_s&0-ho33Iin5t*z)HNxvuJ}=ZpFo=1ejkwe%oek z^NZxM;#(nl5gz2PS0gxjp!kb&Qg4b4t&M%lS6m#q6Xm+Zt-tgih*KnqrL6}O7=vM z&!mKj5~JNC{MYWa@P$7;!Uq}5c$@m}S_k`ing%bGygE?3JFadQ5Qwfg-(r;Qyr<6t zd6Md8l84uLwx$5IzSf$=G+8K(!3F)j&OPwM2v?3hvCAst@i2x&rSPGzAhl$WGCXC# zlN=i;)2eS9fDZ-@(<7u?H&qR+#}?~kayem`s3)L^c*KIFcqZ~=lBg9vFsfjEZnhM#aO&%?B?-{QOW9E%7eG>DVjvmXG1NP zVXS56Wz^3`2*FPiS_Py_CiW?`8f&w6hWe5(-;)yf&rm*DPZX&0_=$I_{B)y{fmfDz zTEErN19$Xf?jxVhO`i<+wvE?RDKhv12798M^2NToq3rV8`g@O>D6MlI^cqE8Y3`Rt zR1jQ?mhv)nE7a-0M7gX@5887V2&Hbg&VPC(HfA)^D=RZ!5U-ed z6}lO?!<4W&A9=Iz0pJmAZ&Z0G!>XF!BL*Ayvx8O|!%>u^C zx{ZnOMw)vWUYox)jlV8%yiln$tPp>1+9XF+-YPCWEeWMmh4k}l z&7^!IU)Yc5$ES$;6B+UjZe59@jB+vWAt z%PwzbLPgxji#19#Efz}eTdlNGz^>uRYT#{zs89=K7eq>1)qddT3dmU@2}5Veb|Hfe z3$gSFSEp8+EfOWuH!?DMJn#hUB6tw0{xedB$~<-_eNcffW5u|4G}6Is3SjTXcz-Ml zdM}~>Lyc4MsVC`@ir%RuiceBV43)k&Mh>gMlO#F>-f7d&J?vxezB5)y?Nu45eRL0l!g|H5Ub_m!fN z&J_JcG$&<2|FX+H!W~P7T@K}>SoXMw{ec@3qoe2bCYb~_i!iD^MtZSK;i%3i0|MR1 z*}7GgIaS??#Z1XSO#alG-C#GG0D38?js| zWY-de<~XjX?cbwYt34+rbKlV)tGcuwVX8Gx130N!L_+u4Y%6hpKq4opY2*_WTt;b` zyzam4%sO-;<8W^3>}8S}e0NqTS`O?jlRsST%OtqwH5751IMvnq*;5;1XchC(4jtdQrwhs*tvTiNUHG&N{P z!{^u613KPmtPojM=cVGEpt`UtFeO7Pp`-VBOM*%bL94y}r^m6UV&z)T^IL!9QhZvO zv$QtS?*su)^ZIkAZH2qF3jUnAVz;Qaw0ugo!M#omZu(lQ9hp~OLj9RJP2pBKgfzOsA~(es;jv0 z?aFe#H@tEqtv1@A{K?z5$xRm@XG}o+l5ZWe?iHD!G}P+i&+lT}LYTtn{GB*)fq}I7 z0sbwc)$peU#Yt{S+>{xJHLB?4O>YF z>W-cXwL)t?wR)`?7W}&H1_3Y@VC5g*7UcYzW2^Ow!8ivGC!CQ7;k}Vli+_n+n^(z` zw?Ku97)xncKfFTqY%LgnzTRZ~4E`GB6kcW-GJ8eDZ~6++C{R{6gunb^b-H3cSRQ|4 zHEzM$T`qog)qAW{&YfO^3ogF3Hz56dDPicQ86@hZ z0#AN0mXEc5r9}U&@ZTZu1Btd_A^7h$pVcc!<$XVnf8w5;&SI%bw{C|>x4OL@9k8t! zs=6LQ+tfjVavsAwZdG5;INm`8`7+ss(9Sr1p;+ug>~^Q(6!E52#YW5aulQ9WjyX%& z9>l}OGfCS)90^${E!frT|9Lk zt^sK#3J}(hpSe&vp*}-GQCSq2b8j!#w79~Nrt=TwWWQg1OssPwDf01Ar2V<>jjsoa zAx#Ape`WB_%+umX_|pJ5|d-U{GkfOr_P!LA76uAko^MP zCb9xZ$War;$u127TxrdEyH8YDGjBS=Lj!jxFZu%w_<8HxFYXEb9nmqfw=({aDK8_E zpEvaq6mh1-L%Fg81M(3jQ^f-gZeLeBRv-QBpWL7gN1e#n2s$YJ3S=GSLaa#s^Wo!~ z8x`h@D}ac400#G=kbvT{_q|Ayw`%YGu=a$mK0jF+J=qs*_mz*LJ*(qjO8h8CuPr>^ z7fx26WnT0j@Sh7m^GV0$ahAf>eEMZ7czCE^+hZouUPhPFK+HlBEh|pV1O}h|vr9$r zLI?Kj^EI?GcdQ29us2T9ezhX1)+&SGbj8fk@@mpnW#&mimEKXKoO!s01FA|Y>JB>JV--KHF#?cMT(VQbqk|fv2v3=CxW4I%IgPx}keEbky*h(?;o^ zcjX5R!ov*{D%Sb994g(bwVWlY9njTJ;0+^XN)MzfWW7>uU7V4XfT$s+F-0KnrcSx{ z4YA=t*Wq*i^u!Sw zZ*OLlx3$L`grrE%*=9|@;{OEdl!^umAzp`zHb3zx&<2dP_(7KXrG+27Srmv8Sc_Ip zUu!$6WRWGeT%$CPGe5ueCcvPPYCm%&Z`~1uu$b_ZIiXG$4?fdUnpJ}srKdp&7*Zi1 zZB_jVN8anmRiP<+sW)<|S9SqFO$5DhO8PSxal+H_g;q>6Pk}w+kJ4#v|Yu*)n%# zzY>#@*CE{=o7gVsX?X_>+7w(0`n2ZHrWJoL+=&&n$vihkn)|G9t(ZGHi`gHLu(}}D z>XTr)2&&5~OF7n2daw%*V;^SXYC59o-ODkE!ST&4jr_m)08V%rzZa3hM_-lfBst4; z3OXuC2!bzj=qmk@$cy?*orfzNWl@=qlBi54MN}q1yp!a3trLc|?LD59OqN8z$1xJ1 z8=D9aYjk7S9w;H-8ejD2_hAt287;5_q_%q!-Ntg^ZU3?|(}4JV0o{Ym}~R2%z* z*JRrWzUq&^QK-Jm+*n+$L`Ys-I(h>QJZ?g~3&C!F(b<_jyg?Mf3CTL&_BMX3&=!ou z`!J(88D|ssOn z<}Kdk((w|NQU2}F^5MW*8ylNx3GD{xXelrPeYL`Td)xuiv&W<;BG|j6Rpz-(#&R`t zt)w>zx_Q;EEzF*+_|pi&&UrSOODO!GoDqp`kn zG>*^94IH!%=&3vbe7vgAy7I$y%Ks$GDneBEO9 zlJ1~2H;Rc5#9=n+k5*Ri;qxwVn**21hLq_fxUQwwb#L$>U??zJ@>e$tvsBiyHuU}7 z??C^m%VfLicfv{Pu&m6s~udXFO`rTlV)u`uhqMZO`i`~ueIP&v;hFNdBVGb_oe z5*h5=m(x#-2*7Od-9vue)}ACtGFpt6D}xx!L-RmSel7=cB|&OP(rvCjrb37yQ^dPu0PW>4uhT_A0To>jTS=QwQea zi+-&Rl4a|g%pZ%rzTR^E`vWBDmjI)Eu?EhK7oDMVO=s*4qLf1~j))+h2%Zc@ zyyFmzU>+;0i1M&r$cK)6{0D!U!*FehZR+WS;d*G=O~{N)g3q|Y#yEI*dun>PwqvJj zeBo@PKC68KwC}V0Ijp1{j_M?hBSXF3I)7k1u8wXn-!3e_5B1OM77?Mfzx7j`d?LrQ z6#>cL^=N;zL+3>(37o*}kgE~N6ZqM3`gd&tW4sA;^ri~yJu?&@Nx|4a_z5?Q@mV^PM%;89?NSBQ;MxH~y;?u*)K`)Wt7SR#>#_8lvQ-Sw`&6N-rwMt`Gy zJbbn&BZn(lMD15L(N5<~a;yZf7O7{#_keP25_*}iu7j%|%X z(ak0KG+n{IndQF*N9nm6E4zQbRma_SZw;IHnXqKvPJy>Thr++pXP-KKAr%b`FxtY8 zbVw^%@e8;*dXiZQ>lX?Tkw@+!uZOj5(yg~6T^JX><^@?J-$Sdr69svxdx4co)L++j zNINRj&xBs$BowYhnKJZ3zrHo_-VEf%JPhd>j9lm${5ewOHGJDEfA^iZbBl%B-XAI1 zD*z#?n$FLv(=zq|fJPhk_K)b9(SC^)mCfmBx>y{nF7%8WZ1d#D0l(n3QkY;RGtC zkT&{Rwxq5n9bN!HC^lGl=oer=iRHa_pEmW9mri?WAbS9WfDhFJXVU`JSqGnBDZLL08Cu75SAGF9RG>++|9VnPcG#gX$ynsL`Q=X*2N;Oo3ALNWua_5PY9u zM~+-zVwL6VJ^-qX357rcAcf%Yl72OSDMz{gSV(DLw|@-Ev?HZpRU=y+VPgEYnR`OZ zyqbcn;NRfuy)5R;=VqJ18?5yizz}6om6iB+!8u51Rr<2y4D8*^jopJRD@_PyBOfdk z<@JdNQzRc$BX4CLfE~0RuEVLOA2HD_=>IcK+v7pjp!CB|1wLUT$F-f3>JDkwPU!kMq$^uP5TF%VKc0-NX>MkG0Zx6B<{z+Ce9pdh&xsMN-N4uuJu z;DgEw(Fa0Jztzx7s`R4qEDMB91=E8NUkXCfcidq~n2A)zR3LUQEOB~42e}bS7c!T+ zA39+d+x`-4APs(-+*Re1!epxS&9TbdK{%!GpH!}$r#jQ|LGDId`s)A>qxI-C6fvty zd}l`Az*OW)?T?U@-qncmr<{cD8$RX~uF$#)Q(;(zs{r}6w1JK}125mJIJNAo;QGqO zz%E6Z>hd(E{W_-yVa&B}MF+|0kC?<38RDT&lWv9?#^#l9kW-ipZ-6nDGl8db4hcWt#ALtT7(Ny}X_l#l)3Dge-Q^H-Oh6Cbf-Q$)Rc985 zjvM%d$EMFdZ5iEzXx25HUf8S|uBX?RB zpPv0%c{KpZXz|-p@|s-Ro%3R~!G|~T9$GR#0Y$rHW^mTibW6uu_GOg3ClH$xm@S$P zGABj(KF^I3n6s13Pm!$OpQjhj$G<4voj{uzMc>lqkUdgjz@u6ks1syqECZv*a7)gV$UKu%`qPLkZsu8+o z>?;B{gHqGB5YD^51Zk3;3btkL-f@pq=n-$1t6CKr5V&2U;#TcLq-|HQb8+R(!lV~Ep)$wD0zy5pkVOePl9V!>d?pf@rWv4HXZ)dFrx zrqR%zzP=S!a52VnYn@Z^?48`NjyLLEdlI&K+Ta?`@cSq@9|DHrWBojY&SMnZY-7CS zWAE@t?=8bY%$fMD(Jz&q?w}Bs7ARovGzj-J))KG$C4cI}F1fYH-6rK`8@2c*hMh8M zoPCwQ3E+LvA;Hi#oNj>yo|LVMHkYZ2)R#G?Edy_IALN_1i=d_JAbTawzD}Q5OsL&n zt_meOj}K%L&cp$fkiCmNltr!it{zE5u1ph#)0DFnghlLamRR&zqU9H_g-Awz0}~yPn#hgK6dJBWCL_}Y@(#GM{o27X0-dy;?oe_y2m_5;HtBnH9Ad zqvK)$aEL#04&a@;2PF15Fluu1k_d!B0e$!%jtle>+BN(p6Tp zEHsx#8`S!g5eCWh?a3jDX!*6kv(UU$l==Aqrqgz{1=s;k5PZiQY>m8bmy=%N=bdp} z(I=y%$}0nHlhKnaOYiNQ5HK>*WpWwukJAH)FOm%Viq3JcRW6PYmFro$SHb?#jU{j* z5DnF)&te=KX!v1eJs=Cp5}RyRjfzoM(fJu!Nbg=)*Bvg?Q(Ot#QRJ%{x7ht+m`H5d z#JVP)dfexXyl!>vjp4jh%wY3;$e!=5?M4?g%x8&JS16ISDQIU?6)~^@x$&we`xc9h zMK!X2nk5=n;-bILMwpPkN2bc~aDB=@_H4p@WIXlaKFTm)euwzr+v zqYq>Q`@mZ*4^PUpg=N@14rugsMt+Ub47@wolIVU}xB3DXr!Cp$_wprA%u>{^FX|Ml zLCjW{R&k5--XYsf6*s&yAuxDyXhQ43cA&2y;YR((+RcU-jG`fvAVdl5oiQ7&Q2~c+ z00~34xN5<@qV6_ zR7Lr@oi2$4rD9m2aa$wM>4SH5KQ7``#rY3LkZ&RIB-0e~H@Z>Z=gX;4TON|iVkvGu zTVBe6@_Zg5$oDl0m*d4`GkYdhQ)t{iE9ba8|DP%phY)xr*E-pPu$nF?J9$g{4DShYQ7qeJ+S-&n!Byr_)SFeAK(}gz|Iy zb>F-zKbtu%U2KDIS<$G)3Y@{Wi;C&BK7Q~xjkU};4Yo9YsFqZ4pny>=+AdrByBx7; zMpA-wIz1IPdkIA%ND(IpvNT1k9IYHb#SoIi!c^s& z;wrnnpjF5HE)zOnHUp-gQ2d~`Zmm4;+|^;WS(PyQt0>$|H^Fd`!6^`D+vD+3v~uUM z$lx~ST5GLaPpW02#@dI`#(S^M&?+s$e}6h|v26A2TdN;)Yc-d3^5(7j6KT7kt$%5u>pM51g!m3JwYks7f1npcY8+G|1e;0iSl<_BU zh2_DAmMeBYwndxOQUQkrB#F|S_4aW|-kBu0)^MpE!&0=W`$MlVM0?kn{lEB-wJ<~^ zI`FTye7}#dS%!8bC5O)J+YB}zZ57#Z62T{Rubw86-NQ2fq!{}RIpQqTuvcSwSS;WV zM9o^r4cXeR#Z6>MZ!`o^&QSxNvkr zqfV>=?D4HvfiK)pfA3e8g58dx;X-Xjs@-EQS+Cgia(rNXl9-*I#YSdsZf&;3%K+Ev zc(Bw>{^r`u*7hR9CqP}5vxH_;oELdJ&>d`xH0cc0%A!xO9aWrb6nC2&<9~+VUQa(o z3pZ})^L{8<15}-9)a}i*UX&2MjJwLGe)U8drwSYG|GmCzFl3URGxGQq^5_=@YpIp{_;Xya zkojt*2U1bKv}H6+22v4jQSD#4I@bMijd8hSZP-U$Zyhnzq$eS#zIq|jvb{igFt9fU z_Tf%%mFN}X#M!!lSLuYXOgP8geUnWsMZ>du6b*OYrGRd1A4GqkAwd4qQqrxXQ+woA z)WSM?c>7CaYAGcBCCaC0X*OZF%{^1R%p3KScncLmJ!D`xu0Kbnfmq$A&>#HYSUR%b za@vOyTv618k|JuxIw-oUjv=SvT%FGWK_J;YMHjMk)=QRvzY5S~3c0#mmwAP_VL+y8 zsw0&`*JdmauCCM#jT?z_3&`mwScZ*RjUVlNS9~Ode#>WE4s$cDb)X4LlgE5s;RJ%= z-qXas%w?39x8b8u7P=(AEHhh+u~@jz|GhA@MgHc%Q(r!Gqwpe2zuIJZQRgRYj|3BL zichPKBFaW6YTeBk);HDZJtWkb7F5$I?e3_X4Zmr$hx3f?oc+D)Zj)>Wf6(_rpc1mK+Bbu^|7^F`yyQ{Q4YkPzXMJXB(OHH zI3$p8IE!*W$VG-;0BoZ;;~b&dK~|rZ2Y0pC+5G`kYP+*h0VFmrF`jThb z&KV-3f0mTT^1SnNk~Gx`{i41c{3seCj6Zpi-8u<%p-XJs{zRXF{mTK`ad0*rx{?~t zJe%(Da>m!}dG0_QynOZ0ug$DLTI$w`^e;hopk_>(NYf$ zaQ(LXeo}@mEgk(=Qg-3izml@*inf`(-PFv?N#?RKDicgn{Li)tX@&)$^>%5ojA@Bg z>gyPI(FXmF3?;%?=B1|GKu)94>IV0!S3(Yc=c^d}y}M_MxVH!gJOjgReswqH!Y#-o z?6m<3B(v9{%K#+||GglIq6#ciUgT$#ec~+&*?bb6kymYFroh*t1}W<9pSZ8kI_K_c zcir^bKmr@*(Z?zM=$1X(>QsaR6-^wP15j^7ZkfX1;9MPK(`Pz{5^bh9P=tMbc0U1Y zjHIuP`3zfE*rwS3M+sNO0;L~1JyxD~@smrePO$Tt+drO-s>4eVQ2T0=$mPnW6`#c3 z=f}m~PQ8-R&u;YJ*q%$`gqv+w`O46xn5)-c64Ma7MHtq8(HN7NFHeVkJS(l^#>W+m zzQcdwO5Z6b|M=6sig#9wVq+J5dXOuRWTf0R&6;+L!5J>*BI(i6H5f= zAWoziOLBDZNEvL_-iVH~FA>VmySkD0mt0jdUF{V`kl8FmFQF5oi)#k&MOVoJ?&*D@ z7bvW|?`qaJeS;-Q{cPs6SR_zbf5}~n80x#Ut>ErxGpc-cPIClUO=1KVZ3LqbHG|Qn z)$!W5s^tL6o8kBOjC%|i*f2suKV5uduM>A|-)G%HHZ;Y&UnJVBr2bgcL!^_*!kC*Q z%Rcy2*<&+ug5Z$K(eZ`3i>s`o60Ps~rEJ^59;sV${eY4Vbue3*`z*~zZnv~W_S*KwKZH;Oh7UnjEFWxe4q`n53mtOkEA5D*e@N`)j02ud$bKVCzjS|2%O-v-SL>h<>AiWm&nvYFX zlC{zAQL{1Z`B&>InWO+OZdhJjN-*Lyt{N(~>GmoJ%ek{&>Q74CL#+&Jps4whsE}V5 z(0R4ykD^XVq_zKK&G*1i@TJgE5by$&*9rKYQR zTr}wGU0*-x{q)dm)pIC+#{McN1eg;eh+5TpCYYaBAaT$qD=Wmsiv}4#WN+OtkvMhF zuCrA1=wHz#?~^P0d74&uoK*eu5zu1Bq#FT|g}Vf=jIw;BRf3KXi5B$@_bBEu%PgoG zX;#FBV&zG`Ftf#>BCOsRW@Alq!%kyJVkP|cG%0|hY;-T15;?u;_fpeSMF)i$s$yMG zuF?a%*i^zKL_;>C6Ske=cGdWIpl;Gh?kAclmyIb#i^_EWLD}V@Erm`F-%wi_8Vg9< z+IMRk&L-{$eiVzalyI z6OKoSL~3+I7Kh8TlCT0)zOWHL)2SNhw)p9c#%N zl;QOHn)ZHf%_hdCa1I(=q)~f0_*gjYLu7q|^ekM47!4GhrDd$ER1@R|l4dWPB!LwN zT&pwYm2HfcXQWeYsbz5fD+#_i)Z0&D+TWF))KVpV^@GZ zWk`!6{~hLjps2_dyRaJ^mX{mI)T7eox`d2kWC(!e@a7*_!^xRX5-(D&>J=OMkn$s| zoU)4zBmJ{D$LjcS4iL=P;OSd4mz){HnV{)i4mDWcbdqx(HRbQ>*lHD);f?vCxR%~k zc4skhh9t`W%~Hy8qr^GvXDpiNH(L9{amC+UYUPd}TH>q$s}Ki1)Ge3fCSao3dC2+h zrHY&HGCk#sZQHqG{VrcUyF~5GwDdBDAXyB*jVfb`e*EeXk0*>le3E?&F{!s-cM+dDf0UEse5>nU_9D4*HwekgvXX^8%5(- zl)%rJJ}J=A*qMtq^O36;ZsF+}JW;C6%7Bdnb6VtIAc7ua`IKFLnmm)`yF6se46JEP zijbV4RG!C$)?F9mon;*-*o;KK4g~y7H-dGsoba%bl76@8ES>-OY$@k(#_OjOYZz+M zaj}}rSpcIZ#1tpsR39*@i`+`@iprgHUm22r8=H>Itp$bE^st+ME7^QemoNN_A2g*r zJnfO|5U21X7XJAZQBJW$GsB6Zc{cP&+lQkH^b5nJ6jt-gHW9n(Te-{&9r=O3?W5_} z%p;b6>mW1KJvGkh;!5fLO@r|8y}_DaS{9MhAGN1#q=Kpk)IymN%Eb$b(9G32(yHgt zuREN$u+&)S+m*lv4ZVG?_U^Pru5fzBg!@SHggf*77$|_UoLbTE!uP94e|h`cFypiQ zF!eKhSba^{0L$r}5Kv5?|8+Dq${mfrZvWo=ZT#)4d|%}G{MJ6}xQqwv$4MBI&-#Bp zfAlc-+;QJ|##yaG9w+Y$@b^U&8VCSs#zYrjft-^MskJzQjJqHq zpVKhQf3mOYLs#z!X&m(;2s)-Ojbj}2a>O{LqpV@J7Gp~sH(u@%@>+>AKZCbgBq)n7 zLM~aAF=t5HnKD)Al!IVp&%yf4Sx&(y!r-O_^6BpOI@%Uf^GdLOJMhnsf7TZ~TL^~vQ<<*gX2X*!{aktK)bLn%jvn9c$N z{LL)F7tthVX5{%#%)*MlbQg2!aowm1nXjqG@r?<}8$=Zc5%wG^^Owzv^kkjev0Jt5 z?PH@0XT9o<5whAjC~5`r)v1Jg7}*oeL-|=tS_oS?uQ=~TeOwlbk{%RkO`ArWhHXEN z!U@*n$Q~uESCoi~YLOY|heopIM@~N?XD)pFf{FT5!9hGrkpRxAv|MRmNdnrY@tYc0 z`HUCebA3Y$SNQ2=wSq*EhVrvVTcQS34V%uXQ$Cl^i#bd`c<|mgG{q~sBYU3$KA6UT z0${_3z&>WO=BYE0*Rh>^SH=CKHAuq%M=uJ8K4K@1tKbfCYM}*RW4&b>o}5bi8rhU) z-+UW$>4pZ(rr^LUB^I}h=_GQ)3U-6%RD>*QMXT#)#nA=UbI8)>p6%nu%Z8ty7mWt4 z9&gu3W8W??(+nVRD?LR3bugd%9)$T0QG%6446VAm$M(4I(uO_}&tvO3L0fCx6iAcO z|Il9tswRHNrJ7pb^=`UiQsVB=5x=OqW>(L6bI`0+RZ(P0$NB9qrv_348+#MslqkIQgq=U%vZyfguLk2xDbUnO z4PD+49}33D^0NNJ=s?pi;qgN%4|$_1d&1w< zPMm6S-Q27V(+nQj|1|OnW@O4ub}|jGIW6#89y|5?h!Mr75syTL>EhK0?&?BEflj0X z&gJIr6{ls@FNAtEXi3JmP5SrVx-Nvx5mhtq_DaALK8Zt8ZefeIX4tz=defUI#^IFT zkj}P^O`W~T*xFRqGH;i=x;*J)MYkWhSm7N?F;;yCmfI7e`#Wa}m6TCmHsh4~t}1jQyf@nCGhCqbn}OH$?ZtnPwEiC+kTVNt37wy||<-YhFC?0N^k2+|@-a z`NHPS4 zfOsp+wXq2AYhi9h`51d2wW6RvuBv-}6_AuCk zmkj&5Wwa+bgtlr(mo_ZK$XP|Qqns0mr1|2NNqULYyZW^}2Y(+TnU1^SV+?M){;oTb zL5YsV4FD1{B?+M9X^!E;NlpcZ`7cPwHoWys`?`C*iiji!KRs0qG;v_#6qw7qHEQSM zxO!b`fA4kq6y6v`%0F7zWoZDwI@)5c&riJdoUVuy*B{F~-{;3wHJhyF#u=Rt7>|Xq zRq1eak>i{SqR7PWin^Sd>V>$>uK2AAAgEHUZ%mb;RAJg0*>lT)Fx0eCl<(QzW44;gQeMel=!$$2oq&|Kw)bMe$2p zw;Oq7Et1|LC$%kJs@kuH-~4qZ&J8<9COKK^bOJMTDI=O(&-wbQXi6s`uC^REV>Q;_ z++j+-*|zSKy16jOr6E|(LGG)QSx7$NmA0JAmOhi6lu{mTyeC?IpL)w4+izo3la!bw zZ8%5Oz&M7rS=hJ#3XY+W_mN{mO=sNl9k@(S)YT2uukqcup@%1QW|AHTp7r0Wd?5AM z0F!jDGTvKgr`6}hRyujdk@7&NC<;me%TlYDOUd13f0H6GRWuS1HcKyKI@(sb1if&4 zRLAU)Ypj%u%~o_2wvc2Q5z=TKA#xbcZF;^VBKEUG+R9Vv)Tty5iBAQqH6_6@Fh4Uh z8KYe*X<-2cZ3g69ZRd~@QRi%?#0vee*UMp%A46o;CViPJ?@V1~Phm!o9oAj6XQNmi z7-4kT;C?->8QFr=jA%Ko88HA#E}@X;RYRvy%P*f6wpc5p;MdIVzYSzGyi;X$Nx6ko zE+Ss!9dgdWtw!H_>2z@PrG!j4`VnE)(HZ^igQ~*Tew=Ip&uxqKYqcBa#da$IS?C(M zdw-Js5W{+Gdv{eilL)rZMXjFH#@XM8dUQTeCK|+PF7Qo5wR%g2aB!Lu=KnNAreVXv zeWK}T8*B(DMZ60U{^;4%pjHv!^FGc1f>}`!dXPCWC^416syseyv~EAxNK$Yxy)PD>E~%mGf6B zYU&J$b=4-qY)Z)D>X(a>bXSRx<*B)hq_Xlg?Gp1)Jt^V6Z|_yb-`^fmg|2(u>fdYf z-t)z^*0L*nWY005{I>VpyBfl3II=GpWn5EN6Cd45KbNfGO2f43jx`O*)3EBCp;G5r zX+F)WHtU@*W#|20p^s(|gIXYOrHqc5GC?-3!Qk^a%vbx6R;Eyy%HSC2woOQ(eNG=f-kkn>KxSD%jA?(AfUl;E#o3!X& z1rxoO6j=z4+wZ!I?CQ!elYmzNQ&Qo4?;F`!;MG31}&RoB}w+>P(&=#9)R4>y1Fb z%4JrW1fOV1O=9_?BckyH>hRFbeJLAN-{;f3-N0B^fa6oW&eOj)FA-`MHJ3mgy*mx? zyjzQ(e;e}_E5FLspQjgh*{`6a#Bx7Bw#?=eZfLC9C13B>8C3*=jgpdbH``U;dw-)x zfY1U{>SCq5 z%G!X{BX|4s65)+!C4q6*I2CK5xgiQ+eZCSpI~gUSyl`OQt9}_aVUv9PQuaj~GsVvV ze(r&^0#@DxcOkUFC1BBLllD#!&j7ybV0B?aF>HsF3SjWFeEIfpp{v~ndol;tSChJ| zE+wv|xsfh*7`X4K7dZ_(V@n*Evn^5=i>|7;6V(myz;^icMi)dSs|a>Q9fW^SPy+wE z0}R?GhP4Afc5$D0rA*@65gL1uTY4#zIV`6&x4P%zkyyZ1E*za*p)wh4CLUai)1_#O zG#F#zwTP6mevZ5P-2&h%H?;g7y5r)PWbq3sA5H^Ku{wNE)mm$+jlovU3nCWv(KP=W`MhEdbCw{rhOjYYhGlKw* z7kURcR=-+=UVVMPec!jaBmXA#=@2YpvddRoqJzrKp;(I1VczYpj!+!?KAL&os)Z5# zzkft^$bQ}NW!~8{2gt^29}&jPl@F3Zn)~WQvYUo}c>sC)?mIIc3NQiabb zv1iZtX#}dP!uF|6#<;DQIinm!X;P^#lusXJT*Nk4l-8k0;UmB1dP7Fi7us%bcM0TSy0;Nz0S~3^SB#`N5Nv)?W047~+Hl~0%hfyX$cGE5>le|youWgFKX$47T`umh_aYnv~ z!Oy3-oINtJNd8Y6Da*!dk=7~*L|PpHh>!Xm>9V-6ecE6gHh4WbzrsjLA3phv73>uJ znWDJECL86$a`JjFVgxh? z#?~7{q|?AclgwXqE4WtMEa6?FYKTo5sn2r3`*=4e{-mcq+@|a577l4ur98}Hh zC}kAFu84s37^u~NuT@Q>rP9(#b`4@wt{qf+(p!J3>lM4g8kv;KLC2bs*kC0t7U> z#FM@Fv&TNqyWBjsXsKNuAvLkOmFCp~!(1uWvXH1{y7@kV(QqlVL1k+)TSaWb`jMA) zcFA&1Ptv^TQ6ypmS|dMyI#rJZlzy_`(NEuGs1W5@ernCpx9=#X{e3Kn-+z)Q<8;i4 z`V}#J{rnM$m_Ihp^*b>b{QPl;5fyFjKu|w_^VqR2OF1m&QdIDgj;TJ2@ozYWS8>z-NHbbH#ly-c%T zN>D_LKk$N}7?366|1LQx!fqh2bY-UtlgfTygtVKFkxA#s!Zbex0ixyq->4E5qrlXE z(`1oHj^U=nj9ybI4gjj1bC;FtqI&SG8y-Yu-tV6~zJJYM5rt$#YV8NzufGFP)hd-9 zJo|>n54o>9zRG`2EfIg1DG%dSpw_lbvEdP*@?-jR8vfz*&g$8%v8G?k+y%Uy(&B4s zM%qDz|D$bW_{aPly3$NFui7_iUKVLvdny7(Hh!Mo3Vw9As_)mX85PnA7HidRzzaQ% zB|<$--9tU+b{KaS9Xt|*t2NJ+_U*eH#>7`t=(c;5s<2pLqWWcae6=4WH8uMX8*SW! z=l-*2$Btcrf1loln!HYu&*L{NDm`r)^@UD#aJ+tQkQ4rVrl|MN?XA45lXnc^llR66QqPgLS^b*;G&McnPbL3 zUbd?6=gYp?+r6eMeDi^gtUV9BgunT2!0R~<`&9%#Y4=Xsvpdrn4qs~S=-b;riK|R( zlWsZCIOmGKd(O4Ci;K$3Tf>io)1u3a#L-y(CSyePeHpQ$qRN0qL4K#;d0inHB&PDs z|9U%mbjK@5l__3_^AxvD#Pdj3e;=TKnjv*bokh4H$P_MA?4)lMaXcwM@;J*j~w7$5B~a(?zv@rkDvvwB&;$cIy#_X9h~Oj&(%YD zvg9s7DPBa73=8raN}xMiytuW!+s(s|vrvBg<`fPYp4=F>Z$|rm%|!X%`9#emtlTUcnM4H8DP!pouaB2tSq~=}T@=IWpNp>0q*{J7yxwHFtigPf zy-ApHL3;z9zlz}PXp6~8=-C%>4It)_MeDSW z>)KpJqSlHX1K@^!ZP?k<3zrEknQXGA4Q++IkFDanlDJMc)*haKQVey|(YCmcUY#FV z`=r)(WIxp(#+yv|zM#~@cUJ0E%wi{mkJ{U&8q?X%VY%a=zWSbe_|{p=EG5_3i@b|d z64)Eo1RqiR=5a|WTg$jSCFqDKwoa945m|JG&a*C%#;xv*Yy_!q>t(DS$0%A!OIUVS zXXf_fho$-#`n73Xc4N9`(s%UAm9%!1A1ZgePR6i)%vROhiA1h{kuI_U`_#6aFeiRb z6`W^7N&D-w=bN+ng?|@MG-VLkmY#{u*JW=#SeHg@epx%{NHt3EsEzUe?_+V=Ve7__ z>J^5Piqdwp#_qb@K_hyo(CL`SL&pm-Z2!rZn8 zbJ{!50^uYSyt`J8xv_IH4ikMe8!~>I$2gitxPz&XW z;vLWN@pOL(-}KH?IrwH@S?j+Y4>S==;TKeVC zI3%o#te&p^_AunqZHows;ck`%du<+@N}knX|BR6`vxvaTS@Suhxme6fumgQlkam7K z>4cY8gj#MA?EOKisCV?bXi>&Qx% zttdWsq5iLnmRPmQnMJk(N^bA_yV*#$mT-0Urk3B4^uBbv0yaiY_BR&l8Vg* zQklQ3+@nrW+HNV`Ew&hTwEN6PA^Jt^;Q$o1^APrssP8<=_QRlmMK-f+OZk?Whl>#) zs5!gG6v$sAA4(w?MAh%7-)ufm#D`Wzrq;%~s-WPQ$OcU}na8;crfnou_bXVHpjM+- z`M8S8mPR#S$VW4?N9KoB8t1(h^<`kea>tq?Yqf82B{5%9DBncxK8~@>)f~>zs=jx* z*h}N{R2g}@Vo+Bux@L0tGF-`>?af7AM|^Eh-D~Q7wVh2}|vl zD*M==^T-6dmYBZlA+IKK#0X~|=a~_Jecje+g+EtP^EI`+Rn2h_s7Y!If>PdE)?#OG z+$`S`dYn`1+sZE+QOZRSJ&vjuDNe1cit4)=7&o_Qx$HB}JFD1-+_1474M-8*%1P3D zBaCRQxYDiwrO0~Z`(DO#hX&oLefTDEet?VWB*e$t-{B1V{~iJzjV`7nP{Xt~h3hfh zh#(O&o;pMfd(KRydfH+(TuKu%)Gm3L)FW`bXjLXTQ;F=wt#x|0v`lFOdEq%YdMZJ3 zGWA|a)OGyJ8(a)9?0E(lyP6J{60}5;OBi(Sbl}(i?V=5u4Yz8~hl#7Vab~0TI^Hog zwSc5z9`1Bau`Iw68?wmyzELis0l)YvYyFLX?7`lSv1y9MSmnIN$Ct)AQx-kq8>KqG z(iQda2_}m+-3xi8Toq7m)3ajVOwuO;kt?o2>M~eXFPIbxzR*#q@k~C91{yhUVAmB$ zbRUnZ&^T`!+IPK2Na%oBZ?x2H0Od%`lMq^rvm5JP-()=#(SQp}L2@j3h4k>JyeCC< zw8rt@HWgFnI1_v)S{BWtcR>!I!P)!Mqvnj$M6>%)K~k6G{#OVa7?iNi0Vx6W({Qs- zmXzykSZe&Py9)hKY0WT^o}Ii(t#K~EUn+sMvU#dAHXOX{9 zO9E?rahxn`&K($o+Pc>OrE_Doy+IPh#GZU@|7K@^9;7uV~P(myL7ckY?k(u(+N(I zIt0Nz9)XGR(t|a1#El#KJFk!e;6N`~FYrEjw5x=0wi3f+{1V zDauZaR>OuglRY#jza#A9@{I<=?tOO(MLU0|&DrOM%(s!)O?%Zr?h78(zz|#fjPnO- zxe*_);iInOXhv`pbkyM)IaSZ-^(1;dDMtv(tYuQZk6M5NLXba~z&>yh z0WDe1HHmBf2j~gU6n%ra8U8T&x*wuP*CmDh!HVMEGa3OWlorhZZNg)9I3h$ zBNjnZrAN zw=c;+FFxGZK(=LaRQgf-1coJy(P5KiDm6lSXH`~O;6Wrvt5sM^NKvZulLTi0j@l7Y z6yq@KdZDNTm~k;~Iav`~t+%T^(gVzAo?bH`q<}1 zjK-Py_e2fKWhCevqStFJyk;HiZyBHqlr_#Mr|fJLZYChuMntDBn#E2PAgvRi$lNLH zskX4JFK(K-VamqGXD*o#{d^aHccsR!Xdv<2kg=}=xJCrhFUH7<7~V+uLQ_~+s@)f) z(ot#*L5YI|FF#%4tlA@6bSL>uMxzJe_srDpyTmwfjG2uPbE?mwY=lntrv^^R2R1|L z$5n*Kg#{)zPc%A>a&DG_13U`azEC75>0(l7N@Pr*lWz?>Uwg4vh@xwML3>NlyS|QZ z?}{2rf?w(WsM`FFKiV34XrPrM03rx{8O=d1SYyi^JY5tD>28#ZTE-|%)kU$Ie$7i2 zF}0J#*gE;6BstpkSxVM)6ZQz<>#k4iO45{|xk4t5;#nqJno*d0>`z(&Kkn0*J6OFEHee>ddzf|7vK1?!GuBgmXA!y*Pg`)*U^;*_)N?9h_VcRkSbQ zGc)a_ieQVXIc{QCpZ9}IYiJ>7B8xW#Uu;8k?PeD>yT_k-LVdkCc_%FoGEFV?PDPO} zk>SuY9|Ps5Hxk0+LxjdA6798?r|x7th&;4U#pQD+Al6${gh_*Tbw4=h-KsbXaC3tu zdSgoo`yBNXo(xm2T+WX=_X0Qf?X7?Up>vw&$_rjL-aMBHE0-}?ch##LSQHQrhUNU`Fwhg>u+;yMcl;9E39R2|B^=q@1HH@_PbVFhc=}i;bPE_lhF4 z_(bV?Ic0<>Z8H@6PrVU1fTJ;Tnf3!ksUvmFZ1{erw3{*ECW$GVJIZ=0i373W@2O3> z$-V5WHf9{0RyWK7)_Xs6gTv)6ZN`Q4Gl~&AYIff$RCil5*%B}QrsLB5^&K)kEDrVy z?#5Wm!R-aJdo9+vK`MK@YBYRr^5Z}2AluglV-`eGHs(4EM0Fd_exo}CNj1tPytV=b zPiwD=yxuQ8c1@i|1&^;;Fd0ey)NXeTf|BVS0uB}SdJ0M?221?4j_{{0iV-*8DIb5% zxJirccq@`Kv?zA?KBTM_WvQ~?9Sxr48WH&UL?=#iGt^Ku$D@uHT=F0z*1|D22f*vO zsSs}%zwn!kyUs1oF;mx9=VxVwlN9m&V%S2yDZ6QV{=Ui?FdIWVa@^%iwzqf#eBNbR z_mrh0Cz%B(Ru+E^FSX8Fp-hQ?7LRv*VWhs2exlvEZ^oE%jIjkVem&v@-)jK~?pMU? zt;x5`I>^C$MBA zVS{;FH-4+p13wJl7R$CJi(B0WA?^u!&>nHgdtEb19O63N1l|`v z6;cZnkM`<|G~lHyiyrS9XiVWZjSS6%Owuo-3$7N)xxQ%;UchVAmO4Y=Me9N1Rk#h1EamX=TDBZIU#>L!D0F7O zd~&~JsgbYwpqz$}&9l^}Ag#oLjvU2(5=>8zggU`hwV12j*HvRR54Kq2c=}M9u*+nf<4(KI z<{BXQM@o;~`Peb2=t{zKWy>|Di3glQ!+2uhKNT(qGLGum%LG(?W21y|OhM_*n?1T2 zySr`4YG|Gux$WUzX#wYmjSb-pE!Quy(mU}RGyK%7Q;Ynsi&B}`N;&&VnS~$8zmT*| zN$1zsOAKEdlWXSB-M_M)43y`iNW3eUu6nz2*2v8UDrs>W#N0=}f*bOGRx{>WaPrM` z=-^kqevLsn=3Mw8GIYpMyMyY>{RB_vl8m8da?h$ep zDB8&Jaq>lWer^1wJEQ}>LC>lKmxT5Z&gdm&+^2##4RSv|2kdj*cqr-+=R7eWUM({x zlrm60LQ~kuwvVEMhzw^)kjYukNEfu3QD0osg9fS^wUKpKy4?S<_xxTt`BJL~RWq%3 zIKaaVVhRp>kCSS!sMYSmL+Ng0TrH8yg!lx=yjB@yUXy_s?|q=S!r^F|=|T?S>?|Q|&I;#Ju7~)0PkL z-?T(4g;NLseE65gLLKgXzHG;o612_X#$Lro~P-fGJBZ)SbAy>RJJAY z#rljt?dwf*pYz_~;bXNH)&wIJQ4!e)l7vu_x;p4pZ#R*v9e9}*eM_A!2fStmDe=N3 z9q3*^2?d0W!kN#aM9gD%B80cqLyx7e663J=GL%Fw-AKaYwRP5nb-te!!cc!EU0#(z zNSs4ms)$q>XCKX#c|z7n!49UhYvF?Kyg=BtrqS#4b4Wbsn9+vbpn7YR`riNLd}6%W zs2L%44+SR-)kBn48fNzPc|QKO;1NV?ol*T$wG{$|e6Q=Rl{=vd%Jm8r5$8 z;$k;R(-m|l=YATQ!|r5r*c;WyHF(1rx@C_6?~!MJU087J4!Hdboa`;f5d+^|x54gi zi%-A4x5K+upO!k&I(|Sa4JT2bresY^9%NAG(A9_xufD}HHQ6h@Q?wDYKcf|s5dM6c zWlB=^b=To&s&F|w8~36#h>u~bYo>s;LclN*3s^SJ@L>JOS8+K`4qGf~nb+B-`n<4i z`7LY|u`NE%iI%UPH>pB@t72BYo`QAT?w<~O6Bl+~+@C+XzfzgNvn0fu$fzN~)~VKI zFRS?Ut9GP{hB;#ka;4S##q1ghRhvC0h4WIf#si=F%=_Vd$h3EFg&x2tvOJO_GjKq2 zRw60DTkPUT*HaS`bx{c80hih9XYo(4)?Y-cOh3I^2+)M~q@2IJX*gEBcCs~dt;g>8 zR%JrkaNdP#rR~RVCWsDBS_w)>f{{@{Ds{?lm#$A0itW1c@yfomLGTn&U|Iq#O74~S zWVQriKA$HAR|o$2`NOSksUY|o0xpo(kT<5sl62t<#$&43;qtv!ADBZx!moxHR^}ju z9;lD428(HZdulx4p-Sy`m?}&ST%G65CD-E3snBBP6sk1!mYUqYOUA6EKEhOb5RrsS z;!o4S6>eV9VA=E8T^l^Pvv?bVx>IffdsxD1k!7TMw=?cGkX4A!5OJ1Kb-pW2ol7Zd(a{J87e_F6rCa^5Q_p?~n6VzOuzSJwz+jU85lh zpR%vbdsUx!<$X1+oOvO4luJLZ&zoU?3(5x~CWc_HWi~dvemx~ob4z~O{CWBmSh~B{ z8(&;JHW3V}4^UlG!Ty4^{uTNrhja5qD$|f$)=t0{(NZxG29=GrzaelkYC2ZBU&uq&>S(2JW zOiYN)EKi{&9xFYl#a@*CZrAE}5A_@*h5~`mVMCkND+=Q&Am?2zLTWD`8}$eKhD0mx zUfpx+EH-GRrB=tl&f95hW*>^%l)IjpX4ZrkIWm%>+`UsqzG~0jdKVU7d(zTP3@>FP zIBgu;etoZ|TKw4wxLySx)rJ}zVgUrH972{nQp)(LAp7`d7{{pGmoxHxfOz*zY*SPY zA2;rqa0&PHQWFUa*i^7i?8}WBbT}ujeVU?oUh<(_-D@SH1(~(z+R8>=FQVY@&3!@% zPNGpmxbj?WGpMMu#t)ExtX=8uG5?c@Y?^Cjtc zpoB$W^cdsIUrX0R!SBtrXufITpi2*vWs_yCQJNJ9hSiH(lWUnJ)gfyWpT(IWhasq4 zt-gMQv2g#dAGDx1sK-6iO5QrGQ}?Zl#Jt%|D<`3#d=EjT-|m3<-lv%P8otSkv*xd? zsjkJJ^0u#~7kY;jXmX4c^2VF#mCqrUTnG;cI8ZdKGN^BPdN74X)xVW`zPa9HA!z7P zc{!Iy5NH1ec?Q4RQ}SVMB5f1DA6V#Ir8=STpDSA(>1ya0C zruOhARW7oak^Y+YINc24J`_)R_#{Q~Gw~Z((Sls=9S(|SvKB$lXOyFY)@9YBxV}nRcd2G&zzpJ=TabluTjUtd1f;vfDZr8r$e>!oO zf1;htZS~BWAio7eI#RMhOL#3ZGhQVE<}VI55>8c<;j+9C<@D9W@{t)YYviq>z`l04 zVW7Pc&lL@5Psaz>L&n!Tx}Sy-c6if3IJ(YtEVQ{tUTPbU8*Ml!ekou1%$FYs0>f1bK$6Oqf z%S!tjJQ)HBJc+hai`GIFO6Cmrup!IU^sf9)Pm9LfEb0cwT9-rb2=Fk4qTuD>8IWg& z4K+E}C?qH#y=GWK=~h}WHC;ld$oaKQ)cDL7FRuB$)t@dm{By;mhES@*i2JZwm2u`M z1HA&3@u&>Sk7oK-r$II-T+Pl#YY_(2nYYxlUa#uk?^}p3XVHTSKQgU9h}S;QS9k5x zaWiNbT0YJ$8{mZIQ33~jkR(hLx2Qb2K!}$bxSA4hwR^z#+AR! z5IR?1-ct-U9OKPbRZjZkRAtN_BhIO31fiN>lzbWhwVYA`V$zmrt?DZfz4lG81imOr zIINA{qLgz5o1fIdr;jYrJob9q#p|OfK+|b+Es&;LAic%q=@gA!J9c!cIvDWQP2YV% z+UM)#yVN;vUYXggc29<&4#ErsUvvzloYuH3d8XubsnYCNM!C`~H(z?We27ivMBKT- zD;OS~5r?j{`u58Jc=hM!&n%7rw(uCtM=hAuqeq{0924{9`%(3;c*lQn2;+UEse;R< zLYPhIMZiK`a%z@7>ImXYXWStu*4kLdNKNfw)O{e*(&R7LD99e*&y*quAau^@w^8-n ziUqge<;Gl)#vnBG690?j2P4t`&+LGl?^{sUk<<`*$VJ-dx0~}QDbx@4a)%t@@6X}X zz(H}@U#)g2$7y+G=~+Z!#f*F;94$Jd=1Cw;bPys%?G6c+u2XVcI9aE_JUKw+wF`yoTRX)zQDi)(Gzp^5^E1u0}@ec)UiN!mE{TV-#v{VT7n5W1+rWSGc%0-`=JA^k;A* zdYmfoI4H&CXn&d=nKDd>{G(R2CXGeLFs`>#!rJi)7TSHC&kO+h4%3sqWy#Q_)M(#o za@}7W=bArQqR;F=i?1~Cdo*SZMW=;TwU;p^E6uX2xp#27=Hi^%i{!-~Jt;&7b|cZ7=O?V*6J+cW z9IAtj0%nm4>Sg+K?38)mi=}kDSgmu8q$r>$-9kRx)o{1`w~8uZwtNJFQVy|;N9rp! z|H4PUI!8@rzvu6RwK0|Isp`+k>2n+Phtaf;`Q7pMWAEwmh?7tTfoqT6l&_z zeHG*Wd+?0YA__c+;GZGK?%|7TGty@msPKG?5Mqf&BIwqooBM^drSfqSERJNNL%Lkb z%*C0EugjI95pAu)wPtZzDg9}(HgIj>~|PQhwM?;L#GR$qFcH7YxNd(Gefpeg)3_g*i76*#I?BKeqfW7qxR49;?N8s(qaTa@@3j-;8yNuPs5Hbm_o}U zR)OttOuGs@cXl|FsbBDJbqj-mZ1aH)`mtO6VEO=qhtB?t3VUl#jmedX*mAPfPlJ6k z8O-ojpTkv9rurbbv+U5YYca$Yf`W@vR(Jx|fF#$tr7hq;?Vst-Xcrnj?S~*mSwm}M z0-o6!L;r}1=^!e)f*sx6MzX91eO&NXSFbTC3YYoy%cf?65+jq(g|P2}G)H0SkL(~3 z0p&!c9JUkFqsxl_O)LHEY+)&To+e;+J+YbMQ0li+!a+42NT25eYL^*VXyYn znJ3AwxB4ic3p5nsG|~Airv#`W#j2>>%r5;ba9l_AkOI4Ck61n-Vo=jRUY*xwl90WzgYn}Q>DMSUjXcdLk=RBp5 z9jwPPVjKBdQAfbs8SYgne6>GMwk7q7bWCx7OJZtUS@MDKdmX55WI>e2TFypH+*oNJ zr+o9>zFW?rJiff+b;6d`LbWnn9%(WL^5+CIl`bI$WGG3FU%N0gRdeSZ&xG)hD9{l8 z*go1w-`nmGjQf1C*Y3THbtBwx5}T}aDX>r}GvHaFzn7iA??veUFt^AzuLL@tQbvy$ zC2EpU-ti1Gmc>OgaCs8hYIhX5{eG2?+*m|7qB5gNOpyb4M_i?ww#S&sA*x z+-FuR+^UTS*Jef$3)h}my7XF_03dJ*oI|NELmEfhIlW_&%RXupsV4O=V8unv>TGt} zg|WHC@;VSyqEQn5_PH^)%nlSq`;Z3o#t5ro+us*GUa*rcX%6(DhsN*TUhwPyvhB}T zmY>4`Eb~IwFMr{_kG*pF1D-52T$G&dh~{bHHH2AEz}ZjLMZaR;P-sqIU@{rXOO4;O zfN!dz>gPxV9%58))oi^_-Rl{e{@s!QD7FAN7!e|-&eghkV=nvSQ_O{^Ql=Thp+2qM zwQrt{TrO#%c+OXDkSF>}FpBvOn$6FJV2kPWTd?ilQ=Hcb=#8~HTEu1E(x#B$p?~DQgkzRzC?_ z=*0s;n_*Y~fLk+kBl*uy-0)qasZNbfQ<~L(-g>axl`+|X-F2;nkL$C+U^X89vXHQZ zYUgqRA?MxKY}=l6o5knZDJ5!(-_1y)UlGB+Pky9pKOk{D9%dKkE1JBZSlmIN+r>4zLxee=W;mpWnq zEHW_r0CuEtR;c>SdV^U(0@5ML;Nc$=@!#A)>A>Tm-=bLVEwJA(i6k+2OqMNo`;&AY zF|v26vGk;ndu4&ccINzEp4(Xs5=uqluiM>i{GCq-*UrbRPuY&f6 zb-D$3E35!vZmYsza{b@d7W?^E-(Wg3LTHOUslwgPwHG31E*Ig~u?1fTegDH;573=R ziB0SVuIVjOMzy0;=W83wnqDh3i7NJg!5Qw*|xcz@2fjeJdRj(1URmOWR z@2rz@Vt5UGL*xLkXIm~nPiM|kuA7x&8mRG7Yi(-MY-P>y-22E2 zCX2Xp=(jEIh}KE@v%5J3`Tt=?a0|tKq~9NK@u|!)gCA2;(B}_GaGnJ&Pl9GwBPhN) z2ky0|5<@4Fp;o(M73%3eLcg=Fsvx?xuD?_7gI%5S6JPC>76-@Q{*$jhimx(sP_>pP zu}2=ps&I^X*WN#H(e~SW?C!Uos1FnKK&u7EBVcv$>aZrP*25X@0Ctn+*vm2HDas62 z-ioq+<{*x5-_iIQ_24--2tPypmHvYI2Lq_T$`RE6!Un;gc-{9OpHB3j{FXZ*y}GO_ z1}!g%>wlF-51x60AibaX1NzZ9{^zg$`Nv29{yz>6ARqCFforivhZuqB{+0GJr+-Ad z0Q&d^X=&mkH*Vg%2tWPtDuY*rG7Oge?|%}mrrw`=#9oU&1UC{)Pd^0Dz7EPE5$e7F z`W{Dfu!5drrzk5cdq@ERgsl$&;HnlcEg}T&AAislipj$)MZ?jws)!dL;dA{SzyJPw zui67)WL4iA?@e5hq-+K&>|W!2Z~XI-;57-9MAY`%Jqif9pHId02vhK8AK#;R{EtS= zwe|G$rG4*U5*(ZXfm#%3^kk%b+%1Ba)W5fy29ukOj|L)?a#J+miE~O&u!H!=qpx0} zQKvf-aJ2nyq9#7|zS-JzNT65_k;e9qU!R-(gT}|?^9uf7TFa((KKy)4kJI znLPfB#o(!VwP=9PI`*V&XEud%^Ss$VUPx?&pwOR$vp1dp?MdJ!`|rdyipwbYzdc1I z^G^ce6L^Y})W3`~9C9=yM82Dn`H@%rqyJLqzc`YRpno5$KY9=Ndw0;v|88=W|MyS` zKL)*Vw1@adV^Wp=;vS(Sj=bZ|BUj70TU7Ga;O>~IuCAN%nA{Nc?64SSlCvI&x;N`z%dN6{@(^&@J59CX6EzW zy8YbB+n26oz08F8HSWK*x$-AbP{~}cP)SQ$o2xqK@bo~Lbv4rK-zHb$VAZY@=JpJo zu{2M=TB6+xE1lJ%mD?h0S&C?P$}9uJc|FJSA8xE#XD%m}Lwa!|Kw-aYxY8jiJR(9` zPcH%BSLgYTWHLduVKOeaKDBNyY?5isQr|r-5;CuxDTuYmzHc^0dj4RO-+_ilQQ1^nUE8N>RNfh%TpbBf zKc(dI3me6Bx*Amo1G^#zd#}OqI|RxqrOX$j>he30kyJ>DpW5?A$Z~H+EQtB7XU0Jz z?Z!p4J9U=#=PMav8pJhyBnpE1aeuhQ5xP@LZAbql& z@(NY2SM4loZJjGh{?n^Eb8p_1{^ZAcIlvp&qi2UYc#^UL=Fy`rru~R}oP5Z>@DKDS z`RsdpdIpeZR25UQC64-d5z_t4^sZz(s@_>KJ14q>Ib4L15e0u!4Flz#v&F*$1DPE^ z$|Hb7Zf3D-s5;Ia-B&)=mvjMB{pDHD>X0aMUB!2cPx+DiCSso?lU~9lZc~f+{KsSL z6tR-{HI~#xYL(yGN|nrQ$CfdEfB-uy4M9NFniPN{rQA>5xZ@Jp>eyuSY(YDctJmZ8 zKsSB=`Acuap7!UsObRi9U7{w5wyljgCVyx(~D0J%@#jhgLVDNu> z+=DSC?*_`odIPQ%Dv11oJVs=OZl44Sj?jEI1C`9TbGS}4vi(+ts_!WaR670psh>)# zAn6v(G)lsJqvp4`508RT#g<)9oBlw)k?{sdAd(TwHX?#(*wmczuS@wsX>WnL>jv~` zz&)`zQVHm9?qvT#y8fNPLP4ZgYdaur8r;p7c;AAse%*$gDir{<$iTg%j-p#1w%5a( zR!C8g79I)`&U%%JsM6DxlLE}zo9g5rOm)z;RrF?v_l?N?ui&mXCMLaQGFW1N3^oG_#*f#%UtX#*#jsJn_ZJT-yQ|Jt;92hLx$mAmP(=YsT{ zsC6HVaKW;gUxI~A52csW8s9ZQRoZSu{Y$kRx>N27yYt5jcgpYn1Oz;GZ1Udw-15t$ z-iFHEmsy<`JCoXxvBvy=JmU#pX@Pfm?SnyXpw)m5?*||*f~6(HU>GhVad`k|_GNoB z{L`|am=k?yx5)9?BIwV&`6r&{iF{33+kD~?r}T1d>#Rf6%!jxXV(H!P<4GW>dbqu; z^Mq!LQMFn$GhgnKnjyE6=wc@vJ+mP96uB#*a)#bOxwY#WXL@jw>2DIp^r-)XA^+<9 z$Joopz?nTGNz}E+JXP^$!83m?Y<0ZIT=ihEgOz8NUO6m#5aS!*QRzyCVx|F`Ep(kpM*+H+8Kd3VCSb&&|9b?shXEOxi7 zfKpJs;)9J1+-lJ2S)+n<$HSB6ifc{4d=n*?GJm8Lb>=VG*U#%D?|8XC%N(unFru=JK+OW>J|#ZpS6B%Gb0*` z;i5iqs#r_>ryuBmWvP+uL2cI!WR)n{Gh$zc0)MLH1O0~6pB$zywLV#rpCDJ9z4n$^ z=YR9*KRX@VRb++G&k%cPQos0bkC4h`@Payd6XFVgzr=qtBN3KsTZ`Fx3H<*bEpmJ@ zjUr7WP8h0_?~^6?tvq)hg{HG$sZH*ImUn`!!%s`v9Wx8P@+04x&#$Q0VpMCT1-EKy zYvgt%-QoI|hPwadS^{@9|>|JPqFu#K&#koNL$2=ZLZS6^)?W|uy7e^kdQq!+sk z`-qISiB+43agZX;w$*q*1W5wIrdzAl&yzh=? z`+fh`-RjVx)F^G$-ZQp-I%sXRch#y9sVxZA7G0>lsVa&PGj_Dp3{o>BNYzM*NUcN? z;Ys^h-|zE#{(a7Q&UyUdoSc*KzVG|GU)OqF*M+&1SoPS1g7{j*B!v7Q-Vm4MF4mkl z^g8rt^zHw-C6fSsyJ;7rHZQTJ-|tzmW@lx}(~a!^l8*;MqQJS?G;3d%r)+9R6!3{H$9dm1rLNA4j*) z2iWib@!VeUp9kD#PBI{LF223RmTUqez$p5u5ff-e@fVT!dL>vkopYw|;usJRfXS_kQo zS0$9>S!M+}#3xIP2kYNygGOdJZ^_OMBmY%cSB&(#lJ6=gw>zi$H71zEAykH7&XN!&J#XURS6E_)3LhWd(%$v&t^lOg2j8cG=#U zn9fD)O*Vy9Xo8fef^;s%dB9lQn0Fb5OUnRfNu?> zq{@n8m28~mHws2Pc%6WM%Wv1o>F6D9!seOc8`Zt%-H^$f;c@w4LG;3?EVbPOJ=H)g-%Vkom?TXQTfy3nVrq7Aj zXU@+rJGr)NPbn9)^A^EP3NLErfcMOKawwm3isZC8Rp@a!Agg@I>`l3>>;Ej^2_(IA zOq(_RW&!i2JYv!T)>)&gi~l(DXu5jBm{r~tda6#(li`}<3vrtueofwnr}e(NDvZU4 zj4=y7!@LT;^TDsTmS>FIyaSc)nYijSCe$TLh4)3TtnY zYd>Ce>A617+S~aVuv`&BWsL0i=J!_JQFEE;L|da*InK`vpEfd-e*Kj>FLQTRt>J~G z=Tx90k|QV(ffsFOEJs*-PY>}k`zLA>c4_unTJ}O? zV;k~@%m(M)Uj;uiYnJ!tCiW7zq`aQCeQqw2g9h_+)xvG0k8?5!K&ILQTX`jX;PtIJ zIkf+pxZ9a@O;7Ocg2yv=-C6N_qyFurIbD~SJU`|AmwXz=aS@M<zO1kSdfkqR$ zzGNxkf24)Q#Z|1nUNNXZTCgkxJ;kIm{m2l7oH;GW49hgU{Kwm3VsC8Ui#wqyP1_f8 zZx*QC%*{GKDaqb_seZ`N+-I=LY*->S*>xbaO)mZ~JnVjJBCzYorrxE}&6R$NB58TT zN6l>^e5#Ud?xMZOfb6;G4#mzK;C)wA>&G<33s2Fd@*nbZJ`64Y)RY^j)ASmkAT53s z-xXF0?|9EVbzWlpYo$Md%cNp3>@A;!Yn)zg*2`}=HizTI=~UKegPPBKA8;{(bAmUd zDIr`vObW-JWgS(>+y5DUDQR?jBi8DQ70URwg)mu}=>K@(O!Dlr*#0Z@&4%8p&pN$V z-3HWv+Vg5q>+Mwn8oB(F6v(NCFerD@E>6Hg% zlckj{!MFRWf!q~g{xxl+WGIAADE?0!yuiGiY5uG4b6wq&K}~883&a@FoUEgNmtAOQ zqC~GPG0T}@UoQ0ptf_qXTX+iGpLaY^7horIDd}0fA%gZH->gtuZJ#~DV=Mf~xv91a zrmi*2o*fX2)Ey;*6vPCMZouqefb5WDU%Kz|W+81Fb6@0?6dHX|9YD#sg$yIOzR`H^ zSoJO=jNAF5JdbPFS;el6b8-*C5qLg$NuC9|tT@Ypl+3I*`Bzq`Oj%h>dCN>zHcvK4 zFdK_-jeiwApca9*@pTWR8sFexv)(HI^7%Spm`vM9*38ztE8M*WW{Tbkxnn#bA@@=*+qd30q-t6T$>CAn*t8QGeM&bAkjMEP!J{sXDZ!r$^Gtmy>`U#9hQtmc}2%Oxf4?L)OwvgS1Y zhzwr84uP5>zCTd5B6W>->MrOPVvaNlc9eCGHNi!#OZd;cHpMW>CGPz%GG{wxthheH zRUnN6+Z^lD!@Rc=nr?AqzY47O&(-KJRBdRIjR8WlmfxsnhFxQ2>Of|lrRUhKQM{l2 z56HhuVbL-zmGn6(eebR-@TSu3)a`&N8K%Sj`sH4d!<+N(1Oxh=9jE8(T~f}PuMVFr z)J+V^l)ZZ4ev!7hTY!$%0ElVx{AuVd8H=P0%2BsE7v7Ev_XoLG6zc`YvZY>}avP{% znhu7>cVtP&pEJ9IbmfXQQ0|zzhCw~TB-fhaZSz$QI$2E^4anKNb7XpYD#e|z{4y!> z(`Pcn(=gs32_X(~WDl3y$ zP1W!_-v5f-Co@l^WG1r^Doy7itHCIb`x}-^Oyumn>6AQY*ExiX!z<_cS0!9@cImcb zMs)u)l7GsmtUTXJK?HS&u-YMR7W6j9nlDQje-zJmP56Qi>lJ&sdZAdmLXFv-V%^Z$ zOYBpVDL=oEyPcMnL#fQ;%4(O~h)L$9za-HunR?C>hu2Su%e6^C78viu%g1dq(IJIs zD~u7~Q5`jowWU-=NL|GO^G8sk=lFbPN>WWI=*tXQmk*u1`KSL~NQN%3sfZDM(^2l# zGwZalq&DNpw<_FD3lX`fA~*#|fFeaS;qrf39vV%?R*HDlmP-@CHy)JPfui)%x3r;S zj)a3YxD(4azmZQspuqUI=a2#`&+|kdqpHXxoZJT%JVT$E+SEjAcDiNiOvnoowmKu2 z42M$x{-<#W|1osnp4s}K`l{h*4p0>j7t0f5jQh%KC!H!wYf3LCsN9TcgXZ0>mq7G4 z<6<3!Un6rRPpMr$)!&ZpE|s_lPx zgO=2e+-!J}zStNi9$TU#9FX59a!&?LNs68M2qjMT1~}+g8zwv zxxK&S@hYTW+RWuuKWJ3q3#Ex#h4;pPlqBIU-UNNUT4WwE#+YdFt>IXCBz{w5|e08of%kFN&6a4pm zL^4DJvt4U!h13@#teqteYqPVaelL={na;|lGRKkGVlK@#65WwgtX^p&o@~wqa%jbA zbl)s!NqF<)9Dl;Hu)rGv)4&$1KSZHnc_8~r1_9dkt&c2rP%h@D>Pe+)s!my(`iBJW z!Pnk)p$Vn&ZOCUq`l(I=8ifCB2>9c6@qJsL6Y+cabG#ZdAB;1kR*KTq3J-P9uk`?O zeVK6^`@?k&rug@8*%Z!SRF=2*oxAVG5brW|heXveer{*Z1N`AXOxivGwY65)+}}8i zXa^PCPQ5Vw{;8;S|H;yac9nt&54gIi;f9MG&y+Y>Z|M+fhDH$9B+ zuzHuH5ESzuBPfK*#OC<0N0D6V)jmvP-|6zSt(ZFV0w}opyOj<~vd7z!^hKxBTry)O znS<>jgBN&%wZ?0PAI~(o*G@8SQ`{rJpymVF)D}O@S`G$l&ZlylY#d*f_bxR9_dhQ{ z(e`U8!p6xt+qoZ0)$p@xh*609kbZuiW^gDi)Q~=#i3|+;G>B1xx3oF&@L=WSihygmT{c%E-j7fFflmzT=H}4 z84Y&$QPxqg9@4yT_kj{Tfe~m(R8=oEg~_)uA5# zmE#-X`~ZRd!QB#%6E{*8kt-L{kfCSvo^mkCn%R=x8cVR4a!&{vTMhW%K_sYJLYR$F zF>`p@pCJ>EgJUEvL$ zLWC%$p$+@K;J31W*a0mD@k-pMW;)6sCN6_kBcG>v(q&(@o;>^LXA2Snj z;xlQPsshGVTXo9w8Gk`J`>)ON41HI1euKx-J8#wGOEur2(JU?zsAMg>2sDOEcvR>i zP^9CzwNZ4fJ|-oa)pEjg?)`CgsmYDQteaN`K4K1r=N^oHY13F);PtKw)L6uk_hV%3 z5nFWhBzfyNyP>^~Wi1(ahePR{h>Ij}_J$K52UMM-fkUKq>DC;l4lHv08QL9ovLXNC zEUk4ofT~!o_$W<%ZKn~_*yH@USv`dEjC3YlsXMN0`r@2?SZBQ@Ts=>@eTlqM@RKG< z{M_J9j*bPjYube_iO%&p=6eTQpiY3=s)*dFB$QOXTDeG=eju{mA8kGNf`14D`7&i% zS%FeNU#Y>6TwX`PH{CnW@wci^tASYj;&03$VmF-=d4EE}I^pv*I?}Km|6_k{)uh7j zt+IJn1+?=I;qDGwy)l`0jInfPY5Y*^{0%3Fz4ap*NUq`N1o`gZDaFdx-%|B3s)J;= zKI3b@$?)1N7_E>nwtD^`-e6y2?bWppU)z>gD*{ikyS1GPI*qDFrdl;q_UfQ-lf#^pe&22@YvwEGj`w#UR ze`MK@S2=ecJQ#fs^>i7J^Up#PVx`%778Bz3>W720v-dt#%#9?^o_8=ktesEEdORYm z#eRmrJ;GIa;{&pDs8ZwN&^eI-zR$TZcRSPx61{sY_b)1p49Cg(LECkQ<2tEYHjUJs zZ=Su5n#J6K2QsE(r2>xVMj55#hbsDC#A z-E&MY*ZcTbFskF;1F4fBXk%Oy0N5NsFs6Ne?b%8@SoSJtx5Rx~q$(O^| zXowtLwrFVEAh*agweJI^A@m27U8L1jFT`L2*NzZ`Os^yC(_@nz7*AIrj851oVf*CR z*1RbmMBqTd9C(?|P?<{wsS1XBb=OyWq#lYc$K0B$nA>uMScI&@+68k0mKNuhX2u_5 z5%!ibAjteinyO%{qV*Dtk4NfNywOVkV-hd8sgG94rsjoxOp;8G9ew=-&(^LMUfwzl zv5ZOHkeSmYi0?%5eE9U-TuIMdKmK`s z1f!*M8E-!|DSXlYFf0GwMoXu7OXi2SUwxak z8b0JS;{2`uR%oQG%^um$=o$F!V|p(5iA>~W(zZ^I^C_UnYZ}jVOFmLP5pAAO#D1ME4HPddgOvI(5vF^0|6yaGtmBE z)E%teD4d8L+W3T07c}m*!K6fWKnlHFHyY`c0zf=uB>o7+wGZjoszzYt9T`4N4x!xrV` z00@r9(7s!Si`Zq8rFQN%lIKAuV)yO%&JPm6T0tSoYXjm~e&Fs;rp)SA$&_=pFMr>0 zpFuD;`8rFJ#zdH_;@>gXs{7T(*`A{RDR8S^b5R}Dy>g*PSn-joe)p^4!5+b_u^rbw znAQdM@09}QU2^Y8N4Xo!G~|v`7R^FMT!_H_8*{y#j*#GxLEpum%fgkX_>Dqi)I0(t zn_TsjcenBG=-jR9_ShKbA!cKc={Ba|&F&UdRS@PM_gDao8=E!Q4FPSj9a4&pY|(R3 z;+@N+{n*DN^n}woh~}|u+{ZJKo7Hn4jPm#^bIDU?XISIo3Fq#~{EUrM=UwNt?I>y( zSnpkdv~yd}U^`oaqaorNaPf>tT&MLr|1RKP8s^f=Xw2Am zPm{x}oZd|bqsy6E;&E!2nJ(Jo^j=p-;0)p8Pd1nVT)^5w-gxr3=+Ja`Z^Uw;WaFix z*qalx#b^FbF@1XS<)4*Uu>C2lB*tg{*kE4p)_`uYUa=9>^W9@@5_t5GC-STa6v=;* z3&M`C^L;6JlD+!_VTD`n`MBWU=g-o4_GEo&*Z410W~E^q@+EsV39)9=xAk(IjlH`A zY#-Vxegv?4D){)$2-^6T8h#6}y*-kKQSa0tAzdvJ(xG`7v)A~b0i+U@Xn@@k>6t-e4C#tDw zB446~Tgq<#h7$s(N6WB*rd1~KK}jGZJ!V>{ZJXIj+|*&ccWzBld?7vh=le~iP=Opd;(*w( z?W9EotodsBvZ9*trF@tju;8=0%cWf5QgYQ*sL;QM5>LVfUD=g}jWAasHbv=^wYtvS ztQKc{rNZ$>n^Xyq!~A1AtiaPuTp8K;I8yK3-|Xxd!4q|YZ3}`4vyAk_uh}*;x@6xP zSTY3hL&oXmyT>Q&LWaBMwn00cKmFT(inobpYFVH86ng&eG~E*?jNh{9oFFO0EFs#< zst;lC>*MLsObfQ{#NXo1aw_)!jn_++s*0^^aV0T8DzXMB+^*8Pw&1m43AL($B{W~3 z&TT(@={maE+|NLHJ+3F_BzZwPwx8M&nza%9XRqYWE5^rffDT4CDIRAp-fUYRocmI~ zalpTk-r?*;oVp;TTxO)ULA8+oP=!x=yujLVIXHp5ov1-UzBNOYUzah(2~Sn4ZFHyv z1%!Ij_(;&xsoO=Q*Lgk7J>Ze;HYNXNQQ{gs!a;I5EG&xP7_>MqPpR%l?Wa20(i}kL zc7&`EXI0P(kLY|Aud+o@>=r~59~c52N*~{8xoX?p0WVr?gx>aBBhTb5gj=;ihRN0% zD01azT#UH+E@Nb_*%llbI89!~B%8&0^~pK<|Aw`t-;2tYH_pJ_H2_JFE0zJ=wKpDU z0uy-PQ@e{iA2be0EyqomBTC!9^Hlgx_e%N5pzMnv>7-{=ubQ~j`Kc1_o(jGzc5yeH z;BOx0Zt`!=9cCR}m&9A92kJjPwrQU3Y@Va%e>vZSUZa=sP;pj=aD7H=e%{osyrn@v zEl35 zW#gOKVtY>PP-ZDG*Y3hYyslqfJs*D8N^mnUGSUE(m)E%nUqp(-q*ZX;_|RC?*GV~! z^2P~aMLH>_zsX!>VsX*T%Wqn{$7uo!!6^PVj2|32Cvx~*!yuQ)n+(5Am9~4>#iPKh z?bf+7tpm3lHV3qlW&)%dgxl|_2C5JN_e&;rv;!62T8zE447Byx?hZh~7Ze>V2nI9W z)Zw$ebyxlvobG``tC`c)Wh%kp&YOl)-7ya%-H`)nTBO0BM~<*=Qjof3&A5JgO_O5_ z@8*Pu4XT2#$20z&fuOnxdNJH_o-*wD%ExOYZ8yXPPhOa$l$l#wRBOGaIJ9%;XCG>t z7%w7blnmB06idUosv$DyCZ47>!DcDviGXEaNm6;-W5fb5XP)~ax(0;qt)uuidrWbL7R7FSmS{nHg&9 z$KQ74H&ofj57YL32RJ9Km>BxQ;GK+R^Hu966BRkjvjRc2O+5zNt4k}bfL45aq7821 zr6?ef2Vhf6ERWG^u4{O9F;=Jst_XS?T(M%XvZEkhR?X%N1mR+96WoX48`Se^v2L02 zjc>F0XdbZ1pg;)BAiFZu5J2%t53DmZRcYwQBzSmZODvq*x@x2|Bf(uY7Q31@r^O-C zLKi)ZYJkIDlf8Am0z`B>c!AW;g&)&@);gi+ihiwvDyKDBMO;=h!m9>jE5oM3e6Ty1 zVfX!ROqB#4sQ~7&+?~CYNw9*xr-hC(6loHdi0KQ%BZI!ceE%t5Sh$k#W&&lfZeC^4 zYGH)Z3H34q?ho!yIVAf;GDvYp`myp;Mu`*`gGG$JN?t7mETrXAxV=?59uoQcmO*8i zU>$lv1ezV>AJV)k1i~6%)Zd)7^;vKW+Klmq+HdpB*n>V8n)&pnrQG75iVUuJs8+n% zQwkt?S@34Pcz!_F=9%+LYe1>^{Dr~5I}{KYvDJ>GgKWCUw;~+srzeMo3U?4bK4Ea^ zl9B};1~MgRdavf+q*rH$s_SA(%K4uy$@VR2C}KhLWj^yO-lqODwYSmO=Amim`pb*$ z2@^(G#Zr50*cB`seOVC`)4L>CTv@(J#uHxVN@p`{I1}N{Lz`vQtA1e*dqkC>=5Wb* zq5(d49)g8ePAEwrsYxXCLfdHJdnEt81kj>-MopVnX-x%H@%^J)KrMX;XduMVl`a#M z8b|) z6t^n3Zi9iw@5LnOl^e45jBem&xBsS4peBe~92|O~zIBKS`k?fbTVSfW#9L3G_iW3Y zrU%I1_B#MmNU-;P^!|};HAy&iK<&)=1weg|BA?QtP@rr0`zHP@Isl|IFBC}E^w!9` zlWqI#Y*Tpi&R(9c-3T}vZw1b+aC+0dCt3%x+vx zXH|RewhEwV9lX?~i&Pkx0u3HItFww3R&USFBB7Fouv%cFfKa2jFBr8}FMB&OAF;;q zWHLi7t**q%vJfax?NlMuBNA%o=3#5u6n7EnhtOAZ1M`%;c`X%rT?4UA6{A0-?UuW> zRwOetEN0o3BfK3-gwZogO_~#Oplg}!HF06ucuN}p)P@-8^WFMLAAJv_V^d9L+3i6N z(CmOV)1hcldc$OVXjf%q+^anFh2?5B>ev<|@OxihA$0THZ%O5O`%75^nVx7YPrST% z3sn_SYK^eY^=h$p956+^%sO2@^8+^h4LHjVnr$RC*)O^-07A+E#x0TnRilwv?Vklr zlJid6j8vR)d<7^puti1l#OZ;gdYIpQi|+*lxUk*#%mTdu?C|C0!NkDgS2u1-=#OwH zi7a`*gKKtagv7eGqV3y0KO2ahWTtG{&m`ysG(W^G5%o$$+oTkhfI0c&V0`I{QvK!E zLF@3;n8D467n1I4D`d?q9RflUgAH*s0P}Bu+*p4k(cnFy+D&f=(D2I9EAn-wRuwoB zYz87g?; z1+EDth$j$xmU}#|+v6TNe%KenKk`$b2*&-13cpOaP;5?AN8{E}*M*}l*{d;+=yBc4 z2VP@N(|3zKs@I^Bi>~-lPQXpCQTJ;An)}Cw>c&3X%I>{OxJQGII-n=%*z7pzhVp6% zm8^i7wX$^Thiil4@x;Cc(NdS$^})qmZE_xN?0@QnJw3p^ntquLLKSR7*KM z@7oEW_W(WkO1x=(doaU%E>h~Cb&t#Vtd2M*wjtFi4(>*;20K__)9g%zMz3#tSBV+)!Sp^nI90>~0gk{m;R_Gn&Zt@>^=X4RthH7cmN7k0~rh0WeazM$D%hDl& z%E;cM3~XM(;UQ!SFE_nLW|oZ_G*NP|hm)@4<;75S&`PKc3{>IUUK|Xyx2OvaQcQ@X zfRW}B!r0l17NHIcJ&5hbFYq>Sj$3Yvjzfq6uw8hi=Y3@zNsj~zu=fhD{H@QR7ykt4 z0T;ltl9@+2QbF_0j2L(Qh)#uek14xZCP-QX^sv?D2ufSV)XKw)W8(wV-5x9vBC;Ndf+xRz@ z`|+mXJn3@~c3i`_)3`GS(*VGv86>M`$>HJ`*56a<{x!fsf2Wmg*e2PXUiB!lnJGQR zNKqo4M(7yfE$pRjKvam$a)FL%ALu2{*(HY9=Juu3T+TkS8{Wjl5s$@%z=lkcAr0zy zJ-RFstL!@MLLH}=JBQh@(?c;T_2*5oCR1#Kz>2l>r9c5SX#zdMkI%rRvkcur+i+`> z>PrA`T$-gR20$0vZ0e}JBTWE~ws?J&1X@3KqIsb1vLrT7BrczMF9>%Vnp!I=NSU`I z_}E7+iwC>w;lC@Z9=v3F4qvlx%q?^W5l&;y)VP{~df~XAZ;)w;GoQSrVBxj3LG%9J zeggI7o;+TFnjS#rX7=~mvXMMbW<1`sWqBravwi#M&lI5K3@^&(J*>)R==FqB!(@=( z@}$zz>*(Wdmr>r#x;{~-=O1?`i?Nri9h#*#8IF6TB$@$z1Dw-`ie6s_;VQLR-rb=G zY!g9i2_a!fQoSfrI@i`b5tzm8@IoBcpzJ6H?8506QQLt7WSN9jpfwxOU~vzU;aJ`8aH5Y#<# zI+4DJ>mz|W30||^qVwHIm}D)z>3#&LvY6R5rG{V*E%zO$fxBSMG&HwSZ@*8AIO?#b zI%o3tEct$Pj7>r>&Rg+o$xb!&DJ+tWT!`iINKC4v{AI_;d>z!BD1O-H9`+oL-25xMWzRP1C*^{Y&FfhW+w>{5CyZBY!Ndsu2b@7ga*WVdK)!=#IdjWRz>en%sul=%C zMrnk;);Ac_#h(NO8Bi7fmzE2;6R2HZ}`ol(^wXQ|2H4vFD&0 z#(+x0J|;`|HLNF1_+L$IWAogEn{8*AgyB8_z4D$-?O^I$54BEox%5O{94a>tjTGc2 zrJF?zzRHbst&RVqFc;~M81NrLi`z!{^B2+O$icU6!}rEjVoKMkSarU6)Xc)2g^ai! zJn|!d!a`usnxR_zYmZvS{ahafDf@jFaB13RVRgJsOA=Wr-dEEgFeDH>?5`1e#z-Y$ zLU+FHYb7Hjt)XETSM8kiGA}l6{=Pn1z2UbiNXz`Kc9}_qphDR;*$A`c?gjQ#o(#om zp19Fskm>X)PzvNXk6^?=Gz}2;x#g|Ub%U|K!G-Taq3K!E;gvXcl!H;X5nQ;1Yx=xc zFGvREc-e=h4SFAJ+*0kBPK2cqxt9GMzKl~m-Xm~om-sh(H(ojWo70snhY~`K3*IX) z-T74B^z7AUWEy$-JKnx&W*w|E8W+1A&L3CSM6%%1d{ox}pEksg+8`2^*s=TTKq#y| zKtgTp*^1vh{-*ChbDMNF^3fTjgV9j*U|7ZLzNO`nG;gi$h9<8-?9xU1WOpJ~TgHQ_ zVadcHtc27%bz;mYRJ?jY5*~;iAQA3z7TUxIWGafN)D<9D4&Z8$0u(p3?z;Ihv>$iv0-iVn z2YfONn>;Xnh4t@c4d{bw>!)$Mf!5ybZpGeS$kViIXTP>RB;-nzYbeMtVnPUDllHk8 zzeC~Iy!7fXugly7BrX=w{b<#O4d4~9wWUVTl&lmPjN*p1|3dn6K+s}%91(3dKP{$! z>Y12VF9{7J&H5XV9dxl7+s&LnufCPmgb9n9+-?8&Bb6JnW%U(6M@x!5!>$+J7BWK& zQA7!&o5OGDOofZ9!D^fXy_<0f5|=w?ZD9V?>YN}*_O@oJbXe(7x)KqXWgCVtOAN#JCX`CBW81tR9d2cjVtW;fcF6Z1jUi*9tNDak<&84V1_4n?2H6OWGY{c2pgbQqv z9b8-lz)Ozsgif=>H^{Oj)zw4#<0fu;H%%E#(hLaR_CTN^{w3VGAFkvR4*-3&^wCaG z!0@zv)~sQOqkob7Sx zwH2<$1qjAvijKhBuX09M@bF~uIJSF&kqvjnP-UxCNriTZ*$BLqPzyp3m~U3yT31ns z_CQrH`b%p_fx|q3uN`|<=#@cIACTD+?LaQ`!A(&mNBHS&2q!o)6*?sA35PYaT_Xb3 zhRPpTynac_uB?G1`WP+m2qNvK!YYW9`dV(Ka7KDLKYCHs5wk#7Y2IDNU{m$5GK=zp zmvN+N-Fk0l*LIy^54ak3KX+)`gC2;%-y^nN)NmVJ;_n;EJp&vl8bxavy(fYk^d{`^ z&W>t5dPESSeZwDIH@&h~;p3=^`?0;1mD4a4Ax*ZX+Igt3{e};Y+waaknLW%p57==o zHb|d&1D(CQ+B}`Hw4wXQD+|-7hb12}Wg42#Z8!kx7>axr5Fhjb@YJ^B2sLhN$FCS# z=!TpU%S{c3&qeyMq8Bv&3W6GfgUkR zHRx1|K?Tq{djnz&TSt`V@oZC^<{@0;q+MNuFzM4~j8YV+zInmg|1kZ1$q76qY(7gp22+%VQIWgu4m*DT_l{k;Q31XbwMBf%5}FEPm7_ z4|=-LX_@Xumi2Nd^dF5k)$~z!TyL%cZBXpIrFM#`Hj2~ol5hH}nN^~F zHBTd?tZ_LrmgW7Ze(8vkEB$@=g}_LZ-;N=tWbe*rBcsR9 zOpTHIQv9z4Ik&b}KHS%D@3V(Wt4Tp99!wLgr6X(pXlU(VA|xC4(?|>p3hS6zoVmZ1 zVKLj23dw)ONANXv_FN?Pl>jyPD)4ux;R6Y1v1nGNw^JRN#oZIA;HczHYnmoPQtqXr zCrRR|q}pCTBz`EQ#S19jUSeZ@@Y>*}OCH4>dKrRCPo~U!@)j;OPHfL`E^>oF7{qWD zZ9VQt#48F7>VLJYu3~w&ivWitXE*PArmcm0B!j|W3@Z)kEORwCMR5dz9j^y{wP-lS zHsxDd?~9QeeI+5DUjpV8!dufDy&2mSpKEI5WRJ2}5G@ElAV5=k!U}=vM<-=Wcv*qf z9wPf=18Lsz_Kr3w38t$Vze)DYxcTomvbK*Q{DpuFJ`pJh5@eH5dWR57d zHKfNau7nB!rfSP7BNwk`2keGWFH=nP8eMBD-C8ge6A|{B%m@WuD7-qsl5jM_Z@Q$d z2Z_H^z2=)5Yc!PGWiv=Ixu)jM8NoL(n_uyY<(^3w_`J$coYxIAsz!?qsc&3e8yQ$( zo48IdUsNucx5WVRg7;9hE978hggvUONZk?Rg0vc+pXw8{bF_)qS!^YR576|;VT?-` zdmc`ZUGWdS5Ie%^7lc=*Ib`MD!WKt)a2K`8!ZVcP(T5ZRi)(-UNAyS(h zzj3guvX8>vPkG7`Eb7kLzoYsrm(E0W2yPFxE32Mn+xua(tG~lc(#hud&mLKB?<2T` z$VEVir}3@u<3C-U5c8G2-Oy+t31YDm#jg%$RBKuCszKDNq?iifH#V`b#N1-05+IA^ zjz+hhNkgWPoii=L_*?S7ze+RHhmmq9T3|HvtbS+2y(?9=icep5)nHfJ+>3xONcUt@i^MN#^u;@bkU2LlRr5ZjA7J^74d{q;ZCB z%$<(l+%UE`+W{G;_3)sRlJV*JMs!SVM;rBH+1+dcu)N(6Eoyw+{=ZTcbLUl80gkCh zkMf87{2YGQTuz-UU%w%==BIsY4`NDDu?}6vCDKY6==3`98EU_*P?UF4n1D<(IjzcZ znANG`fBUY`aW9Abqep|+FsXk(oQ2W#aLZa^+h|Wh#T8>^J#OXIy4BmZ@2a?7K+|qq z4fr>)_viXZvypb(m(=H;2`}C%OPcH3acLeOl{B6V*?p{E@^$vZ_XPDd+r_E^zW@2_ zm?nSAojHE62{*So<4x^GLFPi>U+bYAW_3r&w^PF;dA+vYh!`LDGWaJe^g#JAYx3la&EX8x4b(?SB&6AK=Wor~2_trW3e=hFm&xK^87&TI}8Y7taubu!4B7`G1q^$CS01Ibh^oda4e$Q8`ZQ`ye&vDzW0{ zx6jY0<*9cMhHvLlSE5?g7lPeJUOVbdf|$gKb)EBQ-FIg>wEugHZZN95YgghTcZ8S2 z0W$&qG+G5nOAgX@ZMiUl@VQxH3~*w>^+21#7t7Ew-=c<&v?mT>Mo&i%Mc0Ok5!YdG0IQXyxb`nn_P(6J5K+L_1m+}zWdaAbvt$j{U5`^DkC-j1z1$hn;hMy#Yziet&<-Uy604PofHzsI1OZHjC! zq{klb`J>I(=z0AtLsx^n*r{!V5JQvGQEb6~28W8gG0Kj=|<_2jJO%#%;BZc1z7D{2Mz`A(|bk8$|JN5 zC(~yU;wRWGFo0(_u0mh@x8zvm-31`|y%lOt$r;6CFGe-vg&CmY2StloijjcqMG??U^zF3L- zidE&}& z+WTTzpwj;&WS`72k@sK&u3CN-OEKH?)V%lc>;oom;6DKIx4HKJ*J~xOcQV!u_jN^! zQvUnjn9cb6>xB44g|zylQxEcvu!|hFs=E{MLSm!y?_%=@FMjzK{|!<9w_kH!pIX-y zt+%Nc>1%f8By4}YuMj+Fd<+Ob<#KfV7i*#Cbr`^`jvD(*GJ&&i+7 zg;FPi@vsAvk19_HBmPWdr!yDjZNE{8$408f<9T`=iG^T? z^szql!XYeBtqB{zvSo@G3OcFff~Ie&?sc1X!owexmm3n5?C;PATP_|^7(u-QV-J2R zPKtCCjXcWCl_f*sD~2c;yZ-3lYfpwoNXn@M^6uQHEzEwmbLSEHh^4Gc70z9MY%FAH z^{9@bpkT~oF$2)%;>c=#kfqd|j&;7iG1Ec?@P1nPm8b3l2A{HQG*#T&YCF_?#`Ki;^cU76iSGFlGkt8Yb8qWI9WyTv;T{_h!d zv%+q|lsqjydAD+WT@9Iaj8%tD>ni0pmD}pvJFqN=e`e`Lqy^_y)NwWFbT*aV+@SyNNcyn^eje_QuZCJ zio#y80ROyWRSACI3fWt~x=~1Y!LNM4Lcln~fU`w2xYC8OjQ?Z(nHjw~ z8%42RuD3MgL z@pFUmC9NIAV!<>Nen0Lb>Qy=FwYRvPEDO`f6#aIE9BxDX$mhHa?7GnOw3ZM(>cZqg zKL9S2y8CE!&TVwe>k)^7mMlcV*H0s#aqH{C(hM_^o|FaO-Q8czYCxZsVtH>7GJlP( zUonJhG?6P=r(|E0IP^f?dKgFR8rwTYEJ+?SBh z$NA#BPVa)YP5S;ZiaKDGx!W>Cn+(T!={NSZ&VU@xBvjNwsNJrXezMp80KtF#(1>6~ zzO+Z!>-`>2;c*!!r}GX2$5^VCD@1nF_xa0K^5ev9mhO_9(o;|pPo|1@4HZrI+6va~ z3p?dTaZOCh?ox2YQcZvUg=DV?Fk+#hIt`VShC??)8_Jk>8UBVw%OV_OIa)w&&{+hf z*VVKaW_1d0y0rJj$E5D>iSFl)&h1^j!T%SK^`!7$f6a1l9i*vzk;h_WM^=$>PR=@A z`W#Dn1;fqAH!i`RP-3@#VUa&V7rpCZZ{IOTL`wT?1n#O|idCz5@^G`Z#A-GLc;G>D zuV$DKKpj&~%^Zfz`VH=__N9d_M5Av%r?kdAJTNlfug@ckI+EuV!9;*Um zc&SHJho9PJ|B_LfdA<(QIQnsAqhV+V^en(`74U5X$2Wz$pu@+c=Opi*zE5wtZg02^ z%J99j7jx*xKVq~m>&tuPMgF(N9`x|O7*wlU34zzZl0MMubG{p!yB6!h2SBhWmF#Y=d>O|7 zL2%bsHDLIApAXWKJ5PIkuY}o@u?lG>m zHO*uIA_n6fZ~}m-QPQQ_GI-8paNUpK%wCYs%cb2S;G{g}Sl>>+ssN74jn$w^aa4@Z zFzwCh094y+)a-}54L4P#=(d7X+XoxLcQydG$rRmnz|Gw-zsf}t&y!T9 z>Gd1tv$TZb+pjMG7T}5zDbW2Z)=3d2ANQVE@1Ls~O-Py#JS3wRYAl2fqYsPj^ZIVGKA|q;YxLoDHmuLLRiC52 z;px-VNzT5!P14BRiAxg2z3kQn>IP;WdvHOo-Cf_uLI;+-JKl(|? zg0Rj8j!#pPbZ z*<&iFhQ0iVM?+kvN|$OLB0YxE^)Qxv4z`X3$k0*OI5ZFaR5@yNZ_3=!(TjfINn9zD ze)gA8PhU4yrnX$8@;r(oN*Z z&dyspz2V^XpE?NWkokVWr3dma?OI;*`|D~Qyf`X|p6}moyWZx|Q&~Ek?MK}Z)8b79 z8F%?uxOTpR8@Aj_h0EHzd(g?NCxT0W9uX1OJF!}pESKOb?oL9~0a4ti-gf7@@HH3a zN?J_L({seVY#q02&pxqRP}55(rxbq_B82u|NoR11Z`W>`=NfxwR#zhVfw^kW6= zYfj_@-Vp2V1kNM7j-k;_432C zr8nWjl-#vW{|c>}9Gey2j`f#1+OQ}^uhh5r+3Wihr@|7!mtf!vQnuQJ!KNPuO}Awo zC3n(2XQBN*ENN+@wE6o=AUKrfr!zv`SWLmDMOK;>A9?VTJ6}3_of-Ap^vvpYAG*7% zrV}P2kO&F(w05LTEiSQsy3H(TD_aMdQiC%yBMCa~Eni?$!-O!Rn(ii`B8{X{zgV}& zVS(Pr{Oa0fUX7}vsZSAnkJmU9Z3p@=rM5a{Z=w&Ohu-7Mut{#O{Cqu1zif)lq4|nTX>@EUG>5D#}~&ZRK{H}D}Mci zACUrWRE?6!m|fRfN(juF^=93s#z~f=VvOuEDnOTPuSDe$qtdT(@$X02U5Ydsa&3?O<}}ia<~pw*S9Tn~6@l%v?)$k3$HS1{qdF8MlndkRiw`IXMRkD3 zBdsJ5SL{q_@89m9wV^&V-c`mBPkw$C`5cOC6dzyZ4>=H15fLXDF)(F8GZCi$@iBBz z>L6QgWuZ7Ld$*>JXYt{i_f0jAS@36TmI9HqDXwo-d_JcIcv8qX_p~GZL8l2E8e4g86)*EftZ^aW&NnGFnOF7SnezR z)Z^XHfyW*K)qo<)&vn8bo=n2{uHKSl0!&Jr5GWG~K{10`RrgM?4~bGEFXh_p%_-4k zH+qMw1V*I~QVD7NnzhpBYunj(&YgcyvC3ut+NfgpT{0s>o;%2FS!iO6KUj78o6R5Z zWLlcWoo07?#G_bQmMmG#18B3d)Hf>|P4e5d3g*zrSyaD1xy`fUpfC&17v;N?#3g@U zV$S6q!+_%xf&`dk`EltW*f9RnBbD*(ly=U*@^QN1m{W`YJVT{2BHx4MQxf-ng<{!O znExI?cU~<(u9Zr$A_ot&{7W5F;HsUIwlNA`7^v@70HaBC<^{B_TD@i3itgVE-G70A<8l; ziFei_lr@ryP_jg}R4UuZK9(VdN=zk7SxZt`W{@Qe8bxJG_H`O-))~tf%b0oYF}**f z@9&)FJb(P2=l7iRnR7aa%)MRrbzj$Yzpmvr=@R07VCj&K`RR(;!`lE2O>V>&=X@u5 zJ&pZFxGVu<7iK{C%+EUZ*LJ`pk-Wn)_#^CCgG$TP8Q9fKMn2nr%ilIhMao_39P%7F~Wa`2W_HT*I~eOaLRUT zc{qqN{+k+lw-#g)+1SNVN8LaI+3BJ4UmQIbO}h4(ByQVj-E&^0+!q(Fz0c+9Mod!s z<_?TNQ&c4BRpd-hO@!w*&RC57%O0qI@;ykJI?pk&ZwHCfuu-q-3mfq=gsxqgp4;%fB4a~PIs5@TiwF*b6D|g*X zw3CInVaY2j`}NJ0M)i0zm(~h1$nwbQexcF_Y@Dr_9}kp$o^Fdz*(ic7=Sl|;uqTGI zI6n5!qHt9`ruojf&mBMbRBKOy47y4^M@2%l^NmwAxViqbuj-7Hyu1F@XL3i~9Lw@_ zYvLzNGxP`dRbTAkb2w^Z$xV}(kFT>xh$A0QtQsg%OOrH8f4Fa>!)2>=o;HC$mr#Mr z*(bW8(q8OeQ;j z2WyDGz1us)adZEHhm?tu$*1*QpE&Ap?x(?1eU`oLiQ^nV=O}h~D74Wqk z)jx7(F(Q9$8OX2a5OdkK*>|c`gNvUwh<=5RMZ|V~A(agoQ(;7HLPve^RYH;O;J)&l ztjgP;ae&5tM99Ct6anKyegZF*pJW>s!eXMUuRujy!uJ7HM<&NTsX>W`_Q-GN&jjvMjU@qb2)_j88%lx+mVyHRxK=qAxdpOjBluPg~DvgFwoALcWHv3{@e;Rbu2K#sJrmU-$c*>sR!@}@H9 z@<2Qz97!CI5O^^?FOA$hqNkc~a9Sa$7@8hFBEE4|%EsxWC#G6EgK3$OuTaN=N3v~` zVgg#C5WpqamTec{S4yaz9)CCg1?O(68(5TXV+zK@`L?I7otiipvI3&PB*{3W@Y(186 z456OeF(5Je*OsqO_rT*+&e%G!&dHdR^0|MWX|BHatl?I1Yqr~*qqSjt2F9lIt0lv6 z`QP9F_t3-s=`_AdOMP*Pj}Xcx#uG5po!#-iayezPCJA*+oSLAe{ttCQnl48jNJAV+ zrjDb>^ci`HmZz9tHsd_YWMrich%FA#wM&D>Qf_Vb?vE~sD5)HKKtiXj#*^ezy-#Ln zl3EPr#2IDWWrV@Lf}}HsK8bIvfoKW&4EXyh{e0C?saY{nPdKK9@KQQ$*+yUFBeFx( z7yN=hf^UXg+s{mM1wU6Gd2fsk=gK``xSMN7?L-b&Rg&0I@c;Ht+4#E$)HDED3-J53jET1`Rl zHU&*sZiK@}N3 z5TfMUUdIDTL)6fZCR2J4yp?lJPLXvp?^Cn5zddHKfLC=nqg zB$RA!VdJYGyajmt83Zmp;HJK6L%^xf>XlSg-6iHF=Fz}eNdm@W!kfj^?XA^z5+ar< z#m6)?W#p{QJ4yR6i|bZMh+Y8op5%*tDn**!Wbcx2#QdF-Q@UZT69cQzFQ~m>0T@Go z;8fFsP|;$}71O#^{ja5C=+PK*S6Wnz!J((}AcfmVtX#|cMo~%ii|?tM68boE1=UfzFd`JzsWqy%^A2-Le2L-0{`Y9*F+-?QEZ61n2P)F)U z^%=pdmdYTA%l;+{GC?#pV%1zkDrXDLJU!q z?f+vw^}JFtaKOJ9U4zY4%Ph#;?*m&UPgD;cu5TYPvIth1SD)YP%y7Pd!Cq!jh^Td* zI+M0?8>}unMvGj(ymS4GL~9dRL<6rQ{C+MHb8mrQ1>1tYWr+_TbZee74EbX&3+}u! zhOA-ztjJuH;>_h%IJBYT=@wBn$_@4$rp0OhC^hi59pj8;(SD?)-QBj$sa>Vg)AQHP zi<^{c<7w6C%oEk+m7eBGCZ&`W^h+}VVW6O+Mh?`cSoEyoTdWVB`0!323>$9)hH@=P zCmeQgrhOi?#d5`u<&u5aWn!3nb$b20F$N2s!%*~C0UyxkbP@be`0za{J0s?&{!}_F zw34i%6}xQ{v4Z;GRJy|WO@%%27w7P0w-i1vFp z_~pL6(E@e+mq6RyXUS_0##0mP_?{Wt|KF=+Wvsl?w|^oE6DSw7*vS`=dfAakps2;Vto@$iOT4!}wl&`K6yqQS4+{>6&h*UN z2QPqyGH~xwdxj94!Vhz;0LvH^RM4J<;@(kk@d|c_ZTz1tw0z98cR2s)o$FBV zozQOa$Brjz9$7XctIL>3iNFYmJZni$vPxSiqWc6YDRr64`*qtPiFiM!U*iA-ZVRX> zQhEfG+EBDlya&ovY1<3!&IxDDZdI=|~Lxjn`y9iy9wdDtX>k)4Yf zY$YS^hdD=b`??EjPN(}Wk5KS}L*b(w{}&CC%NSD^5f;r9ZAgdB}M5Auv3~U?jf&DmPDGC1S$vqd;-dcHDRT= z`BMFx^avkgOJ1TK=Ve}K2FwWJB8`{5y!vi+#;z`o=re-5b_)SD<@sY=a!f8nk9o5b z7-=e}oUC!nzGQ)*N5J|bjk&T?f_+MtJ9?#u+$#L_m%1dIIK}8~PBpS>Gp`?56U#`0 z=59dbq!&XL<)EfynixaD+us0(@>fulWq24HQQbci}UJ{B%oLVRFU*g-CGw}sMX!?Gfz(eLGs2Nz8?ftXz8ocI4W8w3dB zYpWR!CGBsgOQueXc?5oyY~Efnpp2z_NOF5Go9s1_RpX>dS^l|Hl;e(|Oprn$sn2M_ z!c_uAtEt#u`wFfGjDQG+>eD+NEPNN)Z=Ug3Ul_6QP7$ZC84MQ^cyP`XEnJM}HB$FC zP^HY<-H)-0ItxEw2tQ~D0t}<=vdf4xw)qUOi5o!A&bJia>6K#dL|3mjF^>fnRUJd(O5Vg%n!N@ z*~fG=GmK#Soxk`>gtTigMYI*GQp!TE(xh+uW*_JCsPJ zclBi?$v+)Y{|n+dG;0I^;>ES?aYATLlZnqJi}mY#bL;b#Y?rFpjL*@dqwUW07YxOa zT3R*vH2qhO-Q09UxzVb#GRXKB|NOZZ4xKjTpu0-%rmYF#2?t0@}u6q!{z|J6mpW0NM{bFdf z<5NPgxCn*tvaUurV`waQcxT<0jF?z`Xk9H@zu%vdx^7|mHG2p~=tF~!Xzd3Ct9}S> z&>&rN-F6sAg-?v%=*l$?TC>LU&|!mhxQ_Y~y*l)}rZs8;?w+JOM`u6G(<`uZg(_I} zSTn{yv;NXe3Dh%MZ>$^-edWD7M>Bn-iYINUZ)EvA;{ZkI{AM0I^G1{0FG3f@b z@;snNm%!ilbWTYmH28p!Pf`}R3lpi%->|uTPf-IV~}c3o3Q-DXc!GH>34k zdr4J*cTdwWzH5n`cNL#t6I7EzP@(@ACb`=!EMi8IiNm@K9%uLh{^fVF51kcqs>aP` z5^NQOzVsZGh1wYtZ5LH`txlBCCY#2c6}0l}kWR!coK9RYOk6P8EnIaMzK~xxpJ76t zK~Mvi1e=fVPY#%EUuM`a_8EV$D|Y(5le^MXM`j+D_KL~gsgzHQ*}sIrzf~RhV;nP7?P$rS@Cm;oI|v$(nwxhntNH9Ys2?Na8u5&(8CTXp%g7qyJXKbPw*)(A?T#Uq9vQ*XTM zz1>vOdb5g}EBtE}K+!U43o%v%hyNt#zi=qA?Dwh5BaIg}K_r8wS_!YL-J*;#$~wa! z8X`^Dr3n(zmKsBTHsnT%3QkkA58r& zpc&hOvCeTD@CYac^U4@%qmqX!gO<;Kt{5xjYOS`Pb5Ek<4F*I97JNI0(d)F^(7}8Y zkYvD!EJDy}R4K#2A5RRjA~@+wKbynT)O8>XGGHG4Ay{mAL{xWhm%S+hd@#Vr165BH zyZ1J#^0q6`YLTXu07df~!>0RDCw+%KnB6+>6;NnwFBtS= zDjtVoU)uD0!g3YWf)LJ?%F`TV%1)ncG#+yVorFaHN%?~HtpkI@=e~gb`Z-!>=XpZt zpy5Ove(s_sLmPH62Km>hkoTP`lNRy;W~8xJ|62Yh-~P0%98oLH2xYt7jCvuKGQVww zjvA1s@PctQD4NXcUp}8WoywN&fO}~>$Fpvtb)EjBV~DW^*-MFGQ7-lss%UYx+T6aT zXqeb0U&Sm=rp)_i$Brnio!sSM_pubMhhoUmAmd1quTx!3_?fki)zmLpjN6+s%bzV6 zhh)9QReZ^E)46@rCasTQ;d)qFY2X#`WqaM+hLp@RZx0rn)v|_J$#1yhM|L{2xz+t#m>n@aoFY-N|Nxfs$HxLHp{6KO~D) zZwc`YW8yX`Yvfg2ujY#7(w7pk2ivxmx8alH#I!*JdtGL9^}02btFgE=)WRqXS2i`F zK_E86RVxP3Y4^8n8GBQb@=Q#f(V%8SgQagZEt`_9{B1mk`UyjJetShc2Kflf2oVTd zlQk|JG{EEoIQ-w!*)h`}fKb|=wbEWZ=^JS(*Ps)wMJr})F|kiu>Gq9))vC;eF-ida z8=TJ2CpkssGXs3wwQpv~(?lYNm?r%LDPkyfyF7gU!;QT#3G!GL660tbTn)Y(!VQuJ z{#D0C0$iWpjC&8|`XcA6ic~6yijYYBTBM}Kv_~y@B{M@ub*zA@%{azkziPdKAFHj7 z!+vNhDP+C%o_F;{M#+_{1pe@ZAn|InFCNmYR>jd8O zhvRnLzhyfOQSOyoZ|nq7cWEhMD+gG%z2YBRDckQ! z3~IsjUw>^`?XEFVH*i~lI<60eB)9||Vcwpu|Dk%V$|h$tS}-;_P3mJWNcUQsZBGYH z_V&JTwL0?&7wmiq?ME~vh-t2xEHxFCx01Ei4~`e*hvMoyodqmc`OqKBy`XVbCAX54 ziI&Z&ES!FOBgyWCM;eE=cpIAbqbJJ+^PPm<7f%}uaXki3viy{iG6bLHUEl-`vYbgQ96Ai#_IgRi!sC)h9DXmNSgl#tUDz7 zY&y)LII_@4RidKGHx74)a#=w0xR6hW_wwW;=Vsw^o;~16b*eY7RK-}COBtBK^-`}R z`ypcS38L98DNZ`dx^2^ESbBfuAT(>H70z!hV%vE3Ma%{o$UVme$iZQ?fE+OPf zYC(x*+Uqmqf!Bh^mnmrI=-oj~1v{qM;t|kNG#heE)PPB}@CC}EF z%+L?F*fBY|DmY47i3Y+ZE`nxNn^}LhHgi%&UQsTk5~Q-pt8wo$BL0(Kx!rz<3D|Xf zWrb++bC@&(gBO5$e6)cGsDK4Dv~HCjV77hu8sI(|#lG*Sr#FA)4= z6s@ltJ_0A(;G5TTtr@h>Y*7KYlts`J4;M?7Y+fltxJYsdi1X29A}AeSH7Emu%z;3@ z;+GOpcJyj>EWy3W??CcuG?wrx26Y&`%@eec5Bn4giPY-x)Lj}=3I0b2`k?)JdEQqP z^gjzu4aF7L?eNXJbpw_eiZeIWeN=slnUI+ir$+1%WsGu&C0w2w8%8L>Q!c7b#G)c( z?aH(Qi7Q3D@^DriAZ{pu6ua?%2TziXU6%YC8x_B@sR9V*RgxG(E87JyOXhAV`JNOtaFei{7Bv zLQ1kqSy>b#33T{(VE;-d-&|G}Z}1KifE$o7$1xYSgiGvTv( zD@*+^xRwj0zGA7wpEa7@j1M+ginY$$u2t}rG36@kvNIF5UFVQT3npE>EDXQvK$!ja zdI#RND9uIHv{%RT*!gYEZ|Qb8UXiHi$`^%8g*WOlp%O`F?Ld*6$cj$3v5qii`BMY z&aZvy^{ke30d?;Y4F3+w>9}CRp7aY&x0>-+2p?*K5XNG*6N+sBNbC95O3i16b8G;V z0-VgXK#KL!8cD|JDpjE+>-rUBN-vJvSR?+|SbSitP8)uXm65V7%U4MznNZDKhS3Nr^Nd&Dm;1ZEl>6HowHk>MJnw*a{ZWFG zdzlP1YO;!-dpTEMBcQGWHtRTxf5O<#Xaj)18BV`(zy463=%B!{*8Z|yG;;G$D<}`` zk`3xhd;Czyiqz>+XYPJn>G0Pb!DC_vfhReYF1b(WWp9r6h^TKkqR+!dRmT6pZ1f~$ z_mJfpMCGzb@O)EtO{W-QuNKgEOxO)MJo|B4V@ne!zqy$AWz#JjvA4Kqa&sbaHvlN@ zl)x($&doFhe>xIt_K5_+j{;X!eaud&zT3TvqyQCnuI3(E(G83{b`nuJo=td-EeQ`; z)QS^3!Pq1Q%gJ%^8F9Ctc4b;O^#rFIT=+3~R{!;`pE>f<7Bz@ZxzTIS-+Ht4^9&aXgvw6TAF~6%3=y8j909 z1cxN=dhHAo^ZtSM9zOJwCTVasrFV^ef=-1zf=ccC#R|#=1$i5BsAEV&1paY^%HIg9{ zv~4_@4m+P${yHEePu9fJoRinb>Ut$@T{jgwLy+Pvb$j&hL{&3NyMjr2&88&jETup` zvWAmas=JL(>G}y{f-}KLpaNdv1RbZ_yq&m5m;#6sNZ5;vw?b@d6T}ieS*90J_5Wk>W^ilhEv0 zGo^?7-g$PGHZsm}a2x0^r14i`3xnlu%3+T~fp1LECfH6QvE;sCXuL@y&q zGpA*P@bH^mbVrupZ<{UQrb|xsrnd1Jt3PG>6AOQ1A?b~I*jW&;Q#M%E5A@!Vj>VL6 z+Ch_^PJinyfR;o85cZeQ z`-5(Gmt$jxLO&G4$*a0uJ_e`7-V1Y;%j!y?6lvt7N>SP}cfv{5ph+A0YP1~}8oOLh za8z^K-r1k8*fZ*Xi;^0^^m)2m|7}yY1^GCuEA7q}Ls+wmVO7&Sh6(!6=!kv+GnJXX zT?3wzM+pe*Y<7zY9^Ouet$iZAR|yucAjG>8#MRu`E$|-t@37Kuu$2B^NU|a@VSdE{ zq|cPl<)F}<&a^ZET%+%p;s^uu2hcip(%N^59bFFQmxd>0-l%rZon&y$`u1pHN4}Dt z_PX6K_9&VJ{_U?QhE<1o`rFhu@fkllOR|3-ydt_U(9Ky>_uO1pza{8);$3fXBt5XT zaX<6+FUPA#ymdVk#hGV*`tmRzT8oak24nWsLLw{ zh)Ge7sG2Ww$oH}!4K-~SwQa5A1+DzN#ALu)V=wLvps7k9plLBVM=~|=UmNz%UVDwA z**Id);vxz^-f?rjWLF-fzZ5E5#ml{x>$8S;Te`3$uM#B5EpO{xC)%n#WgJq_QV;u4-uUh5~E= zPFQpgN0gGwVEv+M8IzY5%Y2DzOw?Fe?YCL}HFYfjLgwT<_=_K8C(G1k?rz&s-d0sc zs3(xDi;?KQN)Pycmuxm@pz5z(ll%{`rQJPGzhSpz>>lJb17rm-wfLV4y6d`l9k}8E)3M*MFIlz-Tac*RMjz6m z-t_BSZH7<==r=UYT8Gwg4~C*%?W}XaCG@>J8aT2j+A@@)u zKrrC#6figK?q1r8XN!Wv`&6;6kiVw@Ucc6UoB3`s8KP{ApOu~ z^2rVYh5F5+QPY&bF(=BxTkKNtOQ zb@EIHGPnpm5t9WyhCI+FY=hy0D3Q*U2-i{&gbe#p9U3V0Z`@03U+~x(fux1!<>nRe zrhT#iCj^Z0NFUmWV!#U8z(;ydW94TC!J9q}!7N5Vm1$(%R? zN(1Y@d;z7g=(mKlJFWymK*#*G1b6~Q5ZqcTd|HY;0tYn&@+$is>K*ELe(wdrH5p++ zhBu=4BI;wFYCCNs>1ea@q!s_+5#$)$T~E6W%FNC$rYSRXvSi-6Y}LlW+pAw={F zBXIzv?TT+nOq7wbQ$OY923J zs+C3(zY;2jtLi>f%Pa`m=-bX>984E? zkH#-5z1zw;x>rtdH4(tnE&@t+eSQEKV^m&=SI<-BU^)1_I_@;c zjE)8I%sG@Qc)9}bSA%OckYi;mxd*Cu@WBomqLw_|#qC(}u7M?n@X(Z-|ab?9KlwExO-F@Sv2=-Q=2F^2_ z{5p2);$*#__3B8%AXQ0|_ZY|Mhz2#gk4g}Wqm@S zI+i=v6%wN@lVvh__~YRcF56ZMcGz9JY^~~UMU41VT03-CvYu$wS`*n_{Atu#+Ftpu zX3Z(FTi4mY)x;iumdUbJARX-|5(Yo*{?f0(sye*LBJGM`c4(2bSzqW%Oc zi5-RB$$npVO!re3BnAO0f<)L`fUx^-<*DbK;$VKYwyIz?8R`dn70tr z!qvn@m}Od?L5fiENYv?s!#tbKb;Hj5@DQ;z?6r9&{{kvy$Qm2%t^d~ZHAC_Id9k+i zX$_EUU_oL7_9qXW|LRNZ2K?4q3|>4^|E4Mw|G+qF^4qGtl8LIgjH;b{G-Ec`!D;{3 zVSFKb3+)Pu*S1RA!K~LY+EL@6fcGs`MUJfg}R>WLf3S{^5j0qr~mb+c+nu$C*(2&p*OGGUK*Q%zd-Xi8+2Wxr-g5%!<5eDX&Zy ziHq1BwfOQw)&9OjiaDTC_!d+J>Dhuew(cX`I07r?pZvsj9jE+<5fH1(@S3ko9b*(x zY+F}gn{p)AkGcKOYqCk=0=udO@y=0y)EzR$?xN5^8H&24n*py-@`LOJ<;1*<9!Cf8 zz?QATGi45~TKHj5^a-r+8_4~>GupxaC`dL=^SE9)+z!eHHgjr`2BhaL`uhS#2?VxaQdhiK_F{ym?P?Be>1n`x zr)$CZs14<9*;jw}}?-up33a+_*Yso<~%i|!LvQe6guHk&mjHCZ(SjhNs z+W_-Ym7w;cCVrrf{h}Mw`nFXQ%z2ZtA|Qr!gf>COlVXw> zxqR?>1-u&Ln2yO$KDLmeGX4moX;+z(gT0gv>$si0`Rr~v=6;HQW(nzc2JySo%jlK6 z1W>r=jbzQ|z)wp{L-+OP&F)0-#c4bAWH@~1BP=LfrI<)C2n2u%Im=FM!mOkbgfkDs zEkarwP4i9c6%8#Q1n{!u;tgY~GcXUJD8;`h7l9W9y+xr--6>U2@EB+z^YW#9XU3sy z{CUM}MwD~?vt3e#Vx|>N%?G*?BR99&+fU_x)Jw;VJo+>O-eALzmw^ilkV?RHbQvQT zifh$e9`|}Sj91PUlu|FAWix0ek`h?v_yJ$^Ng70JhfG+`Q3E?a;n z#0A7bStX=3o7&jYP7f(5?7n27+5AY*_HnU9aUTc*vo;47z`8qV1OTE_jD(|Yo0~O= z^UDukk-7O#-3c~*3v#Ct4)1|-L478l!^~Kb%aicc!b8Z-W8jsm6ZKzj7o06NNPpM} zP9&gH7kjM+t4|JGN`CT;!rYC)zJ=6nC~mBWgTUxvtzYV11I8{3c&Bj1s< zm9wrsnrVG2gn_ei4&=)%Khj4ssu+@-<>~U{N{r01;i}2_j7Xe|<<7STdT`>Tkd$F( zugViaZvKwm!xzMCL9PyKSZwjc^Bo|)n?bf{dkGEx>kc26G9o44VtG#K24?PcIF@M1 z%@+Sk{)rB9#D4gmMO=WS;m_xcS%a`s+*W|l+9GPA$4SL!YZG$MrepNfO?IE3AYj;k ze9{fI0oh@&L3K0k9eFY)iEm1Z*!i#1J378k+b^Z2^Zn} z8ODvJ8n9=5`ZzA7lPc!r8zK!4u#H6smqb>rts)Gw&d|=;*6AoobMs#Z@ixez>ust^ z30tRlwC2BF*d*`2K+JC+pk4sBQnG=Pc4>Slj(UwtgTLU?Us-8@Yyw8B!&$92A0v8Y zUPR)~-jL%M&7}8(I82Zs^y)0;|iZ)*6kc;+>Z|2YSc#eR^1U(hZ3Z~;;x z*5F0W@v=FXL+33Br5%*WT$VoZ5#)@v9Enl$y!dH>1^Gt`+Fn4TMN}O^ikl@B@nHd+ zXk8Be#W-?-DsW(M@(4`SShFB6kw{%IBY&`rzgiZ{fK2#@7F)(fUrTWCzj|JG+j;^d zl7oMN$Mj$d{ln9*~*sk@c zfY(^i=w({b_)ke}JzZBHYtq}YqGlp z?6AzY&Z%9ni{!=V0D&os{JmE)1U~`|)h)BZ(1U%L8NjNkQ;=FM?AvLpV-*V2iF&&| zG{!Zf5;mKF)1b_pqX#wHRmoE)&{YM8gDy1FQCfQzr`}82&7Exv3+Q$XEWdOTg4~(i zq3a-LV_TtuGb}zA8&q7|%Vxkl%>S}SLiM!-ge0|TGFZN1k?d|5AVlrytl9$&n#vD! z=>rjB&x|M~2s&y!@Cy|@^r$hj4I{8&w*RX6bt3)OEd7t!^M49GU|;%uRz(S>S!sI) z7Dh{u3~ORV$o?-e^VpyCJQ6o1Prc$dW>=~9JMsM@s2Pj^nZa4DtTOjEo`ulWnR2ZP zI;&(j!(55`@dKq!|3oN4BOF!7hfQlrifvPAt7_;~EGc8T3(E<*9+dJ0Q=?UZc_8WavtfME@Vu1 zEVhBN=u5p;mdqtb)zS2d%Q?G4fkPrD{!!=Qgpn}oX&!5ysB;!JMn%t_*X05rW70$i z^^Jk?Ge1l@z#*po4>!xf54bp~JNLfKncF}QC5vu(@I^Po|Fkl=V^!ZS07)~8$H+C$t$H^ru6Qxjlg9Yw76>;fL;EANs2{)xUf{|5nFqE zG{l0NPoN-`RZacWd+4UVA_?&+9;4mofSNcn5IvZm>n9$|ZxT#c1XLe(P7HY=6W z`Fn`Hi@z+0X>k2;(%$VaK?y3_5SJ$@$gxV2B#vReLM~-%6QR2BAYg(WLioRHoQXi;%Of?(D z*3p8X2dT596zSp-UBzsuRD;;1zU9N8N5B*%nKt{h`4w7gi4fb`xh^;JDkdhpEW6LLAgxg`TP8k{gCD&_oVinbtg6V(LR-wX6JzLZNQx@4qB)YjG?>O?w>;4~zwaD~C_Fu89PdfnDmbdU`We1i zWI6%VsXiQR1?+=sUb&~gDS*16@ishbnXRI{G4Ev%HW^^2fWH1U5HmNrS$*EnZ&}(l zE@HFRN`C9y^Z8@r;$jA4h!JK_TdG^ zrn6!;R6Z^8JmDG9E(sD{&M-Hk=&c6d$D38>J;4kyM+08MtY$a;P;Il|!pE`R#ZLU( zf4o%9MPudL1$208&qZiLB*Z{tcizj8?u|$4OCYI6GHc(5;n})0wJ~bojrL1v8j_-E zhLjdmN<75oUNGut6HB$7v4{Wfzs1c1+E?>WQu#fXMd$&yveeE;yS-J%vnT~`zDAfZ^tl#A%A@s5Z*^d zGPt)%L@$4wR#NDp)WC$7T)vqmIhx`{mi=)ER=$X1T45yWJUIOi_!%fwl_SnC! zIw=gv{2Tn}cpkZCUY6XP5@cIB>^}uwomlL`$Rds=NXKw%k;0ZM%9}YOt0-T+NHVbW4o8aF2T^Yk!kOJl|F#`K?@>lUnx8trrzkKmrfdJ zQU6j9{G-ST88GkRTA*z|5YN-vnX77&=;ll(>o^iZaQ!9XN7(rf&ZS%N zY8&Xffmbbj#xgE+FTDxHorIPp?RqE-(2le57It>$D*NVE#-=a9fRo^uc4FsS%7Mf@ z$J%0xC#V{)@kLJlg4&I8;zPWoiRxnzN~JGmmw!i_a9Xjn^CCBYlL-f~9hAK|I(C`2 z={j6htD7Hls5#}$K7Y-XSL*5z6Xp94HGoPR@adf)yaV zPvfHpi$PGP4#54-NaY5k!(<>VKIqZg1=Tjz%^{}nLk|`TxHYeZZEaBxhN)af{Nry!&OY+C($i-WWK`W*)L!uSBy&Yx$gDD@zgBW>wr zmLLjCh<2BQu6|Fbe1e@xpqVYEA?UiFI??{q@`89okD^@tB3|w7bg_?)ga3ECU1?+v z&Zx9EI>pP9GmV^_`UJa`RoCaXWW_=j+-T>UbWCa9$4S&6?)tmZ_H+ytTQ{mH*b%!9 z*)WC&AOKR@9KuQOjTWni&THT;B0}Az(;i(DTdhF}qSnF?RO5R6f~f@bQruuZad|+} zDXo&MXuX|NS2m{iD+ltPHFp+2I*EN-D`DVO_jB7l?B;lR@w$n{Po818+WETL{Ncx8 zxCy0?No8wIwVl?N>sk1u3!=CDA@`*&=fh2w?g(OYmR2D&627S^Ma@D}T-xZ+gF3`~ z5B`wYmjXp6=;uoM8!bz9+E>KFya79>bNnv;7~P7|yoNmDj=pnjA)>n2{4e$}Ta!e1 zl>$7_tKY)rJcM4%%O6j)(UjEr+BRu;3sI#UwN`2G@fZ0uq|^hKXj27ZK}NIWC`zTe zTEL>qY;rw<>i@}+4H8p;xyz9@&nGVhUCke(Ui4X67$1D7rIBMJN zjLz3V@g3A8i%U zP39;w2mJ7b6E@ztv)J)Y;hYjYMxeFFZIVAwoi{ZO(=E{!r% zqF!049_oHbO2$@vC#n72HYC@!+wB3(oSa##RVJ$qd})Pciz~#d-y0@nY_oliJ7oF= zb`W1quic_+2yH>SsBB!i%r5?jNGM!t^}WSf;Z!Hs?zu;gN-C#qy0a0p-h780x^9~! z9>0X~%h|&cA$Njsby!)HKW4DhV@rY`{n}P!+@%u^Uq8+#r4@dYloDC9?HN!MRW`R8 zK$ELlJA&=LA^%#f0KeR=`V$WO6NNvy23R{5=^T-2NE6FOy0o5f7|K7&%~|(h=)xV` z+}bPKEH@um;sq)+8}C0v;psj1huQ-2!8!pHouoz&mLDP|?R;Of4H?^VSrIP1zhb3X zKucv=v30Y(_3O^Yg~>)9PRRy#&dD_AD}0^Z5(i}(RXt!ACXP;awh^%QQGXo-GWceR zWZs>3wbQ8H7r0Y5RCewcz-JE@k4_@zu!Bd3-s^=}R2maUIxlERkt%%J4Bnj%{lmF!Z()Q zgg^^8$-#9T_xQxPs(+yX`gn?GK!S%+5s z6e=KU@xRRhmBD?Fk+%2$gmjl5EqzLQD(jrhOH5g*gG&~FZC-!N5%i{TGTY_Eii}Wo z!B#JwebsL_>?N?lHwadc%e8?A!5bof@(3dr=TBDnZ*%6UV3-8|H>4w!tt_w=s$j=z zr|g$Uw#sVOw~IAsngw%gkK90U=ZPO#T8Y@93E%6TL1lsV5^nW*^=N{qn8tTbOy=+a8B2$`%I+8xt;oL%!M`INtf@Bcf2d`SsG9ShJU{dyO#f7K zR9Y3Gc&=p+FM9J|LrR;S3LC0+&yNyWeW}Gc>rQ2xBiBCzHRIt5S2wU$UfY9o%u!xL zpdL!ety{D38G(%}vQM&%^tQ-({q@c3CaOU~_JaZ+-?z*Q&HlLH=HI6Tr&nfi#pD&v z&fn45EwVvSSlm*SN{(T1#tR!HuL#~xYZSBdQyi?!{fKBMD;eAJ^W%Pi6ZMN$3<-9D zd;_*}68FZGtKP(Y;^T+RG!skPPE~am{DQMDy?f@#v$H9`LB0pxqYVFY6W5L z(r!JspP&3%5Qdv0gK88#mKkXSUf%mLE%HnMN=P|~`J=@ON zYjhyz1@_GkOu=wEY(8kP?c<*2n}P0LYZ;TWmGV;IA2tX{Sf)_PF}XYCD{l~FqA{M= z-{t8E2k|QpPQxa~>c z?BMYpT&>WFeN#Lex65QFi}L;t=P{iRX0G?msCGhy<#zBZyLtC1mF2bcq?&eWNV%kb zXTN-Uqvm|N)o9dNNxA(^>nBp6%g}?^K`csINwz z*g!?IH(P@;PNSh+-qzuF#`(CV`|sc`QcL{zJM_vv?5$L(Ir))&d+3H^C7oYA9xTgbnU>KDYC4Ci$;y`z_n#ezt{O@@ak~e|?oF@NoH> ztzsb;VwQM`S}s7Zls&s)bGC{co6WrX!122BlTTHiQ5%F5CPVeT^e%kjQ*PI&&cB%i@ES2`f0aG=SG8CH1m$IV&U^V=?zCg?d(<+wfyp6`sh@35p#|Vx?UXjKL@;C?o*c=S*VK+(Dk8yuP^w&+WQh{sMr606=7788B1A;iexLdC|eXN zLS!jBp_@HfXHb|3QCFd?CAqT9NQ^8q8Czw`t&DxLXC3(d1%#XYxbu8b&;;4K&T4}tqD@(V> z`ljZ>gx?7*N3g!){3GR4Cu`n`WK|jOgYb?O9aYCNk)30cWgzuR@z^ei^6=Y(gpc3u z>pdJe#GU$7OTctVNY@dy;NA;&Ff;vq;-ZoOAC=V zFx*s2Fj2uA`&-+bTIHyX=<-g!yVw0eVX|hccdrc>qy=YU?zm*R=vKF~-NhvLcL|xb z31Wn#UC$*!m>kC|zR%Ad3Rs^DB(Z{2wloLqIJ(AJZ((;>*C+3cQ9PPfpZN))K1b_YvGHdAd z_%~0hgtF-C9UvX?8u{9?rFb}&=8!8TE{V$U0^Y)w)L}~G^C+vL#-ZN$+4df#DL!`D zKz#!+q(;^PZoMGQqf1U5S((aGiYs^Z9-0*R>hqQMaZ_Un+zuXd3{-$EWz4_LwtSQvK%{=iZv8AK-nmjlJZq_!qwJooUdS2|p3A>Q zQ&OQMm(<_a2fN+9rH!@bsb!UW0lw^_q`cxu=gV?C%x(2e5kNiiir?f`2UQp9Sfu}l zDZ4~4iYnv>F%L~-v-I?R`v+F``YGoxsP%;0wRW+rGLGEh^we_7vOuKDmLutsf>)Q6 z>Yk>kbPnldrNrUoN_2k$Cuq6?Kufe9phxhhRekCYp@kOk^mk{%81qsGVszRth%-ta!9sO&H z=nZtdt0$FOeRWda&1^eF^s0_U)1@fm$d3nI3(erJ%!t^j_WrxU>3_S&H=gs9L&g1E6epI8yKPhpC)Rc82?g3 zhj9o#1UDVmKc~ZTz3*Kff7U&GdGBcN2|4xh!N0gVb6oa`OKvIGB^1r3q30DPg!fcG z%4)*$J4WjsNTRj%4>BX??%#O2qUlihyG?yTn(qn}`7sOK!-83oZA~=1=UVf&v59TQ zP3OPCe7gtmx>1|XvW93*rzy+YhQM-ug2_t2a}^(cC0%7qC*@|XG>$O!j~MjH+y**U z^s0E-U1Bk@FqauwD^o7%Czu}-M7ce7Y;I@nHg+q|3;bWcRN}K9*>sgravk**6i2d) z-g%l7Upd=4d?nku;1hd9u)5jAZ_$Q(!K1E)9=(H=xXT^q^@~?ra1Y9&1v~I+Pao&r z_-EY=K4;K{a;Q(+w z6M013i3OU2gUjy$O~X-d0;{Wz=B>JRWfCp7pZer+!Yr&plglau6d% zY^rze-hj6Hu4P(`b<8 z(G3Q)D5aJVo1#@mr?1Mk7AbVOuN))2pYK|*o<7!4&vW_rg%-hm0x7X=6;^)Q-gFBn ziuYZj`>j=1sOsj>vQcdK?LWkZ@aX52^w>^{R=%Edy2`~*I)oA*kI(iJ*EtsRw-30j z&ezC0IGnz`q=;c-hzoh4Vm{U5r^te5YZV+Ec-wo41r#5b2eIsj83MKc4I1#@0;JrU zn?Ghnz0el4(%LX!vKrmX0=NhCbpsR*-7O-H7%`OLhOL4MAMd8QYxMHEITYpOo-gwm z5gtu$l~4um%rzGm5#RRgdo85I)SlxX$7ZHDskF3@^*QY?tKgZm{O-HC)1F(H-Xfnt zAR&L#dp4PF`5Ctb&tCrHmOY2B4J(rA^j;9H-@aH`&R*kG ztH3HdOV_Y-M9rouG-y#T=)!!*$}kRUwUUdQs~^JzQGFtD^cx45PW=RpTFhWj<0CzE z!L<1xYWpH;dym(CA+ACedw+s~qf)_me;q#Q^4Sw@TA(#!ikNJ$T9`eh@oQ0f0VDPR zgb&9BjUI@Rq6LoTroI=N3KxS0(eK)3Vgky%is605L&dl?b@+s45=b(%?|m@8{`PvM zdrS2pBz(S1i7Jdiyh6}VEHd5d(*1WL`j4xXu>W2~e|1&s6=(TSa+{)x|MR7i;i9pU zY}JH-mrIahG(!qmtj?iIawQnw%zh{KHgU|vI#Cyz~k88=%b zc~n4e^QbxlEMcU*6`B5tUCg#TM4kt;+m&->_da4y!!{PU1PbLJvsf6@`>vfTCNF5T zd6W^eGty>8x@2yN#+MaMx<-mY2TPDau}+Fl-3Ps1Cw*Wu_gzPmgSko4tdGn5(=$`@ zJ7`72EpHoICk^Fwu!Md>ft#PCcxcx;I4d!HR1DG`} zJbkZC+j2f)YyoarG}$}UJLI<9*Yps@hL&Sg^89di+&CAp{PkUkV)5{Yv1gH}dRJ*2 z^CII$t)>lUTbYI4LM21CULZ7FLik^8cO%zKgL;Y8-ceB zs9p}eC8n1m3Az^G^TZCnN0bHMWZ&}c4{2z_{ia*thuI;cBn$JI;7w`V5Su^OvBE*0 z5{X*Q=pD_A918owicDv6pMH+hFo{_L(aCf`UUA0K$vRi;vxNdrwvC?lUEaQOi26X7 zI@O!cTlUR9HAPEX<)zP&H~9eU+2%*CxQ7|pS5 zLmC?Olo@GfNccyH+jv9_#uJ1}wl(Evi7d#on^g%`|E9@EIydx%k=Qn46jA9mx?qtyL|g}_*{S{}kZK25&S*kmqukIG1&^bpjc@{Ii1EZSHTgN?_F3>}~)z9}n9739`EuMt< z+!r}S`)D7e2=C^wI=O?xYB>^B2f9+?l?OfaK7g0(m^@T%t}N=BE{<9}+4;&>PDLPD zf-jSmN3|my5^1)FV1+84Uud@V!1q)+-P09|s_h!&<6*3+M0jn7WXH0Dv-3XjF<0A$ zaPE#=yfu9*bDXY{!d<}!n2{Q2lhDBQo$hk~WN)sRuFLmb`Y<*)oh<^D48{%4?7>J$ zcL&Ms?L-hmr>~5r=K2OMv{n_}+$}N&gu_5peA;By-RAKqQ6c9N+VV;kr5k2~%|~42 zC=!6Sq~jd)O>2S+ebMfFgDj=CmMug`>`L0PQ%vtb4vseKsrBL0_8C$}+)~n%;!c>l z6X1y>BGq5Yj_<>uJjXUXsH%W$z5C7)NA z!dkp$3E!9JLCcN3&BZ9zoKdNm)kdhM$PNL*@-z%*phTM>FO^O|kZLv1H%-~95WU$@ z&E|sW4uJrRn9YXGR*T0(C7lCO)ys^jPI@T_w%-(OH`H=D4#NXR6smQJ?z@V&@?YK) zQ7g3YjnuG1$XtB~<_kAy(%1os#i*vpjzTM*I3%>{C)p<88Z|sdzETQDPyq_13ok|^ zP+CpgJb00HdloknDr?ddSbWVHM)%(3X97IL_j@>9yp3Dv3KvDT@+0Xeut2wvm3 z93^qazre2I{Wp}tGJ0ypB{JLtDjAJU@lP#c%a7V0nVMLb~O=ymn|tdOuByqkJ3s?+dSLn_5xd$^+mHaZuSmo$+jMdyo?-Yf0BSWukv}Ec}gob_sWK0u9+%^x< zn3WfV7NtxQ7KPXiQC$u-a~U@SyDk93R7<%*f?tZrd?%s-#VehEo;CmBQ@xi@$uDY&i-V5oX(udj)XN5CILN zdaOu6Ro0wC3_F-`$xNRTCG2lJ`wXo-HdG6wfY3-~R$srDT?eQ>App5i>?^@3CZRim{S6 zxr_X;X~a%WTmY0`Zd=I}Y2WbzbJWQs@~{hF{MCCN^7jk~$Xh*FN#cfF{wPfJhRt#LOLTP&;zOeYW@ zb3^KU-69kHSEl7KmIO&|u>)}g6`FulDuxocOvbyuBF*^lOnqHhj`ML$#d+Rbytc%D z(MA%B+rj7=wgk=I)#Fk78fmpSJ+`zkQ*Fn!El*lpr!xh^)_a}H3N(HE1DZZcYL0a0 zT&VTYV0)~j;jy?ovPsDUVt0X``vuX*KQ>iPrLueMqx#VInSj*caV5aS;`)4~v#GbWFD3h`z2}M}zTq31^qgN0c2{kPVah1G^2y zpgb|KCP9l@1*N2dhS9Dl(agMzK*0v5>u)sgkgDDrwwV!^_h|f~Q0J0bDheMh4HQ-M z8@ajg?mDA}Zf!XvuEQGoblZqX@!{U`xYpclT)b9t;yGALb^QbcF78V({=FfeBl839 z-A$2Bxv7h$oRB?)GX6hW0tskPPx#>i!5JlS^DRzXP+bjw`_C;(T`~m!(!NgduZcUT z4qN>i_++suu;~lTVHt60vWH;%8;xix23)qbSxs%*AeoyhC3-tQ%`1k^iLOmtdv=?G z4yu!`*{9SueuJ7}V zW=sZAcwK+Cll7dM4Z&2}Bor={Nqxj+wdmzgR(ob!YuVh5(^H+zWUUH2=Za5TG4AR; zOT>%RnS;UjEMng`PhMQuW1N<$45O@CD?-9v@sa}kxR_OX+-SLDwcreutzKYz26z=L zqMo}prn-03R|#vS%%jR1Q$1QWDwV@C>ykplw2B03r(QE1=7Z{1Art?~+-3aXox8v{ zm#Lfh>#-O6zAYLyX}fsqEBJlrqZHiJv)^WKouD+%)xy}5c6grNRSO zTPgi(-m-CdtXj|DaB%D>eaV|;l&U4-QljhN}}OOA8BP0;$?mUJjSW{QurL( zN)0{3(BySor%Y<8TnW83S3WLC`al~PCEi~iNkpXpQle}7sB^V;Qzw}e0kHc+_8?#T zpB~a5yrB2+eMj!U{{n1_|EKzA?+bbWFW;tN(rFM_D2cghVgVwKi!LTzmjVxW-n6H+ z(gTk8L)Bj6Z=@A31#XvQh_KabT(P!C8%Im%*}c_M3$BTQrerpn!`~^Y@K5<)pKeJc z{1w4h8c@^5C4y#DpqhwQX|D+D(Q`pz1*7Df9FXiGZ{_XoqhhRaBoj`SnI@jp{J?TU zlIPbFXH?qGlMIN){rmw?J;m&scwIwvRThsL{X5TZ<|GReZO*V`j~0Ozl+oOKr$+)X zyP-U)s(}r~FUs5ISUacr;u!D;^_muG@g&IdptHc<8n1hs@#^D?edS5u^^*)+WuIM_ zE-A5lK1Dwvf+tavbRzIx_~t&xNCkH{?=P^qPY^Mex&3Ea#~IAzRp)VCammxTH_cWa z0e8ug;84eNyhg~mbqNK(nFENDW*uBL^%WpnIz+0QkL?es1nibfWk6h_qz;IWaZMGb z=$pcwZb|k^|lfY_8y^ZhOH@KVdQI z(E$t9F&+kX8A!MZDtQ=KVJpl--wJcrmk5#kr`(U$N&WuFwWC+?0L7#TjhoeCA=yN`qJo}U9 zb9!+N;qHhlHXY}X_WRrB-@I%>7)=dD5jI_6s64z=D05Q2j5gFa-5ONb!A>?PGf_U@ zxsCl3s*ARK(Om%?{@9s6wRF+CIFy^mhL@oLaQ|YJ{OC=rzrKRX9O}yQ)a%nkV1OG6nX^?}EMEY@$)HXE7awV+ocK?|bkv0rjV zj%r&i{!=wSUMkAJl3Qu8e0HNRJ>}+4Z~L#;g<(Rh~SR$U6?Bprug zG#3I`$eND*R-vq~Zl%0xJz1X|jj@-M60U4O&UA(?&VC}&YRUEnhKQBnr{vawQJi#s zdR?@67Lz-_HcMzjE?mFWe4`Qj+BJ4 z&R>=jSMs|~H3`CL@NTzm+YEtVn#8|lYu&cfkWGkS(rVWgE&CQ>_5mdZ%kTM2b|?!< z@Z8QFk%q3zLTW1=T#=`(aXWHiX`vxt!jt+}Gf^TQ!k(?M#kA;FFn;`# zJUG|XdG%quzjKN`D>627XXBH!ojkt``ZqD45U(x?wA#eRsnaS+xH?|sZjpm~Zf9Q70QJ2(3^d9^*A z9(4u2gBS8krF#vYTE}MuR}_K&{7UZ!<4wN{uv4WD0->fXVye=1GEDJYy}}R3(gld4 z0G!!hm=Y0J3he#-!MnGAc*AV$0w!Z+SC5 zf@Meww*5t11j}f4SjZQlKuTwo3bm~x_9;<9{_xSLt!U>>EXcZDnQSkDOOW2xQUlp8 zB?}RB(DWt$l+{#HmYE141mAop>^(W@ikyz~n}HkJ_Z3RIhnqINUNceb>O?z^$49Vc zH*l~en$@PEu@2^ZKLoAE93aJIP2h$^4&8h9Hhl3fjIwm9+;aJFn)`%HY~-h%X2Ez5 z_g0%=b<^;lW;8AFlB|MLmM{9vr89hHf9%g`0qtncAaK-bMCO*p9$z!@QEkms_wGzZ)0uK=kI9f7msTm>B(tz zGX|?(HXt6>lZqlpt5;lZ?)?VORkIp5ey`!nhkEnv&k$Yl(2QS9dHwI84%MLz_t6pT zB*mN0%OY%cL0vOP&fqQ|vAGsGWe{V6;&&=#xiJHm!bt0;oHsorTIpeG8bp-Zmhh_r zd_QiL!Mlvj_8$beZSDKe)1bdpy3lZC@Hz)%^tzf=CP9Gpwuu9&^x4TbXz!Oc*cLNc z!XwhCcQxAcm-PS4x`uYi3P-n#9O*gDncOf@24Asu^E3yh-Bj+^4*&OSSL6=nfI|&B zzVl<1ZO!Sm1=Jnh3S}-#bkn>h5|)DPD3XHhssY>sNk5#Vn3SwCbIK1^30fBzhjo`N zymZ#or8xmz(lxcPX2Hus6#N$7jY1FyM_eW<1z=8;KurNexlF+qVhtPJ77kFY|%A+ z)9TP*buj+INHKF>-B=;ZQq8EaRE4mBpH@sBP=^J{ z#hrH)81|(z^IPI+-yC!(|KJqm4k9LItp4EQPEqlEu{3ex_lJRvWw!$-V2yMrA5W(z zxQhkj!8z;sDB%epiSY;Vg4|mfbtURKIMi-%#KxH)a9)nnSzEs~ioNf6jmr@ma}&9P zN`BK<7rF+(kq$i90sKF$EG{CC+`P{N48 zqT0}P+|CBYzEAA&{7_n-$ueGH=hD;=HtpEKZ7YjUf)u&9g%rKZmKx_7SAGgZUt>+X zEnb4Yg^XB`9*fpxj*0&Ie3`qugJ!QSB#(oJjI}#6nH?f}FiHcMSnzM>gqcuN1f*{Y z;O82BLn;e@suqi0e9E|dZ)x!yU9rxIG}$wkD0Jb0f4+ur#u1ZmPISHzjDfH)+KBoz z*`$+R*F_`{pwgXxeEo2D_CW7wq~m$96nn*8FbIRbqy^E%MK~h9jSFTupC0cM3290t zKA^+GYZbGS6H+-W=hz}4LEocmcF#yKp7mLJ>(kYx);lUY3P3DrK7lWb;~s`XtQJ3^ z_*BW%)WxW=*8IK!9}MU&TRUtAFTE+Qgc-T-8D1DZuNQr~BGs?@a2-iUF^Gnk_pzdp zYnzsPgx{1=EF{;-xJXqzDnZt`Iy4)cmhT*)w5ig{M0S-?%&_UjDaW~Bw0a_yweRoA z#?lFi-}b3@DX<>xAXeH*T5bD1*gvk11)|G*Rwk;-~KvF-qWrssFx4LV&XzH@Vw4|?+H z&Rdq?&)+{k<(BWo2}$I#UgEc^?W2d1r4N7Fav=5ZEGo)V>%mdyh&tW9#czBk^6hFP zR1Jx#7z6Egsl5dmk+c6_&y6Zz&Wnt zE7-H!Ojq83lz81(bmt`Qtcg_QhaT4xalUgK0N#E72tO|F@|gLI_igk{UFq#@I>_)G z6DSvf4W}tUF_iIruRw`RlkI&gArghk{)VQNonJyo9L)i?e=9I9Ke&qyQ0uAWOzp@| zlhqZCx`y6mm5Hy|8Bpk09xL3#2v;>%rwdc ztpVX;khe-uL)R&W4bB8wa=PKfr(-v1L$07}d97y|*ovG3he4pm7kki zQ}3p7@*|Vu>nxXPfIj8aEYx1#cd-6(Z&5Al*1%EFNwhY6be0m20-ZEkii**Y>@>9B zc^eq4<{a{L`EowvnlyhXcnc4-Q8B~aSReT8;jwqiS_O(Etb8fy>jOY``OE@*JGe7s zEipeI1Sd!?_T+$ItEhJF@5%o6v28t-WJfBeKs}wGMW7}KJJOBBmXe8w0q?|qYU`~B zmrfJ?n&`xuokC zb7IA5Z~!zc`f3>Gkm8LX?{AaW!eRtqKxMdp>cQKytAQ)D29#_glMFyf$O8sTQSy`E z=K-xDOI2bjMpXfdg%Tn<$WX&0Hh@_mx?OA3f5w4MAoBei%@2K{d&s$zK1xxtF(0*G zO!XLSPOw-8j~mEa5Na^mXH)oj7zEjC9n9KDR0!4*g1?MW(e0uYWBt@@Isjte35xM% zXF&4gZmi?mPXnFux4cAtR?J!-Lf8yJLwmAveHnH<+#GZ zQA{p`y~7qyjS=Eyr2pU0ypRPs^9=v_5M4{9B*%6^^K6aICV=>oi<>bDvHmyI=K)&d zgq!oo0ZXpL`nq=rAY-~P zq=BlV-HpwQcc}H`grl!ih1TjN(F3wIy7&5$Qfm?L(sZIE=&Lfev5}C_8JA0algl=5 z@RaC1MoUjW7E*CJ+m@b{tw|7{XY_)s44nA|%oyDTn`h_92A8$JWJ5O@pa@<@XH3Ui zJ-`!Jex;Q3CyIdMzn+yQ+rk4o4n%gzG={_QwoQDRyO@dUJv9G1N$&;uY$Hh9a_9^I zYQfLbl8!GzgE$VE-{DGi=95$osMY z^!gJJb@CTc^#FPUfD5-V$d%_Zp5d?0;PI_47%vV8#ty(mSP79F8Twr-bjE`i@Q2H> z#$HkYj6Z8?C9xl*HqaL>+qQ`ULvQJzGU<;Ao;XbD9U#BWe%_Vk^y}EP?a7I?ajSKn$U+%RL zEZ=L8Z%qKo_ zRlj8f%)k$^OX^AN94n<02V9H)n%|p9?C2Z;QTugX1K`!_w=l}Y6nhC;JZ2HDW^*QV zZi8W+V=gflcYzncM_+x1`Q&tG4Reb|(k46K%nUsGu>z)Th7wC1(aKAcZvfJWgpZb7 zW2)n!JCy4nGa`XoKF4%us`OWU&_B1j_QEzvduHmTzQ;}?6=Qq4OQio*=628yxlAQB z0QYBUNq_Mj{quI>e#EBu{B*4tdva%iD*r_8=(ANk5L`5r3-E;-{nxw+7CyWyr&mur zfhSroJUQ~!m|QIrm|twx58Sa>xBTi;&4KTR<^;zi(jVe>z zAz1rsf|KG=h7i@21(~akO({~Sf8#rA^7-oE8J@0cY=DosdnR`c!xLRT#EP+rQWDqq zgKl6+pP%jos(EOh~9o+@3>7B2=SWon9qAdmaY8A*iHeMZS3d%1t`2HZ^@i^!!Y8(EP8JQz2~fAQ4k1Dk!bkg;MQA0y+MCu1?4oFSLOfAT6=opDAvIkPXTBwX8^zCB7)_DaQ7eTvvLNH&V@{-=RJP^bVpb5;zn z65l1b<6xwo9++=$@g$B$!G!E*kk7dJ>%on9VB1gQ|M>OtiW(+|IdCBZ2@VKH$Q z+n6|ZZNUGc{QRls2#;cGfunpb)&TmFYuybEyo^X%*~f-^_Us9gBl-+Pp56*1aGJGmvVskgE*N#kT@p(n&S>aU9A^UTvA84>Y6yM? zD<+^CxWxHEdh0C~_TO0!Q}iBdwE#ov)$@jN1R7#-f643+jH+Z!=TCw_R^ky{P+IB& zR*7iRPc1?44pE~KF{LCdm3F$VnhCvk11{TYMGGvX-@A9Oc8J=D@OWn}aGWn}M@>&i z^EORI&>cr}TcBOSs>aGp+*>-fK)ZrV}9v85nfqSQ$y~j z&LfBkB&Qh-QNA!vO*y`C>pw!dX=kvik7XwA3TW~Fl;&JF8B1=n=iTx)cmw5$2>2!{ zywFBpWPj;?qQ(Nv0IQlRbEV?iR&kQxCN>TZkPHv!ux};@N&`Js*Tx%ekI6;x= zPxLG8+sRqejJznI>Bq-n`!GD{gw?~l#1v8~r+~sF_EpTLG|>%6?*H(KT{vDwS8Qo? zfp#8?`oN1(jMfBY3y-7X+rY}a&f7r4J;49&UOdQ?39VUvC>%)Xq1I_`y#<;%f7{N6 zpdE3xO&&XSPxaN2lgX22Gs|BPRVfe-UHHVNu2Rf#e=UdF& z0$keOF@3!KyViJLPhB1xck60xrA#0^9D9pTdnD;ncxN=YDfSD4DY~ZTk_{+d7O*Nr z`2nD(F`lD#wZcAOi1%eCE}5$)%kHjtoCyx_WI}0K2&)v* z;pu9RFptqb1={3;1)-oN%GAo0qN7apdw)0D!wXR(NtT3comczsY3%$m*R*9s; zGu6YP9z(s2VBnXAkUrKv-%8bZ8OzDh>E%MilqT^JZYov-$uzUUPFCbS($loE)TC-> zXV=%fK-0v!)$=wGO$H*j%1)Sq1*1Ln`ShH-7ZogJC!Q|F&s6WJ-lJJf2?cM^wlp~| z$FzR~i(JYBt~Jv;7?m*DF>L`1N`K@asc9(EOt4lkvahk4BU#tg=qfLQJ2oR=W+V6<-!!CZGwq(TOkr zmbDcBF)But)`Ez6M{dnVVHY3k9%fEB_&ZDOrF9P=2&LU~V?eh_jl8T|YBt^W(6@$h z(~yWS??aoJj4>y>{~Bqj{c;YZva%B>#6|ix9bb6nzLWxNMR^kzgf2mZyGSO{-(5h* zNbeau8+#Cm97xKPKYm=u|`Y;(W>YeQ)$HS`peS=+Cg*$Pu%E_ znI{ofN`9PQeIp=CErhNM_4^V32|%A@QxD=Z1Lw|FwG3U zLfcNg6W!9q1eE5t3aez+}`R7ZY}(32)Vtm)m7xXxFCAGZfI z1m=y50KfOzySY;X&YQ`l8OeLW^0l7_ywB|eZ-ZrLufmS407!49NX=cvzW`}t@+Gjj zuu4{)PA8-fN=ryfyM_pSu@gw=;}z19(A>^X{xkX$M|yM=C%F~ju`)O)a%z1*1A>h` zBL?HK03e#F?h19%FZd9UdslLU>ihntJV6D3H)5(VZwXQ;wbj>ti~)ki4?IrFmQ| zBu|!Jn|M|pxfK<`mJY^slTrr)G3C=b03eu=&v*(G-~)`WhBcDYR7wT?yR_R}Ey}YZ zYoxFI7)Rzx85?_gLpI1~$M2c!2Ihz(E7g>bcejm=xi5^jChTrCYqomjU~lDys*`mm zZ)Egkw{&|cz<3V=Dr;H}?$^l*L(Ub;s+{riw}I_`!6V$cKJEmv_@;gAX8y~9?2^)J zlP^1V*S3tD!RNi?h>k>Q-7&g$ZN1|FKgVWcyp4iT4{L|0#{C?l(^ZlRKOPq{*ocn&Sb6wYYVQFr}&dSfq#KgpY_s%VACMH&H zCZ?0*Gp8A!G>HrNF#a72vo_LaLJVDAW4t-(t!Jjk#8eAoJ90b4c+V1i$03Y~i8K7~ z-!Y7ra5NJWz4Y!aJ=Nkv?YrD!#_#Vu5xMjFq~3W^ z^~X8K9$ve7{F^fqtBQ8yA1;lMND-|N5AoE^Z$pGZi%2f<$Um!^8fhh55Z8I3kNY+I z2$vJAr+!lb!-Uu6Ivn?I3$}OcSDYiGP>k99KS%KK{2V%wF*oCs%f%Pr-RN$$g0W-t_<#b`-YK(4Ft3Uwv`pfzl^}xs8(#$ni^cm#r3C0JpvRFPV&{F)LXpC zXZ9ZKe%ZY#&yV8IPM%Nc@4h%JT=3~Xef~YmyAlT|YbYCQG#6-_KO2B==omX~;iMg~ z6CMl**lm~?^BU%0`@B5%p;{KE*O+3w3YfO{GXjW?^IIET8GmHWVaQ?1vHNz^b5QdzF}?|9vIVN3=@nn+@~Q&eYZ|?(5O_Ze3cp>PwzU8f2e9c6Xmzj!^x zv|M0Pa71v_jXUDbZAf12(?m3T%9*{JF<2~?j(+#<9UWU$RYjk{Bl(4anG5{*is<0d}Y!SgjE){#XaMX9dkZbj#4Wg?df)Q(13spVTY4W*L16I-v+ zFZ9gwJF3$juGYU(5gpHm)YR4Opk}6~4u#p0I-yO13jZGFha7yEj-Hs9pf3#NYsq)q zx9HLrJZUMMR4EJB^*u-~N`V8ciyEP{J4t3#_@x((IhJbW0<_+dPAm9m^LqCNjqD#~HPe*BKDc!8XmQ0_D{I7{#PS!8l zn(r88C4kN5FLuFL6GSdPVp|1}n-S$B!ugCIj|N6^wi>ppieMU(X)K?;Hg9O{pqg-^ z|DK)??C*YVR6MdRKXH2f%M;DVh37=e*$dCfF#57D=`^L6-6$H`1gsyhEeb5=ZI^7n zV|0jYLLzC<2Hby5%BLEK!_g^{YEt9JPDK2^DR|S8nREQuDU|Yh+-@yEv*=t*(P@3HKub`>+gs zh?V&IY9d^Kt{fiTDV#i?yaA;hV!32_0tEi6b$*eh#1To{q98dx)JU@3fA!7F&n)BO zJj_Ot4X2YdHH*y0M_D4g1gE#07UPRbxG)YbE>vNEfq%zLrhHF7zYTimM@{1*-HHRP z#fI&qqN>7FYahsFExp-Yu+Q?D@^}$@#Pcp-id=~}!^7-m43GWmLT-9XUV26Eudpc- z;#EsF=>{3hd|||<^jh6fd$|8)3See2mC=4aQv z0rIa!cygHGx;t!-`R`&_KGm$JH!n(e=YRkHo&Ipqe}P8!Wbl^r{Et z-Jto#2F5=87XQy~nrha|y=R+Oh>41dqI=JD|9b{Ey{G5r=|N@Y`7s`|%5h3@3bcUO zfcK}9=nCQ2^Bs7|b0eABQjFyV{{LEH88&AN59#+i4pkoFpJsiebWpLaR~HljY`v@SEH)^+|& z-|UE%Ytf4GppfQ0H_G51L<+GEL~HkVIdEvKcFxQPlf>wc?ywT(ozSDb40oI$e11HA zlIGzfQeO3&$MB(LIakDou%~k2-<#ccXH@@FIW+Xq;`DSY5&hHTr<-{E-CFy)A%<0- zdlsj*5!Dc9w-MDC7d5kT;&DlFbFEz42@8*nKf`s~xTe%W0`kouJy!nRyfiy2R3R>7 zP?%8w{FsCppXlABoaMc&d0rOdNS#M7u-jHoilvA zWOgVuLX(MURfe2jH9vPNi7B=Cr@48g&|Y76OBiD`jj77SMEdr_PU4dsOM_0h)YXMa z3m(snPWkR?1YEusGlsRE#%+!|S>$W(eOpzfDai50Sss*bM~PhGUVo)I%E20O)y3X! z=Ud~2{~f#VVt9tgLwzQu)Js(SBq4Z4nQ7Jbu-0noXrY~pQ&WWVsiD}}r-^A+EGnW$ zcMbFb*V{#%0QBoKJkV?$P|gIu1Fr+rO?v*-07qfjVb>- z5YyoF)Kr8}zRx>`qiep4d$tkP62Q+C{?@;Qvs*aGUm!Dh<4;f>^_2iuAU)>$fkC6Z zOJ>JcyU74y)c~fHHdn4+wwC46S0zsVPnTbw*gFBU=jL=al$n@DrgpWQQT+j9=S(Vm z_Wi14K8=YvL_4IbC5YulTW4&SiGloFXD~JL%)g`i=UQCYS@Ls6_M;acn64%z4wWaS zy&hrAfWpJhl425Q+6-BH>rdY=+uYarjPG*$d3wa}*qiuHSaKhIjl)P)!dY_3^Eztm zb-wjztNH)ThpC~5lF4B$lT|s!#B|epj1WwfYckV1dpJ?&Z=UH9P$}BqCFT%&FTDjT zmK)=kQA;a6yLZWROV8>l{GwP>0Fe3dVowT72}}*4BIUNb-ObPS=ngM$W(_ANKg#6| zZoW;lOpbBEJqeQ#4Vk|d_50qUw}HS{DBst@E%~QJ`pE=+MpT$g3SUU&UApB3dl!@aYm_Hhc+~Y)@KK@Hw&i`Ed_G!j`a4TI%PhpY*B8qF16mBmR@S zm|=zInI4zmYEb?2vKdRu3GutG(mxC$CWuCQ1sJ)$)vn?JZMnYLlHvh?0#sL`cavId zIzOWp>FFJ5)Heg#Xgzj0;Bb388K%ZazG{(%V!Qv?)d-|LB-pm|k!f^)vuq0h|AXf5 z-QfGr`t_b+y@#;P5JvMxafzUVbmGtg6!RAEUbG zz~N2i0MjIWz5V_DznlDjj+={TSdTHOPoLXpiv^d+7*KEXHM_hnQ?spo_`CJ+aJaa= z`TlG4%J2pEKVDW|;Fop3oYD`U-Og=;XXk=7h$J(~A;ewZkb8ZgPW|7_61Yu9_yCk9 z8|UmsFD6>C$imc8VaE3CEMazSDQ$IOi%&90=jipz;}td*DPUKw@_^q_PaETbd~m+n zLQCNI3(Yq}o6JeA>1B;6;l=6OL_@08g1B^$N7?w1LStB1SSao2a3B!V?(1UF5$>|0 zsd4@Kb^S3+2iR_k@j}uci!HUT;3TT}LFZ{_)-p3Q`*dAf!zERzR0=6`4REw&;2$&I z-TgFzviFnd?gSlA5l~wqKgITluP#P&HRj z&SWzrbr=L9`zxqIyrb+|5%U@KSlZ%|?}pFmf^(Yv^w6~^hiI_6$S!Vw&%scvK^vpa z%@uRCNJ+|VYrFey2`9t*p0m);d`m>*`AMQAtWGaSiW8|e-#mZ3(DGuR*kQ$!G*)ov zr^&qu_weur&hMVv*{GxMtpzcqr;^s&2*^*S!U6)X%;r^s!l5zsy0Hi6olrlmSg0W6 z;mW&TyNu$kFFa+xc&tQ7C&o4x#Rs77zKNjfiHL|~9s+0w?&7JtWmVPHS|RSiG%jyH z+g7Bm?1@*SXtKu*bzqNu`muVHi%1p!VEx2~fmb7#gZbh1sPEzWXnF+yxvvl5u@klM z+M6#^X{3ML{3_#FqMRVK+Vs~FB?epG=n1>TP8M^?%wA=vt z=e&XTn5*($9NYByXt18Ec7D3&Ov4T{AB3!Ln7ugG=xy|#J`wM4`>g zYr-ms>gW&q$m_yQuKoL${Y*~6)D~-*Cy+F^&nrR-C+t@BcN|o;){`oraHZ-(*cpR5NA-=CLMY^IPiRHqo%u;(__z{?0i; z5aof*C85f`84St#txLwvKxM|f=^YJ}-&|yR6)s&Hij+TWhs20v%`bWGAEt8eh;4+Y zoSD~|OCRJreOuqpWusLN2!Tv*53WH?bQPO_t*+X8w(<*eG#P91P61FFHo1sVx8N8p zZZ*}9SBto~426O&3uH3l$oBm|izyMdozpP2eIv15gU(sFPTg3MjzA?AxtIlBHB%79!AaOy$JHqa4t3UuNIx^RKH`uo);02A~D6bVP4I^lX)jqSL53 zQx3%MxGJq^)4}H81%1zaRRaTqAsU(Jr@U@4Gd-OSr4ixgSEhPlZ*}c8_}V@InMT#W zq--KvRi#=+HU_sEmv5W3q#?Q|QJ(vQQ&>5^nL5*Ibk>x7N|obh-f`@PK6E}yd(JNa+a4x;ZU8V9c+o2#M!-6RcFxOWbWLoWR^7%+f z^(cQvDrK&XxnBNnM0h;(^Ccr3Sd92sp6C>4BJ`Ee$`rLVkVw*geF%xgD>_ zq1ITXhgSDw6dFQG3{u{|RYaW7v5%J#Pc~+)Nk4&D4uR%x`}XAqrs8f-KKMBWbHrZD z6;2n!zlqAbYvok6xGnZ9#Puehy^$weQGJU^PKxu}A?59*jZj4DO451gwqLg2F?IkxrS8wLQ0!A<#k~fJv0-Dy zxi;}J5@~5~u>Gv-L{80>63uH1xMCSbPTJ{Due8{>6DM}~APY=-FY$`B?^z4ByF>^S z*rPv+p5^z?2-O4Ql3Ly*#NDpEY?M0J1#?z?OMW`5hI z&yZr3*nTNJY7SfT$p#Oxw2_my6VPcq5xVfF8bbiPY@|JD3?J|Oz3ZJYY%mrPjQG9# z3Prp07IO|fTyW1wEL^`6e*Egf_nUWe7Ph+?-s*bCo-dP8oPH@!v}51{uNC;YbYJIh zaHP2Q!UpY0pIyxJcMC0-O~f?nRfAHP-u-3+C zyV{#!ot@jgYrl58Z!c=g-~1@j*C!`AWPIi%S6BD@!VwoJ*$0Xt*QLhUu{7`t?^SWS zeNSzhY%y0Fon3QP9?%a2OLfz43s5Ilh+;|CmF1F zEV(FozjGM&HE+xoXz{uik(8MhhQMBFbpij*+0{Ln`XTakk^rGkkzTxH&nU=So@sza zOK&V7&qiGI*frE!i7`pHUbhLCt%6oqfUzBOg5MZ>xJscSzPb0)!#zWLG&s6=n1ky;3OYYa%hC%7EpOdZQb zZ1BYdU~JOXm;)$3gSM?$q!}4PUq8sUGoKme5%pk%^KTM~tvA}KHq3t=j2$xQjhK5g zht%tx`-vj`pe_0P+vmqBC}uBHIBB1QeMd;gReC_u#6_I3>xQs@Q0m?BjH_q z3Sw4OsXl}tDCHgT%%4>b~Q*|l13vE69Y;;W*l2-!&atdCxY;t>dsT6iQ zHP8Uwg@6H4k%%X7R9>nmZ{CNJvybxlVrB2p?UGx8UjzKKdGjrd#Lfm{H>c`{>P8P! zWdVJD_8m_w^=Aty7tWr3o9q>TWLeyzP!X9idUx|ezI=aeH1XC@b{huq?eVuuMlIE! z@A$wMDLylRnU*b5MeV_Ma4B%6TxJ1|=#T4o1KOxsqL8G#J8MqNJv5$~P(-BYQ;jdV!BWmMeSxQ%hCO zBy-YTbh*&yKc6eF=0^af`qye_j_Z-~Z1=yiskm=cw8PseI?Vu#;^)*ZtKoLTNq3kp z!=czEpOlp4>n-#}-^~ht{}n9;qO@O0Ku3CRJ#uxW=4Ov>Pd>qsrH*>&4U$|D=)cvN()GVBaaiJxmQvnc5wxE0^|`8y%Nm5< zcearhUMp-xFX8~LqEQpgkp`hqOolVsYzkhG*17X?2{FGNZi4T2>78pAZ;|#w_M<(q zH1{d6hD<3gZ&UZO0#rEjC%%BYsnL@}tUp@=`NP4HW@I!!AKpI zw|vM%+)R@+K-x*YY}c$DMovksBTd)=?`3tw9)>ROJ>WgSHO=?!?1Xwwzf(ZQM9zq}U#@aocJmo3OZ`1S_C*&JsS%F6Bol^8B9~6~VS>H)G{ylN1NV-WVZVtyvbRn8K^Y zGimfvNN^23X*m35nKtR?tP$lf6!n_qI-m{h?6C1>%KTtc?M+30dfMQl5a2im$L?Xc z9LAyZ;U9;n$tlJd9un`*{rU;CbQj3#3B9PxikkNql70N9GWU#IWZ+l6h~QAE8A9+b zorAtVM+qgwRY!<+k#CjM`d`RZk?Z@$R=IwLb3ulZx7;j;^xMkM>fNy+H>;DY8}?*FG^zvPbYo7 zz}kc!Y{mQc$6UEGP{rf1@I6(@*lpB4##h$@AJFIe;FdlFf}3dEj1jpc)b5p_Pq~x0 z_VqymC#jTwcZx*3lF;dRqsYAag2y#0+Qe%fE(W6IJUvq{_r?PoSgmx;Z2_kx8JJ60 zr^a*NzhBziDwp)#QxXx>I;J|STG3o5M+w5*XW$hE`aL-DIsjF*F(pzX!a1Qctf_wo zj<1tJOk?lvC^UJovsmQPnaI9AhBVMZsmhhJI^>|`-)0&;Xv8|Ds}P!s2$FDb(y!qBPeGOZBR&DI`Ru-Z8vxq|6khfT+dfWr_~(vy_3YrS zGbFIERteW67jtT=nfir4ZKORwx576z+|ijI93SHKTxEokQ{H9?@g|)R55ly@>kCkh zY9T7K?utDJeN-i{SSfeg)$h;DU_Y|L&s|IJY)$l0N`PuG9K_@4-VUrys zNNk>`artq{dl$V0B&a&TG{eL5y(ksUrWhIsaQsv{0S$N<-{-xEEcW$^*J`-1V8_ax>d-5eqinE>}ysal% zL2q%pag2CH`5!c721UI(g92va`q82Q#p|V1hxR8;6o)DYpFQkE{bq!-dIS%LQ_vCCFy_VD;DRgJ8Dbni?CzYa(-Kw2y^Br6IA2$##F6cP#tB^8TY7=Crmsv`@d!PY_WujZp+GjTd^_i1+_ zK@ND>_@Un{*NYn-nbfx%F>M2Jwy?q6YRqtn!Q?2s_Ub5PJ1!N&c7G2w955TU9H=A{ zOglb5$`0xIr@GNJRJzc)=QQ_ohV)HS_Qlgger|KKVf!-g#iW2t`(A3x{rA`-{}(3% zu3Bja?=3q2EX_heyuvoHPSm3%!TEi3w)oNBb2!!vtNIbvJM zQ9(|aov8$~Wx1K1n**WFa&%1xd{Tyw{LBq8VUx}Fq?Puhwb!KjhzK3f+-H$R zwW#GT%f+j6Ljze$WbqU?No1Vda$1}uO!xK9u7M;W&_0{x<>{oE8L_pE!Tx*!a44x8 zF{?z0nvZ_4iHzN-7pPm+d}#qE^}F9*eZNCeS-UV&)92DAbcQ8`!KzGtpZB0-GZYx)}7yM2_3Q+ zx^E~k3wM0ox${;{sz~6kqn_hvv?I%1nyxzWb1#B8k z&b~S|A2i2YqpOe3vwLTps2M7DweQ9JgN)sBlKjoe2sZukJ-o5bMci5SL$0I6xI8K%5 z6{Q-k(ko$N=47B0rY%bTlFsBJaTpMlx`3PM5-4tfd<@Z}wm!USoORH{|M2}&Ss{6K zpS%9A-CR;mTjm$;)xK&nHR(hoK9{;O)prMkSB%t zRmgG1x|ouy(Xxx!D+`d!OIe^X{)^-Rt;dB5(aBSYmMD3L$%$Ugb*08$@HL5}{9kVi zYx?3`XDRP9XZ{K3mp>SaBrVj+aaFRb5EAozU6r zUwc0o^C3ZB{M*Zu_cJA=E^AC3Z(NQ1L*cVykqnqYnEceJVI#Z)7kuowK+_Nn*N!Lv z8tp^`yu=+PxxNZ&3dK_o1@|u7?9{#oQl@9h+X1`0QXAWdTBxk82!${^rfJdWcR?rX zoBONNZ?g&&8VI`a`j^9StgNqE>SWp_dKVG#XE8E;BPlL?9cgbWoHTj|(Inon!p<1i z$bw{Je6KXas->3GTp3`#cuEJ^NMbjkbMJFBwx;%e1`njIs8B&&zi6=gCo*|{E`#LW zHsq7^)wd-I1e&Q|NH*t*yyVZ3iJdq}`E#bM*QJZx zW#T6>}ZO56j-cPs>ixa2CBV^B=UM;w1+2G%MW12>uJ&)AmL(vn?~;D{a!0pcT)i zpb-}4s6asapOr=>em6Hyvz=;jPg2p0$y#}08_bo#AkKCWZ6n*@d-_}lT#T zFZ=L0v+-x!P9`>}PUHD57lgEqM5XxKJM3KT?)xjB1>tQlBk5q4N1#nkULC1dj#$|U zy5iH4i8H1B1B9wih?)=G)X3*Yl+)eo+!=J}37*je(>?L}r3mtK@**s~Z=P|k zY4F4Jw^=Zk9*}D@jPNF)U%cQe%htHPNnvg;fg(#Iu{;P;#67CXBTN#Ms3}+!e7KfX z*)g4EodAO%fEx*&O&F0lr3xj)Cxq7GkH@K#r;;*r6wKBo5@|j!_BNr5c))7a5n_2Z zYTL`(ZGl0W-6-=6k)%G`%zQ197(n~__Y|{N zvQtnc@fHD{I#T$ZP&>lgL*ct|n<<+XLw&T(;!W7_588Np#;eVP>NwVdXkeIfii+NK z_BqKLtGvUY;_}i2sPKrTuHTyVHK&ps*w3C#G<2!#`EiGf?$<3MF3az$Ady@pU02}q z?a!%GDou-n*+SOi&mUaY=mpJ0Ch)Yi#-|u$M4pW>IrHFXL(_|9+GdVNowK(Xm$PS?ne=cIP9K7Te#DYKM9^Y3&!zsrjEP%cj=8eD07lg6NoH>nnLo!Q>a(-V zYtN@G;AI^^Z>p0m)&DQ(KhVLRtFpq*@B~P#(f)nXGL;(PAUvJ*GtRF|pLC<6>h*cP z7}#+<{3pPsSc9JSl~4GXGyCB>VpxLy}rq~Y}emo{;&DB*tEw@Lx-Az6*9ZoW~&FV2w4c;0WtO-uzY%rO&* zPDY-#oj30^g9)XZ`wIGQCVyE|r^UkzTJsyg){f01jRzUygvNt5r$R{e1bhVXKrHw*R3)| zkK9lXaCaAJ2xPxb1yRW4Jan;M5uh4STzncvTTH#To4{ZJ?jP)-x0thayQfrvmw<7H zo<1%;??`O4FWEOCov7bUJ?3eaSGe;JW~v2QoAvbUQeGDiF?G)HP-m-Ad} zB+Gn)QWtyCBh+w0xUe-0d*+OAQ&d3$R`!5aN4=aGN%(+4XHi5V;`))N9q^^AIyUnv zBz%P?A+0N&MpIuJwud5<)92k8cLigmdD*KSye+6rdgDLzKzOm&wUdJRmWy8|K1XbX zzcYd{FLmRk0QS4B|fL@X8(nrB4v5H&%zD15VedeXy-UdRAv);t3Ueqi&IAjOfSx9V}AQ5J@ z&K!1E6nFRC$6w4`+jdI=o9;(U-Gi0J_07I#-?PXX66(p?y)EUH*d>{n263 z*%Jtsl?bo4k3-yHVKpG$o;P`do(-$$v2-zqRV|a)MhqF{75aYP&TgchD+a?Li6ObI z^7;mS(859amh=z$I?oz~IDAF(USp)=aun zQ0(td)Rg$x=o&e#`nJins?q5StaBGms)&XQ1M_x&xkHhT8&!S{UEdzpcExw9vZh)d z%#i@!KA<3N_PK~lJd3EF(KL4I8ppJ@z8ik$^GJDO;2j^IJJHxDo3prxIq=fR1s0RT z_N8ayc{#xh?DDUdoc%Gxu0+Qfr9*Y4{$f8ko;)j7m1{DHAY)(opg32>esdFFHTk3_ z={hy_>usd=*9x3m_`P#Zq!vN*{BMOLr2ekD_7|}=GVL?zVJKAN=>*>)=NQ?;OEB~D z4<9~A9h)Yg=t6H*b#z?#ZYXFPyKxF$909@se~MB7!*)Q3XFi@S^{Kj=8qYffOmx4D zzSA#XyQY_rkdO(A7}tZyN=j_va8>Pitth;+XDgvFp|cuAo7Mzg8nq`zf4Yz|E_U_O z^Ca->HDls%2K1ht?^_4g;#d)`KyZM<^ny!x!IQubyD z0~vBjbM?u6VC$aSWL#Y<$JG)Qaac(Td2}b@V3YJnwTQ^m4&_<{Ux~AL&up{z%y0^W za@&j54ga_r(lalgzbOs z(siF(D=;OP_3OCh7VN1%GSQUZ#@!+iw>17w+Nfisjg%C#mbgz&F+$p*LQnkPiTlJY zRB>HlkY)~LXmQRI&=bc;(JQCiCO|UVww4k;J1c|dxvzh>%v_be@#EDk%dC<9+^icC z;Z5Ezn%h@pCGmB{Yt5@?A|*R1EBWGKxDv{{$g_<^fi{FxxM>==Zufi+1Z z&a^ij_B{q8LpWhHt%CN=+!LKoh&hYjkfaa-07%ptS~NyxXxK|9lA$1|&kHLM>AA3+ z$5D^?M!FW<&>$`0>>$zDqDi=!1G@BCMREl}8 z9gDW&$G!Pk34-Cj3E#dvv3`LSc3Q2`gq6O|%1Rw&p+KzmY@^VtsZoe#c|s-e_= zP1sMh?Z0;lxlv%Sma2u0UXfuMt(|<}{@2jQi96dp!ge1d0s3cSNcjA)0pIwI(VIV2 zVT3~>wrG#pNMhVdBtb;s`r!tUzCJ+z&I3%GjIf@dvmGU#zjlc`#_GxGlNC1%EGKJ< zwweB@pJH3UCU7vgYN1JPbOutso%4S>C<)X#2)$%S&&6+R4{@bsIbaW{o z<992y&RTXy1$WrdM?~iy%J-JQ$vw~ptLvC4rKmq*M8?n24<~|f+ZuJebL%4z-G*sHmH|6u%#KFMUzQ~?ZsoVsS zvt8{E>F&{yC*ba%D%+yBi62TY`#vI020(RpL8; zhuD(P^H69(;s~d@{`5s|gk1KLXONX4m`!o2enWeQgqynvnyh z%sP5hb{QQtTevk?nc+Qu7u2*}xHXib(*kz4!_UoT3N1bv1^bCdBz6{dI9q+7gegWw znRKW0f}Nfi2?e#nwDBRrp!Q$&as+&JKfdk$k$`vtqu|bD0G39g$%gUf?NRc=2bUvH zbdQgW!0-FbA74MmYCy@jvi!@Y$vYy{=&pY^zC`@V>n#g$(SeG7hB|WjX~ECyN7ch}m+wrxgoUnXro<4Vdq#h#)Zf+? zybT-EkuL%x)2NXcE{tL(sl1@=cg!F3bcftsbXPvAAWRtcRJ(}Oh{KpR4{7R`)(;IK zQ)?Hu5qf(nK|#gB$pCY=Qcm{k9bWXRUZ?*ZDnn#{*H6%_M$G} zcW8V?#+D@SM-WkC?9r(t*YPZ&@rmaH$7gdCLj8wsh+eMlnQ!6)+#dCMU4J@>{~TF_bjs+qDJv`eh&bH0p$i#=yK=;L zo>(%Hm9;!9MR6VbwwM;}!+C~H|H(~j<=-8yN~Sl`8F2FtpC_ptK&jCj&$l8bc?*MY zIJuIFGc`Nwr0BY$6H3cQ- z>_EZ}A2c30iyPsHGppW}_0As-$M7ulj?4vc(`j(dYBeARH9cgKMP&JF>Z{yUFV9b^ zsg`2hfD)H?8HgSKg}}f76FQfgTDO+UE{nVq*%_urqL=3 zm~v2i@6kq1cz#I_zouH+D(*{yzJ(`TP_hU(4Y~Ao@3R-g?Kze3q|V_7$S*qI}AytZ$07m)G9=}rRPf-ve^C8PZPl$MxNDCw#EY6 zP@B*FlJT9>aZuaWpJ0voqipgR*9<^R(~>a|ldDR^AUUeuTe)nFc4{gX0s>-VXF)iI zIJ?L*ok7S#JnHC<V4y8O8u2&GPtSC^GfCOs=6o6zL2*<^^~dCD@bp9GQXY`FhG(_>ztS-aV~F9?h-f{tJ$^J-{sHMR^(}e(E^Z@d z*`DkDQ@i{!a@@x-c*%mzsy9hZnEB?boqBQRUY+e4`O{4Xu#d2mro zJ1sWiyBEIEor2#q*f1&%bJy>WN$4rZensh;RTLP26M4=koEZBUQnVa5PBm^F)*sWx zgtQP3(5M39y1dPX{iCp9$d+pe9WNZTOFe$s4tJI{`-8C}wNip8|FTZmHa!ywa)7E! zJ9X68jj4$rde>W%YkXZ)J+#D2(Zi*?N5~A<*{nY%?%{WggSy}QXJC?zL9#O;DgxX> zEf-k*k{*A&Z<*sJX#T}}W!p1#-I0^KwdC6ACeY7#ecamyZ0%oV&Uz+?u(c6&ayde$ z(U&;@+pV)vp4jqf&fIiW8`J#BC=@OHO(DMp&W$$^l z`Bq zR`EO#(e6_YoqSNiC(o~N=Y7+^dJov_AuMU-YcyJ zNUSkT7>yaeLyD`tT(UR+S5w3E*nDE>%+=My{;T3r<7w;xV}A9w-Q&ua{H_bJr6yzR zzu8|3TpGVK-~nsdP5WAeGkU1)O|x9OCk}-y3QJwRk9)1~F$VdEa$W-wvx@XQGk6r{ zdJ%QM=wRo}r|u`T2v*FeHBvda;2MF=$#PY@Q>!^;E0TKnPNNJ@o`v*Y<~GDbmgnt; z$oe+|c8P_JPw`fTCmM)tu>fFJ3lAfveiS7cR> zYs}QEYIk{tfTrF$j%ME{FLdY7vnj)M?oH>2iKGR4uCEZW#Zu0bA}pxP#f|sR_Bhx^ z#M&n_yT@6o|4&`57!hQH;Z^FMWuTaZsn<>24~JXZ+fZ>^dPO|PC(q9QjPK$J^l8GG8;9t%Xq%SU9e`e zZvv3N)>=@6p3s||7Nf@uykeNGveeb0ZLAJyyW8+!yZgysOAa>_i~ZA`75Y5^!E`ab+6=pOi763fY1<>bYL#nQ&{srH#*?hgHK1%)iSR>?FR^p3Kk9L zxl5-U)n&9c7FrGt4fPESBpY;ndmrJe%rlE;$d0Rshjk~D9Qi23*zNB;L-ba8^@l}& zWzG*7k0dixW~Ht|yu4@37zvH{a#4+|xRk`%TPCCBU--oiF1U&+2d|j1xESR%%~-mVc)KWU zZuKy&9qy7jTokj9y1S4w z5<1@y0{m;%OoJMgg_czaF<9&IhAe^X31Q9@tp#xiXE2OSVt?$eLtq+m2B)g!Yh>h^Vj5Vm5!ni=>`!H6p-GV zfC2(S6r~DC2}P>(7EmA{N|6>ox=2xaF?5h3Ep()YYUrVN2<0x=x^;h_zjL1F{&(&@ z>ks#SNV3+NV~#oIDDOMwks|=`=YDb^xG5fO&Lgtw$Rlt#G_ld;XzlOQ%YC%3Ywj){ ziEQ`CSa-z$h<1Gy8v3Yw;Qs+umLSXGwrrh}O3aa~G23;|54@9pQ@A!WNJ6NI?Pv8S zUiL>j0gJp(i)EnYUe*0wWqs$M<`Cz(B3+pAe<49HVRx#NW z#+&<0Pj5wM1D7nhoQnW9*#PL6HB@}PboAM z7AZtJhvYt3bt`XFV$7$Glu7eK5)|90Bn&#XJ|_jJ$QWLk9Xo7mp)kHe-m!*UFRCju zvy89lf>{R^F1Y6jtR0EjgbbQl?Yp?Vtw_{@m~UGoCk!0kfq_p@C|}lGVq}=`@XW^y zJ)`qFqo7X3EcC{>a1S9a4`21dV8JUy$} zEd1)|g>5Tp*aVK8X5v94lS^u<_aCQceVi9gnaAO9_WK5A9KE)q%NOq3MjvE#?`HZH zG|{sKpX_)cN^=2z0AM>ORQLkWBE#QrulmLf6~-g)jd-!#Qv|jqKXgy6M3O9ffPANw zPr`CsqhdbJ*3E5*_P!l7tvb%!!r~(zMT)!!((Qus@WwY78jb#ltE#BL=HFK?EG^X% zW$PwK>WtNR8)zf-SH`M}aw(S_Xx1KV6aA!pU%U$;!u!(gtTjF@&H){Y=WOX{{xp@O zrZhQS3hK+cw=wG%NnoHnKcsH_<>0WOnH{ruXK2z{L zw}^~!yy1PIKFlh8uvw&{U?h`vMRgqGwYMxSt>}IHV&hxSoP@f1Z^t?vTW($xW8est zhucuu+Eu=rhW<_TXn^l4IVOV3^xJDv4`+-Cv#+jtkQprWLZ8&N(nr?7ri8Pq9xCcR z04C{w&ouevj`likd+X;w@RB8ekRdlJDr2~nk6`z<1E@c2KC7b4sZrtOJ*>^KxYj(*;MagS7x{{ zV>Zr_rueT-oiCUxpy99hs;!1i!|cOB zx@K!Hc`)0|3U`npKpA?w-WC*TO7%eir>e9f^dX*&<(%s4s@ey_EZJs{>Hu0nb}Geo z4X>$*_d%7D!G$-cQd#!_INd)khAWm>Y+*%(+3$}VPPqY8*)chhY&d$TKo!uXgnKm=TjC=^=kdfIPcFS)9P_?J8`b4eSwMM0(4?d!_?wVNPFxkU zI#daYF3CYJo;zXmUOh2AKQ1ve!0HDCef8!!yopy`D^`CK+#T`e%=chJjB%YjHw{nR z+1?o7&d+OrVx(txbE=AD4)j zv$HeQ8a7J1H8+a83}_|OW`%Z5>Q=?@_LU2G3fdNuZ1A$nLyX#Q4<>@9a2cPNCSUCB zO;;|4Rz-YAJKeAbS9Qu*<5f|;1vt~cUoRq*=x^uYv;3mTpME;=;grKp3=oxnzeGO% z=QNyts(SPP-uibj;r&q{w=wBdZ`K{u^renrno@GQ^P&R|c>`aZtzU5dNvgr!Z`-NL zQx0E|bhH0Kyte@gv4rl3|8}pXVTJr{t`lv3Y6*}xK0Ezu&g=>gFata5d)#y9+_|g< zh%)b<%(sc(ujT%Kr|^eq5h-}>c4KAsL;N_O&|i3S7iT=~)g*0tv~C~b|1-PEX+P&m z%DCu2TwhZud^M;cC@%OieeTYsdlK$Ock%S z-%+gwceZFYMjNBo$uS$<)_W!m{FO^8$CJU@8QKGVdwOQNwhjmHsYJGEVlU#^f#!Fj zmpsn@d@SDW-oJ-Xr^;7ez#To~GSypPJy5!bYsmE!i_P0@5Dsf^dM5EThPT{uvAHR) z5&eW3HNs%?DRR4<$Rg* z16n%-J@{pRUYz}5Xu-&_s7iVY)uomU{xmzq!I>ByllLr)q06F%lc_sF1is9iNkvT_ z2`W27&YbP7wvSVRwn-rj8dAm%l{a%{;Vw>j?ITO1CNvNpmdz_7Uy6Iru zi7+V8JM{m&+KcobyG_6}T3B?2w`sZ~gc!!`VQ=%kpebL&r!KEkX~jxHX@sVn(;z{V zW428q;UdT;Xw+V=&Vf1&cSK3M=zXm!sx)7XiVMXeMj~TqBWn{2TLh06si_sS}N22hI*A+Cvf%Ges*9pu@(9LdA1 ziuN*bJ{-;fx;=018haJZD_Bou3TR&BVD#T z7Ss<9^+%dKD>`~WGMc=aBH?AHQC%*;LSH)%RDV5ZvNt8@BXje_ud+LCH)U`1By-ND z_6nJ#@4z_;4YH=$&%v$HO{%0M3efo-@j@!Mswg1-(?h=E4O@zNXGnT7!AgIgVE=Jy z=jq;-D!D-7oJ%R(6cidpb%EjZppeB@+amFPVB0B0U9O!6 z&Ge~j$@!5HUu$j3_7An$Tpi@e7_{ETZw#7ntG-#s)O~}VMOls@KVS9Lo1GpR(Bs=4 z8x3V7)cAxmoaU~%>cNrPgR8jZt+pCs5<2lg=3#$>^5~cfGwQ!yU(y-cHNfd7(t(Mly4mZ`fI}coyGv4|#eq({R#Y zwEGO#;+lbfvfXk>Np^?sd1_!5?zzU@O9c&we56J4oCVf*!}j56dh2vLlW+X(kQr7? zD?|4jt#qXlZWT*jw=y@86L>6n9Nnv1#Y%q*43vwYoKNupe{<=5NR0T~E0g?bBOk3OrVw>c)5d0EJj2uAlE zu75|8Mvn~C2zwt5bE#+b_N3;;!A3G00))oaJ5t}(L}j_`o8%v-(C@)u8aBahO_O)+ z#*=XUi=EKQh%Oj;nT7z2Qd(l?n(?@OBWK$d^e z?qS2gyGtbPn;B!NAqn|B6c>*Yq4fU$8-+!pt#T*M!3i%>dYS6uOp%<&e48t^7X7cf zs9zD)^8y3}ji9nn$wYMSNgdKMRV2MGf-dwLaaQ)%+&;5$*`)0FJ!NhJu3FihPysq~=)Wk+yom3H zGVox^@_0G0LAt(M>87Wk_bus=XtmbrspB16MqrVgRbK8yot19Uq;3;^En(`0>4Wkc zl(fwW9f+*WKwRU*DSL7*VHBT6N=GF{jqztp&zcF!>lVY^WBX}=mLbMs!;^i3Zh7l7 zHLDO)pRm*-E{AGd70=oi-?|6d<=93qIx2aEtJ!Sq*#th1JN9Rm9~o>QA8Tu5um&sA zK>s&Zb4e)wU9?)016MF{jSzMZTEN-aj|%6Agyv}>H0hyx?UmcXu?RYlye!aBNb5>0 z&s=IsJX!WsP7{I!1VZeXEX-Jlx_Cec@)8hPa{BpHBqR=eeNaSq_m1yr!uyy_(#W77Fgq@7&|Rc&_m=qvn&S$*`uz?YRWk__=d%mut*aW5k`9 zqATkBR))YrRtWr~N8nuXxtJ|Uby4SR-Brswa~raC{6)~Rf+vXXoIF>dHqp;$%BJ$HK{Wq{C{H zQ&?xa8=}8sr(RtF5n#{@_u(@2}`FOX10&5vVC&$`v3RL6w=|A!) zLqu+(qPocy+@^T(@N%C1$&<(*z16)$a2o+%5TK@>}QNdi7yVqzY*S@RaOC%&!O;pEXEc8e>j)!2k zCk{jVzIE#X)b<|>Lt9W40E7k+E4kr-NQMlgg&tH%bHFDg9uQ;g83h;dgI*5s7i9~h z#VnKRt8Tamv~Cg=jWUDE50bm~_UdJ??y9$kK;}XeMGRLhI1Scu&61NjI*4>n1wpRYx$6BcQIRMUPbGF73#mmZidj zN(iEJ>ryLam@AKxu`D;c1g61odu#X`BM1RCo-5P_{EVQclFucpcl75meuo#ATFu$P zZAdHG5#+9{yFY@3T6_TCfq}Z+-8;N?XWyZ2eGl+Xj*8DbfIhzm8UTI$` z)OKN#NGjmvo0BpXwa~-L+4og?EqC}W-re!Al_Ah)A@sh029`0u=LLIpIX;ZU1+k~~ zk{#tfbx|^VLv1cj>^w%s7HSB>&2q2`q*T&HVTL1>;FGCu9p05oynL+y<>3ACyNaAH zKB>PwErt&Xwy4%K@wv7oVP3}Ouh0bRN{I@mu5^)*yOeOPD3gBg@xvXSwfFpY&wv&ObFQ2^I zqoC%!Fp~mny_|dl`}(>f{+F&it)awK$*W2Fo6(P%Wem$sc6quX7>DLc<=c;C__2(P z;bXZQ9j{!x9wEgt!^XAChNYP{Y~`U7-F{PiTyY>!`SXNZ9`pNhfRAb<5xGn{E|zD& zw^5Nw-zV;Mb6<-=HE;Eo0YXvtnyWBSRhuh&W;5c8?_{abVU9jF|I<$Y86M8!_l z(OhiF5RnC@qE7pmu@){7WF98A37f!)uzV)tb3j;nz| zRKa81CQ=KwT-|i`xz^$HWcrxTQX!lD^gSJ2S@Nz3#c1WS+@c+NEi*!G!KR)3(Sd8R zIH^w#2Jz-yUcn*W3~>=h<1W)h72<`~3Cj+%SOXvvouAJPGyr0@weFR$O^UUa=0Eo5 z^BxDIkc_D=?VjbGg8fU)`Q+Bd|7{Cbr_KQ^S(&57a@yC#dE=F%+m}d=MZ+T0uGa&g z@avB<%uwqlRh%4dE_YD!oHVXSLNiY;l$dPBpbG+&PbZ^1E9_TR0=*HkJ`NdhK zJs(b+Q@r}56?XhO!0&-rXosb)g7UXZ-$nn5j4jbm;b}cTC5tZddtBCM;UZP!nZC-! z+M#6n1|Rc1b>cqC2&K@dOoA8TD;wO=({bNuY6d?Z`P8~QaPt`tic1WORLOdxxgv(1 z`N(PsdPe-fn6Ao9?)|{mDqEk~>XhWJ_|zwLho1%}6$z6BMPvXlQ6I_X@D-4IO6pxF zM*G4leZA<*zvV^kvMo-UF|skUe~VdNNE$HaO$pI5k2}5!69j`(x~M3`HhCKwsZA4C zs9Srg9wJIAfF`!e_j{Zw$2m~2qK*v*);*(7ER4`s#G}b}21je<)yb=_O0O|p51fUU zQpO%6{|HTkG`hnGt=FE?=`|vARSMw_&M#wH1BBP+ag2QSlGa9Ie{eW2k$wws20 zRUb;4I<%?TDcps0%1wBBubJzcm)c3lTg?CamrPeO!1AD-^D8!bGd}h)Hq) ze8i-+w$~FL@16IuTOZf@RJ6T-_AV;9oO|y@kq==&&rVyHR(tD@EC#V#FuqB+Z=wS~ z>)uk%P7&*M7Iw00>=G0tZXVe#pt)-FY1EW@*|AtgmnY_KJ@e(^xl8~;qbHx04)Y$@nI^ zn(^Epk_S!VC%Vzf=Ra0-ro_h*~B0%6(OaUF)wC?RgIzm zU6=Qvx=#q#59;&V75e^CQ@}_CQ8^yKCg$^$g?+QWR;U3AkiBj!l+DV1AK1VB;T*h! zcR}hKM`>q=U^ciWL`8cP!D!@PVo*jk)~WDNR%LFZzPkIJOp5TQ6w1H$nHfx{{rw5W zWDV_DzB=FawfI9$06d<|lQh0k8Uukzr89%5D2!zVm+;}wGA52Z4`JHX2^=W1BhQH3 zm046zjSgb(iZH`wG%9x5QJ~Ju5?c0jX3zCKr?)z0x!KQbEOM&V=$^bVs?d67D_VCb zivZpo(?w2ltO_v)Fq1dLhQ}Yc9uzENWP()Yir}>EpSChFTP2N^uy=VW3XBy@2!ea6 z7cU3ZSKj8L>nodl#IpZPjJ?qh2=aXrhCeHeBwzP=T3ydpm2=aeVTbY#`LAAZ_-zPm*hZ;Z5RqAW)MDBzNi2AqUC z%X~syz|3wXHje(2KKai6n9IyZo2Dwl3yWTsXODTCfW-pI0k|~XWa?nHcqczu>3!1X z&0PS<(siBzmsE!9vPDvkET`ndYJR1(&0qhl;sq0X*Vqe!D96e?R=SL3w|2VylDpmz zM}?@A>XP;5+c{@&hH9Yf*Q~Xrgi)RX^F5bHJKGV{{kXy)t8!*)XYS}}=^4Q*VXMq+ z*EwTrfG&(y_m*QV)X_GInb`9>+di_oDswbL(P{>lKxY)fPZX?(aWO2Jd#4r}H`D7h z*q?CoqS4p)w{<^EE2xFp<;X`yv9m6tz{lFIILh;F3+GA1#lO7{g2Y^B?I64B8|Lu^ z=&LN+J;1RO;0`Y^>RB)41Iag911MspLBSlkpW< zJJ5+wHp2FaaX~iXFDXG%=zGCi2ZKCZfciGreTZf{BM=TmO*7WEoM5K?f~U_wA9+(l zoaYpR>G(C|r6pL9E5g6>W%s*J($b-3kU`wsbI$9Gs!w)JaLNrSAF;drukTzRm z+2Xv{AJya5iDj7V1cvH@Oy^QxTfck?0UY?g!$D)=clKvkxr0au9@(^kh*sm1TPcS7 zD4}jWnCk48G1j9)(dS9>*xYK+?PUaEu=eX0-+kt1-&_uhQRLLzdCq#y;{vLRK8j|$ z&tXMu!@tvbm*FdvgoI&KU4@i{+6wos z_&9OG`3x=@-O9&@d0FrWZ8`wD*1%UsTxL0VCjkQE(yK6HSW?g(dG??Nzh`yyl04=p zBd!&xh22J6p{F5Yy8xvuI(9FY);k}&W?(p1G!`ASL;7FxP3~ALWvV> zxNF+62#3PrkT8|86=o*7i|(}vg5T7MU%mraqn!l~HjZAF5SnUgt8TrVi`E}{iMAA$aZ;I3z zZAQyV!&u=!0{`;Fh8W2C6_f%u5y?yD7AjK#W@Siel@TX817GkmNauYPeAXNV`mm?ifUed;o_+(NbW)-_R6kftHEc0@$HIU1*P51H5Sp@=xBMH zi;82TxOp8PF0}mllbn)BH0$u2QFOKY@@N;1DSH|7{La9%O)qTp&?8#Z27NfZwOZ}4 zY`v0`%68)dSxq7hNM4@K5$v5EO1Z5c8uEnZa?sfX>vI{JVC5&H`q0B#D8;oqW>XCl zsllmhhW^cKU;dC|mPnK_l&ay@Jlf@_y6jx12=`_jMT82n7yJ2D7jOxmdxVwQd-X*i zVW*R|sFE6VR5-!KsCT{Ae|AZA2u!h0lX6j{+{#d%zffY`^@DP2z2;J{&jM_!fZA{G zK{&lB{aePsmilJy!463xYLYuPQ)6w{lox5Jh_om}T0{|%^9pLRkhuou zJ_rv0cuJTFcp3Q8z~7a-)QX*fO#V&Ei|$c!G`nv{`FnKHqA$MzkC+wppLThE_D678 zCaTM0<)g5<2a{&BK6TwW&*m~h1uyg{P-o3y7j#(JIa|KM!<`a~r=2`V%Z6np+47J% zO$5pHCpJM6R|_WE*VhYQSFRUo&%oyAhzAQwkjg)@d6br-r9(5Vx^XSTy}^fFw~{&t zcaYRx_>os9LdMWvgm>YKkL=1jtxkhayH1}w&30$`>w!m-MDCp(yW zeyD$P(bh!wuO)Jl`V}_p^F5p=8PM3{JHPkNSK#;>B9g3>#N%>dv8PY6Q#pn}L-p&4Y=f1fLZLnG9a|li9R|WQy_LJdlush!j3PfBY?g%uz}h7_kC| z4%A9q)p>0+Uw5Z5)Kn04%HiwyI##=u` zMzbyUdX`^6m-jY&&-6)N3e|b z-ix=MJDeNGhI#aovRC9TxLb}#E6A~2P?*;ZKRthpOhzS0t3%8K zm+EG}R_A6;CG*_qk+>a90RPwB-`Q`+$qLK8xpwV|OPyy*uHSPXrn z^`=Hm|IuJ>7>V_NSNXul$q?4N@UKSQV#hN3M%nTZ5pBdkT;IeB>`Mh*?m3@2(v2}} z#pfzbQ~lAgxFuHzfGaa@I8P$Y#x6kx*mVsggoi_yJtoT9ps+B(m$He{Ib=PENtsO2OrP1aQRLn*vF(Gq&Tz+1Zo&kYK=!&c5#2e~%k6fy`ae)lJPa zzfE&kc5P{J#3F~71cOS42R-O_V}7njw*xM`;+=4ThkbKp;{&cC$)+kp9U)HF1GK9v zp2O+~?O0_{?Dt)nx$9H^3_>%6pgzCQ*&&f~n3-bwZBYIX>qAW*k|}Vrvfqgrba_m~ zFN~yy0mVuPkAUtq(+qQJ8huH7@s;i%dDT`G0-TtkUZ8#mAb3Z|9Dz`$(a#1F6V0v9 zIGwy&B~j7MMmZz0)T?$u*D*SZ3)I$1MPdp?M`v5jPBat%!Sh3Gcau=C#KNGREDQIG zERSLlwdsOvz^WmVyQn_9VV#i1fdvOKoN}3$K@z5D$ID4^gKVjg+lK;8HwtyLVI} znzki-{PrC_mDng(vi1?z>0#5^<$WxZLcc>RUUdDl`e0;gM` zzbL}JZqtk~9s>m^1;Ca3#~EvSck0U8`^cs}FdPWhP06&I9~H+|5>96U?RMV~_r2M= zy*ukxfzeTX?p6SlxGQ8P)izkM5;8|(QIs@v7~Q^;)EV%MXeWF)-RfwVG$hJy(da8WrY7?k9VTarK5z-DfH3_pZ(a(CvEVY({#DM+cm^b&e2$kNRmpC7+ zGN%N#&IQxOromNelX<{1UrQKc*m~!j`kJ{=1>Y`^IN`c6&v#m+UK>2_DNmT-bc!Rq zN_P=?$DV;sQUTeV+rNkEs8HYwu^A+reFq+Vezk#=(E0$D@rqmE+v0i@m4kk=v|F2 zvkaR+@g4me2U}$_h5}-azJ*$gG0qIC`H13RlOf+af@{K|T;-@!{X8*ZOUfFP8yb=> zDcH#o{v6s`KIik|FM-hE^A(3&r>R;q=>|DjAage_frNI;6n=e$r%Lo2sBJ>4_ryI{ z(+AekwfJ}MoWIMWH+?tr0^>a;z(gd>yeT~c)$zAbTQ1Pp5ob(|_8Z#J;|*I|<@EpSxzkO>4tFajOGDs}6C_`~oB;2q-wHAZ_d;NL4|4@& zjoOp*@h9W{V+`Gx68X#{?ER7GYD#(#frUsZ@5;4n=kSVs{*=_E1%cC7GMuL{Yn4Fr zd%3!|!~^rf(0T3WjCT*N&&t2t&$!RZ&cM+U>cHw&WUa5pTcC~5FIx7#UzSRd9-=Zw z--_~Xq$eV=?$&z-8Qg95hIf5DpYjx-azLjlUYQrq$omsFrQAfXb}9>8 zZ##Nr>Rt06*78##hg@fdD0PA5e7=D+R!}J!b)qA7cz=k?DL_bcUQq>rOL#*B1F+hT zHvQ*G1B6B{;b)vbKC7Kq&=qYW~gf%4s_<>Y*! z^T?j}RZ0*VVp8LjXv%0o@SLbm(>E#zeG)$0u>LBtV5pzBMta z**u2()D1l}e@7>T8u3_B#Wl2H0)W@8Gvr^%k}TsbF_T0-A_Rfb33Q|0^6;HWp`5*Y zrhd>%KuQ)sA|FX~WIDfukrBYkM?Yk?(}B_xIRJuYyu$?CCswwGbJCFHL`yHc`0v@j z?NjIMQ5YT_s^EeRAwEt|NlvMqn2liFvq7@BL@V@jB`7TsU`g_HV8bP>SgPQkh%* zE)$F|NO$n;6N|T?bQZTGNRAuek^5Db8`q`4_OKh)L&8l@#gUJY7qd)RsGlYXGZAdg z^Lce$evLhoN^yP3m%j!E63c28JA<3bPSpcyWsYU7`@T)t-l3efZ|N?F_v(5DKv@I^V)u>n2G_y3Oebym6O%%T%jqLU-Pn8o^IW^q zTo)!?U&C7OnZGw7CvL|A6h4h}7`a`g6L%E2MaP#29pk6Kz3;B>t3exOaXW)i3T zwZpPU()fR|WL&kztlUyTA@Y{hqhp!XB9(N7MyJ}|4hZd!EIO`H(6!I`3QpFDj! zn3BZ(nV+`JqfCKhQh#q7S50j-E>rOqCatGcDL{^2CaGjJXifW(C*z29z_y^_XrF`O zhj`%=m-nZ$2W+P6d0`GVzO%e*67zz^=VAlD@91z!Nm~6cutSrEF|;I>_i6%{eo@GESE8RT&d-NAUr>!d(2!^Y4ufsx88`mpawOMX!Bu*G zcrawp7~p5bp1G^$kx;p}IgnQw+vVnVNl;+$=8unvB>+1FrPiMKzdwVdlXVLC!8c}> zUY?*XUV4T8Avj}UUu3BVI>2MwLg=X$GU0jc;{iKUw$Dt)7xJE!`VTzzChl=v?Mpo9 z+eM+SmlOBsc29pIJOw{%zYSOc8l5|9dc7MC z+lUa|vv<`!+J2^dwB55c--Yxv^|U#_Y#}`@JfSmtvv#W0v@I?wz{}2oC82*7ut7aRGk&@CDT*T|T*R~VxB|X0rxr8JA=VrH+ zPpewLf$UE|ihuN0b7Tbr%yDKYK-#{IOepm03&1*m`wukS>fdT5a(epS3D<-{=r?a4 z_%Xw481RQVcHr#NjsO5u`s?bl`KgHi^&6_6bbt%=zm;i$pZ?9|IU(8v1pixd0so_5 z>VE)}&wMdt{uc@4i{WXh-~_>*|9jL5*vb5#{1m&vlTGZ`WvBK3LInRm98M0UZ`~6c z1tH-Q6Bw+1Ncxuq@$gEEGrDqRaU{Af&%gbW^X8kzZ9^E%=9`Yg9&}{Fm5sFMPG#WS z(dFN2JAge(y#n6`4L>$FNJ;qm065J1C$qsSfdXV>Ya7R1<}@@qTC{xHw&v$k>zrL& z62@dJNOeP>gMK|yjEVgl_h+C7+6@p%KkOH80a#55+f>7P41Jl9zwL3hnyRUO)m!Q! zQIr6ld7B|2eAzf;AWe%?XNUafLr(rXUtH03^qpPmNb7VZsme_LI3W(en4n45zt6vF zv(in6h6}Pg?yyQFRd_B)UDr+wKT6-eayvt8F&UCH-Dw>1yTZLoJ%l^cAf-|xewbXZ zsR3I=aL-jcw~+(bft>l+GxnJL_Q+jZ4`-I=I&@}bnxuu+u>=$5;%&*0tlgX(F09w@ zH%yiqHe~qxfaFASUsA!Ka+xG9f;Lkn#96EZ5a>zFJp;9toiSni1)iuz(euB zbU%-gnVgwHOl`RR_uWJ!{nL8q{@zxYK^k|BWi&@+40}T#Yiz^rO$EIImMg>K0N{vM zo(iC~eEHwR=pRzc40WbaSSn~bF$EKAq$EqJJNT>(Uc^jKt7KC6y?aBioBGL4u!sU< zDbc$bm5uw|Zok+!4|pEKrO14`Cgs^Thrlk`KvTDbt+>6jGKMov-~ePh5&X+N`#}KP zp7i@fbzgUXA z+Zg-Hj?R8|9w>k`i2M@U0L9jxJVW-+zoG+`1Lq1ohD|-+PR@VkHlk7gSM&Z@2x_Bu4Z$7V(ma$3%=7N>2JqQoV@WzNfAHvts`P(5dXy`h6^Hby(*HC_4BQ1D(@{Yln;;hD(&;Vnq;t^%<3U$cn!L#B9m zLl=L`q5_-fsa~AHYxe)wrZ=&BmAyC~gm+u$-@9=Wp-js32RyvO-yu8zpF@g>go_Oy z@9p{jlV3fhpoFFVP|d{dS-sR@Gkf!TQI`GQ0E&;N#4HvZ8Szm(x~+1Q@3UbXaFXvo zSID)K^>I24=2pQ<0|Ob;SqjSA^XJiTY0qD#B;$UzS;Cg(K+2cYy)MsG82lnirtCx0 za|=ZwCB(eU3gNUF|4JFUx6mw3KO^`CjyGLw{jcA5n1q0nwQxFbbjW180=4R%frW2^ z;iTCf_Xs#Qc1PTLX9G#{q_5icJJcr3u3IZt&OX1^*yA6hmnFIK^!P33a+*TeGt(;0 zH=%X7*n6n6zYbBx!@GU5N={Ylye_14Q}))e`#mp-)HSsB-r9R9u*guFgAEIC3{xIi z%R)!uqT38(l1sm6evE`#TU-EQ%R}Jeq8L`*UC=Sus<}}yI=)Ed4K}K>}jFg|fihj}~53Mt_a(X51_X4|Cl2xlB- z1cfS%B{v{58#A-Oc|8lUZ+iG+m)7cSL};WLw+ARgmcD>_f06I-@P4RndkY!Kj){|v z%nS?zv)4Xb636{1ubt~&?nHpS8T4rj5}teG z#`2%*MTh*4nNT$a63jLqM?`FlcRy`7bWSBgB@^qiHy8NK5}WPKbtE#;u1+o4o!%qQ zpC)eTt(P7Ll3g!z7#a!%x^lq3O3jyx>je{^%`+(PVm4;1RJ5~{wVB7nb?&qnF-h2p z+HN0@Kxv;SiOQ?FLtO8HLkVTu%cy&Dnzk*IR37W|AH0b8*LxwDf7k&wes)e}Lo>B) ziH*=s@q#f;a#N1Hk3RD5q|41Oq@{HWa+?bH*rl=SB^gj|0pMiG+?Lh6nb{5B!Y9Od zMGe7^3lzXBTrK%rw*?5m0p82ibGewFt?Dl9O))@Ai>=O;VD6EVVE<)OZ=)^&8zf-M z;sB_JhFh4y!wE#(TV1gn%WG?44a=Fnh(T`PLF6ruHypN}HzC}@2f=RH2Tg<}Pm(wZ zPH&jkx~e4DJc5pmYAVm=kSnAk65P@7cRisZ{Bsck*r(Ga7QYLWjt=5qEqD7Y=H#~M z&#l#R@VV+|NJs9?rTSbsIoGw9yJhv6qmBsG2u)8D6(OSwLlRr1=j|MTI|_*bZJwE{ho(<*ukFTEn6W=s(5?QF%A$(m~iFgBf@ z8YL^ECxaloC5A5Bf5v5)I8k^BXt?^2iAU^d!upX|s*Itk>9Srps;2x_La&9{bkmz7 zOG&L>2SiS#J1fDj|ygx=MoO9VDmseBFt!ACw13=Nl4;`#FuJo2x?o5e;R z5UQd2Qi8j%xrz`?orp|M!#X<{`O02NSgiw&Z0>n$ zb%(Jw&LI3R{-r0;u^M)>2H@S6zzHAbOEdE2@dH-O)aBm+zi#S?Gej=+Fk(ZE-Nxj&U3t`Yh&EIiYDQ?>=e=w0|#?kMlx1HP(N;?{Mj%y?P0TE+;1B+?|w^4yl-VLcXCU;4?Aod*h{5$k4J1%u) zQUXptCZsbdDzQa!XErJR+~69o@NRk?j*VHYJ1Ngm()D*2)P2bgv{kJr=y9PYsAJ`LvwlqOuF3`e@`ly zUp^ILMn)$=!bQk&@%_$EkFn2vDS{;{A?<;X_Z0Hc>#6UQ2EW5^#om<@ciAidPW8s$ zx2~bPyv<9jiB5zZVEI+I7w>k8YdQtIT()0MReQM&NIj*1w*&(71~%E?k-?l+vwJ&Q zIh{hvoLa*Xv}{xoOZdSEw{QJ^Blh5ri()%C%Gf-?o5_rzYMtkdH%4C3g)$)lkl9|A zZk@}e-{+j>#8E4bU_1k~+y;)NN<#?)DD?*l55GjSwxK}%cZ@4p#>(jerw=Yw(p{D! zq+1+36C>s;>m7S{g#k)68e*Mj(oPV2`yF6;{Y~~p_=V(wlf>}%tD}}vKDQbNVh*(I zAOtIk(Wn~zaMXAO@1&+#InHi}96v+8(+Y>)Yy-`+o&=`>zZO`rtc`gIs+6+kRLX32fi zLI)C}E4kx?;KU{D1Mc#gz(r8H4Re;xtWd+1OJT_u2?LY60N}#RfXU)AaF*S|`%RVH zmd1Q)9BuS+Nb9Gq?y5d5y9d(hm3uWcn~+8+kkQ5?DO-Rk!SD{zXJ6~N?249jQTFFR zv8+lt(9@;ZLD}~hB1sBMs;}`gbAOl(_aJ+0mgd1X&wo=C@q1uT_;=9KLItYUdy?&X z>?JDT9S*eBG~DjLm_L@>MH=$X zOQ3-I;G6H?g8*9dJ2?3EICXePCzi3CCEbrPav5$k34O9Yo@J`D()@Z6E4*BFlBV!nRs0x;Z zbOu5Vuw+0)OxT&jIQ|VZD zHTGuAIH<1-)x%#p0f*E2lqV3+_q%m?a*TUSj+L!cn5?$zTvg?4UVuzIN14)B$#E1? z>qRqykdA(Jg0x4E6&^1lYQylgM@d4%Pg%cZ@N?WF#yEhSoZZ_OKJ_s5&TmQtIgMQ{ zGRz@BFMjSFcd*8$q!)#5V>-~!5qAF^JnZ(Z;t&EL{;jiQc^YI_->^{43N(>JLKBQp z6zBGF;27cg5z`rb>8-2m4Kml*1!QF=0UuD>z%9NYgk&&hO}{7e#iz)Ky_Z>06D#4` zYPGQ%;_Odg&p)o~yU5lKvIji&;P9$+1^CZa4YL*#8?24%qB^Rg+igjmfzQ07e|yyz zi+@|j_cDg57l6Z$^0QM@lJk$6ZgHTi&4z4oL~#8!^`U`CAoJh2AawZPjDmWnwQ09Q z?CVP;&sT{^f*}wsL{*E8=+2gQnWwEH6*h1bNj3Et@T?x4sT`Iu6qV+vGHXM+n?*1} z86FKs^nDfN)(Tqnsp}7c#N2}U)o}vB|F0K%p>Yjx{34wf29tSEM4r`<+dyV1C@z4K4+1qM{P2)BZN~Se}7pz#iHlo{g(|_A3Uoii@kUkdq)M+%+fsnhr zQ5`~clSy2;sO6UuW$8^R*w=*c0>y$EUY!nQ=J2|^9P;c9wg2*ceng~c3GZblM@A~2 z)VS#`Z%Jg|o9*3mDnk&!1?4-H$-e@`^=sP!^a4M-qY<)| z$Xj1T_`APn2iEBvJh%}5rB}SxQ1l~HZ+S=Q)FzjF8N)5JH(g@&%r}4*?lm(80j=AX z!C#030)F@9@%|3#Bb|XFXRx^i0Gx|+dL#~%Hr?8Zhej0hC{Ul7*d4#icqbjg6kpFh zvyzq=PNF};$JEOalO)t=4w#XW$jRa`HXL+5XLA0S$`W_dhs01NY0Fn^e6MP7?b_Bs z`PPZ~mX#y(uos%(0I;-b13Z{mbU5dBfhd&DV(utr+IIu*f4JG6jA0SeQ;vR&{4>Ei z2{!wzkp5Xknj4+oQ+CduuSpBn72Tqz59Wc6z4J*)%w?-KI4V=p6lX8yrj7)icMnT( zqK#spKa=yXkOJ>V(oH5dF#XBy-hlu7dN~-q|JOwFpT7G4)ojXb(khP|-cm6LF0_Dvh3<9mNSN7*RqwEw zWue+p;BAw?7-4ynS@WPI)EZLXdRfUAwWpqQk<6axDbc#LOx>$8|IM zYC0khEtzMj%kMQswxW;yp!5dZFG?p|G*?%UZsZ}=d2z!wzDZR#w;XB$x6UYpjIFRu z;shsQOP*Bm`4_pCib|F@3J&!X(++SslJEAwy;u1xhIFuf(7oKh-%zCWpLp#&$*4i` zxJAtI8)_HHm*(wz&_q~lW-9M@$S(DL?M~fkYW4n&l$scO@3PBD8keP{m%RpONM9ez zTIo`avmS;oUUkLAPE$vXHLD{rikipV+ap*+^^-;Y3x$W_Vq*3PXkz(*_8S*zsN0Ij zOZ~Y@C}mZ^g07m@~0~-mlgM5e0Hb})4 z!Ab_djd^bzZd7(SU=!l9zmK~~t(40CrNVRb9;pi5ly}A@c}8QW1Nw}+BP$d8$D@=~ zRpXY&^u^a)v+o~OaA9lM=)4TXk{H(2 z{Zkp`aq7gWW=K6Sv(+qVJYEK9&vDcYz${r6njAzfwzqhY1@6NSfWH=3Wz2%OcO~n) z57&yk#%FNh13m_L>f~3#YV&Hd)Xk07U&*o0{QvUU91Aa>1#Ujs>53w;`n~}&1{0qg z<~?rz+%V>sEVXt92|7&iRrVOK56(goQ`BPlpuw|E)mqR|82A=#R5EosUhAx~7)&Y7 zaY(bOqD8oCGPqO--aiPmG}*gU3gZ0s z6P4F_(0gr{iSyCQz}G(iR*={dhHuScwslhT9WJPK7pQu(&Eo=j2r?l_oi^m9O`0(a z*lNu&_gxwByV_TI+w+i}i2zRag>!#Mb-_cFYbdOT+99#QJ6vi@c{FH=}R>yI#IUm=@lvzbokVkpxG@%^f(H`T2#f%5914=(QW zrW~|-$GRL!)Jy?OIb;KXrR2Lxa23sTnK{!J3q#Fobv`LZs4s7uY4u@TdvlLHo9_(Z zUD6O)m&Wfc%dakoAwdHvvL4eA3<@+2`Y14kK}<+aC_RxQ^lb~l&^*o@Yn3-Fb7K=i zV$Y#_YrpQb_IuwVkc>V19(+Z`%%ZTfp{%BKuY;8-9H+2;eNom(*A-mUTGI|NY|#7|;9b)A7sU}m#$cw9BEf5$(rw|9xb-2(;>K<@ChgKL=lyp$YI@D8T@UH? zgG`wqfG|1t&{`7anBeJ7!bH|BQOPDN%>!8Lh)_EO+(H;(Ne;OFi-$2W{vG1*&7(>P zSR_soA$kdS>VR5qJ@=uhz|c1)fr5{GM`;s{;Wd?IFn*s$eikVE^2xUOgR0V4;JPWg z4B-USSYd4o13q4^Sq^rED-vs`SzT;L`}~ZDflXbZyNhceU(g5v9wj{0-Ef^m#zftaN*x^_+yjQ9iyslF2Vz?^g zu}%8;>{Sc&)hol>2%@}Lar_!$$jj`DeY$m(7MFRv`eHA}%c0x8SYk z?GZU=TOZoj3z@*D@EMe_-HS7-EqBu!aReHpLy6^M!)_+!kyN5{z((Gf1Q91e&IW1s z#9Oc@X()wJLvCAwOCkCAEB1#it``>?p0+{9sCBDqi$vj1o17&InfJfD&!Yxrsj;DL zAF>=N3s3zYWWA}Q^z7|T6l*E2mbIC90K~G`)T+*zicpC~!2~xsyaa)=NGi(SUPz{; za4t6l>&zRY~l&>;>6PpaOaqFvNN@oSKxf zMNFDR0&NbD&nm3?d|VLEV+Gjop5@l|%x?S&WEJ&^IwhkU7)d+*f_so(@ck1>4kIgxT2fofwrZW|g+asUnV&!5La)%H5 zG}BFj4$Jfi%6pH|MG+r%$9>$l2e4U_j`vq^UOj1|A>#>z@L6i<1aug!zgATE3DgUM zpHR*cL|lG{GHE@W9x4{d+U@fvHQiejAE9Ra%E@{5LiO*UkCik0Rq_7xjm;*CW@@|W zqja<|oF$r?QxFS09|TqK=aQ=9lcYLW$b4;j4ppin(kOO(6fr4RLERK`Gv`=XX+It-xqVs^DYp*P+);lr$Jrya#2R*KA}H%V_4s4P z!zMYj_*6>wLFLT@)gh4$CD!l8E3J-L=7rjw)>)ye3IVn1gvt-(P^}f~leBhBQ(Prv zpS{+VHimfR1bs7@nqFNp50u@vRDp+S?yJNV=y;IgjSD{Wq(^(2;G zIA;~WIeehcIX(<-=7Bnlp_+!f%!2ZBuaARn85|rq1Zy=fj8}{WKN(Sy$BVecF75Kj z1P3)ve>ISx43=P91(i?*_U;>HT8adpZDgaeSpiOBp%dHp?J%nqFc5pixxW<`Q0DQy zIe@$dX`U#4P8U7ed%5DZ_=}H|NA0enh>DXz(&ViSFb#}XclPe>F$Q-<@qM^2n3S!R z$7eYYtA!v_uc&6n=|2?6ie5Z;a)ss9peGa)se~&p_c zc9tu6W`KYRIR|C-e|IyZGiCcql$y@c!gDxhylqGAo#CN6 zHJ4CB)SHRL^j4>+dZdqaZdJT@Xxqb2lxq8eU6k=6r$G~Z#arN3)4~(*fuuS`xRLo7 z0M5;ZWsOCkc_F|l>+|EHB}MQQs?Z~#$;VyL>3lUZ1BLDB)pT$4+Kvru*9lOP;gy<1 zc(frd-6DRrsSf{6tFuHV-={nfK4;kGVb;8DDn;nJIy6>>qP$&t`rsuiQKX*yoGGAm zgZfDXhPU)2*KLyNDM4%BlzMT{oVvxQZsLAcK>#)TwX$tX-zHQIEHnoa4!W}!jHyNI z$ZI*Fi+q7ws0MiuyaF-QKj=(gSo#zj8QR}k(Gu7&6TvB2fDiqs{Kze1kepWNMo)T$_F$K_1o&9-DX$eT2Nq&x z1i?&qb3h5pm#r4MXOt|HtpQ+Y41gz`_!hWPYh@m(WrjK{gG*k8N1s&(pr7UZgy}4Rw-o6EClpDxT#JvBw~zGcrdrd7a5N>a|(J};?W2)+xyOZNy|~q zD^TbioShVVCGvQ#&w$Ou_DxX9p8I?g%S~r-`Zh#coO5j>bJQmUDW@w$d+XUEKD)g; zB8?T6;w7ZvEjELJm%DVg;;uw>C~)yjUwc(A@80xzgeYwC-d(D)7nAxY$iE8FJVmEU z&;mZq_~O9Q5~Sq2Vs|DJD;u{4t+(;}0-nb=T^ggz`q(-a;f`O!fAe_@Kv~$$msuUU z?Pb;|Tx5f)XHql%9i6sEVGDf02ZY1!b*B~eXO=?-H=PuevIDZS^Kr*&o!?-=9xK6 z^nG!g97u!+#^RecW=>$8y(ni`S0*N*kBf(gQN=??`mYwXlEAs z2s@K+hUE)&dKG%3*hfj#PrX%jcWP!iI`rFXh!Ap@9@+yQa>h(^ea_*Eopz%KnBNTj zQ!w$3DJ(E(&cEmCo-Aks8nPkBzdJC%;gj=vh@ccOp}LUMTX_PbRNC-rvT;LVSuezD zA+Fh7f9dkf-Y2wwH*-Tc9zZ>aJNziA1Zbvps9 zY?lMw#ilO>mf-QKt;%MVM+r;mSZNDv*XLn1y%xwwD-UBY?*bvM%)_AEq%7aWgDJAF zCWm-At2*9AkZFiz-mxqNcQ8`LX5#V8W8!T@$GMzjm#o0hvq}!!6>e*D!gdbA!|oO_ zdU21?`rnk#<_F2L_(mfGH@eU8s!3^_ldpH7XFM6+@yd%(yHUC8gO%YR<(s0V?WNCW z4=i4G1O&H&w7+VOV{=gUO`O@@*GI|iDmy%FCKt;q z(;sew5yQ?w>Vu<(`Oh-Jh1cMkq)h)?N&^I*Kp*}Bqc5?v=}B*d~b)bU+&L9h3+hNB5O9kA{+p8v5ir-`%9VDGX7 z#8gmz`w8}jb;|yt;cjH@Vq~}C!_dnLZG|ES@BYNxuFTpA+1YDuih!u}?pK!elHTAW zm!|g~Jm5%>Se~leAoYDGOp)SRb#&(|Ey~&9rCUt`Pf>;zeD)A`Nj#f7`C-=K^PRVr zfqdmaJ(z8n%QacJC3aS~yv^Ng`FpO58nOB=UITx8*~qtTe?7%tVf+QAIfpwEeiLN; z8irB+%!Lry4eK-Bp7kkXLcortP#153JF4&*i7E9mu5>s+hI$x2sPKBMZ)MALxIZ zdEDa8Hc)#BWPrx)^!RMCs+@4x7uQ~a$U{ZkGeD0y!$t>>fNR_*{0ntx`1yWXNzmGO z(6|VXN-`L)jk7|1BALE5p&@4sv`E`+Wx2pDcgAy-bEo&%f@6(#(?ldT0zfG5OUzTiDLPik%(yC}gQDBa)fY3ev1-1QF3SdZ#Q`)VtB#LB z;ujPf6>HrGi}uAhRz=69Qx`O*@qA#g+(DDbs7DKza6S5dV8)-!!@LU@LmlXljB|J0 z-dM_@{T%JBc~ad>gTW`TAL84Ut7BzMHB8{ShbJx8s;83kVwIkDmU0I%tJBahsg$M~ z@m~?Cuh5|lgQ`|yBvzwKgg7%d>)Po?MZ{kDf2J^A(z^>(1`=avYa@ zIM3ypHn(IuG>q~7p0F4rlkf5oX0deOn+^(3T4=in;DcV}cV#ae>!ZnO3#6pO`{vFT z@bHt&QG4@={)|f8dtFdca~3Zle4}ogb3o>NZCZpRP_V{gg7UbBluL_T6l6QV{x|1vqx1oUZ2jcU(H0iv-tSk3qRkX^rt*r_# zRr3}K;TMOs^6vdn?{;(f=#7JoqL83Bi-?>azk^s~5DaFkmksTWvZu83v%W(q}?x|L=r)&trdHFAUZ~D7;24IU# zIyHGNlz#D~nt+ko3t2#X#aZTyp_z1kqBYJr8Puxhfo9oXH%|lcqd9w{ZnzfI{>E*v z)|*$`x115n4Mc+~*rzJr(T%uVF1{Y-#;Y8TBSFx44g9eVfICNM+lM2ZDm`l8StB(Xa#_hPavR5Q~ChymrMP)yAXSS88-_!?E#6kZxh?G&fX@ zTpjquE&zxX5>&agzT8Vg01otZY#6b7L`R(4^oHgmh7TmV)^hGg>(;q21jQy zVB1%&E35h;`gcWA--+KUA-66+8$hwE1Mrz$;Na*@UE^-%5IG3T>qrIn6|1vC(7MpQ zoKCH$-+Ol$s;cI?a=1DL4%>acmso~3?QxmV15`Lf$cRiK!F`^@L%p&mp+#Kz0vQ(y z2ANAVj5c}9EXgWYKZL&0lHa$LXf4%Bb7W6A)Dy>F>6=JN+Qt)lpowU2dXJH>9)%6V$bCwwcX zfEnyMu5%D^t2*H=y!QLmjOv{|^EIQ%a^F93gsTSg`0v4eb2Jt3!|lrrQsee*eWU(Y z@iH^CZpq)4<4$X}a+u%FZ8dPP161}#KYylin&nakHVIOnB@b%p_U}I!X7aOQJeib< z&Dc@AR2PE`!bmts$Il_RUo9;PpS{A1zNHKcvrk%^Gm2WC0+{GEe^7ShB^R%QZ|pZF z4Wib%xirkj+QO;#2rtMbuRwYYv25h*mYy2ih|}#Sp4l??14?=7ou?6`w5!rU*7}$_ z3PfyXd6v$#aqZD4+M08B&4S`krM-ICb|bK%`kTjz`Av~fM|oC#@&$|SO&chiIS}Rv zFcqV3)$D5JH&0lt8_PY$Xh0t6pt{#J&>Gl1jl4M|m-W4_f24U}y&-CKbBvYhXA-RR zd5!^~iD)#Q@vePD8RhaMx9o7nLFR8N1C~H4+e9e=coTu0?L6w+wEZ0Brm-_H)gASWX30bO8iTgnla#+InHJ6FInexw?d8 zZ-|KJN*Gt}1Y|~(r}iuIRYT;G4`U$H13jSH;=%GDwzME%{ zmd>Npu)at6*=y@p{=_JFhLpE$gm4`M4LH3sAI{Z_bT0M~LoMgnYURq?haL=OMdi7V zGhEfOTX>tw&L!=}q1PbZsQs3i@Er`tdnyTnLmcro_^F7KByw!)@uAT|k}Fst!Y%DP z=t;ejJLt@sd|}OgJ7-MrOcnB~dGOabD`mMsu2n(hiNf)CBuKluCuF1hm3x<)9{DpZ zE@-Efm^D6RX1X)Bme$x;c=oFDT?!Z1%580VnCPn1C5D=ZsMT^M)&YNy8Pp3x)XHed zqkNZ7oRQ-Q^ayz%uC!c>eb7SLfpKZT4l*)Ot)oECOuprX;^2zUwC-jH`89jbH(^ zWW8ecPn|cxKruYZvAvW#zU9#vZV`Y_;oO;zppsUcU&CI~$e~ywyA!^{t4l3!p+WRg zW-c#UI~8Bl>sXt!)3`{WU#ngv{{ei_l|%hNI7+kf3nxCJas}b<9D~0}=h@qTeNM6_Y|B&ql!{hUK2U5t)Z;b1 zx7YLm5jDzZp^gK}OreDj39uR_dsLK(EzTY* zXwabaeC$B7Jf>=)v{(5&B5?sjvIN;%`LF@@E>bJr4kUN`g@8K{v!T91!aT(mEmre# znlTuD{1tvsODd(%)BSW-w)evAmeNAuu3_$wwTB~0&sR{0@>IOLxSvS>kWHr4_NCxj zj9IFLl`tXa+1uFa^6uNUTkkgJ79$TA_fN#4IFM8O)Fg4@!0{)pY$QT2;v;XhREFZj z&e-wTfnf!?L!0qeb$jws@0uRXIPg?L%qS%eg(Pj3Yas(pS1cmGcKDAG&8pnCWxhTk z^9`B8z^2;`IR7(gaySK>yg7z62lt90S_>4eYEo%sSIyZzb*0yCuy-4?+r=?%=fBR@!AP^VaIAikwoPW|!o9=ShM!T~l=*eO$0@j~14K5|-Y^1i!_;y(;bYRa-Bu zsj1D&O?)-jrgXX`xX6XCzQa)*e~{9K`{WmcxfVVIg&9YDtWJr>>aSYr9#pS^E(+H}8$TVc&-OjYv-9zLILrfv5ZNu* z^pqs(ph%HceW5) zI$21lmKQHlmFTT*eB#-(FYtI1uc&P7O; z5u6=W^|a3*mH3wvM*S}*OrMJFK96=dms86uRD5Z-3()cjFlI9Isgs3I_^BX=<1Sau z`Dw0iW0m&QhDLX6PqIaM>0)F%Ilr~mx3$zq|Ark-gISloPCYQlT2F2iVcn8d$ic)B zdU#8n#$U2t$Ad4T0ETM_Rk(IvU0;)Nah`V%xGsTmYj^59;cz`r5@j%{u~6!F8gLzf zWhq-&P7qo+hH3XkYxjZJJ?F>#4(&QmtofMD%jxfoEra)b-ld1qWl0`}d@X-8$(dg3 zK9$MoVNhdDYnHI$sCTjN<##{ z+IJIYGEK4UlZaU(Av~|65<8Tdda1Wt-BSImu*EuIAm6<`0o;isW%}V{hM%g*vuf2J z5L@W(>4{$2#kiPbG2_5i<}!vOfDRNJ|0h)G`i!{^o2S=~%_pF!Wn9s$#?~3uS&bE6 zeqN+rrvN}Jg!9pjFA+YSkq`QiL9G>8S#c`uN-LsQq?_-f#6Pe^ivP~WOc(m$ijWh1 zhpT@Zy6@lkaz1hdt~(N}y^0GJKg1|rus#5P4yi)Az}=4}AC(n6MyqEJJw<7DZ~-+} zWl-0*L&Yi0VRom#kDm5m-tUDJqfj5)Mo+O@6j@bsVK{#&T1Py&|KLA!yCh?M3~tvAXr)pcY$j%rXwUPUk#t}YH1$WOB*%;_V=J0A|OQ> zJa3--cd5w{OZH=o^shH_U&p>~?4Mj!AopT0<^vKxRznAO+ZPD3@z)TLq-%>E5XNKk z2IsZ5>>Zug{QORdB;+T*TE(R;S^AYofnAE^kDk2#KZ`59&i&XcbYy3__VgL1vu7Dn zT-uUdTKhML-Y~LUnm^tV& zmlzf9--rM4UwhY2>l}b-Wq?}Rc>1^qHdqpCE%D*WT-q#cr^(+<%trgI^9NO?KBF;) zDq_Vc7JLIfQ&R^y645VWIm1*ZYyS9mvC)wR*&n*=oCavCVdVG;6Jz7&NGTw)*4k-z z;8;h%t)Z`TDXi=~x~5U5+2;i;s_4S=!oEB{#u(P}-(ak*3Goj5I8wJg>HQV$UB+q- zxxGsl&fCcxIm@`p!N?pGV%S~5t;9lC@cKW`^)C3@K8XylbgC#QsCP=8ph3)$WD|H> z;}nbWM1Jrv+1yljQ1bf!@f?bacrMS6cN)Eju|fM=sTBNzbC6SWZcInON9)7sbJrTb?hC=KSU3_pz1bk?Dv zq5SP2EAG4e!LZ$I5|od2iwug$V?FNEEgHgb%@;7y%J0(h7Z^tj1sTil zW~cYWvP<_cve1SdXJ^HX3XVcgv6!c3x9A6xldV<(a})uR!f9or7|C<$~Jd%ZjfS43cm|# ztL-5wM$7MIJ=8UA;%r$!OA~wYg^Ef$PL~W51qY=X+APZ7Kg7?tfTOTdsTVH__^o;M z5^KsBCFQj?uf6ftv!pbp5%ui0P8DmGejo0(Pr3;8){73uwyHqqg}C@jzp2>IV?pc9)@|Ck)_y_u}%+*yiTC%sa?DM;U{ME6k3o9qND?dmqV21Pf+24+ZZa}EJK7@-} z+GQr?^)St zH>ukIU44$EdO3W@JRYF{k_9vN(G-_DitSV0n$}r~J^o z^4T=I9VcQXPX9t}esc0!gY}n=jvQ=V`GLJ>kks=q0IP&n#9qiXn5>v-joZEVo=s-h zJdjG_g~ee(da#$Db?5!7H{CA(z0sk^Y-z6SYj zb_m8SqiGCW73M7WWJH{}R~Ry8Z-0z2*T!%&Fo()s7qqXeOt4oAbmuZd8|CeB&0WzE zUQBokNjY==9cbaM{pFGchKHE3B*~NAK9_q zr1z(I{OHUz8Xx`vW*XGpEV#cVCDy`S`_)^9MLTv zd*LQIIxxFT_38m+O~)C<_5+<4Ki99OQ!Lo|8RZ~5us>azJyTP;KR)aAlSFB!x(Gm3 z-uE-qJ%km^`lZz31n>s=1}UX(w*ey9Rm7SC zv=Abn>6;o!A}>@3g<2xo{5uy4E8OO5X>m1!NPJ0IB)ri06&!8`PNc5OA_bNx$3v8m%Ekl!&$3Ejf5pv_KS#I~9 zIcTgh2x|+p9(|AVq6=3iX_m99ygw& zw%#1GupiMr?^}kI3!`vcCVCEcON*7=ZL+ao!z zHe_546X4|}T-hRqsyBPz#_MKoPL9V55v#4{$C5^GS{PF}MY7iJ4+|5oY)JI@VmTHt zXS0ZfN)bp-jfRj=6#ux0IlMzI-q7M0`awoYzr3DOG=5BQvOLVi?kvc=R z?V`DSAD?^|Yd_1w4x4!nDk2Sao?(r=z-&*V^)7~t%}mAl@e z;w>&^EmFl>wFdSh4``&TqUHDSg_Nz=`+{P(^AgWBh8fJJr(&-L_l|{u;r({Yt{H>e z?{)bRQMBBhb$r2#hocYi=C__*MDu8jYUrP|Kfaw{YOE;A^K!1w#V~8G}IVJ|JxYXCsnuH2*1iW{vQbu4L6DTgc&|CfP<*$54i+n7axJr5( zU+qxy)~smW9&bohOXqg1vSj2cXX&F@`+~0U9q;3WZ-Tb$vWBLj)<7&^tsfipp1mUW~Z&cULc!;h%b-5C^aB;;tKh8F(Tkt8BX6x-Ii~Yao`d)gf0*bQo`A zHe7mo@&-)_KW^0X@@18(z@5mC?`)nG#lHd@aXg8NR8TJMj9+rCAQ;#;*ysg^GSmrA zIR8i>*(A=)^mu8Nm$#igpHuf5)9Bj1^nthIuHJY&;wp#9W(x!M6N-75##B#Q8Vp;8 zdbJCGH;(ex7AU>yVNs={N6oc+lmh%tu(3p&0gV?g^A>}=0rIh`pvLV7LZZ%{gR4H8 z)+jTCrQTl1j=$W)*7NpVBIjELhQf6U?&{InZ`lOb)4B%$8Z>}oBgiwy=n!V1EA@5OQ*JFeT) zg?ll->{hX9JonzhnB@SO?fPEK?B*TSzYz4<&`-O|(b>+fGn@|B0%o$r`=rOx+> z3~`qU=a-9MG}IQ-N2Ab0gwd4~f<{-G9@M!hvbz>5St)rZf^S6WCVNmi{iBxs8wgtz zwN$^}7G*lLp%fbUz=~%o_~i?`x#M+FcKsQ&six)%Utl2bq})ABo_3? zloh5?R+jL>SGo%KNc@>8maxFxDLJHPIemE4GoUI9t<5mU_D6VhSO+b8X+guU9?9r; zQV3c2#PjUTqEqgzl=*UIX}L)qjM)$r`yBc7K|vP3)=$iDVaNK)*QzIp6vNhK7& zLfK&3!ww~GibKor8Zlg0qmzTO8)gdyk2BF6X!AOfV$IImRDT_It%nSubkS<+@$LzW z;HuKzcJu>&M$M#%n6Wl67+K>%Bz;mE6UNz0qP3uzFmOzFb*d zmaNFT)OchJS~%GZ(d(1!Hzo%I)VtriEEJ@CA;(V>86B&MM1M86#YI(^wZL*_kcBRd z(()`!RY~gs7(Bs`fz_HbkaHtsq8g7g{{4n!v{ zY+p=z<4Snky{#~Yo7x_z>QFYwV*UDvE1=P5spo8>4}Yto50A@)DMj9x3M+5wrFB}&rIF2P#kX>(jUkD=C|*GHfcNhhdelPWOx5tSjUt0 z0)bun8%x);jU?10Dkbh*^$5LwWv!u-m-DmiRHq9EQi15lYmN>N@#e5#7hnv}*MA5F zuqQw4IrAjrnJ<`@1}NSvZIbpmtjtDf+Fl)fS6Lmw5m~2-r%6mp+lsq!C55fjgXf6Z z`tFlfa}6UBMoqERPuQzjtzc|^#r<`ogLAyt&2?}f_GP@Za!Y28iwLEmN|^@%_a8!> z@7`-^+??56@*AUUfrULYb4e4;K6>8T4+f<5S}*$gk;rar)7xb;Q7DsCm)?4Vv}S8n z{0EGJR~c)4&_=LcqaK*~MPorplZvgtEbD2~j){ow;)~F(k8S+xCVpl*mi4`UColYs zE$PR8=ZFv`85lL`#^sG$CI{`%<2{*71qQOKw-4l*omR< z&C3%SN6Qoumm-UMhLw!jzr2xfyNYC#&3GAKH6zV`Dj?}>wK@VgPWnT3?Wt-o8|hTN zk%a6epd+o<+L6-xvaZH)CFL7_dbPSBj^v9^7Z%Nx%)yc{*rfE5e^I}VapC?}>&@cO z5l7*Dwp+LAmtABm$-Ue6`OW!6;DKqcD5*dhylITGXmJ(>zOR(y`ABaR5}KN&Ah&H2_(&vwb?^jNk^h2HeUJF)cBO|BERf znJoMrr$eFG`F*)lZN3z1z0Y&?Pj6vA-;Xt4Wk>bX%slrp1&WFQb0Z*yFj_X4m#xOk0VkeeF*lE1qsQXi{D} zV)~}HJvk|;uP5?@K+kta-@c9I9;hL>_1HW_Qsp0d9$hrHPhm@qQd;>RE3j$dnHGWL$s~u)M`au5C32Df^(2KK!b} zd?oYT@d!m77_iag&W0`geqp-MKt*>^u*XWO^;fc*Xmi}-%;3Kv_rvw@Gtr1Rbb?W` zL-vhCShB>&Bq6;oH!c>Qig=|Ty=`}R|WgE+(9psIIq@*ro?ZOZ0tyk$CCV7 zh{LhG9BK-DLN%<`m-?_ga%|y-K=Tep0poYhy;>-W+7z6^X=m=WJFqvLL2j4k^Ina> zTQ@3I!K~`bFgF8Vd13v|X!tQ&Swzj~o9VI50R;2NEP~&aHx5oCR&WKdnHB2ARZYsD zKn+9&2Dm91k0NRC`MQQ2cZpv_nWFZu*zUdk_C0BL4a)VrAs)@dSZ~nM0lL_5560r)_}7-)~XU zlN$5A|9qa9ca#^+$!lBj#8b!)9^P&cB5dqq?!8)zMt8Ly_-q=5-deu#C0)P@6||2h}PfuP|zfh!Kxn< z6dCU%x6JL|2W?bH#IF<24OnmILO&d4#k;?VEZwm_4|2`@^$G?uc zqv<`BF|)lFK6HVpG@Ru)Lrlk0S+xGqCj9}aIJW#5$$jEL98&qNDU0vl?LOL_um6tx z{P21I^AlnEO;c+Bv+#cUuRziN|M>p}$Rt+3k6?I~aJ~tZetcEIw_5o$V6)+WTtg05 z>Tx+n`y(?#*Jys}cIdtTkFP@vnYje6wdZ7B<(*%BmrS8GVwG~B6qd$R8@GUV2Mn|E7RcDU01U}-qkOw=5fu1hPbCTFee zpX-SH2j`AV{&e^Msug+Jz|e7vtjxjxsw1pR?ONnre0az6c#g{-WYqrkhG)nR&k?On zL8OYUYNJZF#U-XwmlC(EO||dG{SOzutn%OZEXFOVdzsmQ{qkBM_=|gj+?mbM4QgxNrIm>@HMT9W@>jTE`EBY0(f&Na#oqdGw!tVn3+0XlO-!-u=q9p|d_`}oi zuNB-Whr3Q#Es+%l^gqS}%}vksn^0-MICq9+?OyAJrgmK2()fM%ge#Xu1z0cn%KJ+O zODUQ&hcjN7sIliIXX{RFomaZ}x2|;L$hzb|#CqX*SO>?@^z)b5?ZCNnHvEdFkhin@ zEH_(*eJ|e(L07v#ieA&bJ}lOqx}N>FuTFkFMn&a=lHb>Y5y2bTD6O@oKf_CFNSf< zvxQ!~*+P|Pyl?sQPEbVs$`T8zbXjNX=C@huy_uRTMAu15u&-7bwP@yFsCI<){NGm?SQvP6=9P-=Sj>CXU^AstP2MY;D-$P~ zk^I>c%rPUvQp#|`%j7&aSFp_Li ze(T=9AbrG>@wYsul}`zEtJrRtAMKdtJWWqb=)6Sf&!+n`-0k0c)S*50vwDSwW?c-7 z0Xb7q$Zd(mNU;g&EO_$v{ly3+f22>3_{zV#2CAI=`=!7Rhk9+KtIhA+v7bw~v;Du| z`H4QZkS{eMskdpNogac}$BnG+iNWrUi z4^VZz+>%_TCw_!=xc_y`-*LtTHI_-_u;$d>htpgFCrvYazjzF6J%t=Tew@k5#L`q@ z6D~h*#?TJD5cY2Zcoy^Gr+ZF^{ff}3y*YzL_5S0G@OJ~GC!_lLCU?*mXzsQO*_{Hn z1Y`^{I+)`X4(37IK1Bb&B%Yjt*L$(=JT@0~uIV-?Zx6RUO8x^~#&2^u{A5hWD>>SG zA|n48ugj321<&Ga+QsR^+v-0K#@XCH=3N6eHjCOV@9pfjH9E;o7fSO0{tI)C{1VA> z3Xx$Qg^}&E=Q_K^a8uHGN~g>btJz|bC!JDQd-?;K*cOXQMe zq3EbV)@ds5^XE(Ci3i6SHC4e$5t4n}g2&8g4(A;~p8twlkKUpcc98Bb(t~-!I&(-m z3c7ENl1EOhDkNWgE_6-z(hnd zwy=+dV|VXY-A$dL^IZGy74F(Lc|Ox6TxcaH;g>|2t{W5nRATw8#Am!_B=*RZCUn+K z{!2zDN*WAS+pu3dbH*iIZmiNs!qEFpk`l}ONtUK-kMAiB3Xpa9X>mxn#D8MTMb=|l z;lvK^md)(ul?vOWFxBwm^i>gxu`d_6m?G0HWv;EQR!j#U>Er#+*I!H6!fU)cIS^qj zo^nRCLItLv^hTXekr#+Bk98h>cqH`Ve`4B&D3vV2SC}~?If;2T)%^f3D;yu;oDzrg(T#Ei4ajGE*%$etiJ((@*!K6lz3eYGNYO%nDaQ z`YzMVfcr^H?Q8?^u3?Mp12@{96n?!DOH&?x`DaSQI!LdztE)BM{%j!jjO)(fO(0Ho zZBg{slP9_VN|SPVudBq}z@0(|piL>E{hk>(9BP+`rbQln{iQxUoB7wXo_0P8`!9aE zvt=*r)dwx&R(`E0%lR+cwf=Y7!a9$e>*}$?|Hn$dZ>gOYcly=fY|{51Y4UTuNevqE z|NP5S{%^tYi~Ftf{KbT2IsTTpzqsnoAAjXbr2p?~|NhCpP($Zuq5-WilKb};AT;02 zuR|34VY+}dVf4dXm=gri+eNaA%!8OL!k;!z35O4o&^2|1UpN_8;SE419cA)kLf3duO z!LVaybb{hO;Y&y@Ijb-~7z2OX#Nk67j$LBIF>_)c=w5aY3K$hy>9z1-{nlbOY9-!G z;p1x4k6XvC#hZsNeRG-mZJ@=J|xeAo7ZhG5DyXy-z4#2>1s?`JVj;JfQ_kNNceVWE08TVEI-S znz9)|7s!fwK%UQ^;7~g%Iw@4PR(=BZi1z;EjlVAKUuZG4(Xt;RP8a^7fQ5g*jv{=y zt@%&LllPwPppjlz?X=NVHj9+qN%?lYhN%{MG#_ml&-4F*LhFH>Cm3O^W8(jdulEjX zDtp(46$jBE;*3E=1Y~p+L5k882vtQ#kkF+C5$Ro;Bm@KvSV3jz5(p?nTIc~nLK{Kp zNFWeM0FjoE1PviTDDQUW{N8iseDi*PaKXhz*4nJS)>H21zMmx~Lzuhg;+u)wS>7sl zQo(0Mn6ZjntS3oKm}`)pvpu(_FE@goqn#K?<=OP*P;}?MCA!SB$7Q$*G0NiEk=+M- zqtQS$&1q;3xudJT8Sv38$m|mL+l8$hdWMEI^YG32%Zck6WUKqCAWFkMts?XBg)@ZS zQYk0d^C#={f;v>P$Ft5OLtV`|{>fY8etRYNPWT0dMb%?rseg!q1KF32yQ{wL2j2|1 znUywXXRW^Wr!%wcJYFD|)$v5z^KQVOBWHDQtu-_c)%8Embj;Cke^wxz(tS8km&ndt zikx7+U#LCMd$1w=NZowz8on~0mEx&YNQ3XO-s1@m=wg*b=5q$_!QrgC5teZ%ts>z;O(I%o?&i(_5}4xBux&HG-D&&3$e)0 z%ya(zsY|Y}J71yGVQDan#)QTRQuw)(+|`Xba$zq^4#e^BL{iHPnl=5Xa4HRvlkJ9( zMO=md-evxm7kw~v`Ckl2r?m*2Rg&x!X)5OC##5cLby zL8m1Tn&FXU_Zm(4IZ*;CNBygwFlcg>q_tzkwV1PF;pV<{gq* zjMm{2_dq!d14vyrE@RwWo3>F~X7Q!j;u*vCx@TVS4neAV-aCxla;{7+Lq?!q5BvR{ z;q=Pf9}Viu1I`SR4^817k&j+YSF5lkDPM`ZcTr$_e8lR)~X3w<_nW~)P zZ`$TWIqvjKG$A@Qw6rtF`F>_w%)RsMhXR#1TD2E^*bw+a9U+>Rr8Kiq<}~+N&b~KX z&{)8!4oHvU&JF2u7sjk5FWX#Ow(E7_k_tXJH;0Zl1xC%pKXDB5_vv}A@?3|y+V7-o z?qrc2bxZK4S+sQIblW_Rk<&3}?->}{Q4_uHeT=TPH@Wh-%#IwTJheV-ws@WQ*~4k_ zO!-aMz0DcA;_R{h&If)E?K!T5EuWoOXTcC^9ej-Jm%6^NZXG(?&z!qXQ>VnlQtK=; zF4%~m)?vh;s?PIFdWm_qKjOHodx})1JvN+PJ6<0k*Id?T*;^o@a(u0>cC7Z*!o+68 zdU6}WlHik#$&`MuYh?biYHv>ei&M};--~M#^b$Oywpv!qmk2HNuB$7K zMy;*yk@zIzL=wLZ!O4eCeKiK}BKz^|?w7fB2H@+WZglFq$fg;Yy+-_XEr+EFdrW)km8a}Qx${$PPf2S#hR?n4-0yi=j z1%GwUhovff)DGY)QJdotEF!BM=2*^Gv>oOv@!N zHxpNJ8`va905p8$k~Q|*YueQSOQ)TQvLaqBEXTz)?gK?R$R&GNFM4X#oRcAr}@FtQR3jFvgeIxpDQzy2Q2683*dA^G#PJCAYL_tRjP{w{VO*q@ zQJeJK@BINo`uqn}ps)P%#MaKdD|tWbtq8Pu;4OAD1Z6mxj9@;wxMBzmaUt1gm6 za7!BYn@*orxQ3m6Az?+<0fA!{XrV^NVwI(`KWi>kdJ_PXRX&KUuIAHtZ}3fS$pHo% z1h>hc@pVx1kKi)9?qGMwp}-F+t~4Nk8TWNjrnnMaN6Q00&ZM>S=cW^X>`#$iP0z1R zWc6txKJuv$O54>%JK$t)&o~a(`_8Mm!EkCQIk}gsh3cK_A$PoO7`)%R`F(*i$Ic%2 z42${`B_VNc#mGobA$oZm%_Kr0U|7sHVSVPqZ`@Aq4OG>4M=A^u$WZObS4m<+amE%z ziDH@w#je57jbfGDFo7I$W;b|bozCj5#YNHtq<2Quq-rE@6SI}f2eW*8=Ms%AG78HOzF5YAxs75TaTKLugQX3g5vnT&dV0WFN?Ja*X*uY zFwagEe%ENKg#UK@jcgcX1`<>nI_q<5GIpmk2xW+2YH|im?9oDx?O8g-591S#(Qom- z#~H`!F+Ny;sn*awV4E37Zl!DmO3MW4K(U6doLe|i+F2+Tc4+u;LDCHqO<=e99v*g^ zAldgn)R9dsX-pJCDd)%mPXapPTYs13B(NT+em`3#YN_}UYnTs*nC%7GN($?3HCXj0 z!*N@__dSKBwt_q52>K17;VsNR8q7vLIYWB8Nk$$b+AbUYRCk&zn4u+nZ%RlfKv5Jw5hV zV8}Q*QcrtldtuUya<|B-Qv_t1p6H^A0?c#`b~;JZ|9dA!+%p1E2*v-NR%c&w5X{Je zI-$zT^Z=V^brD~A`}9a*??P9-108l=JOM2MKj)v}tw;^LA2^DdAh+ive3x-K8XjjP zETs9U!nI#4s!8pRtN~6l0K%HH4NdV`|Nbd#C88b%s?Bk=mnZO9mKOIh^2t0$;_O-I z{h7W1JgMy=b+UQqBm)E0Sg9Hrz94+O_Cq^o!WJDuPs4Xby* zE&?hFaFIx}k=DjHNAB*5EbC>D?lgrDrD9$d2_=&7ZFlpaEKCbV)xyNeFXOHy!g~i^ zc7dFrXhJ;3xZivrq9I&XAHjed*i=~KY$IJ^$Nv9fncsoc`{m+A3Dj7`3xGY(( z8Awh*he+(FBfw_8P!we>omwjc9I=?mlU9!-AhyE zdM{j&H#>UlJK#fwhh!nKzJ+$DX?nt9YX)*jnBVAm@kvgj>`$Dgu@Iv+rB$A7x5%C=?NYcP znT)zPh!c*ZazFtj1T0xN_}I#iqlkqG)%xF!m_+TfEeAHz>0(o3o(&czR$JxV916Z?%D8!5&>pMlV(khfQIB#Whs5Ia@S5%n z9dve5r53lG|Ds`YDN@i#Yg+WVXL7paO#{n8y+MmDgmT>R@FE5fvgd}N&zRq!kV8qh zqz0In1dP1uXwTFP8_6_~F3+Msa6L`RXIwhZMeRWyE2Q$5jyg^%Nh}Wk;hSPMeYzqVR_;|Ys zkJOYI`zV^4Fno1U8#Xb33kbLA;Em&ZnQ8cPv$7JkoVwwGR!4iHT(Lc|v2d^Usj7sZ zMwXlN!)yA{gSffjL`u2-%w&g|duWQ2tH81zI^Dirc1iM)%|h_qn76?b@(f{1c|#t3 zezdU=h&wL8ND;ll`y@VF_dg;9MCU=>x<}AjcoJMLdS&T-=2%9Ahtfd$LFVEbom#iT zk$7OEX60r8klYZznSGCIL%))hyk)lfC-%hKzGql8NQn^+B#2iaQdi^Ja47zPr~?25 z$o(f2^M@P;AJkG)SDStd=5W^0f@8w;5qyP9j(pYS;t?*M$~6aCGEYM9>&*(GuH&=v z4fEvC7q7SfY~W2lpR9km{Z~JjiJ;tpeo;-8dT5&Ped(Wg`?<^QNbToU30KiHn|*%@y0HJEg=3QQ|C#Kb>z=ZbjVU2W;XU2eZ3Lb>rC ztnh~Z=0c>1tR!k5kxAs6P2SVE9Qc@XcDe5%qA>P?qXm&p12SpeDXdzS+{i6V4baBg zB{>2lOYjdDU!7)!*|=o0c2)D!i5m} z*S=i1^8w|^@g$kR@j?Dr6WmqrRK&i2br^lr7uk_L1~G&;KEd9jWkt=HS#;O+^c>2c zpbnA)`Ut3ChlkO3exTZz-#u&wzLFsO^WdYodZ z@1tTA>03vvST8$cJ%EF5`sxgH;q38C)tUjGE+;O;zGVNpF_ygZ_AhtxgN*Y((fiqR z>jQblahO@h2=0gr-!Yb_PfYSg$Y~u=?mu&onYzDkmLXN)oL6D?k)!s9B;{nqO<9yq zBXT&SJar9ebn&N!di1_$dr%)*4Fa;AVa|4B=IzZG51^Q;q9=svHC(D-Q<%=a!Pcwlzg@8HLb?~kl=f1hV zO0a{C>Ftws{n!V)AM@@KFEOQ|5VTrg=&A5k_)Ti>R?aeSKQR59UH`>m*!F7<(B7)_sK41o&%6P?)~#c|JWnu8s_R!&IzO2jbyTMm6ld}# z^e0fVDP)z%qO03Wx498R%K|%{gC@>HX4c_nz(8KRHyuz_^EUI&vmr6zE->I ziB%;wKf1d%_#J3S2&SG=s?U%*@<+Yo$KT`HsyucX0CHd(j~&9;#Qq+UA9LsZ{=YV0 zZ7asjTCjv-#;KXhw>^Bg2an!nAiW_0xO<;H`ur zKY=V?oD}=vzJaCO_0OfexRi-IlyyUx1&YJBEVuk7-{ig*R1H7160WrW_>r?M$jE=aD2dC#rQ23m0nn(-!g zsSKxa+n((1R&MC#n=$hmc`ChV#9ZgSAx7EYloIs*X!T5%L-)P|S7-N9tMht7cFzNT z#|HH`Vm9^YU*63R=i{7aj9O&b0TSM-Y`ov^X)@*~?xrv89}r<}PTHu(CFY-SzPD|; z2Q|HGdU~UruWz6G9KHSJ#2ubhTpRGX9RXGi_N{tut$=0w>!m!DPyWjgocXVbcl}+- z`=gpn9bw1EZDhj=Q)Y}G;@N5ExN&Wr7P+bCbYB}9R$wKG#{I~|-Hq5YB%2Ie1%0}y zcn|6~=AXOUS}Hn7_8(qPCzWAiK7>DcyPEz-aV*^sLrlBCd}Y@VX)F(Y+`Lx^h3(po ztZq1*A^z9vO8qAobm@jZbd+Ln$QgYQtawdfNWD66>|vq>hDb+Ns3$W(mf0g`*hMP`=)#LZu-lIH&Xh>_LfjW9cpD^x#V#t3QLla|@V?n$oX2Kg-?hIsD7>5pxlR zIBue$d~xf`&L6WqNHP9L-KNW-_%w8_p}Kpb$z>+tQq1zg6Q|YAVJ4f%eLHgQ+_|(r zEFF@j!>x@7R+bfgiJYg1)f@iyXQ3IR$v^7(ibc^UI0t}od#6-cu2f8zK(93Rl)KB+ z8(@`vmzKus#t*9g#a+ug_P>tYJHQ~V0;o^g*=rdvyV{EbcGOVV@n2Tt@vm>Y#ETB3 z0y=!l(+l>g*f&e)UC;Q|$79aXV=eP46xPx&j@&*maBuvBTid+=kxkUk3YTjm{)S<8 z1q=P}H%Ub9Q8~I+Rrv`8N{Jq=SRH%znsrkHaE_)x1#9^BNB1Ag(sKPjrRcv4wX>zP z`lwFSo@$_^Z^3^gU7xBK0M;Lvwacx(172r%zyo- z23~gF@SFCyDEv))@L64NQTjn=@mIb(pHK@tpmGEE;}aYv>u{3dJ#$G!k}`2bPdU2^ zS6kkf+ZEDoH_n<*Z_d7S11Bn|U}7bI58!kUuPR!5FnLrvoAMFYvCY7`nR~Vg3{67x z?K%7Wd$qXCpux=`=HTjhgi|U8=|B42wocW)+a`?x@Vn0Y2{MBe`6tQ+apM*kUc=XRtxyvBFt~ys*Wpk2hh5)TQ@Bg1gk!GKjaP?bNXR2$ z0i&yfniu@|m~~(E$|(i|G`TzwlOhiw3ASn zFi=D2O3w*8n$}5LNO>9mbEEDPAi16M3!PrV<>Wbx-_iQVt6?-%)3^@<^IuLajS4<* z&=VY}4jRvNMR&yr0fF9Xb+cU4nazEmH)mT&L9U5xRQ<)Ur1X*em&gUji~F4rx}H&y zm+rIn6d6&*=jfld5Ly3Htg)OE;&5-7w~IW>Tf5KtMPXO zI2>VIx9`88F2LD-nVg^}rYw4Cbo0o;DHlV*cuA|)#b0W<@HMJ%%-&%S6d54 z;ddj@T_$`uH=O7ov!L;eITW{L8|1h12ys|HK0x5Y7oGE zH-q#}pKvoG^NbHXl={5vMWap;M;9q^2cf? zhlaRZM`uUH;_kM#Z(ZFtSen`fa(bsBvFYjJJ2cFO5ACZChV{ATCN>9OSGRP@NjWpO zCa52wIf>!wyfB>p*hG|jhxRG@ZRL6C-443+M$rb1ct21bfl!un>WP8Lq_fN5+lgsg z-tNy1M{84GpMM^ z4t+vZ#1T_-`ym%X?^}oCf!fxPAoH2Boj}hGdNvAUS1kzWDbrs2mMOLKy{ptbR?`(m z3mJdhMR$_bRwr`Ix$UmbNGfwjLr!+b*D-g?jS6!P=Vi-n+Jqgre&(1$4XYI9Z%hfa znkhLwM5ntYBqa1u=&;b8X?MOO`09Z8gt#0eq-Lq3S9h+ppmQz`iDcejA@kDfH<%{KHCWktit!m<;(lpin^M?G6 z=L=%yD?52V8zF|aA~OEI9Q4Q@ZxojIyZ2M=#w3&`p3!QodR5~ zCp@%EZz0CNW2B=er%&J+992vZK~{xmfF0t-4x!fcYkAaBKG@7y;7vVuPj7k zXqApT@h1S;_Rtdfy*UDYPpSbfn;^dA$7JxBp59u=&t+GQuO{)2wB-~dCNJmeisVxi zUAeX$Uw@yyef#r58@3^WTUZhsDiAR>GHh=0s~>OLSf;-B^9^Qh@Gqzhb4HlCOWHr! z6GP0Q!fu#0izqW^K?s~TELxOW4B;WH?EQRY4Z>L8TdXQf0x(*Q5i^CNs3t!|5SnbD zwONC9k~X(WJZ6s$;vypC8a+jdL;|EI)!UyOdfPXsOo$0+ z7gcx5eH9b)KB`)a?xn?Qa4|#uV$p?PcdH&-Ym2^7!?%1BmIpPdCLjj7jLH#d3#50` zK_+~C4voO~yyx2`EbPaIsEMh%W^N>04W;NSMUMtYMD+Fa^kuzY^aDdXc_&4&+Ud#N&50tmh@8_(%^)(GdWT`yBoYM3Mvk%FbDFUAi(tw)`$$8wJS zK&rR`@gE%}oEsu&!>$~Wy@@?*YmcIaS3070FdvX|Q7d2HuX8(;1^AI(e*fHRQa^hw zSFbF5Wfk3UUytwn;TX-ZTUza zfB%WvA}WJL@Ek9%o*U!p;3tb}`+IW;{3TLu!+Z(41n#N&Zd)Yj)!=#jW5lcwH6bhMji|L{3VYZr5oX&k-x`XT$Eyk^iu$u32p0EH+c0XooTz; zS#D8Yj+r@UI_pVy%B37rw$I68RlD--Ak{WBDUR7AZI>`n)IJgY5hNUHT=j7KubN!iRmbyZWIGwO^ibFb93zR+n>lg z>#e6chuZ- zT^rTDbQY!ebW*zu`81Ou{&wY9mfSsg6P7jRN-DQ<^>vQHLj0qwqUID@kn=!r6|;6R z#>JgZ+aZYltdblX!t7ts5=p*t6aLX%Z2eec1o6X%-$K{BG$p}nWU6PDK}|+Bo?TD5 zV9-2e?Ea&nlw7OCuY{ecS7Q?sVQk3#g^~TKTh&Kpq}5$qAgvzxbU8Wwm@Gm%_IL2h z1&*ACN&88aTNl;Unemb!RfSOux3aO(H)dt}(=~ zZ4&Tid^0Cr3Ut|97j<~2g7S<_06`8MIFR;72--~Lc*cw4CbE7sHC z0XCx?Q=+k+jI2I%Dq3T6Lhl$HcHdQf?c%8Qbapbw`REd_6F=ueQ{kj>#$VsM-Raa--%phhyjz6zX?P0zT%XEn|+ zXUaRC<2fQc(HV*|~ns$?-4R%?sV+d0Vy_L$8)581uI-j_LizRF(GL8RUj-kH(1FQk`r z61yqo4c{fEtTSfjXu2vk*c0x47Eaft9BN{PuTqz^sLgd-Gt}HGkc(%dF@^>36XcME zENGqyN21Zv`)b@FVQ=unfMA1Sxm+A;E*P>2R5_rBLf5toc8cLz!2) zpSjAdmaYYako}{*6`Ks6rT~lvea#EflMm+(_E7Ea6Hg)29i7D{1#jp5aH0oE{?Q(L z_lmfju;7OXk8L8OeHOE$EGf5rSDI=LbavF|^>^JXt2~0?#K z0~9_z?ABRmQPtNd7h*%$`ctLOe&*VQgB3u`rfX%Fvt_M=__&q=<7oJt!h!c{7_nCkamdij05=k2_TSq>VlFkk8cSPdu z?VL1Dj>&(J#}3FB{K1j1?QcyY9h7Vw^5Z>-oR4`yNEb}u*#_a}Je7gMsVZX>g|)T# z1esQ>uV~sI@3%_d>BcqdHump~11yjYK{t+#eh1VT@v~DiH-EH6E5`f{UxHK?e z&x~jEE3gkXPC5m4rzf+I^7Mvc8cpF7QCyFr|C?b>{=3bcj`q-X;sWo^=*H$#=_3vvVPi-?nc;bEcecuX?7%dWuyY4a zpHL_ECii4##X_nLG1wdvN;#h~>?f%P4Y~x{MIP49@QbAf@BV4)0gjFUE7RikKMUNN32jD}XJ?WhBo-A!G{lKfH zol8x2T;=mMc|~$eo_jM~jKN^2{KV5R%Y&PLH@enqt!9Y%sjQ^pq0l}m46@IMUZLFC zTMZ_8`>fw3Q9VG{vCgTJpT7^vm|zo)czdxe5938a;tC3R8?hDRSUuE!=e*^?!vH4? z1oBY$Gfyo+^tWh#<)7BbqOaj8Rzbh#>NbOudaWx=xWi5fjjK;+U}=Fr_6mYd?>nhcC84#V^b&&)?bQZ0Av?x zPy>AzZ=)|=q}Hmv$GGqnLrG@#)I0`VI8l=)C3EMAx&|if+F#J_(ZU zGKgsg9{?Ap7j>i1=}W{xwtXDIpxh<2ef28GtA}_-+-3PIX{)5dtntku;R`jS_@f}Q z!sUYCXKga@vhOwY3JA%**IcFPTWMt5P>q6NCU(SVbfB=Cnb)OD;0h!xSd~T zx$vh5$hNM|p7UG<>dnlXA;$o0X+rGg_sT;D2OE#ktILXLweQlzsax-R!_AA)AZ0~` z{5q@t$DnY4v3BT_AW1wBA$*M-`o#$mNIv-%Rub6}Mz}BCPV)>X#otHMJd0Sw!HN!e zvtTt9sbU6D`6Juee(kV5Rd?{?F+)>rkGs`PJOv-DtM3|^f({2ZA$;)W(IZQjCI%We zazUF-ia9`mkoItixjwsufW{G3i2xA3u)5@nq6?Q_W=DiX)Rb3O+)P%#hX&B6wA_0Xhv*r-C<@ zBc|y0K|hv9GbD-^=M3Lew3vLq@_d-TtCrHVb@T1Ze3JBHtl5Ao>KK#tErBGse{8PN z>LT<9tkXglwpFiFmQ>ihNbywRgA@1fEHrqOBZ+?HE2FEol7u*Dv=cxjJXhA=+!ov@ z*&EQ?IRB@LMRMJ3|f#a7C6nfNZJRbYI}058~Hvvxs8r47Kxyu zX87dSwy!bGQ8oNJNp@L3>sv89tH`S3b2#?^ZHV8&$epE35{>Ub%3Xb-X;mu(W5sW9P$sd z*t@6=IazX@{yFT1p9~}$Y(r_V!Y;orE9tVy_HhyZtrqq-v*Z7ZqhRIA%^^!`!5BoD zoQ|^g5_YSEF92Gvfwo`NX=ki9`T=1m=6Q2dV}On;U1Rd9fn>s2Hr&PisxB;RJuZ1} z3qV7>q3uUX_$_VFj$CwRg7i)#x&8J`fVN&Gw&~sA!RqDW;Q3?e2h%%sdYM@}J{xp{dw_N!_Si3D6oY`E(07MU3{*11tIQ{u zhJ=PyP}4|qC&tenJY}7HQI#P*0ZjzGS`=YZsq-ptiqMZ&+VMiD4L6v<1HZNQEQC01 z{w6up1z=^#wP|Wp#p0&oV!Z7YEFt@m>z_T)Bl@AOCcHN8Mz5|UX-J$!#l_^=FPOJW zBqZFhQJY?+9UC%G^VXQikKcW)&E8;C=~3R)!G!qvitXjedn*`SRi^WLcfP!!F|rHF-1P;nl2S zwMWJ;K(l3KWes($IRzWRq9fGMc;3~hr`b3UN@-5` zMGWb=;&3nbyuk5wtEh#^%LMqvbCL?jZ%KuKH*r?AClFS7JLJu*HTzK(VO&^{x ztJ;z8b~j~w!w>^gI>0Zl9TS#WnQ4~mgT@()?UYp9?r*cF5b}hOTa$ZxSpED79iVQh zIq7kFq|@br#W+B)K58e9I`*_aX89f9Y*vcUyCg0)4aRf^3I@nxO&TZboL%wTL0fZ< z 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 literal 0 HcmV?d00001 diff --git "a/v2.x/img/system_management/\346\267\273\345\212\240\346\234\272\345\231\250\344\272\272\350\203\275\345\212\233.png" "b/v2.x/img/system_management/\346\267\273\345\212\240\346\234\272\345\231\250\344\272\272\350\203\275\345\212\233.png" new file mode 100644 index 0000000000000000000000000000000000000000..e9ae70825c36704d90ef9dba0183868c65f6a1e8 GIT binary patch literal 218891 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
  • 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 z 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

    gNV7+UI(yV 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 \u662f\u4e00\u7ad9\u5f0f\u5f00\u6e90\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\uff0c\u6db5\u76d6\u6d4b\u8bd5\u8ddf\u8e2a\u3001\u63a5\u53e3\u6d4b\u8bd5\u3001UI \u6d4b\u8bd5\u548c\u6027\u80fd\u6d4b\u8bd5\u7b49\uff0c\u5168\u9762\u517c\u5bb9 JMeter\u3001Selenium \u7b49\u4e3b\u6d41\u5f00\u6e90\u6807\u51c6\uff0c\u6709\u6548\u52a9\u529b\u5f00\u53d1\u548c\u6d4b\u8bd5\u56e2\u961f\u5728\u7ebf\u5171\u4eab\u534f\u4f5c\uff0c\u5b9e\u73b0\u7aef\u5230\u7aef\u7684\u6d4b\u8bd5\u7ba1\u7406\u8ddf\u8e2a\u53ef\u89c6\u5316\u3001\u81ea\u52a8\u5316\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u53ca\u878d\u5165\u6301\u7eed\u4ea4\u4ed8 DevOps \u4f53\u7cfb\uff0c\u5e76\u5145\u5206\u5229\u7528\u4e91\u5f39\u6027\u8fdb\u884c\u9ad8\u5ea6\u53ef\u6269\u5c55\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u4ece\u800c\u52a0\u901f\u9ad8\u8d28\u91cf\u7684\u8f6f\u4ef6\u4ea4\u4ed8\uff0c\u63a8\u52a8\u4e2d\u56fd\u6d4b\u8bd5\u884c\u4e1a\u6574\u4f53\u6548\u7387\u7684\u63d0\u5347\u3002

    "},{"location":"#1","title":"1 \u4ea7\u54c1\u4f18\u52bf","text":"
    • \u5f00\u6e90\uff1a\u57fa\u4e8e\u5f00\u6e90\u3001\u517c\u5bb9\u5f00\u6e90\uff0c\u6309\u6708\u53d1\u5e03\u65b0\u7248\u672c\u3001\u65e5\u5747\u4e0b\u8f7d\u5b89\u88c5\u8d85\u8fc7100\u6b21\u3001\u88ab\u5927\u91cf\u7528\u6237\u9a8c\u8bc1\u3002
    • \u4e00\u7ad9\u5f0f\uff1a\u5168\u9762\u6db5\u76d6\u6d4b\u8bd5\u8ddf\u8e2a\u3001\u63a5\u53e3\u6d4b\u8bd5\u3001UI\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u5e76\u6253\u901a\u8054\u52a8\u3002
    • \u5168\u751f\u547d\u5468\u671f\uff1a\u6ee1\u8db3\u4ece\u6d4b\u8bd5\u8ba1\u5212\u3001\u6d4b\u8bd5\u6267\u884c\u5230\u6d4b\u8bd5\u62a5\u544a\u5206\u6790\u7684\u5168\u751f\u547d\u5468\u671f\u9700\u6c42\u3002
    • \u6301\u7eed\u6d4b\u8bd5\uff1a\u65e0\u7f1d\u5bf9\u63a5 Bug \u7ba1\u7406\u5de5\u5177\u548c\u6301\u7eed\u96c6\u6210\u5de5\u5177\u7b49\uff0c\u5c06\u6d4b\u8bd5\u878d\u5165\u6301\u7eed\u4ea4\u4ed8\u548c DevOps \u4f53\u7cfb\u3002
    • \u56e2\u961f\u534f\u4f5c\uff1a\u652f\u6301\u56e2\u961f\u534f\u4f5c\u548c\u8d44\u4ea7\u6c89\u6dc0\uff0c\u65e0\u8bba\u56e2\u961f\u89c4\u6a21\u5982\u4f55\uff0c\u603b\u6709\u9002\u5408\u7684\u843d\u5730\u65b9\u5f0f\u3002
    "},{"location":"#2","title":"2 \u4e3b\u8981\u529f\u80fd","text":"
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u5bf9\u63a5\u4e3b\u6d41\u9879\u76ee\u7ba1\u7406\u5e73\u53f0\uff0c\u6d4b\u8bd5\u8fc7\u7a0b\u5168\u94fe\u8def\u8ddf\u8e2a\u7ba1\u7406\uff1b\u5217\u8868\u8111\u56fe\u6a21\u5f0f\u81ea\u7531\u5207\u6362\uff0c\u7528\u4f8b\u7f16\u5199\u66f4\u7b80\u5355\u3001\u6d4b\u8bd5\u62a5\u544a\u66f4\u6e05\u6670\u3002
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u96c6 JMeter\u3001PostMan \u6613\u7528\u6027\u548c\u529f\u80fd\u6027\u4e8e\u4e00\u4f53\uff1b \u652f\u6301API \u7ba1\u7406\u3001Mock \u670d\u52a1\u3001\u573a\u666f\u7f16\u6392\u3001\u6269\u5c55\u534f\u8bae\u7b49\u3002
    • UI \u6d4b\u8bd5\uff1a\u57fa\u4e8e Selenium \u6d4f\u89c8\u5668\u81ea\u52a8\u5316\uff0c\u9ad8\u5ea6\u53ef\u590d\u7528\u7684\u6d4b\u8bd5\u811a\u672c\uff1b\u65e0\u9700\u590d\u6742\u7684\u4ee3\u7801\u7f16\u5199\uff0c\u4eba\u4eba\u90fd\u53ef\u5f00\u5c55\u7684\u4f4e\u4ee3\u7801\u81ea\u52a8\u5316\u6d4b\u8bd5\u3002
    • \u6027\u80fd\u6d4b\u8bd5\uff1a\u517c\u5bb9 JMeter \u7684\u540c\u65f6\u8865\u8db3\u5176\u5206\u5e03\u5f0f\u3001\u76d1\u63a7\u4e0e\u62a5\u544a\u4ee5\u53ca\u7ba1\u7406\u77ed\u677f\uff1b\u5e2e\u52a9\u56e2\u961f\u5b9e\u73b0\u9ad8\u5e76\u53d1\u3001\u5206\u5e03\u5f0f\u7684\u6027\u80fd\u538b\u6d4b\uff0c\u5b8c\u6210\u538b\u6d4b\u4efb\u52a1\u7684\u7edf\u4e00\u8c03\u5ea6\u4e0e\u7ba1\u7406\u3002
    "},{"location":"#3","title":"3 \u754c\u9762\u5c55\u793a","text":""},{"location":"#4","title":"4 \u7cbe\u54c1\u8bfe\u7a0b","text":"
    • \u73a9\u8f6c MeterSphere \u5f00\u6e90\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\u7cfb\u5217\u6559\u7a0b\u4e4b\u6d4b\u8bd5\u8ddf\u8e2a
    • \u73a9\u8f6c MeterSphere \u5f00\u6e90\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\u7cfb\u5217\u6559\u7a0b\u4e4b\u63a5\u53e3\u6d4b\u8bd5
    • \u73a9\u8f6c MeterSphere \u5f00\u6e90\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\u7cfb\u5217\u6559\u7a0b\u4e4b\u6027\u80fd\u6d4b\u8bd5
    • \u73a9\u8f6c MeterSphere \u5f00\u6e90\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\u7cfb\u5217\u6559\u7a0b\u4e4b UI \u6d4b\u8bd5
    "},{"location":"#5","title":"5 \u4e86\u89e3\u66f4\u591a","text":"
    • \u83b7\u53d6\u300a\u6301\u7eed\u6d4b\u8bd5\u767d\u76ae\u4e66\u300b
    • \u5982\u4f55\u5411\u56e2\u961f\u4ecb\u7ecd MeterSphere\uff1f
    • MeterSphere \u77e5\u8bc6\u5e93
    • MeterSphere \u793e\u533a\u8bba\u575b
    • MeterSphere \u57f9\u8bad\u548c\u8ba4\u8bc1
    "},{"location":"automation_plugin_dev/","title":"\u63a5\u53e3\u81ea\u52a8\u5316\u63d2\u4ef6\u5f00\u53d1","text":""},{"location":"automation_plugin_dev/#1","title":"1 \u80cc\u666f\u4ecb\u7ecd","text":"

    \u5728 JMeter \u4e2d\u4f7f\u7528 Dummy Sampler \u53ef\u4ee5\u6784\u9020\u51fa\u4e00\u4e2a\u8bf7\u6c42\u548c\u54cd\u5e94\u5b8c\u5168\u81ea\u5b9a\u4e49\u7684\u8bf7\u6c42\u53d6\u6837\u5668\uff0c\u5e76\u4e14\u8fd9\u79cd\u65b9\u5f0f\u53ef\u4ee5\u65b9\u4fbf\u5730\u5bf9\u65ad\u8a00\u3001\u53c2\u6570\u63d0\u53d6\u7b49\u5404\u79cd\u540e\u7f6e\u5904\u7406\u5668\u8fdb\u884c\u8c03\u8bd5\u3002\u9488\u5bf9 JMeter \u5df2\u6709\u7684\u529f\u80fd\u6216\u63d2\u4ef6\uff0c\u53ea\u9700\u8981\u8fdb\u884c\u5f88\u5c11\u91cf\u7684\u5f00\u53d1\u5de5\u4f5c\uff0c\u5c31\u53ef\u4ee5\u5c06\u5176\u5c01\u88c5\u6210 MeterSphere \u7684\u63a5\u53e3\u81ea\u52a8\u5316\u63d2\u4ef6\uff0c\u5bf9\u5e94\u7684\u63d2\u4ef6 Demo \u793a\u4f8b\u89c1: metersphere-plugin-DummySampler\u3002

    "},{"location":"automation_plugin_dev/#2","title":"2 \u5f00\u53d1\u6d41\u7a0b","text":""},{"location":"automation_plugin_dev/#21","title":"2.1 \u9879\u76ee\u521d\u59cb\u5316","text":"

    \u521d\u59cb\u5316\u4e00\u4e2a maven \u9879\u76ee\uff0c\u5e76\u6dfb\u52a0\u5982\u4e0b\u4f9d\u8d56\u3002\u516c\u5171\u63d2\u4ef6\u5305\u4f9d\u8d56\u5bf9\u5e94\u7684\u4ee3\u7801\u4ed3\u5e93\u89c1\uff1ametersphere-plugin-core \u3002

    <!-- \u7701\u7565\u5f00\u5934 -->\n    <dependencies>\n        <!-- \u516c\u5171\u63d2\u4ef6\u5305\uff0c\u5b9a\u4e49\u4e86\u6267\u884c\u6570\u636e\u7684\u57fa\u7c7b\u548c\u516c\u5171\u63a5\u53e3 -->\n        <dependency>\n            <groupId>io.metersphere</groupId>\n            <artifactId>metersphere-plugin-core</artifactId>\n            <version>2.0</version>\n            <scope>provided</scope>\n        </dependency>\n        <!-- \u539f\u59cb\u7684 JMeter DummySampler \u63d2\u4ef6 -->\n        <dependency>\n            <groupId>kg.apc</groupId>\n            <artifactId>jmeter-plugins-dummy</artifactId>\n            <version>0.4</version>\n        </dependency>\n    </dependencies>\n<!-- \u7701\u7565\u7ed3\u5c3e -->\n

    "},{"location":"automation_plugin_dev/#22","title":"2.2 \u751f\u6210\u524d\u7aef\u8868\u5355","text":"

    \u5728 JMeter \u4e2d\u521b\u5efa\u4e00\u4e2a\u5305\u542b DummySampler \u6b65\u9aa4\u7684\u811a\u672c\uff0c\u5bf9\u7167 JMeter \u4e2d\u8be5\u6b65\u9aa4\u7684\u914d\u7f6e\u9875\u9762\uff0c\u4f7f\u7528 \u8868\u5355\u751f\u6210\u5668 \u751f\u6210\u524d\u7aef\u8868\u5355\u7684 json \u6587\u4ef6\u3002

    \u70b9\u51fb\u8868\u5355\u751f\u6210\u5668\u53f3\u4e0a\u89d2\u7684\u3010\u751f\u6210JSON\u3011\u6309\u94ae\uff0c\u5c06\u5185\u5bb9\u4fdd\u5b58\u5230src\\main\\resources\\json\\ui_dummy.json\u6587\u4ef6\u4e2d\uff1b\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u3010\u751f\u6210Options\u3011\u6309\u94ae\uff0c\u5c06\u5185\u5bb9\u4fdd\u5b58\u5230src\\main\\resources\\json\\ui_form.json\u6587\u4ef6\u4e2d\u3002\u5bf9\u4e8e\u6ca1\u6709\u9ed8\u8ba4\u503c\u7684\u5b57\u6bb5\uff0c\u624b\u52a8\u7f16\u8f91 json \u6587\u4ef6\uff0c\u589e\u52a0\u7a7a\u9ed8\u8ba4\u503c\uff0c\u907f\u514d\u51fa\u73b0\u7a7a\u6307\u9488\u5f02\u5e38\u3002

    "},{"location":"automation_plugin_dev/#23","title":"2.3 \u521d\u59cb\u5316\u63d2\u4ef6\u8d44\u6e90","text":"

    \u5728src\\main\\java\\io\\metersphere\\plugin\\dummy\\UiScriptApiImpl.java\u4e2d\u4f7f\u7528\u4e0a\u9762\u751f\u6210\u7684\u8868\u5355 json\uff0c\u5bf9\u63d2\u4ef6\u5185\u5bb9\u8fdb\u884c\u521d\u59cb\u5316\u3002

    "},{"location":"automation_plugin_dev/#24-jmeter-hashtree","title":"2.4 \u8f6c\u6362\u751f\u6210 JMeter HashTree","text":"

    \u521b\u5efa\u4e0e\u4e0a\u4e00\u6b65\u5bf9\u5e94\u7684\u521d\u59cb\u5316 UiScript \u5bf9\u8c61\u65f6\u6307\u5b9a\u7c7b\u540d\u4e00\u81f4\u7684io.metersphere.plugin.dummy.sampler.MsDummySampler\u7c7b\uff0c\u5728\u8be5\u7c7b\u4e2d\u5b8c\u6210\u524d\u7aef\u8868\u5355\u6570\u636e\u5230 JMeter HashTree \u7684\u8f6c\u6362\u3002

    \u751f\u6210 DummySampler \u5bf9\u8c61\u65f6\uff0cguiclass\u3001testclass \u53ca\u5404\u4e2a\u5c5e\u6027\u5bf9\u5e94\u7684\u5b57\u6bb5\uff0c\u53ef\u4ee5\u901a\u8fc7\u521b\u5efa\u4e00\u4e2a\u5305\u542b DummySampler \u6b65\u9aa4\u7684 jmx \u811a\u672c\uff0c\u4ee5\u6587\u672c\u6a21\u5f0f\u6253\u5f00\u811a\u672c\u5feb\u901f\u83b7\u53d6\u3002

    "},{"location":"automation_plugin_dev/#25","title":"2.5 \u6253\u5305","text":"

    \u589e\u52a0\u4e00\u4e2a\u4e0e\u6253\u5305\u540e\u7684 jar \u5305\u540c\u540d\u7684\u6587\u4ef6 src\\main\\resources\\metersphere-plugin-DummySampler-1.0.0-jar-with-all-dependencies \u6307\u5b9a\u63d2\u4ef6\u5165\u53e3\u3002\u518d\u8865\u5145\u4e00\u4e9b\u5176\u4ed6\u7684\u5fc5\u8981\u5185\u5bb9\u540e\u5c31\u53ef\u4ee5\u6253\u5305\u4e86\u3002

    "},{"location":"automation_plugin_dev/#26","title":"2.6 \u4e0a\u4f20\u6d4b\u8bd5","text":"

    \u6253\u5305\u540e\u5c06\u751f\u6210\u7684 metersphere-plugin-DummySampler-1.0.0-jar-with-all-dependencies.jar \u5728 MeterSphere \u7684\u63d2\u4ef6\u7ba1\u7406\u9875\u9762\u8fdb\u884c\u4e0a\u4f20\uff0c\u4e0a\u4f20\u6210\u529f\u540e\u5c31\u53ef\u4ee5\u5728\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u7f16\u8f91\u65f6\u67e5\u770b\u3001\u4f7f\u7528\u548c\u8c03\u8bd5\u63d2\u4ef6\u63d0\u4f9b\u7684\u8bf7\u6c42\u3002

    "},{"location":"awesome-jmeter/","title":"Awesome jmeter","text":"

    Apache JMeter \u662f\u4e00\u4e2a Java \u8bed\u8a00\u7f16\u5199\u7684\u5f00\u6e90\u6027\u80fd\u6d4b\u8bd5\u5de5\u5177\uff0c\u662f\u76ee\u524d\u6700\u4e3b\u6d41\u7684\u5f00\u6e90\u6027\u80fd\u6d4b\u8bd5\u5de5\u5177\u3002\u672c\u8d44\u6e90\u96c6\u6e90\u81ea awesome-jmeter\uff08CC-BY-4.0 license\uff09\uff0cMeterSphere \u56e2\u961f\u9488\u5bf9\u56fd\u5185\u7528\u6237\u8fdb\u884c\u4e86\u6c49\u5316\u3001\u4f18\u5316\u548c\u8fdb\u4e00\u6b65\u6574\u7406\u3002

    "},{"location":"awesome-jmeter/#1","title":"1 \u5b98\u65b9\u8d44\u6e90","text":"
    • Apache JMeter Project - Apache JMeter \u5b98\u65b9\u7f51\u7ad9
    • GitHub Repository - Apache JMeter GitHub \u4ee3\u7801\u5e93
    • JMeter Wiki - Apache JMeter \u5b98\u65b9\u6587\u6863
    • Issue Tracking - Apache JMeter \u7f3a\u9677\u8ddf\u8e2a\u7cfb\u7edf
    • Mailing Lists - Apache JMeter \u90ae\u4ef6\u5217\u8868
    "},{"location":"awesome-jmeter/#2","title":"2 \u5feb\u901f\u5165\u95e8","text":"
    • The Beginner's Guide to Performance Testing with Apache JMeter
    "},{"location":"awesome-jmeter/#3","title":"3 \u4f7f\u7528\u6559\u7a0b","text":"
    • JMeter Tutorials
    • JMeter Tutorial for Load Testing: The Ultimate Guide
    • RESTful API testing with JMeter
    • JMeter Tutorial - By Guru99
    "},{"location":"awesome-jmeter/#4","title":"4 \u6700\u4f73\u5b9e\u8df5","text":"
    • JMeter \u6700\u4f73\u5b9e\u8df5 - \u5b98\u65b9
    • JMeter \u6700\u4f73\u5b9e\u8df5 - BlazeMeter
    • Concurrent, High Throughput Performance Testing with JMeter
    "},{"location":"awesome-jmeter/#5-scripting","title":"5 Scripting","text":"
    • Beanshell vs JSR223 vs Java JMeter Scripting - Most popular scripting mechanisms performance comparison.
    • Testing with Groovy - Using JMeter and Groovy for load testing.
    "},{"location":"awesome-jmeter/#6","title":"6 \u6301\u7eed\u96c6\u6210","text":"
    • JMeter Ant Task - Ant task to automate running JMeter test plans.
    • JMeter Maven Plugin - Maven plugin that provides the ability to run JMeter tests as part of the build.
    • Jenkins Performance Plugin - Jenkins plugin to capture reports from JMeter and generate graphic charts with the trend report of performance and robustness.
    • Sonar JMeter Plugin - Plugin to collect JMeter performance tests results and display in Sonar dashboard (deprecated).
    "},{"location":"awesome-jmeter/#7","title":"7 \u5206\u5e03\u5f0f\u6d4b\u8bd5","text":"
    • JMeter Distributed Testing Step-by-step
    • JMeter Remote Testing
    • Setting up a JMeter Cluster for web server load testing
    "},{"location":"awesome-jmeter/#8","title":"8 \u5bb9\u5668\u5316","text":"
    • Dockerized JMeter - Distributed load testing workflow with Docker and JMeter.
    • JMeter Docker Images
    • Distributed JMeter testing using Docker
    • A Docker solution to JMeter + InfluxDB + Grafana performance testing
    • AutoMeter - An automation tool for scaling load tests using distributed slaves, based on JMeter master-slave architecture.
    "},{"location":"awesome-jmeter/#9","title":"9 \u4e0e\u516c\u6709\u4e91\u96c6\u6210","text":"
    • Amazon Web Services
      • jmeter-ec2 - Automates running Apache JMeter on Amazon EC2.
      • gee - A modified version of JMeter-EC2 project.
      • os-jmeter-aws - Run JMeter on multiple AWS instances, view results in ELK.
      • Load Testing with JMeter and Amazon EC2
      • Performance Testing in the Cloud with JMeter & AWS
      • JMeter distributed testing with Amazon EC2
    • Microsoft Azures
      • Load Testing Pipeline with JMeter, ACI and Terraform - Scalable cloud load/stress testing pipeline solution with Apache JMeter and Terraform to dynamically provision and destroy the required infrastructure on Azure.
    "},{"location":"awesome-jmeter/#10","title":"10 \u7ed3\u679c\u5904\u7406\u548c\u53ef\u89c6\u5316","text":"
    • JMeter Report Dashboard - JMeter supports dashboard report generation to get graphs and statistics from a test plan.
    • JMeter Log Analysis - Suggestions and recipes for JMeter log analysis.
    • Analyzing JMeter Results
    • JMeter Result Analysis: The Ultimate Guide
    • BlazeMeter Sense - Service for storing and analysing performance test results.
    • JAnalyser - Browser-based results analysis tool.
    • JMeter Result Analysis Plugin - Maven plugin that parses JMeter test results and generates detailed reports with charts.
    • JMeter Results Analyser - Web-based application for collating, analysing and reporting JMeter test results.
    • DB Results Collectors
      • JMeter MySQLCollector Plugin - Patch to configure listener to log into MySQL database.
    • InfluxDB & Grafana
      • Using JMeter with InfluxDB & Grafana - Collection of guides to collect and visualize real-time test-results and server monitoring stats using InfluxDB & Grafana.
      • How to Use Grafana to Monitor JMeter Non-GUI Results
    • Grafana Dashboards
      • JMeter Load Test Dashboard - Grafana dashboard shows live load test metrics provided by JMeter (by NovaTec-APM).
      • JMeter Dashboard using Core InfluxdbBackendListenerClient - Monitor your Apache JMeter load test in real time with InfluxDB and Grafana (by Philippe M).
      • JMeter Dashboard (3.2 and up) - Monitor JMeter load test in real time with InfluxDB and Grafana (by adrianbanu).
      • JMeter (via prometheus exporter) - A Grafana dashboard to inspect JMeter metrics via Prometheus exporter (by chiabre).
      • JMeter-InfluxBD-Writer Plugin - JMeter plugin to write load test data on-the-fly into InfluxDB.
      • JMeter Results to InfluxDB - Read JMeter results from csv file and put into InfluxDB database.
    • ELK Stack
      • Using ELK - Using Elasticsearch, Logstash, and Kibana to visualize JMeter test results.
      • JMeter + ElasticSearch Live Monitoring - Using the ElasticSearch Backend listener and Grafana/Kibana to monitor results in realtime.
    • Prometheus
      • jmeter-prometheus-plugin - A Prometheus Listener for Apache JMeter that exposes results in HTTP API.
    • Backend Listener Implementations
      • jmeter-elasticsearch-backend-listener - JMeter plugin to send test results to an ElasticSearch engine.
      • jmeter-backend-azure - JMeter plugin to send test results to Azure Application Insights.
      • jmeter-backend-listener-kafka - JMeter plugin to send test results to a Kafka server.
      • jmeter-listener - JMeter plugin to write load test data on-the-fly to ClickHouse, InfluxDB, ElasticSearch.
    "},{"location":"awesome-jmeter/#11-streaming-protocols","title":"11 Streaming Protocols","text":"
    • Easy and realistic Load Testing of HTTP Live Streaming (HLS) with Apache JMeter
    • Using JMeter to Load Test Live HLS Concurrency of Wowza Streaming Engine
    • Load testing HLS with Ruby JMeter
    • Media Live Streaming Load Testing with JMeter - Collection of articles by BlazeMeter (HLS, RTMP, WS, podcasts, etc.).
    • HLS JMeter Plugin
    "},{"location":"awesome-jmeter/#12-mobile-apps","title":"12 Mobile Apps","text":"
    • Record iOS application HTTP requests
    • Load Testing Mobile Apps Made Easy
    • Performance Testing for Native Mobile Apps
    "},{"location":"awesome-jmeter/#13-plugins","title":"13 Plugins \u5217\u8868\u3001\u4e8c\u6b21\u5f00\u53d1","text":"
    • JMeter Plugins list - List of available plugins and extensions.
    • JMeter Plugins - Independent set of plugins for Apache JMeter, with plugin manager references many plugins and simplifies installation.
    • Ubik Load Pack - Productivity extensions for Apache JMeter.
    • JMeter Developer Manual
    • How to write a plugin for JMeter
    • How to build a JMeter plugin utilising groovy
    • How to create a plugin in JMeter
    • Custom JMeter Samplers and Config Elements
    • Implement Custom JMeter Samplers
    "},{"location":"awesome-jmeter/#14-ide","title":"14 IDE \u96c6\u6210","text":"
    • Intellij IDEA IDE Plugin - Create run configurations and run JMeter tests from Intellij IDEA.
    • JMeter + Eclipse HOWTO - Develop the JMeter project with Eclipse IDE.
    "},{"location":"awesome-jmeter/#15","title":"15 \u76f8\u5173\u4e66\u7c4d","text":"
    • JMeter \u6027\u80fd\u6d4b\u8bd5\u5b9e\u6218 \u7b2c2\u7248
    "},{"location":"awesome-jmeter/#16","title":"16 \u57f9\u8bad\u8bfe\u7a0b","text":"
    • \u6781\u5ba2\u65f6\u95f4\uff1a\u6027\u80fd\u6d4b\u8bd5\u5b9e\u6218 30 \u8bb2
    • JMeter: Performance and Load Testing - By LinkedIn Learning.
    • BlazeMeter University - By BlazeMeter.
    • Apache JMeter Testing Courses - By QAInsights.
    "},{"location":"awesome-jmeter/#17","title":"17 \u76f8\u5173\u535a\u5ba2","text":"
    • BlazeMeter Blog - BlazeMeter blog about JMeter and performance testing.
    • Flood.io Blog - Load testing thoughts, stories and ideas from Flood IO.
    • JMeter Blog - Another blog for performance & automation testing using JMeter.
    "},{"location":"dev_manual/","title":"\u5f00\u53d1\u73af\u5883\u642d\u5efa","text":""},{"location":"dev_manual/#1","title":"1 \u9879\u76ee\u7ed3\u6784","text":"
    .\n\u251c\u2500\u2500 Jenkinsfile                                     # \u6784\u5efaJAR\u5305\u4f7f\u7528\u7684 jenkinsfile\n\u251c\u2500\u2500 LICENSE\n\u251c\u2500\u2500 OWNERS\n\u251c\u2500\u2500 README.md                                       # \u9879\u76ee\u4e2d\u6587\u4ecb\u7ecd\n\u251c\u2500\u2500 README-EN.md                                    # \u9879\u76ee\u82f1\u6587\u4ecb\u7ecd\n\u251c\u2500\u2500 SECURITY.md                                     # \u5b89\u5168\u8bf4\u660e\n\u251c\u2500\u2500 CODE_OF_CONDUCT.md                        \n\u251c\u2500\u2500 CONTRIBUTING.md \n\u251c\u2500\u2500 build.md                                        # \u6784\u5efa\u8fc7\u7a0b\n\u251c\u2500\u2500framework                                          \n\u2502\u00a0\u00a0 \u251c\u2500\u2500 eureka                                       # \u670d\u52a1\u6ce8\u518c\u4e2d\u5fc3\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 gateway                                      # API \u7f51\u5173\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 sdk-parent                                   # SDK\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 .gitignore                                    \n\u2502\u00a0\u00a0 \u2514\u2500\u2500 pom                                          # \u4e3b\u6846\u67b6\u7684 pom \u6587\u4ef6           \n\u251c\u2500\u2500test-track                                        # \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 backend                                      # \u540e\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 frontend                                     # \u524d\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Dockerfile                                   # \u6784\u5efa\u5bb9\u5668\u955c\u50cf\u4f7f\u7528\u7684 dockerfile\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 pom                                          # \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\u4f7f\u7528\u7684 pom \u6587\u4ef6   \n\u251c\u2500\u2500 api-test                                         # \u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 backend                                      # \u540e\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 frontend                                     # \u524d\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Dockerfile                                   # \u6784\u5efa\u5bb9\u5668\u955c\u50cf\u4f7f\u7528\u7684 dockerfile\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 pom                                          # \u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\u4f7f\u7528\u7684 pom \u6587\u4ef6\n\u251c\u2500\u2500 performance-test                                 # \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 backend                                      # \u540e\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 frontend                                     # \u524d\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Dockerfile                                   # \u6784\u5efa\u5bb9\u5668\u955c\u50cf\u4f7f\u7528\u7684 dockerfile\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 pom                                          # \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\u4f7f\u7528\u7684 pom \u6587\u4ef6\n\u251c\u2500\u2500 report-stat                                      # \u62a5\u8868\u7edf\u8ba1\u6a21\u5757\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 backend                                      # \u540e\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 frontend                                     # \u524d\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Dockerfile                                   # \u6784\u5efa\u5bb9\u5668\u955c\u50cf\u4f7f\u7528\u7684 dockerfile\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 pom                                          # \u62a5\u8868\u7edf\u8ba1\u6a21\u5757\u4f7f\u7528\u7684 pom \u6587\u4ef6  \n\u251c\u2500\u2500 project-management                               # \u9879\u76ee\u7ba1\u7406\u6a21\u5757\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 backend                                      # \u540e\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 frontend                                     # \u524d\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Dockerfile                                   # \u6784\u5efa\u5bb9\u5668\u955c\u50cf\u4f7f\u7528\u7684 dockerfile\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 pom                                          # \u9879\u76ee\u7ba1\u7406\u6a21\u5757\u4f7f\u7528\u7684 pom \u6587\u4ef6 \n\u251c\u2500\u2500 system-setting                                   # \u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 backend                                      # \u540e\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 frontend                                     # \u524d\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Dockerfile                                   # \u6784\u5efa\u5bb9\u5668\u955c\u50cf\u4f7f\u7528\u7684 dockerfile\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 pom                                          # \u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\u4f7f\u7528\u7684 pom \u6587\u4ef6\n\u251c\u2500\u2500 .gitignore\n\u251c\u2500\u2500 .gitmodules\n\u2514\u2500\u2500 pom.xml                                         # \u6574\u4f53 maven \u9879\u76ee\u4f7f\u7528\u7684 pom \u6587\u4ef6\n
    "},{"location":"dev_manual/#2","title":"2 \u914d\u7f6e\u5f00\u53d1\u73af\u5883","text":""},{"location":"dev_manual/#21","title":"2.1 \u62c9\u53d6\u4ee3\u7801","text":"

    \u9700\u8981\u62c9\u53d6 metersphere \u670d\u52a1\u4ee3\u7801\uff0c\u5e76\u5207\u6362\u5230 v2.10 \u5206\u652f\u3002

    "},{"location":"dev_manual/#22","title":"2.2 \u540e\u7aef","text":"

    \u5728\u542f\u52a8 MeterSphere \u670d\u52a1\u4e4b\u524d\u8981\u5148\u542f\u52a8 Mysql\u3001Redis\u3001Kafka\u3001Minio \u7b49\u670d\u52a1\u3002 MeterSphere \u540e\u7aef\u4f7f\u7528\u4e86 Java \u8bed\u8a00\u7684 Spring Cloud \u6846\u67b6\uff0c\u5e76\u4f7f\u7528 Maven \u4f5c\u4e3a\u9879\u76ee\u7ba1\u7406\u5de5\u5177\u3002\u5f00\u53d1\u8005\u9700\u8981\u5148\u5728\u5f00\u53d1\u73af\u5883\u4e2d\u5b89\u88c5 JDK 17 \u53ca Maven\u3002

    • \u521d\u59cb\u5316\u914d\u7f6e \uff081\uff09\u6570\u636e\u5e93\u521d\u59cb\u5316 MeterSphere \u4f7f\u7528 MySQL \u6570\u636e\u5e93 v8 \u7248\u672c\u3002\u540c\u65f6 MeterSphere \u5bf9\u6570\u636e\u5e93\u90e8\u5206\u914d\u7f6e\u9879\u6709\u8981\u6c42\uff0c\u8bf7\u53c2\u8003\u4e0b\u9644\u7684\u6570\u636e\u5e93\u914d\u7f6e\uff0c\u4fee\u6539\u5f00\u53d1\u73af\u5883\u4e2d\u7684\u6570\u636e\u5e93\u914d\u7f6e\u6587\u4ef6\u3002
    [mysqld]\ndatadir=/var/lib/mysql\n\ndefault-storage-engine=INNODB\ncharacter_set_server=utf8mb4\nlower_case_table_names=1\nperformance_schema=off\ntable_open_cache=128\ntransaction_isolation=READ-COMMITTED\nmax_connections=1000\nmax_connect_errors=6000\nmax_allowed_packet=64M\ninnodb_file_per_table=1\ninnodb_buffer_pool_size=512M\ninnodb_flush_method=O_DIRECT\ninnodb_lock_wait_timeout=1800\n\nserver-id=1\nlog-bin=mysql-bin\nexpire_logs_days = 2\nbinlog_format=mixed\n\ncharacter-set-client-handshake = FALSE\ncharacter-set-server=utf8mb4\ncollation-server=utf8mb4_general_ci\ninit_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci'\n\nsql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\n\nskip-name-resolve\n\n[mysql]\ndefault-character-set=utf8mb4\n\n[mysql.server]\ndefault-character-set=utf8mb4\n

    \u8bf7\u53c2\u8003\u6587\u6863\u4e2d\u7684\u5efa\u5e93\u8bed\u53e5\u521b\u5efa MeterSphere \u4f7f\u7528\u7684\u6570\u636e\u5e93\uff0cMeterSphere \u670d\u52a1\u542f\u52a8\u65f6\u4f1a\u81ea\u52a8\u5728\u914d\u7f6e\u7684\u5e93\u4e2d\u521b\u5efa\u6240\u9700\u7684\u8868\u7ed3\u6784\u53ca\u521d\u59cb\u5316\u6570\u636e\u3002

    CREATE DATABASE metersphere_dev /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci *//*!80016 DEFAULT ENCRYPTION='N'*/;\n

    \uff082\uff09MeterSphere \u914d\u7f6e\u6587\u4ef6 MeterSphere \u4f1a\u9ed8\u8ba4\u52a0\u8f7d\u8be5\u8def\u5f84\u4e0b\u7684\u914d\u7f6e\u6587\u4ef6 /opt/metersphere/conf/metersphere.properties\uff0c\u8bf7\u53c2\u8003\u4e0b\u5217\u914d\u7f6e\u521b\u5efa\u5bf9\u5e94\u76ee\u5f55\u53ca\u914d\u7f6e\u6587\u4ef6\u3002

    # eureka \u914d\u7f6e\neureka.client.service-url.defaultZone=http://localhost:8761/eureka/\n\n\n# \u6570\u636e\u5e93\u914d\u7f6e\nspring.datasource.url=jdbc:mysql://localhost:3306/metersphere_dev?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false\nspring.datasource.username=root\nspring.datasource.password=Password123@mysql\n\n\n# kafka \u914d\u7f6e\uff0cnode-controller \u4ee5\u53ca data-streaming \u670d\u52a1\u9700\u8981\u4f7f\u7528 kafka \u8fdb\u884c\u6d4b\u8bd5\u7ed3\u679c\u7684\u6536\u96c6\u548c\u5904\u7406\nkafka.partitions=1\nkafka.replicas=1\nkafka.topic=JMETER_METRICS\nkafka.test.topic=JMETER_TESTS\nkafka.bootstrap-servers=127.0.0.1:9092\nkafka.log.topic=JMETER_LOGS\nkafka.report.topic=JMETER_REPORT\n\n# node-controller \u6240\u4f7f\u7528\u7684 jmeter \u955c\u50cf\u7248\u672c\njmeter.image=registry.cn-qingdao.aliyuncs.com/metersphere/jmeter-master:5.5-ms7-jdk17\n\n# TCP Mock \u7aef\u53e3\u8303\u56f4\ntcp.mock.port=10000-10010\n\n# Redis \u914d\u7f6e\nspring.redis.host=localhost\nspring.session.store-type=redis\nspring.redis.port=6379\nspring.redis.password=Password123@redis\n\n\n# \u542f\u52a8\u6a21\u5f0f\uff0clcoal \u8868\u793a\u4ee5\u672c\u5730\u5f00\u53d1\u6a21\u5f0f\u542f\u52a8\nrun.mode=local\n\n# minio \u914d\u7f6e\nminio.endpoint=http://localhost:9000\nminio.accessKey=admin\nminio.secretKey=Password123@minio\n\n## CAS\n#cas.client.name=MS_SERVER\n## CAS SERVER URL\n#cas.server.url=http://xxx/cas\n## METERSPHERE SERVER URL\n#cas.client.url=http://IP:8081                          \n

    \uff083\uff09Redis \u914d\u7f6e\u6587\u4ef6 MeterSphere \u4f1a\u9ed8\u8ba4\u52a0\u8f7d\u8be5\u8def\u5f84\u4e0b\u7684\u914d\u7f6e\u6587\u4ef6 /opt/metersphere/conf/redisson.yml\uff0c\u8bf7\u53c2\u8003\u4e0b\u5217\u914d\u7f6e\u521b\u5efa\u5bf9\u5e94\u76ee\u5f55\u53ca\u914d\u7f6e\u6587\u4ef6\u3002

    # Redis \u914d\u7f6e\nsingleServerConfig:\npassword: Password123@redis\naddress: \"redis://localhost:6379\"\ndatabase: 1\n

    \uff084\uff09\u9879\u76ee\u6253\u5305

    \u5728\u9879\u76ee\u6839\u76ee\u5f55\u4e0b\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4

    1. \u4f9d\u8d56\u6253\u5305\n# parent pom \u5b89\u88c5\u5230\u672c\u5730\u4ed3\u5e93, sdk \u4e5f\u8fdb\u884c\u5b89\u88c5\n./mvnw install -N\n./mvnw clean install -pl framework,framework/sdk-parent,framework/sdk-parent/domain,framework/sdk-parent/sdk,framework/sdk-parent/xpack-interface,framework/sdk-parent/jmeter\n\n#  \u5982\u679c\u662f\u4f01\u4e1a\u7248\u672c \u9700\u8981\u52a0\u4e0a  framework/sdk-parent/xpack-interface\n\n2. \u6574\u4f53\u6253\u5305\n./mvnw clean package\n

    • \u542f\u52a8\u987a\u5e8f \u5148\u542f\u52a8 eureka \u670d\u52a1\uff0c\u518d\u542f\u52a8 system-setting\uff0c\u5230\u8fd9\u4e00\u6b65\u53ef\u4ee5\u542f\u52a8\u6210\u529f\uff0c\u53ef\u4ee5\u8bbf\u95ee\u9875\u9762\u4e86\u3002

    \u5982\u679c\u8981\u8fdb\u884c\u591a\u6a21\u5757\u8054\u8c03\u7684\u8bdd\u9700\u8981\u542f\u52a8 gateway \u548c\u5176\u4ed6\u670d\u52a1\uff0c\u53ef\u4ee5\u901a\u8fc7 eureka \u67e5\u770b\u670d\u52a1\u4fe1\u606f\uff0c\u6ce8\u518c\u6210\u529f\uff0c\u5c31\u53ef\u4ee5\u591a\u6a21\u5757\u8054\u8c03\u4e86\u3002

    • \u542f\u52a8 \u8fd0\u884c\u67d0\u4e00\u6a21\u5757\uff0c\u6bd4\u5982 \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\uff08test-track\uff09,\u9009\u62e9 test-track \u7684 Spring Boot \u542f\u52a8\u9879\uff0c\u76f4\u63a5\u542f\u52a8\u5373\u53ef\u3002
    "},{"location":"dev_manual/#23","title":"2.3 \u524d\u7aef","text":"

    MeterSphere \u524d\u7aef\u4f7f\u7528\u4e86 Vue.js \u4f5c\u4e3a\u524d\u7aef\u6846\u67b6\uff0cElementUI \u4f5c\u4e3a UI \u6846\u67b6\uff0c\u5e76\u4f7f\u7528 npm \u4f5c\u4e3a\u5305\u7ba1\u7406\u5de5\u5177\u3002\u5f00\u53d1\u8005\u8bf7\u5148\u4e0b\u8f7d Node.js \u4f5c\u4e3a\u8fd0\u884c\u73af\u5883\uff0cIDEA \u7528\u6237\u5efa\u8bae\u5b89\u88c5 Vue.js \u63d2\u4ef6\uff0c\u4fbf\u4e8e\u5f00\u53d1\u3002

    • \u521d\u59cb\u5316\u914d\u7f6e \u8fdb\u5165 metersphere-server/test-track/frontend/ \u76ee\u5f55\uff0c\u6267\u884c\u547d\u4ee4npm install\u5b89\u88c5\u76f8\u5173\u524d\u7aef\u7ec4\u4ef6\u3002
    • \u8fd0\u884c\u524d\u7aef\u670d\u52a1 \u8fdb\u5165\u5230 metersphere-server/test-track/frontend/ \u76ee\u5f55\uff0c\u6267\u884c\u547d\u4ee4npm run track\uff08\u5176\u4ed6\u5fae\u670d\u52a1\u53c2\u8003\u5fae\u670d\u52a1\u76ee\u5f55\u4e0b\u5bf9\u5e94\u7684 package.json\uff09\u542f\u52a8\u524d\u7aef\u670d\u52a1\u3002
    "},{"location":"enterprise/","title":"Enterprise","text":"
    • \u7533\u8bf7\u4f01\u4e1a\u7248\u8bd5\u7528

    \u6ce8: \u4f01\u4e1a\u7248\u652f\u6301\u79bb\u7ebf\u5b89\u88c5\uff0c\u7533\u8bf7\u901a\u8fc7\u540e\u4f1a\u63d0\u4f9b\u9ad8\u901f\u4e0b\u8f7d\u94fe\u63a5\u3002

    "},{"location":"system_arch/","title":"\u7cfb\u7edf\u67b6\u6784","text":""},{"location":"system_arch/#1","title":"1 \u6574\u4f53\u67b6\u6784","text":"

    \u7ec4\u4ef6\u8bf4\u660e

    • Chrome \u6d4f\u89c8\u5668\u5f55\u5236\u63d2\u4ef6: \u5f55\u5236 Web \u8bbf\u95ee\u8bf7\u6c42\u751f\u6210 JMeter \u811a\u672c\u5e76\u5bfc\u5165\u5230 MeterSphere \u4e2d\u7528\u4e8e\u63a5\u53e3\u6d4b\u8bd5\u53ca\u6027\u80fd\u6d4b\u8bd5\u3002
    • Jenkins \u63d2\u4ef6: \u5728 Jenkins \u4e2d\u5b89\u88c5\u8be5\u63d2\u4ef6\u540e\u53ef\u5c06 Jenkins \u4efb\u52a1\u4e2d\u6dfb\u52a0 MeterSphere \u6784\u5efa\u73af\u8282,\u7528\u6237\u5728\u8be5\u6784\u5efa\u73af\u8282\u4e2d\u914d\u7f6e MeterSphere \u5e73\u53f0\u7684\u8ba4\u8bc1\u4fe1\u606f\u540e,\u53ef\u9009\u62e9\u6307\u5b9a\u9879\u76ee\u4e0b\u7684\u63a5\u53e3/\u6027\u80fd\u6d4b\u8bd5\u8fdb\u884c\u89e6\u53d1\u6267\u884c\u3002
    • IDEA \u63d2\u4ef6: IDEA \u63d2\u4ef6,\u57fa\u4e8ejavadoc\u89e3\u6790,\u80fd\u591f\u81ea\u52a8\u8bc6\u522b\u7c7b,\u540c\u6b65\u63a5\u53e3\u5b9a\u4e49\u5230 MeterSphere\u3002
    • GateWay: API \u7f51\u5173\u9879\u76ee\u3002
    • Eureka: \u670d\u52a1\u6ce8\u518c\u4e2d\u5fc3\u3002
    • \u5de5\u4f5c\u53f0: MeterSphere \u9879\u76ee\u7684\u5de5\u4f5c\u53f0\u6a21\u5757\u3002
    • \u9879\u76ee\u8bbe\u7f6e: MeterSphere \u9879\u76ee\u7684\u9879\u76ee\u8bbe\u7f6e\u6a21\u5757\u3002
    • \u6d4b\u8bd5\u8ddf\u8e2a: MeterSphere \u9879\u76ee\u7684\u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\u3002
    • \u63a5\u53e3\u6d4b\u8bd5: MeterSphere \u9879\u76ee\u7684\u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\u3002
    • UI \u6d4b\u8bd5: MeterSphere \u9879\u76ee\u7684UI \u6d4b\u8bd5\u6a21\u5757\u3002
    • \u6027\u80fd\u6d4b\u8bd5: MeterSphere \u9879\u76ee\u7684\u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\u3002
    • \u7cfb\u7edf\u8bbe\u7f6e: MeterSphere \u9879\u76ee\u7684\u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\u3002
    • \u62a5\u544a\u7edf\u8ba1: MeterSphere \u9879\u76ee\u7684\u62a5\u544a\u7edf\u8ba1\u6a21\u5757\u3002
    • Node Controller: \u4e3a\u63a5\u53e3\u6216\u8005\u6027\u80fd\u6d4b\u8bd5\u63d0\u4f9b\u72ec\u7acb\u8282\u70b9\u7c7b\u578b\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\u3002
    • MySQL: MeterSphere \u9879\u76ee\u7684\u4e3b\u8981\u6570\u636e\u5747\u5b58\u50a8\u5728 MySQL\u3002
    • Redis: MeterSphere \u9879\u76ee\u767b\u5f55\u7528\u6237\u7684 Session \u548c\u4efb\u52a1\u961f\u5217\u4fe1\u606f\u5b58\u50a8\u5728 Redis\u3002
    • Minio: MeterSphere \u9879\u76ee\u7684\u5206\u5e03\u5f0f\u5bf9\u8c61\u5b58\u50a8\u6a21\u5757\u3002
    • Kafka: \u63a5\u6536 JMeter \u4ea7\u751f\u7684\u63a5\u53e3\u6d4b\u8bd5\u6216\u8005\u6027\u80fd\u6d4b\u8bd5\u7684\u7ed3\u679c\u6570\u636e\u3002
    • Prometheus: \u6536\u96c6\u538b\u529b\u673a\u53ca\u88ab\u6d4b\u7cfb\u7edf\u7684\u76d1\u63a7\u6570\u636e\u3002
    • Data Streaming: \u4ece Kafka \u4e2d\u83b7\u53d6\u63a5\u53e3\u6d4b\u8bd5\u6216\u8005\u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u8fdb\u884c\u5904\u7406\u540e\u5b58\u5165 MySQL \u6570\u636e\u5e93\u3002
    • Docker Engine: \u4e3a Node Controller \u63d0\u4f9b JMeter \u5bb9\u5668\u8fd0\u884c\u73af\u5883\u3002
    • Selenium Grid: \u4e3a UI\u81ea\u52a8\u5316\u6d4b\u8bd5\u63d0\u4f9b\u8fd0\u884c\u73af\u5883,\u652f\u6301\u5206\u5e03\u5f0f\u62d3\u5c55\u3002

    \u5404\u4e2a\u7ec4\u4ef6\u95f4\u7684\u5173\u7cfb\u53ef\u53c2\u8003\u4e0b\u56fe\uff1a

    "},{"location":"system_arch/#2","title":"2 \u7ba1\u7406\u6a21\u578b","text":"

    MeterSphere \u63d0\u4f9b\u4e86\u591a\u79df\u6237\u3001\u591a\u89d2\u8272\u7684\u7ba1\u7406\u6a21\u578b, \u7528\u6237\u53ef\u6839\u636e\u6240\u5728\u56e2\u961f\u7684\u5b9e\u9645\u60c5\u51b5\u8fdb\u884c\u7075\u6d3b\u7684\u79df\u6237\u4f53\u7cfb\u6620\u5c04\u3002

    • \u7cfb\u7edf: \u6bcf\u4e2a\u72ec\u7acb\u90e8\u7f72\u7684 MeterSphere \u5373\u79f0\u4e3a\u4e00\u5957\u7cfb\u7edf\u3002
    • \u7cfb\u7edf\u7ea7\u89d2\u8272: \u89d2\u8272\u7684\u6743\u9650\u8303\u56f4\u4e3a\u6574\u4e2a\u7cfb\u7edf, \u5e38\u89c1\u7684\u89d2\u8272\u5982\u7cfb\u7edf\u7ba1\u7406\u5458, \u53ef\u7ba1\u7406\u6574\u4e2a\u7cfb\u7edf\u5185\u7684\u79df\u6237\u3001\u7528\u6237\u53ca\u6d4b\u8bd5\u8d44\u6e90, \u540c\u65f6\u53ef\u53d8\u66f4\u4fee\u6539\u7cfb\u7edf\u7ea7\u914d\u7f6e\u53c2\u6570\u3002
    • \u5de5\u4f5c\u7a7a\u95f4: MeterSphere \u4e2d\u7684\u4e00\u7ea7\u79df\u6237, \u53ef\u6620\u5c04\u4e3a\u4e0d\u540c\u7684\u90e8\u95e8\u6216\u8005\u4ea7\u54c1\u7ebf\u3002
    • \u5de5\u4f5c\u7a7a\u95f4\u7ea7\u89d2\u8272: \u89d2\u8272\u7684\u6743\u9650\u8303\u56f4\u9650\u5b9a\u5728\u67d0\u4e2a\u5de5\u4f5c\u7a7a\u95f4\u5f53\u4e2d, \u5e38\u89c1\u7684\u89d2\u8272\u5982\u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406\u5458\u53ca\u666e\u901a\u7528\u6237, \u53ef\u5728\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u521b\u5efa\u9879\u76ee\u3001\u53d1\u8d77\u6d4b\u8bd5\u3001\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u7b49\u3002
    • \u9879\u76ee: \u4ee5\u9879\u76ee\u7eac\u5ea6\u7ba1\u7406\u5404\u79cd\u7c7b\u578b\u6d4b\u8bd5\u6570\u636e\uff0c\u5404\u4e2a\u9879\u76ee\u95f4\u6570\u636e\u9694\u79bb\u3002
    • \u9879\u76ee\u7ea7\u89d2\u8272: \u89d2\u8272\u7684\u6743\u9650\u8303\u56f4\u9650\u5b9a\u5728\u67d0\u4e2a\u9879\u76ee\u5f53\u4e2d, \u5e38\u89c1\u7684\u89d2\u8272\u5982\u9879\u76ee\u7ba1\u7406\u5458\u3001\u9879\u76ee\u6210\u5458\u3001\u53ea\u8bfb\u7528\u6237\u7b49\uff0c\u53ef\u5728\u9879\u76ee\u4e2d\u521b\u5efa\u3001\u4fee\u6539\u3001\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\u3001\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3001\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3001\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3001\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u7b49\u3002
    • \u81ea\u5b9a\u4e49\u89d2\u8272: \u53ef\u521b\u5efa\u4e0d\u540c\u6240\u5c5e\u7c7b\u578b\u7684\u81ea\u5b9a\u4e49\u89d2\u8272\uff0c\u6ee1\u8db3\u66f4\u591a\u6837\u5316\u7684\u56e2\u961f\u7ba1\u7406\u53ca\u5728\u7ebf\u534f\u4f5c\u3002

    "},{"location":"system_arch/#3","title":"3 \u6280\u672f\u6808","text":"
    • \u540e\u7aef: Spring Cloud
    • \u524d\u7aef: Vue.js
    • \u4e2d\u95f4\u4ef6: MySQL, Kafka, Redis, Minio, Prometheus
    • \u57fa\u7840\u8bbe\u65bd: Docker, Kubernetes
    • \u6d4b\u8bd5\u5f15\u64ce: JMeter
    "},{"location":"about/changelog/","title":"\u66f4\u65b0\u65e5\u5fd7","text":""},{"location":"about/changelog/#_2","title":"\u7248\u672c\u8bf4\u660e","text":"

    MeterSphere \u7248\u672c\u53f7\u547d\u540d\u89c4\u5219\u4e3a\uff1a v \u5927\u7248\u672c\u53f7.\u529f\u80fd\u7248\u672c\u53f7.\u4fee\u590d\u7248\u672c\u53f7\uff0cMeterSphere \u6309\u6708\u8fed\u4ee3\u53d1\u5e03\u529f\u80fd\u7248\u672c\uff0c\u5e76\u6309\u5e74\u53d1\u5e03 LTS\uff08Long Term Support\uff09\u7248\u672c\uff0c\u76ee\u524d\u5df2\u7ecf\u53d1\u5e03\u4e86\u4e09\u4e2a LTS \u7248\u672c\uff1a

    • v1.10-lts\uff1a\u53d1\u5e03\u65f6\u95f4\u4e3a 2021 \u5e74 5 \u6708 27 \u65e5\uff0c\u76ee\u524d\u5df2\u7ecf\u505c\u6b62\u7ef4\u62a4\u3002
    • v1.20-lts\uff1a\u53d1\u5e03\u65f6\u95f4\u4e3a 2022 \u5e74 4 \u6708 27 \u65e5\uff0c\u76ee\u524d\u4ec5\u8fdb\u884c\u5fc5\u8981\u7684\u5b89\u5168\u7c7b Bug \u4fee\u590d\u548c\u4e25\u91cd Bug \u4fee\u590d\u3002
    • v2.10-lts\uff1a\u53d1\u5e03\u65f6\u95f4\u4e3a 2023 \u5e74 5 \u6708 25 \u65e5\uff0c\u6bcf\u6708\u53d1\u5e03\u5c0f\u7248\u672c\uff0c\u6301\u7eed\u8fdb\u884c Bug \u4fee\u590d\u548c\u90e8\u5206\u529f\u80fd\u7684\u6709\u9650\u4f18\u5316\u3002
    "},{"location":"about/changelog/#v21020-lts","title":"v2.10.20-lts","text":"

    2024\u5e749\u670830\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u65b0\u589e\u529f\u80fd

    • feat: \u652f\u6301\u4f01\u4e1a\u5fae\u4fe1\u3001\u9489\u9489\u3001\u98de\u4e66\u626b\u7801\u767b\u5f55\u529f\u80fd\uff08X-Pack\u589e\u5f3a\u5305\uff09
    • feat: \u652f\u6301\u81ea\u5b9a\u4e49\u4e0a\u4f20\u6587\u4ef6\u5927\u5c0f\u9650\u5236

    \u529f\u80fd\u4f18\u5316

    • refactor: \u652f\u6301\u670d\u52a1\u96c6\u6210\u63d2\u4ef6\u83b7\u53d6\u300c\u4e2a\u4eba\u4fe1\u606f\u300d\u76f8\u5173\u8ba4\u8bc1\u4fe1\u606f
    • refactor: \u7b2c\u4e09\u65b9\u8ba4\u8bc1\u540e\u9875\u9762\u8df3\u8f6c\u4f18\u5316

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u56de\u6536\u7ad9\u4e2d\u7684\u6d4b\u8bd5\u7528\u4f8b\u65e0\u6cd5\u6062\u590d\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u5168\u9009\u5e76\u884c\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u6027\u80fd\u6d4b\u8bd5\u90e8\u7f72\u591a\u4e2a\u8282\u70b9\u65f6\u51fa\u73b0time sync \u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u56e0\u7528\u6237\u5220\u9664\u5bfc\u81f4\u9875\u9762\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u8def\u5f84\u5339\u914d\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dSwagger\u5bfc\u5165\u65f6\u90e8\u5206\u9ed8\u8ba4\u503c\u672a\u5bfc\u5165\u7684\u95ee\u9898
    • fix(\u9879\u76ee\u7ba1\u7406): \u4fee\u590d\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u6267\u884c\u7b2c\u4e09\u65b9jar\u5305\u5931\u8d25\u7684\u7f3a\u9677
    • fix(\u5de5\u4f5c\u53f0): \u4fee\u590d\u4e00\u952e\u540c\u6b65\u5f85\u66f4\u65b0\u6309\u94ae\u63d0\u793a\u4fe1\u606f\u9519\u8bef\u95ee\u9898
    "},{"location":"about/changelog/#v21019-lts","title":"v2.10.19-lts","text":"

    2024\u5e748\u670826\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u95ee\u9898\u4fee\u590d

    • fix: \u4fee\u590d\u963f\u91cc\u4e91\u626b\u63cf\u6f0f\u6d1e Spring Framework ETags \u89e3\u6790\u62d2\u7edd\u670d\u52a1\u6f0f\u6d1e\uff08CVE-2024-38809\uff09#32822
    "},{"location":"about/changelog/#v21018-lts","title":"v2.10.18-lts","text":"

    2024\u5e748\u670823\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • feat: \u652f\u6301\u7528\u6237\u8bbe\u7f6e\u9ed8\u8ba4\u8bed\u8a00 in #32516
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u5220\u9664\u8bc4\u5ba1\u540e\u5237\u65b0\u8bc4\u5ba1\u4e2d\u7528\u4f8b\u7684\u72b6\u6001 in #32734
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ddf\u8e2a\u524d\u7aef\u6784\u5efa\u62a5\u9519 in #32779
    • refactor(\u529f\u80fd\u7528\u4f8b): \u7528\u4f8b\u8be6\u60c5\u5bcc\u6587\u672c\u6846\u81ea\u5b9a\u4e49\u5b57\u6bb5\uff0c\u4ece\u53f3\u4fa7\u57fa\u7840\u4fe1\u606f\u79fb\u5230\u5de6\u4fa7 in #32775
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u5faa\u73af\u4f9d\u8d56\u63d0\u793a\u4f18\u5316 in #32777

    \u95ee\u9898\u4fee\u590d

    • fix: \u4fee\u590d\u4e32\u884c\u961f\u5217\u7279\u6b8a\u60c5\u51b5\u91cd\u590d\u6267\u884c\u95ee\u9898 in #32440
    • fix: \u4fee\u590dK8s\u6267\u884c pod \u8fc7\u6ee4\u9519\u8bef in #32442
    • fix: \u4fee\u590d\u914d\u7f6e\u591a\u6570\u636e\u6e90\u7684\u95ee\u9898 in #32564
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u7528\u4f8b\u96c6\u5408\u62a5\u544a\u67e5\u770b\u8be6\u60c5\u62a5\u9519\u6ca1\u6743\u9650 in #32623
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dJSON Schema Integer \u7c7b\u578b\u5904\u7406\u95ee\u9898 in #32679
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dSQL\u6570\u636e\u6e90\u4e3a\u7a7a\u65f6\u65e0\u6cd5\u6536\u5230\u7ed3\u679c\u95ee\u9898 in #32706
    • fix(\u63a5\u53e3\u6d4b\u8bd5): xmind\u5bfc\u5165\u7528\u4f8b\u6821\u9a8c\u91cd\u590d in #32708
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u9009\u4e2d\u6a21\u5757\uff0c\u5207\u6362\u516c\u5171\u7528\u4f8b\u5e93\u518d\u56de\u9000\uff0c\u6570\u636e\u548c\u6a21\u5757\u9009\u4e2d\u663e\u793a\u4e0d\u4e00\u81f4 in #32726
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u7f3a\u9677\u4fee\u6539\u72b6\u6001\u4e0d\u751f\u6548 in #32747
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u5de5\u4f5c\u7a7a\u95f4\u9875\u9762\u6279\u91cf\u6dfb\u52a0\u81f3\u9879\u76ee\u5c55\u793a\u7684\u89d2\u8272\u6709\u8bef in #32771
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u66f4\u65b0\u7f3a\u9677\u81ea\u5b9a\u4e49\u5b57\u6bb5\u540e\uff0c\u7f3a\u9677\u5217\u8868\u7684\u5b57\u6bb5\u503c\u663e\u793a\u4e0d\u6b63\u786e in #32613
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5bcc\u6587\u672c\u6846\u81ea\u5b9a\u4e49\u5b57\u6bb5\u8f93\u5165\u63d0\u793a\u6ca1\u6709\u56fd\u9645\u5316 in #32784
    "},{"location":"about/changelog/#v21017-lts","title":"v2.10.17-lts","text":"

    2024\u5e747\u670826\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • feat(\u6027\u80fd\u6d4b\u8bd5): \u62a5\u544a\u652f\u6301\u5bfc\u51fa\u8be6\u60c5excel in #31992
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u7f16\u8f91\u573a\u666f\u6a21\u5757\u9009\u9879\u6837\u5f0f\u8c03\u6574 in #31879
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u8d85\u65f6\u5904\u7406\u903b\u8f91 in #32042
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u573a\u666f\u66f4\u65b0\u65b9\u6cd5 in #32050
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u53d1\u9001\u901a\u77e5\u65b9\u6cd5\u4f18\u5316 in #32051
    • refactor(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5Git\u4e0b\u8f7d\u91c7\u7528\u6d41\u5f0f\u4e0b\u8f7d\u6cd5 in #32054
    • refactor(\u6d4b\u8bd5\u8ba1\u5212): \u4fee\u6539\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u5165\u53c2\u540d\u79f0 in #32183

    \u95ee\u9898\u4fee\u590d

    • fix(\u901a\u7528\u529f\u80fd): \u4efb\u52a1\u4e2d\u5fc3\u505c\u6b62\u5168\u90e8\uff0c\u6ca1\u6709\u6839\u636e\u8fc7\u6ee4\u6761\u4ef6\u505c\u6b62 in #31951
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5b9e\u65f6\u62a5\u544a\u5206\u4eab\u6709\u6548\u671f\u8ddf\u5e94\u7528\u914d\u7f6e\u4e0d\u5339\u914d in #31941
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u590d\u5236\u7684\u6d4b\u8bd5\u8ba1\u5212\uff0c\u6267\u884c\u7ed3\u679c\u6709\u8bef in #31956
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5bcc\u6587\u672c\u7f16\u8f91\u5668\uff0cxss\u8fc7\u6ee4\u5bfc\u81f4\u6807\u7b7e\u5b57\u7b26\u65e0\u6cd5\u663e\u793a in #31966
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6807\u7b7e\u7b5b\u9009\u540e\uff0c\u6267\u884c\u6279\u91cf\u64cd\u4f5c\u4e0d\u751f\u6548\u95ee\u9898 in #32003
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6807\u7b7e\u7b5b\u9009\u540e\u590d\u5236\u62a5\u9519\u9519\u8bef\u95ee\u9898 in #32025
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u56de\u6536\u7ad9\u6807\u7b7e\u641c\u7d22\u95ee\u9898&\u6807\u7b7e\u5bfc\u81f4\u7684\u6240\u6709\u6279\u91cf\u64cd\u4f5c\u95ee\u9898 in #32027
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6b65\u9aa4\u7c7b\u578b\u4e3a\u6587\u672c\u63cf\u8ff0\u7684\u7528\u4f8b\u5bfc\u5165\u540e\uff0c\u65e0\u6cd5\u67e5\u770b\u53d8\u66f4\u8bb0\u5f55 in #32175
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u8111\u56fe\u5bfc\u5165\u5931\u8d25 in #32210
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u9996\u9875\u6211\u7684\u8bc4\u5ba1\u5217\u8868\u6570\u636e\u6709\u8bef in #32213
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u4fee\u590d\u6267\u884c\u63a5\u53e3\u7528\u4f8b\u7684\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\u811a\u672c\u65f6\u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\u7684\u4e0d\u662f\u4f7f\u7528\u73af\u5883\u7684\u95ee\u9898 in #32218
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u6587\u6863\u7ed3\u6784\u5bfc\u5165\uff0cnull\u503c\u672a\u5c55\u793a\u95ee\u9898 in #32017
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5bfc\u5165\u7528\u6237\u540d\u663e\u793a\u9519\u8bef\u95ee\u9898 in #32018
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u96c6\u5408\u62a5\u544a\u8d85\u65f6\u5904\u7406\u95ee\u9898 in #32040
    • fix(UI\u6d4b\u8bd5): \u4fee\u590d\u6587\u6848\u5b57\u7b26\u4f7f\u7528\u4e0d\u6b63\u786e\u95ee\u9898 in #32231
    "},{"location":"about/changelog/#v21016-lts","title":"v2.10.16-lts","text":"

    2024\u5e746\u670828\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u5217\u8868\u5237\u65b0\u4f18\u5316 in #31265
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u6821\u9a8c\u6743\u9650 in #31288
    • refactor(\u7cfb\u7edf\u8bbe\u7f6e): \u4f18\u5316\u7279\u6b8a\u5b57\u7b26\u62a5\u9519\u7684\u7f3a\u9677 in #31297
    • refactor(\u7cfb\u7edf\u8bbe\u7f6e): \u4f18\u5316\u9879\u76ee\u4e0b\u62c9\u6846\u663e\u793a in #31385

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u4fee\u590d\u6279\u91cf\u4fee\u6539\u73af\u5883\u7684\u95ee\u9898 in #31268
    • fix(\u9879\u76ee\u7ba1\u7406): \u4fee\u590d\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u65e0\u6cd5\u4f7f\u7528\u4e09\u65b9jar\u5305\u7684\u7f3a\u9677 in #31260
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8bc4\u5ba1\u6253\u5f00\u7528\u4f8b\u62a5\u9519 in #31389
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u8bc4\u5ba1\u5207\u6362\u4e0a\u4e00\u6761\u4e0b\u4e00\u6761\uff0c\u8bc4\u8bba\u663e\u793a\u6709\u8bef in #31573
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u6267\u884c\u4fdd\u5b58\u540e\uff0c\u4e4b\u524d\u8bc4\u8bba\u4e2d\u7684\u56fe\u7247\u4f1a\u88ab\u5220\u9664 in #31582
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5b9e\u65f6\u62a5\u544a\u5206\u4eab\u6709\u6548\u671f\u8ddf\u5e94\u7528\u914d\u7f6e\u4e0d\u5339\u914d in #31602
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u6a21\u677f\u6587\u672c\u63cf\u8ff0\u9ed8\u8ba4\u503c\u672a\u8bbe\u7f6e in #31804
    • fix: \u4fee\u590djenkins\u6267\u884c\u63a5\u53e3\u573a\u666f\u4e0d\u80fd\u6b63\u5e38\u67e5\u770b\u7ed3\u679c\u7684\u95ee\u9898 in #31269
    "},{"location":"about/changelog/#v21015-lts","title":"v2.10.15-lts","text":"

    2024\u5e745\u670830\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u7f16\u8f91\u65f6\u589e\u52a0\u7248\u672c\u7f16\u8f91
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): xmind\u7528\u4f8b\u5bfc\u5165\uff0c\u6ca1\u6709\u5408\u6cd5\u7684\u7528\u4f8b\u63d0\u793a\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f18\u5316\u4e32\u884c\u6d4b\u8bd5\u8ba1\u5212\u961f\u5217\u7684\u50a8\u5b58\u65b9\u6cd5

    \u95ee\u9898\u4fee\u590d

    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590djsonSchema\u53c2\u6570\u4e0d\u7b26\u5408\u9884\u671f\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dmock\u540e\u7f6e\u811a\u672c\u89e3\u6790\u53c2\u6570\u5931\u8d25\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u521b\u5efa\u573a\u666f\u63d0\u793a\u65e0\u64cd\u4f5c\u6743\u9650\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5168\u5c40\u524d\u540e\u7f6e\u6b65\u9aa4\u5185\u4f4d\u7f6e\u4e0d\u5bf9\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u8d85\u7ea7\u7ba1\u7406\u5458\u4f1a\u63d0\u793a\u65e0\u64cd\u4f5c\u6743\u9650\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u9996\u9875\u4e03\u5929\u5185\u66f4\u65b0\u63a5\u53e3\u8df3\u8f6c\u4e0d\u8fc7\u53bb\u7684\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u7279\u6b8a\u7b26\u53f7\u5bfc\u81f4get\u8bf7\u6c42\u62a5\u9519\u7684\u7f3a\u9677
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u7528\u6237\u8d8a\u6743\u8bbf\u95ee\u7684\u90e8\u5206\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u5bfc\u51fa\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u8111\u56fe\u4fdd\u5b58\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8865\u5145\u90e8\u5206\u63a5\u53e3\u6743\u9650\u6821\u9a8c
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u8111\u56fe\u8865\u5145\u6743\u9650\u6821\u9a8c
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u5bfc\u5165\u66f4\u65b0\u6ca1\u6709\u89e6\u53d1\u91cd\u65b0\u63d0\u5ba1
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u4fee\u6539\u7248\u672c\u65f6\u9690\u85cf\u672a\u5f00\u542f\u7684\u7248\u672c
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6279\u91cf\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u521b\u5efa\u4eba\u4e0d\u5bf9\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u5bfc\u5165\u5931\u8d25\u540e\u70b9\u51fb\u7ee7\u7eed\u5bfc\u5165\uff0c\u6ca1\u6709\u5c06\u5408\u89c4\u6570\u636e\u5bfc\u5165
    • fix(\u7f3a\u9677\u7ba1\u7406): \u7f3a\u9677\u8868\u5934\u589e\u52a0\u5b57\u6bb5\u8bf4\u660e
    • fix(\u9879\u76ee\u7ba1\u7406): \u4fee\u590d\u73af\u5883\u4fdd\u5b58\u5168\u5c40\u53c2\u6570\u65e0\u6548\u7684\u7f3a\u9677
    "},{"location":"about/changelog/#v21014-lts","title":"v2.10.14-lts","text":"

    2024\u5e744\u670825\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • feat(\u63a5\u53e3\u6d4b\u8bd5): case\u9875\u9762\u589e\u52a0\u63a5\u53e3id\u5c55\u793a\u5e76\u652f\u6301\u8df3\u8f6c
    • feat(\u7cfb\u7edf\u8bbe\u7f6e): \u8d85\u7ea7\u7ba1\u7406\u5458\u7684\u9879\u76ee\u5217\u8868\u8fdb\u884c\u6392\u5e8f\u5904\u7406
    • feat(\u7cfb\u7edf\u8bbe\u7f6e): \u9879\u76ee\u9009\u62e9\u5668\u4e2d\u7684\u5907\u9009\u9879\u76ee\u66f4\u6362\u6392\u5e8f\u65b9\u6cd5\uff1a\u5f53\u524d\u4f7f\u7528\u9879\u76ee\u6392\u7b2c\u4e00\uff0c\u5176\u4f59\u6309\u7167\u540d\u79f0\u6392\u5e8f

    \u95ee\u9898\u4fee\u590d

    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u67e5\u8be2\u8d8a\u6743\u7684\u7f3a\u9677
    • fix(\u9879\u76ee\u7ba1\u7406): \u4fee\u590d\u73af\u5883\u53c2\u6570\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u4e0d\u5c55\u793a\u529f\u80fd\u7528\u4f8b\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u4e0d\u540c\u72b6\u6001\u7684\u7528\u4f8b\u6ca1\u6709\u5c55\u793a\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5220\u9664\u73af\u5883\u53d8\u91cf\uff0c\u5bfc\u81f4\u73af\u5883\u53d8\u91cf\u4e0d\u663e\u793a\u7684\u7f3a\u9677
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u62a5\u544a\u9875\u9762\u53bb\u6389\u5220\u9664\u6743\u9650\u4e0d\u80fd\u6b63\u5e38\u70b9\u51fb\u91cd\u65b0\u6267\u884c\u3001\u5206\u4eab\u3001\u5bfc\u51fa\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u5173\u8054\u529f\u80fd\u7528\u4f8b\uff0c\u6309\u7167\u81ea\u5b9a\u4e49ID\u7b5b\u9009\u540e\u5173\u8054\u6570\u636e\u4e0e\u7b5b\u9009\u6570\u636e\u5bf9\u4e0d\u4e0a
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u7528\u4f8b\u7f16\u8f91\u5b9e\u9645\u7ed3\u679c\u5bcc\u6587\u672c\u6846\u65f6\u4e0a\u4f20\u56fe\u7247\uff0c\u4e00\u6bb5\u65f6\u95f4\u540e\u56fe\u7247\u65e0\u6cd5\u67e5\u770b
    "},{"location":"about/changelog/#v21013-lts","title":"v2.10.13-lts","text":"

    2024\u5e743\u670828\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • feat(\u63a5\u53e3\u6d4b\u8bd5): case\u9875\u9762\u589e\u52a0\u63a5\u53e3id\u5c55\u793a\u5e76\u652f\u6301\u8df3\u8f6c
    • feat(\u7cfb\u7edf\u8bbe\u7f6e): \u8d85\u7ea7\u7ba1\u7406\u5458\u7684\u9879\u76ee\u5217\u8868\u8fdb\u884c\u6392\u5e8f\u5904\u7406
    • feat(\u7cfb\u7edf\u8bbe\u7f6e): \u9879\u76ee\u9009\u62e9\u5668\u4e2d\u7684\u5907\u9009\u9879\u76ee\u66f4\u6362\u6392\u5e8f\u65b9\u6cd5\uff1a\u5f53\u524d\u4f7f\u7528\u9879\u76ee\u6392\u7b2c\u4e00\uff0c\u5176\u4f59\u6309\u7167\u540d\u79f0\u6392\u5e8f

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u4e2dJenkins\u6267\u884c\u65e0\u6cd5\u8bfb\u53d6\u5df2\u4fdd\u5b58\u8fc7\u7684\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u90e8\u5206\u4fe1\u606f\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6a21\u5757\u6811\u4ea4\u4e92\u6837\u5f0f\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8ba1\u5212\u5de6\u4fa7\u6a21\u5757\u6811\u4ea4\u4e92\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5217\u8868\u6682\u65e0\u6570\u636e\u5c55\u793a\u6837\u5f0f\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8bc4\u5ba1\u8de8\u9879\u76ee\u5173\u8054\u7528\u4f8b\u6a21\u5757\u4e3a\u7a7a
    • fix(\u7528\u4f8b\u8bc4\u5ba1): \u5173\u8054\u8de8\u9879\u76ee\u7528\u4f8b\u6a21\u5757\u5c55\u793a\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u538b\u529b\u914d\u7f6e\u65f6\u56fa\u5b9a\u8282\u70b9\u548c\u81ea\u5b9a\u4e49\u914d\u7f6e\u62a5\u9519\u524d\u7aef\u5361\u4f4f\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u4e2d\u7684\u81ea\u5b9a\u4e49\u8bf7\u6c42\u6b65\u9aa4\u5728\u67d0\u4e9b\u6761\u4ef6\u4e0b\u4fee\u6539\u5730\u5740\uff0c\u4e0d\u4f1a\u8986\u76d6\u5230\u63a5\u53e3\uff0c\u4e5f\u4e0d\u4f1a\u5f71\u54cd\u63a5\u53e3\u8986\u76d6\u7387\u7684\u95ee\u9898
    "},{"location":"about/changelog/#v21012-lts","title":"v2.10.12-lts","text":"

    2024\u5e742\u670829\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u8de8\u9879\u76ee\u8bc1\u4e66\u914d\u7f6e\u9694\u79bb\u5f00
    • refactor(\u6d88\u606f\u901a\u77e5): \u4f18\u5316\u6d88\u606f\u901a\u77e5\u6a21\u7248\u5b57\u6bb5\u542b\u4e49
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u7528\u4f8b\u7f16\u8f91\u9875\u9762\u6837\u5f0f\u4f18\u5316

    \u95ee\u9898\u4fee\u590d

    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u81ea\u5b9a\u4e49sql\u5207\u6362\u73af\u5883\uff0c\u6570\u636e\u6e90\u6ca1\u6709\u5207\u6362\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6587\u6863\u6253\u5f00\u62a5\u9519\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u6d4f\u89c8\u5668\u63d2\u4ef6\u5f55\u5236\u6587\u4ef6\u5bfc\u5165\u5e73\u53f0\u540e\u6267\u884c\u73af\u5883\u62a5\u9519\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u53bb\u9664\u8d44\u6e90\u6c60\u914d\u7f6e\u955c\u50cf\u65f6\u4e24\u8fb9\u7684\u7a7a\u683c
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u6d4b\u8bd5\u8ba1\u5212\u5728\u4fee\u6539\u8fd0\u884c\u914d\u7f6e\u65f6\uff0c\u4e0d\u4f1a\u5f71\u54cd\u5230\u5176\u5b83\u7684\u6d4b\u8bd5\u8ba1\u5212
    "},{"location":"about/changelog/#v21011-lts","title":"v2.10.11-lts","text":"

    2024\u5e741\u670824\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u65b0\u589e\u529f\u80fd

    • feat(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u9ad8\u7ea7\u914d\u7f6e\u589e\u52a0\u9009\u9879
    • feat(\u6027\u80fd\u6d4b\u8bd5): \u62a5\u544a\u91c7\u6837\u652f\u6301\u663e\u793a\u63a5\u53e3\u8fd4\u56de\u6570\u636e\u7c7b\u578b\u4e3a\u56fe\u7247

    \u529f\u80fd\u4f18\u5316

    • refactor(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u4e0b\u8f7dzip\u4f7f\u7528\u6d41\u4e0b\u8f7d
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u6539\u573a\u666f\u8f6c\u6027\u80fd\u65f6\u90e8\u5206csv\u6587\u4ef6\u65e0\u6cd5\u89e3\u6790\u7684\u95ee\u9898
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ddf\u8e2a\u7684\u81ea\u52a8\u6e05\u7406\u62a5\u544a\u6570\u636e\u91c7\u7528\u6279\u91cf\u5904\u7406\uff0c\u540c\u65f6\u589e\u52a0\u670d\u52a1\u542f\u52a8\u9879\uff0c\u9488\u5bf9\u4e4b\u524d\u6ca1\u6709\u5220\u9664\u6210\u529f\u7684\u8d44\u6e90\u62a5\u544a\u8fdb\u884c\u5220\u9664\u5904\u7406

    \u95ee\u9898\u4fee\u590d

    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dv1\u5230v2\u573a\u666f\u6b65\u9aa4\u4e2d\u65ad\u8a00\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u7279\u6b8a\u683c\u5f0f\u7684swagger3\u5bfc\u5165\uff0crest\u53c2\u6570\u4e0d\u663e\u793a\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u5355\u6b65\u9aa4\u8c03\u8bd5\u83b7\u53d6\u4e0d\u5230host\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u5408\u5e76\u5386\u53f2\u9057\u7559\u65ad\u8a00\u6570\u636e
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u5bfc\u5165\uff0c\u539f\u63a5\u53e3\u4e0b\u7684case\u4e0d\u89c1\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5386\u53f2\u6570\u636e\u9020\u6210\u7684\u5f15\u7528\u7684case\u7684\u65ad\u8a00\u663e\u793a\u4e0d\u6b63\u786e\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u70b9\u51fb\u4fdd\u5b58\u5076\u5c14\u62a5\u9519\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\uff0c\u5173\u8054\u4e861.6w\u6761\u7528\u4f8b\uff0c\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u9875\u9762\u5361\u6b7b #28250
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u73af\u5883\u8fc7\u6ee4\u4e0d\u751f\u6548\u7684\u7f3a\u9677
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u6027\u80fd\u6d4b\u8bd5\u4e0d\u663e\u793a\u6587\u672c\u5185\u5bb9\u7684\u7f3a\u9677
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u73af\u5883\u53d8\u91cf\u8fc7\u6ee4\u540e\u7684\u6dfb\u52a0\u6709\u95ee\u9898\u7684\u7f3a\u9677
    • fix(\u9879\u76ee\u7ba1\u7406): \u4fee\u590d\u73af\u5883\u53d8\u91cf\u6309\u5e94\u7528\u573a\u666f\u7b5b\u9009\u70b9\u51fb\u65e0\u54cd\u5e94\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u4fee\u590d\u591a\u4e2a\u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u540c\u4e00\u4e2a\u573a\u666f\u5e76\u53d1\u6267\u884c\u8bc1\u4e66\u5076\u5c14\u83b7\u53d6\u4e0d\u5230\u95ee\u9898
    • fix\uff1a\u4fee\u590d\u63a5\u53e3\u5bfc\u5165required\u53c2\u6570\u7f3a\u5931\u95ee\u9898
    "},{"location":"about/changelog/#v21010-lts","title":"v2.10.10-lts","text":"

    2023\u5e7412\u670828\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u65b0\u589e\u529f\u80fd

    • feat(UI\u6d4b\u8bd5): \u589e\u52a0\u6587\u4ef6\u4e0a\u4f20\u9650\u5236
    • feat(UI\u6d4b\u8bd5): \u5173\u8054\u6587\u4ef6\u8fc7\u6ee4\u5df2\u5173\u8054\u7684
    • feat(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u8bc4\u5ba1\u652f\u6301\u5de6\u4fa7\u6a21\u5757\u6811
    • feat(\u63a5\u53e3\u6d4b\u8bd5): \u53bb\u9664\u63a5\u53e3\u5b9a\u4e49\u8def\u5f84\u7ed3\u5c3e\u7a7a\u683c
    • feat(\u6d4b\u8bd5\u8ddf\u8e2a): \u8868\u5934\u9ed8\u8ba4\u4e0d\u663e\u793a\u6240\u5c5e\u6a21\u5757\u5b57\u6bb5
    • feat(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u81ea\u52a8\u5316\u8868\u5934\u589e\u52a0\u6240\u5c5e\u6a21\u5757\u5b57\u6bb5
    • feat(\u6d4b\u8bd5\u8ddf\u8e2a): \u672c\u5730\u9644\u4ef6\u8f6c\u5b58\u6587\u4ef6\u5e93\u6392\u9664\u6389\u7b2c\u4e09\u65b9\u5b58\u50a8\u5e93\u6a21\u5757

    \u529f\u80fd\u4f18\u5316

    • refactor(UI\u6d4b\u8bd5): UI\u6307\u4ee4\u8868\u5934\u52a0\u4e0a\u6240\u5c5e\u6a21\u5757\u5b57\u6bb5
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u96c6\u6210tapd\u65f6\u6ca1\u6709\u586b\u5199\u9879\u76eeID\uff0c\u540c\u6b65\u7f3a\u9677\u9519\u8bef\u4fe1\u606f\u4f18\u5316
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4e00\u952e\u540c\u6b65\u5f00\u5173\u9ed8\u8ba4\u5173\u95ed
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u6dfb\u52a0\u811a\u672c\u4ea4\u4e92\u65b9\u5f0f
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u589e\u52a0\u63a5\u53e3\u7528\u4f8b\u4fdd\u5b58\u5e76\u7ee7\u7eed\u6dfb\u52a0\u529f\u80fd
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u81ea\u5b9a\u4e49\u811a\u672c\u76f8\u5173\u6837\u5f0f\u8c03\u6574
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u81ea\u5b9a\u4e49\u8bf7\u6c42\u63a8\u8350\u65ad\u8a00\u5f39\u7a97\u95ee\u9898
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u7528\u4f8b\u4fdd\u5b58\u5e76\u7ee7\u7eed\u6dfb\u52a0\u529f\u80fd\u6837\u5f0f\u8c03\u6574

    \u95ee\u9898\u4fee\u590d

    • fix(\u63a5\u53e3\u6d4b\u8bd5): http\u8bf7\u6c42\u53bb\u9664\u7a7a\u683c
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u521b\u5efaAPI\u5b9a\u4e49\u524d\u7aef\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dJSON-SCHEMA\u7a7a\u7c7b\u578b\u53c2\u6570\u5904\u7406\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dcase\u4fdd\u5b58\u4e0d\u6b63\u5e38\u7684json\u6570\u636e\u540e\uff0c\u4e0d\u663e\u793a\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590ddubbo\u534f\u8bae\u548csql\u534f\u8bae\u663e\u793a\u8d44\u6e90\u6c60\u9519\u8bef\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dmock\u4fdd\u5b5830M\u6570\u636e\u62a5\u9519\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u73af\u5883\u914d\u7f6e-\u901a\u7528\u914d\u7f6e\u76f8\u5173\u95ee\u9898\u4fee\u590d
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u4f9d\u8d56\u5173\u7cfb&\u516c\u5171\u7528\u4f8b\u5e93\u9ad8\u7ea7\u641c\u7d22\u5b8c\u6574id\u67e5\u8be2\u5931\u8d25\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5bfc\u5165postman\u8bf7\u6c42\u7f3a\u5931url\u8def\u5f84\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6a21\u677f\u7ba1\u7406\u5207\u6362tab\uff0c\u8868\u683c\u9519\u4f4d
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5bfc\u5165\u7279\u6b8a\u7684swagger\u6587\u4ef6\uff0c\u4e0d\u663e\u793arest\u53c2\u6570\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u89e3\u51b3\u73af\u5883\u914d\u7f6e\u62a5\u9519&\u66f4\u6539scope\u540e\u7c7b\u578b\u5f02\u5e38
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u62a5\u544a\u6743\u9650\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u9996\u9875\u7edf\u8ba1\u8bc4\u5ba1\u7ed3\u679c\u6709\u8bef
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u6700\u5927\u5316\u663e\u793a\u5f02\u5e38
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u7ba1\u7406\u7528\u4f8b\u6570\u8df3\u8f6c\u8be6\u60c5
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u589e\u52a0\u6240\u5c5e\u8d44\u6e90\u6821\u9a8c
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u73af\u5883\u663e\u793a\u53d8\u91cf\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u6d4b\u8bd5\u589e\u52a0\u6240\u5c5e\u8d44\u6e90\u6821\u9a8c
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6a21\u5757\u6811\u524d\u7aef\u63a7\u5236\u53f0\u62a5\u9519\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u9ad8\u7ea7\u641c\u7d22\u6a21\u5757\u7b5b\u9009
    • fix(\u5b89\u5168): \u4fee\u590d\u6a2a\u5411\u6743\u9650\u6f0f\u6d1eCVE-2023-50267
    "},{"location":"about/changelog/#v2109-lts","title":"v2.10.9-lts","text":"

    2023\u5e7411\u670823\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • feat(\u6d4b\u8bd5\u8ddf\u8e2a): \u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u652f\u6301\u70b9\u51fbid\u8df3\u8f6c
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316mock\u540e\u7f6e\u811a\u672c\u8bbe\u7f6e\u53d8\u91cf\u6a21\u7248
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4e0a\u4f20\u6587\u4ef6\u5927\u5c0f\u7edf\u4e00\u9650\u5236\u4e3a\u4e0d\u8d85\u8fc750MB
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u9690\u85cf\u9664\u6b63\u5219\u63d0\u53d6\u5916\u7684\u81ea\u5b9a\u4e49\u6a21\u7248\u9009\u9879
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5bfc\u5165\u906e\u7f69\u5c42\u6837\u5f0f
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u6539\u63a8\u8350\u65ad\u8a00\u7684\u6837\u5f0f\u5c42\u7ea7
    • style(\u6027\u80fd\u6d4b\u8bd5): \u4f01\u4e1a\u7248\u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u4e2d\u9519\u8bef\u8bb0\u5f55\u8868\u683c\u5b57\u6bb5\u547d\u540d\u4f18\u5316

    \u95ee\u9898\u4fee\u590d

    • fix(UI\u6d4b\u8bd5): \u4fee\u590d\u6279\u91cf\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\u4efb\u52a1\u4e2d\u5fc3UI\u7528\u4f8btriggerMode\u663e\u793a\u9519\u8bef\u95ee\u9898
    • fix(\u5de5\u4f5c\u53f0): \u6211\u7684\u5f85\u529e\u7f3a\u9677\u5217\u8868\u72b6\u6001\u8fc7\u6ee4\u6709\u8bef
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u3010\u63a5\u53e3\u6d4b\u8bd5\u3011github#26757\uff0c\u5d4c\u5957\u6b65\u9aa4\u5c55\u5f00\u54cd\u5e94\u5185\u5bb9\u5b57\u6bb5\u805a\u7126
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u3010\u63a5\u53e3\u6d4b\u8bd5\u3011github#27584\uff0c\u63a5\u53e3\u81ea\u5b9a\u4e49\u811a\u672c\uff0c\u70b9\u51fb\u7f16\u8f91\u540d\u79f0\u540e\uff0c\u81ea\u52a8\u8df3\u5230\u811a\u672c\u7f16\u8f91\u6846,\u4e0d\u80fd\u7f16\u8f91\u811a\u672c\u540d\u79f0
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u6b65\u9aa4\u9650\u5236 200 \u6761\u6b65\u9aa4\u5185\u4f7f\u7528\u539f\u751f\u6e32\u67d3\uff0c\u8d85\u8fc7 200 \u6761\u6b65\u9aa4\u4f7f\u7528\u865a\u62df\u6811\u6e32\u67d3
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u540c\u573a\u666f\u52a0\u8f7d\u591a\u8bc1\u4e66\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u3010\u6d4b\u8bd5\u8ba1\u5212\u3011github#27298\uff0c\u6d4b\u8bd5\u8ba1\u5212\u5de6\u4fa7\u51fa\u73b0\u53cc\u6eda\u52a8\u6761
    • fix(\u4efb\u52a1\u4e2d\u5fc3): \u4fee\u590d\u4efb\u52a1\u4e2d\u5fc3\u70b9\u51fb\u518d\u6b21\u573a\u666f\u62a5\u544a\uff0c\u62a5\u544a\u6ca1\u6709\u6536\u56de\u7684\u7f3a\u9677
    "},{"location":"about/changelog/#v2108-lts","title":"v2.10.8-lts","text":"

    2023\u5e7410\u670819\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u65b0\u589e\u529f\u80fd

    • feat(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u652f\u6301\u7ed3\u679c\u62bd\u6837\u5206\u6790\uff08X-Pack\u589e\u5f3a\u5305\uff09
    • feat(\u6d4b\u8bd5\u8ba1\u5212): \u6d4b\u8bd5\u6267\u884c\u673a\u65b0\u589e\u8fd0\u884c\u72b6\u6001\u548cCPU\u76d1\u63a7

    \u529f\u80fd\u4f18\u5316

    • refactor(\u6027\u80fd\u6d4b\u8bd5): \u8c03\u6574\u6027\u80fd\u6d4b\u8bd5\u8d44\u6e90\u6587\u4ef6\u4e0a\u9650\u6570\u4e3a50\u4e2a\u6587\u4ef6
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): JSONPath\u6b63\u5219\u63d0\u53d6\u652f\u6301\u81ea\u5b9a\u4e49\u5339\u914d\u6a21\u7248
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u8be6\u60c5\u652f\u6301\u901a\u8fc7\u7528\u4f8bID\u5feb\u6377\u8df3\u8f6c

    \u95ee\u9898\u4fee\u590d

    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590djsonSchema\u6570\u636e\u8f6cjson\u987a\u5e8f\u53d1\u751f\u6539\u53d8\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u9996\u9875\u5728\u5076\u53d1\u60c5\u51b5\u4e0b\u63a5\u53e3\u8986\u76d6\u7387\u663e\u793a\u4e3a0\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u7f16\u8f91\u73af\u5883\u4fe1\u606f\u672a\u66f4\u65b0\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5217\u8868\u4e0d\u663e\u793a\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u6309\u94ae\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u672c\u8eab\u65e0\u73af\u5883\u4e14\u5173\u8054\u65f6\u4e5f\u4e0d\u6307\u5b9a\u73af\u5883\u7684\u573a\u666f\u4f1a\u62a5\u9519\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u5bfc\u51fahtml\u65f6\u7684\u90e8\u5206\u9519\u8bef
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u6b65\u9aa4\u4e3a\u6587\u672c\u63cf\u8ff0\uff0c\u5bfc\u51faxmind\u4e3a\u6b65\u9aa4\u63cf\u8ff0\u7684\u5185\u5bb9
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u5bcc\u6587\u672c\u7f16\u8f91\u5668\u652f\u6301\u4e00\u4e9b\u7279\u6b8a\u6807\u7b7e
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u529f\u80fd\u7528\u4f8b\u6dfb\u52a0\u8bc4\u5ba1\u7ed3\u679c\u5217
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5bcc\u6587\u672c\u6846\u5220\u9664\u56fe\u7247\u540e\uff0c\u670d\u52a1\u5668\u4e0a\u7684\u56fe\u7247\u672a\u5220\u9664
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6279\u91cf\u548c\u7f16\u8f91\u5355\u4e2a\u7528\u4f8b\u7684\u6807\u7b7e\u65f6\uff0c\u7edf\u4e00\u957f\u5ea6\u9650\u5236
    • fix(\u7f3a\u9677\u7ba1\u7406): \u7f3a\u9677\u5173\u8054\u7528\u4f8b\u5217\u8868\u5c55\u793a\u6709\u8bef
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u73af\u5883\u901a\u7528\u914d\u7f6e\u7b5b\u9009\u540e\u4fdd\u5b58\u6709\u8bef
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u9879\u76ee\u6d88\u606f\u8bbe\u7f6e\uff0c\u4efb\u52a1\u901a\u77e5\u5207\u6362\u4e8b\u4ef6\u7c7b\u578b\u6a21\u677f\u672a\u540c\u6b65\u66f4\u65b0
    "},{"location":"about/changelog/#v2107-lts","title":"v2.10.7-lts","text":"

    2023\u5e749\u670826\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u65b0\u589e\u529f\u80fd

    • feat(UI\u6d4b\u8bd5): UI\u6d4b\u8bd5\u65b0\u589e\u6d88\u606f\u901a\u77e5\u914d\u7f6e
    • feat(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u8868\u683c\u901a\u8fc7\u7387\u4fdd\u7559\u4e24\u4f4d\u5c0f\u6570

    \u529f\u80fd\u4f18\u5316

    • perf(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875\u7edf\u8ba1\u6548\u7387
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u6587\u6863\u652f\u6301\u5bfc\u51fahtml
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u7528\u4f8b\u8bf7\u6c42\u4f53\u6dfb\u52a0\u89d2\u6807\u7edf\u8ba1
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u9650\u5236\u6d4b\u8bd5\u8ba1\u5212\u5b9a\u65f6\u4efb\u52a1\u5355\u4e00\u6267\u884c
    • refactor(\u9879\u76ee\u7ba1\u7406): \u5168\u5c40XPath\u65ad\u8a00\u652f\u6301html\u5185\u5bb9\u65ad\u8a00

    \u95ee\u9898\u4fee\u590d

    • fix(UI\u6d4b\u8bd5): \u4fee\u590d\u9879\u76ee\u8bbe\u7f6e\u6d88\u606f\u7ba1\u7406/\u63a5\u53e3\u6d4b\u8bd5/UI\u6d4b\u8bd5\u7f16\u8f91\u6d88\u606f\u901a\u77e5\u540e\u53d6\u6d88\uff0c\u4ecd\u663e\u793a\u4fee\u6539\u5185\u5bb9\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): CSV\u9694\u79bb\u52a0\u8f7d\u7684\u540c\u65f6\u517c\u5bb9CSVRead\u51fd\u6570\u53d6\u503c
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u7f16\u8f91\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u540d\u79f0\uff0c\u65e0\u6cd5\u9f20\u6807\u9009\u62e9\u6587\u5b57\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dk8s\u8d44\u6e90\u6c60\u5e76\u53d1\u6570\u8bbe\u7f6e\u4e0d\u751f\u6548\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dswagger\u7279\u6b8a\u6570\u636e\u5bfc\u5165\u5931\u8d25\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dtcp mock\u8bf7\u6c42\u5185\u5bb9\u8d85\u8fc71024\u4e2a\u5b57\u8282\u5931\u8d25\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u751f\u6210\u6d4b\u8bd5\u6570\u636e\u65f6\uff0c\u6700\u5927\u6700\u5c0f\u503c\u9650\u5236\u6ca1\u6709\u6548\u679c\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u62a5\u544a-\u63a5\u53e3\u7528\u4f8b-\u6267\u884c\u7ed3\u679cpending\u72b6\u6001\u540e\u591a\u663e\u793a\u4e86.
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u67e5\u770b\u7528\u4f8b\u7f3a\u9677\u5173\u8054TAB\u6743\u9650\u6821\u9a8c\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u62a5\u544a\u7edf\u8ba1\u548c\u8ba1\u5212\u5217\u8868-\u64cd\u4f5c\u67e5\u770b\u62a5\u544a-\u8fd0\u884c\u73af\u5883\u660e\u7ec6\u524d\u7a7a\u767d\u592a\u591a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5173\u8054\u7528\u4f8b\u5f39\u7a97\u5173\u952e\u5b57\u641c\u7d22\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u72b6\u6001\u6309\u94ae\u6837\u5f0f\u4e0d\u4e00\u81f4
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8d85\u7ea7\u7ba1\u7406\u5458\u7528\u6237\u7ec4\u79fb\u9664\u516c\u5171\u7528\u4f8b\u5e93\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7528\u4f8b\u5217\u8868\u7b5b\u9009\u65f6\u91cd\u7f6e\u5f53\u524d\u9875\u7801
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7528\u4f8b\u5217\u8868\u7b5b\u9009\u540e\u672a\u91cd\u7f6e\u5f53\u524d\u9875\u7801
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u7ba1\u7406\u5173\u8054\u529f\u80fd\u7528\u4f8b\u5f39\u7a97\u672a\u8fc7\u6ee4\u6389\u5df2\u5173\u8054\u7684\u7528\u4f8b
    • fix(\u9879\u76ee\u8bbe\u7f6e): UI\u4efb\u52a1\u901a\u77e5\u521b\u5efa\u4e0d\u663e\u793a\u9ed8\u8ba4\u4eba&\u4fdd\u5b58\u4e00\u76f4\u5b58\u5728\u521b\u5efa\u4eba\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u6d88\u606f\u901a\u77e5UI\u6d88\u606f\u6807\u9898\u4f18\u5316
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u9879\u76ee\u5217\u8868\u5206\u9875\u67e5\u8be2\u53c2\u6570\u8bbe\u7f6e\u6709\u8bef
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u67e5\u627e\u9644\u4ef6\u4e0d\u518d\u9650\u5236\u6587\u4ef6\u683c\u5f0f
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u529f\u80fd\u7528\u4f8b\u5bfc\u51fa\u7cfb\u7edf\u5b57\u6bb5\u6ca1\u6709\u56fd\u9645\u5316\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u5207\u6362\u65b0\u7684\u5de5\u4f5c\u7a7a\u95f4\u670d\u52a1\u96c6\u6210\u914d\u7f6e\u4fe1\u606f\u5c55\u793a\u6709\u8bef
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590dCAS\u767b\u5f55\u540e\u64cd\u4f5c\u65e5\u5fd7\u6ca1\u6709\u663e\u793a\u7528\u6237\u540d\u7684\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u67e5\u8be2\u5de5\u4f5c\u7a7a\u95f4-\u9879\u76ee\u5217\u8868\u65f6\u6ca1\u6709\u68c0\u67e5\u5de5\u4f5c\u7a7a\u95f4\u7684\u95ee\u9898
    "},{"location":"about/changelog/#v2106-lts","title":"v2.10.6-lts","text":"

    2023\u5e748\u670822\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u6807\u7b7e\u91cd\u6784
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u652f\u6301\u8de8\u9879\u76ee\u573a\u666f\u6267\u884c\u65f6\u53ef\u4ee5\u4e0d\u9009\u73af\u5883\uff0c\u9ed8\u8ba4\u53d6\u5f53\u524d\u9879\u76ee\u73af\u5883
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u652f\u6301\u5b9a\u65f6\u4efb\u52a1\u6267\u884c\u53d6\u9ed8\u8ba4\u73af\u5883
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a)): \u6d4b\u8bd5\u8ba1\u5212\u4e0d\u518d\u5f3a\u5236\u5173\u8054\u7528\u4f8b\u65f6\u9009\u62e9\u73af\u5883
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u5e73\u53f0\u63d2\u4ef6\u6784\u9020\u5668\u6dfb\u52a0\u4e2a\u4eba\u8d26\u53f7\u4fe1\u606f\u76f8\u5173\u53c2\u6570
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u8bc4\u5ba1\u5173\u8054\u529f\u80fd\u7528\u4f8b\u9875\u9762\uff0c\u67e5\u8be2\u6761\u4ef6\u63d0\u793a\u4f18\u5316
    • refactor(\u9879\u76ee\u8bbe\u7f6e): \u7ec6\u5316\u9879\u76ee\u5185\u67e5\u770b\u7528\u6237\u7ec4\u63a5\u53e3\u6743\u9650\u7684\u9897\u7c92\u5ea6
    • style(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u52a0\u8f7d\u6d4b\u8bd5\u914d\u7f6e\u65f6\u589e\u52a0loading
    • style(\u6027\u80fd\u6d4b\u8bd5): \u4f18\u5316\u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u4e2d\u73af\u5883\u7684\u5c55\u793a\u6548\u679c
    • perf(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f18\u5316\u6d4b\u8bd5\u8ba1\u5212\u63a5\u53e3\u7528\u4f8b\u5207\u6362\u6a21\u5757\u6811\u7684\u54cd\u5e94\u901f\u5ea6
    • refactor: \u7cfb\u7edf\u914d\u7f6e\u652f\u6301\u4e0a\u4f20\u81ea\u5b9a\u4e49css

    \u95ee\u9898\u4fee\u590d

    • fix(\u5de5\u4f5c\u53f0): \u7528\u4f8b\u63cf\u8ff0\u9884\u89c8loading\u5173\u95ed
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dAPI\u591a\u6b21\u4fdd\u5b58\u6570\u636e\u91cd\u590d\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dAPI\u5217\u8868\u6279\u91cf\u590d\u5236\u6570\u636e\u4f1a\u53d1\u51fa\u591a\u4e2a\u8bf7\u6c42\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5f15\u7528\u7684CASE\u6dfb\u52a0\u65ad\u8a00\u65e0\u6cd5\u751f\u6548\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u6b65\u9aa4\u63a5\u53e3\u5bfc\u5165\u53ca\u573a\u666f\u5bfc\u5165\u5f39\u7a97\u62d6\u62fd\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5feb\u6377\u8c03\u8bd5\u53e6\u5b58\u4e3a\u7528\u4f8b\uff0c\u663e\u793a\u7684\u8fd8\u662f\u4e0a\u4e00\u6b21\u7528\u4f8b\u540d\u79f0\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6a21\u5757\u6811\u9876\u90e8\u7f3a\u5931\u641c\u7d22\u6846\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u5bfc\u5165\u7279\u6b8a\u5b57\u7b26\u62a5\u9519\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u590d\u5236\u529f\u80fd\u7528\u4f8b\u8d23\u4efb\u4eba\u53d8\u66f4\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5bcc\u6587\u672c\u6846\u82f1\u6587\u5f15\u53f7\u9884\u89c8\u65f6\u53d8\u6210\u4e2d\u6587\u5f15\u53f7
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u7f16\u8f91\u9875\uff0c\u70b9\u51fb\u7248\u672c\u7f6e\u65b0\uff0c\u4e00\u76f4\u5904\u4e8e\u5237\u65b0\u72b6\u6001
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8111\u56fe\u5c06\u7528\u4f8b\u62d6\u5165\u672a\u52a0\u8f7d\u7528\u4f8b\u7684\u6a21\u5757\uff0c\u4f1a\u4ea7\u751f\u6570\u636e\u4e22\u5931
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u5bfc\u51fa\u652f\u6301\u5355\u5143\u683c\u5185\u5bb9\u6362\u884c
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u81ea\u5b9a\u4e49\u5b57\u6bb5\u4e0b\u62c9\u9009\u9879key\u957f\u5ea6\u9650\u5236\u8fc7\u77ed
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u81ea\u5b9a\u4e49\u76d1\u63a7\u67e5\u8be2\u65f6\uff0c\u8f93\u5165promQL\u4e2d\u5305\u62ec\u7279\u6b8a\u5b57\u7b26\u4e0d\u80fd\u6b63\u5e38\u4f7f\u7528\u7684\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u591a\u8282\u70b9\u914d\u7f6e\u81ea\u5b9a\u4e49\u5360\u6bd4\u65f6\u6d6e\u70b9\u6570\u76f8\u52a0\u7cbe\u5ea6\u95ee\u9898\u4fee\u6539
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u8d44\u6e90\u6c60\u914d\u7f6e\u4fe1\u606f\u8fc7\u957f\u62a5\u9519\u95ee\u9898
    "},{"location":"about/changelog/#v2105-lts","title":"v2.10.5-lts","text":"

    2023\u5e748\u67081\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316JSONPath\u65ad\u8a00\u5339\u914d\u673a\u5236\uff0c\u652f\u6301\u6b63\u5219\u5ffd\u7565\u6570\u5b57\u7cbe\u5ea6\u5339\u914d
    • refactor(\u6027\u80fd\u6d4b\u8bd5): \u5927\u5e45\u4f18\u5316\u6027\u80fd\u6d4b\u8bd5\u7684\u541e\u5410\u91cf\u548c\u7a33\u5b9a\u6027(\u4f01\u4e1a\u7248)
    • refactor(\u6027\u80fd\u6d4b\u8bd5): \u62a5\u544a\u5217\u8868\u9875\u51cf\u5c11\u6d4b\u8bd5\u5217\u663e\u793a
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u53d6\u6d88\u5de6\u4fa7\u6a21\u5757\u68118\u5c42\u9650\u5236
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u5217\u8868\u548c\u8111\u56fe\u5207\u6362\u65f6\uff0c\u643a\u5e26\u7248\u672c\u7b5b\u9009\u6761\u4ef6
    • refactor(\u9879\u76ee\u8bbe\u7f6e): \u6dfb\u52a0\u9879\u76ee\u6210\u5458\u9009\u9879\u8fc7\u6ee4\u6389\u5df2\u7ecf\u6dfb\u52a0\u7684\u6210\u5458
    • refactor: \u8c03\u6574BufferMemory\u9ed8\u8ba4\u5927\u5c0f\u5e76\u652f\u6301\u81ea\u5b9a\u4e49\u914d\u7f6e

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7684case\u66f4\u65b0\u540e\u672a\u540c\u6b65\u66f4\u65b0\u7684\u95ee\u9898\uff08GitHub #25703\uff09
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u529f\u80fd\u7528\u4f8b\u4f7f\u7528\u7248\u672c\u7b5b\u9009\u6761\u4ef6\u540e\u5207\u6362\u81f3\u8111\u56fe\u67e5\u770b\u672a\u751f\u6548\u7684\u95ee\u9898\uff08GitHub #25848\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u201c\u63a8\u8350JSONPATH\u65ad\u8a00\u201d\u4e2d\u5f53\u54cd\u5e94\u5185\u5bb9\u4e3a\u6570\u5b57\u88ab\u5904\u7406\u6210\u5b57\u7b26\u4e32\u7684\u95ee\u9898\uff08GitHub #25109\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u901a\u8fc7\u201cJSON-SCHEMA\u201d\u67e5\u770b\u590d\u6742JSON\u8bf7\u6c42\u4f53\u5bfc\u81f4\u6d4f\u89c8\u5668\u5d29\u6e83\u7684\u95ee\u9898\uff08GitHub #25825\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dJmeter 5.4.1\u7248\u672c\u5bfc\u51fa\u5e26\u6709\u5faa\u73af\u63a7\u5236\u5668\u7684\u6587\u4ef6\u5bfc\u5165\u5230MeterSphere\u5e73\u53f0\u62a5\u9519\u7684\u95ee\u9898\uff08GitHub #25882\uff09
    • fix(UI\u6d4b\u8bd5): \u4fee\u590dUI\u5e76\u53d1\u6267\u884c\u7ebf\u7a0b\u6570\u4fee\u6539\u540e\u4e0d\u751f\u6548\u7684\u95ee\u9898\uff08GitHub #25755\uff09
    • fix(UI\u6d4b\u8bd5): \u4fee\u590dv2\u7248\u672c\u5bf9v1\u7248\u672cUI\u81ea\u52a8\u5316\u573a\u666f\u53d8\u91cf\u4e0d\u517c\u5bb9\u7684\u7684\u95ee\u9898\uff08GitHub #25607\uff09
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u6027\u80fd\u6d4b\u8bd5\u52a0\u8f7d\u5173\u8054jmx\u6587\u4ef6\u65f6\u4f1a\u91cd\u590d\u63d0\u793a\u7684\u95ee\u9898\uff08GitHub #25351\uff09
    "},{"location":"about/changelog/#v2104-lts","title":"v2.10.4-lts","text":"

    2023\u5e747\u670820\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): XPath\u65ad\u8a00\u652f\u6301html\u54cd\u5e94\u5185\u5bb9\u65ad\u8a00
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u672c\u5730\u9644\u4ef6csv\u7684\u6e05\u7406\u903b\u8f91
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u62a5\u544a\u5bfc\u51fa\u573a\u666fcase\u5904\u7406size\u8c03\u6574
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7528\u4f8b\u786e\u8ba4\u5f39\u7a97\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u65b0\u589e\"\u4fdd\u5b58\u4e0b\u4e00\u6761\"\u6309\u94ae\u64cd\u4f5c
    • refactor: Swagger\u53ef\u4ee5\u914d\u7f6e\u662f\u5426\u5f00\u542f

    \u95ee\u9898\u4fee\u590d

    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dSQL\u534f\u8bae\u5bfc\u5165\u8986\u76d6\u8fd0\u884c\u73af\u5883\u53d8\u66f4\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u53d8\u66f4\u8bb0\u5f55\u76f8\u5173\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dChrome\u63d2\u4ef6\u5f55\u5236\u811a\u672c\u5bfc\u5165\u540e\u6b65\u9aa4\u987a\u5e8f\u9519\u4e71\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dTCP\u63a5\u53e3\u88ab\u5220\u9664\u540e\uff0c\u4ecd\u7136\u53ef\u4ee5\u8c03\u7528\u8be5\u63a5\u53e3Mock\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5728\u4f7f\u7528\u5e73\u53f0\u505a\u6d4b\u8bd5\u65f6Chrome\u7ecf\u5e38\u51fa\u73b0\u5d29\u6e83\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u63d0\u793a\u76f8\u5173\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u901a\u7528\u914d\u7f6e\u7b5b\u9009\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u9879\u76ee\u73af\u5883\u521b\u5efa\u5931\u8d25\u7684\u7f3a\u9677
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u5bfc\u822a\u680f\u5de5\u4f5c\u7a7a\u95f4\u641c\u7d22\u8f93\u5165\u65f6\u81ea\u52a8\u5931\u7126\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590djira\u4f7f\u7528\u81ea\u5b9a\u4e49\u6a21\u677f\u521b\u5efa\u7f3a\u9677\u5931\u8d25\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u529f\u80fd\u7528\u4f8b\u521b\u5efa\u7248\u672c\u5206\u652f, \u62a5\u529f\u80fd\u7528\u4f8b\u5df2\u5b58\u5728\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u7528\u4f8b\u8bc4\u5ba1\u5217\u8868\u8868\u5934\u663e\u793a\u540d\u79f0\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u8111\u56fe\u7f16\u8f91\u7528\u6237\u4f1a\u6e05\u7a7a\u5173\u8054\u7684\u9700\u6c42\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u7528\u4f8b\u7f16\u8f91\u9875\uff0c\u7528\u4f8b\u72b6\u6001\u663e\u793a\u6709\u8bef
    • fix(\u65b0\u624b\u5f15\u5bfc): \u4fee\u590d\u65b0\u5efa\u8d85\u7ea7\u7ba1\u7406\u5458\u7528\u6237-\u9996\u6b21\u52a0\u8f7d\u4f1a\u51fa\u73b0\u4e24\u6b21\u65b0\u624b\u5f15\u5bfc\u5f39\u7a97
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u7528\u6237\u5bfc\u5165ID\u548c\u540d\u79f0\u6dfb\u52a0\u6821\u9a8c
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u7cfb\u7edf\u8bbe\u7f6e\u521b\u5efa\u7528\u6237\uff0c\u4e0b\u62c9\u6846option\u6837\u5f0f\u8ddf\u968fselect\u6837\u5f0f
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u63d2\u4ef6\u5220\u9664\u540e\u518d\u6b21\u4e0a\u4f20\u63d2\u4ef6id\u9519\u8bef\u7684\u7f3a\u9677
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u5de5\u4f5c\u7a7a\u95f4\u540d\u79f0\u8d85\u957f\uff0c\u521b\u5efa\u7528\u6237\u9009\u5219\u5de5\u4f5c\u7a7a\u95f4\u65f6\u6837\u5f0f\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u6027\u80fd\u6d4b\u8bd5\u81ea\u5b9a\u4e49\u6267\u884c\u7684\u65f6\u5019\u6570\u5b57\u8f6c\u5316\u7684\u95ee\u9898
    • fix: \u4fee\u590dJenkins\u6267\u884c\u6d4b\u8bd5\u65f6\u7531\u4e8e\u6743\u9650\u4e0d\u591f\u5bfc\u81f4\u4e0d\u80fd\u6b63\u5e38\u6267\u884c\u7684\u95ee\u9898
    • fix: \u8d44\u6e90\u6c60\u955c\u50cf\u957f\u5ea6\u8fdb\u884c\u9650\u5236
    "},{"location":"about/changelog/#v2103-lts","title":"v2.10.3-lts","text":"

    2023\u5e747\u67086\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u53bb\u9664JMeter\u4e0d\u517c\u5bb9\u7684Mock\u51fd\u6570
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u8c03\u8bd5\u53bb\u6389\u901a\u77e5
    • refactor(\u4e2a\u4eba\u4fe1\u606f): \u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u914d\u7f6elabel\u5bbd\u5ea6\u8c03\u6574
    • refactor(\u4e2a\u4eba\u4fe1\u606f): \u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u5b57\u6bb5\u663e\u793a\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ba1\u5212): \u91cd\u5199\u6d4b\u8bd5\u8ba1\u5212\u52a0\u8f7d\u573a\u666f\u62a5\u544a\u7684\u65b9\u5f0f
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7b2c\u4e09\u65b9\u5e73\u53f0\u7f3a\u9677\u5220\u9664\u63d0\u793a\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u521b\u5efa\u7f3a\u9677\u5f39\u6846\u6dfb\u52a0\u5168\u5c4f\u6309\u94ae
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u5217\u8868\u6392\u5e8f\u540e\uff0c\u8111\u56fe\u70b9\u51fb\u4e0a\u4e0b\u79fb\u52a8\uff0c\u63d0\u793a\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u7528\u4f8b\u5173\u8054\u7f3a\u9677\uff0c\u6dfb\u52a0\u6392\u5e8f\u5b57\u6bb5
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u5217\u8868\u4e0d\u5c55\u793a\u6587\u672c\u6846\u548c\u5bcc\u6587\u672c\u6846\u7c7b\u578b\u7684\u81ea\u5b9a\u4e49\u5b57\u6bb5
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u5217\u8868\u4e0d\u5c55\u793a\u6587\u672c\u6846\u7c7b\u578b\u7684\u81ea\u5b9a\u4e49\u5b57\u6bb5\uff0c\u4f18\u5316\u6548\u7387
    • refactor(\u901a\u7528\u529f\u80fd): \u4e2a\u4eba\u4fe1\u606f\u7684\u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u4fe1\u606f\u6539\u4e3a\u975e\u5fc5\u586b
    • refactor(\u901a\u7528\u529f\u80fd): Jackson\u9ed8\u8ba4\u5e8f\u5217\u5316\u5b57\u7b26\u4e32\u957f\u5ea6\u8c03\u6574
    • style(\u6d4b\u8bd5\u8ba1\u5212): \u66f4\u6539\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u4e2d\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a\u7684\u5c55\u793a\u9ad8\u5ea6

    \u95ee\u9898\u4fee\u590d

    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u7279\u6b8a\u6570\u636e\u7684swagger3.0\u6570\u636e\u5bfc\u51fa\u5931\u8d25\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5bfc\u5165\u975e\u6807\u51c6JMX\u6587\u4ef6\u5931\u8d25\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u53c2\u6570\u548c\u7c7b\u578b\u4e0d\u7b26\u5408\u7684json-schema\u6570\u636e\u8f6cjson\u9519\u8bef\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u540c\u6b65\u63a5\u6536\u62a5\u544a\u7ed3\u679c\u6709\u65f6\u95f4\u5dee\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u8bf7\u6c42\u4f53\u542b\u7279\u6b8a\u5b57\u7b26\u8f6c\u6362\u9519\u8bef\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u591a\u5c42\u5d4c\u5957\u5f15\u7528\u573a\u666f\u7981\u7528\u72b6\u6001\u4e0d\u751f\u6548\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): Tapd \u7f16\u8f91\u7f3a\u9677\u5904\u7406\u4eba\u663e\u793a\u5f02\u5e38
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u8bc4\u5ba1\u9ad8\u7ea7\u641c\u7d22\u5f39\u7a97\u51fa\u73b0\u7a7a\u7684\u6eda\u52a8\u6761
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u65e5\u671f\u81ea\u5b9a\u4e49\u5b57\u6bb5\u5217\u8868\u663e\u793a\u5e26\u4e86\u51c6\u786e\u65f6\u95f4
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u516c\u5171\u7528\u4f8b\u5e93\u590d\u5236\u548c\u7f16\u8f91\u6839\u636e\u6743\u9650\u542f\u7528\u7981\u7528
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u7528\u4f8b\u5217\u8868\u81ea\u5b9a\u4e49\u5b57\u6bb5\u7b5b\u9009\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8bbf\u95ee\u6d4b\u8bd5\u8ddf\u8e2a\u9ed8\u8ba4\u8df3\u8f6c\u5230\u7b2c\u4e00\u4e2a\u6709\u6743\u9650\u7684\u83dc\u5355
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6574\u578b\u81ea\u5b9a\u4e49\u5b57\u6bb5\u4e0d\u4fee\u6539\u9ed8\u8ba4\u503c\uff0c\u4f1a\u4fdd\u5b58\u4e3a\u5b57\u7b26\u4e32
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u9009\u4e2d\u7528\u4f8b\u6570\u91cf\u8fc7\u591a\u751f\u6210\u4f9d\u8d56\u5173\u7cfb\u56fe\u9875\u9762\u52a0\u8f7d\u5f02\u5e38
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u65f6\u6267\u884c\u65f6\u68c0\u67e5jmx\u6587\u4ef6
    • fix(\u9879\u76ee\u7ba1\u7406): \u6a21\u677f\u8bbe\u7f6e\u67e5\u8be2\u6743\u9650\u63a7\u5236\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u521b\u5efa\u7f3a\u9677\u6a21\u677f\u4e0d\u6821\u9a8c\u6a21\u677f\u5b57\u6bb5\u6743\u9650
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4f18\u5316\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u7684\u6743\u9650\u5224\u65ad\u65b9\u5f0f
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): ldap\u7528\u6237\u7b2c\u4e00\u6b21\u767b\u5f55\u5de5\u4f5c\u53f0\u6743\u9650\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u5de5\u4f5c\u7a7a\u95f4\u6210\u5458\u4e0e\u73af\u5883\u7ba1\u7406\u5217\u8868\u9009\u4e2d\u6570\u91cf\u5c55\u793a\u9519\u8bef
    "},{"location":"about/changelog/#v2102-lts","title":"v2.10.2-lts","text":"

    2023\u5e746\u670820\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor: \u90e8\u5206\u63a5\u53e3\u6743\u9650\u8865\u5168
    • refactor: \u524d\u7aef\u62c6\u5305\u4f18\u5316

    \u95ee\u9898\u4fee\u590d

    • fix(UI\u6d4b\u8bd5): \u4fee\u590d\u8ffd\u52a0\u8f93\u5165\u63d0\u793a\u4fe1\u606f\u5e26\u7279\u6b8a\u5b57\u7b26\u95ee\u9898
    • fix(\u5de5\u4f5c\u53f0): \u4fee\u590d\u4eea\u8868\u76d8\u8fc7\u6ee4\u5f53\u524d\u7528\u6237\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5f15\u7528\u7684case\u65e0\u6cd5\u6dfb\u52a0\u65ad\u8a00\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5bfc\u5165\u63a5\u53e3\u5217\u8868\u9891\u7e41\u8c03\u63a5\u53e3\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u65ad\u8a00\u54cd\u5e94\u65f6\u95f4\u5f00\u542f\u5173\u95ed\u4e0d\u751f\u6548\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590dqiankun\u7ec4\u4ef6\u52a0\u8f7d\u62a5\u544a\u5207\u6362\u9519\u4e71\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u529f\u80fd\u7528\u4f8b\u7f16\u8f91\u8d23\u4efb\u4ebaID\u4e3a\u7eaf\u6570\u5b57\u663e\u793a\u5f02\u5e38\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u7528\u4f8b\u5217\u8868\u81ea\u5b9a\u4e49\u5217\u9009\u62e9\u540e\u5237\u65b0\u5931\u6548\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u4f7f\u7528\u7b2c\u4e09\u65b9\u7f3a\u9677\u6a21\u677f\uff0c\u5b58\u5728\u540c\u540d\u5b57\u6bb5\uff0c\u65e0\u6cd5\u4fdd\u5b58\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u961f\u5217\u4e0d\u518d\u8bb0\u5f55\u6267\u884c\u5931\u8d25\u7684\u6027\u80fd\u7528\u4f8b\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u7f3a\u9677\u81ea\u5b9a\u4e49\u5b57\u6bb5\u4e0b\u62c9\u9009\u9879\u8fdc\u7a0b\u68c0\u7d22\uff0c\u8f93\u5165\u5173\u952e\u5b57\u540e\u5931\u53bb\u7126\u70b9\uff0c\u9009\u9879\u6ca1\u6709\u91cd\u7f6e
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u5bfc\u5165\u7f3a\u9677\u6587\u4ef6\u5185\u5bb9\u9519\u8bef\u540e\uff0c\u4fee\u6539\u539f\u59cb\u6587\u4ef6\u5e76\u4fdd\u5b58\uff0c\u62a5network_error
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u914d\u7f6e\u90ae\u4ef6Port\u53c2\u6570\u6821\u9a8c\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u6027\u80fd\u6d4b\u8bd5\u573a\u666fCSV\u53d8\u66f4\u540e\u8fdb\u884c\u540c\u6b65\u65f6\u8868\u683c\u5185\u7684CSV\u6587\u4ef6\u4e5f\u540c\u6b65\u66f4\u6539
    • fix(\u6587\u4ef6\u7ba1\u7406): \u4fee\u590d\u6587\u4ef6\u7ba1\u7406\u589e\u52a0\u5bf9\u6a21\u5757id\u4e0d\u5b58\u5728\u7684\u65e7\u6570\u636e\u5904\u7406
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590dTCP\u914d\u7f6e\u5b57\u6bb5\u540d\u79f0\u663e\u793a\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u5220\u9664\u6d88\u606f\u901a\u77e5\u6a21\u677f\u4e2d\u7684\u65e0\u6548\u53d8\u91cf
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u81ea\u5b9a\u4e49\u5f85\u66f4\u65b0\u89c4\u5219\u914d\u7f6e\u63d0\u793a\u95ee\u9898
    "},{"location":"about/changelog/#v2101-lts","title":"v2.10.1-lts","text":"

    2023\u5e746\u67088\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u573a\u666f\u73af\u5883\u6821\u9a8c\u903b\u8f91
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u9009\u62e9\u8d44\u6e90\u6c60\u6267\u884c\u903b\u8f91
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u65b0\u589e\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u7f16\u8f91\u7684\u6743\u9650
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u8bc4\u5ba1\u5173\u8054\u7528\u4f8b\u65b0\u589e\u6392\u5e8f
    • refactor(\u7cfb\u7edf\u8bbe\u7f6e): \u64cd\u4f5c\u65e5\u5fd7\u7684\u64cd\u4f5c\u5bf9\u8c61\u589e\u52a0\u6e05\u7a7a
    • refactor(\u9879\u76ee\u8bbe\u7f6e): \u4f18\u5316\u7cfb\u7edf\u81ea\u5e26\u7684\u73af\u5883\u4e2d\u5e26\u811a\u672c\u65f6\u7684\u901a\u77e5\u903b\u8f91

    \u95ee\u9898\u4fee\u590d

    • fix(\u5de5\u4f5c\u53f0): \u529f\u80fd\u7528\u4f8b\u4eea\u8868\u76d8\u6570\u76ee\u4e0e\u5217\u8868\u4e0d\u4e00\u81f4
    • fix(\u5de5\u4f5c\u53f0)\uff1a\u5de5\u4f5c\u53f0\u67e5\u770bjira\u5e73\u53f0\u7f3a\u9677,\u7f3a\u9677\u5b57\u6bb5\u663e\u793a\u4e0d\u5168
    • fix(\u9879\u76ee\u8bbe\u7f6e): TCP\u914d\u7f6e\u540d\u79f0\u5c55\u793a\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u6dfb\u52a0git\u6587\u4ef6\u5931\u8d25\u65f6\u4e0d\u4f1a\u518d\u5237\u65b0\u8868\u683c\u5185\u5bb9
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590djenkins\u89e6\u53d1\u63a5\u53e3\u7528\u4f8b\uff0c\u4e00\u76f4\u4e0d\u6267\u884c\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u6b65\u9aa4\u8de8\u5de5\u4f5c\u7a7a\u95f4\u8df3\u8f6c\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u96c6\u5408\u62a5\u544a\u505c\u6b62\u4e0d\u751f\u6548\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u6279\u91cf\u751f\u6210\u4f9d\u8d56\u5173\u7cfb\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u81ea\u5b9a\u4e49\u8bf7\u6c42\u63a5\u53e3\u8986\u76d6\u7387\u8ba1\u7b97\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u53ea\u5173\u8054UI\u6267\u884c\u65f6\u8d44\u6e90\u6c60\u63d0\u793a\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5f53\u524d\u9879\u76ee\u8d23\u4efb\u4eba\u5220\u9664\u65f6\u5c55\u793a\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u8111\u56fe\u4fee\u6539\u4e00\u7ea7\u6a21\u5757\uff0c\u91cd\u540d\u6821\u9a8c\u4e0d\u51c6\u786e
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u5220\u9664\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u65f6\u540e\u53f0\u4f1a\u51fa\u73b0\u6d88\u606f\u901a\u77e5\u76f8\u5173\u7684\u62a5\u9519
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u573a\u666fCSV\u53d8\u66f4\u540e\u8fdb\u884c\u540c\u6b65\u65f6\u8868\u683c\u5185\u7684CSV\u6587\u4ef6\u4e5f\u540c\u6b65\u66f4\u6539
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u6027\u80fd\u6d4b\u8bd5\u53d8\u66f4\u8bb0\u5f55\u76f8\u5173\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u5076\u53d1\u7684\u4fdd\u5b58\u540e\u8d44\u6e90\u6c60\u88ab\u7f6e\u7a7a\u7684\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u5de5\u4f5c\u7a7a\u95f4\u914d\u989d\u9650\u5236\u8d44\u6e90\u6c60\u540e\u4efb\u7136\u53ef\u4ee5\u9009\u62e9\u88ab\u7981\u7528\u7684\u8d44\u6e90\u6c60\u6267\u884c\u7684\u7f3a\u9677
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u4f4e\u7248\u672c\u5347\u7ea7\u4e0a\u6765\u7684\u9ed8\u8ba4\u914d\u989d\u663e\u793a\u9519\u8bef\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u901a\u77e5\u8df3\u8f6c\u73af\u5883\u63d0\u793a\u8d44\u6e90\u88ab\u5220\u7684\u7f3a\u9677
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u9879\u76ee\u8bbe\u7f6e\u548c\u7cfb\u7edf\u8bbe\u7f6e\u4e2d\u6dfb\u52a0\u6210\u5458\u641c\u7d22\u7ed3\u679c\u4e0d\u7b26\u95ee\u9898
    • fix(\u901a\u77e5\u4e2d\u5fc3): \u901a\u77e5\u4e2d\u5fc3\u8df3\u8f6c\u5220\u9664\u7684\u8d44\u6e90\u65f6\u8fdb\u884c\u62a5\u9519\u63d0\u793a
    • fix(\u65b0\u624b\u5f15\u5bfc): \u65b0\u624b\u5f15\u5bfc\uff0c\u6b65\u9aa4\u4e3a\u521d\u59cb\u503c\u65f6\uff0c\u589e\u52a0\u8bb0\u5f55\u64cd\u4f5c
    • fix(\u6587\u4ef6\u7ba1\u7406): \u6587\u4ef6\u8be6\u60c5\u4e2d\u632a\u52a8\u6240\u5c5e\u6a21\u5757\u65f6\u4e0d\u518d\u63d0\u4f9b\u6e05\u7a7a\u6309\u94ae
    "},{"location":"about/changelog/#v2100-lts","title":"v2.10.0-lts","text":"

    2023\u5e745\u670825\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u6d4b\u8bd5\u80fd\u529b\u5347\u7ea7

    \u4e00\u7ad9\u5f0f\u6d4b\u8bd5\u80fd\u529b\u589e\u5f3a\uff1a MeterSphere v2.10 LTS\u7248\u672c\u5728\u6d4b\u8bd5\u7ba1\u7406\u4e0e\u6d4b\u8bd5\u6267\u884c\u4e0a\u91c7\u7528\u4e00\u7ad9\u5f0f\u5e73\u53f0\u8bbe\u8ba1\uff0c\u63d0\u4f9b\u529f\u80fd\u6d4b\u8bd5\u3001\u63a5\u53e3\u6d4b\u8bd5\u3001UI\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u7684\u540c\u65f6\uff0c\u89c4\u907f\u4e86\u6d4b\u8bd5\u4eba\u5458\u6267\u884c\u6d4b\u8bd5\u4efb\u52a1\u65f6\u56e0\u5de5\u5177\u7e41\u591a\u3001\u79cd\u7c7b\u5dee\u5f02\u5316\u5bfc\u81f4\u7684\u65e0\u6cd5\u6c89\u6dc0\u548c\u65e0\u6cd5\u8ffd\u6eaf\u7684\u95ee\u9898\u3002\u5168\u9762\u627f\u8f7d\u4e0d\u540c\u7c7b\u578b\u7684\u6d4b\u8bd5\u7528\u4f8b\u3001API\u3001\u6d4b\u8bd5\u6570\u636e\u3001\u6d4b\u8bd5\u73af\u5883\u7b49\u5173\u952e\u8d44\u4ea7\u7684\u96c6\u4e2d\u7ba1\u7406\u3002

    \u6d4b\u8bd5\u7ba1\u7406\u80fd\u529b\u589e\u5f3a\uff1a MeterSphere v2.10 LTS\u7248\u672c\u4e2d\uff0c\u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u8fdb\u884c\u4e86\u589e\u5f3a\uff0c\u8986\u76d6\u529f\u80fd\u7528\u4f8b\u3001\u63a5\u53e3\u7528\u4f8b\u3001UI\u7528\u4f8b\u3001\u6027\u80fd\u7528\u4f8b\u3002

    \u63a5\u53e3\u6d4b\u8bd5\u80fd\u529b\u589e\u5f3a\uff1a MeterSphere v2.10 LTS\u7248\u672c\u4e2d\uff0c\u63a5\u53e3\u6d4b\u8bd5\u91cd\u70b9\u89e3\u51b3\u4e86API\u53d1\u751f\u53d8\u66f4\u4e00\u952e\u66f4\u65b0\u63a5\u53e3\u7528\u4f8b\u7684\u95ee\u9898\u3002

    UI \u6d4b\u8bd5\u80fd\u529b\u589e\u5f3a\u3010X-Pack\u3011\uff1a \u5728MeterSphere v2.10 LTS\u7248\u672c\u4e2d\uff0cUI\u6d4b\u8bd5\u6a21\u5757\u9488\u5bf9Selenium\u539f\u751f\u6307\u4ee4\u8fdb\u884c\u4e86\u8fdb\u4e00\u6b65\u7684\u6269\u5c55\uff0c\u4ee5\u8986\u76d6\u7279\u6b8a\u6d4b\u8bd5\u573a\u666f\u3002

    \u6027\u80fd\u6d4b\u8bd5\u80fd\u529b\u589e\u5f3a\uff1a \u5728MeterSphere v2.10 LTS\u7248\u672c\u4e2d\uff0c\u6027\u80fd\u6d4b\u8bd5\u5b9e\u65f6\u62a5\u544a\u8ba1\u7b97\u80fd\u529b\u589e\u5f3a\u3002\u5c06\u6027\u80fd\u6d4b\u8bd5\u751f\u6210\u7684jtl\u6587\u4ef6\u5206\u6210\u5c0f\u6bb5\uff0c\u5206\u6bb5\u8ba1\u7b97\u7ed3\u679c\uff0c\u8282\u7701\u4e86\u78c1\u76d8\u7a7a\u95f4\u548cIO\u6027\u80fd\u3002

    \u7528\u6237\u4f53\u9a8c\u5347\u7ea7

    \u6d4b\u8bd5\u8ddf\u8e2a\u9996\u9875\u3001\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875UX\u4ea4\u4e92\u5347\u7ea7\uff1a MeterSphere v2.10 LTS\u7248\u672c\u4e2d\uff0c\u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\u9996\u9875\u793a\u4f8b\u56fe\u3002\u5c06\u6838\u5fc3\u6307\u6807\u4e0e\u660e\u7ec6\u6307\u6807\u5206\u5c42\u5c55\u793a\uff0c\u89c6\u89c9\u4e0a\u907f\u514d\u4e86\u56e0\u6570\u636e\u8fc7\u591a\u4ea7\u751f\u7684\u89c6\u89c9\u75b2\u52b3\u3002

    \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\u529f\u80fd\u7528\u4f8bUX\u4ea4\u4e92\u5347\u7ea7\uff1a MeterSphere v2.10 LTS\u7248\u672c\u4e2d\uff0c\u529f\u80fd\u7528\u4f8b\u8fdb\u884c\u4e86\u5168\u65b0\u4ea4\u4e92\u5347\u7ea7\uff0c\u6574\u4e2a\u9875\u9762\u91c7\u7528\u8f7b\u91cf\u5316\u8bbe\u8ba1\u8fdb\u884c\u6574\u4f53\u964d\u566a\uff0c\u9875\u9762\u4fe1\u606f\u66f4\u52a0\u6e05\u6670\u6613\u61c2\uff0c\u64cd\u4f5c\u6d41\u7a0b\u66f4\u987a\u7545\uff0c\u7528\u6237\u4f53\u9a8c\u5f97\u5230\u6574\u4f53\u63d0\u5347\u3002

    \u9664\u6b64\u4e4b\u5916\uff0cMeterSphere v2.10 LTS\u7248\u672c\u8fd8\u8fdb\u884c\u4e86\u4ee5\u4e0b\u9ad8\u9891\u4f7f\u7528\u529f\u80fd\u7684\u4f53\u9a8c\u4f18\u5316\uff1a

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u9ad8\u7ea7\u641c\u7d22\u652f\u6301\u8f93\u5165\u591a\u4e2a\u6807\u7b7e\u641c\u7d22\uff1b
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u8111\u56fe\u7528\u4f8b\u5220\u9664\u65f6\u589e\u52a0\u4e8c\u6b21\u786e\u8ba4\uff1b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u6d4b\u8bd5\u6279\u91cf\u6dfb\u52a0\u8bf7\u6c42\u53c2\u6570\u81ea\u52a8\u53bb\u7a7a\u683c\u5904\u7406\uff1b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u652f\u6301\u901a\u8fc7\u8def\u5f84\u641c\u7d22\uff1b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u6d4b\u8bd5\u5217\u8868\u5c55\u793a\u5b9a\u65f6\u4efb\u52a1\u5217\uff1b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u56fa\u5b9a\u5355\u63a5\u53e3\u7528\u4f8b\u6267\u884c\u6309\u94ae\u4f4d\u7f6e\uff1b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u8fd0\u884c\u73af\u5883\u5217\u8868\u652f\u6301\u6a21\u7cca\u641c\u7d22\uff1b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u5355\u6b65\u8c03\u8bd5\u7528\u4f8b\u6216\u573a\u666f\u6b65\u9aa4\u65f6\u54cd\u5e94\u5185\u5bb9\u81ea\u52a8\u5c55\u5f00\uff1b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3TEST\u652f\u6301\u4fdd\u7559\u6700\u8fd1\u4e00\u6b21\u7684\u6267\u884c\u8bb0\u5f55\uff1b
    • \u6027\u80fd\u6d4b\u8bd5\uff1a\u6d4b\u8bd5\u62a5\u544a\u589e\u52a0\u56fe\u8868\u5355\u4f4d\u5c55\u793a\uff1b
    • \u901a\u7528\u529f\u80fd\uff1a\u6807\u7b7e\u5b57\u6570\u8fc7\u591a\u65f6\u7684\u5c55\u793a\u4f18\u5316\uff1b

    \u7cfb\u7edf\u67b6\u6784\u5347\u7ea7

    \u7cfb\u7edf\u67b6\u6784\u5347\u7ea7\u4e3a\u5fae\u670d\u52a1\u67b6\u6784\uff1a MeterSphere v2.10 LTS\u7248\u672c\u91c7\u7528\u4e86\u5fae\u670d\u52a1\u67b6\u6784\uff0c\u65e2\u80fd\u6ee1\u8db3\u7528\u6237\u6309\u9700\u914d\u7f6e\u3001\u6c34\u5e73\u6269\u5c55\u7684\u9700\u6c42\uff0c\u53c8\u80fd\u89c4\u907f\u5355\u4e2a\u670d\u52a1\u6545\u969c\u5bfc\u81f4\u6574\u4f53\u670d\u52a1\u4e0d\u53ef\u7528\u7684\u73b0\u8c61\u3002

    \u5e73\u53f0\u6269\u5c55\u80fd\u529b\u589e\u5f3a\uff1a MeterSphere\u4f5c\u4e3a\u4e00\u7ad9\u5f0f\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\uff0c\u65e2\u9700\u8981\u4e0e\u5404\u79cd\u5468\u8fb9\u7cfb\u7edf\u8fdb\u884c\u96c6\u6210\u5bf9\u63a5\uff0c\u4e5f\u9700\u8981\u652f\u6301\u5404\u79cd\u4e0d\u540c\u534f\u8bae\u7684\u63a5\u53e3\u6d4b\u8bd5\uff0c\u7075\u6d3b\u7684\u63d2\u4ef6\u4f53\u7cfb\u4fbf\u53ef\u4ee5\u5f88\u597d\u5730\u89e3\u51b3\u5e73\u53f0\u6269\u5c55\u6027\u7684\u95ee\u9898\u3002\u7528\u6237\u53ef\u4ee5\u6309\u9700\u5b89\u88c5\u3001\u5f00\u53d1\u5404\u79cd\u5f62\u5f0f\u5730\u63d2\u4ef6\u6765\u8986\u76d6\u5404\u79cd\u4e0d\u540c\u7684\u6d4b\u8bd5\u53ca\u5bf9\u63a5\u9700\u6c42\u3002

    \u6027\u80fd\u4f18\u5316\uff1a - UI\u6d4b\u8bd5\u6279\u91cf\u6267\u884c\u6027\u80fd\u4f18\u5316 - \u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u6548\u7387\u4f18\u5316 - \u63a5\u53e3\u6d4b\u8bd5\u6267\u884c\u8fc7\u7a0b\u9644\u4ef6\u52a0\u8f7d\u4f18\u5316 - \u52a0\u8f7d\u673a\u5236\u4ece\u5b9e\u65f6\u83b7\u53d6\u4f18\u5316\u4e3a\u672c\u5730\u7f13\u5b58\u52a0\u6587\u4ef6\u670d\u52a1\uff08MinIO\uff09\u4e2d\u6309\u9700\u83b7\u53d6\u3002 - \u5de6\u4fa7\u6a21\u5757\u6811\u6548\u7387\u4f18\u5316 - \u767b\u5f55\u7cfb\u7edf\u52a0\u8f7d\u8017\u65f6\u6027\u80fd\u4f18\u5316 - \u6279\u91cf\u5bfc\u51fa\u5927\u6570\u636e\u91cf\u7528\u4f8b\u6027\u80fd\u4f18\u5316 - \u6d4b\u8bd5\u8ba1\u5212\u6279\u91cf\u5173\u8054\u5927\u6570\u636e\u91cf\u7528\u4f8b\u6027\u80fd\u4f18\u5316

    \u8fd0\u884c\u7a33\u5b9a\u6027\u63d0\u5347\uff1a \u7528\u6237\u5bf9\u4e8e MeterSphere \u5e73\u53f0\u7684\u4f7f\u7528\u89c4\u6a21\u5f88\u591a\u65f6\u5019\u603b\u4f1a\u8d85\u4e4e\u6211\u4eec\u7684\u60f3\u8c61\u3002\u5728 MeterSphere v2.10 LTS \u7248\u672c\u7684\u8fed\u4ee3\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u63a5\u89e6\u4e86\u5f88\u591a\u5927\u89c4\u6a21\u3001\u9ad8\u9891\u6b21\u4f7f\u7528 MeterSphere \u5f00\u5c55\u65e5\u5e38\u6d4b\u8bd5\u5de5\u4f5c\u7684\u6848\u4f8b\uff0c\u5305\u62ec\u8111\u56fe\u6a21\u5f0f\u4e0b\u7f16\u8f91\u5927\u91cf\u529f\u80fd\u7528\u4f8b\uff0c\u5927\u6279\u91cf\u7684\u63a5\u53e3\u6d4b\u8bd5\u3001UI \u6d4b\u8bd5\u6267\u884c\uff0c\u9ad8\u5e76\u53d1\u9ad8TPS\u7684\u6027\u80fd\u6d4b\u8bd5\u7b49\u4f17\u591a\u4f7f\u7528\u573a\u666f\uff0c\u8fd9\u4e9b\u573a\u666f\u7ed9 MeterSphere \u5e26\u6765\u4e86\u5f88\u5927\u7684\u6311\u6218\uff0c\u4f46\u7ecf\u8fc7\u6211\u4eec\u7684\u4e0d\u61c8\u4f18\u5316\u6700\u7ec8\u90fd\u8fbe\u5230\u4e86\u8ba9\u7528\u6237\u6ee1\u610f\u7684\u6548\u679c\u3002

    MeterSphere v2.10 LTS\u7248\u672c\u4e0d\u4ec5\u5305\u542b\u4e86\u4ee5\u4e0a\u6240\u6709\u771f\u5b9e\u4f7f\u7528\u6848\u4f8b\u4e2d\u7684\u7a33\u5b9a\u6027\u4f18\u5316\u6539\u8fdb\uff0c\u8fd8\u7ecf\u8fc7\u4e86\u6211\u4eec\u957f\u8fbe3\u4e2a\u6708\u7684\u5185\u90e8\u6d4b\u8bd5\u548c\u90e8\u5206\u7528\u6237\u7684\u7070\u5ea6\u6d4b\u8bd5\u3002

    \u7cfb\u7edf\u5b89\u5168\u5347\u7ea7\uff1a

    • \u63a5\u53e3\u6d4b\u8bd5\u7981\u7528\u672c\u5730\u6267\u884c\uff1a \u5728\u4e4b\u524d\u7684\u7248\u672c\u4e2d\uff0c\u63a5\u53e3\u6d4b\u8bd5\u63d0\u4f9b\u4e86\u672c\u5730\u6267\u884c\uff08\u5373\u5728\u63a5\u53e3\u6d4b\u8bd5\u670d\u52a1\u4e2d\u76f4\u63a5\u6267\u884c\uff09\u548c\u8d44\u6e90\u6c60\u6267\u884c\u4e24\u79cd\u65b9\u5f0f\u3002MeterSphere v2.10 LTS\u7248\u672c\u7981\u7528\u4e86\u63a5\u53e3\u672c\u5730\u6267\u884c\uff0c\u548c\u6027\u80fd\u6d4b\u8bd5\u4e00\u6837\uff0c\u5f53\u63a5\u53e3\u8c03\u8bd5\u6216\u8fd0\u884c\u65f6\u4f1a\u5728\u6307\u5b9a\u7684\u8d44\u6e90\u6c60\u4e0a\u8fd0\u884c\uff0c\u540c\u65f6\u8d44\u6e90\u6c60\u8282\u70b9\u4e0a\u7684 node-controller \u670d\u52a1\u9ed8\u8ba4\u4ee5\u5bb9\u5668\u65b9\u5f0f\u8fd0\u884c\uff0c\u8fd9\u6837\u5373\u4fbf\u5b58\u5728\u4e0a\u8ff0\u7528\u4f8b\u8bbe\u8ba1\u4e0d\u5f53\u7684\u95ee\u9898\u4e5f\u53ea\u4f1a\u5f71\u54cd\u5230\u5bf9\u5e94\u8d44\u6e90\u6c60\u8282\u70b9\u4e0a\u7684 node-controller \u5bb9\u5668\uff0c\u63a5\u53e3\u6d4b\u8bd5\u4e3b\u4f53\u670d\u52a1\u8fd8\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\uff0cnode-controller \u6240\u5728\u670d\u52a1\u5668\u4e5f\u4e0d\u4f1a\u53d7\u5230\u5f71\u54cd\u3002

    \u6ce8\u610f\uff1a\u5f53\u5b58\u5728\u591a\u4e2a\u53ef\u7528\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\u65f6\uff0c\u53ef\u4ee5\u5728\u3010\u9879\u76ee\u8bbe\u7f6e->\u5e94\u7528\u7ba1->\u63a5\u53e3\u6d4b\u8bd5\u3011\u83dc\u5355\u4e2d\u914d\u7f6e\u63a5\u53e3\u6267\u884c\u7684\u9ed8\u8ba4\u8d44\u6e90\u6c60\u3002

    • \u6d4b\u8bd5\u7528\u4f8b\u811a\u672c\u9884\u8b66\u901a\u77e5\uff1a \u9664\u4e86\u7981\u7528\u672c\u5730\u6267\u884c\uff0c\u4e3a\u63a5\u53e3\u6d4b\u8bd5\u63d0\u4f9b\u6c99\u7bb1\u6267\u884c\u73af\u5883\u5916\uff0cMeterSphere v2.10 LTS \u7248\u672c\u4e2d\u8fd8\u589e\u52a0\u4e86\u4e3b\u52a8\u9884\u8b66\u673a\u5236\uff0c\u5f53\u7528\u6237\u4fdd\u5b58\u6216\u4fee\u6539\u7684\u7528\u4f8b\u4e2d\u5305\u542b\u811a\u672c\u5185\u5bb9\u65f6\u53ef\u4ee5\u914d\u7f6e\u6307\u5b9a\u7528\u6237\u5ba1\u6838\uff0c\u5f53\u7cfb\u7edf\u68c0\u6d4b\u5230\u5305\u542b\u811a\u672c\u7684\u7528\u4f8b\u65f6\u4f1a\u89e6\u53d1\u7cfb\u7edf\u6d88\u606f\u901a\u77e5\u6307\u5b9a\u5ba1\u6838\u4eba\u5bf9\u8be5\u811a\u672c\u8fdb\u884c\u5ba1\u6838\u3002
    "},{"location":"about/changelog/#v291","title":"v2.9.1","text":"

    2023\u5e745\u670810\u65e5

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u6267\u884c\u8fc7\u7a0b\u8d44\u6e90\u6c60\u6821\u9a8c\u53ca\u7ed3\u679c\u5904\u7406
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u6279\u91cf\u4fdd\u5b58\u73af\u5883\uff0c\u7f16\u8f91\u9875\u9762\u663e\u793a\u73af\u5883
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u5217\u8868\u5e73\u53f0\u72b6\u6001\u5b57\u6bb5\u5bbd\u5ea6\u663e\u793a\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u5220\u9664\u6d4b\u8bd5\u8ba1\u5212\u6279\u91cf\u5173\u8054\u529f\u80fd\u7528\u4f8b\uff0c\u65e0\u7528\u4ee3\u7801
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u66f4\u65b0\u7528\u4f8b\u9700\u6c42\u65f6\uff0c\u8c03\u7528\u63d2\u4ef6\u9884\u7559\u7684\u9700\u6c42\u66f4\u65b0\u65b9\u6cd5
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u81ea\u5b9a\u4e49\u5b57\u6bb5\u8868\u5355\u987a\u5e8f\u8ddf\u6a21\u677f\u914d\u7f6e\u4fdd\u6301\u4e00\u81f4
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u529f\u80fd\u7528\u4f8b\u9875\u9762\uff0c\u6253\u5f00\u65f6\u6e05\u9664\u4e0a\u6b21\u6392\u5e8f
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u6b65\u9aa4\u652f\u6301\u63d2\u5165\u6b65\u9aa4
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6279\u91cf\u63d2\u5165\u6570\u636e\u8fc7\u591a\u5bfc\u81f4OOM\u4f18\u5316\uff0c\u65b0\u589e\u6279\u91cfutils
    • refactor(\u7f3a\u9677\u7ba1\u7406): \u7f3a\u9677\u5217\u8868\u5e73\u53f0\u72b6\u6001\u5217\u652f\u6301\u7b5b\u9009\u548c\u6392\u5e8f
    • refactor(\u7cfb\u7edf\u8bbe\u7f6e): \u7981\u7528\u672c\u5730\u8c03\u8bd5\u540e\u7ed9\u9879\u76ee\u521d\u59cb\u5316\u4e00\u4e2a\u9ed8\u8ba4\u8d44\u6e90\u6c60

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): firefox\u6d4f\u89c8\u5668\u67e5\u770b\u529f\u80fd\u7528\u4f8b\u9875\u9762\u663e\u793a\u5f02\u5e38
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4ece1.20\u5347\u7ea7\u52302.8\u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u8bc4\u8bba\u4e0d\u663e\u793a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u9996\u9875-\u6211\u521b\u5efa\u7684\u8bc4\u5ba1\u663e\u793a\u6709\u8bef
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5173\u8054UI\u53ca\u573a\u666f\u7528\u4f8b\u5f39\u7a97\u5de6\u4fa7\u6a21\u5757\u6811\u7b5b\u9009\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212-\u529f\u80fd\u7528\u4f8b\u5217\u8868\u6392\u5e8f\u6709\u8bef
    • fix(\u9879\u76ee\u7ba1\u7406): \u4fee\u590dGit\u6587\u4ef6\u5f15\u5165\u5176\u4ed6\u5206\u652f\u6587\u4ef6\u65f6\u63d0\u793a\u6587\u4ef6\u5df2\u5b58\u5728\u7684bug\uff0c\u5e76\u5728\u8868\u683c\u5c55\u793agit\u6587\u4ef6\u65f6\u589e\u52a0\u5206\u652f\u663e\u793a
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590dgit\u6587\u4ef6\u6dfb\u52a0\u4ee5\u53ca\u62c9\u53d6\u65f6commitId\u5e76\u4e0d\u662f\u6587\u4ef6\u672c\u8eab\u6700\u540e\u4e00\u6b21commitId\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): TCPMock\u540e\u7f6e\u811a\u672c\u652f\u6301\u83b7\u53d6tcp\u8bf7\u6c42\u53c2\u6570
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dV1\u7248\u672c\u65e7\u6570\u636e\u4e2d\u524d\u540e\u7f6eSQL\u7ec4\u4ef6\u53d6\u4e0d\u5230\u73af\u5883\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590djmeter\u4e0d\u586b\u5199\u8def\u5f84\u5bfc\u51fa\u7684jmx\u6587\u4ef6\u5bfc\u5165\u5230ms\u5185\uff0c\u6dfb\u52a0\u8def\u5f84\u65e0\u6cd5\u6d4b\u8bd5\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590djsonschema\u9009\u62e9number\u7c7b\u578b\u6570\u636e\u7cbe\u5ea6\u7f3a\u5931\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dquery\u53c2\u6570\u662fjson\u6570\u636e\u65f6\uff0c\u9009\u62e9\u7f16\u7801\u4e0d\u751f\u6548\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dsql\u81ea\u5b9a\u4e49\u8bf7\u6c42\u6ca1\u6709\u540d\u5b57\uff0c\u751f\u6210\u62a5\u544a\u4e3a\u7a7a\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dswagger\u5bfc\u5165\u6709\u5927\u91cferror\u65e5\u5fd7\u8f93\u51fa\u7684\u7f3a\u9677
    "},{"location":"about/changelog/#v290","title":"v2.9.0","text":"

    2023\u5e744\u670827\u65e5

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6279\u91cf\u5bfc\u51fa\u529f\u80fd\u7528\u4f8b\u6027\u80fd\u4f18\u5316
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7528\u4f8b\u6027\u80fd\u4f18\u5316
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u7528\u4f8b\u8bc4\u5ba1\u5217\u8868\u589e\u52a0\u6807\u7b7e\u5217
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u9ad8\u7ea7\u641c\u7d22\u652f\u6301\u8f93\u5165\u591a\u4e2a\u6807\u7b7e\u641c\u7d22
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u5bfc\u5165\u903b\u8f91\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3CASE\u652f\u6301\u901a\u8fc7\u8def\u5f84\u5feb\u6377\u641c\u7d22
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u573a\u666f\u5217\u8868\u5c55\u793a\u5b9a\u65f6\u4efb\u52a1\u5217
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u81ea\u52a8\u5316\u6587\u6863\u7ed3\u6784\u65ad\u8a00\u589e\u52a0\u590d\u9009\u6846\u64cd\u4f5c
    • UI \u6d4b\u8bd5\uff1aUI\u573a\u666f\u5217\u8868\u5c55\u793a\u5b9a\u65f6\u4efb\u52a1\u5217
    • \u901a\u7528\u529f\u80fd\uff1a\u9996\u6b21\u767b\u5f55\u7cfb\u7edf\u52a0\u8f7d\u8017\u65f6\u4f18\u5316

    \u95ee\u9898\u4fee\u590d

    • fix\uff08\u6d4b\u8bd5\u8ddf\u8e2a\uff09\uff1a\u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u5931\u8d25\u91cd\u8bd5\u65f6\u5bfc\u81f4\u8ba1\u5212\u4e2d\u63a5\u53e3\u811a\u672c\u7684\u5faa\u73af\u6ca1\u6709\u88ab\u6267\u884c\u5b8c\u5168\u7684\u95ee\u9898\uff08GitHub #23509\uff09
    • fix\uff08\u6d4b\u8bd5\u8ddf\u8e2a\uff09\uff1a\u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u65f6\u81ea\u5b9a\u4e49\u5b57\u6bb5\u6587\u672c\u6846\u8f93\u5165{}\u4f1a\u663e\u793a\u4e3a[object Object]\u7684\u95ee\u9898\uff08GitHub #23515\uff09
    • fix\uff08\u6d4b\u8bd5\u8ddf\u8e2a\uff09\uff1a\u4fee\u590d\u4ece1.20LTS\u7248\u672c\u5347\u7ea7\u5230\u6700\u65b0\u7248\u672c\u7528\u4f8b\u6267\u884c\u4e0a\u4f20\u7684\u622a\u56fe\u548c\u8bc4\u8bba\u67e5\u8be2\u4e0d\u5230\u7684\u95ee\u9898\uff08GitHub #23500\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590dJMeter\u4e0d\u586b\u5199\u8def\u5f84\u5bfc\u51fa\u7684jmx\u6587\u4ef6\u5bfc\u5165\u5230ms\u5185\u6dfb\u52a0\u8def\u5f84\u65e0\u6cd5\u6d4b\u8bd5\u7684\u95ee\u9898\uff08GitHub #23416\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590dCASE \u6267\u884c\u5b8c\u8bf7\u6c42\u540e\uff0c\u624b\u52a8\u4fee\u6539\u9884\u89c8\u54cd\u5e94\u4f53\u4e3a json\uff0c\u518d\u6b21\u6267\u884c\u9884\u89c8\u683c\u5f0f\u6709\u8bef\u7684\u95ee\u9898\uff08GitHub #23350\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u63a5\u53e3\u7528\u4f8b\u6267\u884c\u5b8c\u6210\uff0c\u901a\u8fc7\u7387\u6570\u636e\u4e0d\u4f1a\u81ea\u52a8\u66f4\u65b0\u7684\u95ee\u9898\uff08GitHub #23386\uff09
    "},{"location":"about/changelog/#v280","title":"v2.8.0","text":"

    2023\u5e743\u670823\u65e5

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u6027\u80fd\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u6587\u4ef6\u5b58\u5728\u91cd\u590d\u63a5\u53e3\u7684\u5bfc\u5165\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u8bef\u62a5\u673a\u5236\u4e0e\u5931\u8d25\u91cd\u8bd5\u673a\u5236\u4f18\u5316
    • UI \u6d4b\u8bd5\uff1aUI\u573a\u666f\u81ea\u52a8\u5316\u6279\u91cf\u6267\u884c\u6548\u7387\u4f18\u5316
    • \u901a\u7528\u529f\u80fd\uff1a\u7cfb\u7edf\u5de6\u4fa7\u6a21\u5757\u6811\u52a0\u8f7d\u6548\u7387\u4f18\u5316

    \u95ee\u9898\u4fee\u590d

    • fix\uff08\u6d4b\u8bd5\u8ddf\u8e2a\uff09\uff1a\u4fee\u590d\u5728\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u9009\u62e9\u73af\u5883\u65f6\u65e0\u6cd5\u9009\u62e9\u591a\u4e2a\u9879\u76ee\u73af\u5883\uff0c\u5bfc\u81f4\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\u65f6\u4e00\u76f4running\u7684\u95ee\u9898\uff08GitHub #22858\uff09
    • fix\uff08\u6d4b\u8bd5\u8ddf\u8e2a\uff09\uff1a\u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u62a5\u544a\u540e\u5728\u7ebf\u770b\u5355\u6b65\u7ed3\u679c\u662f\u6210\u529f\u7684\uff0c\u4f46\u662f\u5bfc\u51fa\u5c31\u53d8\u6210\u4e86\u5931\u8d25\u7684\u95ee\u9898\uff08GitHub #22067\uff09
    • fix\uff08\u6d4b\u8bd5\u8ddf\u8e2a\uff09\uff1a\u4fee\u590dAzure Devops \u5e73\u53f0\u540c\u6b65\u7f3a\u9677\u62a5\u6570\u7ec4\u8d8a\u754c\u7684\u95ee\u9898\uff08GitHub #22943\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u8fd0\u884c\u73af\u5883Http\u57df\u540d\u914d\u7f6e\u5305\u542b\u7aef\u53e3\u53f7\u4f1a\u5bfc\u81f4\u63a5\u53e3\u8bf7\u6c42URL\u4e2d\u591a\u4e86\"[ ]\"\u7684\u95ee\u9898\uff08GitHub #22857\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590dTCP\u534f\u8bae\u7684\u63a5\u53e3\u5b9a\u4e49\u672a\u6309\u7167\u9009\u53d6\u7684\u7f16\u7801\u683c\u5f0f\u52a8\u6001\u751f\u6210xml\u8868\u5934\u7684\u95ee\u9898\uff08GitHub #22540\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u63a5\u53e3\u5b9a\u4e49\u8bbe\u7f6e\u4e86swagger\uff08\u6709\u6dfb\u52a0\u8bf7\u6c42\u53c2\u6570\uff09\u5b9a\u65f6\u4efb\u52a1\uff0c\u4e0d\u4f1a\u81ea\u52a8\u89e6\u53d1\u7684\u95ee\u9898\uff08GitHub #22044\uff09
    • fix\uff08UI \u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u5143\u7d20\u5e93&UI\u81ea\u52a8\u5316\u5217\u8868\u8bbe\u7f6e\u8868\u5934\u540e\uff0c\u9020\u6210\u6279\u91cf\u64cd\u4f5c\u7684\u70b9\u51fb\u6309\u94ae\u6ca1\u6709\u7684\u95ee\u9898\uff08GitHub #22914\uff09
    • fix\uff08UI \u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u573a\u666f\u5f15\u7528\u540e\u540d\u79f0\u663e\u793a\u4e0d\u6b63\u786e\u7684\u95ee\u9898\uff08GitHub #22914\uff09
    • fix\uff08UI \u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u672c\u5730\u8c03\u8bd5\u65f6\uff0c\u70b9\u51fb\u201c\u505c\u6b62\u201d\u6309\u94ae\uff0c\u6d4f\u89c8\u5668\u6ca1\u6709\u7684\u95ee\u9898\uff08GitHub #22557\uff09
    "},{"location":"about/changelog/#v270","title":"v2.7.0","text":"

    2023\u5e742\u670823\u65e5

    \u65b0\u589e\u529f\u80fd

    • \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757UX\u4ea4\u4e92\u5347\u7ea7
    • \u7528\u4f8b\u8bc4\u5ba1\u652f\u6301\u591a\u4eba\u8bc4\u5ba1
    • \u8fd0\u884c\u914d\u7f6e\u652f\u6301\u5931\u8d25\u91cd\u8bd5\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u63a5\u53e3\u6d4b\u8bd5\u652f\u6301\u4e00\u952e\u5931\u8d25\u91cd\u8dd1\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u6587\u4ef6\u7ba1\u7406\u652f\u6301\u5bf9\u63a5\u7b2c\u4e09\u65b9\u4ed3\u5e93\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u4e00\u7ea7\u529f\u80fd\u6a21\u5757\u542f\u7528/\u7981\u7528\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u652f\u6301\u6dfb\u52a0\u529f\u80fd\u7528\u4f8b\u4f9d\u8d56\u5173\u7cfb\u5e76\u751f\u6210\u62d3\u6251\u56fe\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u67e5\u770b\u5f15\u7528\u5173\u7cfb\u5217\u8868\u65b0\u589e\u201c\u590d\u5236\u201d\u5173\u7cfb\u7684\u6570\u636e
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u652f\u6301\u6dfb\u52a0\u63a5\u53e3\u4f9d\u8d56\u5173\u7cfb\u5e76\u751f\u6210\u62d3\u6251\u56fe\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u652f\u6301\u81ea\u52a8\u751f\u6210\u63a5\u53e3\u7528\u4f8b\u6570\u636e\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u652f\u6301\u914d\u7f6e\u7981\u7528\u672c\u5730\u6267\u884c\u7684\u5b89\u5168\u7b56\u7565\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u901a\u7528\u529f\u80fd\uff1a\u652f\u6301\u914d\u7f6e\u79df\u6237\u4f7f\u7528\u914d\u989d\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u901a\u7528\u529f\u80fd\uff1a\u652f\u6301\u53d1\u9001\u9879\u76ee\u5b9a\u65f6\u62a5\u544a\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09

    \u95ee\u9898\u4fee\u590d

    • fix\uff08\u5b89\u5168\u6f0f\u6d1e\uff09\uff1a\u4fee\u590d\u6587\u4ef6\u4e0b\u8f7d\u8bbf\u95ee\u6743\u9650\u6821\u9a8c\u63a7\u5236\u4e0d\u5f53\u7684\u7f3a\u9677\uff08CVE-2023-25573\u53caCVE-2023-25814\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590dIDEA\u63d2\u4ef6\u5bfc\u51fa\u90e8\u5206\u63a5\u53e3\u65f6\u62a5\u9519\u7684\u95ee\u9898\uff08GitHub #21213\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u5728\u63a5\u53e3\u5b9a\u4e49\u6a21\u5757\u7f16\u8f91CASE\u65f6\uff0c\u4fee\u6539\u540e\u7f6e\u64cd\u4f5c\u4e2d\u7684\u811a\u672c\u4e0d\u751f\u6548\u7684\u95ee\u9898\uff08GitHub #21425\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u4f7f\u7528\u73af\u5883\u7ec4\u6267\u884c\u573a\u666f\u7528\u4f8b\u65f6\uff0c\u4e0d\u80fd\u4fdd\u5b58\u6570\u636e\u5230\u53e6\u5916\u4e00\u4e2a\u9879\u76ee\u7684\u73af\u5883\u53d8\u91cf\u95ee\u9898\uff08GitHub #21345\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u63a5\u53e3\u4fdd\u5b58\u63d0\u793a\u5bf9\u8bdd\u6846\u6709\u6587\u5b57\u9519\u8bef\u7684\u95ee\u9898\uff08GitHub #21367\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u63a5\u53e3\u62a5\u544a\u5bfc\u51faPDF\u6587\u4ef6\u542b\u6709\u7a7a\u767d\u9875\u7684\u95ee\u9898\uff08GitHub #21515\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u5728\u67e5\u770b\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u4e2d\u7684\u65ad\u8a00\u5931\u8d25\u811a\u672c\u65f6\uff0c\u5f39\u51fa\u7684\u5bf9\u8bdd\u6846\u663e\u793a\u5c42\u7ea7\u9519\u8bef\u7684\u95ee\u9898\uff08GitHub #21266\uff09
    • fix\uff08\u7cfb\u7edf\u8bbe\u7f6e\uff09\uff1a\u4fee\u590d\u5347\u7ea7\u5230v2.4.1\u540e/project/list\u67e5\u8be2\u63a5\u53e3\u4e0d\u652f\u6301\u53c2\u6570\u8fc7\u6ee4\u7684\u95ee\u9898\uff08GitHub #20961\uff09
    "},{"location":"about/changelog/#v261","title":"v2.6.1","text":"

    2023\u5e742\u67087\u65e5

    \u529f\u80fd\u4f18\u5316

    • refactor(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u6539\u67e5\u8be2\u6a21\u7248\u7684\u63a5\u53e3\u8c03\u7528
    • refactor(\u63a5\u53e3\u5b9a\u4e49): \u4f18\u5316\u83b7\u53d6\u5f53\u524d\u7528\u6237\u540d\u79f0\u7684\u65b9\u6cd5
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): log\u4f18\u5316\u53bb\u9664\u4e0d\u5fc5\u8981\u5e72\u6270\u65e5\u5fd7\uff0c\u589e\u52a0jvm\u4fe1\u606f
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u5386\u53f2\u6570\u636e\u517c\u5bb9\uff0c\u9ed8\u8ba4\u4e0d\u5f00\u542f\u53d8\u91cf\u89c4\u5219
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u53d8\u91cf\u5f53\u6240\u6709\u4f18\u5148\u89c4\u5219\u4e0d\u9009\u65f6\uff0c\u9ed8\u8ba4\u8fc7\u7a0b\u53d8\u91cf\u4f18\u5148\u5e76\u517c\u5bb9\u5386\u53f2\u6570\u636e

    \u95ee\u9898\u4fee\u590d

    • fix(\u5de5\u4f5c\u53f0): \u5de5\u4f5c\u53f0\u6211\u7684\u5f85\u529e\u5c55\u793a\u4e86\u5df2\u5173\u95ed\u7684\u7f3a\u9677
    • fix(\u5de5\u4f5c\u53f0): \u4fee\u590d\u63a5\u53e3\u5b9a\u4e49\u4ee5\u53ca\u63a5\u53e3\u7528\u4f8b\u5728\u5207\u6362\u5f85\u5b8c\u6210\u65f6\u8fc7\u6ee4\u6761\u4ef6\u4e0d\u6e05\u7a7a\u95ee\u9898
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590dcase\u6dfb\u52a0\u540e\u7f6e\u811a\u672c\uff0c\u591a\u6b21\u4fdd\u5b58\uff0c\u5185\u5bb9\u8fd8\u662f\u4e0a\u4e00\u6b21\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u63a8\u8350jsonpath\u65ad\u8a00\u7d22\u5f15\u8d85\u8fc710\u65e0\u6cd5\u751f\u6210\u9884\u671f\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u5b9a\u65f6\u4efb\u52a1\u9009\u62e9cron\u8868\u8fbe\u5f0f\u65e0\u6cd5\u9009\u62e9\u5e74\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u73af\u5883\u53d8\u91cf\u663e\u793a\u591a\u9009\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u573a\u666f\u8de8\u9879\u76ee\u6267\u884c\u65e0\u6cd5\u4fdd\u5b58\u522b\u7684\u9879\u76ee\u7684\u73af\u5883\u53d8\u91cf\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u6267\u884c\u5faa\u73af\u63a7\u5236\u5668\u4e0b\u9762\u7684\u6b65\u9aa4\u6ca1\u6709\u7ed3\u679c\u72b6\u6001\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5bfc\u5165\u90e8\u5206postman\u6587\u4ef6\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u6587\u5b57\u7edf\u4e00\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u90e8\u5206\u63a5\u53e3\u5bfc\u51faswagger\u6587\u4ef6\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5bfc\u5165\u9875\u9762\u4fdd\u7559swagger\u4e0a\u6b21\u914d\u7f6e\u53c2\u6570\u8bb0\u5f55\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u6539\u8fdb\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875\u7684\u63a5\u53e3\u7528\u4f8b\u7edf\u8ba1\u65b9\u6cd5
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u7981\u7528\u672c\u5730\u6267\u884c\u540e\u5355\u6b65\u8c03\u8bd5\u63d0\u793a\u9519\u8bef\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u6267\u884c\u8fc7\u7a0b\u5305\u62ecCSV\uff0c\u90e8\u5206\u53c2\u6570\u6ca1\u6709\u521d\u59cb\u5316\u7684\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u67e5\u8be2\u9879\u76ee\u63a5\u53e3\u652f\u6301\u6839\u636eJira\u548cZentao\u7684\u5173\u8054ID\u67e5\u8be2
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u67e5\u770bcase\u65ad\u8a00\u811a\u672c\u4e0d\u663e\u793a\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u5173\u8054\u591a\u5c42\u7ea7\u9700\u6c42\u663e\u793a\u4e3a\u7a7a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8111\u56fe\u590d\u5236\u7c98\u8d34\u540e\u6570\u636e\u5c55\u793a\u9519\u8bef
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u5217\u8868\u5bfc\u5165\u591a\u9009\u8f93\u5165\u5b57\u6bb5\u65f6\uff0c \u89e3\u6790\u503c\u6709\u8bef
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u82f1\u6587\u73af\u5883\u4e0b\uff0c\u7528\u4f8b\u5bfc\u5165\u8d23\u4efb\u4eba\u5931\u8d25
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u82f1\u6587\u8bed\u5883\u4e0b\uff0c\u7528\u4f8b\u5bfc\u5165\u7528\u4f8b\u7b49\u7ea7\u5931\u8d25
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u5927\u6279\u91cf\u6267\u884c\u8d85\u65f6\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u8111\u56fe\u66f4\u65b0\u7528\u4f8b\u540e\u6267\u884c\u4eba\u6ca1\u6709\u66f4\u65b0
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u5bfc\u5165\u591a\u503c\u8f93\u5165\u540e\uff0c\u5217\u8868\u4e0d\u5c55\u793a\u6570\u636e
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8111\u56fe\u63d0\u793a\u9519\u8bef\u4fe1\u606f\u540e\uff0c\u518d\u6b21\u4fdd\u5b58\u4f1a\u5bfc\u81f4\u7528\u4f8b\u4e22\u5931
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u53d6\u6d88\u8bb0\u4f4f\u8de8\u9875\u9009\u62e9\u7684\u8bb0\u5f55\u524d\u4e00\u9875\u7684\u6570\u636e\u4e0d\u80fd\u5220\u9664\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u5bfc\u51fa\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u7528\u4f8b\u8d44\u6e90\u6c60\u73af\u5883\u663e\u793a\u4e0d\u6b63\u786e\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u6279\u91cf\u6267\u884c\u63a5\u53e3\u7528\u4f8b\u6ca1\u6709\u6309\u7167\u8868\u683c\u987a\u5e8f\u6267\u884c\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u53d1\u9001\u901a\u77e5\u65f6\u672a\u6267\u884c\u72b6\u6001\u6ca1\u6709\u7edf\u8ba1\u6570\u7684\u95ee\u9898
    • fix(\u901a\u7528\u529f\u80fd): \u5168\u9009\u6846\u4e0b\u62c9\u5217\u8868\uff0c\u70b9\u51fb\u9009\u62e9\u6240\u6709\u6570\u636e\u6216\u8005\u53ef\u89c1\u6570\u636e\uff0c\u4e0d\u51fa\u73b0\u52fe\u9009\u6548\u679c
    "},{"location":"about/changelog/#v260","title":"v2.6.0","text":"

    2023\u5e741\u670812\u65e5

    \u65b0\u589e\u529f\u80fd

    • UI\u81ea\u52a8\u5316\u6d4b\u8bd5\u6a21\u5757\u4e0e\u73af\u5883\u7ba1\u7406\u5168\u9762\u6253\u901a\uff08X-Pack\uff09
    • \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7528\u4f8b\u652f\u6301\u8bb0\u4f4f\u8de8\u9875\u9009\u62e9\u7684\u8bb0\u5f55
    • \u63a5\u53e3\u5b9a\u4e49\u5217\u8868\u652f\u6301\u6279\u91cf\u590d\u5236\u6307\u5b9a\u7248\u672c\u7684CASE\u548cMOCK\u6570\u636e\uff08X-Pack\uff09
    • \u53d8\u66f4Jenkins Job\u8fd0\u884c\u7ed3\u679c\u4e3a\u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u8fd0\u884c\u7ed3\u679c

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u8c03\u6574\u6d4b\u8bd5\u8ba1\u5212\u5b9e\u9645\u7ed3\u679c\u5b57\u6570\u9650\u5236\uff08\u5c06300\u5b57\u6570\u8c03\u6574\u4e3a500\uff09
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u5b9a\u65f6\u4efb\u52a1\u6267\u884c\u7684\u6d4b\u8bd5\u8ba1\u5212\u751f\u6210\u62a5\u544a\u540e\u652f\u6301\u7f16\u8f91\u62a5\u544a\u603b\u7ed3
    • \u63a5\u53e3\u6d4b\u8bd5\uff1aMOCK\u7684\u540e\u7f6e\u811a\u672c\u652f\u6301\u83b7\u53d6\u4e0d\u540c\u683c\u5f0f\u7684\u8bf7\u6c42\u6570\u636e
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u8fd0\u884c\u73af\u5883\u5217\u8868\u652f\u6301\u6a21\u7cca\u641c\u7d22
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u5355\u6b65\u8c03\u8bd5\u7528\u4f8b\u6216\u573a\u666f\u6b65\u9aa4\u65f6\u54cd\u5e94\u5185\u5bb9\u81ea\u52a8\u5c55\u5f00
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3TEST\u652f\u6301\u4fdd\u7559\u6700\u8fd1\u4e00\u6b21\u6267\u884c\u8bb0\u5f55
    • \u901a\u7528\u529f\u80fd\uff1a\u6807\u7b7e\u5b57\u6570\u8fc7\u591a\u5c55\u793a\u4f18\u5316
    • \u901a\u7528\u529f\u80fd\uff1a\u63a5\u53e3\u573a\u666f\u5b9a\u65f6\u4efb\u52a1\u901a\u77e5\u589e\u52a0\u914d\u7f6e\u6d4b\u8bd5\u62a5\u544a\u514d\u767b\u5f55\u53c2\u6570\uff08X-Pack\uff09

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u901a\u8fc7\u6279\u91cf\u4fee\u6539\u7684\u65b9\u5f0f\u4fee\u6539\u6307\u5b9a\u81ea\u5b9a\u4e49\u5b57\u6bb5\u4f1a\u5bfc\u81f4\u5168\u90e8\u5b57\u6bb5\u88ab\u4fee\u6539\u7684\u95ee\u9898\uff08GitHub #21075\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dAPI\u81ea\u52a8\u5316\u9996\u9875\u7edf\u8ba1\u4fe1\u606f\u5728\u5207\u6362table\u9875\u540e\u76f8\u5173\u7edf\u8ba1\u4fe1\u606f\u4e0d\u5c55\u793a\u7684\u95ee\u9898\uff08GitHub #21120\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u4f7f\u7528\u63a5\u53e3\u81ea\u52a8\u5316\u8f6c\u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u65f6\u83b7\u53d6\u4e0d\u5230\u8fd0\u884c\u73af\u5883\u7684\u73af\u5883\u53d8\u91cf\u7684\u95ee\u9898\uff08GitHub #21150\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u4e2d\u5355\u72ec\u6267\u884c\u7528\u4f8b\u4e0d\u80fd\u8c03\u7528\u73af\u5883\u53d8\u91cf\u7684\u95ee\u9898\uff08GitHub #21116\uff09
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u663e\u793a\u8bbe\u7f6e\u4fee\u6539\u7cfb\u7edf\u540d\u79f0\u4e0d\u751f\u6548\u7684\u95ee\u9898\uff08GitHub #21247\uff09
    "},{"location":"about/changelog/#v251","title":"v2.5.1","text":"

    2022\u5e7412\u670830\u65e5

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u6a21\u5757\u6811\u591a\u6b21\u4fdd\u5b58
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7981\u6b62\u6279\u91cf\u5220\u9664\u8fd0\u884c\u4e2d\u7684\u6d4b\u8bd5\u8ba1\u5212

    \u95ee\u9898\u4fee\u590d

    • fix(\u5b89\u5168\u6f0f\u6d1e): \u4fee\u590d\u672a\u68c0\u67e5\u6587\u4ef6\u540d\u5bfc\u81f4\u6587\u4ef6\u53ef\u80fd\u88ab\u4e0a\u4f20\u5230\u4efb\u610f\u8def\u5f84\u7684\u95ee\u9898 (CVE-2022-46178)
    • fix(\u5de5\u4f5c\u53f0): \u5de5\u4f5c\u53f0\u9996\u9875\u7f3a\u9677\u7edf\u8ba1\u6709\u8bef
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dJson\u6570\u7ec4\u65e0\u6cd5\u4f7f\u7528mock\u6570\u636e\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590djson\u683c\u5f0f\u7684\u8bf7\u6c42\u6570\u636e\u5192\u53f7\u88ab\u66ff\u6362\u6210\u7b49\u53f7\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dswagger3.0\u6587\u4ef6\u5bfc\u5165\u5bf9content\u7684example\u6ca1\u6709\u5904\u7406\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u53c2\u6570\u6dfb\u52a0mock\u6570\u636e\u65f6\u6e05\u7a7a\u5386\u53f2\u51fd\u6570
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u7edf\u4e00\u63a5\u53e3\u6d4b\u8bd5\u8f6c\u6027\u80fd\u6d4b\u8bd5\u65f6storage\u5e26\u7684\u53c2\u6570
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u91cd\u590d\u521b\u5efa\u672a\u89c4\u5212\u63a5\u53e3\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u548c\u573a\u666f\u8f6c\u6027\u80fd\u6d4b\u8bd5\u65f6\u4f1a\u5076\u53d1\u91cd\u590djmx\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u70b9\u51fb\u573a\u666f\u62a5\u544a\u8df3\u8f6c\u94fe\u63a5\u6ca1\u6709\u8df3\u8f6c\u5230\u5bf9\u5e94\u9879\u76ee\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212-\u573a\u666f/\u6027\u80fd\u6d4b\u8bd5\u62a5\u544a \u4e0d\u663e\u793a\u8fd0\u884c\u6a21\u5f0f\u548c\u8d44\u6e90\u6c60
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u7528\u4f8b\u4e0d\u5c55\u793a\u81ea\u5b9a\u4e49\u5b57\u6bb5
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u5bfc\u51fa\u591a\u503c\u8f93\u5165\u81ea\u5b9a\u4e49\u5b57\u6bb5\u4e3a\u7a7a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u4fdd\u5b58\u62a5\u544a\u5185\u5bb9\u65f6\u4e0d\u8d4b\u5f00\u59cb\u65f6\u95f4\u548c\u7ed3\u675f\u65f6\u95f4
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u67e5\u8be2\u62a5\u544a\u65f6\u65e0\u6cd5\u67e5\u51fa\u5df2\u5220\u9664\u4eba\u6267\u884c\u7684\u62a5\u544a
    "},{"location":"about/changelog/#v250","title":"v2.5.0","text":"

    2022\u5e7412\u670827\u65e5

    \u65b0\u589e\u529f\u80fd

    • \u5de5\u4f5c\u53f0UX\u4ea4\u4e92\u5347\u7ea7
    • \u63a5\u53e3\u6d4b\u8bd5\u9996\u9875\u589e\u52a0\u201c\u7248\u672c\u201d\u7edf\u8ba1\u53e3\u5f84\uff08X-Pack\uff09
    • \u63a5\u53e3\u5b9a\u4e49\u8bf7\u6c42\u53c2\u6570\u4ea4\u4e92\u4f18\u5316
    • \u6d4b\u8bd5\u62a5\u544a\u652f\u6301\u5c55\u793a\u8fd0\u884c\u6a21\u5f0f\u4ee5\u53ca\u8fd0\u884c\u7684\u8d44\u6e90\u6c60
    • \u65b0\u589e\u8d85\u7ea7\u7ba1\u7406\u5458\u7528\u6237\u7ec4

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u670d\u52a1\u96c6\u6210\u5bf9\u63a5\u7b2c\u4e09\u65b9\u5e73\u53f0\u5b9e\u73b0\u63d2\u4ef6\u5316\uff08\u76ee\u524d\u652f\u6301\u7985\u9053\u3001Jira\uff09
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ddf\u8e2a\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u652f\u6301\u5173\u8054UI\u6d4b\u8bd5\u7528\u4f8b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1aMQTT\u63d2\u4ef6\u53d6\u6d88\u8fde\u63a5\u540d\u5fc5\u586b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u573a\u666f\u5d4c\u5957\u5f15\u7528\u7684\u53d8\u91cf\u53d6\u503c\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u652f\u6301\u914d\u7f6e\u81ea\u52a8\u91cd\u5b9a\u5411
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u573a\u666f\u53d8\u91cf-\u8ba1\u6570\u5668\u652f\u6301\u53c2\u6570\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1ajson\u7ed3\u6784\u5316\u7684\u65f6\u5019\u4f1a\u63d0\u4f9bnull\u7c7b\u578b\u6765\u652f\u6301\u4f20null\u503c
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u6d4b\u8bd5\u524d\u540e\u7f6e\u811a\u672c\u652f\u6301beanshell\u5904\u7406\u5668
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u5bfc\u5165\u903b\u8f91\u4f18\u5316\uff08\u652f\u6301\u7248\u672c\u5bf9\u6bd4\uff09
    • UI\u6d4b\u8bd5\uff1aUI\u6d4b\u8bd5\u7b2c\u4e00\u6b65\u652f\u6301\u903b\u8f91\u63a7\u5236\u5668\uff08X-Pack\uff09
    • UI\u6d4b\u8bd5\uff1aUI\u6d4b\u8bd5\u8be6\u60c5\u9875\u6279\u91cf\u7f16\u8f91\u589e\u52a0\u65ad\u8a00\u914d\u7f6e\u7684\u9009\u9879\uff08X-Pack\uff09
    • \u901a\u7528\u529f\u80fd\uff1a\u6d88\u606f\u901a\u77e5\u589e\u52a0\u5b9a\u65f6\u6e05\u7406\u673a\u5236
    • \u901a\u7528\u529f\u80fd\uff1aJenkins\u751f\u6210\u7684\u62a5\u544a\u94fe\u63a5\u652f\u6301\u914d\u7f6e\u514d\u767b\u5f55\uff08X-Pack\uff09

    \u95ee\u9898\u4fee\u590d

    • fix\uff08\u5b89\u5168\u6f0f\u6d1e\uff09\uff1a\u4fee\u590dIssueProxyResourceService::getMdImageByUrl \u4e2d\u7684\u670d\u52a1\u5668\u7aef\u8bf7\u6c42\u4f2a\u9020 (CVE-2022-23544)
    • fix\uff08\u5b89\u5168\u6f0f\u6d1e\uff09\uff1a\u4fee\u590dApiTestCaseService::deleteBodyFiles \u4e2d\u7684\u8def\u5f84\u6ce8\u5165 (CVE-2022-23512)
    • fix\uff08\u6d4b\u8bd5\u8ddf\u8e2a\uff09\uff1a\u4fee\u590d\u529f\u80fd\u7528\u4f8b\u5217\u8868\uff0c\u5168\u9009\u518d\u5c06\u90e8\u5206\u7528\u4f8b\u53d6\u6d88\u52fe\u9009\uff0c\u70b9\u51fb\u6279\u91cf\u5220\u9664\u540e\u4ecd\u4f1a\u5220\u9664\u6240\u6709\u7528\u4f8b\u7684\u95ee\u9898\uff08GitHub #20553\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u63a5\u53e3\u7f16\u8f91\uff0c\u5f00\u542f\u540c\u6b65case\u6216\u8005\u53d8\u66f4\u901a\u77e5\u4fdd\u5b58\u540e\u62a5\u9519\u7684\u95ee\u9898\uff08GitHub #20376\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u573a\u666f\u6d4b\u8bd5\u62a5\u544a\u5bfc\u51fa\u7684PDF\u6587\u4ef6\u67e5\u770b\u65f6\u6bd4\u8f83\u6a21\u7cca\u7684\u95ee\u9898\uff08GitHub #20738\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u73af\u5883\u914d\u7f6e\u91cc\u9762\u7684\u8bf7\u6c42\u5934Cookie\u548c\u5355\u4e2a\u63a5\u53e3\u91cc\u9762\u8bf7\u6c42\u5934\u51b2\u7a81\u7684\u95ee\u9898\uff08GitHub #20467\uff09
    • fix\uff08UI\u6d4b\u8bd5\uff09\uff1a\u4fee\u590dUI\u8fdb\u884cdiv\u5143\u7d20\u62d6\u62fd\u65f6\u81ea\u52a8\u5168\u5c4f\uff0c\u90e8\u5206\u5143\u7d20\u5b9a\u4f4d\u8def\u5f84\u65e0\u6cd5\u8bc6\u522b\u7684\u95ee\u9898\uff08GitHub #20447\uff09
    • fix\uff08\u6027\u80fd\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u6027\u80fd\u6d4b\u8bd5\u8bbe\u7f6e\u5b8c\u8d44\u6e90\u6c60\u4e2d\u538b\u529b\u673a\u7684\u6700\u5927\u5e76\u53d1\u6570\uff0c\u538b\u6d4b\u6267\u884c\u65f6\u6ca1\u9650\u5236\u4f4f\u5355\u4e2a\u538b\u529b\u673a\u7684\u6700\u5927\u5e76\u53d1\u6570\u7684\u95ee\u9898\uff08GitHub - #20103\uff09
    • fix\uff08\u901a\u7528\u529f\u80fd\uff09\uff1a\u4fee\u590d\u4efb\u52a1\u4e2d\u5fc3\u63a5\u53e3\u8bf7\u6c42\u65f6\u95f4\u957f\uff0c\u5bfc\u81f4\u4efb\u52a1\u4e2d\u5fc3\u8bbf\u95ee\u65f6\u7a7a\u767d\u9875\u7ecf\u5e38\u51fa\u73b0\u7684\u95ee\u9898\uff08GitHub #20425\uff09
    "},{"location":"about/changelog/#v241","title":"v2.4.1","text":"

    2022\u5e7412\u67088\u65e5

    \u529f\u80fd\u4f18\u5316

    • feat(\u63a5\u53e3\u6d4b\u8bd5): HTTP\u90e8\u5206\u53c2\u6570\u5217\u652f\u6301\u53ef\u914d\u7f6e
    • refactor(\u63a5\u53e3\u8bbe\u7f6e): \u4f18\u5316\u56fd\u9645\u5316\u663e\u793a
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f18\u5316\u5927\u91cf\u7528\u4f8b\u6267\u884c\u5b58\u50a8\u6548\u7387
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u5217\u8868\u9875\u9762\u6e32\u67d3\u6027\u80fd\u4f18\u5316
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u6b65\u9aa4\u89e3\u6790\u4f18\u5316\u7edf\u4e00\u89e3\u6790\u65b9\u5f0f
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u517c\u5bb9\u5386\u53f2\u6267\u884c\u7ed3\u679c\u5904\u7406\u65e5\u5fd7\u4e2d\u51fa\u73b0\u5f02\u5e38\u95ee\u9898#20236
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u7f16\u8f91\u9875\u9762\u9875\u5934\u90e8\u5206\u6837\u5f0f\u4f18\u5316

    \u95ee\u9898\u4fee\u590d

    • fix(UI\u81ea\u52a8\u5316): \u5173\u8054\u4e00\u4e2aui\u573a\u666f\u7528\u4f8b\uff0c\u6ca1\u6709\u6267\u884c\uff0c\u6d4b\u8bd5\u8ba1\u5212\u7684\u6d4b\u8bd5\u8fdb\u5ea6\u53d8\u6210100%\u4e86
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dcase\u7f16\u8f91\u65f6\u65e5\u5fd7\u4e2d\u51fa\u73b0\u5f02\u5e38\u4fe1\u606f
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u89e3\u51b3har\u6587\u4ef6\u5bfc\u5165\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dswagger\u5bfc\u5165\u5931\u8d25\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5f15\u7528\u7684case\u4ecd\u53ef\u4ee5\u7f16\u8f91\u53c2\u6570\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u5d4c\u5957\u4e8b\u52a1\u62c6\u5206\uff0c\u89e3\u51b3\u5e76\u53d1\u8fc7\u7a0b\u53ef\u80fd\u4ea7\u751f\u6b7b\u9501\u7684\u65b9\u6cd5
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u90e8\u5206tcp\u54cd\u5e94\u4f53\u5185\u4f9d\u7136\u5305\u542burl\u7b49\u975etcp\u4fe1\u606f\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5220\u9664\u590d\u5236\u7684case\uff0c\u522b\u7684\u6b65\u9aa4\u7684\u65ad\u8a00\u548c\u524d\u540e\u7f6e\u64cd\u4f5c\u4e5f\u88ab\u5220\u9664\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u5b9a\u4e49\u6267\u884c\u65f6string\u53d6\u679a\u4e3e\u503c\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5386\u53f2\u573a\u666f\u7684\u590d\u5236\u7684\u63a5\u53e3\u65e0\u6cd5\u53e6\u5b58\u4e3acase\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u4efb\u52a1\u4e2d\u5fc3\u6761\u4ef6\u5207\u6362\u4e0d\u5237\u65b0\u7edf\u8ba1\u72b6\u6001\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u62a5\u544a\u540d\u79f0\u5e26\u7279\u6b8a\u5b57\u7b26\u5bfc\u51fa\u5931\u8d25\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u540c\u540d\u6570\u636e\u6e90\u6267\u884c\u8fc7\u7a0b\u4ea7\u751f\u5927\u91cf\u9519\u8bef\u65e5\u5fd7\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5f15\u7528\u591a\u4e2a\u4e8b\u52a1\u63a7\u5236\u5668\u72b6\u6001\u663e\u793a\u9519\u8bef\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6587\u6863\u54cd\u5e94\u4f53\u90e8\u5206\u5b57\u6bb5\u6ca1\u6709\u683c\u5f0f\u5316\u89e3\u6790\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u6587\u6863\u6837\u5f0f\u4fee\u6539\u4e2d\u51fa\u73b0\u7684\u90e8\u5206\u6570\u636e\u4e0d\u663e\u793a\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u6d4b\u8bd5\u90e8\u5206\u53c2\u6570\u6837\u5f0f\u6539\u4e3a\u8868\u683c\uff0c\u5e76\u9488\u5bf9\u4e00\u7cfb\u5217\u95ee\u9898\u6c47\u603b\u8fdb\u884c\u4f18\u5316
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u4e2d\u6279\u91cf\u5220\u9664\u590d\u5236\u7684case\u6b65\u9aa4\u65f6\uff0c\u524d\u540e\u7f6e\u64cd\u4f5c\uff0c\u65ad\u8a00\u4e5f\u88ab\u5220\u9664\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u7528\u4f8b\u9644\u4ef6\u88ab\u76f4\u63a5\u5220\u9664\u6f0f\u6d1e
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u8bbe\u7f6e\u5bfc\u5165\u63a5\u53e3\u6216\u7528\u4f8b\u9ed8\u8ba4\u542f\u7528\u72b6\u6001
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u65e0xpack\u6743\u9650\u521b\u5efa\u9879\u76ee\u5931\u8d25\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u64cd\u4f5c\u65e5\u5fd7\u5bf9\u8c61\u4e2d\u6dfb\u52a0\u7528\u6237\u7ec4\u548c\u6743\u9650\u9009\u9879
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): Jira\u540c\u6b65\u5168\u91cf\u7f3a\u9677\u5931\u8d25
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212-\u5173\u8054ui-\u6267\u884c\u8ba1\u5212-\u6d4b\u8bd5\u62a5\u544a\u7684id\u4e3a\u7a7a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u7ba1\u7406\u5bfc\u51faEXCEL\u5355\u5143\u683cTEXT\u957f\u5ea6\u5927\u4e8ePOI\u9650\u5236\u7684\u5355\u5143\u683c\u957f\u5ea6\u65f6\u9519\u8bef
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ddf\u8e2a\u9996\u9875TABLE\u5217\u5bf9\u9f50
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6279\u91cf\u5173\u8054\u9700\u6c42\u5931\u6548
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u7f3a\u9677\u7ba1\u7406\u5173\u8054Azure\u81ea\u5b9a\u4e49\u5b57\u6bb5\u5bfc\u5165\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7981\u7528\u672c\u5730\u6267\u884c\u540e\u53ea\u6709UI\u6d4b\u8bd5\u4e0d\u505a\u6821\u9a8c
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u5bfc\u51fa\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u5bfc\u51fa\u7cfb\u7edf\u72b6\u6001\u5b57\u6bb5\u6709\u8bef
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u7684\u5173\u8054\u9700\u6c42\u663e\u793a\u6709\u8bef
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7985\u9053\u540c\u6b65\u7f3a\u9677\u540e\u56fe\u7247\u65e0\u6cd5\u5c55\u793a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u7ba1\u7406\u81ea\u5b9a\u4e49\u5b57\u6bb5\u7b5b\u9009\u65e0\u6548
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f9d\u8d56\u5173\u7cfb\u56fe\u663e\u793a\u4e86\u4e0b\u5c42\u7684\u5bcc\u6587\u672c\u6846
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5207\u6362\u6d4b\u8bd5\u8ba1\u5212\u65f6\u641c\u7d22\u6846\u5185\u5bb9\u672a\u91cd\u7f6e
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7f3a\u9677\uff0c\u7528\u4f8b\u5217\u8868\u4e0d\u53ef\u89c1
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6570\u636e\u592a\u591a\u65f6\uff0c\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u5217\u8868\u5185\u5b58\u6ea2\u51fa
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u5217\u8868\u7f13\u5b58\u641c\u7d22\u6846\u5185\u5bb9\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7985\u9053\u7f3a\u9677\u4e0a\u4f20\u56fe\u7247\u94fe\u63a5\u540e\u540c\u6b65\uff0c\u56fe\u7247\u4e0d\u663e\u793a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ddf\u8e2a\u9996\u9875\u7a7a\u6570\u636e\u6837\u5f0f\u53ca\u7f3a\u9677\u540c\u6b65\u65f6\u95f4\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u5224\u65ad\u6ca1\u6709\u6267\u884c\u8d44\u6e90\u5219\u4e0d\u8c03\u7528\u8be5\u63a5\u53e3
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u5f15\u7528\u573a\u666f\u81ea\u52a8\u5316\u7ffb\u9875\u4fdd\u7559\u9009\u9879\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u56fa\u5b9a\u8282\u70b9\u6216\u81ea\u5b9a\u4e49\u5206\u914d\u7528\u6237\u6570\u65f6\u6700\u5927\u5e76\u53d1\u6570\u4e0d\u80fd\u9650\u5236\u7684\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u73af\u5883\u8bbe\u7f6e\u5386\u53f2\u6570\u636e\u4e0d\u80fd\u7f16\u8f91\u5907\u6ce8\u7684\u7f3a\u9677
    • fix(\u901a\u7528\u529f\u80fd): \u4fee\u590d\u5b9a\u65f6\u4efb\u52a1\u8f93\u5165\u9519\u8bef\u8868\u8fbe\u5f0f\u53cd\u89e3\u6790\u9875\u9762\u5d29\u6e83\u95ee\u9898
    "},{"location":"about/changelog/#v240","title":"v2.4.0","text":"

    2022\u5e7411\u670824\u65e5

    \u65b0\u589e\u529f\u80fd

    • \u6a21\u5757\u9996\u9875 UX \u4ea4\u4e92\u5347\u7ea7
    • \u7f3a\u9677\u7ba1\u7406\u652f\u6301 Excel \u5bfc\u5165/\u5bfc\u51fa\u7f3a\u9677
    • \u6d4b\u8bd5\u8ba1\u5212\u652f\u6301\u533a\u5206\u73af\u5883\u540c\u6b65\u8fd0\u884c
    • \u63a5\u53e3\u6d4b\u8bd5\u652f\u6301\u7981\u7528\u672c\u5730\u6267\u884c \uff08X-Pack \u589e\u5f3a\u5305\u5185\uff09
    • UI \u81ea\u5b9a\u4e49\u6307\u4ee4\u652f\u6301\u53c2\u6570\u5316\u914d\u7f6e\uff08X-Pack \u589e\u5f3a\u5305\u5185\uff09
    • \u5355\u70b9\u767b\u5f55\u65b0\u589e OAuth 2.0 \u534f\u8bae\uff08X-Pack \u589e\u5f3a\u5305\u5185\uff09

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u670d\u52a1\u96c6\u6210\u5bf9\u63a5\u7b2c\u4e09\u65b9\u5e73\u53f0\u63d2\u4ef6\u5316\uff08\u7528\u6237\u53ef\u4ee5\u81ea\u884c\u5bf9\u63a5\u7b2c\u4e09\u65b9\u9879\u76ee\u7ba1\u7406\u5e73\u53f0\uff09
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u5217\u8868\u9ad8\u7ea7\u641c\u7d22\u589e\u52a0\u7528\u4f8b\u72b6\u6001\u3001\u5173\u8054\u9700\u6c42\u641c\u7d22
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ba1\u5212\u652f\u6301\u6279\u91cf\u5220\u9664\u529f\u80fd
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u573a\u666f\u7528\u4f8b\u4e2d\u590d\u5236\u7684 API \u6b65\u9aa4\u652f\u6301\u53e6\u5b58\u4e3a\u5355\u63a5\u53e3\u7528\u4f8b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3 CASE \u5f15\u7528\u5173\u7cfb\u67e5\u770b\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a7\u5236\u5668\u5185\u5f15\u7528\u7684\u573a\u666f\u6216\u7528\u4f8b\u652f\u6301\u542f\u7528/\u7981\u7528\u64cd\u4f5c
    • UI\u6d4b\u8bd5\uff1aUI \u6d4b\u8bd5\u652f\u6301\u5173\u8054\u201c\u6587\u4ef6\u7ba1\u7406\u201d\u4e2d\u7684\u6587\u4ef6\uff08X-Pack\uff09
    • UI\u6d4b\u8bd5\uff1aUI \u6d4b\u8bd5\u8be6\u60c5\u9875\u652f\u6301\u6279\u91cf\u7f16\u8f91\u64cd\u4f5c\uff08X-Pack\uff09
    • UI\u6d4b\u8bd5\uff1aUI \u6d4b\u8bd5\u652f\u6301\u914d\u7f6e\u662f\u5426\u5ffd\u7565\u8bc1\u4e66\uff08X-Pack\uff09
    • UI\u6d4b\u8bd5\uff1aUI \u6d4b\u8bd5\u652f\u6301\u83b7\u53d6\u9875\u9762\u5143\u7d20\u7684CSS\u5c5e\u6027\uff08X-Pack\uff09
    • \u6027\u80fd\u6d4b\u8bd5\uff1a\u6027\u80fd\u6d4b\u8bd5\u5217\u8868\u589e\u52a0\u8868\u5934\u5b57\u6bb5\u6392\u5e8f
    • \u6027\u80fd\u6d4b\u8bd5\uff1a\u6027\u80fd\u6d4b\u8bd5 Kubernetes \u8d44\u6e90\u6c60\u652f\u6301\u81ea\u5b9a\u4e49 Job \u6a21\u677f\uff08X-Pack\uff09
    • \u6027\u80fd\u6d4b\u8bd5\uff1a\u5b9e\u65f6\u62a5\u544a\u8ba1\u7b97\u4f18\u5316
    • \u901a\u7528\u529f\u80fd\uff1aJenkins \u63d2\u4ef6\u652f\u6301\u53c2\u6570\u5316
    • \u901a\u7528\u529f\u80fd\uff1aJenkins \u63d2\u4ef6\u652f\u6301\u9009\u62e9UI\u6d4b\u8bd5

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u5728\u6d4b\u8bd5\u8ba1\u5212\u8bbe\u7f6e\u5931\u8d25\u91cd\u8bd5\uff0c\u4f46\u6ca1\u6709\u91cd\u65b0\u6267\u884c\u7684\u95ee\u9898\uff08GitHub #19228\uff09
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u6267\u884c\u7684\u65f6\u5019\u4e0d\u80fd\u5207\u6362\u6b65\u9aa4\u63cf\u8ff0\u7684\u95ee\u9898\uff08GitHub #19851\uff09
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u7528\u4f8b\u81ea\u5b9a\u4e49 ID \u540e\uff0c\u5728\u7528\u4f8b\u8bc4\u5ba1\u5217\u8868\u8fd8\u663e\u793a\u4e3a\u7cfb\u7edf ID \u7684\u95ee\u9898\uff08GitHub #19730\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u591a\u9879\u76ee\u540c\u540d\u73af\u5883\u53d8\u91cf\u5b58\u5728\u8986\u76d6\u7684\u95ee\u9898\uff08GitHub #19931\uff09
    • fix(UI\u6d4b\u8bd5): \u4fee\u590d UI \u573a\u666f\u8f6c\u4e3a\u6307\u4ee4\u65f6\uff0c\u5bf9\u5e94\u7684 UI \u573a\u666f\u53d8\u91cf\u6ca1\u6709\u540c\u6b65\u8fc7\u53bb\uff0c\u9700\u8981\u624b\u52a8\u91cd\u65b0\u6dfb\u52a0\u7684\u95ee\u9898\uff08GitHub #19424\uff09
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u4fdd\u5b58\u6027\u80fd\u6d4b\u8bd5\u63d0\u793a\u9519\u8bef\u7684\u95ee\u9898\uff08GitHub #19734\uff09
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u6d88\u606f\u901a\u77e5\u4e0d\u80fd\u901a\u77e5\u7f3a\u9677\u5904\u7406\u4eba\u7684\u95ee\u9898\uff08GitHub #19855\uff09
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d Minio \u6302\u6389\u540e\uff0c\u9875\u9762\u8fd8\u80fd\u4e0a\u4f20\u6587\u4ef6\u7684\u95ee\u9898\uff08GitHub #19860\uff09
    "},{"location":"about/changelog/#v231","title":"v2.3.1","text":"

    2022\u5e7411\u670810\u65e5

    \u529f\u80fd\u4f18\u5316

    • refactor(\u5de5\u4f5c\u53f0): \u66f4\u6539\u6211\u7684\u5f85\u529e\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u7b5b\u9009\u6761\u4ef6
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u7edf\u4e00\u4efb\u52a1\u4e2d\u5fc3Jenkins\u8c03\u7528\u72b6\u6001
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u8111\u56fe\u7f3a\u9677\u56fd\u9645\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u4ee3\u7801\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u589e\u52a0\u7528\u4f8b\u8bc4\u5ba1\u540d\u79f0\u957f\u5ea6\u9650\u5236
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u7528\u4f8b\u8de8\u9879\u76ee\u8df3\u8f6c\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6ca1\u6709\u63a5\u53e3\u6d4b\u8bd5\u6743\u9650\u7684\u5173\u8054\u8868\u4e0d\u53ef\u4ee5\u70b9\u51fb\u8df3\u8f6c
    • refactor(\u4efb\u52a1\u4e2d\u5fc3): \u4f18\u5316\u4efb\u52a1\u4e2d\u5fc3\u6309\u7167\u4efb\u52a1\u7c7b\u578b\u52a0\u8f7d
    • refactor(\u4efb\u52a1\u4e2d\u5fc3): \u4efb\u52a1\u7edf\u8ba1\u4f18\u5316\u53ea\u7edf\u8ba1\u5df2\u7ecf\u5f00\u59cb\u6267

    \u95ee\u9898\u4fee\u590d

    • fix(\u5de5\u4f5c\u53f0): \u4fee\u590d\u6267\u884c\u5931\u8d25\u5c31\u8fdb\u5165\u5de5\u4f5c\u53f0\u5f85\u66f4\u65b0\u5217\u8868\u95ee\u9898
    • fix(UI\u81ea\u52a8\u5316): jenkins\u6267\u884c-\u6d4b\u8bd5\u62a5\u544a\u5217\u8868\u89e6\u53d1\u65b9\u5f0f\u7f3a\u5c11API\u8c03\u7528
    • fix(UI\u81ea\u52a8\u5316): \u4fee\u590dUI\u64cd\u4f5c\u65e5\u5fd7\u4e0d\u663e\u793a\u95ee\u9898
    • fix(UI\u81ea\u52a8\u5316): \u4fee\u590d\u8bbe\u7f6e\u6a21\u5757\u64cd\u4f5c\u65e5\u5fd7UI\u6620\u5c04\u95ee\u9898
    • fix(UI\u81ea\u52a8\u5316): \u4fee\u590d\u5f00\u6e90\u7248\u4efb\u52a1\u4e2d\u5fc3\u62a5\u9519\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u590d\u5236\u6d4b\u8bd5\u8ba1\u5212\u6ca1\u6709\u64cd\u4f5c\u65e5\u5fd7\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u7f3a\u9677\u72b6\u6001\u7edf\u8ba1\u4e0d\u51c6\u786e
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u9996\u9875\u9057\u7559\u7f3a\u9677\u7edf\u8ba1\u603b\u6570\u548c\u5360\u6bd4\u7edf\u8ba1
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u516c\u5171\u7528\u4f8b\u5e93\u7248\u672c\u5b57\u6bb5\u4e0d\u652f\u6301\u7b5b\u9009\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u67e5\u770b\u63a5\u53e3\u6587\u6863\u9875\u9762\u62a5\u9519\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u6267\u884c\u573a\u666f\uff0c\u901a\u8fc7\u7387\u4e0d\u66f4\u65b0\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u73af\u5883\u914d\u7f6e\u5168\u5c40\u8ba4\u8bc1\u4e0d\u751f\u6548\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5f15\u7528\u573a\u666f\u6b65\u9aa4\u80fd\u6dfb\u52a0\u540c\u7ea7\u6b65\u9aa4\u95ee\u9898
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590dtcp\u6267\u884c\u6ca1\u6709\u63d0\u793a\u9009\u62e9\u73af\u5883\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u81ea\u5b9a\u4e49\u8bf7\u6c42\u6267\u884c\u53d8\u91cf\u503c\u7f3a\u5931\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u63a5\u53e3\u5b9a\u4e49\u65b0\u503c\u548c\u65e7\u503c\u663e\u793a\u4e00\u6837\u7684\u7f3a\u9677
    • fix(\u4efb\u52a1\u4e2d\u5fc3): \u4fee\u590dui\u6d4b\u8bd5\u4efb\u52a1\u6ca1\u6709\u5206\u9875\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u66f4\u6362\u7cfb\u7edfLOGO\u540e\u4e0d\u751f\u6548
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u64cd\u4f5c\u65e5\u5fd7\u64cd\u4f5c\u5bf9\u8c61\u73af\u5883\u8bbe\u7f6e\u66f4\u6539\u540d\u79f0\u4e3a\u73af\u5883\u7ba1\u7406
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u64cd\u4f5c\u65e5\u5fd7\u4e2d\u64cd\u4f5c\u5bf9\u8c61\u7f3a\u5c11\u5de5\u4f5c\u7a7a\u95f4\u7684\u73af\u5883\u7ba1\u7406\u6a21\u5757
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u6d88\u606f\u901a\u77e5\u63a5\u53e3\u5b9a\u4e49API\u66f4\u65b0\u4e8b\u4ef6\u4e00\u4e9b\u6a21\u7248\u5b57\u6bb5\u83b7\u53d6\u4e0d\u5230\u503c\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u7f16\u8f91\u6a21\u677f\u81ea\u5b9a\u4e49\u5b57\u6bb5\u9ed8\u8ba4\u503c\uff0c\u6587\u672c\u8fc7\u5927\u65e0\u6cd5\u7f16\u8f91
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u663e\u793a\u62a5\u544a\u65f6\u6d4b\u8bd5\u8be6\u60c5\u7a7a\u767d\u7684\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u589e\u52a0\u4e86\u81ea\u5b9a\u4e49\u76d1\u63a7\u65f6\u4e0d\u80fd\u6b63\u5e38\u663e\u793a\u76d1\u63a7\u7684\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u7f16\u8f91\u6d4b\u8bd5\u65f6\u5220\u9664\u6587\u4ef6\u540e\u4e0d\u80fd\u7ee7\u7eed\u5bfc\u5165\u540c\u540d\u6587\u4ef6\u7684\u95ee\u9898
    • fix(\u62a5\u544a\u7edf\u8ba1): \u4fee\u590d\u5173\u95ed\u5b9a\u65f6\u4efb\u52a1\u63d0\u793a\u6846\u63d0\u793a\u9519\u8bef\u7684\u95ee\u9898
    • fix(\u62a5\u544a\u7edf\u8ba1): \u6d4b\u8bd5\u7528\u4f8b\u8d8b\u52bf\u62a5\u8868\u67e5\u770b\u9879\u76ee\u4e0d\u518d\u4ee5\u5de5\u4f5c\u7a7a\u95f4\u4e3a\u6761\u4ef6
    "},{"location":"about/changelog/#v230","title":"v2.3.0","text":"

    2022\u5e7410\u670827\u65e5

    \u65b0\u589e\u529f\u80fd

    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u589e\u52a0 XML \u6587\u672c\u81ea\u52a8\u683c\u5f0f\u5316\u529f\u80fd
    • \u63a5\u53e3\u6d4b\u8bd5\uff1aMOCK \u53d8\u66f4\u589e\u52a0\u6d88\u606f\u901a\u77e5
    • \u7f3a\u9677\u7ba1\u7406\uff1a\u652f\u6301\u589e\u91cf\u540c\u6b65\u7b2c\u4e09\u65b9\u5e73\u53f0\u7f3a\u9677

    \u529f\u80fd\u4f18\u5316

    • \u67b6\u6784\u5347\u7ea7\uff1a\u5fae\u670d\u52a1\u6539\u9020
    "},{"location":"about/changelog/#v221","title":"v2.2.1","text":"

    2022\u5e7411\u67082\u65e5

    \u529f\u80fd\u4f18\u5316

    • refactor(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u53bb\u6389\u6587\u4ef6\u4e0a\u4f20\u6570\u91cf\u7684\u9650\u5236
    • refactor: \u524d\u7aef\u8f93\u5165\u6846Mock\u8865\u5168JMeter\u5185\u7f6e\u51fd\u6570\u7684\u63d0\u793a

    \u95ee\u9898\u4fee\u590d

    • fix(UI\u81ea\u52a8\u5316): \u89e3\u51b3UI\u5e76\u53d1\u62a5\u544a\u90e8\u5206\u672a\u6267\u884c\u95ee\u9898
    • fix(UI\u81ea\u52a8\u5316): \u89e3\u51b3UI\u62a5\u544a\u6267\u884c\u65f6\u95f4\u548c\u672a\u6267\u884c\u5217\u8868\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): Jira\u540c\u6b65\u7ecf\u529e\u4eba\u53ca\u9879\u76ee\u96c6\u5b57\u6bb5\u6709\u8bef (#18282)
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8bc4\u5ba1\u8bc4\u8bba\u663e\u793a\u95ee\u9898 (#18206)
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): Jira\u6ca1\u52fe\u9009\u7b2c\u4e09\u65b9\u6a21\u677f\uff0c\u63d0\u4ea4\u7f3a\u9677\u56fe\u7247\u4e0d\u663e\u793a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u8bc4\u5ba1ID\u6392\u5e8f\u663e\u793a\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f9d\u8d56\u5173\u7cfb\u5217\u8868\u5e03\u5c40\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u5bfc\u51fa\u4e71\u5e8f\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f18\u5316\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u67e5\u770b\u901f\u5ea6
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u8bc4\u5ba1\u72b6\u6001\u7b5b\u9009\u5931\u6548
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8bc4\u5ba1\u7528\u4f8b\u5168\u9009\u6279\u91cf\u7f16\u8f91\u7b5b\u9009\u5931\u6548
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u53ca\u7528\u4f8b\u8bc4\u5ba1\u4f9d\u8d56\u5173\u7cfb\u7684\u663e\u793a\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u573a\u666f\u65f6\u62a5\u544a\u5185\u5bb9\u4e3a\u7a7a\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u81ea\u5b9a\u4e49\u5b57\u6bb5\u9ad8\u7ea7\u641c\u7d22\u7ed3\u679c\u6709\u591a\u6761\u4f1a\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5173\u8054Jira\u5e73\u53f0\u4f7f\u7528\u9ed8\u8ba4\u6a21\u677f\u4fee\u6539\u5e73\u53f0\u72b6\u6001\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u63a5\u53e3\u5b9a\u4e49\u4fdd\u5b58\u62a5\u9519\u7684\u7f3a\u9677 (#18258)
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590dcase\u7f16\u8f91\u9875\u9762\u81ea\u5b9a\u4e49\u5b57\u6bb5\u5bcc\u6587\u672c\u5e93\u906e\u6321\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u5faa\u73af\u63a7\u5236\u5668\u4e0b\u573a\u666f\u53d8\u91cfcsv\u53d6\u503c\u4e0d\u5bf9\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u62a5\u544a\u91cd\u7f6e\u89e6\u53d1\u65b9\u5f0f\u9875\u9762\u62a5\u9519\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u5bfc\u5165\u7684\u63a5\u53e3\u5b9a\u4e49\u65e0\u6cd5\u6dfb\u52a0\u6587\u4ef6\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u6587\u6863\u7b5b\u9009\u4e0d\u751f\u6548\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u573a\u666f\u521b\u5efa\u65b0\u7248\u672c\uff0c\u4e0d\u663e\u793a\u521b\u5efa\u4eba\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u63a5\u53e3\u5b9a\u4e49\u81ea\u5b9a\u4e49\u5b57\u6bb5\u8f93\u5165\u6846\uff0c\u8f93\u5165\u957f\u5b57\u7b26\u4fdd\u5b58\u62a5\u9519\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): get\u65b9\u5f0f\u7684mock\u63a5\u53e3\uff0c\u4e0d\u8bbe\u7f6e\u4efb\u4f55\u5339\u914d\u6761\u4ef6\u65f6\uff0c\u54cd\u5e94\u4f53\u4e3a\u7a7a
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u89e3\u51b3\u63a5\u53e3API\u70b9\u51fb\u4fdd\u5b58\u4e00\u952e\u540c\u6b65\u529f\u80fd\u5bfc\u81f4\u63a5\u53e3case\u53c2\u6570\u65e0\u6cd5\u65b0\u589e\u548c\u8986\u76d6\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u89e3\u51b3\u63a5\u53e3swagger\u6587\u4ef6\u5bfc\u5165\u89e3\u6790\u9519\u8bef\u95ee\u9898\u4ee5\u53ca\u975eHTTP\u534f\u8bae\u8986\u76d6\u6a21\u5757\u5bfc\u5165\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u89e3\u51b3\u573a\u666f\u7f16\u8f91-\u63a5\u53e3\u5217\u8868\u5bfc\u5165-\u5207\u6362\u5de5\u4f5c\u7a7a\u95f4\u540e\u70b9\u51fb\u6a21\u5757-\u6a21\u5757\u6811\u53d1\u751f\u53d8\u66f4\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u6b65\u9aa4\u62d6\u62fd\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u6539\u8ba1\u7b97\u63a5\u53e3\u8986\u76d6\u7387\u7684\u903b\u8f91
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5f15\u7528\u573a\u666f\u6b65\u9aa4\u80fd\u6dfb\u52a0\u540c\u7ea7\u6b65\u9aa4\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u5b9a\u4e49\u6587\u6863\u7684\u9ad8\u7ea7\u8bbe\u7f6e\u4e00\u952e\u5c55\u5f00\u529f\u80fd\u589e\u52a0\u5bf9jsonschema\u8282\u70b9\u7684\u5c55\u5f00
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a\u4e2d\u63a5\u53e3\u7528\u4f8b\u89e6\u53d1\u65b9\u5f0f\u8bc6\u522b\u4e0d\u51fajenkins\u6267\u884c\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u7528\u4f8b\u6309\u7167\u6267\u884c\u72b6\u6001\u67e5\u8be2\u65f6\u5bf9\u505c\u6b62\u72b6\u6001\u7684\u6570\u636e\u5f52\u7c7b\u9519\u8bef\u7684\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u6587\u4ef6\u5e93\u8282\u70b9\u7684token\u8f93\u5165\u6846\u6539\u4e3a\u5bc6\u7801\u6846\uff0ctoken\u4e0d\u4f1a\u660e\u6587\u5c55\u793a
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u81ea\u5b9a\u4e49\u5b57\u6bb5\u4f7f\u7528\u573a\u666f\u7b5b\u9009\uff0c\u7f3a\u5c11\u6d4b\u8bd5\u8ba1\u5212\u9009\u9879
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u7cfb\u7edf\u8bbe\u7f6e\u7f16\u8f91\u9879\u76ee\u8bbe\u7f6e\u9009\u62e9\u63a5\u53e3\u6a21\u7248\u4e0d\u751f\u6548\u7684\u7f3a\u9677 (#18253)
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u89e3\u51b3\u53ea\u6388\u4e88\u4e2a\u4eba\u4fe1\u606f-ui\u8bbe\u7f6e\u6743\u9650\u65f6\uff0c\u4e2a\u4eba\u4fe1\u606f\u5f39\u6846\u70b9\u4e0d\u5f00\u7684\u95ee\u9898
    • fix(\u6d88\u606f\u901a\u77e5): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u53d1\u9001\u901a\u77e5\u53d8\u91cf\u83b7\u53d6\u7684\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u5728\u5f39\u6846\u4e2d\u4fee\u6539\u5b9a\u65f6\u4efb\u52a1\u72b6\u6001\u4e0d\u751f\u6548\u7684\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u6279\u91cf\u8f6c\u6210\u6027\u80fd\u6d4b\u8bd5\u65f6\u91cd\u590d\u5bfc\u5165\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u8df3\u8f6c\u573a\u666f\u63d0\u793a\u573a\u666f\u88ab\u5220\u9664\u7684\u7f3a\u9677

    \u6f0f\u6d1e\u4fee\u590d

    • \u672c\u6b21\u5347\u7ea7\u5305\u62ec\u4fee\u590dshiro\u7684\u5b89\u5168\u6f0f\u6d1e\uff0c\u8bf7\u5c3d\u5feb\u5347\u7ea7
    "},{"location":"about/changelog/#v220","title":"v2.2.0","text":"

    2022\u5e749\u670822\u65e5

    \u65b0\u589e\u529f\u80fd

    • \u63a5\u53e3\u6d4b\u8bd5\u652f\u6301\u81ea\u5b9a\u4e49\u6a21\u677f
    • UI \u6d4b\u8bd5\u652f\u6301\u81ea\u5b9a\u4e49\u7ec4\u5408\u6307\u4ee4(X-Pack \u589e\u5f3a\u5305\u5185)
    • \u6587\u4ef6\u7ba1\u7406\u652f\u6301\u5bf9\u63a5\u7b2c\u4e09\u65b9\u4ed3\u5e93(X-Pack\u589e\u5f3a\u5305\u5185)

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a: \u6d4b\u8bd5\u8ba1\u5212/\u7528\u4f8b\u8bc4\u5ba1\u9875\u7528\u4f8b\u6807\u9898\u5c55\u793a\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5: \u63a5\u53e3 CASE \u9ad8\u7ea7\u641c\u7d22\u589e\u52a0\u8def\u5f84\u641c\u7d22
    • \u63a5\u53e3\u6d4b\u8bd5: TCP \u534f\u8bae\u652f\u6301\u4e00\u952e\u5c06 xml \u6587\u672c\u683c\u5f0f\u8f6c\u6362\u6210\u8868\u683c\u683c\u5f0f
    • UI\u6d4b\u8bd5: \u5217\u8868\u6279\u91cf\u6267\u884c\u4e0e\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u65f6\u589e\u52a0\u5931\u8d25\u91cd\u8bd5\u673a\u5236(X-Pack)
    • UI\u6d4b\u8bd5: \u6d4b\u8bd5\u62a5\u544a\u652f\u6301\u4e00\u952e\u5206\u4eab(X-Pack)
    • UI\u6d4b\u8bd5: UI \u573a\u666f\u652f\u6301\u67e5\u770b\u88ab\u5f15\u7528\u5217\u8868(X-Pack)
    • UI\u6d4b\u8bd5: \u652f\u6301\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u914d\u7f6e\u6d4f\u89c8\u5668\u7684\u9ed8\u8ba4\u5206\u8fa8\u7387(X-Pack)
    • \u7cfb\u7edf\u8bbe\u7f6e: \u6d88\u606f\u901a\u77e5\u6a21\u677f\u65b0\u589e\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u76f8\u5173\u5b57\u6bb5(X-Pack)
    • \u901a\u7528\u529f\u80fd: \u7248\u672c\u7b5b\u9009\u652f\u6301\u624b\u52a8\u5f55\u5165\u7248\u672c\u53f7(X-Pack)

    \u95ee\u9898\u4fee\u590d

    • \u6d4b\u8bd5\u8ddf\u8e2a: \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u70b9\u51fb\u540d\u79f0\u94fe\u63a5\u4f1a\u76f4\u63a5\u8df3\u8f6c\u5230\u63a5\u53e3\u7528\u4f8b\u6216\u8005\u573a\u666f\u7528\u4f8b\u8be6\u60c5\u9875\u7684\u95ee\u9898(GitHub #17993)
    • \u6d4b\u8bd5\u8ddf\u8e2a: \u4fee\u590d\u6d4b\u8bd5\u8ddf\u8e2a\u9996\u9875\u672a\u8bc4\u5ba1\u201c\u6570\u91cf\u201d\u3001\u8986\u76d6\u201c\u6570\u91cf\u201d\u4e0e\u8df3\u8f6c\u540e\u5217\u8868\u7528\u4f8b\u6570\u91cf\u4e0d\u4e00\u81f4\u7684\u95ee\u9898(GitHub #17910)
    • \u6d4b\u8bd5\u8ddf\u8e2a: \u4fee\u590d\u9879\u76ee\u81ea\u5b9a\u4e49 ID \u5f00\u542f\u5bfc\u5165\u663e\u793a\u7684\u662f\u7cfb\u7edf\u9ed8\u8ba4 ID \u7684\u95ee\u9898(GitHub #17928)
    • \u63a5\u53e3\u6d4b\u8bd5: \u4fee\u590d\u73af\u5883\u53d8\u91cf\u4f18\u5148\u7ea7\u5927\u4e8e\u573a\u666f\u53d8\u91cf\u7684\u95ee\u9898(GitHub #17873)
    • \u63a5\u53e3\u6d4b\u8bd5: \u4fee\u590d\u63a5\u53e3\u81ea\u52a8\u5316\u7f16\u8f91\u573a\u666f\u4fdd\u5b58\u540e\uff0c\u5217\u8868\u4e2d\u201c\u901a\u8fc7\u7387\u201d\u672a\u66f4\u65b0\u7684\u95ee\u9898(GitHub #17784)
    • UI\u6d4b\u8bd5: \u4fee\u590d UI \u81ea\u52a8\u5316\u573a\u666f\u91cc\u590d\u5236\u5bfc\u5165\u4e86\u5df2\u6709\u573a\u666f\uff0c\u5bfc\u81f4\u573a\u666f\u4ee5\u53ca\u5b50\u573a\u666f\u8c03\u8bd5\u6a21\u5f0f\u548c\u6d4b\u8bd5\u8ba1\u5212\u91cc\u4e0d\u4f1a\u88ab\u6267\u884c\u7684\u95ee\u9898(GitHub #17649)
    • UI\u6d4b\u8bd5: \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u5b9a\u65f6\u6267\u884c\u591a\u4e2a UI \u81ea\u52a8\u5316\u573a\u666f\uff0c\u5b58\u5728\u5df2\u6267\u884c\u5931\u8d25\u7684\u573a\u666f\u88ab\u6807\u6ce8\u4e3a\u201c\u672a\u6267\u884c\u201d\u7684\u95ee\u9898(GitHub #17649)
    "},{"location":"about/changelog/#v210","title":"v2.1.0","text":"

    2022\u5e748\u670825\u65e5

    \u65b0\u589e\u529f\u80fd

    • UI\u6d4b\u8bd5\u8986\u76d6\u7ed8\u56fe\u6838\u5fc3\u573a\u666f
    • \u529f\u80fd\u7528\u4f8b\u652f\u6301\u81ea\u5b9a\u4e49\u5b57\u6bb5\u5bfc\u5165\u3001\u5bfc\u51fa
    • \u6587\u4ef6\u7ba1\u7406\u91cd\u6784

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u6a21\u677f\u5bfc\u5165\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u5bfc\u5165\u66f4\u65b0\u589e\u52a0\u6d88\u606f\u901a\u77e5
    • \u63a5\u53e3\u6d4b\u8bd5\uff1aAPI\u6587\u6863\u5c55\u793a\u4f18\u5316\u652f\u6301\u5c55\u793a\u9ad8\u7ea7\u8bbe\u7f6e
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u573a\u666f\u53d8\u91cf\u652f\u6301\u67e5\u8be2\u4ee5\u53ca\u5bfc\u5165\u5bfc\u51fa
    • UI\u6d4b\u8bd5\uff1a\u652f\u6301\u4efb\u610f\u4f4d\u7f6e\u6dfb\u52a0\u622a\u56fe\u6b65\u9aa4(X-Pack)
    • UI\u6d4b\u8bd5\uff1a\u8f93\u5165\u6b65\u9aa4\u652f\u6301\u952e\u76d8\u529f\u80fd\u952e(X-Pack)
    • \u9879\u76ee\u8bbe\u7f6e\uff1a\u652f\u6301\u4e8c\u7ea7\u83dc\u5355\u6743\u9650\u7ba1\u63a7
    • \u9879\u76ee\u8bbe\u7f6e\uff1a\u73af\u5883\u914d\u7f6e\u4e2d\u5168\u5c40\u53d8\u91cf\u652f\u6301\u67e5\u8be2\u4ee5\u53ca\u5bfc\u5165\u5bfc\u51fa
    • \u7cfb\u7edf\u8bbe\u7f6e\uff1aOIDC\u548cCAS\u8ba4\u8bc1\u652f\u6301\u914d\u7f6e Callback URL

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u8868\u683c\u7528\u4f8b\u5bfc\u5165\u66f4\u65b0\uff0c\u63d0\u793a\u66f4\u65b0\u6210\u529f\uff0c\u4f46\u662f\u5185\u5bb9\u6ca1\u6709\u66f4\u65b0\u7684\u95ee\u9898\uff08GitHub - #17077\uff09
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u7f3a\u9677\u7ba1\u7406\u7684\u9ad8\u7ea7\u641c\u7d22\u4e2d\u521b\u5efa\u4eba\u65e0\u6cd5\u5217\u51fa\u6240\u6709\u9879\u76ee\u6210\u5458\u7684\u95ee\u9898\uff08GitHub - #16974\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u4ee3\u7801\u7247\u6bb5\u4e2d\u5bfc\u5165python ssl\u6a21\u5757\u5728\u5347\u7ea7\u52302.0.1\u540e\u6267\u884c\u51fa\u9519\u7684\u95ee\u9898\uff08GitHub - #16945\uff09
    • fix(UI\u6d4b\u8bd5): \u4fee\u590dUI\u81ea\u52a8\u5316\u70b9\u51fb\u540e\u7aef\u8c03\u8bd5\u4e0e\u751f\u6210\u62a5\u544a\u6267\u884c\u7ed3\u679c\u4e0d\u4e00\u81f4\u7684\u95ee\u9898\uff08GitHub #16523\uff09
    • fix(UI\u6d4b\u8bd5): \u4fee\u590dUI\u81ea\u52a8\u5316\u573a\u666f\u65b0\u590d\u5236\u7684\u573a\u666f\u65e0\u521b\u5efa\u4eba\u4fe1\u606f\u7684\u95ee\u9898\uff08GitHub #16732\uff09
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u6d88\u606f\u8bbe\u7f6e\u65b0\u5efa\u7f3a\u9677\u7684\u63a5\u6536\u4eba\u662f\u5904\u7406\u4eba\u4f46\u5728\u6d88\u606f\u901a\u77e5\u65f6\u6ca1\u6709@\u5904\u7406\u4eba\u7684\u95ee\u9898\uff08GitHub #16751\uff09
    "},{"location":"about/changelog/#v201","title":"v2.0.1","text":"

    2022\u5e748\u67084\u65e5

    \u529f\u80fd\u4f18\u5316

    • feat(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u4fdd\u5b58\u7684\u8fd0\u884c\u73af\u5883\u56de\u663e\uff0c\u5e76\u4e14\u4f5c\u4e3a\u5f53\u524d\u8ba1\u5212\u4e0b\u6240\u6709\u7528\u4f8b\u7684\u73af\u5883\u7684\u9ed8\u8ba4\u503c
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u8c03\u6574UI\u548c\u6027\u80fd\u7684\u987a\u5e8f
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u5220\u9664\u529f\u80fd\u4e8c\u6b21\u63d0\u9192\u5f39\u6846\u4fe1\u606f\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u4fdd\u5b58\u7684\u8fd0\u884c\u73af\u5883\u540e\u5237\u65b0\u5217\u8868
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u81ea\u5b9a\u4e49\u5b57\u6bb5\u4e0b\u62c9\u6846\u9009\u9879\u88ab\u5220\u9664\u5219\u7f6e\u7a7a
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u6539\u6210\u540c\u6b65\u53d1\u9001\u6267\u884c\u6307\u4ee4\uff0c\u8c03\u6574\u8fde\u63a5\u53c2\u6570
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f18\u5316\u6d4b\u8bd5\u8ba1\u5212\u8fd0\u884c\u68c0\u67e5\u53ef\u6267\u884c\u7528\u4f8b\u7684\u65b9\u6cd5 (#16525)
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u4fdd\u5b58\u7684\u914d\u7f6e\u4fe1\u606f\u7684\u8fd0\u884c\u73af\u5883\u4fe1\u606f\u7528\u4e8e\u9ed8\u8ba4\u503c
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316mock\u671f\u671b\u5220\u9664\u65f6\u7684\u63d0\u793a\u8bed
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875swagger\u8df3\u8f6c\u7684\u95ee\u9898
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u5bfc\u5165\u529f\u80fd\uff0c\u9875\u9762\u6837\u5f0f\u8c03\u6574
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875\u7528\u4f8b\u6570\u91cf\u7edf\u8ba1\u9875\u7b7e\u7edf\u8ba1\u8f83\u6162\u7684\u95ee\u9898
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875\u672a\u8986\u76d6\u63a5\u53e3\u8df3\u8f6c\u65f6\u6570\u636e\u6ca1\u6709\u5237\u65b0\u7684\u95ee\u9898
    • style(\u62a5\u8868\u7edf\u8ba1): \u4f18\u5316\u6d4b\u8bd5\u7528\u4f8b\u7edf\u8ba1\u56fe\u8868\u6700\u5927\u5316\u65f6\u7684\u5c55\u793a

    \u95ee\u9898\u4fee\u590d

    • fix(UI\u81ea\u52a8\u5316): UI \u6d4b\u8bd5\u4e0d\u8d70\u8d44\u6e90\u6c60
    • fix(UI\u81ea\u52a8\u5316): \u6d4b\u8bd5\u8ba1\u5212 UI \u6d4b\u8bd5\u7ed3\u679c\u4e0e\u603b\u62a5\u544a\u7ed3\u679c\u4e0d\u540c\u6b65
    • fix(UI\u81ea\u52a8\u5316): \u5173\u8054\u672a\u6267\u884c\u7684ui\u573a\u666f\u67e5\u770b\u5b9e\u65f6\u62a5\u544a\u4e0d\u5c55\u793a\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e
    • fix(UI\u81ea\u52a8\u5316): \u5bfc\u51fa\u6d4b\u8bd5\u62a5\u544a\uff0c\u65e0\u6cd5\u67e5\u770bui\u7528\u4f8b\u6267\u884c\u7ed3\u679c
    • fix(UI\u81ea\u52a8\u5316): \u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u6210\u529f\u7387\u663e\u793a\u4e0d\u5bf9
    • fix(UI\u81ea\u52a8\u5316): \u4fee\u590d\u975e\u6027\u80fd\u6a21\u5f0f\u4e0b\u62a5\u544a\u622a\u56fe\u8bed\u8a00\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dcsv\u573a\u666f\u53d8\u91cf\u5c5e\u6027\u56de\u663e\u9519\u8bef\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dxmind\u89e3\u6790\u4e0d\u652f\u6301xmind\u7ecf\u5178\u7248\u672c\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5305\u542bexcel\u6587\u4ef6\u7684\u8bf7\u6c42\u6267\u884c\u5931\u8d25\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u5bfc\u5165ESB\u6587\u4ef6\u4fdd\u5b58\u6570\u636e\u4e0d\u5168\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u5bfc\u5165\u7528\u4f8bID\u751f\u6210\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u5bfc\u5165\u7528\u4f8bID\u751f\u6210\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u5b9a\u4e49\u5bfc\u5165jmx\u6587\u4ef6\u9009\u62e9\u7f16\u7801\uff0cms\u4e0d\u663e\u793a\u7f16\u7801\u7684\u7f3a\u9677 (#16573)
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u6267\u884c\u7ed3\u679c\u663e\u793a\u4e86unexecute\u7684\u7f3a\u9677 (#16610)
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u89e3\u51b3\u63a5\u53e3\u5bfc\u5165\u8986\u76d6\u6a21\u5f0f\uff0c\u88ab\u8986\u76d6\u63a5\u53e3\u65e0case\uff0c\u65b0case\u5bfc\u5165\u5931\u8d25\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875\u5b9a\u65f6\u4efb\u52a1\u8df3\u8f6c\u4e0d\u5bf9\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u63a5\u53e3\u5bfc\u5165\u7cfb\u7edf\u5185\u67d0\u4e2a\u63a5\u53e3\u6709\u91cd\u540d\u7528\u4f8b\u7684\u60c5\u51b5
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875\u573a\u666f\u901a\u8fc7\u7387\u8ba1\u7b97\u4e0d\u6b63\u786e\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u5bfc\u5165\u63a5\u53e3\u540e\uff0c\u624b\u52a8\u6dfb\u52a0\u4e00\u4e2a\u63a5\u53e3\u7528\u4f8b\uff0c\u5220\u9664\u5176\u4ed6\u7528\u4f8b\uff0c\u518d\u6b21\u5bfc\u5165\uff0c\u62a5\u9519
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590dsql\u52a0\u8f7d\u7528\u4f8b\uff0csql\u811a\u672c\u6ca1\u6709\u540c\u6b65\u7684\u7f3a\u9677 (#16483)
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u9664http\u534f\u8baeTEST\u9875\u9762\u52a0\u8f7d\u7528\u4f8b\u663e\u793a\u6210\u4e86\u65b0\u5efa\u7528\u4f8b\u9875\u9762\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u524d\u7f6esql\u7684\u6837\u5f0f
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4ece\u56de\u6536\u7ad9\u6062\u590d\u63a5\u53e3\u7528\u4f8b\u589e\u52a0\u91cd\u540d\u6821\u9a8c
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u7528\u6237\u901a\u8fc7api\u8c03\u7528\u63a5\u53e3\u540e\uff0c\u672c\u8eab\u6743\u9650\u6ca1\u6709\u53ca\u65f6\u5237\u65b0\u7684\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u521b\u5efa\u9879\u76ee\u63a5\u53e3\u5de5\u4f5c\u7a7a\u95f4ID\u4e3a\u7a7a\u53ef\u6210\u529f\u521b\u5efa
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u521b\u5efa\u9879\u76ee\u65f6\u6743\u9650\u62e6\u622a\u7684\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u7528\u6237\u4ec5\u6709\u9879\u76ee\u6743\u9650\u65f6\u4e0d\u5360\u5de5\u4f5c\u7a7a\u95f4\u914d\u989d
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u591a\u8282\u70b9\u90e8\u7f72\u65f6\u67e5\u8be2\u76d1\u63a7targets\u6570\u636e\u4e0d\u4e00\u81f4\u7684\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u62a5\u544a\u5bf9\u6bd4\u65f6\u663e\u793a\u591a\u4f59\u7684y\u8f74\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): excel\u5bfc\u5165\u5bfc\u51fa\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8111\u56fe\u521b\u5efa\u7528\u4f8b\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u6279\u91cf\u5220\u9664\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u5bfc\u51fa\u6a21\u677f\u6ca1\u6709\u6807\u6ce8
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u5bfc\u51fa\u7f3a\u5c11\u6b65\u9aa4\u7b49\u4fe1\u606f
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u5217\u8868\u81ea\u5b9a\u4e49\u591a\u9009\u6846\u7b5b\u9009\u5931\u6548
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8111\u56fe\u4e00\u952e\u5c55\u5f00\u6ca1\u6709\u5c55\u5f00\u4e34\u65f6\u8282\u70b9
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f01\u4e1a\u7248\u7985\u9053\u540c\u6b65\u7f3a\u9677\u56fe\u7247\u65e0\u6cd5\u663e\u793a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7b2c\u4e09\u65b9\u5e73\u53f0\u7f3a\u9677\u90e8\u5206\u5b57\u6bb5\u540c\u6b65\u51fa\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u5217\u8868\u81ea\u5b9a\u4e49\u5b57\u6bb5\u70b9\u51fb\u6392\u5e8f\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5206\u4eab\u529f\u80fd\u7528\u4f8b\u7edf\u8ba1\u65e0\u6cd5\u5c55\u793a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u9996\u9875\u7f3a\u9677\u6570\u4e0d\u5e94\u8be5\u7edf\u8ba1\u5df2\u5173\u95ed\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8111\u56fe\u4fdd\u5b58\u4e34\u65f6\u8282\u70b9\u540e\uff0c\u90e8\u5206\u8282\u70b9\u6ca1\u4fdd\u5b58\u6210\u529f
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u8bc4\u5ba1\u4e2d\u7528\u4f8b\u5217\u8868\u7684\u72b6\u6001\u4e0e\u7f16\u8f91\u7684\u72b6\u6001\u4e0d\u4e00\u81f4
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u8fd0\u884c\u68c0\u67e5\u662f\u5426\u6709\u53ef\u7528\u884c\u7528\u4f8b\u7684\u7f3a\u9677 (#16497)
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ddf\u8e2a\u9996\u9875\u5173\u8054\u7528\u4f8b\u6570\u91cf\u7edf\u8ba1\u5ffd\u7565\u6389\u56de\u6536\u7ad9\u4e2d\u7684\u63a5\u53e3\u548c\u573a\u666f
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5173\u8054\u7528\u4f8b\u5220\u9664\u65f6\u6d4b\u8bd5\u8ba1\u5212\u8be6\u60c5\u4e2d\u76f8\u5e94\u7528\u4f8b\u5217\u8868\u7684\u6a21\u5757\u6811\u663e\u793a\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u63a5\u53e3\u8c03\u7528\u6ca1\u6709\u5173\u8054\u53ef\u6267\u884c\u7528\u4f8b\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u65f6\u6ca1\u6709\u63d0\u793a\u7684\u7f3a\u9677
    • fix(\u9ad8\u7ea7\u641c\u7d22): \u63a5\u53e3\u81ea\u52a8\u5316\u56de\u6536\u7ad9\u9ad8\u7ea7\u641c\u7d22\u72b6\u6001\u5b57\u6bb5\u548c\u5217\u8868\u72b6\u6001\u4e0d\u4e00\u81f4
    "},{"location":"about/changelog/#v200","title":"v2.0.0","text":"

    2022\u5e747\u670827\u65e5

    \u65b0\u589e\u529f\u80fd

    • \u5bfc\u822a\u680f\u5168\u65b0\u5347\u7ea7
    • \u6d4b\u8bd5\u8ba1\u5212\u652f\u6301\u5173\u8054UI\u6d4b\u8bd5\u7528\u4f8b\u6267\u884c
    • \u6d4b\u8bd5\u8ba1\u5212\u4e2d\u8fd0\u884c\u7684\u63a5\u53e3\u6d4b\u8bd5\u652f\u6301\u5931\u8d25\u91cd\u8bd5
    • UI\u6d4b\u8bd5\u573a\u666f\u652f\u6301\u6279\u91cf\u6267\u884c
    • \u5de5\u4f5c\u53f0-\u63a5\u53e3\u7528\u4f8b\u201c\u5f85\u66f4\u65b0\u201d\u5217\u8868\uff0c\u652f\u6301\u4e00\u952e\u540c\u6b65\u63a5\u53e3\u53d8\u66f4
    • \u9ad8\u7ea7\u641c\u7d22\u652f\u6301\u81ea\u5b9a\u4e49\u5b57\u6bb5\u641c\u7d22

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u9644\u4ef6\u529f\u80fd\u652f\u6301\u4e0a\u4f20\u89c6\u9891\u6587\u4ef6
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u529f\u80fd\u7528\u4f8b\u652f\u6301\u6279\u91cf\u5173\u8054\u9700\u6c42
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ba1\u5212\u3001\u6d4b\u8bd5\u8bc4\u5ba1\u5173\u8054\u7528\u4f8b\u652f\u6301\u6309\u5173\u8054\u9700\u6c42\u7b5b\u9009\u7528\u4f8b
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u589e\u52a0\u8fd0\u884c\u73af\u5883\u5c55\u793a
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u652f\u6301\u63a5\u53e3\u5931\u8d25\u7528\u4f8b\u4e00\u952e\u91cd\u8dd1\uff08X-Pack\uff09
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u9996\u9875\u6570\u636e\u7edf\u8ba1\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1aAPI\u5bfc\u5165\u903b\u8f91\u91cd\u6784
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u6d4b\u8bd5\u62a5\u544a\u589e\u52a0\u8fd0\u884c\u73af\u5883\u5c55\u793a
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u652f\u6301\u6dfb\u52a0\u573a\u666f\u7ea7\u522b\u65ad\u8a00
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u96c6\u5408\u62a5\u544a\u652f\u6301\u5931\u8d25\u7528\u4f8b\u4e00\u952e\u91cd\u8dd1\uff08X-Pack\uff09
    • UI\u6d4b\u8bd5\uff1a\u9875\u9762\u5143\u7d20\u652f\u6301Excel\u5bfc\u5165\u5bfc\u51fa\u7ba1\u7406\uff08X-Pack\uff09
    • UI\u6d4b\u8bd5\uff1aUI\u573a\u666f\u53d8\u91cf\u4f18\u5316\uff08X-Pack\uff09
    • UI\u6d4b\u8bd5\uff1a\u9ad8\u7ea7\u8bbe\u7f6e\u65ad\u8a00\u548c\u6570\u636e\u63d0\u53d6\u5c55\u793a\u4f18\u5316\uff08X-Pack\uff09
    • \u9879\u76ee\u8bbe\u7f6e\uff1a\u6d88\u606f\u901a\u77e5\u652f\u6301\u5bf9\u63a5\u81ea\u5b9a\u4e49webhook\uff08X-Pack\uff09
    "},{"location":"about/contact/","title":"\u8054\u7cfb\u6211\u4eec","text":""},{"location":"about/contact/#1","title":"1 \u5fae\u4fe1\u516c\u4f17\u53f7","text":""},{"location":"about/contact/#2","title":"2 \u5fae\u4fe1\u7fa4","text":"

    \u5982\u60a8\u5728\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u9047\u5230\u95ee\u9898\uff0c\u6b22\u8fce\u60a8\u5728\u7fa4\u91cc\u8fdb\u884c\u53cd\u9988\u4e0e\u54a8\u8be2\uff08\u6dfb\u52a0\u4e0b\u65b9\u5c0f\u52a9\u624b\u5fae\u4fe1\uff0c\u4ed6\u5c06\u4f1a\u5c06\u60a8\u62c9\u8fdb MeterSphere \u4ea4\u6d41\u7fa4\u4e2d\uff09\uff0c\u8bf7\u60a8\u5728\u8be2\u95ee\u524d\u5c3d\u53ef\u80fd\u5168\u9762\u7684\u63cf\u8ff0\u60a8\u7684\u60c5\u51b5\uff0c\u4f8b\u5982\uff1a

    • \u5f53\u524d\u4f7f\u7528\u7684 MeterSphere \u7248\u672c\u3002
    • \u5f53\u524d\u4f7f\u7528\u7684\u6d4f\u89c8\u5668\u7c7b\u578b\u3002
    • \u8be6\u7ec6\u7684\u95ee\u9898\u63cf\u8ff0\u3002
    • \u95ee\u9898\u7684\u622a\u56fe\u8bf4\u660e\u3002

    "},{"location":"about/contact/#3","title":"3 \u5f00\u6e90\u793e\u533a\u8bba\u575b","text":"

    \u60a8\u53ef\u4ee5\u5728\u98de\u81f4\u4e91\u5b98\u65b9\u7684 \u5f00\u6e90\u793e\u533a\u8bba\u575b \u641c\u7d22\u3001\u54a8\u8be2\u3001\u8ba8\u8bba\u4ea4\u6d41\u4ea7\u54c1\u76f8\u5173\u7684\u6280\u672f\u95ee\u9898\u3002

    "},{"location":"about/contact/#4","title":"4 \u5176\u4ed6\u65b9\u5f0f","text":"
    • \u6280\u672f\u54a8\u8be2\uff1ahttps://jinshuju.net/f/qQOZj1
    • \u4f01\u4e1a\u7248\u8bd5\u7528\uff1ahttps://jinshuju.net/f/CzzAOe
    • \u5b98\u7f51\uff1ahttp://www.metersphere.io
    • \u90ae\u7bb1\uff1asupport@fit2cloud.com
    • \u7535\u8bdd\uff1a400-052-0755
    "},{"location":"about/security_bulletins/","title":"\u5b89\u5168\u516c\u544a","text":"
    • \u91cd\u8981\u901a\u77e5\u4e28MeterSphere\u6f0f\u6d1e\u901a\u77e5\u53ca\u4fee\u590d\u65b9\u6848\uff082023.05.26\uff09
    • \u91cd\u8981\u901a\u77e5\u4e28MeterSphere\u6f0f\u6d1e\u901a\u77e5\u53ca\u4fee\u590d\u65b9\u6848\uff082023.03.10\uff09
    • \u91cd\u8981\u901a\u77e5\u4e28MeterSphere\u6f0f\u6d1e\u901a\u77e5\u53ca\u4fee\u590d\u65b9\u6848\uff082023.01.04\uff09
    "},{"location":"case_studies/user_cases/","title":"\u7528\u6237\u6848\u4f8b","text":"
    • \u4e2d\u56fd\u79fb\u52a8\u4e0a\u7814\u9662\u57fa\u4e8e MeterSphere \u6784\u5efa\u89c4\u8303\u5316\u6d4b\u8bd5\u4f53\u7cfb
    • 88 \u5b8c\u7f8e\u90ae\u7bb1\u5168\u9762\u63d0\u5347\u4ea7\u54c1\u8d28\u91cf\u7684\u843d\u5730\u6307\u5357
    • \u851a\u6f9c\u73af\u4fdd\u57fa\u4e8e MeterSphere \u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u5b9e\u8df5
    • \u6613\u76db\u4fe1\u606f MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u4f7f\u7528\u7ecf\u9a8c
    • \u6613\u76db\u4fe1\u606f\u5728 MeterSphere \u4e0a\u5b9e\u73b0\u591a\u7c7b\u578b\u63a5\u53e3\u573a\u666f\u81ea\u52a8\u5316\u6d4b\u8bd5
    • \u6c38\u798f\u4fe1\u606f\u57fa\u4e8e MeterSphere \u4ece\u9879\u76ee\u7ef4\u5ea6\u6301\u7eed\u63a8\u8fdb\u6d4b\u8bd5\u4efb\u52a1
    • \u4e5d\u91cc\u4e91\u57fa\u4e8e MeterSphere \u843d\u5730\u4e00\u7ad9\u5f0f\u81ea\u52a8\u5316\u6d4b\u8bd5\u5e73\u53f0
    • \u6c11\u751f\u79d1\u6280\u57fa\u4e8e MeterSphere \u5e73\u53f0\u5b9e\u73b0\u6d4b\u8bd5\u7528\u4f8b\u590d\u7528
    • 360\u501f\u52a9 MeterSphere \u63d0\u5347\u81ea\u52a8\u5316\u6d4b\u8bd5\u6c34\u5e73
    • \u7528\u53cb\u878d\u8054\u501f\u52a9 MeterSphere \u5f00\u6e90\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\u63d0\u5347\u6d4b\u8bd5\u6548\u7387
    • \u9886\u5148\u672a\u6765\u7684 MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u5b9e\u8df5
    • MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u5728\u4e92\u8054\u7f51\u96f6\u552e\u5e73\u53f0\u6734\u6734\u8d85\u5e02\u7684\u5b9e\u8df5\u5206\u4eab
    • \u5546\u7c73\u79d1\u6280\u57fa\u4e8e MeterSphere \u7684\u5168\u7403\u5316\u4e91\u670d\u52a1\u63a5\u53e3\u6d4b\u8bd5\u5b9e\u8df5
    "},{"location":"faq/api_test/","title":"\u63a5\u53e3\u6d4b\u8bd5\u76f8\u5173","text":""},{"location":"faq/api_test/#1","title":"1 \u5728\u63a5\u53e3\u81ea\u52a8\u5316\u7684\u4e00\u4e2a\u573a\u666f\u91cc\u9762\uff0c\u4e2a\u522b\u63a5\u53e3\u9700\u8981\u4f7f\u7528\u4e0d\u540c\u7684\u73af\u5883\u53bb\u8fd0\u884c\uff0c\u8be5\u600e\u4e48\u5904\u7406\uff1f","text":"

    \u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u81ea\u5b9a\u4e49\u8bf7\u6c42\u7684\u65b9\u5f0f\u5b9e\u73b0\u3002

    "},{"location":"faq/api_test/#2","title":"2 \u63a5\u53e3\u4f20\u53c2\u9700\u8981\u4f7f\u7528\u968f\u673a\u6570\uff0c\u6709\u54ea\u4e9b\u5185\u7f6e\u65b9\u6cd5\uff1f","text":"

    \u53ef\u4ee5\u53c2\u8003\u4f7f\u7528 JMeter \u5185\u7f6e\u51fd\u6570\u6216\u8005 Mock.js \u51fd\u6570\u751f\u6210\u968f\u673a\u503c\u3002\u8bf7\u53c2\u8003\u5185\u7f6e\u51fd\u6570

    "},{"location":"faq/api_test/#3","title":"3 \u63a5\u53e3\u81ea\u52a8\u5316\u591a\u573a\u666f\u5982\u4f55\u8fdb\u884c\u6279\u91cf\u8fd0\u884c\uff1f","text":"

    \u5728\u573a\u666f\u5217\u8868\u9009\u4e2d\u573a\u666f\uff0c\u70b9\u51fb\u3010\u00b7\u00b7\u00b7\u3011\u5f39\u51fa\u4e0b\u62c9\u6846\uff0c\u9009\u62e9\u3010\u6279\u91cf\u8fd0\u884c\u3011\u3002

    "},{"location":"faq/api_test/#4","title":"4 \u63a5\u53e3\u6d4b\u8bd5\u5982\u4f55\u652f\u6301\u4e0a\u4f20\u6587\u4ef6\u7684\u63a5\u53e3\u5417\uff1f","text":"

    \u6839\u636e\u63a5\u53e3\u8981\u6c42\u7684\u8bf7\u6c42\u4f53\u7c7b\u578b\uff0c\u9009\u62e9 form-data\u3001x-www-form-urlencoded \u683c\u5f0f\u7684\u8bf7\u6c42\u4f53\uff0c\u53c2\u6570\u7c7b\u578b\u9009\u62e9 file\uff0c\u9009\u62e9\u8981\u6dfb\u52a0\u7684\u6587\u4ef6\u3002\u4e5f\u53ef\u4ee5\u4f7f\u7528 binary \u683c\u5f0f\u7684\u8bf7\u6c42\u4f53\uff0c\u76f4\u63a5\u9009\u62e9\u8981\u6dfb\u52a0\u7684\u6587\u4ef6\u3002

    "},{"location":"faq/api_test/#5-cookie","title":"5 \u63a5\u53e3\u81ea\u52a8\u5316\u4e2d\u6a21\u5757\u4e4b\u95f4\u662f\u5426\u652f\u6301\u5171\u4eab cookie?","text":"

    \u73af\u5883\u914d\u7f6e-http \u914d\u7f6e\uff0c\u652f\u6301\u6309\u6a21\u5757\u4e0d\u540c\u73af\u5883\u3002\u540c\u4e00\u6a21\u5757\u4e0b\u4e0d\u540c\u573a\u666f\u53ef\u4ee5\u5f00\u542f\u5171\u4eab cookie\uff0c\u4e0d\u540c\u6a21\u5757\u4e0d\u652f\u6301\u5171\u4eab cookie\u3002

    "},{"location":"faq/api_test/#6","title":"6 \u63a5\u53e3\u6d4b\u8bd5\u4e2d\uff0c\u671f\u671b\u7ed3\u679c\u4e0d\u4e3a\u7a7a\uff0c\u5982\u4f55\u5199\u65ad\u8a00\uff1f","text":"

    \u53ef\u4ee5\u5728\u671f\u671b\u503c\u4e2d\u4f7f\u7528\u5339\u914d\u4efb\u610f\u975e\u7a7a\u5b57\u7b26\u7684\u6b63\u5219\u8868\u8fbe\u5f0f \\S+ \u8fdb\u884c\u5224\u65ad\u3002

    "},{"location":"faq/api_test/#7-sql","title":"7 \u5bf9SQL\u8bf7\u6c42\uff0c\u5982\u4f55\u65ad\u8a00\uff1f","text":"

    SQL\u8bf7\u6c42\u7684\u65ad\u8a00\u53ef\u901a\u8fc7\u5982\u4e0b\u6b65\u9aa4\u8fdb\u884c\uff1a

    • \u914d\u7f6e\u201c\u5b58\u50a8\u7ed3\u679c\u201d\u548c\u201c\u6309\u5217\u5b58\u50a8\u201d\uff0c\u5b58\u50a8\u6570\u636e\u3002
    • \u914d\u7f6eSQL\u811a\u672c\uff0c\u53d6\u51fa\u9700\u8981\u65ad\u8a00\u7684\u53c2\u6570\u3002
    • \u6dfb\u52a0\u811a\u672c\u65ad\u8a00\uff0c\u5224\u65ad\u5b58\u50a8 SQL \u7ed3\u679c\u6570\u636e\u7684\u53d8\u91cf\u7684\u53d8\u91cf\u503c\u3002
    • \u53ef\u53c2\u8003MeterSphere \u6570\u636e\u5e93\u63d0\u53d6\u53c2\u6570\u548c\u65ad\u8a00
    "},{"location":"faq/api_test/#8","title":"8 \u5168\u5c40\u53d8\u91cf\u548c\u573a\u666f\u53d8\u91cf\u91cc\uff0c\u5305\u542b\u76f8\u540c\u53d8\u91cf\u540d\u7684\u53d8\u91cf\uff0c\u4f18\u5148\u7ea7\u5982\u4f55\u5224\u65ad\uff1f","text":"

    \u5f53\u5168\u5c40\u53d8\u91cf\u548c\u573a\u666f\u53d8\u91cf\u53d8\u91cf\u540d\u76f8\u540c\u65f6\uff0c\u4f18\u5148\u4f7f\u7528\u573a\u666f\u53d8\u91cf\u3002

    "},{"location":"faq/api_test/#9","title":"9 \u573a\u666f\u4e2d\u4f7f\u7528\u5f15\u7528\u65b9\u5f0f\u5bfc\u5165\u63a5\u53e3\uff0c\u4f46\u53c2\u6570\u53c8\u9700\u8981\u91cd\u5199\uff0c\u5e94\u8be5\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u63a5\u53e3\u5bfc\u5165\u573a\u666f\u6709\u4e24\u79cd\u65b9\u5f0f\uff0c\u7b2c\u4e00\u79cd\u65b9\u5f0f\u662f\u590d\u5236\uff0c\u590d\u5236\u7684\u63a5\u53e3\u53ef\u4ee5\u5728\u573a\u666f\u4e2d\u4fee\u6539\u53c2\u6570\uff1b\u7b2c\u4e8c\u79cd\u65b9\u5f0f\u662f\u5f15\u7528\uff0c\u5f15\u7528\u7684\u63a5\u53e3\u53ea\u80fd\u5728\u63a5\u53e3\u5b9a\u4e49\u4e2d\u8fdb\u884c\u4fee\u6539\uff0c\u4fee\u6539\u5b8c\u6210\u540e\u4f1a\u81ea\u52a8\u540c\u6b65\u5230\u573a\u666f\u91cc\u3002

    "},{"location":"faq/api_test/#10","title":"10 \u573a\u666f\u4e2d\u6dfb\u52a0\u4e86\u6761\u4ef6\u63a7\u5236\u5668\uff0c\u4e14\u5339\u914d\u5931\u8d25\u4e86\uff0c\u4e3a\u4ec0\u4e48\u540e\u7eed\u7684\u63a5\u53e3\u8fd8\u4f1a\u6267\u884c\uff1f","text":"

    \u540e\u7eed\u7684\u5c06\u63a5\u53e3\u62d6\u5165\u5230\u6761\u4ef6\u63a7\u5236\u5668\u4e0b\u6210\u4e3a\u5b50\u6b65\u9aa4\u624d\u6709\u6548\u3002

    "},{"location":"faq/api_test/#11","title":"11 \u63a5\u53e3\u6d4b\u8bd5\u4e2d\uff0c\u5982\u4f55\u83b7\u53d6\u5f53\u524d\u7684\u65f6\u95f4\u6765\u505a\u4e3a\u53d8\u91cf\uff1f","text":"

    \u53ef\u4ee5\u4f7f\u7528 ${__time()} \u5185\u7f6e\u51fd\u6570\u3002

    "},{"location":"faq/api_test/#12-sql","title":"12 \u5982\u4f55\u521b\u5efa SQL \u534f\u8bae\u7684\u63a5\u53e3\u6d4b\u8bd5\uff1f","text":"

    \u5177\u4f53\u64cd\u4f5c\u8bf7\u53c2\u8003\uff1ahttps://brucelong.blog.csdn.net/article/details/110133647 \u3002

    "},{"location":"faq/api_test/#13","title":"13 \u63a5\u53e3\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u4e00\u4e2a\u9879\u76ee\u4e0b\u7684\u4e0d\u540c\u63a5\u53e3\u573a\u666f\uff0c\u662f\u5426\u53ef\u4ee5\u5f15\u7528\u540c\u4e00\u4e2a\u811a\u672c\uff1f","text":"

    \u53ef\u4ee5\u4f7f\u7528\u516c\u5171\u4ee3\u7801\u7247\u6bb5\u3002\u53ef\u4ee5\u5728\u201c\u7cfb\u7edf\u8bbe\u7f6e\u201d - \u201c\u9879\u76ee\u7ba1\u7406\u201d\uff0c\u7ed9\u6307\u5b9a\u7684\u9879\u76ee\u4e0a\u4f20jar\u5305\uff0c\u7136\u540e\u5728\u9879\u76ee\u8bbe\u7f6e-\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u4e0b\u7f16\u5199\u811a\u672c\uff0c\u4e4b\u540e\u6b64\u9879\u76ee\u4e0b\u7684\u4e0d\u540c\u573a\u666f\u5c31\u53ef\u4ee5\u5f15\u7528\u3002

    "},{"location":"faq/api_test/#14","title":"14 \u573a\u666f\u53d8\u91cf\u7684\u7c7b\u578b\u4e3a\u968f\u673a\u6570\uff0c\u4f46\u6267\u884c\u8fc7\u7a0b\u4e2d\u4e3a\u4ec0\u4e48\u6ca1\u6709\u5b9e\u9645\u751f\u6210\uff1f","text":"

    \u8bf7\u68c0\u67e5\u914d\u7f6e\u7684\u968f\u673a\u6570\u957f\u5ea6\uff0c\u968f\u673a\u6570\u957f\u5ea6\u9700\u8981\u5728 MeterSphere \u9650\u5b9a\u8303\u56f4\u5185\u3002

    "},{"location":"faq/api_test/#15-csv","title":"15 \u5982\u4f55\u901a\u8fc7\u53d8\u91cf\u5f15\u7528 CSV \u6570\u636e\uff1f","text":"

    \u5728\u573a\u666f\u7f16\u8f91\u9875\u9762\uff0c\u70b9\u51fb\u573a\u666f\u53d8\u91cf\u6dfb\u52a0 CSV \u7c7b\u578b\u7684\u573a\u666f\u53d8\u91cf\u3002\u5177\u4f53\u64cd\u4f5c\u53c2\u8003 \u573a\u666f\u53d8\u91cf\u914d\u7f6e \u3002

    "},{"location":"faq/api_test/#16","title":"16 \u63a5\u53e3\u81ea\u52a8\u5316\u91cc\uff0c\u540c\u4e00\u573a\u666f\u4e0b\u662f\u5426\u652f\u6301\u914d\u7f6e\u591a\u4e2a\u63a5\u53e3\u57df\u540d\uff1f","text":"

    \u5728\u73af\u5883\u914d\u7f6e\u91cc\u9762\uff0c\u53ef\u4ee5\u5206\u522b\u6309\u63a5\u53e3\u6240\u5c5e\u6a21\u5757\uff0c\u6216\u8005\u63a5\u53e3\u8def\u5f84\u8fd9\u4e24\u79cd\u65b9\u5f0f\uff0c\u6765\u8bbe\u8ba1\u548c\u5339\u914d\u4e0d\u540c\u63a5\u53e3\u5bf9\u5e94\u7684\u57df\u540d\u3002

    "},{"location":"faq/api_test/#17-code","title":"17 \u8bf7\u6c42\u91cc\u9762\u6d89\u53ca\u5230\u4e86\u8f6c\u53d1\u91cd\u5b9a\u5411\uff0c\u5982\u4f55\u83b7\u53d6\u63a5\u53e3\u8fd4\u56de\u7684code\uff1f","text":"

    \u5728\u63a5\u53e3\u7684\u3010\u8bf7\u6c42\u53c2\u6570\u3011\u533a\u57df\u7684\u3010\u5176\u4ed6\u8bbe\u7f6e\u3011\u9875\u9762\u4e2d\uff0c\u53d6\u6d88\u52fe\u9009 \u3010\u8ddf\u968f\u91cd\u5b9a\u5411\u3011\u9009\u9879\u3002

    "},{"location":"faq/api_test/#18","title":"18 \u63a5\u53e3\u81ea\u52a8\u5316\u6279\u91cf\u6267\u884c\uff0c\u662f\u5e76\u884c\u8fd8\u662f\u4e32\u884c\uff1f","text":"

    \u63a5\u53e3\u81ea\u52a8\u5316\u6279\u91cf\u6267\u884c\u540c\u65f6\u652f\u6301\u4e32\u884c\u548c\u5e76\u884c\u4e24\u79cd\u65b9\u5f0f\uff0c\u53ef\u4ee5\u5728\u9009\u62e9\u8fd0\u884c\u573a\u666f\u540e\uff0c\u5728 \u8fd0\u884c\u914d\u7f6e \u5f39\u7a97\u8fdb\u884c\u9009\u62e9\u3002

    "},{"location":"faq/api_test/#19","title":"19 \u6279\u91cf\u6267\u884c\u63a5\u53e3\u81ea\u52a8\u5316\uff0c\u662f\u5426\u53ef\u4ee5\u6309\u573a\u666f\u5355\u72ec\u663e\u793a\u6d4b\u8bd5\u62a5\u544a\uff1f","text":"

    \u5728 \u8fd0\u884c\u914d\u7f6e \u5f39\u7a97\u7684 \u5176\u4ed6\u914d\u7f6e \u9009\u9879\u4e2d\u9009\u62e9\u751f\u6210 \u72ec\u7acb\u62a5\u544a\u3002

    "},{"location":"faq/api_test/#20","title":"20 \u63a5\u53e3\u81ea\u52a8\u5316\u9009\u62e9\u591a\u573a\u666f\u540c\u65f6\u8fd0\u884c\u65f6\uff0c\u53ef\u4ee5\u628a\u6267\u884c\u7ed3\u679c\u6574\u5408\u6210\u4e00\u4e2a\u6d4b\u8bd5\u62a5\u544a\u5417\uff1f","text":"

    \u5728\u3010\u8fd0\u884c\u914d\u7f6e\u3011\u5f39\u7a97\u7684 \u3010\u5176\u4ed6\u914d\u7f6e\u3011\u9009\u9879\u4e2d\u9009\u62e9\u751f\u6210\u3010\u96c6\u5408\u62a5\u544a\u3011\u3002

    "},{"location":"faq/api_test/#21","title":"21 \u63a5\u53e3\u5b9a\u4e49\u6a21\u5757\uff0c\u7f16\u8f91\u63a5\u53e3\u7684\u9875\u9762\uff0c\u5982\u4f55\u4fdd\u5b58\uff1f","text":"

    \u5728\u7f16\u8f91\u63a5\u53e3\u9875\u9762\u201c\u57fa\u7840\u4fe1\u606f\u201d\u533a\u57df\uff0c\u70b9\u51fb\u6d4b\u8bd5\u6309\u94ae\u540e\u9762\u7684\u5411\u4e0b\u6309\u94ae\uff0c\u70b9\u51fb\u3010\u66f4\u65b0\u63a5\u53e3\u3011\u9009\u9879\u5373\u53ef\u3002

    "},{"location":"faq/api_test/#22-non-http-response-code-javanetsockettimeoutexception","title":"22 \u6267\u884c\u63a5\u53e3\u62a5\u9519\uff1aNon HTTP response code: java.net.SocketTimeoutException","text":"

    \u5728\u63a5\u53e3\u3010\u5176\u4ed6\u8bbe\u7f6e\u3011\u4e2d\u589e\u52a0\u7684\u8fde\u63a5\u8d85\u65f6\u65f6\u95f4\u3002

    "},{"location":"faq/api_test/#23","title":"23 \u63a5\u53e3\u5b9a\u4e49\u91cc\u7684\u5355\u63a5\u53e3\uff0c\u53ef\u4ee5\u6279\u91cf\u6267\u884c\u5417\uff1f","text":"

    \u76ee\u524d\u53ef\u4ee5\u901a\u8fc7\u63a5\u53e3\u5b9a\u4e49\u6a21\u5757\u7684CASE\u5217\u8868\u6765\u6279\u91cf\u6267\u884c\u7528\u4f8b\u3002

    "},{"location":"faq/api_test/#24-httptcpsqldubbo","title":"24 \u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\u91cc\uff0c\u76ee\u524d\u9664\u4e86\u73b0\u6709\u7684HTTP\u3001TCP\u3001SQL\u3001DUBBO\uff0c\u8fd8\u652f\u6301\u5176\u4ed6\u534f\u8bae\u5417\uff1f","text":"

    1.13 \u7248\u672c\u5df2\u7ecf\u901a\u8fc7\u63d2\u4ef6\u7684\u65b9\u5f0f\u5b9e\u73b0\u4e86\u5bf9 MQTT \u534f\u8bae\u7684\u652f\u6301\uff0c\u8be5\u63d2\u4ef6\u662f\u4f01\u4e1a\u7248\u7684\u529f\u80fd\uff0c\u5728 MeterSphere \u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf-\u63d2\u4ef6\u7ba1\u7406\u3011\u4e2d\u4e0a\u4f20\u3002

    "},{"location":"faq/api_test/#25-metersphere-ide-api","title":"25 MeterSphere \u53ef\u4ee5\u76f4\u63a5\u5728 IDE \u4e2d\u540c\u6b65 API \u5417\uff1f","text":"

    MeterSphere \u5df2\u652f\u6301 IDEA API\u540c\u6b65\u63d2\u4ef6\uff0c\u8be6\u7ec6\u4f7f\u7528\u65b9\u6cd5\u89c1metersphere-idea\u63d2\u4ef6\u3002

    "},{"location":"faq/api_test/#26","title":"26 \u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u91cc\u53ef\u4ee5\u8de8\u9879\u76ee\u5f15\u7528\u63a5\u53e3/\u7528\u4f8b\u5417\uff1f","text":"

    \u652f\u6301\u8de8\u9879\u76ee\u5f15\u7528\u63a5\u53e3\u3001\u7528\u4f8b\u3001\u573a\u666f\u3002

    "},{"location":"faq/api_test/#27","title":"27 \u5feb\u6377\u8c03\u8bd5\u7684\u65f6\u5019\uff0c\u4e00\u76f4\u8f6c\u5708\u7b49\u5f85\u662f\u4ec0\u4e48\u539f\u56e0?","text":"

    MeterSphere \u7684\u670d\u52a1\u5668\u5230\u88ab\u6d4b\u670d\u52a1\u7684\u5730\u5740\u7f51\u7edc\u4e0d\u901a\uff0c\u53ef\u5728 MeterSphere \u4e0a telnet \u88ab\u6d4b\u670d\u52a1\u7aef\u53e3\u68c0\u67e5\u7f51\u7edc\u3002

    "},{"location":"faq/api_test/#28-case","title":"28 \u8fdb\u884c\u63a5\u53e3 case \u8c03\u8bd5\u65f6\uff0c\u8c03\u7528\u4e0d\u540c\u63a7\u5236\u53f0\u4fe1\u606f\u663e\u793a\u8fde\u63a5\u67d0\u5730\u5740\u8d85\u65f6\uff0c\u5982\u4f55\u6392\u67e5\uff1f","text":"

    \u8fd9\u79cd\u60c5\u51b5\u5927\u6982\u7387\u662f\u7f51\u7edc\u4e0d\u901a\u9020\u6210\u7684\uff0c\u53ef\u4ee5\u4f7f\u7528 curl \u547d\u4ee4\u5728 ms-node-controller \u5bb9\u5668\u548c\u670d\u52a1\u5668\u4e0a\u8fdb\u884c\u6d4b\u8bd5\uff1b

    "},{"location":"faq/api_test/#29-linuxhost","title":"29 \u5728\u63a5\u53e3\u8c03\u8bd5\u65f6\u4f7f\u7528\u65b0\u7684\u57df\u540d\uff0c\u5728Linux\u7684host\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4e86\u57df\u540d\u89e3\u6790\uff0c\u4f46\u4f9d\u7136\u8c03\u8bd5\u4e0d\u901a\uff0c\u5982\u4f55\u6392\u67e5\uff1f","text":"

    \u56e0\u4e3a node-controller \u5bb9\u5668\u4e2d\u65e0\u6cd5\u89e3\u6790\u51fa\u57df\u540d\uff0c\u56e0\u6b64\u9700\u8981\u8fdb\u5165\u5230 node-controller \u5bb9\u5668\u4e2dhost\u6587\u4ef6\u4e2d\u8fdb\u884c\u914d\u7f6e\uff0c\u7136\u540e\u91cd\u542f node-controller \u5bb9\u5668\u3002

    "},{"location":"faq/api_test/#30","title":"30 \u5982\u4f55\u5faa\u73af\u53d6\u51fa\u5217\u8868\u53d8\u91cf\u7684\u6bcf\u4e00\u4e2a\u503c\uff1f","text":"

    \u7ed3\u5408\u5faa\u73af\u63a7\u5236\u5668\u548c\u8ba1\u6570\u5668\u53d6\u503c\u3002\u53c2\u8003\u65b9\u6cd5\u63a5\u53e3\u6d4b\u8bd5\u5982\u4f55\u4f7f\u7528\u591a\u4e2aList\u8fdb\u5165ForEach\u5faa\u73af\u63a7\u5236\u5668

    "},{"location":"faq/api_test/#31-unicode","title":"31 \u63a5\u53e3\u54cd\u5e94\u5185\u5bb9\u4e3a Unicode \u5b57\u7b26\u5bfc\u81f4\u4e2d\u6587\u663e\u793a\u4e3a\u4e71\u7801\uff0c\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u65b9\u6cd51\uff1a \u5728\u540e\u7f6e\u811a\u672c\u4e2d\u9009\u62e9BeanShell\u8bed\u8a00\u5904\u7406\u7f16\u7801\uff0c\u7136\u540e\u5199\u5165prev.setDataEncoding(\"UTF-8\"); \u65b9\u6cd52\uff1a \u5728\u540e\u7f6e\u811a\u672c\u4e2d\u9009\u62e9BeanShell\uff0c\u7136\u540e\u5199\u5165\u5982\u4e0b\u4ee3\u7801\uff1a

    String response_value=new String(prev.getResponseData(),\"UTF-8\");\nchar aChar;\nint num= response_value.length();\nStringBuffer outBuffer=new StringBuffer(num);\nfor(int x =0; x <num;){\n    aChar= response_value.charAt(x++);\n    if(aChar=='\\\\'){\n        aChar= response_value.charAt(x++);\n        if(aChar=='u'){\n            int value =0;\n            for(int i=0;i<4;i++){\n                aChar= response_value.charAt(x++);\n                switch(aChar){\n                    case'0':\n                    case'1':\n                    case'2':\n                    case'3':\n                    case'4':\n                    case'5':\n                    case'6':\n                    case'7':\n                    case'8':\n                    case'9':\n                        value=(value <<4)+aChar-'0';\n                        break;\n                    case'a':\n                    case'b':\n                    case'c':\n                    case'd':\n                    case'e':\n                    case'f':\n                        value=(value <<4)+10+aChar-'a';\n                        break;\n                    case'A':\n                    case'B':\n                    case'C':\n                    case'D':\n                    case'E':\n                    case'F':\n                        value=(value <<4)+10+aChar-'A';\n                        break;\n                    default:\n                        throw new IllegalArgumentException(\n                                \"Malformed   \\\\uxxxx  encoding.\");}}\n            outBuffer.append((char) value);}else{\n            if(aChar=='t')\n                aChar='\\t';\n            else if(aChar=='r')\n            aChar='\\r';\n            else if(aChar=='n')\n            aChar='\\n';\n            else if(aChar=='f')\n            aChar='\\f';\n            outBuffer.append(aChar);}}else\n        outBuffer.append(aChar);}\nprev.setResponseData(outBuffer.toString());\n

    "},{"location":"faq/api_test/#32","title":"32 \u63a7\u5236\u53f0\u4e2d\u6587\u8f93\u51fa\u4e71\u7801\uff0c\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u4f7f\u7528UTF\u7f16\u7801\uff0clog.info(u\"MeterSphere \u4e00\u7ad9\u5f0f\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\")\u3002

    "},{"location":"faq/api_test/#33-jmeter","title":"33 \u63a5\u53e3\u6d4b\u8bd5\u662f\u5426\u53ef\u4ee5\u5bfc\u51fa\u5230 JMeter\uff1f","text":"

    \u53ef\u4ee5\u52fe\u9009\u5bf9\u5e94\u7684\u573a\u666f\u6216\u63a5\u53e3\uff0c\u5bfc\u51fa\u4e3a JMX \u683c\u5f0f\uff0c\u7136\u540e\u518d\u7528 JMeter \u6253\u5f00 JMX \u6587\u4ef6

    "},{"location":"faq/api_test/#34-metersphere-csv","title":"34 MeterSphere \u4e2d CSV \u6587\u4ef6\u7684\u4e3b\u8981\u5e94\u7528\u573a\u666f\u6709\u54ea\u4e9b\uff1f","text":"
    • \u5728\u63a5\u53e3\u81ea\u52a8\u5316\u4e2d\u53ef\u4ee5\u5c06 CSV \u6587\u4ef6\u4f5c\u4e3a\u6279\u91cf\u4f20\u53c2\u6587\u4ef6\u53ef\u4ee5\u7528\u4f5c\u573a\u666f\u53d8\u91cf\u4f7f\u7528\uff0c\u914d\u5408\u5faa\u73af\u63a7\u5236\u5668\u4f7f\u7528\u3002
    • \u5728\u6027\u80fd\u6d4b\u8bd5\u4e2d\u4f5c\u4e3a\u53c2\u6570\u88ab\u5f15\u7528\u3002
    "},{"location":"faq/api_test/#35-csv","title":"35 \u573a\u666f\u4e2d\u5982\u4f55\u4f7f\u7528 CSV \u6587\u4ef6\u53c2\u6570\uff1f","text":"

    \u5728\u573a\u666f\u53d8\u91cf\u4e2d\u6dfb\u52a0 CSV \u6587\u4ef6\uff0c\u5728\u8bf7\u6c42\u4e2d\u901a\u8fc7 ${CSV\u7684\u6587\u4ef6\u5217\u540d} \u8fdb\u884c\u5f15\u7528\u3002

    "},{"location":"faq/api_test/#36-jar","title":"36 \u524d\u7f6e/\u540e\u7f6e\u811a\u672c\u5982\u4f55\u5f15\u7528\u5916\u90e8 jar \u5305\uff1f","text":"

    \u5728\u9879\u76ee\u8bbe\u7f6e-\u6587\u4ef6\u7ba1\u7406\u4e2d\u4e0a\u4f20 jar \u5305\u4e4b\u540e\uff0c\u5728\u524d\u7f6e/\u540e\u7f6e\u811a\u672c\u4e2d\u4f7f\u7528 import \u5373\u53ef\u5f15\u7528\u3002

    "},{"location":"faq/api_test/#37-js","title":"37 \u540e\u7f6e\u811a\u672c\u4e2d\u5982\u4f55\u5f15\u7528 js \u6587\u4ef6\uff1f","text":"

    \u5c06 js \u6587\u4ef6\u4e0a\u4f20\u5230\u670d\u52a1\u5668 /opt/metersphere/data/\u76ee\u5f55\u4e0b\uff0c\u5728\u540e\u7f6e\u811a\u672c\u4e2d\u9009\u62e9 JavaScript\uff0c\u901a\u8fc7 load \u5f15\u7528 js\u6587\u4ef6\uff1aload(\u201c/opt/metersphere/data/xx.js\u201d)\u3002

    "},{"location":"faq/api_test/#38-http","title":"38 HTTP \u534f\u8bae\u63a5\u53e3\u652f\u6301\u54ea\u4e9b\u6587\u4ef6\u683c\u5f0f\u5bfc\u5165\uff1f","text":"

    HTTP \u534f\u8bae\u652f\u6301\u4e94\u79cd\u6587\u4ef6\u683c\u5f0f\uff1aMeterSphere\u683c\u5f0f\u3001Postman\u683c\u5f0f\u3001Swagger\u683c\u5f0f\u3001HAR\u683c\u5f0f\u3001JMeter\u683c\u5f0f\uff1a

    • MeterSphere \u683c\u5f0f\uff1a\u901a\u8fc7 MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u6216\u8005\u6d4f\u89c8\u5668\u63d2\u4ef6\u5bfc\u51fa\u7684 json \u683c\u5f0f\u6587\u4ef6\u3002
    • Postman \u683c\u5f0f\uff1a\u652f\u6301 Postman Collection v2.1 \u683c\u5f0f\u7684 json \u6587\u4ef6\uff0c\u901a\u8fc7 Postman \u5bfc\u51fa\u6d4b\u8bd5\u96c6\u5408\u3002
    • Swagger \u683c\u5f0f\uff1a\u652f\u6301 Swagger 2.0 \u4e0e 3.0 \u7248\u672c\u7684 json \u6587\u4ef6\uff0c\u901a\u8fc7 Swagger \u9875\u9762\u5bfc\u51fa\u6216\u8005URL\u76f4\u63a5\u5bfc\u5165\u3002
    • HAR \u683c\u5f0f\uff1a\u901a\u8fc7\u6d4f\u89c8\u5668\u7684\u5f00\u53d1\u8005\u5de5\u5177\u5bfc\u51fa HAR \u683c\u5f0f\u6587\u4ef6\u3002
    • JMeter \u683c\u5f0f\uff1a\u652f\u6301 JMeter5.2-5.4 \u7248\u672c\u7684 JMX \u6587\u4ef6\uff0c\u901a\u8fc7 JMeter \u751f\u6210 JMX \u6587\u4ef6\u3002

    "},{"location":"faq/api_test/#39-tcp","title":"39 TCP \u534f\u8bae\u63a5\u53e3\u652f\u6301\u54ea\u4e9b\u6587\u4ef6\u683c\u5f0f\u5bfc\u5165\uff1f","text":"

    TCP \u534f\u8bae\u652f\u6301\u4e09\u79cd\u6587\u4ef6\u683c\u5f0f\uff1a MeterSphere\u683c\u5f0f\u3001JMeter\u683c\u5f0f\u3001ESB\u683c\u5f0f\uff1a

    • MeterSphere \u683c\u5f0f\uff1a\u901a\u8fc7 MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u6216\u8005\u6d4f\u89c8\u5668\u63d2\u4ef6\u5bfc\u51fa\u7684 json \u683c\u5f0f\u6587\u4ef6
    • JMeter \u683c\u5f0f\uff1a\u652f\u6301 JMeter5.2-5.4\u7248\u672c\u7684 JMX \u6587\u4ef6\uff0c\u901a\u8fc7 JMeter \u751f\u6210 JMX \u6587\u4ef6
    • ESB \u683c\u5f0f\uff1a\u652f\u6301 ESB \u6a21\u7248\u7684 xlsx \u6587\u4ef6\uff08\u652f\u6301\u6a21\u7248\u4e0b\u8f7d/\u4e0a\u4f20\uff09

    "},{"location":"faq/api_test/#40-sql","title":"40 SQL \u534f\u8bae\u63a5\u53e3\u652f\u6301\u54ea\u4e9b\u6587\u4ef6\u683c\u5f0f\u5bfc\u5165\uff1f","text":"

    SQL \u534f\u8bae\u652f\u6301\u4e24\u79cd\u6587\u4ef6\u683c\u5f0f\uff1aMeterSphere\u683c\u5f0f\u3001JMeter\u683c\u5f0f\uff1a

    • MeterSphere \u683c\u5f0f\uff1a\u901a\u8fc7 MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u6216\u8005\u6d4f\u89c8\u5668\u63d2\u4ef6\u5bfc\u51fa\u7684 json \u683c\u5f0f\u6587\u4ef6
    • JMeter \u683c\u5f0f\uff1a\u652f\u6301 JMeter5.2-5.4 \u7248\u672c\u7684 JMX \u6587\u4ef6\uff0c\u901a\u8fc7 JMeter \u751f\u6210 JMX \u6587\u4ef6

    "},{"location":"faq/api_test/#41-dubbo","title":"41 DUBBO \u534f\u8bae\u63a5\u53e3\u652f\u6301\u54ea\u4e9b\u6587\u4ef6\u683c\u5f0f\u5bfc\u5165\uff1f","text":"

    DUBBO \u534f\u8bae\u63a5\u53e3\u652f\u6301\u4e24\u79cd\u6587\u4ef6\u683c\u5f0f\uff1aMeterSphere\u683c\u5f0f\u3001JMeter\u683c\u5f0f\uff1a

    • MeterSphere \u683c\u5f0f\uff1a\u901a\u8fc7 MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u6216\u8005\u6d4f\u89c8\u5668\u63d2\u4ef6\u5bfc\u51fa\u7684 json \u683c\u5f0f\u6587\u4ef6\u3002
    • JMeter \u683c\u5f0f\uff1a\u652f\u6301 JMeter5.2-5.4 \u7248\u672c\u7684 JMX \u6587\u4ef6\uff0c\u901a\u8fc7 JMeter \u751f\u6210 JMX \u6587\u4ef6\u3002

    "},{"location":"faq/api_test/#42-metersphere-url","title":"42 MeterSphere \u6839\u636e\u4ec0\u4e48\u89c4\u5219\u5224\u65ad\u540d\u79f0\u76f8\u540c\u6216 URL \u76f8\u540c\u7684\u63a5\u53e3\u662f\u5426\u4e3a\u540c\u4e00\u63a5\u53e3\uff1f","text":"
    • TCP\u3001SQL\u3001DUBBO \u8bf7\u6c42\uff0c\u540c\u9879\u76ee\u540c\u6a21\u5757\u540c\u7248\u672c\u4e0b\uff0c\u63a5\u53e3\u540d\u79f0\u76f8\u540c\u5c31\u662f\u540c\u4e00\u63a5\u53e3
    • \u9488\u5bf9HTTP\u8bf7\u6c42\uff0c\u540c\u9879\u76ee\u540c\u6a21\u5757\u540c\u7248\u672c\u4e0b\uff0c\u5206\u4e3a\u63a5\u53e3\u5b9a\u4e49\u672a\u5f00\u542f url \u53ef\u91cd\u590d\u548c\u5df2\u5f00\u542f url \u53ef\u91cd\u590d\u4e24\u79cd\u60c5\u51b5
    • \u672a\u5f00\u542f URL \u91cd\u590d\uff1a\u8bf7\u6c42\u7c7b\u578b+\u8def\u5f84\u76f8\u540c\u5219\u4e3a\u540c\u4e00\u63a5\u53e3\uff0c\u5982\uff1a
    • \u5f00\u542f URL \u91cd\u590d\uff1a\u63a5\u53e3\u540d\u79f0+\u8bf7\u6c42\u7c7b\u578b+\u8def\u5f84\u76f8\u540c\u5219\u4e3a\u540c\u4e00\u63a5\u53e3\uff0c\u5982\uff1a
    "},{"location":"faq/api_test/#43","title":"43 \u63a5\u53e3\u5bfc\u5165\u7684\u8be6\u7ec6\u903b\u8f91\u662f\u4ec0\u4e48\uff1f","text":"

    \u63a5\u53e3\u5bfc\u5165\u4e3b\u8981\u6d89\u53ca\u5404\u7c7b\u6761\u4ef6\u7684\u5224\u65ad\uff0c\u8be6\u7ec6\u903b\u8f91\u89c1\u4e0b\u56fe\uff1a

    "},{"location":"faq/api_test/#44","title":"44 \u914d\u7f6e\u4e86\u5b9a\u65f6\u4efb\u52a1\uff0c\u6ca1\u6709\u5728\u9489\u9489\u7fa4\u53d1\u6d88\u606f\uff1f","text":"
    • \u786e\u8ba4\u6d88\u606f\u901a\u77e5\u662f\u5426\u6b63\u786e\u586b\u5199\u3002
    • \u5b9a\u65f6\u4efb\u52a1\u662f\u624b\u52a8\u6267\u884c\uff0c\u4e0d\u4f1a\u53d1\u9001\u6d88\u606f\u3002
    "},{"location":"faq/api_test/#45-httpip","title":"45 \u9009\u62e9\u73af\u5883\u540d\u79f0\u540e\uff0c\u8bf7\u6c42\u5185\u5bb9\u91cc\u53ea\u6709http://\u63a5\u53e3\uff0c\u6ca1\u6709\u4f7f\u7528\u5230\u5728\u73af\u5883\u914d\u7f6e\u7684ip\u548c\u7aef\u53e3\uff0c\u5e94\u8be5\u5982\u4f55\u8fdb\u884c\uff1f","text":"

    \u5728\u73af\u5883\u914d\u7f6e\u5904\uff0c\u4e0d\u9009\u62e9\u201c\u6a21\u5757\u201d\u6216\u8005\u201c\u8def\u5f84\u201d\uff0c\u9009\u62e9\u201c\u65e0\u201d\u5373\u53ef

    "},{"location":"faq/api_test/#46","title":"46 \u63a5\u53e3\u6d4b\u8bd5\u65ad\u8a00\u6210\u529f\uff0c\u4e3a\u4ec0\u4e48\u7528\u4f8b\u663e\u793a\u672a\u901a\u8fc7\uff1f","text":"

    \u5982\u679c\u54cd\u5e94\u7801\u4e0d\u662f200\uff0c\u9700\u8981\u52fe\u9009\"\u5ffd\u7565\u72b6\u6001\"\u5ffd\u7565\u72b6\u6001\u7801\u7684\u5224\u65ad\u3002

    "},{"location":"faq/api_test/#47","title":"47 \u5728\u540e\u7f6e\u811a\u672c\u4e2d\u5982\u4f55\u83b7\u53d6\u54cd\u5e94\u7ed3\u679c\uff1f","text":"

    prev.getResponseDataAsString()

    "},{"location":"faq/api_test/#48-jmeter","title":"48 \u63a5\u53e3\u6d4b\u8bd5\u4e2d\u5bfc\u5165 JMeter \u811a\u672c\u540e\uff0c\u6ca1\u6709\u4efb\u4f55\u8bf7\u6c42\u5185\u5bb9\uff1f","text":"

    \u4f7f\u7528 JMeter \u6253\u5f00 jmx \u6587\u4ef6\uff0c\u786e\u8ba4\u63a5\u53e3\u662f\u5426\u88ab\u7981\u7528\uff0c \u5982\u7981\u7528\u624b\u52a8\u5f00\u542f\u4fdd\u5b58\u540e\u518d\u5bfc\u5165\u3002

    "},{"location":"faq/api_test/#49-error-standardjmeterengine-jdbc-data-source-already-defined-for-mysql","title":"49 \u540e\u53f0\u65e5\u5fd7\u62a5\u9519\uff1aERROR StandardJMeterEngine JDBC data source already defined for: mysql","text":"

    \u67e5\u770b\u6570\u636e\u5e93-\u6570\u636e\u6e90\uff0c\u4fee\u6539\u6700\u5927\u8fde\u63a5\u6570\u3002

    "},{"location":"faq/api_test/#50-4m","title":"50 \u63a5\u53e3\u54cd\u5e94\u5185\u5bb9\u8fc7\u5927\uff08\u7ea64M\uff09\u5bfc\u81f4\u8bf7\u6c42\u5361\u4f4f\u4e0d\u52a8\uff0c\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u5f53\u54cd\u5e94\u5185\u5bb9\u8fc7\u5927\u65f6\uff0c\u5728 gateway \u65e5\u5fd7\u4e2d\u53ef\u4ee5\u53d1\u73b0\u5bf9\u5e94\u63d0\u793a\u65e5\u5fd7\uff1a Max frame length of 10485760 has been exceeded\u3002 \u5728 /opt/metersphere/conf/metersphere.properties \u6dfb\u52a0\u5c5e\u6027\uff1aspring.cloud.gateway.httpclient.websocket.max-frame-payload-length=\u81ea\u5b9a\u4e49\u5927\u5c0f\uff0c\u4fee\u6539\u5b8c\u540e msctl reload \u91cd\u65b0\u52a0\u8f7d\u5728\u914d\u7f6e\u6587\u4ef6\u5373\u53ef\u3002

    "},{"location":"faq/api_test/#51-geturlnon-http-response-code-iavaneturisyntaxexception","title":"51 \u63a5\u53e3\u6d4b\u8bd5get\u8bf7\u6c42\u5728URL\u540e\u9762\u4f20\u4e2d\u6587\u3001\u7279\u6b8a\u5b57\u7b26\u53c2\u6570\uff0c\u63a5\u53e3\u8fd4\u56deNon HTTP response code: iava.net.URISyntaxException\u62a5\u9519","text":"

    \u9700\u8981\u5148\u5728\u524d\u7f6e\u811a\u672c\u4e2d\uff0c\u5bf9\u4e2d\u6587\u3001\u7279\u6b8a\u5b57\u7b26\u7b49\u5148\u8fdb\u884c\u7f16\u7801\u5e76\u5b58\u50a8\u4e3a\u53d8\u91cf\uff0c\u7136\u540e\u5728\u4f20\u53c2\u5904\u5f15\u7528\u5bf9\u5e94\u7684\u53d8\u91cf\u5373\u53ef\uff0c\u5bf9\u5e94\u7684\u524d\u7f6e\u811a\u672c\u6837\u4f8b\u5982\u4e0b\uff1a

    import java.net.URLDecoder;\nimport java.net.URLEncoder;\n\nString strTest = \"?=abc?\u4e2d%1&2<3,4>\";\nstrTest = URLEncoder.encode(strTest, \"UTF-8\");//\u8f6c\u7801\nvars.put(\"str\",strTest );\n
    "},{"location":"faq/api_test/#52-finishconnect-failed-connection-refused-1723010148003","title":"52 \u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u5f39\u51fa\u7ea2\u8272\u62a5\u9519finishConnect(.) failed: Connection refused: /172.30.10.14:8003","text":"

    \u51fa\u73b0\u539f\u56e0\uff1a\u5e38\u89c1\u4e3a\u63a5\u53e3\u6d4b\u8bd5 api-test \u5bb9\u5668\u5185\u5b58\u6ea2\u51fa\u5bfc\u81f4\u5fae\u670d\u52a1\u8fde\u63a5\u5931\u8d25\u3002 \u5904\u7406\u65b9\u6cd5\uff1a\u53ef\u4ee5\u589e\u5927 api-test \u5bb9\u5668\u5185\u5b58\u5e76\u91cd\u542f\u8be5\u5bb9\u5668\u3002 vi /opt/metersphere/docker-compose-api-test.yml \u8c03\u5927mem_limit: \u53ef\u4ee5\u4e3a2g\uff0c\u4fee\u6539\u4fdd\u5b58\u540e msctl reload \u751f\u6548\u3002

    "},{"location":"faq/enterprise/","title":"\u4f01\u4e1a\u7248\u76f8\u5173","text":""},{"location":"faq/enterprise/#1","title":"1 \u5f00\u6e90\u7248\u548c\u4f01\u4e1a\u7248\u7684\u533a\u522b\u662f\u4ec0\u4e48\uff1f","text":"

    MeterSphere \u6838\u5fc3\u529f\u80fd\u5168\u90e8\u5f00\u6e90\uff0c\u575a\u6301\u6309\u6708\u53d1\u5e03\u65b0\u7248\u672c\uff0c\u6c38\u4e45\u514d\u8d39\u4f7f\u7528\u3002 \u76f8\u6bd4 MeterSphere \u5f00\u6e90\u7248\uff0cMeterSphere \u4f01\u4e1a\u7248\u5728\u529f\u80fd\u4e0a\u63d0\u4f9b\u9762\u5411\u4f01\u4e1a\u7ea7\u5e94\u7528\u573a\u666f\u7684 X-Pack \u589e\u5f3a\u5305\uff0c\u5305\u542bUI\u6d4b\u8bd5\u3001\u7248\u672c\u7ba1\u7406\u3001\u7f3a\u9677\u53cc\u5411\u540c\u6b65\u3001\u5355\u70b9\u767b\u5f55\u7b49\u589e\u5f3a\u529f\u80fd\uff0c\u5e76\u968f\u4ea7\u54c1\u8fed\u4ee3\u6301\u7eed\u589e\u52a0\u3002\u540c\u65f6\u4f01\u4e1a\u7248\u672c\u63d0\u4f9b\u539f\u5382\u6280\u672f\u652f\u6301\u670d\u52a1\uff0c\u670d\u52a1\u5185\u5bb9\u5305\u62ec\u90e8\u7f72\u5347\u7ea7\u3001\u4f7f\u7528\u57f9\u8bad\u3001\u6700\u4f73\u5b9e\u8df5\u8d4b\u80fd\u3001\u95ee\u9898\u6392\u67e5\u7b49\u3002

    \u66f4\u591a\u4f01\u4e1a\u7248\u8be6\u60c5\u8bf7\u67e5\u770b\uff1aMeterSphere \u4f01\u4e1a\u7248\u3002

    "},{"location":"faq/enterprise/#2","title":"2 \u5982\u4f55\u7533\u8bf7\u4f01\u4e1a\u7248\u8bd5\u7528\uff1f","text":"

    \u7533\u8bf7 MeterSphere \u4f01\u4e1a\u7248\u8bd5\u7528\uff0c\u8bf7\u70b9\u51fb\uff1aMeterSphere \u4f01\u4e1a\u7248\u8bd5\u7528\u7533\u8bf7\u3002

    "},{"location":"faq/enterprise/#3-metersphere","title":"3 \u5728\u54ea\u91cc\u53ef\u4ee5\u770b\u5230MeterSphere\u540e\u7eed\u7248\u672c\u66f4\u65b0\u7684\u91cd\u70b9\uff1f","text":"

    \u5728 GitHub \u7684\u7f6e\u9876 Issue \u4e2d\u53ef\u4ee5\u67e5\u770b\u540e\u7eed\u7248\u672c\u7684\u89c4\u5212\uff1aMeterSphere \u540e\u7eed\u89c4\u5212 \u3002

    "},{"location":"faq/installation/","title":"\u5b89\u88c5\u90e8\u7f72\u76f8\u5173","text":""},{"location":"faq/installation/#1-metersphere","title":"1 \u5982\u4f55\u8bbe\u7f6e MeterSphere \u5f00\u673a\u540e\u81ea\u52a8\u542f\u52a8\uff1f","text":"

    MeterSphere \u5728\u5b89\u88c5\u811a\u672c\u4e2d\u6ca1\u6709\u914d\u7f6e docker \u670d\u52a1\u53ca\u4ee5\u53ca MeterSphere \u670d\u52a1\u81ea\u542f\u52a8\uff0c\u53ef\u53c2\u8003MeterSphere\u4e4b\u8bbe\u7f6e\u670d\u52a1\u5f00\u673a\u81ea\u542f\u52a8 \u8fdb\u884c\u914d\u7f6e\u3002

    "},{"location":"faq/installation/#2","title":"2 \u5982\u4f55\u4fee\u6539\u5e94\u7528\u7684\u9ed8\u8ba4\u7aef\u53e3\uff1f","text":"

    MeterSphere \u9ed8\u8ba4\u7684 HTTP \u670d\u52a1\u76d1\u542c\u7aef\u53e3\u4e3a8081\uff0c\u5b89\u88c5\u4e4b\u524d\u53ef\u4ee5\u5728\u914d\u7f6e\u6587\u4ef6 install.conf \u4e2d\u4fee\u6539 MS_SERVER_PORT \u5b57\u6bb5\uff0c\u7136\u540e\u518d\u8fdb\u884c\u5b89\u88c5\u3002 \u5b89\u88c5\u5b8c\u6210\u540e\u5982\u679c\u9700\u8981\u4fee\u6539\u9ed8\u8ba4\u7684\u5e94\u7528\u7aef\u53e3\uff0c\u5219\u9700\u8981\u4fee\u6539 /opt/metersphere/.env \u6587\u4ef6\u4e2d\u7684 MS_SERVER_PORT \u5b57\u6bb5\uff0c\u7136\u540e\u6267\u884c msctl reload \u547d\u4ee4\u91cd\u65b0\u52a0\u8f7d\u5e94\u7528\u3002

    "},{"location":"faq/installation/#3-kubernetes-metersphere","title":"3 \u5982\u4f55\u5728 Kubernetes \u4e2d\u642d\u5efa MeterSphere\uff1f","text":"

    MeterSphere Kubernetes \u90e8\u7f72\u64cd\u4f5c\u89c1 MeterSphere Kubernetes \u90e8\u7f72

    "},{"location":"faq/installation/#4-docker-compose-docker-compose","title":"4 docker-compose \u7248\u672c\u4e0e\u914d\u7f6e\u6587\u4ef6\u4e0d\u517c\u5bb9\u6216\u914d\u7f6e\u6587\u4ef6\u5b58\u5728\u95ee\u9898\uff0c\u8bf7\u91cd\u65b0\u5b89\u88c5\u6700\u65b0\u7248\u672c\u7684 docker-compose \u6216\u68c0\u67e5\u914d\u7f6e\u6587\u4ef6?","text":"

    \u5982\u679c\u670d\u52a1\u5668\u5df2\u7ecf\u5b89\u88c5\u4e86 docker-compose\uff0c MeterSphere \u5b89\u88c5\u811a\u672c\u68c0\u6d4b\u5230 docker-compose \u5df2\u5b89\u88c5\uff0c\u5c31\u4f1a\u8df3\u8fc7\u81ea\u52a8\u5b89\u88c5 docker-compose \u7684\u6b65\u9aa4\uff0c\u800c\u5df2\u5b89\u88c5\u7684\u7248\u672c\u4e0e MeterSphere \u8981\u6c42\u7684\u7248\u672c\u4e0d\u5339\u914d\u5c31\u4f1a\u5bfc\u81f4\u8fd9\u4e2a\u95ee\u9898\u3002\u9700\u8981\u624b\u52a8\u5347\u7ea7\u670d\u52a1\u5668\u4e0a\u7684 docker-compose \u7248\u672c\u4e3a /opt/metersphere/docker-compose_*.yml \u4e2d\u6307\u5b9a\u7684\u7248\u672c\uff0c\u6216\u8005\u628a\u79bb\u7ebf\u5b89\u88c5\u5305\u91cc\u7684 docker-compose \u6587\u4ef6\u62f7\u8d1d\u5230\u7cfb\u7edf\u76ee\u5f55\u5e76\u4fee\u6539\u6743\u9650\u5373\u53ef\uff1a

    cp docker/bin/docker-compose /usr/bin/\nchmod +x /usr/bin/docker-compose\n
    "},{"location":"faq/installation/#5","title":"5 \u5982\u4f55\u5347\u7ea7\u5230\u6307\u5b9a\u7248\u672c\uff1f","text":"

    msctl upgrade \u540e\u8fb9\u8ddf\u7248\u672c\u53f7\uff0c\u4f8b\u5982\uff1amsctl upgrade v2.10.1-lts \u3002

    "},{"location":"faq/installation/#6","title":"6 \u5982\u4f55\u5378\u8f7d\uff1f","text":"

    \u5148\u505c\u6b62\u6b63\u5728\u8fd0\u884c\u7684 MeterSphere \u5bb9\u5668\uff0c\u7136\u540e\u518d\u5220\u9664\u5bb9\u5668\uff0c\u6700\u540e\u5220\u9664\u5e94\u7528\u6570\u636e\u76ee\u5f55\u4ee5\u53ca docker \u73af\u5883\u7b49\uff0c\u5177\u4f53\u64cd\u4f5c\u89c1\u5982\u4e0b\u547d\u4ee4\uff1a

    #1\u3001\u5148\u505c\u6b62\u6b63\u5728\u8fd0\u884c\u7684 MeterSphere \u5bb9\u5668\uff0c\u7136\u540e\u518d\u5220\u9664\u5bb9\u5668\nmsctl uninstall\n\n#\u5378\u8f7d\u5e94\u7528\u6570\u636e\nrm -rf /opt/metersphere\nrm -rf /usr/local/bin/msctl\nrm -rf ~/.msrc\n\n#\u5378\u8f7d docker \u548c docker-compose\nsystemctl stop docker\nrm -rf /usr/bin/docker*\nrm -rf /usr/bin/containerd*\nrm -rf /usr/bin/ctr\nrm -rf /usr/bin/runc\nrm -rf /etc/systemd/system/docker.service\nsystemctl daemon-reload\n
    "},{"location":"faq/installation/#7","title":"7 \u5378\u8f7d\u4f1a\u5bfc\u81f4\u6570\u636e\u6e05\u7a7a\u4e48\uff1f","text":"

    MerterSphere \u5e94\u7528\u6570\u636e\u8fdb\u884c\u4e86\u672c\u5730\u7684\u6301\u4e45\u5316\u5b58\u50a8\uff0c\u6240\u4ee5 msctl uninstall \u5378\u8f7d\u4e0d\u4f1a\u5f71\u54cd\u6570\u636e\u3002

    "},{"location":"faq/installation/#8-usrlocalbinmsctl-line-115","title":"8 \u5347\u7ea7\u8fc7\u7a0b\u4e2d\u62a5\u9519\uff1a/usr/local/bin/msctl: line 115 ....","text":"

    \u4e3b\u8981\u539f\u56e0\u662f msctl \u7684 shell \u517c\u5bb9\u6027\u5bfc\u81f4\uff0ccat /usr/local/bin/msctl \u67e5\u770b\u8fd9\u4e2a\u6587\u4ef6\u5bf9\u5e94\u884c\u6570\u7684\u4ee3\u7801\uff0c\u5e76\u8fdb\u884c\u517c\u5bb9\u6027\u5904\u7406\u3002

    "},{"location":"faq/installation/#9-schema-metersphere-contains-a-failed-migration-to-version-86","title":"9 \u5347\u7ea7\u62a5\u9519\uff1aSchema metersphere contains a failed migration to version 86 !","text":"

    sql \u521d\u59cb\u5316\u5931\u8d25\u5bfc\u81f4\uff0c\u9700\u8981\u8fde\u63a5 metersphere \u6570\u636e\u5e93\u624b\u52a8\u6267\u884csql\u3002

    • \u5230 github \u6e90\u7801\u4e0a https://github.com/metersphere/metersphere/tree/v2.3.1/system-setting/backend/src/main/resources/db/migration \u4e0b\u8f7d\u5bf9\u5e94\u6587\u4ef6\u540d\u5e26 86 \u7684 flyway sql\u3002\u6b64\u5904\u94fe\u63a5v2.3.1\u4e3a\u5b89\u88c5\u7684\u7248\u672c\u53f7\uff0c\u5982\u679c\u4e0d\u662f\u8be5\u7248\u672c\uff0c\u53ef\u5207\u6362\u5230\u76ee\u6807\u7248\u672c\u518d\u4e0b\u8f7dsql\u6587\u4ef6.
    • \u5c06\u6587\u4ef6\u4e0a\u4f20\u5230 MeterSphere \u670d\u52a1\u5668\uff0c\u5e76\u5c06sql\u6587\u4ef6 copy \u5230\u5bb9\u5668\u4e2d
          #\u5c06\u5907\u4efd\u7684sql\u6570\u636e\u590d\u5236\u81f3mysql\u5bb9\u5668\n    docker cp V86__v1.10.1_release.sql mysql:/\n    #\u4f7f\u7528 metersphere \u5e76\u6267\u884csql\n    docker exec -it mysql bash\n    mysql -uroot -pPassword123@mysql\n    use metersphere;\n    #\u5bfc\u5165\u6570\u636e\u5e93\u6587\u4ef6\n    source /V86__v1.10.1_release.sql\n
    • \u5168\u90e8\u6267\u884c\u6210\u529f\u540e\uff0c\u4fee\u6539 metersphere_version \u8868\u5bf9\u5e94\u7248\u672c 86 \u7684 success \u503c\u4e3a1\uff0c\u9000\u51famysql\u5bb9\u5668\u7136\u540e msctl reload \u91cd\u542f\u670d\u52a1\u5373\u53ef\u3002 update metersphere_version set success=1 where version=86;
    "},{"location":"faq/installation/#10","title":"10 \u5982\u4f55\u5907\u4efd\u6570\u636e\u5e93?","text":"

    \u5177\u4f53\u64cd\u4f5c\u8be6\u7ec6\u89c1 MeterSphere \u6570\u636e\u5907\u4efd\u3002

    "},{"location":"faq/installation/#11-mysqldump-error-2020-got-packet-bigger-than-max_allowed_packet-bytes-when-dumping-table-api_scenario_report_detail-at-row-94","title":"11 mysqldump \u5bfc\u51fa\u6570\u636e\u5e93\u65f6\u62a5\u9519\uff1a Error 2020: Got packet bigger than 'max_allowed_packet' bytes when dumping table `api_scenario_report_detail` at row: 94","text":"

    mysqldump \u6267\u884c\u65f6\u6dfb\u52a0 max_allowed_packet \u53c2\u6570\uff1a

    docker exec -i mysql mysqldump -uroot -pPassword123@mysql metersphere --max_allowed_packet=2G > metersphere.sql\n

    "},{"location":"faq/installation/#12-non-http-response-code-javanetsockettimeoutexception","title":"12 \u6027\u80fd\u6d4b\u8bd5\u65f6\u5e76\u53d1\u91cf\u52a0\u5927\u7684\u65f6\u5019\u62a5\u9519\uff1aNon HTTP response code: java.net.SocketTimeoutException","text":"

    \u591a\u662f\u56e0\u4e3a\u670d\u52a1\u7aef\u6709\u8f83\u591a\u8bf7\u6c42\u6b63\u5728\u5904\u7406\uff08\u4e14\u5904\u7406\u65f6\u95f4\u8f83\u957f\uff09\uff0c\u5bfc\u81f4 MeterSphere \u5728\u6709\u6548\u65f6\u95f4\u5185\u65e0\u6cd5\u8fde\u63a5\u4e0a\u670d\u52a1\u5668\u800c\u51fa\u73b0\uff0c\u53ef\u901a\u8fc7\u4fee\u6539\u5355\u4e2a\u63a5\u53e3\u7684\u8fde\u63a5\u8d85\u65f6\u65f6\u95f4\u89e3\u51b3\u3002

    "},{"location":"faq/installation/#13-mysql-lower_case_table_names1","title":"13 MySQL \u6570\u636e\u5e93\u8bbe\u7f6e\u4e86\u5ffd\u7565\u5927\u5c0f\u4f46\u672a\u751f\u6548\uff0clower_case_table_names=1","text":"

    \u53ef\u80fd\u662f\u56e0\u4e3a my.cnf \u6587\u4ef6\u6743\u9650\u4e0d\u5bf9\u5bfc\u81f4\uff0c\u4fee\u6539\u6743\u9650\u540e\u91cd\u542f\u6570\u636e\u5e93\u3002

    # chmod 655 /opt/metersphere/conf/my.cnf \n# docker restart mysql\n

    "},{"location":"faq/installation/#14-kafka","title":"14 \u5982\u4f55\u5220\u9664kafka\u4e2d\u7684\u4e34\u65f6\u6570\u636e\uff0c\u51cf\u4f4e\u78c1\u76d8\u4f7f\u7528\u7387\uff1f","text":"

    v1.20.x-lts\uff0c\u9700\u8981\u540c\u65f6\u5220\u9664 Kafka \u548c Zookeeper \u7684\u4e34\u65f6\u6587\u4ef6

    msctl uninstall\nrm -rf /opt/metersphere/data/kafka/kafka   \nrm -rf  /opt/metersphere/data/zookeeper/zookeeper\nmsctl reload   #\u91cd\u65b0\u521b\u5efa\u76ee\u5f55\u548c\u57fa\u7840\u6587\u4ef6  \n

    v2.x \u5fae\u670d\u52a1\u67b6\u6784\uff0c Kafka \u4f7f\u7528\u7248\u672c\u5347\u7ea7\uff0c\u53ea\u9700\u5220\u9664 Kafka \u7684\u4e34\u65f6\u6587\u4ef6

    msctl uninstall\nrm -rf /opt/metersphere/data/kafka/kafka   \nmsctl reload   #\u91cd\u65b0\u521b\u5efa\u76ee\u5f55\u548c\u57fa\u7840\u6587\u4ef6 \n
    "},{"location":"faq/installation/#15-terminating-due-to-javalangoutofmemoryerror-gc-overhead-limit-exceeded","title":"15 \u6267\u884c\u673a\u7ecf\u5e38\u62a5\u5185\u5b58\u6ea2\u51fa\uff1aTerminating due to java.lang.OutOfMemoryError: GC overhead limit exceeded","text":"

    \u589e\u5927\u5806\u5185\u5b58\uff1a

    set JAVA_OPTS=-server -Xms512m -Xmx1024m -XX:MaxNewSize=1024m -XX:MaxPermSize=1024m;\n

    "},{"location":"faq/installation/#16-metersphere-jenkins","title":"16 MeterSphere jenkins \u63d2\u4ef6\u9a8c\u8bc1\u901a\u8fc7\u540e\u627e\u4e0d\u5230\u5de5\u4f5c\u7a7a\u95f4","text":"

    \u68c0\u67e5\u914d\u7f6e\u7684 MeterSphere URL \u5730\u5740\uff0c\u5982\u679c\u5730\u5740\u91cc\u591a\u4e86/login\u8def\u5f84\u4f1a\u51fa\u73b0\u8fd9\u4e2a\u73b0\u8c61\u3002

    "},{"location":"faq/installation/#17-jenkins-metersphere-jenkins-metersphere-meterspherejavalangruntimeexceptionhttpclient","title":"17 Jenkins \u63d2\u4ef6\u4e0e MeterSphere \u7248\u672c\u4e00\u81f4\uff0c\u5e76\u4e14\u5df2\u786e\u8ba4 Jenkins \u4e3b\u673a\u4e0e MeterSphere \u670d\u52a1\u5668\u4e4b\u95f4\u7f51\u7edc\u901a\u7545\uff0c\u4f46\u9a8c\u8bc1\u8d26\u6237\u65f6\u63d0\u793a:\u201c\u9a8c\u8bc1MeterSphere\u8d26\u53f7\u5931\u8d25\uff01java.lang.RuntimeException:HttpClient\u67e5\u8be2\u5931\u8d25\u201d\uff0c\u539f\u56e0\u662f\u4ec0\u4e48\uff1f\u5982\u4f55\u89e3\u51b3\uff1f","text":"

    \u67e5\u770b\u5e76\u786e\u8ba4 MeterSphere \u670d\u52a1\u5668\u4e0e Jenkins \u670d\u52a1\u5668\u65f6\u95f4\u662f\u5426\u4e00\u81f4\uff0c\u5982\u679c\u4e0d\u4e00\u81f4\u5c06\u4f1a\u56e0\u4e3a\u7b7e\u540d\u5931\u6548\u5bfc\u81f4\u9a8c\u8bc1\u8d26\u6237\u65f6\u5f02\u5e38\u3002

    "},{"location":"faq/installation/#18-image-not-found-xxxxxx","title":"18 \u5347\u7ea7\u6216\u5b89\u88c5\u65f6\u540e\u53f0\u62a5\u9519:image not found : xxxxxx","text":"

    \u955c\u50cf\u88ab\u8bef\u5220\u9664\u4e86\uff0c\u9700\u8981\u5728 MeterSphere \u4e3b\u673a\u4e0a\u91cd\u65b0docker pull\u8be5\u955c\u50cf\uff0c\u6216\u4e0b\u8f7d\u5b8c\u6574\u79bb\u7ebf\u5b89\u88c5\u5305\u8fdb\u884c\u79bb\u7ebf\u5347\u7ea7\u6216\u5b89\u88c5\u3002

    "},{"location":"faq/installation/#19-url","title":"19 \u524d\u7aef\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u6216\u63a5\u53e3\u573a\u666f\u62a5\u9519\uff1a\u8bf7\u68c0\u67e5\u5f53\u524d\u7ad9\u70b9url\u914d\u7f6e\uff1b","text":"

    \u672c\u5730\u642d\u5efa\u7684\u9700\u8981\u8981\u628alocalhost `\u6539\u4e3a\u5177\u4f53 IP\u3002

    "},{"location":"faq/installation/#20","title":"20 \u5982\u4f55\u76d1\u63a7\u88ab\u538b\u6d4b\u7684\u673a\u5668\uff1f","text":"

    \u5728\u88ab\u6d4b\u670d\u52a1\u5668\u4e0a\u5b89\u88c5 node-exporter \u670d\u52a1\uff0c\u7136\u540e\u5728 \u6027\u80fd\u6d4b\u8bd5-\u9ad8\u7ea7\u914d\u7f6e \u91cc\u6dfb\u52a0\u76d1\u63a7\uff0c\u586b\u5199\u88ab\u6d4b\u670d\u52a1\u5668\u4e0a node-exporter \u670d\u52a1\u7684 ip \u548c\u7aef\u53e3\u4ee5\u53ca\u76d1\u63a7\u9879\u3002\u8be6\u7ec6\u64cd\u4f5c\u89c1\u6027\u80fd\u6d4b\u8bd5-\u76d1\u63a7

    "},{"location":"faq/installation/#21","title":"21 \u5fd8\u8bb0 \u5bc6\u7801\u5982\u4f55\u5904\u7406\uff1f","text":"

    MeterSphere \u666e\u901a\u7528\u6237\u5fd8\u8bb0\u5bc6\u7801\uff0c\u7ba1\u7406\u5458\u53ef\u4ee5\u5728\u7cfb\u7edf\u8bbe\u7f6e-\u7528\u6237\u9875\u9762\u4e2d\u8fdb\u884c\u4fee\u6539\u3002

    "},{"location":"faq/installation/#22","title":"22 \u7cfb\u7edf\u8fd0\u884c\u4e00\u6bb5\u65f6\u95f4\u540e\u78c1\u76d8\u53ef\u4ee5\u6e05\u7406\u54ea\u4e9b\u65e0\u7528\u7684\u6587\u4ef6\u6765\u91ca\u653e\u78c1\u76d8","text":"
    • \u5220\u9664\u4e4b\u524d\u7248\u672c\u591a\u4f59\u7684\u955c\u50cf\u3002 docker rmi 'docker images -q' docker images # \u68c0\u67e5\u5269\u4f59\u955c\u50cf
    • \u5220\u9664\u4e4b\u524d\u7684MeterSphere \u5b89\u88c5\u5305\u548c\u89e3\u538b\u5305\u3002
    • \u51cf\u5c11\u7cfb\u7edf\u65e5\u5fd7\u4fdd\u7559\u5929\u6570\uff1a vi /opt/metersphere/conf/metersphere.properties \u589e\u52a0\u914d\u7f6e\u9879\u8bbe\u7f6e\u65e5\u5fd7\u4fdd\u5b58\u5929\u6570\uff0c\u5982\uff1a logger.max.history=3\u3002
    • \u505c\u6b62\u5b9a\u65f6\u4efb\u52a1\uff0c\u5e76\u505c\u6b62 MeterSphere \u670d\u52a1\uff0c\u5220\u9664/opt/metersphere/data/kafka/kafka\u548c/opt/metersphere/data/zookeeper/zookeeper\uff08v2.3\u4e4b\u524d\uff09\u76ee\u5f55\uff0c\u7136\u540e\u518d\u91cd\u542f MeterSphere \u670d\u52a1\u3002
    "},{"location":"faq/installation/#23-metersphere-prometheus-restarting","title":"23 MeterSphere \u90e8\u7f72\u4e2d\u9047\u5230 Prometheus \u542f\u52a8\u4e0d\u8d77\u6765\uff0c\u4e00\u76f4\u5904\u4e8e Restarting \u7684\u95ee\u9898","text":"

    \u53ef\u80fd\u662f\u56e0\u4e3a\u6587\u4ef6\u6743\u9650\u4e0d\u5bf9\u5bfc\u81f4\uff0c\u4fee\u6539\u6743\u9650\u540e\u5220\u9664\u4e4b\u524d\u7684 prometheus \u5bb9\u5668\u5e76 reload\u3002

    chmod -R 755 /opt/metersphere/conf/prometheus\ndocker stop ms-prometheus\ndocker rm ms-prometheus\nmsctl reload\n

    "},{"location":"faq/installation/#24-redis-restarting","title":"24 \u9047\u5230 redis \u542f\u52a8\u4e0d\u8d77\u6765\uff0c\u4e00\u76f4\u5904\u4e8e Restarting \u7684\u95ee\u9898","text":"

    \u53ef\u80fd\u662f\u56e0\u4e3a redis.conf \u6587\u4ef6\u6743\u9650\u4e0d\u5bf9\u5bfc\u81f4\uff0c\u4fee\u6539\u6743\u9650\u540e\u5220\u9664\u4e4b\u524d\u7684 redis \u5bb9\u5668\u5e76 reload\u3002

    chmod -R 755 /opt/metersphere/conf/redis.conf\ndocker stop redis\ndocker rm redis\nmsctl reload\n

    "},{"location":"faq/installation/#25-redis","title":"25 Redis \u65e0\u6cd5\u8fde\u63a5","text":"
    • \u68c0\u67e5\u9632\u706b\u5899\u662f\u5426\u5f00\u542f\u3002
    • \u68c0\u67e5 6379\u7aef\u53e3\u662f\u5426\u5f00\u653e\u3002
    • \u68c0\u67e5 /opt/metersphere/.env \u6587\u4ef6\u4e2d\u914d\u7f6e\u7684 Redis \u5730\u5740\u662f\u5426\u662f\u5bf9\u4e8e\u7684\u670d\u52a1\u5668\u7684IP\u5730\u5740\u3002\u5982\u5730\u5740\u6b63\u786e\u4efb\u65e0\u6cd5\u8fde\u63a5\u53ef\u4fee\u6539 /opt/metersphere/.env \u6587\u4ef6\u628aMS_REDIS_HOST=redis
    "},{"location":"faq/installation/#26-docker-docker-error-response-from-daemon-oci-runtime-create-failed-systemd-cgroup-flag-passed-but-systemd-support-for-managing-cgroups-is-not-available","title":"26 docker \u8fd0\u884c\u9519\u8bef\uff1adocker: Error response from daemon: OCI runtime create failed: systemd cgroup flag passed, but systemd support for managing cgroups is not available:\u2026\u2026","text":"
    • \u6253\u5f00 daemon.json \u6587\u4ef6\uff0c \u5c06 \"exec-opts\": [\"native.cgroupdriver=systemd\"] \u5220\u9664\u3002
    • \u91cd\u542f docker\uff1aservice docker restart\u3002
    • \u91cd\u542f\u670d\u52a1: msctl reload\u3002
    "},{"location":"faq/installation/#27-javasqlsqlnontransientconnectionexception-data-source-rejected-establishment-of-connection-message-from-server-too-many-connection","title":"27 \u540e\u53f0\u65e5\u5fd7\u63d0\u793a\u6570\u636e\u5e93\u8fde\u63a5\u6570\u5f02\u5e38\uff1ajava.sql.SQLNonTransientConnectionException: Data source rejected establishment of connection, message from server, too many connection","text":"

    \u53ef\u80fd\u662f\u56e0\u4e3a my.cnf \u6587\u4ef6\u6743\u9650\u4e0d\u5bf9\u5bfc\u81f4\u914d\u7f6e\u6587\u4ef6\u6ca1\u6709\u751f\u6548\uff0c\u4fee\u6539\u6743\u9650\u540e\u5220\u9664\u4e4b\u524d\u7684 mysql \u5bb9\u5668\u5e76 reload\u3002

    chmod -R 655 /opt/metersphere/conf/my.cnf\ndocker stop mysql\ndocker rm mysql\nmsctl reload\n

    "},{"location":"faq/installation/#28-sqlsyntaxerrorexceptionexpression-3-of-select-list-is-not-in-group-by-clause-and-contains-nonaggregated-column-metersphere-_devapi_definition_exec_resultstart_time","title":"28 \u540e\u53f0\u65e5\u5fd7\u63d0\u793a\u6570\u636e\u5e93\u8bed\u6cd5\u5f02\u5e38\uff1aSQLSyntaxErrorException\uff1aExpression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column \u201cmetersphere\u201d _dev.api_definition_exec_result.start_time\u2019","text":"

    \u4fee\u6539\u6570\u636e\u5e93\u914d\u7f6e\u6587\u4ef6 my.cnf\uff0c\u589e\u52a0\u914d\u7f6e\u8bed\u6cd5\u6821\u9a8c\u89c4\u5219\uff1asql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE

    "},{"location":"faq/installation/#29-sqljavaxnetsslsslhandshakeexception-no-appropriate-protocol","title":"29 \u524d\u540e\u7f6eSQL\u811a\u672c\u6267\u884c\u62a5\u9519\uff1ajavax.net.ssl.SSLHandshakeException: No appropriate protocol\u2026\u2026","text":"

    \u5728\u73af\u5883\u7ba1\u7406-\u6570\u636e\u5e93\u914d\u7f6e\u4e2d\u7684\"\u6570\u636e\u5e93\u8fde\u63a5URL\"\u540e\u9762\u6dfb\u52a0 '?createDatabaseIfNotExist=true&useSSL=false'\u3002

    "},{"location":"faq/installation/#30-msctl-status","title":"30 msctl status\u663e\u793a\u670d\u52a1\u6b63\u5e38\uff0c\u4f46\u662f\u5b9e\u9645\u670d\u52a1\u5374\u8bbf\u95ee\u4e0d\u4e86\u600e\u4e48\u529e\uff1f","text":"

    \u5982\u679c MeterSphere \u4e3b\u673a\u7f51\u7edc\u914d\u7f6e\uff08IP\u3001firewalld\u3001iptables\u7b49\uff09\u53d1\u751f\u4e86\u53d8\u5316\uff0c\u4f1a\u5bfc\u81f4\u4e4b\u524d\u7684\u5bb9\u5668\u7f51\u7edc\u5931\u6548\uff0c\u51fa\u73b0\u6d4f\u89c8\u5668\u65e0\u6cd5\u8bbf\u4f46\u4f7f\u7528 msctl status \u547d\u4ee4\u67e5\u770b\u5982MeterSphere \u5404\u670d\u52a1\u7ec4\u4ef6\u8fd0\u884c\u90fd\u6b63\u5e38\u5f97\u73b0\u8c61\u3002\u9700\u8981\u5148\u91cd\u542f docker\uff0c\u518d\u91cd\u542f MeterSphere \u670d\u52a1\u3002

    "},{"location":"faq/installation/#31-session","title":"31 \u5982\u4f55\u4fee\u6539 session \u8fc7\u671f\u65f6\u95f4\uff1f","text":"

    \u5728 /opt/metersphere/conf/metersphere.properties \u4e2d\u6dfb\u52a0\u5b57\u6bb5 session.timeout\uff0c\u5355\u4f4d\u79d2\u3002

    "},{"location":"faq/installation/#32-k8s-metersphere-413-request-entity-too-large","title":"32 K8S \u90e8\u7f72 metersphere \u5728\u4e0a\u4f20\u6587\u4ef6\u65f6\u63d0\u793a\uff1a413 request entity too large","text":"

    \u914d\u7f6e ngnix \u8bf7\u6c42\u89e3\u9664\u9ed8\u8ba4\u7684 1M \u9650\u5236\uff1a

    kubectl edit ingress metersphere\napiVersion: extensions/v1beta1\nkind: Ingress\nmetadata:\nannotations:\nmeta.helm.sh/release-name: metersphere\nmeta.helm.sh/release-namespace: default\nnginx.ingress.kubernetes.io/proxy-body-size: 50m\n

    "},{"location":"faq/installation/#33-metersphere-413-request-entity-too-large","title":"33 \u4e3b\u673a\u90e8\u7f72 metersphere \u5728\u4e0a\u4f20\u6587\u4ef6\u65f6\u63d0\u793a\uff1a413 request entity too large","text":"

    \u5728 nginx \u670d\u52a1\u7684\u914d\u7f6e\u6587\u4ef6 nginx.conf \u7684 http \u6bb5\u4e2d\u52a0\u5165 client_max_body_size xxm\uff0c xx\u6839\u636e\u9700\u6c42\u6539\u52a8\uff0c\u4fdd\u5b58\u540e\u91cd\u542f nginx\u3002

    "},{"location":"faq/installation/#34-nginx-f12-websocket","title":"34 \u4f7f\u7528Nginx\u914d\u7f6e\u53cd\u5411\u4ee3\u7406\u540e\uff0c\u5728\u8fdb\u884c\u63a5\u53e3\u6d4b\u8bd5\u65f6\uff0c\u9875\u9762\u5361\u5728\u52a0\u8f7d\u72b6\u6001\uff0c\u6309 F12 \u53ef\u4ee5\u770b\u5230 websocket \u8fde\u63a5\u5931\u8d25","text":"

    \u9700\u8981\u52a0\u4e0a Nginx websocket \u914d\u7f6e:

    server{\n  ...\n  location / {\n    proxy_pass http://jumpserver_nginx;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header Host $host;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\n    #\u52a0\u4e0a\u8fd9\u6bb5\n    proxy_http_version 1.1;\n    proxy_set_header Upgrade $http_upgrade;\n    proxy_set_header Connection \"upgrade\";\n  }\n}\n
    "},{"location":"faq/installation/#35-the-connection-is-abnormal-please-check-the-environment-configuration","title":"35 \u63a5\u53e3\u8fd0\u884c\u65f6\uff0c\u9875\u9762\u62a5\u9519:The connection is abnormal\uff0c please check the environment configuration","text":"
    • \u5982\u679c\u4f7f\u7528\u4e86Nginx\uff0c \u8bf7\u53c2\u8003 \u914d\u7f6e\u53cd\u5411\u4ee3\u7406\u3002
    • \u5982\u679c\u4f7f\u7528\u4e86fidder\u3001charles\u7b49\u4ee3\u7406\u4ee3\u5de5\u5177\uff0c\u5148\u5173\u95ed\u3002
    • \u5982\u679c https://ip:8081 \u88ab\u62e6\u622a\u4e86\uff0c\u8bf7\u4f7f\u7528 http://ip:8081 \u3002
    "},{"location":"faq/installation/#36-http-error-500-javaxservletservletexception-filtered-request-failed","title":"36 \u5347\u7ea7\u540e\u670d\u52a1\u6b63\u5e38\uff0c\u4f46\u662f\u8bbf\u95ee\u9875\u9762\u63d0\u793a\uff1aHTTP ERROR 500 javax.servlet.ServletException: Filtered request failed.","text":"
    • \u6e05\u6d4f\u89c8\u5668\u7f13\u5b58\uff0c\u91cd\u65b0\u6253\u5f00\u6d4f\u89c8\u5668\u8fdb\u884c\u8bbf\u95ee\u3002
    • \u6e05\u9664 redis \u6570\u636e\uff1a
    docker exec -it redis sh\nredis-cli   \nauth Password123@redis\nflushall\n
    "},{"location":"faq/installation/#37-javaiofilenotfoundexceptionoptmeterspherelogsmeterspherems-jmeter-run-loglogno-such-file-or-directory","title":"37 \u65e5\u5fd7\u4e2d\u63d0\u793a\uff1ajava.io.FileNotFoundException\uff1a/opt/metersphere/logs/metersphere/ms-jmeter-run-log.log(no such file or directory)","text":"

    \u68c0\u67e5 selinux \u72b6\u6001\uff0c\u5982\u679c\u662f\u5f00\u542f\u72b6\u6001\uff0c\u5c1d\u8bd5\u5173\u95ed\u540e\u518d\u91cd\u542f docker\uff0c\u91cd\u65b0\u52a0\u8f7d MeterSphere\u3002

    "},{"location":"faq/installation/#38-metersphere-k8s","title":"38 MeterSphere k8s\u90e8\u7f72\u540e\u5982\u4f55\u63a7\u5236\u6570\u636e\u5e93\u7684\u8fde\u63a5\u6570","text":"
    • \u5728 metersphere-config \u7684 ConfigMap \u6587\u4ef6\u91cc\uff0cDATABASE \u5904\u65b0\u589e\u5982\u4e0b\u4e24\u884c\u53c2\u6570\u3002
    • \u5728 values.yml \u6587\u4ef6\u91cc\uff0cDATABASE \u5904\u65b0\u589e\u5982\u4e0b\u4e24\u884c\u53c2\u6570\u3002
      spring.datasource.hikari.maximum-pool-size=\u4f60\u60f3\u8981\u7684\u6570\u503c\nspring.datasource.quartz.hikari.maximum-pool-size=\u4f60\u60f3\u8981\u7684\u6570\u503c\n
    "},{"location":"faq/installation/#39-encountered-error-while-bringing-up-the-project-msctl-status-mysql-restarting","title":"39 \u5b89\u88c5\u65f6\u51fa\u73b0\uff1aEncountered error while bringing up the project\uff0c msctl status \u65f6\u770b\u5230 mysql \u5bb9\u5668\u4e00\u76f4 Restarting","text":"

    \u5728 /opt/metersphere/docker-compose-mysql.yml \u6587\u4ef6 restart: always \u540e\u9762\u4e00\u884c\u52a0 privileged: true \u8fd9\u4e2a\u53c2\u6570\uff0c\u7136\u540e\u518d\u6267\u884c msctl reload \u5373\u53ef\u3002

    "},{"location":"faq/installation/#40-creating-network-metersphere_ms-network-with-driver-brige-pool-overlaps-with-other-one-on-this-address-space","title":"40 \u5b89\u88c5\u90e8\u7f72\u65f6\u62a5\u9519\uff1aCreating network \"metersphere_ms-network\" with driver \"brige\" Pool overlaps with other one on this address space","text":"

    \u4e3b\u8981\u539f\u56e0\u662f MeterSphere \u9ed8\u8ba4\u7684\u5bb9\u5668\u7f51\u7edc\u5730\u5740\u7a7a\u95f4\u5176\u5b83\u5730\u5740\u51b2\u7a81\uff0c\u9700\u8981\u91cd\u65b0\u624b\u52a8\u4fee\u6539\u5e76\u91cd\u65b0\u521b\u5efa\u3002

    • \u6e05\u9664\u5b50\u7f51\u7f51\u6bb5\uff1adocker network prune
    • \u5c06 /opt/metersphere/.env \u91cc MS_DOCKER_SUBNET \u6539\u6210\u5176\u5b83\u7f51\u7edc\u6bb5
    • \u624b\u52a8\u521b\u5efa\u5bb9\u5668\u7f51\u7edc\uff1adocker network create metersphere_ms-network
    • \u91cd\u542f\u670d\u52a1\u5668\uff1amsctl reload
    "},{"location":"faq/installation/#41","title":"41 \u6570\u636e\u5e93\u91c7\u7528\u5b89\u88c5\u5305\u5185\u7f6e\u6570\u636e\uff0c\u672a\u5f00\u542f\u5668\u9632\u706b\u5899\u7684\u60c5\u51b5\u4e0b\uff0c\u4e3a\u4f55\u670d\u52a1\u8fde\u4e0d\u4e0a\u6570\u636e\u5e93\uff1f","text":"

    \u68c0\u67e5 /opt/metersphere/.env \u4e2d\u7684 MS_DOCKER_SUBNET \u4e0e\u670d\u52a1\u5668\u7f51\u5361\u662f\u5426\u5728\u540c\u4e00\u7f51\u6bb5\uff0c\u5982\u679c\u662f\u540c\u4e00\u7f51\u6bb5\u5c06\u5f71\u54cd\u8def\u7531\u8f6c\u53d1\uff0c\u5bfc\u81f4\u670d\u52a1\u8fde\u4e0d\u4e0a\u6570\u636e\u5e93\u3002

    • \u4fee\u6539env\u6587\u4ef6\u4e2d\u7684 MS_DOCKER_SUBNET \u7684\u7f51\u6bb5\u914d\u7f6e\uff0c\u4e0e\u4e3b\u673a\u4e0d\u5728\u540c\u4e00\u7f51\u6bb5\u3002
    • \u6267\u884c msctl uninstall -v \u5148\u8fdb\u884c\u5378\u8f7d\uff0c\u518d\u6267\u884c msctl reload \u91cd\u65b0\u521b\u5efa\u5bb9\u5668\u3002
    "},{"location":"faq/load_test/","title":"\u6027\u80fd\u6d4b\u8bd5\u76f8\u5173","text":""},{"location":"faq/load_test/#1","title":"1 \u662f\u5426\u652f\u6301/\u5982\u4f55\u652f\u6301\u5206\u5e03\u5f0f\u7684\u6027\u80fd\u6d4b\u8bd5\uff1f","text":"

    MeterSphere \u901a\u8fc7\u5728\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u6dfb\u52a0\u591a\u4e2a\u6d4b\u8bd5\u6267\u884c\u8282\u70b9\u7684\u65b9\u5f0f\u6765\u652f\u6301\u5206\u5e03\u5f0f\u7684\u6027\u80fd\u6d4b\u8bd5\u3002\u5728\u6211\u4eec\u5411\u4e00\u4e2a\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u6dfb\u52a0\u8282\u70b9\u65f6\uff0c\u9664\u4e86\u8282\u70b9\u7684 IP\u3001\u7aef\u53e3\u4fe1\u606f\u5916\uff0c\u8fd8\u9700\u8981\u6839\u636e\u8be5\u8282\u70b9\u7684\u673a\u5668\u89c4\u683c\uff0c\u914d\u7f6e\u8be5\u8282\u70b9\u53ef\u4ee5\u652f\u6301\u7684\u6700\u5927\u5e76\u53d1\u6570\u3002\u5f53\u6211\u4eec\u5728\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u7684\u8fc7\u7a0b\u4e2d\u9009\u62e9\u4e86\u67d0\u4e2a\u6d4b\u8bd5\u8d44\u6e90\u6c60\u65f6\uff0cMeterSphere \u4f1a\u5c06\u672c\u6b21\u6027\u80fd\u6d4b\u8bd5\u5b9a\u4e49\u7684\u5e76\u53d1\u7528\u6237\u6570\uff0c\u6309\u7167\u6240\u9009\u6d4b\u8bd5\u8d44\u6e90\u6c60\u7684\u8282\u70b9\u652f\u6301\u7684\u6700\u5927\u5e76\u53d1\u6570\u8fdb\u884c\u6309\u6bd4\u4f8b\u62c6\u5206\uff0c\u5728\u6d4b\u8bd5\u5f00\u59cb\u6267\u884c\u540e\uff0c\u6bcf\u4e2a\u6d4b\u8bd5\u6267\u884c\u8282\u70b9\u4f1a\u5c06\u6d4b\u8bd5\u7ed3\u679c\u3001\u6d4b\u8bd5\u65e5\u5fd7\u7b49\u4fe1\u606f\u8f93\u9001\u5230\u6267\u884c\u7684 Kafka \u961f\u5217\u4e2d\uff0cMeterSphere \u4e2d\u7684 data-streaming \u7ec4\u4ef6\u4f1a\u4ece Kafka \u4e2d\u6536\u96c6\u8fd9\u4e9b\u4fe1\u606f\u5e76\u8fdb\u884c\u6c47\u603b\u5904\u7406\u3002

    \u4f8b\u5982\u5f53\u6211\u4eec\u5728\u7cfb\u7edf\u4e2d\u5b58\u5728\u4e00\u4e2a\u5982\u4e0b\u914d\u7f6e\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\uff0c\u5e76\u9009\u62e9\u8be5\u6d4b\u8bd5\u8d44\u6e90\u6c60\u6267\u884c\u4e00\u4e2a 10000 \u5e76\u53d1\u7528\u6237\u7684\u6027\u80fd\u6d4b\u8bd5\u65f6\uff0cnode1 \u53ca node2 \u5c06\u5404\u5206\u914d 4000 \u4e2a\u5e76\u53d1\u7528\u6237\uff0cnode3 \u5c06\u5206\u914d 2000 \u4e2a\u5e76\u53d1\u7528\u6237\u3002

    "},{"location":"faq/load_test/#2","title":"2 \u5982\u4f55\u5411\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u6dfb\u52a0\u8282\u70b9\uff1f","text":"

    \u9996\u5148\u9700\u8981\u5728\u8981\u6dfb\u52a0\u7684\u8282\u70b9\u4e0a\u90e8\u7f72 MeterSphere \u7684 node-controller \u7ec4\u4ef6\uff0c\u5b89\u88c5\u65b9\u5f0f\u53c2\u8003\u672c\u6587\u6863\u300c\u5728\u7ebf\u5b89\u88c5\u300d\u6216\u300c\u79bb\u7ebf\u5b89\u88c5\u300d\u7ae0\u8282\u5185\u5bb9\uff0c\u5728\u6267\u884c\u5b89\u88c5\u811a\u672c\u524d\uff0c\u4fee\u6539 install.conf \u6587\u4ef6\u4e2d\u7684 MS_INSTALL_MODE \u5b57\u6bb5\u7684\u503c\u4e3a node-controller \u540e\u6267\u884c\u5b89\u88c5\u811a\u672c\u3002\u5b89\u88c5\u5b8c\u6210\u901a\u8fc7 msctl status \u67e5\u770b\u7ec4\u4ef6\u72b6\u6001\u662f\u5426\u6b63\u5e38\u3002 \u8282\u70b9\u6dfb\u52a0\u5b8c\u6210\u70b9\u51fb\u786e\u5b9a\u540e\u7cfb\u7edf\u5c06\u5bf9\u8282\u70b9\u72b6\u6001\u8fdb\u884c\u68c0\u67e5\uff0c\u82e5\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e3a\u53ef\u7528\u72b6\u6001\u5219\u8bf4\u660e\u8be5\u6d4b\u8bd5\u8d44\u6e90\u6c60\u53ca\u5176\u4e2d\u7684\u8282\u70b9\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\u3002

    "},{"location":"faq/load_test/#3-metersphere-jmeter","title":"3 \u91c7\u7528 MeterSphere \u538b\u6d4b\u548c\u624b\u52a8\u4f7f\u7528 JMeter \u547d\u4ee4\u884c\u538b\u6d4b\u5f97\u5230\u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u5dee\u8ddd\u5f88\u5927\u8be5\u5982\u4f55\u4f18\u5316\uff1f","text":"
    • \u793e\u533a\u7248 \u793e\u533a\u7248\u9ed8\u8ba4\u91c7\u7528\u540e\u7f6e\u76d1\u542c\u7684\u65b9\u5f0f\u5b9e\u65f6\u5904\u7406\u62a5\u544a\uff0c\u5373\u5728 JMX \u811a\u672c\u6587\u4ef6\u4e2d\u589e\u52a0 Kafka BackendListener \u914d\u7f6e\uff0c\u5404\u4e2a NodeController \u8282\u70b9\u5728\u672c\u5730\u542f\u52a8 JMeter \u5bb9\u5668\u6267\u884c\u8be5 JMX \u811a\u672c\uff0c\u8fc7\u7a0b\u4e2d\u901a\u8fc7 Kafka BackendListener \u5c06\u539f\u59cb\u7684 JTL \u7ed3\u679c\u6570\u636e\u4e0a\u4f20\u5230\u6307\u5b9a\u7684 Kafka Topic \u4e2d\uff0cDataStreaming \u4f5c\u4e3a\u8be5 Kafka Topic \u7684\u6d88\u8d39\u8005\u5bf9\u5404\u4e2a\u8282\u70b9\u7684\u6570\u636e\u8fdb\u884c\u6c47\u603b\uff0c\u5e76\u8ba1\u7b97\u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u4e2d\u7684\u5404\u9879\u6307\u6807\u3002 \u56e0\u6b64\u5728\u9ad8\u5e76\u53d1\u65f6 Kafka \u548c DataStreaming \u5f88\u5bb9\u6613\u6210\u4e3a\u74f6\u9888\uff0c\u53ef\u4ee5\u90e8\u7f72 Kafka \u548c DataStreaming \u96c6\u7fa4\u4ee5\u53ca\u589e\u52a0 Partition \u7684\u6570\u91cf\u6765\u589e\u52a0 Kafka \u7684\u541e\u5410\u91cf\u548c\u5904\u7406\u80fd\u529b\u3002\u4f18\u5316\u540e\u6b63\u5e38\u53ef\u4ee5\u8fbe\u5230\u2154\u5de6\u53f3\u7684\u5dee\u8ddd\u3002
    • \u4f01\u4e1a\u7248 \u9488\u5bf9\u793e\u533a\u7248 Kafka BackendListener \u65b9\u5f0f\uff0c\u9700\u8981\u4e0a\u4f20\u548c\u5904\u7406\u539f\u59cb\u7684 JTL \u7ed3\u679c\uff0c\u8fc7\u7a0b\u4e2d\u9700\u8981\u5904\u7406\u5927\u91cf\u7684\u6570\u636e\uff0c\u4f01\u4e1a\u7248\u4e2d\u505a\u4e86\u76f8\u5173\u4f18\u5316\uff0c\u5373\u5728\u6267\u884c\u6d4b\u8bd5\u8fc7\u7a0b\u4e2d\u4e0d\u518d\u4f7f\u7528 BackendListener\uff0c\u5404\u4e2a NodeController \u542f\u52a8 JMeter \u5bb9\u5668\u65f6\u9644\u5e26\u542f\u52a8\u4e00\u4e2a Java \u7a0b\u5e8f\uff0c\u8be5 Java \u7a0b\u5e8f\u8d1f\u8d23\u5b9e\u65f6\u5904\u7406\u672c\u5730 JMeter \u4ea7\u751f\u7684 JTL \u7ed3\u679c\u6570\u636e\uff0c\u751f\u6210\u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u4e2d\u7684\u5404\u9879\u6307\u6807\u540e\u4e0a\u4f20\u5230\u6307\u5b9a\u7684 Kafka Topic \u4e2d\uff0cDataStreaming \u4f5c\u4e3a\u8be5 Kafka Topic \u7684\u6d88\u8d39\u8005\u5bf9\u5404\u4e2a\u8282\u70b9\u7684\u6570\u636e\u8fdb\u884c\u6c47\u603b\u3002 \u4e0e\u4f18\u5316\u524d\u65b9\u6848\u76f8\u6bd4\uff0cKafka \u548c DataStreaming \u9700\u8981\u5904\u7406\u7684\u6570\u636e\u5927\u5927\u964d\u4f4e\uff0c\u6574\u4f53\u4e0a\u5bf9\u4e8e\u5e76\u53d1\u91cf\u8f83\u5927\u60c5\u51b5\u4e0b\u7684\u7ed3\u679c\u5904\u7406\u80fd\u529b\u5927\u5927\u63d0\u5347\u3002 \u540c\u65f6\u53ef\u4ee5\u91c7\u7528 \u90e8\u7f72 Kafka \u548c DataStreaming \u96c6\u7fa4\u4ee5\u53ca\u589e\u52a0 Partition \u6570\u91cf\u7684\u6765\u589e\u52a0 Kafka \u7684\u541e\u5410\u91cf\u548c\u5904\u7406\u80fd\u529b\uff0c\u53ef\u66f4\u52a0\u63a5\u8fd1 JMeter \u7684\u771f\u5b9e\u503c\u3002
    "},{"location":"faq/load_test/#4-kafka","title":"4 \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u65f6\u63d0\u793aKafka \u4e0d\u53ef\u7528\uff0c\u8bf7\u68c0\u67e5\u914d\u7f6e\uff0c\u5982\u4f55\u89e3\u51b3\uff1f","text":"

    \u7cfb\u7edf\u5728\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u4e4b\u524d\uff0c\u4f1a\u5148\u68c0\u67e5\u5b89\u88c5\u7cfb\u7edf\u65f6\u914d\u7f6e\u7684 Kafka \u5730\u5740\u662f\u5426\u53ef\u7528\u3002\u5f53\u63d0\u793a\u8be5\u4fe1\u606f\u65f6\uff0c\u8868\u660e MeterSphere \u65e0\u6cd5\u6b63\u5e38\u8fde\u63a5\u5230 Kafka\uff0c\u53ef\u4ee5\u6309\u7167\u4ee5\u4e0b\u6392\u67e5\u601d\u8def\u8fdb\u884c\u5206\u6790\u548c\u5b9a\u4f4d\uff1a

    \uff081\uff09\u68c0\u67e5 Kafka \u662f\u5426\u6b63\u5e38\u8fd0\u884c \u5982\u679c\u5728\u5b89\u88c5\u65f6\u4f7f\u7528\u7684\u5916\u90e8\u7684 Kafka\uff0c\u8bf7\u8054\u7cfb\u76f8\u5173\u4eba\u5458\u8fdb\u884c\u6392\u67e5\uff0c\u68c0\u67e5 Kafka \u670d\u52a1\u662f\u5426\u6b63\u5e38\uff1b\u5982\u679c\u5b89\u88c5\u65f6\u4f7f\u7528 MeterSphere \u9ed8\u8ba4\u914d\u7f6e\u8fdb\u884c\u5b89\u88c5\uff0c\u4f7f\u7528\u4e86\u81ea\u5e26\u7684 Kafka \u670d\u52a1\uff0c\u8bf7\u901a\u8fc7\u5982\u4e0b\u547d\u4ee4\u8fdb\u884c\u6392\u67e5\u3002

    # \u68c0\u67e5\u5404\u7ec4\u4ef6\u7684\u8fd0\u884c\u72b6\u6001\nmsctl status\n# \u82e5 Kafka \u5bb9\u5668\u4e0d\u5904\u4e8e `healthy` \u72b6\u6001\uff0c\u67e5\u770b Kafka \u65e5\u5fd7\u8fdb\u884c\u8fdb\u4e00\u6b65\u6392\u67e5\ndocker logs kafka\n

    \uff082\uff09\u68c0\u67e5 MeterSphere \u5230 Kafka \u670d\u52a1\u7684\u7f51\u7edc\u8fde\u63a5 \u5982\u679c Kafka \u670d\u52a1\u72b6\u6001\u6b63\u5e38\uff0c\u8bf7\u901a\u8fc7\u5982\u4e0b\u547d\u4ee4\u68c0\u67e5 ms-node-controller \u5bb9\u5668\u662f\u5426\u80fd\u6b63\u5e38\u8fde\u63a5\u5230 Kafka \u670d\u52a1\u3002

    # \u68c0\u67e5 ms-node-controller \u662f\u5426\u80fd\u6b63\u5e38\u8bbf\u95ee Kafka \u670d\u52a1\n[root@meter-prototype ~]# docker exec ms-node-controller nc -zv ${kafka \u670d\u52a1 IP} ${kafka \u670d\u52a1\u7aef\u53e3}\nkafka (172.23.0.5:19092) open\n
    \u5982\u679c ms-node-controller \u4e0d\u80fd\u6b63\u5e38\u8bbf\u95ee Kafka \u670d\u52a1\uff0c\u63d0\u793ahost is unreachable\uff0c\u6267\u884c ifconfig \u5c06 br-XXX \u548c docker-XX \u7684\u7f51\u6bb5\uff0c\u52a0\u5165\u5230\u9632\u706b\u5899\u7b56\u7565\u4e2d
    firewall-cmd --zone=trusted --add-source=172.18.0.1/16 --permanent\uff1b\nfirewall-cmd --zone=trusted --add-source=172.19.0.1/16 --permanent\uff1b\nfirewall-cmd --reload\n

    (3) \u5982\u679c\u5728\u5b89\u88c5\u65f6\u4f7f\u7528\u7684\u5916\u90e8\u7684 Kafka\uff0c\u8bf7\u8054\u7cfb\u76f8\u5173\u4eba\u5458\u8fdb\u884c\u6392\u67e5\uff0c\u68c0\u67e5 MeterSphere \u90e8\u7f72\u670d\u52a1\u5668\u5230 Kafka \u670d\u52a1\u4e4b\u95f4\u7684\u7f51\u7edc\u8fde\u63a5\u662f\u5426\u6b63\u5e38\uff0c\u662f\u5426\u6709\u9632\u706b\u5899\u3001\u5b89\u5168\u7ec4\u7b49\u5b89\u5168\u7b56\u7565\u7684\u5f71\u54cd\uff1b\u5982\u679c\u5b89\u88c5\u65f6\u4f7f\u7528 MeterSphere \u9ed8\u8ba4\u914d\u7f6e\u8fdb\u884c\u5b89\u88c5\uff0c\u4f7f\u7528\u4e86\u81ea\u5e26\u7684 Kafka \u670d\u52a1\uff0c\u8bf7\u68c0\u67e5 MeterSphere \u90e8\u7f72\u670d\u52a1\u5668\u4e0a\u7684\u9632\u706b\u5899\u914d\u7f6e\uff0c\u662f\u5426\u653e\u901a\u4e86 Kafka \u7684\u670d\u52a1\u7aef\u53e3\uff08\u9ed8\u8ba4 19092\uff09\uff0c\u4e5f\u53ef\u4ee5\u9009\u62e9\u76f4\u63a5\u7981\u7528\u9632\u706b\u5899\u540e\uff0c\u91cd\u542f docker \u670d\u52a1\u548c MeterSphere \u7ec4\u4ef6\u8fdb\u884c\u91cd\u8bd5\u3002

    # \u4ee5 CentOS 7 \u64cd\u4f5c\u7cfb\u7edf\u4e3a\u4f8b\uff0c\u7981\u7528\u9632\u706b\u5899\u53ca\u91cd\u542f\u670d\u52a1\u547d\u4ee4\nsystemctl stop firewalld\nsystemctl restart docker\nmsctl start\n
    \u82e5\u68c0\u67e5\u53d1\u73b0\u7f51\u7edc\u8fde\u63a5\u72b6\u6001\u6b63\u5e38\uff0c\u5728\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u65f6\u4ecd\u65e7\u63d0\u793a\u8be5\u9519\u8bef\uff0c\u8bf7\u8054\u7cfb\u6211\u4eec\u7684\u56e2\u961f\u8fdb\u884c\u8fdb\u4e00\u6b65\u5b9a\u4f4d\u3002

    "},{"location":"faq/load_test/#5","title":"5 \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u65f6\u63d0\u793a \u65e0\u6cd5\u8fd0\u884c\u6d4b\u8bd5\uff0c\u8bf7\u68c0\u67e5\u5f53\u524d\u7ad9\u70b9\u914d\u7f6e \u5982\u4f55\u89e3\u51b3\uff1f","text":"

    \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u8fc7\u7a0b\u4e2d\uff0cnode-controller \u8282\u70b9\u9700\u8981\u901a\u8fc7 \u7cfb\u7edf-\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e \u4e2d\u914d\u7f6e\u7684 \u5f53\u524d\u7ad9\u70b9 URL \u4e0b\u8f7d\u76f8\u5173\u6587\u4ef6\u3002\u51fa\u73b0\u8be5\u95ee\u9898\u65f6\u7528\u6237\u9700\u8981\u68c0\u67e5\u8be5\u914d\u7f6e\u53c2\u6570\uff0c\u786e\u4fdd node-controller \u8282\u70b9\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u5230\u8be5 URL\u3002 URL \u5730\u5740\u4e00\u822c\u4e3a\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee MeterSphere \u7684\u5730\u5740\uff0c\u4f8b\u5982 https://demo.metersphere.com\u3002

    "},{"location":"faq/load_test/#6-url","title":"6 \u7ad9\u70b9\u914d\u7f6e\u7684 URL \u662f\u4ec0\u4e48\uff1f","text":"

    \u7ad9\u70b9\u914d\u7f6e\u4e3a\u90e8\u7f72MeterSphere Sever\u7684\u5730\u5740\uff0c\u53ef\u4ee5\u662f\u57df\u540d\u6216\u8005\u662fIP\u5730\u5740\u3002

    "},{"location":"faq/load_test/#7-jmeter","title":"7 \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u65f6 JMeter \u5bb9\u5668\u5185\u5b58\u6ea2\u51fa\u5982\u4f55\u89e3\u51b3?","text":"

    \u4fee\u6539\u7cfb\u7edf\u8bbe\u7f6e\u4e2d\u6240\u4f7f\u7528\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\u914d\u7f6e\u4e2d\u7684 HEAP \u914d\u7f6e\u6765\u8c03\u6574 JMeter \u5bb9\u5668\u7684\u5185\u5b58\u53c2\u6570\u3002

    -Xms2g -Xmx2g -XX:MaxMetaspaceSize=256m\n

    "},{"location":"faq/load_test/#8-jmxjar","title":"8 \u5982\u679c\u6027\u80fd\u6d4b\u8bd5jmx\u6709\u4f9d\u8d56\u7684jar\u5305\uff0c\u9700\u8981\u600e\u4e48\u5904\u7406\uff1f","text":"

    \u5728\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u65f6\uff0c\u53ef\u4ee5\u5c06\u4f9d\u8d56\u7684 jar \u5305\u4e0e jmx \u6587\u4ef6\u4e00\u8d77\u4e0a\u4f20\u3002

    "},{"location":"faq/load_test/#9","title":"9 \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u65f6\uff0c\u63d0\u793a\u5e76\u53d1\u6570\u8d85\u989d\uff0c\u8be5\u600e\u4e48\u89e3\u51b3\uff1f","text":"

    \u4fee\u6539\u7cfb\u7edf\u8bbe\u7f6e-\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u7684\u6700\u5927\u5e76\u53d1\u6570\u540e\u518d\u6b21\u6267\u884c\u6d4b\u8bd5\u3002

    "},{"location":"faq/load_test/#10-image-not-found","title":"10 \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u65f6\uff0c\u663e\u793aimage not found\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u6240\u9700\u7684 JMeter \u5bb9\u5668\u9700\u8981\u4e8b\u5148\u5b58\u5728\u4e8e\u6240\u9009\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\u7684\u8282\u70b9\u4e0a\uff0c\u8bf7\u68c0\u67e5\u786e\u4fdd\u5bb9\u5668\u955c\u50cf\u5b58\u5728\u540e\uff0c\u66f4\u65b0\u6d4b\u8bd5\u8d44\u6e90\u6c60\u7684\u955c\u50cf\u914d\u7f6e\u4e3a\u6b63\u786e\u7684\u955c\u50cf\u6807\u7b7e\u3002

    "},{"location":"faq/load_test/#11-error-check-node-controller-etchosts127001-hostnamemust-be-contained-please-delete-the-report-and-rerun","title":"11 \u538b\u6d4b\u6267\u884c\u65f6\u62a5\u9519\uff1aError: Check node-controller /etc/hosts,127.0.0.1 ${hostname}must be contained. Please delete the report and rerun.","text":"

    \u5728\u90e8\u7f72 node-controller \u7684\u673a\u5668\u4e0a\uff0c\u4f7f\u7528hostname\u547d\u4ee4\u83b7\u53d6\u4e3b\u673a\u540d\u3002

    [root@nginx metersphere-release-v1.8.0]# hostname\nnginx.novalocal\n
    \u5c06\u83b7\u53d6\u5230\u7684\u4e3b\u673a\u540d nginx.novalocal \u914d\u7f6e\u5230 /etc/hosts \u6587\u4ef6\u4e2d\uff0c\u914d\u7f6e\u5b8c\u6210\u6548\u679c\u5982\u4e0b\u3002 \u914d\u7f6e\u524d
    127.0.0.1       localhost\n::1         localhost localhost.localdomain localhost6 localhost6.localdomain6\n10.110.149.133 nginx111\n
    \u914d\u7f6e\u540e
    127.0.0.1       localhost\n127.0.0.1       nginx.novalocal\n::1         localhost localhost.localdomain localhost6 localhost6.localdomain6\n10.110.149.133 nginx111\n

    "},{"location":"faq/load_test/#12","title":"12 \u540c\u4e00\u811a\u672c\u6267\u884c\u591a\u6b21\uff0c\u53ef\u4ee5\u5c06\u591a\u6b21\u7684\u62a5\u544a\u7ed3\u679c\u8fdb\u884c\u5bf9\u6bd4\u5417\uff1f","text":"

    \u5728\u62a5\u544a\u5217\u8868\uff0c\u540c\u4e2a\u4efb\u52a1\u4e0b\uff0c\u5df2\u5b8c\u6210\u72b6\u6001\u7684\u62a5\u544a\u53ef\u4ee5\u8fdb\u884c\u5bf9\u6bd4\u3002

    "},{"location":"faq/load_test/#13","title":"13 \u6267\u884c\u538b\u6d4b\u65f6\uff0c\u591a\u53f0\u53d1\u538b\u673a\u7684\u60c5\u51b5\u4e0b\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u53d8\u91cf\u4e0d\u91cd\u590d\u6267\u884c\u5417\uff1f","text":"

    \u53ef\u4ee5\u5728\u6027\u80fd\u6d4b\u8bd5\u7684\u9ad8\u7ea7\u914d\u7f6e\u9875\u9762\uff0c\u4f7f\u7528CSV\u5206\u5272\u529f\u80fd\uff0c\u7cfb\u7edf\u4f1a\u628a\u53d8\u91cf\u5e73\u5747\u5206\u914d\u7ed9\u538b\u529b\u673a\uff0c\u4fdd\u8bc1\u6570\u503c\u7684\u552f\u4e00\u6027\u3002

    "},{"location":"faq/load_test/#14-metersphere","title":"14 MeterSphere\u53ef\u4ee5\u76d1\u63a7\u88ab\u6d4b\u7cfb\u7edf\u670d\u52a1\u5668\u6307\u6807\u5417\uff1f","text":"

    MeterSphere \u4f7f\u7528 Prometheus \u8fdb\u884c\u53d1\u538b\u673a\u4ee5\u53ca\u88ab\u6d4b\u7cfb\u7edf\u670d\u52a1\u5668\u7684\u76d1\u63a7\uff0c\u53ef\u4ee5\u5728\u6027\u80fd\u6d4b\u8bd5-\u9ad8\u7ea7\u914d\u7f6e\u91cc\u9762\uff0c\u6dfb\u52a0\u88ab\u6d4b\u7cfb\u7edf\u670d\u52a1\u5668\u7684 node_exporter \u7684\u5730\u5740\u3002\u4e3b\u670d\u52a1\u4f1a\u5728\u5b89\u88c5 MeterSphere \u7cfb\u7edf\u65f6\u9ed8\u8ba4\u5b89\u88c5\uff0c\u800c\u5176\u4ed6\u670d\u52a1\u5668\uff0c\u5219\u9700\u8981\u5355\u72ec\u5b89\u88c5 node_exporter\uff0c\u5373\u53ef\u5728\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u7684\u65f6\u5019\u5b8c\u6210\u76f8\u5173\u6307\u6807\u7684\u76d1\u63a7\u3002

    "},{"location":"faq/load_test/#15-node_exporter","title":"15 \u5982\u4f55\u5b89\u88c5 node_exporter \u63d2\u4ef6\uff1f","text":"
    • \u65b9\u6cd51\uff1a docker pull prom/node-exporter \u62c9\u53d6 node_export \u955c\u50cf\uff0c\u4e4b\u540e\u8fd0\u884c\u5bb9\u5668

      docker pull prom/node-exporter # \u62c9\u53d6\u955c\u50cf\ndocker run -d -p 9100:9100 -v \"/proc:/host/proc:ro\" -v \"/sys:/host/sys:ro\" -v \"/:/rootfs:ro\" --net=\"host\" prom/node-exporter # \u542f\u52a8\u5bb9\u5668\n\nhttp://\u670d\u52a1\u5668IP:9100/metrics # \u8bbf\u95ee\u67e5\u770b node_export \u662f\u5426\u6b63\u5e38\u542f\u52a8\n

    • \u65b9\u6cd52\uff1a\u4e0b\u8f7d node_exporter \u79bb\u7ebf\u5305\uff0c\u89e3\u538b\u4e4b\u540e\u53ef\u6267\u884c\u547d\u4ee4\u8fdb\u884c\u542f\u52a8

      wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz\ntar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz\ncd node_exporter-1.3.1-amd64\n./node_exporter  # \u542f\u52a8 (nohup ./node_exporter & \u540e\u53f0\u542f\u52a8)\n\nhttp://\u670d\u52a1\u5668IP:9100/metrics # \u8bbf\u95ee\u67e5\u770b node_export \u662f\u5426\u6b63\u5e38\u542f\u52a8\n

    "},{"location":"faq/load_test/#16","title":"16 \u538b\u529b\u914d\u7f6e\u4e2d\uff0c\u6bcf\u4e2a\u7ebf\u7a0b\u7ec4\u662f\u5426\u80fd\u5206\u522b\u9009\u62e9\u538b\u529b\u673a\uff1f","text":"

    \u5728\u538b\u529b\u914d\u7f6e\u91cc\uff0c\u63d0\u4f9b\u4e863\u79cd\u5206\u914d\u7b56\u7565\uff0c\u5206\u522b\u4e3a\u201c\u81ea\u52a8\u5206\u914d\u3001\u56fa\u5b9a\u8282\u70b9\u3001\u81ea\u5b9a\u4e49\u201d\uff0c\u53ef\u4ee5\u4e3a\u6bcf\u4e2a\u7ebf\u7a0b\u7ec4\u6307\u5b9a\u4e00\u4e2a\u8282\u70b9\uff0c\u6216\u8005\u6309\u6bd4\u4f8b\u5206\u914d\u591a\u4e2a\u8282\u70b9\u3002

    "},{"location":"faq/load_test/#17-non-http-response-code-javanetsockettimeoutexception","title":"17 \u6027\u80fd\u6d4b\u8bd5\u5e76\u53d1\u91cf\u52a0\u5927\u7684\u65f6\u5019\u62a5\u9519\uff1aNon HTTP response code: java.net.SocketTimeoutException","text":"

    \u5728\u9ad8\u7ea7\u914d\u7f6e\u589e\u52a0\u8d85\u65f6\u65f6\u95f4\u3002

    "},{"location":"faq/load_test/#18-50100","title":"18 \u8fdb\u884c\u538b\u6d4b\u65f6\uff0c\u6700\u5927\u7528\u6237\u52a0\u5230 50/100 \u5c31\u4e0d\u80fd\u7ee7\u7eed\u52a0\u5417\uff1f","text":"

    \u53ef\u5728\u7cfb\u7edf\u8bbe\u7f6e-\u6d4b\u8bd5\u8d44\u6e90\u6c60-\u4fee\u6539\u8d44\u6e90\u6c60\u91cc\u201c\u6700\u5927\u5e76\u53d1\u6570\u201d\u4e2d\u914d\u7f6e\u3002

    "},{"location":"faq/load_test/#19-jmeter","title":"19 \u6027\u80fd\u6d4b\u8bd5\u76f8\u5173\u6587\u4ef6\u5b58\u50a8\u5728 JMeter \u5bb9\u5668\u4e2d\u7684\u54ea\u4e2a\u76ee\u5f55\uff1f","text":"

    \u5728\u5bb9\u5668\u91cc\u7684/test\u76ee\u5f55\u4e0b\u3002

    "},{"location":"faq/load_test/#20-starting","title":"20 \u6027\u80fd\u6d4b\u8bd5\u72b6\u6001\u4e00\u76f4\u662f starting \u4e14\u65e0\u6570\u636e\uff0c\u5982\u4f55\u6392\u67e5\uff1f","text":"
    • \u68c0\u67e5\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf-\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e\u3011\uff0c\u5f53\u524d\u7ad9\u70b9\u914d\u7f6e\u662f\u4e0d\u662f\u6b63\u786e\u7684
    • \u5230\u670d\u52a1\u5668\u6216\u8005\u538b\u529b\u673a\u7684\u67e5\u770b /opt/metersphere/logs/node-controler/ \u4e0b\u7684 ms-jmeter-run-log.log \u548c info.log\uff0c\u770b\u65e5\u5fd7\u4e2d\u662f\u5426\u6709\u62a5\u9519\u4fe1\u606f\u3002
    "},{"location":"faq/load_test/#21-k8s-node-controller","title":"21 k8s\u8d44\u6e90\u6c60\u662f\u5426\u9700\u8981\u5b89\u88c5 node-controller \uff1f","text":"
    • \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u4e0d\u9700\u8981 \u6027\u80fd\u6d4b\u8bd5\u53ea\u9700\u8981\u5728\u4ed3\u5e93\u4e2d\u914d\u7f6e\u597d JMeter \u955c\u50cf\u7684\u5730\u5740\uff0c\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u7684\u65f6\u5019\u4f1a\u81ea\u52a8\u521b\u5efa JMeter POD \u8fdb\u884c\u538b\u6d4b\uff0c\u6267\u884c\u5b8c\u4e4b\u540e\u81ea\u52a8\u9500\u6bc1\u3002
    • \u6267\u884c\u63a5\u53e3\u6d4b\u8bd5\u9700\u8981 \u6267\u884c\u63a5\u53e3\u6d4b\u8bd5\u9700\u8981\u90e8\u7f72 DaemonSet \u6216 Deployment\uff0c\u53ef\u4e0b\u8f7d\u793a\u4f8b yaml \u6587\u4ef6\u8fdb\u884c\u90e8\u7f72\uff0c\u90e8\u7f72\u597d\u4e4b\u540e\u53ef\u4ee5\u8bbe\u7f6e\u5f39\u6027\u4f38\u7f29\u53c2\u6570\uff0c\u4ece\u800c\u5b9e\u73b0\u8d44\u6e90\u6c60\u7684\u5f39\u6027\u4f38\u7f29\u3002
    "},{"location":"faq/load_test/#22-check-node-controller-status","title":"22 \u64cd\u4f5c\u65f6\u63d0\u793a\uff1acheck node-controller status","text":"
    • \u68c0\u67e5\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e-\u5f53\u524d\u7ad9\u70b9URL\u3011\u662f\u5426\u6b63\u786e\uff0c\u662f\u4e0d\u662f\u591a\u4e86\"/\"
    • docker exec -it performance-test nc zv ms-node-controller 8082 \u6216\u8005\u53bb performance-test \u5bb9\u5668\u91cc curl localhost:8082/status \u786e\u4fdd\u7f51\u7edc\u901a\u7545\uff0c\u8fd8\u53ef\u91cd\u542fdocker\u3001\u91cd\u542f\u670d\u52a1\u5668\u8bd5\u8bd5
    • \u68c0\u67e5 JMeter \u7684\u955c\u50cf\u7248\u672c\u662f\u4e0d\u662f\u5bf9\u7684\uff0c\u68c0\u67e5 JMeter \u955c\u50cf\u6709\u6ca1\u6709\u52a0\u8f7d\u5230 docker \u4e2d\uff0c\u6267\u884cdocker load -i jmeter-master.tar\uff0c\u770b\u80fd\u5426\u52a0\u8f7d\u5230docker\u4e2d\uff0c\u82e5\u4e0d\u80fd\u5219\u91cd\u65b0\u4e0a\u4f20JMeter\u955c\u50cf\uff0c\u6267\u884cdocker load -i jmeter-master.tar\uff0c\u4fee\u6539.env\u73af\u5883\u91cc\u7684JMeter\u955c\u50cf\uff0c\u91cd\u65b0\u52a0\u8f7d\u9879\u76eemsctl reload\u3002
    "},{"location":"faq/load_test/#23-error","title":"23 \u64cd\u4f5c\u63d0\u793a\uff1aError:\u6ca1\u6709\u8db3\u591f\u7684\u8d44\u6e90\u542f\u52a8\u6d4b\u8bd5","text":"

    \u5c06\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u6d4b\u8bd5\u8d44\u6e90\u6c60-JMeter HEAP\u3011\u8c03\u5927\u3002

    "},{"location":"faq/load_test/#24","title":"24 \u6027\u80fd\u6d4b\u8bd5\u4e2d\u600e\u4e48\u8de8\u7ebf\u7a0b\u4f20\u9012\u53d8\u91cf\uff1f","text":"

    \u6027\u80fd\u6d4b\u8bd5\u91cc\u52a8\u6001\u8bbe\u7f6e\u53d8\u91cf\u53ef\u4ee5\u7528\u5c5e\u6027\u7684\u65b9\u5f0f\uff0c{__setProperty(var,value,)} \u8bbe\u7f6e\u5c5e\u6027\uff0c \u5f15\u7528\u5c5e\u6027\u3002\u7528\u5c5e\u6027\u65b9\u6cd5\u5728\u6027\u80fd\u6d4b\u8bd5\u4e2d\u53ef\u4ee5\u52a8\u6001\u4f20\u9012\u5e76\u4e14\u53ef\u4ee5\u8de8\u7ebf\u7a0b\u4f20\u9012

    "},{"location":"faq/load_test/#25","title":"25 \u6027\u80fd\u6d4b\u8bd5\u65e0\u6cd5\u6b63\u5e38\u6267\u884c\uff0c\u63d0\u793a\u8d44\u6e90\u4e0d\u591f\uff1f","text":"

    \u53ef\u80fd\u7684\u539f\u56e0\u6709:

    • \u6027\u80fd\u6d4b\u8bd5\u91cc\u6709\u6dfb\u52a0\u524d\u540e\u7f6e\u811a\u672c\uff0c\u5c24\u5176\u662fpython\uff0c\u6d88\u8017\u6027\u80fd\u6bd4\u8f83\u5927\u3002
    • \u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e3b\u673a\u8d44\u6e90\uff08\u5c24\u5176\u662f\u5185\u5b58\uff09\u4e0d\u8db3\u3002

    \u89e3\u51b3\u65b9\u6cd5:

    • \u5c3d\u91cf\u4e0d\u8981\u4f7f\u7528\u524d\u540e\u7f6e\u811a\u672c\uff0c\u6216\u8005\u6362\u7528\u8d44\u6e90\u6d88\u8017\u5c0f\u7684\u811a\u672c\uff0c\u5982 groovy\u3002
    • \u6362\u7528\u5355\u72ec\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\uff0c\u4f7f\u7528 node-controller \u6a21\u5f0f\u5b89\u88c5\u3002
    "},{"location":"faq/load_test/#26","title":"26 \u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u4e2d\uff0c\u5e76\u53d1\u7528\u6237\u6570\u663e\u793a\u548c\u8bbe\u7f6e\u4e0d\u4e00\u81f4","text":"

    \u53ef\u80fd\u7684\u539f\u56e0\u6709:

    • \u5e76\u53d1\u7528\u6237\u6570\u592a\u5c11\uff0cramp-up\u8bbe\u7f6e\u7684\u65f6\u95f4\u957f\uff0c\u5bfc\u81f4\u52a0\u538b\u540e\u7b2c\u4e00\u4e2a\u7528\u6237\u5df2\u7ecf\u6267\u884c\u5b8c\u6d4b\u8bd5\u4e86\uff0c\u7b2c\u4e8c\u4e2a\u7528\u6237\u624d\u521b\u5efa\u51fa\u6765\uff0c\u770b\u8d77\u6765\u5e76\u53d1\u7528\u6237\u6570\u5c31\u4e00\u76f4\u662f1\u3002
    • \u62a5\u544a\u5de6\u4e0a\u89d2\u7684\u5e76\u53d1\u7528\u6237\u6570\u5728\u62a5\u544a\u91cc\u663e\u793a\u7684\u662f\u5e73\u5747\u503c\uff0c\u4e0d\u662f\u5b9e\u65f6\u53d8\u5316\u7684\u3002

    \u89e3\u51b3\u65b9\u6cd5\uff1a\u51cf\u5c11ramp-up\u65f6\u95f4\uff0c\u53ef\u4ee5\u770b\u5230\u5e76\u53d1\u7528\u6237\u6570\u4e0e\u8bbe\u7f6e\u4e00\u81f4\u3002

    "},{"location":"faq/load_test/#27-kafka","title":"27 \u5982\u4f55\u4fee\u6539 kafka \u7684\u65e5\u5fd7\u4fdd\u7559\u65f6\u95f4\uff1f","text":"

    \u4fee\u6539 /opt/metersphere/docker-compose-kafka.yml \u914d\u7f6e\u6587\u6863\u91cc\u7684 KAFKA_CFG_LOG_RETENTION_HOURS \u53c2\u6570\u3002

    "},{"location":"faq/load_test/#28-csv","title":"28 \u6027\u80fd\u6d4b\u8bd5\u65f6\u63a5\u53e3\u8bfb\u53d6 csv \u4e0d\u80fd\u6309\u987a\u5e8f\u8bfb\u53d6","text":"

    \u6240\u9009\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\u6709\u591a\u4e2a\u8282\u70b9\uff0c\u591a\u4e2a\u8282\u70b9\u5171\u7528\u4e00\u5957 CSV \u5bfc\u81f4\u53d6\u503c\u91cd\u590d\uff0c\u5728\u6027\u80fd\u6d4b\u8bd5\u7684\u9ad8\u7ea7\u914d\u7f6e\u91cc\uff0c\u5f00\u542f CSV \u5206\u5272\uff0c\u591a\u51c6\u5907\u70b9\u6d4b\u8bd5\u6570\u636e\u3002CSV \u5206\u5272\u662f: \u5047\u8bbe\u67092\u4e2a\u8282\u70b9\uff0cCSV \u91cc\u6709100\u6761\u6570\u636e\uff0c\u5c31\u4f1a\u628a CSV \u91cc\u7684\u6570\u636e\u5747\u5206\u62102\u4efd\uff0c\u7136\u540e\u8282\u70b91 \u4f7f\u7528 1-50 \u6761\u6570\u636e\uff0c\u8282\u70b92 \u4f7f\u7528 51-100 \u6761\u6570\u636e\u3002

    "},{"location":"faq/load_test/#29-csv","title":"29 \u6027\u80fd\u6d4b\u8bd5\u914d\u7f6e\u91cc\u9762\u4e0a\u4f20 CSV \u6587\u4ef6\uff0c\u5728\u9ad8\u7ea7\u914d\u7f6e\u91cc\u9762\u770b\u4e0d\u5230","text":"

    csv \u6587\u4ef6\u6ca1\u6709\u88ab\u6027\u80fd jmx \u811a\u672c\u5f15\u7528\uff0cjmx \u5f15\u7528\u4e86\u624d\u80fd\u770b\u89c1\u3002\u4fee\u6539 jmx \u6587\u4ef6\uff0c\u5f15\u7528\u4e0a\u4f20\u7684 CSV \u6587\u4ef6\uff0c\u6216\u8005\u5728\u573a\u666f\u91cc\u6dfb\u52a0 CSV \u6587\u4ef6\u540e\u8f6c\u6027\u80fd\u6d4b\u8bd5\u3002

    "},{"location":"faq/load_test/#30-windows","title":"30 \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\uff0c\u81ea\u5b9a\u4e49\u76d1\u63a7\u9879\u4e0d\u652f\u6301 windows \u670d\u52a1\u5668","text":"

    \u9ed8\u8ba4\u63d0\u4f9b\u7684 promQL \u662f\u4e0e linux \u64cd\u4f5c\u7cfb\u7edf\u9002\u914d\uff0cwindows \u64cd\u4f5c\u7cfb\u7edf\u7684\u76d1\u63a7\u9879\u9700\u8981\u81ea\u884c\u7f16\u5199\uff0c\u4f8b\u5982\uff1a\u67e5\u8be2 windows \u7684 cpu \u4f7f\u7528\u7387: 100 - (avg by (instance) (irate(windows_cpu_time_total{mode=\"idle\", instance=\"%1$s\"}[1m])) * 100)

    \u5176\u4e2d %1$s \u662f\u88ab\u76d1\u63a7\u8282\u70b9\u7684ip\u548c\u7aef\u53e3\uff0c\u4e0a\u9762\u8fd9\u6761\u8bed\u53e5\u5728\u6267\u884c\u65f6\u4f1a\u53d8\u6210 100 - (avg by (instance) (irate(windows_cpu_time_total{mode=\"idle\", instance=\"172.16.10.54:9182\"}[1m])) * 100) \u5176\u4ed6\u76d1\u63a7\u9879\u53ef\u4ee5\u81ea\u884c\u67e5\u8be2\u6765\u5199\uff0c\u5185\u5b58\u3001\u78c1\u76d8\u7b49\uff0c\u8fd8\u53ef\u4ee5\u81ea\u884c\u76d1\u63a7\u4e0d\u540c\u7684 exporter\uff0c\u53ea\u8981\u662f\u7b26\u5408 exporter\u89c4\u8303\u7684\u90fd\u53ef\u4ee5\u5728\u81ea\u5b9a\u4e49\u76d1\u63a7\u4e2d\u914d\u7f6e

    "},{"location":"faq/load_test/#31-k8s-ms","title":"31 \u90e8\u7f72\u5728 K8S \u4e0b\u7684 MS \u81ea\u5b9a\u4e49\u76d1\u63a7\u914d\u7f6e\u65b9\u6cd5\uff0c\u9ed8\u8ba4\u65b9\u6cd5\u65e0\u6cd5\u751f\u6548\uff0c\u5e76\u4e14\u76d1\u63a7\u8be6\u60c5\u6ca1\u6709\u6570\u636e","text":"

    \u5728 prometheus.yml \u4e2d\u914d\u7f6e

    consul_sd_configs:\n- server: 'k8s\u4e2dms\u7684ip:port'\nservices: []\n
    \u81ea\u5b9a\u4e49\u76d1\u63a7\u4e2d\u52a0\u4e0a\u9700\u8981\u7684\u8282\u70b9\uff0c\u7cfb\u7edf\u53c2\u6570\u6d4b\u8bd5\u4e2d\u8bbe\u7f6e prometheus \u7684\u5b9e\u9645\u5730\u5740\uff0c\u6267\u884c\u6d4b\u8bd5\u53ef\u4ee5\u663e\u793a\u76d1\u63a7\u3002

    "},{"location":"faq/load_test/#32","title":"32 \u63a5\u53e3\u81ea\u52a8\u5316\u521b\u5efa\u7684\u6027\u80fd\u6d4b\u8bd5\uff0c\u811a\u672c\u53ca\u6587\u4ef6\u5185\u5bb9\u66f4\u65b0\u540e\uff0c\u5df2\u8f6c\u6027\u80fd\u6d4b\u8bd5\u7684\u7528\u4f8b\u6ca1\u6709\u540c\u6b65\u66f4\u65b0","text":"

    \u8f6c\u6027\u80fd\u6d4b\u8bd5\u7684\u65f6\u5019\u751f\u6210\u7684 jmx \u6587\u4ef6\u5c31\u662f\u5f53\u524d\u7684\u914d\u7f6e\uff0c\u4e4b\u540e\u518d\u4fee\u6539\u63a5\u53e3\u5bf9\u6027\u80fd\u6d4b\u8bd5\u65e0\u6548\uff0c\u70b9\u51fb\u6027\u80fd\u6d4b\u8bd5\u53f3\u4e0a\u89d2\u201c\u540c\u6b65\u573a\u666f\u6d4b\u8bd5\u6700\u65b0\u53d8\u66f4\u201d\u6309\u94ae\u624b\u52a8\u540c\u6b65\u5373\u53ef\u3002

    "},{"location":"faq/load_test/#33-image-not-found-registrycn-qingdaoaliyuncscommeterspherejmeter-master543-ms5-jdk11","title":"33 \u8fd0\u884c\u6027\u80fd\u6d4b\u8bd5\u7684\u65f6\u5019\u62a5\u9519Image Not Found: registry.cn-qingdao.aliyuncs.com/metersphere/jmeter-master:5.4.3-ms5-jdk11","text":"

    \u670d\u52a1\u5668\u672c\u5730\u7684 jmeter-master \u955c\u50cf\u88ab\u5220\u9664\u4e86\uff0c\u9700\u8981\u624b\u52a8\u6267\u884c\u547d\u4ee4\u624b\u52a8\u62c9\u53d6\u955c\u50cf docker pull registry.cn-qingdao.aliyuncs.com/metersphere/jmeter-master:5.4.3-ms5-jdk11\u3002

    "},{"location":"faq/load_test/#34-k8s-sa-token","title":"34 \u5982\u679c\u91c7\u7528 K8S \u96c6\u7fa4\u538b\u6d4b\uff0c\u5982\u4f55\u83b7\u53d6 SA \u548c Token\uff1f","text":"
    // \u521b\u5efa namespaces\nkubectl create namespace metersphere\n\n// \u521b\u5efa SA\nkubectl create serviceaccount ms -n metersphere\n\n// \u521b\u5efa namespace \u6388\u6743 SA\nkubectl create clusterrolebinding ms --clusterrole=admin --serviceaccount=metersphere:ms -n metersphere\n\n// \u67e5\u8be2 SA token\nkubectl describe sa/ms -n metersphere\nkubectl describe secrets -n metersphere ms-token-xxxx\n
    "},{"location":"faq/report_statistics/","title":"\u62a5\u8868\u7edf\u8ba1\u76f8\u5173","text":""},{"location":"faq/report_statistics/#1-metersphere","title":"1 MeterSphere \u63d0\u4f9b\u8d28\u91cf\u5927\u5c4f\u5417\uff1f","text":"

    \u76ee\u524d\uff0cMeterSphere \u7684\u3010\u62a5\u8868\u7edf\u8ba1\u3011\u6a21\u5757\u63d0\u4f9b\u4e86\u6d4b\u8bd5\u7528\u4f8b\u5206\u6790\u62a5\u8868\u3002\u5982\u9700\u66f4\u591a\u7ef4\u5ea6\u7684\u5927\u5c4f\u5c55\u793a\uff0c\u53ef\u4ee5\u4f7f\u7528\u53ef\u89c6\u5316\u5206\u6790\u5de5\u5177 DataEase\uff0c\u901a\u8fc7\u8fde\u63a5 MeterSphere \u6570\u636e\u5e93\u83b7\u53d6\u6570\u636e\u8be6\u60c5\uff0c\u521b\u5efa\u6ee1\u8db3\u4e1a\u52a1\u9700\u6c42\u7684\u81ea\u5b9a\u4e49\u8d28\u91cf\u5927\u5c4f\u3002 \u53c2\u7167 \u7528DataEase\u5f00\u6e90\u5de5\u5177\u6784\u5efaMeterSphere\u4eea\u8868\u677f\u3002

    "},{"location":"faq/service_integration/","title":"\u670d\u52a1\u96c6\u6210\u76f8\u5173","text":""},{"location":"faq/service_integration/#1-metersphere","title":"1 MeterSphere \u5982\u4f55\u5bf9\u63a5\u7b2c\u4e09\u65b9\u5e73\u53f0\uff1f","text":"

    TAPD\uff1a \u8bf7\u53c2\u8003MeterSphere \u670d\u52a1\u96c6\u6210\u4e4b TAPD \u5bf9\u63a5 JIRA\uff1a \u8bf7\u53c2\u8003 MeterSphere \u670d\u52a1\u96c6\u6210\u4e4b JIRA \u5bf9\u63a5 \u7985\u9053\uff1a \u8bf7\u53c2\u8003MeterSphere \u670d\u52a1\u96c6\u6210\u4e4b \u7985\u9053 \u5bf9\u63a5 Azure Devops\uff1a \u8bf7\u53c2\u8003MeterSphere \u670d\u52a1\u96c6\u6210\u4e4b Azure Devops \u5bf9\u63a5

    "},{"location":"faq/service_integration/#2-ms","title":"2 \u5728\u7985\u9053\u4e0a\u5df2\u521b\u5efa\u7684\u7f3a\u9677\uff0cMS \u4e0a\u70b9\u51fb\u3010\u540c\u6b65\u7f3a\u9677\u3011\uff0c\u4e3a\u4ec0\u4e48\u672a\u6210\u529f\u540c\u6b65\uff1f","text":"

    \u7985\u9053\u7f3a\u9677\u540c\u6b65\u5230 MS \u662f\u4f01\u4e1a\u7248\u529f\u80fd\uff0c\u5f00\u6e90\u7248\u53ea\u652f\u6301\u5355\u5411\u540c\u6b65\uff0c\u53ea\u80fd\u5c06 MS \u7f3a\u9677\u540c\u6b65\u5230\u7985\u9053\u4e0a\u3002

    "},{"location":"faq/service_integration/#3-path_info","title":"3 \u7985\u9053\u5728 PATH_INFO \u4e0b\uff0c\u9879\u76ee\u96c6\u6210\u63d0\u793a\u5931\u8d25\u600e\u4e48\u5904\u7406?","text":"

    \u4fee\u6539\u7985\u9053\u914d\u7f6e\u6216 MS \u5e73\u53f0\u8bbe\u7f6e\uff0c\u786e\u4fdd\u4e24\u4e2a\u7cfb\u7edf\u4e2d\u7684\u8bf7\u6c42\u65b9\u5f0f\u4fdd\u6301\u4e00\u81f4\uff1a \uff081\uff09\u3010\u4fee\u6539\u7985\u9053\u914d\u7f6e\u3011\u914d\u7f6e\u6587\u4ef6\u8def\u5f84\uff1a/opt/zbox/app/zentao/config/my.php\uff0c\u4fee\u6539 $config->requestType = 'PATH_INFO' \u6216 'GET'\uff0c\u7136\u540e\u91cd\u542f\u7985\u9053/opt/zbox/zbox restart\u3002 \uff082\uff09\u3010\u4fee\u6539MS\u914d\u7f6e\u3011\u5728\u201c\u7cfb\u7edf\u8bbe\u7f6e-\u5de5\u4f5c\u7a7a\u95f4-\u670d\u52a1\u96c6\u6210-\u7985\u9053\u201d\u914d\u7f6e\u9875\u9762\uff0c\u9009\u62e9\u8bf7\u6c42\u65b9\u5f0f\u4e3aPATH_INFO\u6216 GET\u3002

    "},{"location":"faq/service_integration/#4-ms-tapd-ms-tapd","title":"4 MS \u96c6\u6210 TAPD\uff0c\u5728 MS \u5e73\u53f0\u4e0a\u63d0\u4ea4\u7f3a\u9677\u65f6\u4e0a\u4f20\u56fe\u7247\uff0c\u4f46\u5728 TAPD \u4e2d\u65e0\u6cd5\u6b63\u786e\u663e\u793a\u56fe\u7247\uff0c\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u6d4f\u89c8\u5668\u7684\u9ed8\u8ba4\u5b89\u5168\u7b56\u7565\u5bfc\u81f4\uff0c\u9700\u8981\u5728MS\u5e73\u53f0\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf-\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e-\u57fa\u672c\u914d\u7f6e-\u5f53\u524d\u7ad9\u70b9URL\u3011\u4e2d\u914d\u7f6e\u4e3a https \u7684\u5730\u5740\u3002

    "},{"location":"faq/service_integration/#5-ms-metersphere-id-id","title":"5 MS \u96c6\u6210\u7985\u9053\uff0c\u5728 MeterSphere \u5e73\u53f0\u4e0a\u9879\u76ee ID \u586b\u5199\u6b63\u786e\uff0c\u68c0\u67e5\u65f6\u63d0\u793aID\u4e0d\u5b58\u5728\u6216\u8005\u5176\u4ed6\u9519\u8bef\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u53ef\u80fd\u539f\u56e0\u5305\u62ec\uff1a

    • v2.4 \u7248\u672c\u4e4b\u540e\uff0c\u670d\u52a1\u96c6\u6210\u4fee\u6539\u4e3a\u63d2\u4ef6\u65b9\u5f0f\uff0c\u7985\u9053\u63d2\u4ef6\u7248\u672c\u548c\u5f53\u524d MeterSphere \u7248\u672c\u4e0d\u4e00\u81f4\u3002
    • \u6ca1\u6709\u5bf9\u5e94\u4ea7\u54c1\u6216\u8005\u9879\u76ee\u7684\u6743\u9650\uff0c\u6216\u8005\u6709\u6743\u9650\u4f46\u662f\u9700\u8981\u586b\u4ea7\u54c1 ID\uff0c\u5b9e\u9645\u586b\u4e86\u9879\u76ee ID\u3002
    • \u7985\u9053\u670d\u52a1\u6ca1\u6709\u542f\u7528api\u8c03\u7528\u6743\u9650\uff1a\u7f3a\u5c11\u914d\u7f6e $config->features->apiGetModel\u3002
    • \u670d\u52a1\u96c6\u6210\u5904\u5bf9\u63a5\u7684\u7985\u9053\u7528\u6237\uff0c\u6ca1\u6709\u52fe\u9009\u8d4b\u4e88\"\u8d85\u7ea7model\u8c03\u7528\u63a5\u53e3\"\u6743\u9650\u3002

    \u89e3\u51b3\u65b9\u6cd5\uff1a

    • \u5728 github\u4e0a\u4e0b\u8f7d\u548c MeterSphere \u7248\u672c\u4e00\u81f4\u7684\u63d2\u4ef6metersphere-platform-plugin \u5e76\u4e0a\u4f20\u5230\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u63d2\u4ef6\u7ba1\u7406\u3011\uff0c\u7528\u6cd5\u53c2\u8003\u670d\u52a1\u96c6\u6210\u63d2\u4ef6\u3002
    • \u5728 MeterSphere \u9879\u76ee\u7f16\u8f91\u6846-\u9879\u76eeID \u5904\u6709\u201ci\u201d\u63d0\u793a\u8bf4\u660e\uff0c\u6309\u7167\u914d\u7f6e\u8bf4\u660e\u586b\u5199\u5bf9\u5e94 \u4ea7\u54c1ID \u6216\u8005 \u9879\u76eeID\u3002
    • \u5728\u7985\u9053\u5b89\u88c5\u8def\u5f84\u4e2d\uff1a${\u5b89\u88c5\u8def\u5f84}/zentao/config/ \u76ee\u5f55\u4e0b my.php (\u5982\u679c\u6ca1\u6709\uff0c\u65b0\u5efa my.php \u6587\u4ef6)\u4e2d\u6dfb\u52a0\u5982\u4e0b\u5185\u5bb9\uff1a$config->features->apiGetModel = true;\u7136\u540e\u91cd\u542f\u7985\u9053\u670d\u52a1\u5668\uff1a/opt/zbox/zbox restart\u3002
    • \u7528\u4e8e\u5bf9\u63a5\u7684\u7985\u9053\u7528\u6237\uff0c\u786e\u8ba4\u5728\u7985\u9053 web \u7aef\u3010\u7ec4\u7ec7-\u6743\u9650-\u6743\u9650\u7ef4\u62a4-API \u63a5\u53e3\u3011\u52fe\u9009\u4e86\u201c\u8d85\u7ea7model\u8c03\u7528\u63a5\u53e3\u201d\u3002
    "},{"location":"faq/service_integration/#6-ms-jira-jirakey-id","title":"6 MS \u96c6\u6210 JIRA \u5e73\u53f0\uff0c\u586b\u5199\u3010JIRA\u9879\u76eekey\u3011\u540e\u8fdb\u884c\u4fdd\u5b58\u65f6\uff0c\u9875\u9762\u63d0\u793a \"ID\u4e0d\u5b58\u5728\u6216\u5176\u4ed6\u9519\u8bef\"\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u4e00\u822c\u4e3a\u7528\u6237\u6ca1\u6709\u6743\u9650\u8bbf\u95ee\u6b64\u9879\u76ee\uff0c\u68c0\u67e5 JIRA \u5bf9\u5e94\u9879\u76ee\u7684\u7ba1\u7406\u5458\u7528\u6237\u662f\u5426\u548c MS \u7cfb\u7edf\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u670d\u52a1\u96c6\u6210-JIRA\u3011\u5904\u914d\u7f6e\u7684\u8d26\u53f7\u4e00\u81f4\uff0c\u53ef\u914d\u5408\u540e\u53f0\u65e5\u5fd7/opt/metersphere/logs/system-setting/info.log\u67e5\u770b\u62a5\u9519\u539f\u56e0\u3002

    "},{"location":"faq/service_integration/#7-jira","title":"7 \u540c\u6b65\u7f3a\u9677\u5230JIRA\uff0c\u5982\u4f55\u5b9e\u73b0\u81ea\u5b9a\u4e49\u5b57\u6bb5\uff1f","text":"

    \u53ef\u4ee5\u5728\u3010\u9879\u76ee\u8bbe\u7f6e-\u66f4\u591a\u9009\u9879-\u6a21\u7248\u7ba1\u7406\u3011\uff0c\u521b\u5efa\u6a21\u677f\u5b57\u6bb5\uff1b\u7136\u540e\u6253\u5f00\u7f3a\u9677\u6a21\u677f-JIRA\u9ed8\u8ba4\u6a21\u7248\uff0c\u6dfb\u52a0\u521b\u5efa\u597d\u7684\u81ea\u5b9a\u4e49\u5b57\u6bb5\uff0c\u5728 MeterSphere \u4e0a\u63d0\u4ea4\u7f3a\u9677\u65f6\u5c31\u4f1a\u51fa\u73b0\u8be5\u5b57\u6bb5\u3002

    "},{"location":"faq/service_integration/#8-jira","title":"8 \u96c6\u6210JIRA\u65f6\uff0c\u5982\u4f55\u5b9e\u73b0\u7ed1\u5b9a\u6307\u5b9a\u8d26\u53f7\uff1f","text":"

    \u53ef\u4ee5\u5728\u3010\u4e2a\u4eba\u8d26\u53f7-\u4e2a\u4eba\u4fe1\u606f-\u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u3011\u5f39\u7a97\uff0c\u914d\u7f6e JIRA \u8d26\u53f7\u548c\u5bc6\u7801\uff0c\u5c31\u53ef\u4ee5\u7ed1\u5b9a\u8d26\u53f7\u5173\u8054\u9700\u6c42\u4ee5\u53ca\u540c\u6b65\u7f3a\u9677\u4e86\u3002

    "},{"location":"faq/system_management/","title":"\u7cfb\u7edf\u8bbe\u7f6e\u76f8\u5173","text":""},{"location":"faq/system_management/#1-metersphere","title":"1 \u5982\u4f55\u7406\u89e3 MeterSphere \u6d4b\u8bd5\u8d44\u6e90\u6c60\uff1f","text":"

    \u6d4b\u8bd5\u8d44\u6e90\u6c60\u662f MeterSphere \u4e2d\u7684\u6267\u884c\u673a\u96c6\u5408\uff0c\u7528\u4e8e\u6267\u884c\u6307\u5b9a\u7684\u63a5\u53e3\u6216\u6027\u80fd\u6d4b\u8bd5\u3002\u76ee\u524d\u652f\u6301\u6dfb\u52a0 Node \u8d44\u6e90\u6c60\u548c K8S \u8d44\u6e90\u6c60\uff0c\u8be6\u7ec6\u8bf4\u660e\u8bf7\u53c2\u8003\u8d44\u6e90\u6c60\u914d\u7f6e\u3002

    "},{"location":"faq/system_management/#2-ldap","title":"2 LDAP\u6d4b\u8bd5\u8fde\u63a5\uff0c\u63d0\u793a\u7528\u6237\u4e0d\u5b58\u5728\u6216\u8005\u4e0d\u552f\u4e00\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e-LDAP \u8bbe\u7f6e\u3011\u66f4\u6539\u7528\u6237\u8fc7\u6ee4\u5668\u4e3a(cn={0})\uff1bLDAP\u5c5e\u6027\u6620\u5c04\u4e3a\uff5b\"username\": \"cn\"\uff5d\u3002

    "},{"location":"faq/system_management/#3","title":"3 \u9879\u76ee\u5982\u4f55\u914d\u7f6e\u901a\u7528\u7684\u57df\u540d\uff1f","text":"

    \u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u5de5\u4f5c\u7a7a\u95f4-\u73af\u5883\u914d\u7f6e\u3011\u9875\u9762\uff0c\u3010\u901a\u7528\u8bbe\u7f6e\u3011\u542f\u7528 Hosts\uff0c\u53ef\u4ee5\u4e3a\u9879\u76ee\u914d\u7f6e\u901a\u7528\u7684\u57df\u540d\u3002

    "},{"location":"faq/system_management/#4","title":"4 \u90ae\u4ef6\u670d\u52a1\u5668\u8fde\u63a5\u4e0d\u6210\u529f\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u5bfc\u81f4\u90ae\u7bb1\u94fe\u63a5\u4e0d\u6210\u529f\u7684\u539f\u56e0\u53ef\u80fd\u662f 465 \u7aef\u53e3\u672a\u5f00\u653e\uff0c \u53ef\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e-\u90ae\u4ef6\u8bbe\u7f6e\u8bbe\u7f6e\u3011\u5c06\u90ae\u4ef6\u8bbe\u7f6e\u4e2d\u7684 465 \u7aef\u53e3\u6539\u6210 25 \u7aef\u53e3\u5e76\u53bb\u6389 ssl \u9009\u9879.

    "},{"location":"faq/system_management/#5-warn-establishing-ssl-connection-without-servers-identity-verification-is-not-recommended","title":"5 \u73af\u5883\u914d\u7f6e\u6570\u636e\u5e93\u8fde\u63a5\u4e0d\u901a\uff0c \u63d0\u793a\uff1aWARN: Establishing SSL connection without server's identity verification is not recommended.","text":"

    \u6570\u636e\u5e93\u9ed8\u8ba4\u5f00\u542f\u4e86 SSL \u9a8c\u8bc1\u76f8\u5e94\u7684\u914d\u7f6e\u5bfc\u81f4\uff0c\u53ef\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u73af\u5883\u7ba1\u7406\u3011\u6570\u636e\u5e93\u7684 URL \u589e\u52a0\uff1fuseSSL=false \u6765\u89e3\u51b3\u3002

    "},{"location":"faq/system_management/#6-sqlsql","title":"6 \u5728\u4e00\u4e2aSQL\u8bf7\u6c42\u4e0b\u5982\u4f55\u6267\u884c\u591a\u6761SQL\uff1f","text":"

    \u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u73af\u5883\u7ba1\u7406\u3011\u7f16\u8f91\u73af\u5883\u6570\u636e\u6e90\u914d\u7f6e\u7684 URL \u540e\u9762\u52a0\u4e0a allowMultiQueries=true\u3002

    "},{"location":"faq/system_management/#7-no-database-selected","title":"7 \u73af\u5883\u914d\u7f6e\u6570\u636e\u5e93\u914d\u7f6e\u63d0\u793a\uff1ano database selected\uff0c\u5982\u4f55\u89e3\u51b3\uff1f","text":"

    \u9700\u8981\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u73af\u5883\u7ba1\u7406\u3011\u7f16\u8f91\u73af\u5883\u6570\u636e\u6e90\u8fde\u63a5 URL \u4e2d\u589e\u52a0\u6570\u636e\u5e93\u5e93\u540d\u4fe1\u606f\u3002\u4f8b\u5982\uff1ajdbc:mysql://127.0.0.1:3306/database\u3002

    "},{"location":"faq/test_track/","title":"\u6d4b\u8bd5\u8ddf\u8e2a\u76f8\u5173","text":""},{"location":"faq/test_track/#1-metersphere","title":"1 MeterSphere \u4e2d\u6d4b\u8bd5\u8ba1\u5212\u5177\u4f53\u7684\u573a\u666f\u662f\u4ec0\u4e48\uff1f","text":"

    \u53c2\u8003\u6587\u7ae0\uff1a \u4ea7\u54c1\u89e3\u8bfb\u4e28MeterSphere\u4e2d\u6d4b\u8bd5\u8ba1\u5212\u7684\u573a\u666f\u8bbe\u8ba1\u4e0e\u5b9e\u73b0\u3002

    "},{"location":"faq/test_track/#2","title":"2 \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\uff0c\u7528\u4f8b\u8bc4\u5ba1\u5982\u4f55\u8fdb\u884c\u6279\u91cf\u5904\u7406\uff1f","text":"

    \u9009\u4e2d\u6d4b\u8bd5\u8bc4\u5ba1\u7528\u4f8b\u5217\u8868\u4e2d\u9700\u8981\u6279\u91cf\u5904\u7406\u7684\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u00b7\u00b7\u00b7\u3011\u5f39\u51fa\u4e0b\u62c9\u6846\uff0c\u9009\u62e9\u6279\u91cf\u7f16\u8f91\uff0c\u53ef\u4ee5\u6279\u91cf\u8bbe\u7f6e\u8bc4\u5ba1\u7ed3\u679c\u3002

    "},{"location":"faq/test_track/#3","title":"3 \u6d4b\u8bd5\u8ba1\u5212\u91cc\uff0c\u5982\u4f55\u6279\u91cf\u5206\u914d\u6267\u884c\u4eba\uff1f","text":"

    \u9009\u4e2d\u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u5217\u8868\u4e2d\u9700\u8981\u6279\u91cf\u5904\u7406\u7684\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u00b7\u00b7\u00b7\u3011\u5f39\u51fa\u4e0b\u62c9\u6846\uff0c\u9009\u62e9\u6279\u91cf\u7f16\u8f91\uff0c\u53ef\u4ee5\u5206\u914d\u6267\u884c\u4eba\u3002

    "},{"location":"faq/test_track/#4","title":"4 \u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u5b9a\u65f6\u4efb\u52a1\uff0c\u662f\u5426\u4f1a\u81ea\u52a8\u89e6\u53d1\u63a5\u53e3\u6d4b\u8bd5\u548c\u6027\u80fd\u6d4b\u8bd5\uff1f\u5b9a\u65f6\u4efb\u52a1\u6dfb\u52a0\u540e\u5982\u4f55\u5220\u9664\uff1f","text":"

    \u6d4b\u8bd5\u8ba1\u5212\u7684\u5b9a\u65f6\u4efb\u52a1\u652f\u6301\u5173\u8054\u7ba1\u7406\u63a5\u53e3\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u5e76\u5b9a\u65f6\u89e6\u53d1\uff1b\u914d\u7f6e\u5b9a\u65f6\u4efb\u52a1\u540e\uff0c\u5173\u95ed SCHEDULER \u5f00\u5173\u5373\u53ef\u53d6\u6d88\u5b9a\u65f6\u4efb\u52a1\u3002

    "},{"location":"faq/test_track/#5","title":"5 \u6d4b\u8bd5\u7528\u4f8b\u53ef\u4ee5\u81ea\u5b9a\u4e49\u663e\u793a\u5b57\u6bb5\u5417\uff1f","text":"

    \u5728\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\uff0c\u70b9\u51fb\u3010\u64cd\u4f5c\u3011\u5217\u4e2d\u7684\u9f7f\u8f6e\u6309\u94ae\u8fdb\u884c\u914d\u7f6e\u3002

    "},{"location":"faq/test_track/#6-jira-metersphere","title":"6 \u5982\u679c\u96c6\u6210\u4e86 JIRA\uff0c\u7f3a\u9677\u72b6\u6001\u53ef\u4ee5\u540c\u6b65\u66f4\u65b0 MeterSphere \u5417\uff1f","text":"

    \u5f00\u6e90\u7248\u4ec5\u652f\u6301\u5355\u5411\u540c\u6b65\uff0c\u5373 MeterSphere \u7f3a\u9677\u540c\u6b65\u5230\u7b2c\u4e09\u65b9\u5e73\u53f0\u3002\u4f01\u4e1a\u7248\u652f\u6301\u53cc\u5411\u540c\u6b65\uff0c\u5373 MeterSphere \u7f3a\u9677\u540c\u6b65\u5230\u7b2c\u4e09\u65b9\u5e73\u53f0\uff0c\u7b2c\u4e09\u65b9\u5e73\u53f0\u4e0a\u7684\u7f3a\u9677\u540c\u6b65\u5230 MeterSphere

    "},{"location":"faq/test_track/#7-jira","title":"7 \u7f3a\u9677\u7ba1\u7406\u81ea\u5b9a\u4e49\u5b57\u6bb5\uff0c\u5982\u4f55\u8ddf JIRA \u7aef\u7684\u5b57\u6bb5\u5173\u8054\uff1f","text":"

    \u5728 Jira \u91cc\u67e5\u770b network\uff0c\u627e\u5230\u5bf9\u5e94\u7684\u81ea\u5b9a\u4e49\u5b57\u6bb5\u7684\u5b57\u6bb5\u540d\u79f0\uff0c\u7136\u540e\u5230 MeterSphere \u7f3a\u9677\u6a21\u7248\u91cc\u8bbe\u7f6e\u4e0a\u5bf9\u5e94\u7684 api \u5b57\u6bb5\u540d\u3002

    "},{"location":"faq/test_track/#8","title":"8 \u6d4b\u8bd5\u7528\u4f8b\u53ef\u4ee5\u81ea\u5b9a\u4e49\u6dfb\u52a0\u5b57\u6bb5\u5417\uff1f","text":"

    \u5728\u3010\u9879\u76ee\u8bbe\u7f6e-\u66f4\u591a\u9009\u9879-\u6a21\u7248\u7ba1\u7406-\u6a21\u677f\u5b57\u6bb5\u3011\uff0c\u53ef\u4ee5\u521b\u5efa\u6a21\u677f\u5b57\u6bb5\uff0c\u521b\u5efa\u65f6\u9009\u62e9\u7528\u4f8b\u6a21\u7248\uff0c\u4fdd\u5b58\u6210\u529f\u540e\u6253\u5f00\u7528\u4f8b\u6a21\u7248\uff0c\u6dfb\u52a0\u521b\u5efa\u7684\u6a21\u677f\u5b57\u6bb5\u3002\u7136\u540e\u5728\u7f16\u5199\u7528\u4f8b\u7684\u9875\u9762\u5c31\u4f1a\u51fa\u73b0\u6a21\u677f\u5b57\u6bb5\u3002

    "},{"location":"faq/test_track/#9","title":"9 \u5982\u4f55\u627e\u56de\u8bef\u5220\u9664\u7684\u6d4b\u8bd5\u7528\u4f8b\uff1f","text":"

    \u5220\u9664\u7684\u6d4b\u8bd5\u7528\u4f8b\u5e76\u4e0d\u4f1a\u7acb\u5373\u5220\u9664\uff0c\u800c\u662f\u79fb\u52a8\u5230\u3010\u56de\u6536\u7ad9\u3011\u4e2d\uff0c\u53ef\u4ee5\u5728\u3010\u6d4b\u8bd5\u8ddf\u8e2a-\u6d4b\u8bd5\u7528\u4f8b\u3011\u6a21\u5757\uff0c\u70b9\u51fb\u3010\u56de\u6536\u7ad9\u3011\u627e\u56de\u3002

    "},{"location":"faq/test_track/#10","title":"10 \u6d4b\u8bd5\u7528\u4f8b\u9875\u9762\u7684\u5b57\u6bb5\u5982\u4f55\u589e\u52a0\u81ea\u5b9a\u4e49\u5b57\u6bb5\uff1f","text":"
    • \u5728\u3010\u9879\u76ee\u8bbe\u7f6e-\u6a21\u7248\u7ba1\u7406-\u7528\u4f8b\u6a21\u7248\u3011\u9875\u9762\u4e2d\uff0c\u9009\u62e9\u8981\u6dfb\u52a0\u5b57\u6bb5\u7684\u7528\u4f8b\u6a21\u7248\uff0c\u6253\u5f00\u3010\u7f16\u8f91\u7528\u4f8b\u6a21\u7248\u3011\u9875\u9762\u3002
    • \u5728\u3010\u7f16\u8f91\u7528\u4f8b\u6a21\u7248\u3011\u9875\u9762\uff0c\u70b9\u51fb\u3010\u8bbe\u7f6e\u81ea\u5b9a\u4e49\u5b57\u6bb5\u3011\u6309\u94ae\u6253\u5f00\u3010\u521b\u5efa\u5b57\u6bb5\u3011\u5bf9\u8bdd\u6846\uff0c\u5728\u5bf9\u8bdd\u6846\u4e2d\u586b\u5199\u5b57\u6bb5\u540d\u79f0\u3001\u5907\u6ce8\uff0c\u9009\u62e9\u3010\u5b57\u6bb5\u7c7b\u578b\u3011\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u4fdd\u5b58\u3002
    "},{"location":"faq/test_track/#11","title":"11 \u63d0\u4ea4\u7f3a\u9677\u9875\u9762\u7684\u5b57\u6bb5\u5982\u4f55\u8fdb\u884c\u81ea\u5b9a\u4e49\u914d\u7f6e\uff1f","text":"

    \u91c7\u7528\u7528\u4f8b\u6a21\u7248\u5b9e\u73b0\u81ea\u5b9a\u4e49\u5b57\u6bb5\u3002

    • \u5728\u3010\u9879\u76ee\u8bbe\u7f6e-\u6a21\u7248\u7ba1\u7406-\u7f3a\u9677\u6a21\u7248\u3011\u9875\u9762\u4e2d\uff0c\u9009\u62e9\u8981\u6dfb\u52a0\u5b57\u6bb5\u7684\u7f3a\u9677\u6a21\u7248\uff0c\u6253\u5f00\u3010\u7f16\u8f91\u7f3a\u9677\u6a21\u7248\u3011\u9875\u9762\u3002
    • \u5728\u3010\u7f16\u8f91\u7f3a\u9677\u6a21\u7248\u3011\u9875\u9762\uff0c\u70b9\u51fb\u3010\u8bbe\u7f6e\u81ea\u5b9a\u4e49\u5b57\u6bb5\u3011\u6309\u94ae\u6253\u5f00\u3010\u521b\u5efa\u5b57\u6bb5\u3011\u5bf9\u8bdd\u6846\uff0c\u5728\u5bf9\u8bdd\u6846\u4e2d\u586b\u5199\u5b57\u6bb5\u540d\u79f0\u3001\u5907\u6ce8\uff0c\u9009\u62e9\u3010\u5b57\u6bb5\u7c7b\u578b\u3011\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u4fdd\u5b58\u3002
    "},{"location":"faq/test_track/#12-jiratapdms","title":"12 \u5728 JIRA\u3001TAPD\u3001\u7985\u9053\u4e0a\u5df2\u521b\u5efa\u7684\u7f3a\u9677\uff0cMS\u4e0a\u70b9\u51fb\u201c\u540c\u6b65\u7f3a\u9677\u201d\uff0c\u672a\u6210\u529f\u540c\u6b65","text":"

    \u9879\u76ee\u4e0e\u8fd9\u4e9b\u5de5\u5177\u8bbe\u7f6e\u4e86\u96c6\u6210\u540e\uff0c\u5f00\u6e90\u7248\u4ec5\u652f\u6301\u5355\u5411\u540c\u6b65\uff0c\u5373 MeterSphere \u7f3a\u9677\u540c\u6b65\u5230\u7b2c\u4e09\u65b9\u5e73\u53f0\u3002\u4f01\u4e1a\u7248\u652f\u6301\u53cc\u5411\u540c\u6b65\uff0c\u5373 MeterSphere \u7f3a\u9677\u540c\u6b65\u5230\u7b2c\u4e09\u65b9\u5e73\u53f0\uff0c\u540c\u65f6\u4e5f\u652f\u6301\u7b2c\u4e09\u65b9\u5e73\u53f0\u4e0a\u7684\u7f3a\u9677\u540c\u6b65\u5230 MeterSphere\u3002

    "},{"location":"faq/test_track/#13","title":"13 \u6d4b\u8bd5\u7528\u4f8b\u6a21\u7248\u6dfb\u52a0\u7684\u81ea\u5b9a\u4e49\u5b57\u6bb5\u5982\u4f55\u5728\u5217\u8868\u5c55\u793a\uff1f","text":"

    \u5728\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u4e2d\uff0c\u70b9\u51fb\u3010\u64cd\u4f5c\u3011\u5217\u4e2d\u7684\u9f7f\u8f6e\u6309\u94ae\u8fdb\u884c\u914d\u7f6e\u3002

    "},{"location":"faq/test_track/#14","title":"14 \u540c\u4e00\u4e2a\u6d4b\u8bd5\u8ba1\u5212\uff0c\u65e2\u5305\u542b\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\uff0c\u4e5f\u5305\u542b\u573a\u666f\u7528\u4f8b\u65f6\uff0c\u6267\u884c\u987a\u5e8f\u662f\u600e\u6837\u7684\uff1f","text":"
    • \u4e0d\u540c\u7c7b\u578b\u7684\u7528\u4f8b\u4e4b\u95f4\uff08\u63a5\u53e3\u7528\u4f8b\u3001\u573a\u666f\u7528\u4f8b\u548c\u6027\u80fd\u7528\u4f8b\u7b49\uff09\u6ca1\u6709\u5148\u540e\u5173\u7cfb\uff0c\u662f\u5e76\u884c\u6267\u884c\u3002
    • \u540c\u7c7b\u578b\u7684\u591a\u4e2a\u6d4b\u8bd5\u6839\u636e\u8fd0\u884c\u65f6\u914d\u7f6e\u6267\u884c\uff08\u4e32\u884c\u6216\u8005\u5e76\u884c\uff09\u3002
    "},{"location":"faq/test_track/#15-xmind-metersphere","title":"15 \u4ece\u672c\u5730 xmind \u590d\u5236\u6570\u636e\u7c98\u8d34\u5230 MeterSphere \u7528\u4f8b\u8111\u56fe\u76f4\u63a5\u4fdd\u5b58\u540e\u6ca1\u6709\u6570\u636e","text":"

    \u9700\u8981\u5c06\u76f8\u5e94\u7684\u6570\u636e\u6807\u8bb0\u4e3a\u6a21\u5757\u6216\u8005\u7528\u4f8b\u624d\u80fd\u4fdd\u5b58\u3002

    "},{"location":"faq/test_track/#16-ms-tapd-ms-tapd","title":"16 MS \u96c6\u6210 TAPD\uff0c\u5728 MS \u5e73\u53f0\u63d0\u4ea4\u7f3a\u9677\u65f6\u4e0a\u4f20\u56fe\u7247\u6587\u4ef6\uff0c\u4f46 TAPD \u4e2d\u65e0\u6cd5\u6b63\u786e\u663e\u793a\u56fe\u7247","text":"

    \u95ee\u9898\u539f\u56e0\uff1a \u6d4f\u89c8\u5668\u7684\u9ed8\u8ba4\u5b89\u5168\u7b56\u7565\u5bfc\u81f4\u7684\uff0c\u56e0\u4e3a\u56fe\u7247\u5b9e\u9645\u4e0a\u662f\u653e\u5728\u7985\u9053\u7684\uff0cMS \u662fhttps\u7684\uff0cTAPD \u7684\u5730\u5740\u662fhttp\uff0c\u8bbf\u95ee http \u7684\u7985\u9053\u4f1a\u81ea\u52a8\u8f6c\u6210 https\u3002

    \u89e3\u51b3\u65b9\u6cd5\uff1a MS\u5e73\u53f0\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf-\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e-\u57fa\u672c\u914d\u7f6e-\u5f53\u524d\u7ad9\u70b9URL\u3011\uff0c\u9700\u8981\u914d\u7f6e\u6210 https \u7684\u5730\u5740

    "},{"location":"faq/test_track/#17-ms-ms-id-id","title":"17 MS\u96c6\u6210\u7985\u9053\uff0c\u5728 MS\u5e73\u53f0\u4e0a \u9879\u76eeID \u586b\u5199\u6b63\u786e\uff0c\u68c0\u67e5\u65f6\u63d0\u793aID\u4e0d\u5b58\u5728\u6216\u8005\u5176\u4ed6\u9519\u8bef\uff0c\u5982\u4f55\u89e3\u51b3\uff1f","text":"

    \u53ef\u80fd\u539f\u56e0\u5305\u62ec\uff1a

    • v2.4 \u7248\u672c\u4e4b\u540e\uff0c\u670d\u52a1\u96c6\u6210\u4fee\u6539\u4e3a\u63d2\u4ef6\u65b9\u5f0f\uff0c\u7985\u9053\u63d2\u4ef6\u7248\u672c\u548c\u5f53\u524d MeterSphere \u7248\u672c\u4e0d\u4e00\u81f4\u3002
    • \u6ca1\u6709\u5bf9\u5e94\u4ea7\u54c1\u6216\u8005\u9879\u76ee\u7684\u6743\u9650\uff0c\u6216\u8005\u6709\u6743\u9650\u4f46\u662f\u9700\u8981\u586b\u4ea7\u54c1 ID\uff0c\u5b9e\u9645\u586b\u4e86\u9879\u76ee ID\u3002
    • \u7985\u9053\u670d\u52a1\u6ca1\u6709\u542f\u7528api\u8c03\u7528\u6743\u9650\uff1a\u7f3a\u5c11\u914d\u7f6e $config->features->apiGetModel\u3002
    • \u670d\u52a1\u96c6\u6210\u5904\u5bf9\u63a5\u7684\u7985\u9053\u7528\u6237\uff0c\u6ca1\u6709\u52fe\u9009\u8d4b\u4e88\"\u8d85\u7ea7model\u8c03\u7528\u63a5\u53e3\"\u6743\u9650\u3002

    \u89e3\u51b3\u65b9\u6cd5\uff1a

    • \u5728 github\u4e0a\u4e0b\u8f7d\u548c MeterSphere \u7248\u672c\u4e00\u81f4\u7684\u63d2\u4ef6metersphere-platform-plugin \u5e76\u4e0a\u4f20\u5230\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u63d2\u4ef6\u7ba1\u7406\u3011\uff0c\u7528\u6cd5\u53c2\u8003\u670d\u52a1\u96c6\u6210\u63d2\u4ef6\u3002
    • \u5728 MeterSphere \u9879\u76ee\u7f16\u8f91\u6846-\u9879\u76eeID \u5904\u6709\u201ci\u201d\u63d0\u793a\u8bf4\u660e\uff0c\u6309\u7167\u914d\u7f6e\u8bf4\u660e\u586b\u5199\u5bf9\u5e94 \u4ea7\u54c1ID \u6216\u8005 \u9879\u76eeID\u3002
    • \u5728\u7985\u9053\u5b89\u88c5\u8def\u5f84\u4e2d\uff1a${\u5b89\u88c5\u8def\u5f84}/zentao/config/ \u76ee\u5f55\u4e0b my.php (\u5982\u679c\u6ca1\u6709\uff0c\u65b0\u5efa my.php \u6587\u4ef6)\u4e2d\u6dfb\u52a0\u5982\u4e0b\u5185\u5bb9\uff1a$config->features->apiGetModel = true;\u7136\u540e\u91cd\u542f\u7985\u9053\u670d\u52a1\u5668\uff1a/opt/zbox/zbox restart\u3002
    • \u7528\u4e8e\u5bf9\u63a5\u7684\u7985\u9053\u7528\u6237\uff0c\u786e\u8ba4\u5728\u7985\u9053 web \u7aef\u3010\u7ec4\u7ec7-\u6743\u9650-\u6743\u9650\u7ef4\u62a4-API \u63a5\u53e3\u3011\u52fe\u9009\u4e86\u201c\u8d85\u7ea7model\u8c03\u7528\u63a5\u53e3\u201d\u3002
    "},{"location":"faq/ui_test/","title":"UI \u6d4b\u8bd5\u76f8\u5173","text":""},{"location":"faq/ui_test/#1-chromedriver","title":"1.\u672c\u5730\u8c03\u8bd5\u65f6\uff0c\u542f\u52a8\u65e5\u5fd7\u4e2d\u51fa\u73b0\u4e24\u4e2a ChromeDriver \u7248\u672c\u53f7\uff0c\u539f\u56e0\u662f\uff1f","text":"

    \u672c\u5730\u6d4f\u89c8\u5668\u7684\u7248\u672c\u53f7\u4e0e\u4e0b\u8f7d\u7684\u9a71\u52a8\u7248\u672c\u4e0d\u5339\u914d\uff0c\u53ef\u67e5\u770b\u6d4f\u89c8\u5668\u7248\u672c\u540e\uff0c\u91cd\u65b0\u4e0b\u8f7d\u5bf9\u5e94\u7248\u672c\u7684\u9a71\u52a8\u3002

    "},{"location":"faq/ui_test/#2cannot-find-chrome-binary","title":"2.\u672c\u5730\u8c03\u8bd5\uff0c\u542f\u52a8\u65e5\u5fd7\u4e2d\u62a5\u9519\uff1acannot find Chrome binary\uff0c\u5982\u4f55\u89e3\u51b3\uff1f","text":"

    \u5c06 chrome.exe \u7684\u8def\u5f84\u914d\u7f6e\u5230\u73af\u5883\u53d8\u91cf PATH \u91cc\u3002

    "},{"location":"faq/ui_test/#3","title":"3.\u672c\u5730\u8c03\u8bd5\uff0c\u65e5\u5fd7\u6ca1\u6709\u4efb\u4f55\u62a5\u9519\u60c5\u51b5\uff0c\u4f46\u662f\u9875\u9762\u6d4f\u89c8\u5668\u6ca1\u6709\u88ab\u8c03\u7528\u8d77\u6765\uff0c\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u5728UI\u573a\u666f\u4e2d\uff0c\u4e0d\u52fe\u9009\u3010\u6027\u80fd\u6a21\u5f0f\u3011\uff0c\u5373\u53ef\u770b\u5230\u6d4f\u89c8\u5668\u88ab\u8c03\u7528\u7684\u8fc7\u7a0b\u3002

    "},{"location":"installation/backup_data/","title":"\u6570\u636e\u5907\u4efd\u4e0e\u8fd8\u539f","text":"

    \u6982\u8ff0

    \u672c\u6587\u4ecb\u7ecd\u4e86\u624b\u52a8\u548c\u81ea\u52a8\u4e24\u79cd\u5907\u4efd\u65b9\u5f0f\uff0c\u5907\u4efd\u5b8c\u6210\u540e\u6253\u5305\u63a8\u9001\u5230\u6307\u5b9a\u670d\u52a1\u5668\u76ee\u5f55\u3002 \u5907\u4efd\u811a\u672c\u4e2d\u6709\u591a\u4e2a\u53d8\u91cf\u53ef\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\uff0c\u7528\u4e8e\u6ee1\u8db3\u4e0d\u540c\u7684\u4f7f\u7528\u573a\u666f\u3002

    \u6ce8\u610f

    1. \u5907\u4efd\u811a\u672c\u4e2d\uff0c\u9ed8\u8ba4\u4fdd\u7559\u6700\u8fd1\u76847\u4efd\u5907\u4efd\u6587\u4ef6\u3002\uff08\u5982\u6bcf\u5929\u5907\u4efd\u4e00\u6b21\uff0c\u5219\u4fdd\u7559\u6700\u8fd17\u5929\u7684\u5907\u4efd\u6587\u4ef6\u3002\uff09
    2. \u4e3a\u52a0\u5f3a\u6570\u636e\u7684\u5b89\u5168\u6027\uff0c\u5907\u4efd\u811a\u672c\u4e2d\u91c7\u53d6\u7684\u672c\u5730\u52a0\u5f02\u5730\u5907\u4efd\u3002
    "},{"location":"installation/backup_data/#1","title":"1 \u6570\u636e\u5907\u4efd","text":""},{"location":"installation/backup_data/#11","title":"1.1 \u624b\u52a8\u5907\u4efd","text":"
    # \u6570\u636e\u5e93\u5907\u4efd\uff1a\ndocker exec -i mysql mysqldump -uroot -pPassword123@mysql metersphere > metersphere.sql\n\n# data \u76ee\u5f55\u5907\u4efd \uff08\u4ee5\u5b9e\u9645\u5b89\u88c5\u76ee\u5f55\u4e3a\u51c6\uff0c\u9ed8\u8ba4 /opt \u76ee\u5f55\uff09\ntar -cvf ms_data_backup.tar /opt/metersphere/data --exclude=/opt/metersphere/data/kafka --exclude=/opt/metersphere/data/mysql --exclude=/opt/metersphere/data/redis --exclude=/opt/metersphere/data/prometheus\n
    "},{"location":"installation/backup_data/#12","title":"1.2 \u81ea\u52a8\u5907\u4efd","text":"
    1. \u81ea\u52a8\u5907\u4efd\u524d\u9700\u5148\u751f\u6210 SSH \u5bc6\u94a5\u5bf9\uff0c\u5e76\u5c06\u516c\u94a5\u590d\u5236\u5230\u5907\u4efd\u670d\u52a1\u5668\u3002

      ssh-keygen -t rsa\n

    2. \u5c06\u516c\u94a5\u590d\u5236\u5230\u8fdc\u7a0b\u670d\u52a1\u5668\u3002

      ssh-copy-id remote_user@remote_host\n

    3. \u521b\u5efa\u7528\u4e8e\u6570\u636e\u5907\u4efd\u7684\u811a\u672c\u6587\u4ef6

      vi ms_backup.sh\n

    4. \u628a\u4ee5\u4e0b\u5185\u5bb9\u590d\u5236\u5230\u521a\u624d\u521b\u5efa\u7684 ms_backup.sh \u811a\u672c\u4e2d\uff08\u67e5\u770b\u811a\u672c\u4e2d\u7684\u53c2\u6570\uff0c\u4e0e\u5b9e\u9645\u573a\u666f\u662f\u5426\u76f8\u7b26\uff09

      #!/bin/bash\n\n#\u5386\u53f2\u5907\u4efd\u6570\u636e\u4fdd\u7559\u5929\u6570\nkeepBackupNum=7\n#\u5907\u4efd\u6587\u4ef6\u8f93\u51fa\u76ee\u5f55\nbackupDir=/opt/db_bak\n#\u6570\u636e\u5e93\u7528\u6237\u540d\nusername=root\n#\u6570\u636e\u5e93\u5bc6\u7801\npassword=Password123@mysql\n#\u9700\u8981\u5907\u4efd\u7684\u5e93\u540d\ndbName=metersphere\n#\u5907\u4efd\u6587\u4ef6\u7684\u540e\u7f00\u540d\u79f0\ncurrentTime=`date \"+%Y-%m-%d-%H-%M-%S\"`\n#\u5907\u4efd\u6587\u4ef6\u7684\u5b8c\u6574\u540d\u79f0\nbackupTarFileName=ms_db_$currentTime.tar.gz\n#\u5bfc\u51fasql\u6587\u4ef6\u7684\u5b8c\u6574\u540d\u79f0\ndumpSqlFile=ms_db_$currentTime.sql\n#data\u6570\u636e\u9ed8\u8ba4\u76ee\u5f55 /opt/metersphere/data\uff0c\u4ee5\u5b9e\u9645\u5b89\u88c5\u76ee\u5f55\u4e3a\u51c6\nmsDataDir=/opt/metersphere/data\n#\u63a8\u9001\u8fdc\u7a0b\u670d\u52a1\u5668ip\u5730\u5740\nremoteIp=10.1.11.12\n#\u63a8\u9001\u8fdc\u7a0b\u670d\u52a1\u5668\u7528\u6237\u540d\nremoteUser=root\n#\u63a8\u9001\u8fdc\u7a0b\u670d\u52a1\u5668\u76ee\u5f55\nremotePath=/opt\n#\u6570\u636e\u5e93\u662f\u5426\u5185\u7f6e\nisBuiltIn=true\n\n\necho dumpSqlFilePath=$backupDir/$backupTarFileName\n\n#\u6ca1\u6709\u5907\u4efd\u6587\u4ef6\u5939\u5219\u521b\u5efa\nif [  ! -d  \"$backupDir\" ];then\n    mkdir -p \"$backupDir\"\nelse\n    echo \"--------------\u5f00\u59cb\u8fdb\u884c\u5907\u4efd-----------------\"\nfi\n\ncd $backupDir\n\nif [ \"${isBuiltIn}\" = \"true\" ]; then\n    docker exec -i mysql mysqldump -u${username} -p${password} ${dbName} --max_allowed_packet=2G > $dumpSqlFile\nelse\n    mysqldump -u${username} -p${password} ${dbName} --max_allowed_packet=2G > $dumpSqlFile\nfi\n\ntar -cvf ms_data_backup.tar ${msDataDir} --exclude=${msDataDir}/kafka --exclude=${msDataDir}/mysql --exclude=${msDataDir}/redis --exclude=${msDataDir}/prometheus\n\ntar -zcvf  $backupTarFileName $dumpSqlFile ms_data_backup.tar\n#\u53d1\u9001\u5907\u4efd\u6587\u4ef6\u5230\u8fdc\u7a0b\u673a\u5668\nscp $backupTarFileName $remoteUser@$remoteIp:$remotePath  2>> \"error.log\"\n\nif [ $? -eq 0 ]; then\n    echo \"---------------\u8fdc\u7a0b\u5907\u4efd\u5b8c\u6210----------------\"\nelse\n    echo \"---------------\u8fdc\u7a0b\u5907\u4efd\u5931\u8d25----------------\"\nfi\n\nrm -rf $dumpSqlFile ms_data_backup.tar\n\n#remove outdated backup files\n\noutput=`ls -lt $backupDir/*.tar.gz | awk '{print $9}'`\nstep=0\necho \"---------------\u5f00\u59cb\u6e05\u7406$keepBackupNum\u5929\u524d\u5907\u4efd\u6570\u636e----------------\"\nfor backupFile in $output ;do\n    step=$((step+1))\n    echo step=$step\n    echo $backupFile\n    if [ $step -gt $keepBackupNum ];then\n        echo Remove outdated backup $backupFile\n        rm -rf  $backupFile\n    fi\ndone\necho \"---------------\u7ed3\u675f\u6e05\u7406$keepBackupNum\u5929\u524d\u5907\u4efd\u6570\u636e----------------\"\n

    5. \u521b\u5efa\u7528\u4e8e\u5b9a\u65f6\u4efb\u52a1\u811a\u672c\u6587\u4ef6

      vi install_ms_backup.sh\n

    6. \u628a\u4ee5\u4e0b\u5185\u5bb9\u590d\u5236\u5230\u521a\u624d\u521b\u5efa\u7684 install_ms_backup.sh \u811a\u672c\u4e2d\uff08\u67e5\u770b\u811a\u672c\u4e2d\u7684\u53c2\u6570\uff0c\u4e0e\u5b9e\u9645\u573a\u666f\u662f\u5426\u76f8\u7b26\uff09

      #!/bin/bash\n\ntimedate_fields=\"0 1 * * *\"  #\u6bcf\u5929\u51cc\u66681:00\u6267\u884c\u5907\u4efd\u7a0b\u5e8f\ncmd=\"bash /opt/db_bak/ms_backup.sh\"  #\u66ff\u6362 ms_backup.sh \u6240\u5728\u8def\u5f84\ncrontab -l | grep \"$cmd \" > /dev/null 2>&1\nif test $? -ne 0; then\n    crontab -l > crontab.tmp\n    echo \"$timedate_fields $cmd\" >> crontab.tmp\n    crontab crontab.tmp\nfi\n

    7. \u6267\u884c install_ms_backup.sh \u6587\u4ef6\uff08\u5982\u679c\u9047\u5230\u6587\u4ef6\u6743\u9650\u95ee\u9898\uff0c\u53ef\u4ee5\u4f7f\u7528 chmod \u547d\u4ee4\u589e\u52a0\u6743\u9650\uff09\uff0c\u7136\u540e\u4f7f\u7528 crontab -l \u547d\u4ee4\u5373\u53ef\u67e5\u770b\u5b9a\u65f6\u4efb\u52a1

    "},{"location":"installation/backup_data/#2","title":"2 \u6570\u636e\u8fd8\u539f","text":"

    \u8fd8\u539f sql \u6570\u636e\uff0c\u8fdb\u5165\u5907\u4efd sql \u76ee\u5f55\uff0c\u5c06 sql \u590d\u5236\u5230 mysql \u5bb9\u5668\u7684\u6302\u8f7d\u76ee\u5f55 /opt/metersphere/data/mysql \u4e0b

    cp metersphere.sql /opt/metersphere/data/mysql\n

    \u8fdb\u5165 mysql \u5bb9\u5668\uff0c\u767b\u5f55\u6570\u636e\u5e93

    docker exec -it mysql sh\nmysql -uroot -pPassword123@mysql\n

    \u4f7f\u7528 metersphere \u5e93\uff0c\u5e76\u5c06\u6570\u636e\u5bfc\u5165\u5230\u5e93\u91cc

    use metersphere;\nsource /var/lib/mysql/metersphere.sql\n

    \u8fd8\u539f data \u76ee\u5f55\u6570\u636e\uff0c\u8fdb\u5165 ms_data_backup.tar \u6240\u5728\u76ee\u5f55

    mv ms_data_backup.tar /\ntar -xvf ms_data_backup.tar\n

    "},{"location":"installation/build_data_streaming/","title":"\u90e8\u7f72Data-Streaming\u96c6\u7fa4","text":"

    \u51c6\u5907\u597d\u73af\u5883\u53d8\u91cf\u6587\u4ef6\u3001compose \u6587\u4ef6\uff0c\u4e09\u53f0\u673a\u5668\u90e8\u7f72\u4e00\u6837

    \u73af\u5883\u53d8\u91cf\u6587\u4ef6 .env

    vim .env   #\u53c2\u8003ms\u7684.env\u6587\u4ef6\u8fdb\u884c\u4fee\u6539\n\nMS_KAFKA_TOPIC=JMETER_METRICS\nMS_MYSQL_HOST=10.1.240.110 #\u4fee\u6539MS\u7684\u6570\u636e\u5e93\nMS_KAFKA_LOG_TOPIC=JMETER_LOGS\nMS_TAG=v1.9.3\nMS_JMETER_DATA_PATH=metersphere/data/jmeter\nMS_BASE=/opt\nMS_KAFKA_TEST_TOPIC=LOAD_TESTS\nMS_MYSQL_USER=root\nMS_EXTERNAL_MYSQL=true\nMS_PREFIX=registry.cn-qingdao.aliyuncs.com/metersphere\nMS_MYSQL_DB=metersphere\nMS_MYSQL_PASSWORD=Password123@mysql\nMS_JMETER_TAG=5.4.1-ms3-jdk8\nMS_MYSQL_PORT=3307\n\nMS_KAFKA_BOOTSTRAP_SERVERS=10.1.240.154:9092,10.1.240.155:9092,10.1.240.156:9092  #\u65b0\u52a0\n

    docker-compose-base.yml

    vim docker-compose-base.yml #\u62f7\u8d1dms\u670d\u52a1\u5668\u7684docker-compose-base.yml \n\nversion: \"2.1\"\nvolumes:\n  ms-conf:\n    driver_opts:\n      type: none\n      device: ${MS_BASE}/metersphere/conf\n      o: bind\n  ms-logs:\n    driver_opts:\n      type: none\n      device: ${MS_BASE}/metersphere/logs\n      o: bind\n  ms-data:\n    driver_opts:\n      type: none\n      device: ${MS_BASE}/metersphere/data\n      o: bind\n\nnetworks:\n  ms-network:\n    driver: bridge\n    ipam:\n      driver: default\n      config:\n        - subnet: ${MS_DOCKER_SUBNET}\n

    docker-compose-ds.yml

    vim docker-compose-ds.yml #\u65b0\u52a0ds yaml\u6587\u4ef6\n\nversion: \"2.1\"\nservices:\n  ms-data-streaming:\n    image: ${MS_IMAGE_PREFIX}/ms-data-streaming:${MS_IMAGE_TAG}\n    container_name: ms-data-streaming\n    environment:\n      HOST_HOSTNAME: $HOSTNAME\n      SPRING_DATASOURCE_URL: jdbc:mysql://${MS_MYSQL_HOST}:${MS_MYSQL_PORT}/${MS_MYSQL_DB}?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false\n      SPRING_DATASOURCE_USERNAME: ${MS_MYSQL_USER}\n      SPRING_DATASOURCE_PASSWORD: ${MS_MYSQL_PASSWORD}\n      KAFKA_PARTITIONS: 4\n      KAFKA_REPLICAS: 1\n      KAFKA_TOPIC: ${MS_KAFKA_TOPIC}\n      KAFKA_LOG_TOPIC: ${MS_KAFKA_LOG_TOPIC}\n      KAFKA_TEST_TOPIC: ${MS_KAFKA_TEST_TOPIC}\n      KAFKA_REPORT_TOPIC: ${MS_KAFKA_REPORT_TOPIC}\n      KAFKA_BOOTSTRAP-SERVERS: ${MS_KAFKA_HOST}:${MS_KAFKA_PORT}\n      FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS: 'true'\n    healthcheck:\n      test: [\"CMD\", \"nc\", \"-zv\", \"localhost\", \"8084\"]\n      interval: 6s\n      timeout: 10s\n      retries: 20\n    restart: always\n    volumes:\n      - ./conf/metersphere.properties:/opt/metersphere/conf/metersphere.properties\n      - ${MS_BASE}/metersphere/logs/data-streaming:/opt/metersphere/logs/data-streaming\n    networks:\n      - ms-network\n

    \u542f\u52a8 Data-Streaming\uff0c\u6267\u884c\u547d\u4ee4:

    source .env \ndocker-compose -f docker-compose-base.yml -f docker-compose-ds.yml up -d\n

    "},{"location":"installation/build_kafka/","title":"\u90e8\u7f72Kafka\u96c6\u7fa4","text":"

    MeterSphere \u914d\u7f6e kafka \u96c6\u7fa4\u65b9\u6848\u91c7\u7528\u5b89\u88c5\u5305\u81ea\u5e26\u7684 kafka3.4 \u914d\u7f6e\u96c6\u7fa4\u3002\u672c\u65b9\u6848\u5206\u522b\u90e8\u7f72\u4e86\u4e09\u4e2a\u72ec\u7acb\u7684 MeterSphere \u670d\u52a1\uff0c\u7136\u540e\u628a\u8fd9\u4e09\u4e2a\u72ec\u7acb\u7684 MeterSphere \u7684 kafka \u5173\u8054\u6210\u96c6\u7fa4\u3002\u5982\u9700\u505a\u6d41\u91cf\u8f6c\u53d1\u53ef\u4ee5\u5c06\u4e09\u4e2a\u670d\u52a1\u914d\u7f6e\u5230 NGINX \u505a\u6d41\u91cf\u8f6c\u53d1\u3002 Kafka 3.0 \u4e4b\u524d\u7684\u67b6\u6784: \u5143\u6570\u636e\u5728 zookeeper \u4e2d\uff0c\u8fd0\u884c\u65f6\u52a8\u6001\u9009\u4e3e controller\uff0c\u7531 controller \u8fdb\u884c Kafka \u96c6\u7fa4\u7ba1\u7406\u3002kraft \u6a21\u5f0f\u67b6\u6784: \u4e0d\u518d\u4f9d\u8d56 zookeeper \u96c6\u7fa4\uff0c\u800c\u662f\u7528\u4e09\u53f0 controller \u8282\u70b9\u4ee3\u66ff zookeeper\uff0c\u5143\u6570\u636e\u4fdd\u5b58\u5728 controller \u4e2d\uff0c\u7531 controller \u76f4\u63a5\u8fdb\u884c Kafka \u96c6\u7fa4\u7ba1\u7406\u3002 Kafka \u96c6\u7fa4\u63d0\u4f9b\u4e86\u9ad8\u53ef\u9760\u6027\u3001\u9ad8\u541e\u5410\u91cf\u3001\u6c34\u5e73\u6269\u5c55\u6027\u3001\u5bb9\u9519\u6027\u3001\u5b9e\u65f6\u5904\u7406\u548c\u6301\u4e45\u6027\u5b58\u50a8\u7b49\u4f18\u52bf\uff0c\u4f7f\u5176\u6210\u4e3a\u5353\u8d8a\u7684\u5206\u5e03\u5f0f\u6d88\u606f\u961f\u5217\u548c\u6570\u636e\u6d41\u5e73\u53f0\uff0c\u5728\u5927\u89c4\u6a21\u6570\u636e\u5904\u7406\u3001\u5b9e\u65f6\u6570\u636e\u7ba1\u9053\u548c\u6d41\u5f0f\u5904\u7406\u7b49\u65b9\u9762\u53d1\u6325\u7740\u5173\u952e\u4f5c\u7528\u3002

    "},{"location":"installation/build_kafka/#1-kraft","title":"1 kraft \u67b6\u6784\u7684\u597d\u5904","text":"
    • Kafka \u4e0d\u518d\u4f9d\u8d56\u5916\u90e8\u6846\u67b6\uff0c\u800c\u662f\u80fd\u591f\u72ec\u7acb\u8fd0\u884c\u3002
    • controller \u7ba1\u7406\u96c6\u7fa4\u65f6\uff0c\u4e0d\u518d\u9700\u8981\u4ece zookeeper \u4e2d\u5148\u8bfb\u53d6\u6570\u636e\uff0c\u96c6\u7fa4\u6027\u80fd\u4e0a\u5347\u3002
    • \u7531\u4e8e\u4e0d\u4f9d\u8d56 zookeeper\uff0c\u96c6\u7fa4\u6269\u5c55\u65f6\u4e0d\u518d\u53d7\u5230 zookeeper \u8bfb\u5199\u80fd\u529b\u9650\u5236 controller \u4e0d\u518d\u52a8\u6001\u9009\u4e3e\uff0c\u800c\u662f\u7531\u914d\u7f6e\u6587\u4ef6\u89c4\u5b9a\uff0c\u8fd9\u6837\u6211\u4eec\u53ef\u4ee5\u6709\u9488\u5bf9\u6027\u7684\u52a0\u5f3a controller \u8282\u70b9\u7684\u914d\u7f6e\u3002
    • \u540e\u7eed\u7248\u672c\u5347\u7ea7\u65b9\u4fbf\uff0c\u4e0d\u7528\u548c zookeeper \u4e00\u8d77\u7ef4\u62a4\u3002
    "},{"location":"installation/build_kafka/#2-metersphere","title":"2 \u90e8\u7f72 MeterSphere \u670d\u52a1","text":"

    \u7533\u8bf7\u4e09\u53f0\u670d\u52a1\u5668\u5206\u522b\u90e8\u7f72 MeterSphere \u670d\u52a1\uff0c\u90e8\u7f72\u6b65\u9aa4\u8bf7\u53c2\u8003 Linux\u5355\u673a\u90e8\u7f72\u79bb\u7ebf\u5b89\u88c5\u3002

    "},{"location":"installation/build_kafka/#3-docker-compose-kafkayml","title":"3 \u670d\u52a1\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u4e09\u53f0\u670d\u52a1\u5206\u522b\u4fee\u6539docker-compose-kafka.yml \u914d\u7f6e\u6587\u4ef6\u4e3a\u96c6\u7fa4\u6a21\u5f0f\u3002","text":"

    vi /opt/metersphere/docker-compose-kafka.yml \u914d\u7f6e

        version: \"2.1\"\n  services:\n    kafka:\n      image: '${MS_IMAGE_PREFIX}/kafka:3.4.0'\n      container_name: kafka\n      ports:\n        - '${MS_KAFKA_PORT}:9092'\n        - '9093:9093'     #\u5f00\u653e9093\u7aef\u53e3\n      healthcheck:\n        test: [\"CMD\", \"bash\", \"-c\", \"< /dev/tcp/localhost/9093\"]\n        interval: 6s\n        timeout: 10s\n        retries: 50\n      restart: always\n      environment:\n        KAFKA_ENABLE_KRAFT: 'yes'\n        KAFKA_BROKER_ID: 3        #\u6807\u8bc6 Kafka \u96c6\u7fa4\u4e2d\u7684\u6bcf\u4e2a Broker\uff08\u4ee3\u7406\uff09\u7684\u552f\u4e00ID\u4e09\u4e2a\u670d\u52a1\u5668\u4e0a\u914d\u7f6e\u5206\u522b\u4e3a 1 2 3 \n        KAFKA_KRAFT_CLUSTER_ID: LelM2dIFQkiUFVXCECqRWA  #\u96c6\u7fa4\u914d\u7f6e\u4e00\u4e2a\u96c6\u7fa4ID\n        ALLOW_PLAINTEXT_LISTENER: 'yes'\n        KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://10.1.11.58:9092  #roker \u5bf9\u5916\u66b4\u9732\u7684\u5730\u5740\uff0c\u9700\u8981\u586b\u5199\u6bcf\u4e2a\u8282\u70b9\u771f\u5b9e\u7684 ip \u548c\u7aef\u53e3\n        KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@10.1.11.53:9093,2@10.1.11.54:9093,3@10.1.11.58:9093  #\u6240\u6709\u7684 controller \u5217\u8868\uff0c\u4e09\u4e2a\u914d\u7f6e\u6587\u4ef6\u90fd\u586b\u4e00\u6837\u3002\u683c\u5f0f\uff1a1@ip1:9093\uff0c2@ip2:9093\uff0c3@ip3:9093\n        KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT\n        KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER\n        KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093\n        KAFKA_CFG_PROCESS_ROLES: broker,controller\n        KAFKA_CFG_LOG_RETENTION_HOURS: 64\n        KAFKA_CFG_MAX_REQUEST_SIZE: 52428800\n        KAFKA_CFG_MESSAGE_MAX_BYTES: 52428800\n        KAFKA_CFG_REPLICA_FETCH_MAX_BYTES: 52428800\n        KAFKA_CFG_FETCH_MESSAGE_MAX_BYTES: 52428800\n        KAFKA_CFG_PARTITION_FETCH_BYTES: 52428800\n        KAFKA_HEAP_OPTS: '-Xmx512m -Xms256m'\n        FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS: 'true'\n      networks:\n        - ms-network\n    data-streaming:\n      depends_on:\n        kafka:\n          condition: service_healthy\n
    \u4ee5 v2.10.0 \u7248\u672c\u4e3a\u4f8b\uff0cKAFKA_ENABLE_KRAFT: 'yes'\uff0c\u9ed8\u8ba4\u5141\u8bb8 kraft \u96c6\u7fa4\u6a21\u5f0f\uff0c\u6211\u4eec\u53ea\u9700\u8981\u628a\u5176\u4ed6\u8282\u70b9\u52a0\u5165\u5230\u96c6\u7fa4\u4e2d\u5373\u53ef\u3002\u9700\u8981\u4fee\u6539\u7684\u914d\u7f6e\u9879\u5305\u62ec KAFKA_CFG_ADVERTISED_LISTENERS\u3001KAFKA_CFG_CONTROLLER_QUORUM_VOTERS\u3001KAFKA_BROKER_ID\u9700\u8981\u6dfb\u52a0\u7684\u914d\u7f6e\u9879\u5305\u62ec KAFKA_KRAFT_CLUSTER_ID\u3001ports 9093\u7aef\u53e3\uff1b\u5177\u4f53\u5185\u5bb9\u89c1\u4e0a\u8ff0\u914d\u7f6e\u6587\u4ef6\u6ce8\u91ca\u8bf4\u660e\u3002

    "},{"location":"installation/build_kafka/#4-metersphere-docker-kafka-kafka_bootstrap-serversip19092ip29092ip39092","title":"4 \u5206\u522b\u4fee\u6539\u4e09\u53f0 MeterSphere \u670d\u52a1docker\u914d\u7f6e\u6587\u4ef6\uff0c\u5c06\u4f7f\u7528\u5230 kafka \u96c6\u7fa4\u7684\u914d\u7f6e\u9879\u6539\u4e3a KAFKA_BOOTSTRAP-SERVERS\uff1aip1:9092,ip2:9092,ip3:9092\u3002","text":"

    cd /opt/metersphere \u9700\u4fee\u6539\u6587\u4ef6:

    • vi docker-compose-project-management.yml
    • vi docker-compose-ui-test.yml
    • vi docker-compose-gateway.yml
    • vi docker-compose-workstation.yml
    • vi docker-compose-report-stat.yml
    • vi docker-compose-api-test.yml
    • vi docker-compose-seleniarm.yml
    • vi docker-compose-system-setting.yml
    • vi docker-compose-data-streaming.yml
    • vi docker-compose-performance-test.yml
    • vi docker-compose-test-track.yml

    "},{"location":"installation/build_kafka/#5-msctl-reload-kraft","title":"5 \u6240\u6709\u914d\u7f6e\u4fee\u6539\u5b8c\u6210\uff0cmsctl reload \u751f\u6548\u5373\u53ef\u521b\u5efa kraft \u96c6\u7fa4\u3002","text":"

    \u4ee5\u4e0a\u5185\u5bb9\u914d\u7f6e\u597d\u4e4b\u540e\uff0c\u4f7f\u7528 msctl reload \u547d\u4ee4\u91cd\u65b0\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\uff0c\u5373\u53ef\u521b\u5efa kraft \u96c6\u7fa4\u3002

    "},{"location":"installation/build_node_controller/","title":"\u90e8\u7f72Node-Controller\u96c6\u7fa4","text":"

    \u5982\u91c7\u7528\u72ec\u7acb\u4e3b\u673a\u538b\u6d4b\uff0c\u9700\u8981\u90e8\u7f72 Node-Controller\uff0c\u90e8\u7f72\u8fc7\u7a0b\u53ef\u4ee5\u53c2\u8003 https://metersphere.io/docs/v2.x/installation/online_installation/ \u3002 \u8fdb\u5165\u5b89\u88c5\u5305\u6240\u5728\u76ee\u5f55\uff0c\u5c06 install.conf \u4e2d\u4fee\u6539\u5b89\u88c5\u6a21\u5f0f MS_INSTALL_MODE \u7684\u503c(\u7531\u539f\u5148\u7684 allinone \u6539\u4e3a node-controller)\uff0c\u5b89\u88c5\u5305\u8def\u5f84\u4e0b\u6267\u884c /bin/bash install.sh \u5373\u53ef\u3002

    • \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u6d4b\u8bd5\u8d44\u6e90\u6c60\u3011\u6dfb\u52a0\u8d44\u6e90\u6c60\uff0c\u586b\u5199\u5b8c\u6574\u8d44\u6e90\u6c60 ip\u3001\u7aef\u53e3\u4fe1\u606f\u5373\u53ef\u3002
    • \u5982\u679c\u6d4b\u8bd5\u8d44\u6e90\u5e76\u53d1\u8981\u6c42\u8f83\u5927\uff0c\u53ef\u4ee5\u5c06\u8d44\u6e90\u6c60\u4e2d JMeter \u7684\u5185\u5b58\u914d\u7f6e\uff0c\u5efa\u8bae\u8c03\u6574\u5230 4G \u4ee5\u4e0a\u3002-Xms4g -Xmx4g -XX:MaxMetaspaceSize=256m
    • \u6700\u540e\uff0c\u8d44\u6e90\u6c60\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u9700\u8981\u5728\u8d44\u6e90\u6c60\u5217\u8868\u542f\u7528\u8d44\u6e90\u6c60\uff0c\u6821\u9a8c\u901a\u8fc7\u5373\u53ef\u4f7f\u7528\u3002

    "},{"location":"installation/cli/","title":"\u547d\u4ee4\u884c\u5de5\u5177","text":"

    MeterSphere \u9ed8\u8ba4\u5185\u7f6e\u4e86\u547d\u4ee4\u884c\u8fd0\u7ef4\u5de5\u5177\u3010msctl\u3011\uff0c\u901a\u8fc7\u6267\u884c\u3010msctl help\u3011\u547d\u4ee4\uff0c\u53ef\u4ee5\u67e5\u770b\u76f8\u5173\u7684\u5e2e\u52a9\u6587\u6863\u3002

    MeterSphere \u63a7\u5236\u811a\u672c\n\nUsage: \n  ./msctl.sh [COMMAND] [ARGS...]\n  ./msctl.sh --help\n\nCommands: \n  status    \u67e5\u770b MeterSphere \u670d\u52a1\u8fd0\u884c\u72b6\u6001\n  start     \u542f\u52a8 MeterSphere \u670d\u52a1\n  stop      \u505c\u6b62 MeterSphere \u670d\u52a1\n  restart   \u91cd\u542f MeterSphere \u670d\u52a1\n  reload    \u91cd\u65b0\u52a0\u8f7d MeterSphere \u670d\u52a1\uff08\u4fee\u6539\u914d\u7f6e\u6587\u4ef6 /opt/metersphere/.env \u65f6\uff0c\u8fd0\u884c\u6b64\u547d\u4ee4\u4f7f\u914d\u7f6e\u751f\u6548\uff09\n  upgrade   \u5347\u7ea7 MeterSphere \u81f3\u6700\u65b0\u7248\u672c\n  upgrade [RELEASE]  \u6839\u636e\u7248\u672c\u53f7\u641c\u7d22\u79bb\u7ebf\u5305\uff0c\u5347\u7ea7 MeterSphere \u81f3\u5bf9\u5e94\u7248\u672c\n  uninstall \u5378\u8f7d MeterSphere \u670d\u52a1\n  version   \u67e5\u770b MeterSphere \u7248\u672c\u4fe1\u606f\n
    "},{"location":"installation/kubernetes_installation/","title":"Kubernetes \u90e8\u7f72","text":""},{"location":"installation/kubernetes_installation/#1-helm-charts","title":"1 Helm Charts \u5728\u7ebf\u90e8\u7f72","text":"
    kubectl create ns ms\nhelm repo add bitnami https://charts.bitnami.com/bitnami\nhelm repo add metersphere https://metersphere.github.io/helm-chart/\n# \u4ece chart \u4ed3\u5e93\u4e2d\u66f4\u65b0\u672c\u5730\u53ef\u7528chart\u7684\u4fe1\u606f\nhelm repo update  \nhelm install metersphere metersphere/metersphere -n ms\n
    "},{"location":"installation/kubernetes_installation/#2-helm-charts","title":"2 Helm Charts \u79bb\u7ebf\u90e8\u7f72","text":"
    • \u5bfc\u5165\u955c\u50cf \u4e0b\u8f7d MeterSphere \u6700\u65b0\u7248\u672c\u7684\u79bb\u7ebf\u5b89\u88c5\u5305\u5e76\u4e14\u89e3\u538b\uff0c\u5c06\u5b89\u88c5\u5305\u91cc image \u76ee\u5f55\u4e0b\u7684\u955c\u50cf tar \u5305\u4e0a\u4f20\u5230 kubernetes \u7684\u955c\u50cf\u5e93\u91cc\u6216\u8005\u624b\u52a8 load \u5230 kubernetes \u5404\u4e2a\u5bbf\u4e3b\u673a\u8282\u70b9\u4e0a\u3002 MeterSphere \u79bb\u7ebf\u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://community.fit2cloud.com/#/products/metersphere/downloads

    • \u4e0b\u8f7d\u79bb\u7ebf Chart \u5305 helm-chart \u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://github.com/metersphere/helm-chart/releases\u5982\uff1ahttps://github.com/metersphere/helm-chart/releases/download/metersphere-2.3.0/metersphere-2.3.0.tgz

    • \u8fdb\u884c\u5b89\u88c5

      helm install metersphere metersphere-2.3.0.tgz -n ms\n\n# \u6839\u636e\u9700\u8981\u4fee\u6539 values.yml \u6587\u4ef6\u914d\u7f6e\u540e\u5b89\u88c5\nhelm install metersphere metersphere-2.3.0.tgz -f metersphere/values.yml -n ms\n

    "},{"location":"installation/kubernetes_installation/#3-helm-charts","title":"3 Helm Charts \u5728\u7ebf\u5347\u7ea7","text":"
    helm repo update  # \u4ece chart \u4ed3\u5e93\u4e2d\u66f4\u65b0\u672c\u5730\u53ef\u7528chart\u7684\u4fe1\u606f\nhelm upgrade metersphere metersphere/metersphere -n ms\n
    "},{"location":"installation/kubernetes_installation/#4-helm-charts","title":"4 Helm Charts \u79bb\u7ebf\u5347\u7ea7","text":"
    • \u5bfc\u5165\u65b0\u7248\u672c\u955c\u50cf \u4e0b\u8f7d MeterSphere \u6700\u65b0\u7248\u672c\u7684\u79bb\u7ebf\u5b89\u88c5\u5305\u5e76\u4e14\u89e3\u538b\uff0c\u5c06\u5b89\u88c5\u5305\u91cc image \u76ee\u5f55\u4e0b\u7684\u955c\u50cf tar \u5305\u4e0a\u4f20\u5230 kubernetes \u7684\u955c\u50cf\u5e93\u91cc\u6216\u8005\u624b\u52a8 load \u5230 kubernetes \u5404\u4e2a\u5bbf\u4e3b\u673a\u8282\u70b9\u4e0a\u3002 MeterSphere \u79bb\u7ebf\u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://community.fit2cloud.com/#/products/metersphere/downloads

    • \u4e0b\u8f7d\u6700\u65b0\u79bb\u7ebf Chart \u5305 helm-chart \u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://github.com/metersphere/helm-chart/releases \u5982\uff1ahttps://github.com/metersphere/helm-chart/releases/download/metersphere-2.3.0/metersphere-2.3.0.tgz

    • \u8fdb\u884c\u5347\u7ea7

      helm upgrade metersphere metersphere-2.3.0.tgz -n ms\n\n# \u6839\u636e\u9700\u8981\u4fee\u6539 values.yml \u6587\u4ef6\u914d\u7f6e\u540e\u5347\u7ea7\nhelm upgrade metersphere metersphere-2.3.0.tgz -f metersphere/values.yml -n ms\n

    "},{"location":"installation/kubernetes_installation/#5-valuesyaml","title":"5 values.yaml","text":"

    \u4ee5\u4e0b values.yaml \u5185\u5bb9\u5bf9\u5e94\u7248\u672c\u4e3a v2.3.0\uff0c\u6700\u65b0\u7684 values.yaml \u53ef\u5230 github \u4e0a metersphere helm-chart \u4ed3\u5e93\u4e2d\u67e5\u627e\u5bf9\u5e94\u7248\u672c\u7684 values.yaml\uff0c\u4f8b\u5982\uff1av2.9.1 \u7248\u672c value.yaml \u6587\u4ef6\u4e3a https://github.com/metersphere/helm-chart/blob/metersphere-2.9.1/charts/metersphere/values.yaml

    ingress: # \u4e0d\u4f7f\u7528 ingress \u53ef\u4ee5\u5173\u95ed\n  enabled: true\n  host: ms-dev.apps.metersphere.com\n  annotations: {}\n    ## example for ingress annotions.\n    # kubernetes.io/ingress.class: nginx\n    # kubernetes.io/tls-acme: \"true\"      \n  https:\n    enabled: false\n    secretName: \"\"\n\ncommon:\n  imagePrefix: \"registry.cn-qingdao.aliyuncs.com/metersphere/\"\n  imagePullSecrets: nil\n  storageClass: default\n  imageTag: v2.3.0     # \u5b89\u88c5\u7684\u7248\u672c\u53f7\n  imagePullPolicy: Always  # \u955c\u50cf\u62c9\u53d6\u7b56\u7565\n  properties: |-\n    ## DATABASE\n    spring.datasource.url=jdbc:mysql://{{.Values.mysql.host}}:{{.Values.mysql.port}}/metersphere?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true\n    spring.datasource.username={{.Values.mysql.username}}\n    spring.datasource.password={{.Values.mysql.password}}\n    ## redis\n    spring.session.store-type=redis\n    spring.redis.host={{.Values.redis.host}}\n    spring.redis.port={{.Values.redis.port}}\n    spring.redis.database={{.Values.redis.database}}\n    spring.redis.password={{.Values.redis.password}}\n    ## KAFKA\n    kafka.partitions=1\n    kafka.replicas=1\n    kafka.topic={{.Values.kafka.metricTopic}}\n    kafka.bootstrap-servers={{.Values.kafka.host}}.{{.Release.Namespace}}:{{.Values.kafka.port}}\n    kafka.log.topic={{.Values.kafka.logTopic}}\n    kafka.test.topic={{.Values.kafka.testTopic}}\n    kafka.report.topic={{.Values.kafka.reportTopic}}\n    tcp.mock.port=10000\n    ## minio\n    minio.endpoint=http://{{.Values.minio.host}}:{{.Values.minio.port}}\n    minio.access-key={{.Values.minio.username}}\n    minio.secret-key={{.Values.minio.password}}\n    ## JMETER\n    jmeter.image={{ .Values.common.imagePrefix }}{{.Values.jmeter.image}}:{{.Values.jmeter.imageTag}}\n    jmeter.pod.threads.limit=500\n    ## K8S\n    k8s.node-controller-image={{ .Values.common.imagePrefix }}{{.Values.nodeController.image}}:{{.Values.common.imageTag}}\n    ## spring cloud\n    eureka.client.service-url.defaultZone=http://{{.Values.eureka.host}}:{{.Values.eureka.port}}/eureka/\n    logger.sql.level=info\napiTest:  # \u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\n  enabled: true\n  image: api-test\n  replicas: 1\n\nperformanceTest: # \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\n  enabled: true\n  image: performance-test\n  replicas: 1\n\nsystemSetting: # \u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\n  enabled: true\n  image: system-setting\n  replicas: 1\n\nprojectManagement: # \u9879\u76ee\u7ba1\u7406\u6a21\u5757,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\u9879\u76ee\u7ba1\u7406\u6a21\u5757\n  enabled: true\n  image: project-management\n  replicas: 1\n\nreportStat:  # \u62a5\u544a\u7ba1\u7406\u6a21\u5757,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\u62a5\u544a\u7ba1\u7406\u6a21\u5757\n  enabled: true\n  image: report-stat\n  replicas: 1\n\ntestTrack: # \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\n  enabled: true\n  image: test-track\n  replicas: 1\n\ngateway: # \u7f51\u5173,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\n  enabled: true\n  image: gateway\n  replicas: 1\n\neureka: # \u670d\u52a1\u6ce8\u518c\u4e2d\u5fc3,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\n  enabled: true\n  image: eureka\n  host: metersphere-eureka\n  port: 8761\n  replicas: 1\n\ndataStreaming: \n  enabled: true\n  image: data-streaming\n  replicas: 1\n  properties: |-\n    ## DATABASE\n    spring.datasource.url=jdbc:mysql://{{.Values.mysql.host}}:{{.Values.mysql.port}}/metersphere?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true\n    spring.datasource.username={{.Values.mysql.username}}\n    spring.datasource.password={{.Values.mysql.password}}\n    ## KAFKA\n    kafka.partitions=1\n    kafka.replicas=1\n    kafka.topic={{.Values.kafka.metricTopic}}\n    kafka.bootstrap-servers={{.Values.kafka.host}}:{{.Values.kafka.port}}\n    kafka.log.topic={{.Values.kafka.logTopic}}\n    kafka.test.topic={{.Values.kafka.testTopic}}\n    kafka.report.topic={{.Values.kafka.reportTopic}}\n    jmeter.report.granularity=5000\n    ## minio\n    minio.endpoint=http://{{.Values.minio.host}}:{{.Values.minio.port}}\n    minio.access-key={{.Values.minio.username}}\n    minio.secret-key={{.Values.minio.password}}\nnodeController:\n  enabled: true\n  image: node-controller\n  replicas: 1\n  properties: |-\n    ## TBD\njmeter:\n  image: jmeter-master\n  imageTag: 5.4.3-ms5-jdk11\n\nlogPersistence:\n  enabled: true\n  accessModes: ReadWriteOnce\n  size: 10Gi\n\ndataPersistence:\n  enabled: true\n  accessModes: ReadWriteOnce\n  size: 10Gi\n\nmysql:  # \u5f15\u7528\u5916\u90e8\u6570\u636e\u5e93\u65f6\uff0c\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5mysql\n  enabled: true\n  image: mysql\n  imageTag: \"8.0.30\"\n  host: metersphere-mysql\n  port: 3306\n  username: root\n  password: Password123@mysql\n  persistence:\n    enabled: true\n    accessModes: ReadWriteOnce\n    size: 20Gi\nminio:\n  enabled: true\n  image: minio\n  imageTag: \"latest\"\n  username: admin\n  password: Password123@minio\n  host: metersphere-minio\n  port: 9000\n  persistence:\n    enabled: true\n    accessModes: ReadWriteOnce\n    size: 20Gi\nredis:   # \u5f15\u7528\u5916\u90e8redis\u65f6\uff0c\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5redis\n  enabled: true\n  image: redis\n  imageTag: \"6.2.6\"\n  password: Password123@redis\n  host: metersphere-redis\n  port: 6379\n  database: 1\n  persistence:\n    enabled: true\n    accessModes: ReadWriteOnce\n    size: 10Gi\nkafka:   # \u5f15\u7528\u5916\u90e8kafka\u65f6\uff0c\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5kafka\n  enabled: true\n  fullnameOverride: metersphere-kafka\n  host: metersphere-kafka\n  port: 9092\n  metricTopic: JMETER_METRICS\n  logTopic: JMETER_LOGS\n  testTopic: LOAD_TESTS\n  reportTopic: JMETER_REPORTS\n  persistence:\n    enabled: false\n  logPersistence:\n    enabled: false\n  logFlushIntervalMessages: _10000\n  logFlushIntervalMs: 1000\n  logRetentionBytes: _1073741824\n  logRetentionCheckIntervalMs: 300000\n  logRetentionHours: 168\n  logSegmentBytes: _1073741824\n  maxMessageBytes: _1000012\n  livenessProbe:\n    initialDelaySeconds: 20\n    periodSeconds: 15\n    timeoutSeconds: 15\n  readinessProbe:\n    initialDelaySeconds: 20\n    periodSeconds: 15\n    timeoutSeconds: 15\n  externalAccess:\n    enabled: true\n    service:\n      type: NodePort\n      useHostIPs: true\n    autoDiscovery:\n      enabled: true\n  serviceAccount:\n    create: true\n  rbac:\n    create: true\n  zookeeper:\n    enabled: true\n    logLevel: ERROR\n    persistence:\n      enabled: false\n    fullnameOverride: metersphere-zookeeper\n  extraEnvVars:\n    - name: FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS\n      value: \"true\"\nzookeeper:\n  enabled: true\n
    "},{"location":"installation/kubernetes_installation/#51-kafka","title":"5.1 \u5f15\u7528\u5916\u90e8 Kafka","text":"
    vim values.yaml\n\u5c06 values.yaml \u4e2d zookeeper.enabled \u548c kafka.enabled \u6539\u4e3a false\ncommon.kafka.host\u3001common.kafka.port \u6539\u4e3a\u5916\u90e8 kafka \u7684\u5730\u5740\u548c\u7aef\u53e3\n
    "},{"location":"installation/kubernetes_installation/#52-mysql","title":"5.2 \u5f15\u7528\u5916\u90e8 MySQL","text":"
    vim values.yaml\n\u5c06 values.yaml \u4e2d mysql.enabled \u6539\u4e3a false\ncommon.host.host\u3001common.host.port\u3001common.host.username\u3001common.host.password \u6539\u4e3a\u5916\u90e8 mysql \u7684\u5730\u5740\u3001\u7aef\u53e3\u53ca\u7528\u6237\u540d\u3001\u5bc6\u7801\n
    "},{"location":"installation/kubernetes_installation/#53-redis","title":"5.3 \u5f15\u7528\u5916\u90e8 Redis","text":"
    vim values.yaml\n\u5c06 values.yaml \u4e2d redis.enabled \u6539\u4e3a false\ncommon.redis.host\u3001common.redis.port\u3001common.redis.password \u6539\u4e3a\u5916\u90e8 redis \u7684\u5730\u5740\u3001\u7aef\u53e3\u548c\u5bc6\u7801\n
    "},{"location":"installation/kubernetes_installation/#54-valueyaml","title":"5.4 \u4f7f\u7528\u4fee\u6539\u540e\u7684 value.yaml \u90e8\u7f72","text":"
    helm -n ms install metersphere ./metersphere-2.3.0.tgz -f values.yaml\n
    "},{"location":"installation/kubernetes_installation/#55-node-port","title":"5.5 \u521b\u5efa Node Port \u8bbf\u95ee\u65b9\u5f0f","text":"

    \u4f7f\u7528\u547d\u4ee4 kubectl get svc -n ms \u53ef\u67e5\u770b metersphere-gateway \u6240\u5360\u7528\u7684\u7aef\u53e3\u53f7\u3002\u5982\u679c\u4e0d\u4f7f\u7528 ingress \u7684\u8bbf\u95ee\u65b9\u5f0f\uff0c\u53ef\u4ee5\u521b\u5efa\u4e00\u4e2a nodeport\u3002

    vi ms-gateway-nodeport.yaml\n\napiVersion: v1\nkind: Service\nmetadata:\n  name: metersphere-gateway-nodeport\n  namespace: ms\nspec:\n  ports:\n    - name: metersphere-gateway\n      protocol: TCP\n      port: 8000\n      targetPort: 8000\n      nodePort: 30801\n  type: NodePort\n  selector:\n    app: metersphere-gateway\n\nkubectl create -f ms-gateway-nodeport.yaml \n

    \u8bbf\u95ee MeterSphere \u9875\u9762: http://nodeIP:30801

    "},{"location":"installation/network_port/","title":"\u7f51\u7edc\u7aef\u53e3\u8981\u6c42","text":"

    MeterSphere \u4f5c\u4e3a\u4e00\u7ad9\u5f0f\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\uff0c\u5176\u6b63\u5e38\u8fd0\u884c\u9700\u8981\u5f00\u653e\u5982\u4e0b\u7f51\u7edc\u7aef\u53e3\uff0c\u7ba1\u7406\u5458\u53ef\u6839\u636e\u5b9e\u9645\u73af\u5883\u4e2d MeterSphere \u7ec4\u4ef6\u90e8\u7f72\u7684\u65b9\u6848\uff0c\u5728\u7f51\u7edc\u4fa7\u548c\u4e3b\u673a\u4fa7\u5f00\u653e\u76f8\u5173\u7aef\u53e3\u3002

    \u7ec4\u4ef6 \u9ed8\u8ba4\u7aef\u53e3 \u8bf4\u660e GateWay 8081 API \u7f51\u5173\u9879\u76ee\uff0c\u6d4f\u89c8\u5668\u8bbf\u95ee\u7aef\u53e3 Node Controller 8082 \u4e3a\u63a5\u53e3\u6216\u8005\u6027\u80fd\u6d4b\u8bd5\u63d0\u4f9b\u72ec\u7acb\u8282\u70b9\u7c7b\u578b\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60 Prometheus 9090 \u6536\u96c6\u538b\u529b\u673a\u53ca\u88ab\u6d4b\u7cfb\u7edf\u7684\u76d1\u63a7\u6570\u636e Node Exporter 9100 \u7528\u4e8e\u91c7\u96c6 Node \u7684\u8fd0\u884c\u6307\u6807 Selenium Grid 4444 \u4e3a UI\u81ea\u52a8\u5316\u6d4b\u8bd5\u63d0\u4f9b\u8fd0\u884c\u73af\u5883\uff0c\u652f\u6301\u5206\u5e03\u5f0f\u62d3\u5c55 TCP Mock 10000-10010 TCP Mock \u5bf9\u5916\u63d0\u4f9b\u670d\u52a1\u9700\u8981\u5f00\u653e\u7684\u7aef\u53e3\u8303\u56f4 MySQL 3306 MeterSphere \u9ed8\u8ba4\u5b89\u88c5\u7684\u6570\u636e\u5e93\u5bf9\u5916\u63d0\u4f9b\u7684\u7aef\u53e3 Redis 6379 MeterSphere \u9ed8\u8ba4\u5b89\u88c5\u7684 Redis \u5bf9\u5916\u63d0\u4f9b\u7684\u7aef\u53e3 Minio 9000 MeterSphere \u9ed8\u8ba4\u5b89\u88c5\u7684\u5206\u5e03\u5f0f\u5bf9\u8c61\u5b58\u50a8\u5bf9\u5916\u63d0\u4f9b\u7684\u7aef\u53e3 Kafka 9092 MeterSphere \u9ed8\u8ba4\u5b89\u88c5\u7684\u6d88\u606f\u4e2d\u95f4\u4ef6\u5bf9\u5916\u63d0\u4f9b\u7684\u7aef\u53e3"},{"location":"installation/offline_installation/","title":"\u79bb\u7ebf\u5b89\u88c5","text":""},{"location":"installation/offline_installation/#1","title":"1 \u73af\u5883\u8981\u6c42","text":"

    \u90e8\u7f72\u670d\u52a1\u5668\u8981\u6c42

    • \u64cd\u4f5c\u7cfb\u7edf: CentOS 7.x / Redhat 7.x
    • CPU/\u5185\u5b58: \u6700\u4f4e\u8981\u6c42 4C8G \uff0c\u63a8\u8350 8C16G(\u4f01\u4e1a\u7248\u6700\u4f4e\u914d\u7f6e 8C16G)
    • \u78c1\u76d8\u7a7a\u95f4: 50G
    "},{"location":"installation/offline_installation/#2","title":"2 \u4e0b\u8f7d\u5b89\u88c5\u5305","text":"

    \u8bf7\u81ea\u884c\u4e0b\u8f7d MeterSphere \u6700\u65b0\u7248\u672c\u7684\u79bb\u7ebf\u5b89\u88c5\u5305\uff0c\u5e76\u590d\u5236\u5230\u76ee\u6807\u673a\u5668\u7684 /tmp \u76ee\u5f55\u4e0b\u3002 \u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://community.fit2cloud.com/#/products/metersphere/downloads

    "},{"location":"installation/offline_installation/#3","title":"3 \u89e3\u538b\u5b89\u88c5\u5305","text":"

    \u4ee5 root \u7528\u6237 ssh \u767b\u5f55\u5230\u76ee\u6807\u673a\u5668\uff0c \u5e76\u6267\u884c\u5982\u4e0b\u547d\u4ee4\u3002

    cd /tmp\n# \u89e3\u538b\u5b89\u88c5\u5305\ntar zxvf metersphere-offline-installer-v2.3.0.tar.gz\n

    "},{"location":"installation/offline_installation/#4","title":"4 \u4fee\u6539\u5b89\u88c5\u914d\u7f6e","text":""},{"location":"installation/offline_installation/#41","title":"4.1 \u4fee\u6539\u914d\u7f6e","text":"

    \u5728\u5b89\u88c5\u5305\u89e3\u538b\u540e\u7684\u76ee\u5f55\uff0c\u7f16\u8f91\u4fee\u6539\u5b89\u88c5\u53c2\u6570\u3002

    cd metersphere-offline-installer-v2.3.0\nvi install.conf\n

    "},{"location":"installation/offline_installation/#42","title":"4.2 \u5b89\u88c5\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e","text":"

    \u5b89\u88c5\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e

    \u5982\u679c\u65e0\u7279\u6b8a\u9700\u6c42\u53ef\u4ee5\u4e0d\u8fdb\u884c\u4fee\u6539\u91c7\u7528\u9ed8\u8ba4\u53c2\u6570\u5b89\u88c5\uff08\u9996\u6b21\u5b89\u88c5\u53ef\u4fee\u6539\u914d\u7f6e install.conf \u6587\u4ef6\u4e2d\u76f8\u5173\u914d\u7f6e\uff0c\u4fee\u6539\u5b8c\u540e\u6267\u884c /bin/bash install.sh \u547d\u4ee4\u8fdb\u884c\u5b89\u88c5\uff0c\u5df2\u5b89\u88c5\u6210\u529f\u5982\u9700\u518d\u4fee\u6539\u914d\u7f6e\u53c2\u6570\uff0c\u9700\u8981\u5230 ${MS_BASE}/metersphere/.env \u91cc\u4fee\u6539\uff0c\u4fee\u6539\u5b8c\u540e\u6267\u884c msctl reload \u5373\u53ef\u91cd\u65b0\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\uff09\u3002

    # \u57fa\u7840\u914d\u7f6e\n## \u5b89\u88c5\u8def\u5f84\uff0c MeterSphere \u914d\u7f6e\u53ca\u6570\u636e\u6587\u4ef6\u9ed8\u8ba4\u5c06\u5b89\u88c5\u5728 ${MS_BASE}/metersphere \u76ee\u5f55\u4e0b\nMS_BASE=/opt\n## MeterSphere \u4f7f\u7528\u7684 docker \u7f51\u7edc\u7f51\u6bb5\u4fe1\u606f\nMS_DOCKER_SUBNET=172.30.10.0/24\n## \u955c\u50cf\u524d\u7f00\uff0c MeterSphere \u76f8\u5173\u7ec4\u4ef6\u4f7f\u7528\u7684 Docker \u955c\u50cf\u524d\u7f00\uff0c \u4f8b\u5982 registry.cn-qingdao.aliyuncs.com/metersphere\nMS_IMAGE_PREFIX=registry.cn-qingdao.aliyuncs.com/metersphere\n## \u955c\u50cf\u6807\u7b7e\uff0c MeterSphere \u76f8\u5173\u7ec4\u4ef6\u4f7f\u7528\u7684 Docker \u955c\u50cf\u6807\u7b7e\nMS_IMAGE_TAG=v2.3.0\n## \u6027\u80fd\u6d4b\u8bd5\u4f7f\u7528\u7684 JMeter \u955c\u50cf\nMS_JMETER_IMAGE=${MS_IMAGE_PREFIX}/jmeter-master:5.5-ms2-jdk11\n## \u5b89\u88c5\u6a21\u5f0f allinone | server | node-controller | selenium-hub\uff0c \u5176\u4e2d selenium-hub \u548c node-controller \u53ef\u4ee5\u5355\u72ec\u5728\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u4f5c\u4e3a\u6267\u884c\u673a\u4f7f\u7528\nMS_INSTALL_MODE=allinone\n## MeterSphere \u4e3b\u7a0b\u5e8f\u7684 HTTP \u670d\u52a1\u76d1\u542c\u7aef\u53e3\nMS_SERVER_PORT=8081\n## MeterSphere Node-Controller \u7ec4\u4ef6\u7684 HTTP \u670d\u52a1\u76d1\u542c\u7aef\u53e3\nMS_NODE_CONTROLLER_PORT=8082\nMS_NODEEXPORTER_PORT=9100\n\n# \u6570\u636e\u5e93\u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8\u6570\u636e\u5e93\nMS_EXTERNAL_MYSQL=false\n## \u6570\u636e\u5e93\u5730\u5740\nMS_MYSQL_HOST=mysql\n## \u6570\u636e\u5e93\u7aef\u53e3\nMS_MYSQL_PORT=3306\n## \u6570\u636e\u5e93\u5e93\u540d\nMS_MYSQL_DB=metersphere\n## \u6570\u636e\u5e93\u7528\u6237\u540d\nMS_MYSQL_USER=root\n## \u6570\u636e\u5e93\u5bc6\u7801\nMS_MYSQL_PASSWORD=Password123@mysql\n\n# Prometheus \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8Prometheus\nMS_EXTERNAL_PROM=false\nMS_PROMETHEUS_PORT=9090\n\n# Redis \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8Redis\nMS_EXTERNAL_REDIS=false\n## Redis \u7aef\u53e3\nMS_REDIS_PORT=6379\n## Redis \u5bc6\u7801\nMS_REDIS_PASSWORD=Password123@redis\n## Redis\u5730\u5740\nMS_REDIS_HOST=$(hostname -I|cut -d\" \" -f 1)\n\n# Kafka \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8 Kafka\nMS_EXTERNAL_KAFKA=false\n## Kafka \u5730\u5740\nMS_KAFKA_HOST=10.1.*.*\n## Kafka \u7aef\u53e3\nMS_KAFKA_PORT=9092\n## \u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_TOPIC=JMETER_METRICS\n## \u6027\u80fd\u6d4b\u8bd5\u65e5\u5fd7\u6570\u636e\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_LOG_TOPIC=JMETER_LOGS\n## \u6027\u80fd\u6d4b\u8bd5\u5b9a\u65f6\u4efb\u52a1\u901a\u77e5\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_TEST_TOPIC=LOAD_TESTS\n## \u91cd\u6784\u540e\u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_REPORT_TOPIC=JMETER_REPORTS\n\n# UI\u5bb9\u5668\u914d\u7f6e\n## \u662f\u5426\u542f\u52a8UI\u6a21\u5757\nMS_UI_ENABLED=false\n## \u662f\u5426\u542f\u52a8\u5de5\u4f5c\u53f0\u5bb9\u5668\nMS_WORKSTATION_ENABLED=false\n\n# minio \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8minio\nMS_EXTERNAL_MINIO=false\n## minio \u5730\u5740\nMS_MINIO_ENDPOINT=http://minio:9000\n## minio access\nMS_MINIO_ACCESS_KEY=admin\n## minio \u5bc6\u7801\nMS_MINIO_SECRET_KEY=Password123@minio\n\n# \u4fee\u6539\u7ec4\u4ef6\u6700\u5927\u5185\u5b58\u9650\u5236\uff08v2.7\u4ee5\u4e0a\u53ef\u4ee5\u5728 /opt/metersphere/.env \u91cc\u4fee\u6539\u67d0\u5bb9\u5668\u670d\u52a1\u7684\u6700\u5927\u5185\u5b58\u9650\u5236\uff0c\u5728/opt/metersphere/ \u76ee\u5f55\u4e0b\u7684docker-compose\u5206\u522b\u5b9a\u4e49\u5404\u81ea\u670d\u52a1\u7684\u6700\u5927\u5c5e\u6027\u503c\uff0c\u5982 api-test \u7684\u5c5e\u6027\u5728 docker-compose-api-test.yml \u4e2d\u5b9a\u4e49\uff0c\u4e3a MS_API_MEM_LIMIT\uff09\nMS_API_MEM_LIMIT=1073741824\uff08\u9ed8\u8ba4\u4e3a 1g\uff09\n

    "},{"location":"installation/offline_installation/#43","title":"4.3 \u6570\u636e\u5e93\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e","text":"

    \u6ce8\u610f

    MeterSphere \u4f7f\u2f64 MySQL 8.0 \u5bf9\u7cfb\u7edf\u6570\u636e\u8fdb\u2f8f\u5b58\u50a8\u3002\u540c\u65f6 MeterSphere \u5bf9\u6570\u636e\u5e93\u90e8\u5206\u914d\u7f6e\u9879\u6709\u8981\u6c42\uff0c\u8bf7\u53c2\u8003\u4e0b\u9644\u7684\u6570\u636e\u5e93\u914d\u7f6e\uff0c\u4fee\u6539\u73af\u5883\u4e2d\u7684\u6570\u636e\u5e93\u914d\u7f6e\u6587\u4ef6\u3002

    [mysqld]\ndatadir=/var/lib/mysql\n\ndefault-storage-engine=INNODB\ncharacter_set_server=utf8mb4\nlower_case_table_names=1\nperformance_schema=off\ntable_open_cache=128\ntransaction_isolation=READ-COMMITTED\nmax_connections=1000\nmax_connect_errors=6000\nmax_allowed_packet=64M\ninnodb_file_per_table=1\ninnodb_buffer_pool_size=512M\ninnodb_flush_method=O_DIRECT\ninnodb_lock_wait_timeout=1800\n\nserver-id=1\nlog-bin=mysql-bin\nexpire_logs_days = 2\nbinlog_format=mixed\n\ncharacter-set-client-handshake = FALSE\ncharacter-set-server=utf8mb4\ncollation-server=utf8mb4_general_ci\ninit_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci'\n\nsql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\n\nskip-name-resolve\n\n[mysql]\ndefault-character-set=utf8mb4\n\n[mysql.server]\ndefault-character-set=utf8mb4\n

    \u8bf7\u53c2\u8003\u6587\u6863\u4e2d\u7684\u5efa\u5e93\u8bed\u53e5\u521b\u5efa MeterSphere \u4f7f\u7528\u7684\u6570\u636e\u5e93\uff0cmetersphere-server \u670d\u52a1\u542f\u52a8\u65f6\u4f1a\u81ea\u52a8\u5728\u914d\u7f6e\u7684\u5e93\u4e2d\u521b\u5efa\u6240\u9700\u7684\u8868\u7ed3\u6784\u53ca\u521d\u59cb\u5316\u6570\u636e\u3002

    CREATE DATABASE `metersphere` /*!40100 DEFAULT CHARACTER SET utf8mb4 */\n

    \u5b89\u88c5\u811a\u672c\u9ed8\u8ba4\u4f7f\u7528 /opt/metersphere \u76ee\u5f55\u4f5c\u4e3a\u5b89\u88c5\u76ee\u5f55\uff0cMeterSphere \u7684\u914d\u7f6e\u6587\u4ef6\u3001\u6570\u636e\u53ca\u65e5\u5fd7\u7b49\u5747\u5b58\u653e\u5728\u8be5\u5b89\u88c5\u76ee\u5f55\u3002

    "},{"location":"installation/offline_installation/#44","title":"4.4 \u5b89\u88c5\u76ee\u5f55\u7ed3\u6784\u8bf4\u660e","text":"

    \u5b89\u88c5\u76ee\u5f55\u7ed3\u6784\u8bf4\u660e

    /opt/metersphere/\n\u251c\u2500\u2500 bin                                         #-- \u5b89\u88c5\u8fc7\u7a0b\u4e2d\u9700\u8981\u52a0\u8f7d\u5230\u5bb9\u5668\u4e2d\u7684\u811a\u672c\n\u251c\u2500\u2500 compose_files                               #-- \u6839\u636e\u4e0d\u540c\u7684\u5b89\u88c5\u6a21\u5f0f\uff0c\u4fdd\u5b58\u9700\u8981\u4f7f\u7528\u5230\u7684 compose \u6587\u4ef6\u4fe1\u606f\n\u251c\u2500\u2500 conf                                        #-- MeterSphere \u5404\u7ec4\u4ef6\u53ca\u6570\u636e\u5e93\u7b49\u4e2d\u95f4\u4ef6\u7684\u914d\u7f6e\u6587\u4ef6\n\u251c\u2500\u2500 data                                        #-- MeterSphere \u5404\u7ec4\u4ef6\u53ca\u6570\u636e\u5e93\u7b49\u4e2d\u95f4\u4ef6\u7684\u6570\u636e\u6301\u4e45\u5316\u76ee\u5f55\n\u251c\u2500\u2500 docker-compose-gateway.yml                  #-- MeterSphere \u7684 API \u7f51\u5173\n\u251c\u2500\u2500 docker-compose-eureka.yml                   #-- MeterSphere \u7684\u670d\u52a1\u6ce8\u518c\u4e2d\u5fc3\n\u251c\u2500\u2500 docker-compose-base.yml                     #-- MeterSphere \u57fa\u7840 Docker Compose \u6587\u4ef6\uff0c\u5b9a\u4e49\u4e86\u7f51\u7edc\u7b49\u57fa\u7840\u4fe1\u606f \n\u251c\u2500\u2500 docker-compose-workstation.yml              #-- MeterSphere \u5de5\u4f5c\u53f0\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-test-track.yml               #-- MeterSphere \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-api-test.yml                 #-- MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-ui-test.yml                  #-- MeterSphere UI \u6d4b\u8bd5\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-performance-test.yml         #-- MeterSphere \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-report-stat.yml              #-- MeterSphere \u62a5\u8868\u7edf\u8ba1\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-project-management.yml       #-- MeterSphere \u9879\u76ee\u7ba1\u7406\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-system-setting.yml           #-- MeterSphere \u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-kafka.yml                    #-- MeterSphere \u81ea\u5e26\u7684 Kafka \u6240\u9700\u7684 Docker Compose \u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-mysql.yml                    #-- MeterSphere \u81ea\u5e26\u7684 MySQL \u6240\u9700\u7684 Docker Compose \u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-node-controller.yml          #-- MeterSphere Node-Controller \u7ec4\u4ef6\u6240\u9700\u7684 Docker Compose\u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-redis.yml                    #-- MeterSphere Redis \u7ec4\u4ef6\u6240\u9700\u7684 Docker Compose\u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-minio.yml                    #-- MeterSphere \u81ea\u5e26\u7684\u5206\u5e03\u5f0f\u5bf9\u8c61\u5b58\u50a8\u670d\u52a1\n\u251c\u2500\u2500 docker-compose-prometheus.yml               #-- MeterSphere Prometheus \u7ec4\u4ef6\u6240\u9700\u7684Docker Compose \u6587\u4ef6\n\u251c\u2500\u2500 install.conf -> /opt/metersphere/.env       #-- MeterSphere \u7684\u914d\u7f6e\u6587\u4ef6 /opt/metersphere/.env \u7684\u8f6f\u94fe\u63a5\n\u251c\u2500\u2500 logs                                        #-- MeterSphere \u5404\u7ec4\u4ef6\u7684\u65e5\u5fd7\u6587\u4ef6\u6301\u4e45\u5316\u76ee\u5f55\n\u2514\u2500\u2500 version                                     #-- \u5b89\u88c5\u5305\u5bf9\u5e94\u7684 MeterSphere \u7248\u672c\u4fe1\u606f\n
    "},{"location":"installation/offline_installation/#5","title":"5 \u6267\u884c\u5b89\u88c5\u811a\u672c","text":"
    # \u8fdb\u5165\u5b89\u88c5\u5305\u76ee\u5f55\ncd metersphere-offline-installer-v2.3.0\n# \u8fd0\u884c\u5b89\u88c5\u811a\u672c\n/bin/bash install.sh\n

    \u6267\u884c\u5b8c\u5b89\u88c5\u811a\u672c\u540e\uff0c\u4f1a\u5b89\u88c5\u955c\u50cf\uff0c\u7b49\u63d0\u793a\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u4f7f\u7528 msctl status \u67e5\u770b\u670d\u52a1\u5404\u4e2a\u7ec4\u4ef6\u72b6\u6001\u3002

    \u7b49\u5f85\u51e0\u5206\u949f\u540e\uff0c\u4f7f\u7528\u547d\u4ee4 msctl status \u68c0\u67e5\u670d\u52a1\u8fd0\u884c\u60c5\u51b5\uff0c\u82e5\u5404\u4e2a\u7ec4\u4ef6\u90fd\u662f healthy \u72b6\u6001\uff0c\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u5982\u4e0b\u9875\u9762\u767b\u5f55 MeterSphere\u3002

    \u8bf7\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u8bbf\u95ee:\n\n URL: http://\u670d\u52a1\u5668IP:8081\n \u7528\u6237\u540d: admin\n \u521d\u59cb\u5bc6\u7801: metersphere\n
    \u4f01\u4e1a\u7528\u6237\u5347\u7ea7\u540e\u9700\u624b\u52a8\u8bbe\u7f6e ${MS_BASE}/metersphere/install.conf \u4e2d\u7684 MS_UI_ENABLED=true \u5e76\u6267\u884c msctl reload \u6765\u5f00\u542f UI \u529f\u80fd

    "},{"location":"installation/offline_installation/#6","title":"6 \u914d\u7f6e\u53cd\u5411\u4ee3\u7406","text":"

    \u6ce8\u610f

    \u5982\u679c\u4f7f\u7528\u4e86 Nginx\u3001HAProxy \u8fdb\u884c\u53cd\u5411\u4ee3\u7406\u914d\u7f6e\uff0c\u9700\u8981\u589e\u52a0\u5bf9 websocket \u7684\u652f\u6301\u3002\u4ee5 Nginx \u4e3a\u4f8b\uff0c\u53c2\u8003\u914d\u7f6e\u5982\u4e0b:

    server {\n    listen 80;\n    server_name demo.metersphere.com;\n    server_tokens off;\n    return 301 https://$host$request_uri;\n}\nserver {\n    listen 443 ssl;\n    # RSA certificate\n    ssl_certificate /etc/nginx/ssl/metersphere.com/fullchain.cer; # managed by Certbot\n    ssl_certificate_key /etc/nginx/ssl/metersphere.com/metersphere.com.key; # managed by Certbot\n    server_name  demo.metersphere.com;\n    proxy_connect_timeout       300;\n    proxy_send_timeout          300;\n    proxy_read_timeout          300;\n    send_timeout                300;\n    proxy_set_header Host $host;\n    proxy_set_header X-Forwarded-For $remote_addr;\n    proxy_set_header X-Forwarded-Host $server_name;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-Proto $scheme;\n    proxy_redirect http:// $scheme://;\n\n    location / {\n        proxy_pass http://ip:8081;\n        client_max_body_size 1000m;\n        #access_log off;\n\n        # \u914d\u7f6e websocket \u652f\u6301\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n    }\n}\n

    "},{"location":"installation/offline_installation_mac/","title":"MacOS \u5355\u673a\u90e8\u7f72","text":""},{"location":"installation/offline_installation_mac/#1","title":"1 \u73af\u5883\u8981\u6c42","text":"

    \u90e8\u7f72\u670d\u52a1\u5668\u8981\u6c42

    • \u64cd\u4f5c\u7cfb\u7edf: \u53ef\u8fd0\u884c Docker \u7684 Mac \u64cd\u4f5c\u7cfb\u7edf
    • CPU/\u5185\u5b58: \u6700\u4f4e\u8981\u6c42 4C8G\uff0c\u63a8\u8350 8C16G (\u4f01\u4e1a\u7248\u6700\u4f4e\u914d\u7f6e 8C16G)
    • \u78c1\u76d8\u7a7a\u95f4: 50G
    "},{"location":"installation/offline_installation_mac/#2","title":"2 \u5b89\u88c5\u90e8\u7f72","text":""},{"location":"installation/offline_installation_mac/#21-docker","title":"2.1 \u5b89\u88c5 Docker","text":"

    \u5728\u5e94\u7528\u5546\u5e97\u4e0b\u8f7d Docker \u8fdb\u884c\u5b89\u88c5\uff0c\u5b89\u88c5\u540e\u5e76\u542f\u52a8 Docker

    "},{"location":"installation/offline_installation_mac/#22-docker","title":"2.2 Docker \u8bbe\u7f6e","text":"

    \u8fdb\u884c Docker \u8bbe\u7f6e\uff0c\u9700\u8981\u6dfb\u52a0 /opt/metersphere \u8def\u5f84

    "},{"location":"installation/offline_installation_mac/#23-metersphere","title":"2.3 \u5b89\u88c5 MeterSphere","text":"

    \u4e0b\u8f7d\u5b89\u88c5\u5305\uff0c\u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://community.fit2cloud.com/#/products/metersphere/downloads

    \u89e3\u538b\u5b89\u88c5\u5305

    \u8fdb\u5165\u89e3\u538b\u597d\u7684\u5b89\u88c5\u5305\u76ee\u5f55

    \u6267\u884c\u5b89\u88c5\u547d\u4ee4 sh install.sh\uff0c\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u7684\u63d0\u793a\uff0c\u8f93\u5165 y

    \u5b89\u88c5\u5b8c\u6210\uff0c\u4f7f\u7528 docker ps \u67e5\u770b\u540e\u53f0\u670d\u52a1\u90fd\u4e3a healthy \u72b6\u6001\uff0c\u5219\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u5982\u4e0b\u5730\u5740\u8bbf\u95ee MeterSphere

    \u5730\u5740: http://\u76ee\u6807\u670d\u52a1\u5668IP\u5730\u5740:\u670d\u52a1\u8fd0\u884c\u7aef\u53e3\n\u7528\u6237\u540d: admin\n\u5bc6\u7801: metersphere\n

    "},{"location":"installation/offline_installation_windows/","title":"Windows \u5355\u673a\u90e8\u7f72","text":""},{"location":"installation/offline_installation_windows/#1","title":"1 \u73af\u5883\u8981\u6c42","text":"

    \u5f97\u76ca\u4e8e Docker \u8de8\u5e73\u53f0\u5e94\u7528\uff0cMeterSphere \u7406\u8bba\u4e0a\u53ef\u4ee5\u90e8\u7f72\u5728\u4efb\u4f55\u53ef\u4ee5\u8fd0\u884c Docker \u7684\u5bbf\u4e3b\u673a\uff0c\u5305\u62ec Windows \u64cd\u4f5c\u7cfb\u7edf\u7684\u4e3b\u673a\u3002\u5c06\u4ee5 Windows 10 \u4e3a\u4f8b\uff0c\u4ecb\u7ecd\u5982\u4f55\u5728 Windows \u64cd\u4f5c\u7cfb\u7edf\u901a\u8fc7 WSL \u4e0a\u5b89\u88c5 MeterSphere\u3002

    \u90e8\u7f72\u670d\u52a1\u5668\u8981\u6c42\uff1a

    • \u64cd\u4f5c\u7cfb\u7edf: \u53ef\u8fd0\u884c Docker \u7684 Windows \u64cd\u4f5c\u7cfb\u7edf
    • CPU/\u5185\u5b58: \u6700\u4f4e\u8981\u6c42 4C8G\uff0c\u63a8\u8350 8C16G (\u4f01\u4e1a\u7248\u6700\u4f4e\u914d\u7f6e 8C16G)
    • \u78c1\u76d8\u7a7a\u95f4: 200G

    \u6ce8\u610f\uff1a

    • WSL \u9700\u8981\u652f\u6301\u5d4c\u5957\u865a\u62df\u5316\uff0c\u4e91\u865a\u62df\u673a(Windows)\u53ef\u80fd\u4e0d\u652f\u6301\u800c\u5bfc\u81f4\u65e0\u6cd5\u5b89\u88c5 MeterSphere
    "},{"location":"installation/offline_installation_windows/#2","title":"2 \u5b89\u88c5\u90e8\u7f72","text":""},{"location":"installation/offline_installation_windows/#21-wsl","title":"2.1 \u5b89\u88c5 WSL","text":"

    \u53c2\u8003\u5728 Windows 10 \u4e0a\u5b89\u88c5 WSL | Microsoft Docs\u8fdb\u884c Windows \u5bbf\u4e3b\u673a WSL \u7684\u5b89\u88c5\u548c\u914d\u7f6e\u3002

    \u4f7f\u7528\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u7136\u540e\u91cd\u542f\u64cd\u4f5c\u7cfb\u7edf\u3002

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart\ndism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart\n

    \u4e0b\u8f7d\u5e76\u5b89\u88c5 \u9002\u7528\u4e8e x64 \u8ba1\u7b97\u673a\u7684 WSL2 Linux \u5185\u6838\u66f4\u65b0\u5305

    \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u8bbe\u7f6e WSL \u9ed8\u8ba4\u7248\u672c\uff1a

    wsl --set-default-version 2\n

    "},{"location":"installation/offline_installation_windows/#22-ubuntu","title":"2.2 \u5b89\u88c5 Ubuntu","text":"

    \u5728 Windows 10 \u7684\u5e94\u7528\u5546\u5e97\u91cc\u641c\u7d22\"Ubuntu\"\u5e76\u5b89\u88c5\uff1a

    "},{"location":"installation/offline_installation_windows/#23-ubuntu-wsl","title":"2.3 \u68c0\u6d4b Ubuntu WSL \u7248\u672c","text":"

    \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u6267\u884c\uff1a

    wsl.exe -l -v\n

    \u793a\u4f8b\u4e2d\u5b89\u88c5\u7684 Ubuntu Name \u4e3a \"Ubuntu\"\uff0c \u5982\u50cf\u4e0a\u56fe\u51fa\u73b0 Ubuntu \u7248\u672c\u4e3a 1\uff0c \u5219\u7ee7\u7eed\u6267\u884c\u547d\u4ee4\uff1a

    wsl.exe --set-version Ubuntu 2\n

    \u51fa\u73b0\u4e0b\u56fe\u7ed3\u679c\u5373\u4e3a\u6210\u529f\uff1a

    "},{"location":"installation/offline_installation_windows/#24-docker","title":"2.4 Docker \u5b89\u88c5\u4e0e\u914d\u7f6e","text":"

    \u4e0b\u8f7dDocker Desktop for Windows\uff0c\u53cc\u51fb Docker Desktop Installer.exe \u5b8c\u6210docker \u7684\u5b89\u88c5\u3002

    Docker Desktop \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u8fdb\u5165 Settings \u754c\u9762\uff0c\u9009\u62e9 Resources \u83dc\u5355\u4e0b\u7684 WSL INTEGRATION\uff0c\u6309\u4e0b\u56fe\u8bbe\u7f6e\u540e\uff0c\u70b9\u51fb\u53f3\u4e0b\u89d2\u7684Apply & Restart\u3002

    "},{"location":"installation/offline_installation_windows/#25-ubuntu","title":"2.5 \u542f\u52a8 Ubuntu","text":"

    \u5728\u5e94\u7528\u5546\u5e97\u91cc\uff0c\u9009\u62e9 Ubuntu\uff0c\u70b9\u51fb\"\u542f\u52a8\"\u6309\u94ae\u542f\u52a8 Ubuntu\uff0c\u5e76\u6267\u884c sudo su \u547d\u4ee4\u5207\u6362\u5230 root \u7528\u6237\uff1a

    `

    "},{"location":"installation/offline_installation_windows/#26-docker","title":"2.6 \u68c0\u67e5 Docker \u73af\u5883","text":"

    \u5728 Ubuntu \u547d\u4ee4\u884c\u4e2d\u6267\u884c\u547d\u4ee4docker version\uff0c\u5982\u80fd\u50cf\u4e0b\u56fe\u4e00\u6837\u6b63\u5e38\u663e\u793a docker \u7248\u672c\u4fe1\u606f\uff0c\u5219\u80fd\u6b63\u5e38\u6267\u884c MeterSphere \u540e\u7eed\u7684\u5b89\u88c5\u64cd\u4f5c\uff0c\u5982\u51fa\u73b0\u5f02\u5e38\uff0c\u5219\u9700\u8981\u6839\u636e\u63d0\u793a\u4fe1\u606f\u89e3\u51b3\u3002

    "},{"location":"installation/offline_installation_windows/#27","title":"2.7 \u4e0b\u8f7d\u5b89\u88c5\u5305","text":"

    \u5728 \u98de\u81f4\u4e91\u5f00\u6e90\u793e\u533a \u6216 MeterSphere Github Release \u4e0b\u8f7d MeterSphere \u6700\u65b0\u7248\u672c\u7684\u79bb\u7ebf\u5b89\u88c5\u5305\u3002

    "},{"location":"installation/offline_installation_windows/#28","title":"2.8 \u89e3\u538b\u5b89\u88c5\u5305","text":"

    \u5728 Ubuntu \u4e2d\uff0c\u4ee5 root \u7528\u6237\u6267\u884c\u5982\u4e0b\u547d\u4ee4\uff1a

    # \u5047\u8bbe\u5b89\u88c5\u5305\u5b58\u653e\u8def\u5f84\u4e3a c:\\metersphere-offline-installer-v2.10.0.tar.gz\ncd /mnt/c\n# \u89e3\u538b\u5b89\u88c5\u5305\ntar zxvf metersphere-offline-installer-v2.10.0.tar.gz\n

    "},{"location":"installation/offline_installation_windows/#29","title":"2.9 \u914d\u7f6e\u5b89\u88c5\u53c2\u6570\uff08\u53ef\u9009\uff09","text":"

    MeterSphere \u652f\u6301\u4ee5\u914d\u7f6e\u6587\u4ef6\u7684\u5f62\u5f0f\u6765\u8bbe\u7f6e\u5b89\u88c5\u53c2\u6570\uff0c\u5982\u5b89\u88c5\u76ee\u5f55\u3001\u670d\u52a1\u8fd0\u884c\u7aef\u53e3\u3001\u6570\u636e\u5e93\u914d\u7f6e\u53c2\u6570\u7b49\uff0c\u5b89\u88c5\u524d\u4fee\u6539\u5b89\u88c5\u5305\u4e2d\u7684 install.conf \u6587\u4ef6\u53ef\u5b8c\u6210\u914d\u7f6e\u3002\u5177\u4f53\u8bf4\u660e\u89c1\uff1a\u5b89\u88c5\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e\u3002

    "},{"location":"installation/offline_installation_windows/#210","title":"2.10 \u6267\u884c\u5b89\u88c5\u811a\u672c","text":"
    # \u8fdb\u5165\u5b89\u88c5\u5305\u76ee\u5f55\ncd metersphere-offline-installer-v2.10.0\n# \u8fd0\u884c\u5b89\u88c5\u811a\u672c\n/bin/bash install.sh\n

    \u5b89\u88c5\u6210\u529f\u540e\uff0c\u4f7f\u7528 msctl status \u67e5\u770b\u540e\u53f0\u670d\u52a1\u72b6\u6001\uff0c\u5f85\u6240\u6709\u670d\u52a1\u8fd0\u884c\u72b6\u6001\u90fd\u4e3a healthy \u540e\uff0c\u5219\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee MeterSphere\u3002

    \u5730\u5740: http://\u76ee\u6807\u670d\u52a1\u5668IP\u5730\u5740:\u670d\u52a1\u8fd0\u884c\u7aef\u53e3\n\u7528\u6237\u540d: admin\n\u5bc6\u7801: metersphere\n

    "},{"location":"installation/offline_upgrade/","title":"\u79bb\u7ebf\u5347\u7ea7","text":"

    \u6ce8\u610f

    \u5347\u7ea7\u524d\u4e00\u5b9a\u8981\u8fdb\u884c\u6570\u636e\u5e93\u5907\u4efd\uff0c\u8be6\u7ec6\u64cd\u4f5c\u8bf7\u53c2\u8003 MeterSphere \u6570\u636e\u5907\u4efd\u3002

    "},{"location":"installation/offline_upgrade/#1","title":"1 \u4e0b\u8f7d\u5e76\u89e3\u538b\u5b89\u88c5\u5305","text":"

    \u6309\u7167\u672c\u6587\u6863 \u79bb\u7ebf\u5b89\u88c5 \u6b65\u9aa4\uff0c \u4e0b\u8f7d\u65b0\u7248\u672c\u5b89\u88c5\u5305\u5e76\u4e0a\u4f20\u89e3\u538b\u540e, \u91cd\u65b0\u6267\u884c\u5b89\u88c5\u547d\u4ee4\u8fdb\u884c\u5347\u7ea7\u3002 \u3010\u6ce8\u610f\u3011\u5982\u679c\u5347\u7ea7\u7248\u672c\u8de8\u5ea6\u8f83\u5927\uff1a\u5982 V1.x \u5347\u7ea7\u81f3 V2.x \u6700\u65b0\u7248\u672c\uff0c\u7531\u4e8e\u8de8\u591a\u7248\u672c\u65b0\u589e\u529f\u80fd\u8f83\u591a\uff0c\u4e14 v2.8.1 \u4e4b\u540edocker \u4f7f\u7528\u7248\u672c\u5347\u7ea7\uff0c\u8bf7\u6309\u7167\u5347\u7ea7\u6307\u5357\u64cd\u4f5c\uff1a MeterSphere 1.20 LTS \u81f32.10 LTS \u5347\u7ea7\u6307\u5357\u3002\u5982\u679c\u5347\u7ea7\u7248\u672c\u8de8\u5ea6\u4e0d\u5927\uff0c\u5219\u6309\u7167\u4e0b\u9762\u8bf4\u660e\u5347\u7ea7\u5373\u53ef\u3002

    "},{"location":"installation/offline_upgrade/#2","title":"2 \u6267\u884c\u5b89\u88c5\u547d\u4ee4","text":"
    #\u5347\u7ea7\u524d\u505c\u6b62\u670d\u52a1\nmsctl stop\n\nMeterSphere \u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://github.com/metersphere/metersphere/releases\n\n# \u4e0b\u8f7d\u79bb\u7ebf\u5b89\u88c5\u5305\nwget https://github.com/metersphere/metersphere/releases/download/v2.x.y/metersphere-offline-installer-v2.x.y.tar.gz\n\n# \u89e3\u538b\u5b89\u88c5\u5305\ntar -zxvf metersphere-offline-installer-v2.x.y.tar.gz\n\n# \u8fdb\u5165\u79bb\u7ebf\u90e8\u7f72\u5305\u89e3\u538b\u7f29\u76ee\u5f55\ncd metersphere-offline-installer-v2.x.y\n\n# \u8fd0\u884c\u5b89\u88c5\u811a\u672c\n/bin/bash install.sh\n\n# \u67e5\u770b MeterSphere \u72b6\u6001\nmsctl status\n
    "},{"location":"installation/online_installation/","title":"\u5728\u7ebf\u5b89\u88c5","text":""},{"location":"installation/online_installation/#1","title":"1 \u73af\u5883\u8981\u6c42","text":"

    \u90e8\u7f72\u670d\u52a1\u5668\u8981\u6c42

    • \u64cd\u4f5c\u7cfb\u7edf: CentOS 7.x / Redhat 7.x
    • CPU/\u5185\u5b58: \u6700\u4f4e\u8981\u6c42 4C8G\uff0c\u63a8\u8350 8C16G (\u4f01\u4e1a\u7248\u6700\u4f4e\u914d\u7f6e 8C16G)
    • \u78c1\u76d8\u7a7a\u95f4: 50G
    • \u7f51\u7edc\u8981\u6c42\uff1a\u53ef\u8bbf\u95ee\u4e92\u8054\u7f51
    • \u6ce8\uff1a\u5982\u7528\u4e8e\u751f\u4ea7\u73af\u5883\uff0c\u63a8\u8350\u4f7f\u7528 \u79bb\u7ebf\u5b89\u88c5\u5305 \u8fdb\u884c\u90e8\u7f72
    "},{"location":"installation/online_installation/#2","title":"2 \u4e00\u952e\u5b89\u88c5","text":"

    \u5728\u670d\u52a1\u5668\u4e0a\u4ee5 root \u7528\u6237\u6267\u884c\u5982\u4e0b\u547d\u4ee4\u4e00\u952e\u5b89\u88c5 MeterSphere\u3002

    curl -sSL https://resource.fit2cloud.com/metersphere/metersphere/releases/latest/download/quick_start.sh | bash\n

    \u5b89\u88c5\u6210\u529f\u540e\uff0c\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u5982\u4e0b\u9875\u9762\u767b\u5f55 MeterSphere\u3002

    \u5730\u5740: http://\u76ee\u6807\u670d\u52a1\u5668IP\u5730\u5740:8081\n\u7528\u6237\u540d: admin\n\u5bc6\u7801: metersphere\n

    \u5b89\u88c5\u811a\u672c\u9ed8\u8ba4\u4f7f\u7528 /opt/metersphere \u76ee\u5f55\u4f5c\u4e3a\u5b89\u88c5\u76ee\u5f55\uff0cMeterSphere \u7684\u914d\u7f6e\u6587\u4ef6\u3001\u6570\u636e\u53ca\u65e5\u5fd7\u7b49\u5747\u5b58\u653e\u5728\u8be5\u5b89\u88c5\u76ee\u5f55\u3002

    \u5b89\u88c5\u76ee\u5f55\u76ee\u5f55\u7ed3\u6784\u8bf4\u660e

    /opt/metersphere/\n\u251c\u2500\u2500 bin                                         #-- \u5b89\u88c5\u8fc7\u7a0b\u4e2d\u9700\u8981\u52a0\u8f7d\u5230\u5bb9\u5668\u4e2d\u7684\u811a\u672c\n\u251c\u2500\u2500 compose_files                               #-- \u6839\u636e\u4e0d\u540c\u7684\u5b89\u88c5\u6a21\u5f0f\uff0c\u4fdd\u5b58\u9700\u8981\u4f7f\u7528\u5230\u7684 compose \u6587\u4ef6\u4fe1\u606f\n\u251c\u2500\u2500 conf                                        #-- MeterSphere \u5404\u7ec4\u4ef6\u53ca\u6570\u636e\u5e93\u7b49\u4e2d\u95f4\u4ef6\u7684\u914d\u7f6e\u6587\u4ef6\n\u251c\u2500\u2500 data                                        #-- MeterSphere \u5404\u7ec4\u4ef6\u53ca\u6570\u636e\u5e93\u7b49\u4e2d\u95f4\u4ef6\u7684\u6570\u636e\u6301\u4e45\u5316\u76ee\u5f55\n\u251c\u2500\u2500 docker-compose-gateway.yml                  #-- MeterSphere \u7684 API \u7f51\u5173\n\u251c\u2500\u2500 docker-compose-eureka.yml                   #-- MeterSphere \u7684\u670d\u52a1\u6ce8\u518c\u4e2d\u5fc3\n\u251c\u2500\u2500 docker-compose-base.yml                     #-- MeterSphere \u57fa\u7840 Docker Compose \u6587\u4ef6\uff0c\u5b9a\u4e49\u4e86\u7f51\u7edc\u7b49\u57fa\u7840\u4fe1\u606f \n\u251c\u2500\u2500 docker-compose-workstation.yml              #-- MeterSphere \u5de5\u4f5c\u53f0\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-test-track.yml               #-- MeterSphere \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-api-test.yml                 #-- MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-ui-test.yml                  #-- MeterSphere UI \u6d4b\u8bd5\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-performance-test.yml         #-- MeterSphere \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-report-stat.yml              #-- MeterSphere \u62a5\u8868\u7edf\u8ba1\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-project-management.yml       #-- MeterSphere \u9879\u76ee\u7ba1\u7406\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-system-setting.yml           #-- MeterSphere \u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-kafka.yml                    #-- MeterSphere \u81ea\u5e26\u7684 Kafka \u6240\u9700\u7684 Docker Compose \u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-mysql.yml                    #-- MeterSphere \u81ea\u5e26\u7684 MySQL \u6240\u9700\u7684 Docker Compose \u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-node-controller.yml          #-- MeterSphere Node-Controller \u7ec4\u4ef6\u6240\u9700\u7684 Docker Compose\u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-redis.yml                    #-- MeterSphere Redis \u7ec4\u4ef6\u6240\u9700\u7684 Docker Compose\u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-minio.yml                    #-- MeterSphere \u81ea\u5e26\u7684\u5206\u5e03\u5f0f\u5bf9\u8c61\u5b58\u50a8\u670d\u52a1\n\u251c\u2500\u2500 docker-compose-prometheus.yml               #-- MeterSphere Prometheus \u7ec4\u4ef6\u6240\u9700\u7684Docker Compose \u6587\u4ef6\n\u251c\u2500\u2500 install.conf -> /opt/metersphere/.env       #-- MeterSphere \u7684\u914d\u7f6e\u6587\u4ef6 /opt/metersphere/.env \u7684\u8f6f\u94fe\u63a5\n\u251c\u2500\u2500 logs                                        #-- MeterSphere \u5404\u7ec4\u4ef6\u7684\u65e5\u5fd7\u6587\u4ef6\u6301\u4e45\u5316\u76ee\u5f55\n\u2514\u2500\u2500 version                                     #-- \u5b89\u88c5\u5305\u5bf9\u5e94\u7684 MeterSphere \u7248\u672c\u4fe1\u606f\n
    "},{"location":"installation/online_installation/#3","title":"3 \u624b\u52a8\u5b89\u88c5","text":""},{"location":"installation/online_installation/#31","title":"3.1 \u624b\u52a8\u5b89\u88c5","text":"

    MeterSphere \u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://github.com/metersphere/metersphere/releases

    # \u4e0b\u8f7d\u5728\u7ebf\u5b89\u88c5\u5305\nwget https://github.com/metersphere/metersphere/releases/download/v2.x.y/metersphere-online-installer-v2.x.y.tar.gz\n\n# \u89e3\u538b\u5728\u7ebf\u5b89\u88c5\u5305\ntar -zxvf metersphere-online-installer-v2.x.y.tar.gz\n\n# \u8fdb\u5165\u89e3\u538b\u76ee\u5f55\ncd metersphere-online-installer-v2.x.y\n\n# \u914d\u7f6e\u5b89\u88c5\u53c2\u6570\uff0c\u53c2\u6570\u8bf4\u660e\u89c1\u4e0b\u6587\n# vi install.conf\n\n# \u6267\u884cinstall.sh\u5b89\u88c5\u811a\u672c\n/bin/bash install.sh\n

    \u6267\u884c\u5b8c\u5b89\u88c5\u811a\u672c\u540e\uff0c\u4f1a\u5728\u7ebf\u62c9\u53d6\u955c\u50cf\uff0c\u7b49\u63d0\u793a\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u4f7f\u7528 msctl status \u67e5\u770b\u670d\u52a1\u5404\u4e2a\u7ec4\u4ef6\u72b6\u6001

    \u7b49\u5f85\u51e0\u5206\u949f\u540e\uff0c\u4f7f\u7528\u547d\u4ee4 msctl status \u68c0\u67e5\u670d\u52a1\u8fd0\u884c\u60c5\u51b5\uff0c\u82e5\u5404\u4e2a\u7ec4\u4ef6\u90fd\u662f healthy \u72b6\u6001\uff0c\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u5982\u4e0b\u9875\u9762\u767b\u5f55 MeterSphere\u3002

     \u8bf7\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u8bbf\u95ee:\n\n URL: http://\u670d\u52a1\u5668IP:8081\n \u7528\u6237\u540d: admin\n \u521d\u59cb\u5bc6\u7801: metersphere\n

    "},{"location":"installation/online_installation/#32","title":"3.2 \u5b89\u88c5\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e","text":"

    \u5b89\u88c5\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e

    \u5982\u679c\u65e0\u7279\u6b8a\u9700\u6c42\u53ef\u4ee5\u4e0d\u8fdb\u884c\u4fee\u6539\u91c7\u7528\u9ed8\u8ba4\u53c2\u6570\u5b89\u88c5\uff08\u9996\u6b21\u5b89\u88c5\u53ef\u4fee\u6539\u914d\u7f6e install.conf \u6587\u4ef6\u4e2d\u76f8\u5173\u914d\u7f6e\uff0c\u4fee\u6539\u5b8c\u540e\u6267\u884c /bin/bash install.sh \u547d\u4ee4\u8fdb\u884c\u5b89\u88c5\uff0c\u5df2\u5b89\u88c5\u6210\u529f\u5982\u9700\u518d\u4fee\u6539\u914d\u7f6e\u53c2\u6570\uff0c\u9700\u8981\u5230 ${MS_BASE}/metersphere/.env \u91cc\u4fee\u6539\uff0c\u4fee\u6539\u5b8c\u540e\u6267\u884c msctl reload \u5373\u53ef\u91cd\u65b0\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\uff09\u3002

    # \u57fa\u7840\u914d\u7f6e\n## \u5b89\u88c5\u8def\u5f84\uff0c MeterSphere \u914d\u7f6e\u53ca\u6570\u636e\u6587\u4ef6\u9ed8\u8ba4\u5c06\u5b89\u88c5\u5728 ${MS_BASE}/metersphere \u76ee\u5f55\u4e0b\nMS_BASE=/opt\n## MeterSphere \u4f7f\u7528\u7684 docker \u7f51\u7edc\u7f51\u6bb5\u4fe1\u606f\nMS_DOCKER_SUBNET=172.30.10.0/24\n## \u955c\u50cf\u524d\u7f00\uff0c MeterSphere \u76f8\u5173\u7ec4\u4ef6\u4f7f\u7528\u7684 Docker \u955c\u50cf\u524d\u7f00\uff0c \u4f8b\u5982 registry.cn-qingdao.aliyuncs.com/metersphere\nMS_IMAGE_PREFIX=registry.cn-qingdao.aliyuncs.com/metersphere\n## \u955c\u50cf\u6807\u7b7e\uff0c MeterSphere \u76f8\u5173\u7ec4\u4ef6\u4f7f\u7528\u7684 Docker \u955c\u50cf\u6807\u7b7e\nMS_IMAGE_TAG=v2.3.0\n## \u6027\u80fd\u6d4b\u8bd5\u4f7f\u7528\u7684 JMeter \u955c\u50cf\nMS_JMETER_IMAGE=${MS_IMAGE_PREFIX}/jmeter-master:5.5-ms2-jdk11\n## \u5b89\u88c5\u6a21\u5f0f allinone | server | node-controller | selenium-hub\uff0c \u5176\u4e2d selenium-hub \u548c node-controller \u53ef\u4ee5\u5355\u72ec\u5728\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u4f5c\u4e3a\u6267\u884c\u673a\u4f7f\u7528\nMS_INSTALL_MODE=allinone\n## MeterSphere \u4e3b\u7a0b\u5e8f\u7684 HTTP \u670d\u52a1\u76d1\u542c\u7aef\u53e3\nMS_SERVER_PORT=8081\n## MeterSphere Node-Controller \u7ec4\u4ef6\u7684 HTTP \u670d\u52a1\u76d1\u542c\u7aef\u53e3\nMS_NODE_CONTROLLER_PORT=8082\nMS_NODEEXPORTER_PORT=9100\n\n# \u6570\u636e\u5e93\u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8\u6570\u636e\u5e93\nMS_EXTERNAL_MYSQL=false\n## \u6570\u636e\u5e93\u5730\u5740\nMS_MYSQL_HOST=mysql\n## \u6570\u636e\u5e93\u7aef\u53e3\nMS_MYSQL_PORT=3306\n## \u6570\u636e\u5e93\u5e93\u540d\nMS_MYSQL_DB=metersphere\n## \u6570\u636e\u5e93\u7528\u6237\u540d\nMS_MYSQL_USER=root\n## \u6570\u636e\u5e93\u5bc6\u7801\nMS_MYSQL_PASSWORD=Password123@mysql\n\n# Prometheus \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8Prometheus\nMS_EXTERNAL_PROM=false\nMS_PROMETHEUS_PORT=9090\n\n# Redis \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8Redis\nMS_EXTERNAL_REDIS=false\n## Redis \u7aef\u53e3\nMS_REDIS_PORT=6379\n## Redis \u5bc6\u7801\nMS_REDIS_PASSWORD=Password123@redis\n## Redis\u5730\u5740\nMS_REDIS_HOST=$(hostname -I|cut -d\" \" -f 1)\n\n# Kafka \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8 Kafka\nMS_EXTERNAL_KAFKA=false\n## Kafka \u5730\u5740\nMS_KAFKA_HOST=10.1.*.*\n## Kafka \u7aef\u53e3\nMS_KAFKA_PORT=9092\n## \u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_TOPIC=JMETER_METRICS\n## \u6027\u80fd\u6d4b\u8bd5\u65e5\u5fd7\u6570\u636e\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_LOG_TOPIC=JMETER_LOGS\n## \u6027\u80fd\u6d4b\u8bd5\u5b9a\u65f6\u4efb\u52a1\u901a\u77e5\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_TEST_TOPIC=LOAD_TESTS\n## \u91cd\u6784\u540e\u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_REPORT_TOPIC=JMETER_REPORTS\n\n# UI\u5bb9\u5668\u914d\u7f6e\n## \u662f\u5426\u542f\u52a8UI\u6a21\u5757\nMS_UI_ENABLED=false\n## \u662f\u5426\u542f\u52a8\u5de5\u4f5c\u53f0\u5bb9\u5668\nMS_WORKSTATION_ENABLED=false\n\n# minio \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8minio\nMS_EXTERNAL_MINIO=false\n## minio \u5730\u5740\nMS_MINIO_ENDPOINT=http://minio:9000\n## minio access\nMS_MINIO_ACCESS_KEY=admin\n## minio \u5bc6\u7801\nMS_MINIO_SECRET_KEY=Password123@minio\n\n# \u4fee\u6539\u7ec4\u4ef6\u6700\u5927\u5185\u5b58\u9650\u5236\uff08v2.7\u4ee5\u4e0a\u53ef\u4ee5\u5728 /opt/metersphere/.env \u91cc\u4fee\u6539\u67d0\u5bb9\u5668\u670d\u52a1\u7684\u6700\u5927\u5185\u5b58\u9650\u5236\uff0c\u5728/opt/metersphere/ \u76ee\u5f55\u4e0b\u7684docker-compose\u5206\u522b\u5b9a\u4e49\u5404\u81ea\u670d\u52a1\u7684\u6700\u5927\u5c5e\u6027\u503c\uff0c\u5982 api-test \u7684\u5c5e\u6027\u5728 docker-compose-api-test.yml \u4e2d\u5b9a\u4e49\uff0c\u4e3a MS_API_MEM_LIMIT\uff09\nMS_API_MEM_LIMIT=1073741824\uff08\u9ed8\u8ba4\u4e3a 1g\uff09\n

    "},{"location":"installation/online_installation/#33","title":"3.3 \u6570\u636e\u5e93\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e","text":"

    \u6ce8\u610f

    MeterSphere \u4f7f\u2f64 MySQL 8.0 \u5bf9\u7cfb\u7edf\u6570\u636e\u8fdb\u2f8f\u5b58\u50a8\u3002\u540c\u65f6 MeterSphere \u5bf9\u6570\u636e\u5e93\u90e8\u5206\u914d\u7f6e\u9879\u6709\u8981\u6c42\uff0c\u8bf7\u53c2\u8003\u4e0b\u9644\u7684\u6570\u636e\u5e93\u914d\u7f6e\uff0c\u4fee\u6539\u73af\u5883\u4e2d\u7684\u6570\u636e\u5e93\u914d\u7f6e\u6587\u4ef6\u3002

    [mysqld]\ndatadir=/var/lib/mysql\n\ndefault-storage-engine=INNODB\ncharacter_set_server=utf8mb4\nlower_case_table_names=1\nperformance_schema=off\ntable_open_cache=128\ntransaction_isolation=READ-COMMITTED\nmax_connections=1000\nmax_connect_errors=6000\nmax_allowed_packet=64M\ninnodb_file_per_table=1\ninnodb_buffer_pool_size=512M\ninnodb_flush_method=O_DIRECT\ninnodb_lock_wait_timeout=1800\n\nserver-id=1\nlog-bin=mysql-bin\nexpire_logs_days = 2\nbinlog_format=mixed\n\ncharacter-set-client-handshake = FALSE\ncharacter-set-server=utf8mb4\ncollation-server=utf8mb4_general_ci\ninit_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci'\n\nsql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\n\nskip-name-resolve\n\n[mysql]\ndefault-character-set=utf8mb4\n\n[mysql.server]\ndefault-character-set=utf8mb4\n

    \u8bf7\u53c2\u8003\u6587\u6863\u4e2d\u7684\u5efa\u5e93\u8bed\u53e5\u521b\u5efa MeterSphere \u4f7f\u7528\u7684\u6570\u636e\u5e93\uff0cmetersphere-server \u670d\u52a1\u542f\u52a8\u65f6\u4f1a\u81ea\u52a8\u5728\u914d\u7f6e\u7684\u5e93\u4e2d\u521b\u5efa\u6240\u9700\u7684\u8868\u7ed3\u6784\u53ca\u521d\u59cb\u5316\u6570\u636e\u3002

    CREATE DATABASE `metersphere` /*!40100 DEFAULT CHARACTER SET utf8mb4 */\n

    "},{"location":"installation/online_installation/#4","title":"4 \u914d\u7f6e\u53cd\u5411\u4ee3\u7406","text":"

    \u5982\u679c\u4f7f\u7528\u4e86 Nginx\u3001HAProxy \u8fdb\u884c\u53cd\u5411\u4ee3\u7406\u914d\u7f6e\uff0c\u9700\u8981\u589e\u52a0\u5bf9 websocket \u7684\u652f\u6301\u3002\u4ee5 Nginx \u4e3a\u4f8b\uff0c\u53c2\u8003\u914d\u7f6e\u5982\u4e0b:

    server {\n    listen 80;\n    server_name demo.metersphere.com;\n    server_tokens off;\n    return 301 https://$host$request_uri;\n}\nserver {\n    listen 443 ssl;\n    # RSA certificate\n    ssl_certificate /etc/nginx/ssl/metersphere.com/fullchain.cer; # managed by Certbot\n    ssl_certificate_key /etc/nginx/ssl/metersphere.com/metersphere.com.key; # managed by Certbot\n    server_name  demo.metersphere.com;\n    proxy_connect_timeout       300;\n    proxy_send_timeout          300;\n    proxy_read_timeout          300;\n    send_timeout                300;\n    proxy_set_header Host $host;\n    proxy_set_header X-Forwarded-For $remote_addr;\n    proxy_set_header X-Forwarded-Host $server_name;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-Proto $scheme;\n    proxy_redirect http:// $scheme://;\n\n    location / {\n        proxy_pass http://ip:8081;\n        client_max_body_size 1000m;\n        #access_log off;\n\n        #\u914d\u7f6e websocket \u652f\u6301\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n    }\n}\n

    "},{"location":"installation/online_upgrade/","title":"\u5728\u7ebf\u5347\u7ea7","text":"

    \u5347\u7ea7\u524d\u4e00\u5b9a\u8981\u8fdb\u884c\u6570\u636e\u5e93\u5907\u4efd\uff0c\u8bf7\u53c2\u8003 MeterSphere \u6570\u636e\u5907\u4efd\u3002 - \u5982\u679c MeterSphere \u670d\u52a1\u5668\u53ef\u4ee5\u8bbf\u95ee\u4e92\u8054\u7f51\uff0c\u4e14\u5728\u7ebf\u5347\u7ea7\u7248\u672c\u8de8\u5ea6\u4e0d\u5927\uff0c\u53ef\u5728\u7ebf\u5347\u7ea7\u5230\u6700\u65b0\u6216\u6307\u5b9a\u7248\u672c\u3002 - \u5982\u679c\u5347\u7ea7\u7248\u672c\u8de8\u5ea6\u8f83\u5927\uff0c\u5982 V1.x \u5347\u7ea7\u81f3 V2.x \u7248\u672c\uff0c\u7531\u4e8e\u7248\u672c\u65b0\u589e\u53d8\u66f4\u529f\u80fd\u8f83\u591a\uff0c\u4e14 v2.8.1 \u4e4b\u540edocker \u4f7f\u7528\u7248\u672c\u5347\u7ea7\uff0c\u907f\u514d\u7f51\u7edc\u56e0\u7d20\u5f71\u54cd\u5efa\u8bae\u91c7\u7528\u79bb\u7ebf\u5347\u7ea7\u65b9\u5f0f\u3002\u8be6\u7ec6\u6b65\u9aa4\u53ef\u53c2\u8003\uff1a MeterSphere 1.20 LTS \u81f32.10 LTS \u5347\u7ea7\u6307\u5357

    "},{"location":"installation/online_upgrade/#1","title":"1 \u4e00\u952e\u5347\u7ea7\u81f3\u6700\u65b0\u7248\u672c","text":"
    #\u5347\u7ea7\u524d\u505c\u6b62\u670d\u52a1\nmsctl stop\n\n# \u5347\u7ea7\u81f3\u6700\u65b0\u7248\u672c\nmsctl upgrade\n\n# \u67e5\u770b MeterSphere \u72b6\u6001\nmsctl status\n
    "},{"location":"installation/online_upgrade/#2","title":"2 \u4e00\u952e\u5347\u7ea7\u81f3\u6307\u5b9a\u7248\u672c","text":"
    #\u5347\u7ea7\u524d\u505c\u6b62\u670d\u52a1\nmsctl stop\n\n# \u5347\u7ea7\u81f3\u6307\u5b9a\u7248\u672c\nmsctl upgrade v2.x.y\n\n# \u67e5\u770b MeterSphere \u72b6\u6001\nmsctl status\n
    "},{"location":"installation/pre_work/","title":"\u6574\u4f53\u90e8\u7f72\u89c4\u5212","text":"

    MeterSphere \u5927\u89c4\u6a21\u7684\u6027\u80fd\u538b\u6d4b\u4e3b\u8981\u53d6\u51b3\u4e8e\u4e09\u4e2a\u7ec4\u4ef6

    \u25a0 Node Controller: \u4e3a\u6027\u80fd\u6d4b\u8bd5\u63d0\u4f9b\u72ec\u7acb\u8282\u70b9\u7c7b\u578b\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\uff0c \u63a5\u6536\u6765\u81ea\u7cfb\u7edf\u7684\u6027\u80fd\u6d4b\u8bd5\u4efb\u52a1\uff0c \u52a8\u6001\u7684\u542f\u52a8 JMeter \u5bb9\u5668\u5b8c\u6210\u6027\u80fd\u6d4b\u8bd5 \u25a0 Data Streaming: \u4ece Kafka \u4e2d\u83b7\u53d6\u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u8fdb\u884c\u5904\u7406\u540e\u5b58\u5165 MySQL \u6570\u636e\u5e93 \u25a0 Kafka: \u63a5\u6536 JMeter \u4ea7\u751f\u7684\u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e

    \u6240\u4ee5\u5982\u679c\u9700\u8981\u8fdb\u884c\u5927\u89c4\u6a21\uff085000 VU\u4ee5\u4e0a\uff09\u7684\u6027\u80fd\u6d4b\u8bd5\uff0c\u9700\u8981\u5bf9\u4e0a\u8ff0\u4e09\u4e2a\u7ec4\u4ef6\u8fdb\u884c\u6c34\u5e73\u6269\u5bb9\u3002\u5177\u4f53\u67b6\u6784\u5982\u4e0b\uff1a

    \u4f9d\u636e\u67b6\u6784\u6240\u793a\uff0c\u9700\u8981\u72ec\u7acb\u90e8\u7f72 Kafka \u96c6\u7fa4\u548c Data-Streaming \u96c6\u7fa4\uff08Kafka\u548cData-Streaming\u53ef\u4ee5\u90e8\u7f72\u5728\u4e00\u8d77\uff09\uff0c\u5982\u679c\u91c7\u7528\u72ec\u7acb\u4e3b\u673a\u538b\u6d4b\uff0c\u8fd8\u9700\u8981\u90e8\u7f72 Node-Controller \u96c6\u7fa4\u3002\u90e8\u7f72\u6b65\u9aa4:

    \u25a0 \u90e8\u7f72 Kafka \u96c6\u7fa4 \u25a0 \u90e8\u7f72 Data-Streaming \u96c6\u7fa4 \u25a0 \u90e8\u7f72 Node-Controller \u96c6\u7fa4

    "},{"location":"quick_start/api_test/","title":"\u4f7f\u7528\u63a5\u53e3\u6d4b\u8bd5","text":"

    MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\u63d0\u4f9b\u4e86\u63a5\u53e3\u5b9a\u4e49\u3001\u63a5\u53e3\u81ea\u52a8\u5316\u7b49\u63a5\u53e3\u6d4b\u8bd5\u76f8\u5173\u529f\u80fd\u3002 \u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u6811\u72b6\u591a\u7ea7\u6a21\u5757\u6765\u5206\u7ea7\u5206\u7ec4\u7ba1\u7406\u9879\u76ee\u4e0b\u7684\u63a5\u53e3\u5217\u8868\uff0c\u521b\u5efa\u6267\u884c\u63a5\u53e3\u7528\u4f8b\u6d4b\u8bd5\u63a5\u53e3\uff0c\u7ec4\u5408\u7f16\u6392\u591a\u4e2a\u63a5\u53e3\u7528\u4f8b\u8fdb\u884c\u573a\u666f\u81ea\u52a8\u5316\u6d4b\u8bd5\u3002

    "},{"location":"quick_start/api_test/#1","title":"1 \u63a5\u53e3\u5b9a\u4e49\u7ba1\u7406","text":"

    \u8fdb\u5165\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011->\u3010\u63a5\u53e3\u5b9a\u4e49\u3011 \u9875\u9762\u3002

    "},{"location":"quick_start/api_test/#11-swagger","title":"1.1 \u5bfc\u5165 Swagger \u63a5\u53e3\u6587\u6863","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u66f4\u591a\u64cd\u4f5c\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u5bfc\u5165\u3011\u6309\u94ae\u3002

    \u9009\u62e9 Swagger \u6570\u636e\u683c\u5f0f\uff0c\u9009\u62e9 MeterSphere \u6a21\u5757\uff0c\u9009\u62e9\u3010\u5bfc\u5165\u6a21\u5f0f\u3011\u4e3a\u4e0d\u8986\u76d6\uff0c\u9009\u62e9\u3010\u5bfc\u5165\u7248\u672c\u3011\uff0c\u9009\u62e9\u4f7f\u7528 URL \u5bfc\u5165\uff0c\u5e76\u586b\u5165 Swagger \u5bf9\u5e94\u7684 JSON \u5730\u5740 http://xxx.fit2cloud.com/v3/api-docs\uff0c\u5bfc\u5165 API \u63a5\u53e3\u3002

    \u3010\u7248\u672c\u7ba1\u7406\u3011\u4e3a\u4f01\u4e1a\u7248 X-Pack \u529f\u80fd\uff0c\u5982\u679c\u662f\u793e\u533a\u7248\uff0c\u6ca1\u6709 \u3010\u5bfc\u5165\u7248\u672c\u3011\u9009\u9879\u3002

    "},{"location":"quick_start/api_test/#12","title":"1.2 \u67e5\u770b\u63a5\u53e3\u5b9a\u4e49","text":"

    \u5bfc\u5165 Swagger \u6587\u4ef6\u4e4b\u540e\uff0c\u5728\u63a5\u53e3\u5217\u8868\u4e2d\u627e\u9700\u8981\u7f16\u8f91\u7684\u76ee\u6807\u63a5\u53e3 \uff0c\u70b9\u51fb\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u67e5\u770b\u63a5\u53e3\u8be6\u60c5\u3002

    "},{"location":"quick_start/api_test/#13","title":"1.3 \u6dfb\u52a0\u6d4b\u8bd5\u73af\u5883","text":"

    \u63a5\u53e3\u5217\u8868\u4e2d\u4ec5\u8bb0\u5f55\u4e86\u63a5\u53e3\u7684\u76f8\u5bf9 URL\uff0c\u5f53\u6211\u4eec\u9700\u8981\u5bf9\u67d0\u4e2a\u63a5\u53e3\u8fdb\u884c\u6d4b\u8bd5\u65f6\uff0c\u9700\u8981\u5148\u5728\u8be5\u9879\u76ee\u4e2d\u6dfb\u52a0\u9488\u5bf9\u8be5\u9879\u76ee\u7684\u6d4b\u8bd5\u73af\u5883\u4fe1\u606f\u3002 \u70b9\u51fb\u5de6\u4fa7\u83dc\u5355\u680f\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011->\u3010\u9879\u76ee\u7ba1\u7406\u3011 \u9875\u9762\u3002\u70b9\u51fb\u3010\u521b\u5efa\u73af\u5883\u3011 \u6309\u94ae\uff0c\u586b\u5199\u73af\u5883\u540d\u79f0\u53ca\u73af\u5883\u57df\u540d\uff0c\u70b9\u51fb\u786e\u5b9a\u4fdd\u5b58\u6d4b\u8bd5\u73af\u5883\u4fe1\u606f\u3002

    "},{"location":"quick_start/api_test/#14","title":"1.4 \u8c03\u8bd5\u5355\u4e2a\u63a5\u53e3","text":"

    \u5982 /signin \u767b\u5f55\u63a5\u53e3\u8c03\u8bd5\uff0c\u70b9\u51fb\u64cd\u4f5c\u5217\u4e2d\u7684 \u3010\u7f16\u8f91\u3011 \u6309\u94ae\uff0c\u8fdb\u5165\u63a5\u53e3\u8be6\u60c5\u9875\u9762\u3002

    \u70b9\u51fb\u754c\u9762\u4e0a\u65b9\u7684\u3010TEST\u3011\u6309\u94ae\uff0c\u8fdb\u5165\u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u3002\u5728\u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u9009\u62e9\u63a5\u53e3\u6267\u884c\u73af\u5883\uff0c\u5e76\u586b\u5199\u63a5\u53e3\u6240\u9700\u7684\u53c2\u6570\u540e\uff0c\u70b9\u51fb\u3010\u6d4b\u8bd5\u3011\u6309\u94ae\u53d1\u9001\u8be5\u63a5\u53e3\u8bf7\u6c42\u3002

    \u5f53\u63a5\u53e3\u8bf7\u6c42\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u5728\u4e0b\u65b9\u7684\u54cd\u5e94\u5185\u5bb9\u4e2d\u67e5\u770b\u5230\u672c\u6b21\u63a5\u53e3\u8bf7\u6c42\u7684\u54cd\u5e94\u4fe1\u606f\u3002

    "},{"location":"quick_start/api_test/#2","title":"2 \u521b\u5efa\u5355\u63a5\u53e3\u7528\u4f8b","text":"

    \u8fdb\u5165\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011->\u3010\u63a5\u53e3\u5b9a\u4e49\u3011\u9875\u9762\u3002

    "},{"location":"quick_start/api_test/#21","title":"2.1 \u65b0\u5efa\u5355\u63a5\u53e3\u7528\u4f8b","text":"

    \u5982\u7ed9 /signin \u767b\u5f55\u63a5\u53e3\u6dfb\u52a0\u7528\u4f8b\uff0c\u70b9\u51fb\u64cd\u4f5c\u5217\u4e2d\u7684\u3010CASE\u3011\u6309\u94ae\uff0c\u6253\u5f00\u8be5\u63a5\u53e3\u7684\u7528\u4f8b\u5217\u8868\u9875\u9762\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u3011\u6309\u94ae\uff0c\u6dfb\u52a0\u7528\u4f8b\u3002

    \u8f93\u5165\u63a5\u53e3\u7528\u4f8b\u7684\u540d\u79f0\u53ca\u8bf7\u6c42\u63a5\u53e3\u6240\u9700\u7684\u5176\u4ed6\u53c2\u6570\u540e\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u3010\u4fdd\u5b58\u3011\u6309\u94ae\u4fdd\u5b58\u8be5\u63a5\u53e3\u7528\u4f8b\u3002

    "},{"location":"quick_start/api_test/#22","title":"2.2 \u6d4b\u8bd5\u5355\u63a5\u53e3\u7528\u4f8b","text":"

    \u5728\u5355\u63a5\u53e3\u7528\u4f8b\u53f3\u4e0a\u65b9\u9009\u62e9\u3010\u6267\u884c\u73af\u5883\u3011\uff0c\u70b9\u51fb\u3010\u6267\u884c\u3011\u6309\u94ae\u8c03\u8bd5\u5355\u63a5\u53e3\u7528\u4f8b\uff0c\u6267\u884c\u7ed3\u675f\u540e\uff0c\u5c55\u5f00\u7528\u4f8b\u8be6\u60c5\u67e5\u770b\u54cd\u5e94\u5185\u5bb9\u3002

    "},{"location":"quick_start/api_test/#3","title":"3 \u521b\u5efa\u573a\u666f\u7528\u4f8b","text":"

    \u8fdb\u5165\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011->\u3010\u63a5\u53e3\u81ea\u52a8\u5316\u3011\u9875\u9762\u3002

    "},{"location":"quick_start/api_test/#31","title":"3.1 \u65b0\u5efa\u573a\u666f\u7528\u4f8b","text":"

    \u5728\u573a\u666f\u7528\u4f8b\u5217\u8868\u9875\u9762\uff0c\u70b9\u51fb\u5de6\u4fa7\u7684\u6a21\u5757\u6811\u65b0\u5efa MeterSphere \u6a21\u5757\u3002

    \u70b9\u51fb\u3010\u521b\u5efa\u573a\u666f\u3011\u6309\u94ae\u65b0\u5efa\u4e00\u4e2a \u83b7\u53d6\u7528\u6237\u5217\u8868 \u7684\u573a\u666f\uff0c\u8be5\u573a\u666f\u7684\u76ee\u7684\u662f\u83b7\u53d6\u5f53\u524d MeterSphere \u7cfb\u7edf\u6240\u6709\u7684\u7528\u6237\u5217\u8868\u4fe1\u606f\uff0c\u56e0\u4e3a\u83b7\u53d6\u7528\u6237\u5217\u8868\u63a5\u53e3\u9700\u8981\u767b\u5f55\u72b6\u6001\u6216\u8005\u63a5\u53e3\u7b7e\u540d\u8ba4\u8bc1\u624d\u53ef\u4ee5\u6b63\u5e38\u8bf7\u6c42\uff0c\u8fd9\u91cc\u91c7\u7528\u7c7b\u4f3c Swagger \u8c03\u8bd5\u7684\u65b9\u5f0f\uff0c\u5148\u83b7\u53d6\u767b\u5f55\u6001\uff0c\u518d\u6267\u884c\u83b7\u53d6\u7528\u6237\u5217\u8868\u63a5\u53e3\uff0c\u8fd9\u91cc\u9700\u8981\u5206\u522b\u5bfc\u5165\u767b\u5f55\u548c\u83b7\u53d6\u7528\u6237\u5217\u8868\u4e24\u4e2a\u63a5\u53e3\uff0c\u540c\u65f6\u9700\u8981\u52fe\u9009\u4e0a\u3010\u5171\u4eabcookie\u3011\uff0c\u586b\u5199\u5b8c\u573a\u666f\u57fa\u672c\u4fe1\u606f\u540e\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u6309\u94ae\u4fdd\u5b58\u8be5\u573a\u666f\u3002

    "},{"location":"quick_start/api_test/#32","title":"3.2 \u6dfb\u52a0\u573a\u666f\u6b65\u9aa4","text":"

    \u9996\u5148\u52fe\u9009\u3010\u5171\u4eabcookie\u3011\u6309\u94ae\uff0c\u7136\u540e\u70b9\u51fb\u573a\u666f\u8be6\u60c5\u4e2d\u53f3\u4e0b\u89d2\u7684\u3010+\u3011\u6dfb\u52a0\u573a\u666f\u6b65\u9aa4\u6309\u94ae\uff0c\u5728\u573a\u666f\u4e2d\u4e00\u6b21\u6dfb\u52a0\u5982\u4e0b\u51e0\u4e2a\u6b65\u9aa4\u3002

    \u9009\u62e9\u3010\u63a5\u53e3\u5217\u8868\u5bfc\u5165\u3011\u6b65\u9aa4\uff0c\u5728\u5f39\u51fa\u7684\u63a5\u53e3\u5217\u8868\u4e2d\u627e\u5230 \u767b\u5f55 \u63a5\u53e3\u8fdb\u884c\u6dfb\u52a0\u3002

    \u5728\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u53ef\u4ee5\u76f4\u63a5\u4fee\u6539\u590d\u5236\u8fc7\u6765\u7684\u63a5\u53e3\u505a\u53c2\u6570\u4fee\u6539\u3002\u5982\u6b64\u5904\u7684 /signin \u76f8\u5173\u53c2\u6570\u53ef\u76f4\u63a5\u7f16\u8f91\u3002

    \u5c55\u5f00 /signin \u767b\u5f55\u63a5\u53e3\u7684\u8bf7\u6c42\u53c2\u6570\uff0c\u5207\u6362\u5230\u3010\u540e\u7f6e\u64cd\u4f5c\u3011\uff0c\u5728\u8be5\u9875\u9762\u6dfb\u52a0\u4e00\u4e2a\u540d\u79f0\u4e3a \u83b7\u53d6CSRF-TOKEN\u7684\u63d0\u53d6\u6b65\u9aa4\uff0c\u91c7\u7528\u3010\u63a8\u8350 JSONPath \u63d0\u53d6\u3011\u65b9\u5f0f\u6dfb\u52a0\u4e00\u4e2a\u63d0\u53d6\uff0c\u5728\u5f39\u51fa\u7684\u54cd\u5e94\u7ed3\u679c Json \u9875\u9762\u4e2d\uff0c\u4e0b\u62c9\u5230\u6700\u5e95\u5c42\uff0c\u52fe\u9009\u540d\u79f0\u4e3acsrfToken\u548csessionId\u7684\u5c5e\u6027\uff0cJSONPath \u8868\u8fbe\u5f0f\u5206\u522b\u4e3a $.data.csrfToken\u548c$.data.sessionId\u3002

    \u6ce8\u610f

    \u5f53\u524d\u6b65\u9aa4\u9700\u5148\u624b\u52a8\u6267\u884c\u6210\u529f\uff0c\u624d\u53ef\u4ee5\u4f7f\u7528\u63a8\u8350 JSONPath \u63d0\u53d6\u65b9\u5f0f\u3002

    \u518d\u6b21\u6dfb\u52a0\u4e00\u4e2a \u3010\u63a5\u53e3\u5217\u8868\u5bfc\u5165\u3011 \u6b65\u9aa4\uff0c\u9009\u62e9 getUserList \u63a5\u53e3\u3002\u4fee\u6539\u8bf7\u6c42\u5934\u91cc\u7684CSRF-TOKEN\u53c2\u6570\uff0c\u8bbe\u7f6e\u4e3a${csrfToken}\uff0cX-AUTH-TOKEN\u53c2\u6570\u503c\u8bbe\u7f6e\u4e3a${sessionId}\uff0c\u4fee\u6539\u8be5\u63a5\u53e3\u8bf7\u6c42\u4e2d\u7684REST\u53c2\u6570 goPage \u4e3a1\uff0cpageSize \u4e3a10\u3002

    "},{"location":"quick_start/api_test/#3_1","title":"3 \u573a\u666f\u8c03\u8bd5","text":"

    \u573a\u666f\u6b65\u9aa4\u6dfb\u52a0\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u573a\u666f\u6b65\u4e0a\u65b9\u7684\u7684\u3010\u8c03\u8bd5\u3011\u6309\u94ae\uff0c\u53ef\u5728\u5217\u8868\u67e5\u770b\u5404\u4e2a\u6b65\u9aa4\u6267\u884c\u72b6\u6001\uff0c\u5c55\u5f00\u53ef\u67e5\u770b\u63a5\u53e3\u6267\u884c\u7684\u8be6\u7ec6\u4fe1\u606f\u3002

    \u70b9\u51fb\u3010\u8c03\u8bd5\u5386\u53f2\u3011\u4e5f\u53ef\u4ee5\u76f4\u63a5\u67e5\u770b\u8be6\u7ec6\u7684\u62a5\u544a\u4fe1\u606f\u3002

    "},{"location":"quick_start/api_test/#4","title":"4 \u6d4b\u8bd5\u62a5\u544a\u751f\u6210\u548c\u67e5\u770b","text":"

    \u70b9\u51fb\u573a\u666f\u6b65\u4e0a\u65b9\u7684\u3010\u8c03\u8bd5\u3011 \u6309\u94ae\u65c1\u8fb9\u7684\u3010V\u3011\uff0c\u9009\u62e9\u3010\u751f\u6210\u62a5\u544a\u3011\uff0c\u751f\u6210\u62a5\u544a\u548c\u67e5\u770b\u573a\u666f\u62a5\u544a\u7684\u6b65\u9aa4\u8be6\u7ec6\u4fe1\u606f\u3002

    \u4e5f\u53ef\u4ee5\u76f4\u63a5\u5728\u3010\u6d4b\u8bd5\u62a5\u544a\u3011\u5217\u8868\u70b9\u51fb\u53f3\u4fa7\u3010\u62a5\u544a\u8be6\u60c5\u3011\u67e5\u770b\u62a5\u544a\u8be6\u7ec6\u4fe1\u606f\u3002

    \u5728\u62a5\u544a\u5217\u8868\u4e2d\u9009\u62e9\u62a5\u544a\u3010\u8be6\u60c5\u3011\u6309\u94ae\u6253\u5f00\u3010\u6d4b\u8bd5\u62a5\u544a\u3011\u9875\u9762\uff0c\u5728\u9875\u9762\u4e2d\u53ef\u4ee5\u67e5\u770b\u62a5\u544a\u8be6\u60c5\uff0c\u5206\u4eab\u548c\u5bfc\u51fa\u62a5\u544a\u3002

    "},{"location":"quick_start/create_project/","title":"\u521b\u5efa\u9879\u76ee","text":"

    \u5728 MeterSphere \u4e2d\uff0c\u6d4b\u8bd5\u7528\u4f8b\u3001\u6d4b\u8bd5\u8ba1\u5212\u3001\u63a5\u53e3\u6d4b\u8bd5\u3001UI \u6d4b\u8bd5\u53ca\u6027\u80fd\u6d4b\u8bd5\u7b49\u7684\u7ba1\u7406\u5747\u901a\u8fc7\u9879\u76ee\u8fdb\u884c\u5206\u6743\u5206\u57df\u67e5\u770b\u548c\u7ba1\u7406\uff0c\u4f7f\u7528MeterSphere \u8fdb\u884c\u6d4b\u8bd5\uff0c\u767b\u5f55\u8fdb\u5165\u5de5\u4f5c\u7a7a\u95f4\u540e\uff0c\u9996\u5148\u9700\u8981\u521b\u5efa\u9879\u76ee\uff0c\u5728\u9879\u76ee\u4e0b\u521b\u5efa\u7ba1\u7406\u64cd\u4f5c\u529f\u80fd\u7528\u4f8b\u3001\u6d4b\u8bd5\u8ba1\u5212\u3001\u63a5\u53e3\u6d4b\u8bd5\u3001UI \u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u7b49\u3002\u8fdb\u4e00\u6b65\u7684\u7ba1\u7406\u6a21\u578b\u8bf4\u660e\u8bf7\u53c2\u8003\u7ba1\u7406\u6a21\u578b\u3002

    \u5728\u5de6\u4fa7\u83dc\u5355\u4e2d\u70b9\u51fb\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011\uff0c\u5728\u6253\u5f00\u7684\u9875\u9762\u5de6\u4fa7\u4e8c\u7ea7\u83dc\u5355\u4e2d\uff0c\u9009\u62e9\u3010\u5de5\u4f5c\u7a7a\u95f4\u3011\u4e0b\u3010\u9879\u76ee\u7ba1\u7406\u3011\u83dc\u5355\uff0c\u6253\u5f00\u3010\u9879\u76ee\u7ba1\u7406\u3011\u9875\u9762\u3002

    \u5728\u3010\u9879\u76ee\u7ba1\u7406\u3011\u9875\u9762\uff0c\u70b9\u51fb\u3010\u521b\u5efa\u9879\u76ee\u3011 \u6309\u94ae\uff0c\u6253\u5f00\u3010\u521b\u5efa\u9879\u76ee\u3011\u5bf9\u8bdd\u6846\uff0c\u5728\u5bf9\u8bdd\u6846\u4e2d\u8f93\u5165\u9879\u76ee\u7684\u57fa\u672c\u4fe1\u606f\u540e\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u521b\u5efa\u4e00\u4e2a\u65b0\u9879\u76ee\u3002

    "},{"location":"quick_start/load_test/","title":"\u4f7f\u7528\u6027\u80fd\u6d4b\u8bd5","text":"

    MeterSphere \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\u652f\u6301\u901a\u8fc7\u5df2\u6709\u7684\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3001\u573a\u666f\u6d4b\u8bd5\u521b\u5efa\u3001\u4e0a\u4f20 JMeter JMX \u505a\u6027\u80fd\u6d4b\u8bd5\uff0c\u5e76\u6309\u9700\u8bbe\u7f6e\u5e76\u53d1\u7528\u6237\u6570\u7b49\u6d4b\u8bd5\u53c2\u6570\uff0c\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u5e76\u5b9e\u65f6\u67e5\u770b\u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u3002

    "},{"location":"quick_start/load_test/#1","title":"1 \u521b\u5efa\u6d4b\u8bd5\u8d44\u6e90\u6c60","text":"

    \u901a\u8fc7\u5b89\u88c5\u5305\u5b89\u88c5 MeterSphere \u540e\uff0c\u7cfb\u7edf\u9ed8\u8ba4\u4f7f\u7528\u5f53\u524d\u8282\u70b9\u521b\u5efa\u4e86\u540d\u4e3a\u3010LOCAL\u3011\u6d4b\u8bd5\u8d44\u6e90\u6c60\u3002\u5173\u4e8e\u6d4b\u8bd5\u8d44\u6e90\u6c60\u7684\u4f5c\u7528\u8bf7\u53c2\u8003 FAQ\u3002

    \u5982\u679c\u9700\u8981\u521b\u5efa\u65b0\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\uff0c\u6216\u5411\u5df2\u6709\u8d44\u6e90\u6c60\u4e2d\u6dfb\u52a0\u8282\u70b9\uff0c\u8bf7\u53c2\u8003 \u5982\u4f55\u5411\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u6dfb\u52a0\u8282\u70b9\uff1f

    "},{"location":"quick_start/load_test/#2-url","title":"2 \u4fee\u6539\u5f53\u524d\u7ad9\u70b9 URL","text":"

    \u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u8fc7\u7a0b\u4e2d node-controller \u8282\u70b9\u9700\u8981\u901a\u8fc7\u914d\u7f6e\u7684\u3010\u5f53\u524d\u7ad9\u70b9URL\u3011 \u4e0b\u8f7d JMX \u7b49\u6d4b\u8bd5\u8d44\u6e90\u6587\u4ef6\u3002\u5728\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u524d\u9700\u8981\u914d\u7f6e\u5e76\u68c0\u67e5\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u7684\u8282\u70b9\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u5230\u8be5 URL\uff0cURL \u503c\u4e00\u822c\u4e3a\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee MeterSphere \u7684\u5730\u5740\u3002

    "},{"location":"quick_start/load_test/#3","title":"3 \u521b\u5efa\u6027\u80fd\u6d4b\u8bd5","text":"

    \u8fdb\u5165\u3010\u6027\u80fd\u6d4b\u8bd5\u3011-\u3010\u6d4b\u8bd5\u3011\u9875\u9762\u3002

    \u5728\u6027\u80fd\u6d4b\u8bd5\u5217\u8868\u4e2d\u70b9\u51fb\u3010\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u3011\uff0c\u5728\u3010\u573a\u666f\u914d\u7f6e\u3011\u70b9\u51fb\u3010\u5f15\u7528\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u3011\uff0c\u5c06\u5df2\u6709\u7684\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u6dfb\u52a0\u5230\u6027\u80fd\u6d4b\u8bd5\u4e2d\u3002

    "},{"location":"quick_start/load_test/#4","title":"4 \u8c03\u6574\u538b\u529b\u914d\u7f6e","text":"

    \u5728\u538b\u529b\u914d\u7f6e\u9875\u9762\u9009\u62e9\u7cfb\u7edf\u914d\u7f6e\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\u3002 \u70b9\u51fb\u5c55\u5f00\u7b2c\u4e00\u4e2a\u7ebf\u7a0b\u7ec4\u7684\u914d\u7f6e\u9875\u9762\uff0c\u586b\u5165\u5e76\u53d1\u53c2\u6570\u3002 \u5177\u4f53\u7684\u5e76\u53d1\u914d\u7f6e\u5982\u4e0b\uff1a

    • \u5e76\u53d1\u7528\u6237\u6570\uff1a10
    • \u9009\u62e9\u3010\u6309\u6301\u7eed\u65f6\u95f4\u3011\u6a21\u5f0f
    • \u538b\u6d4b\u65f6\u957f\uff1a5\u5206\u949f
    • RPS \u4e0a\u9650\u4e0d\u8bbe\u7f6e
    • \u5728\u573a\u666f\u914d\u7f6e\u4e2d\u9009\u62e9\u3010ConcurrencyThreadGroup\u3011\u52a0\u538b\u6a21\u578b\uff0c\u8bbe\u7f6e10\u79d2\u5185\u52065\u6b65\u589e\u52a0\u5e76\u53d1\u7528\u6237

    "},{"location":"quick_start/load_test/#5","title":"5 \u6267\u884c\u5e76\u67e5\u770b\u62a5\u544a","text":"

    \u70b9\u51fb\u6027\u80fd\u6d4b\u8bd5\u914d\u7f6e\u9875\u9762\u7684\u3010\u4fdd\u5b58\u5e76\u6267\u884c\u3011\u6309\u94ae\uff0c\u7cfb\u7edf\u81ea\u52a8\u8fdb\u5165\u6027\u80fd\u6d4b\u8bd5\u6d4b\u8bd5\u62a5\u544a\u9875\u9762\u3002\u5f53\u6536\u5230\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u540e\uff0c\u62a5\u544a\u9875\u9762\u5c06\u81ea\u52a8\u66f4\u65b0\u3002

    "},{"location":"quick_start/quick_start/","title":"\u4e00\u952e\u90e8\u7f72","text":""},{"location":"quick_start/quick_start/#1","title":"1 \u4e00\u952e\u90e8\u7f72","text":"

    \u51c6\u5907\u597d\u90e8\u7f72\u670d\u52a1\u5668\u540e\uff0c\u53ef\u901a\u8fc7 MeterSphere \u5feb\u901f\u5b89\u88c5\u811a\u672c\u4e00\u952e\u5feb\u901f\u90e8\u7f72\u3002\u4e00\u952e\u5b89\u88c5\u91c7\u7528\u9ed8\u8ba4\u5b89\u88c5\u53c2\u6570\uff0c\u66f4\u591a\u6709\u5173\u79bb\u7ebf\u90e8\u7f72\u3001\u5bb9\u5668\u90e8\u7f72\u3001\u5206\u5e03\u5f0f\u90e8\u7f72\u7b49\u65b9\u5f0f\u53ef\u67e5\u770b\u3010\u5b89\u88c5\u90e8\u7f72\u3011\u7ae0\u8282\u5185\u5bb9\u3002

    \u90e8\u7f72\u670d\u52a1\u5668\u8981\u6c42\uff1a

    • \u64cd\u4f5c\u7cfb\u7edf\u8981\u6c42\uff1aCentOS 7.x
    • CPU\u5185\u5b58\u8981\u6c42\uff1a\u6700\u4f4e\u8981\u6c42 4C8G\uff0c\u63a8\u8350 8C16G (\u4f01\u4e1a\u7248\u6700\u4f4e\u914d\u7f6e 8C16G)
    • \u90e8\u7f72\u76ee\u5f55\u7a7a\u95f4\uff08\u9ed8\u8ba4/opt\u76ee\u5f55\uff09\u8981\u6c42\uff1a50G
    • \u7f51\u7edc\u8981\u6c42\uff1a\u53ef\u8bbf\u95ee\u4e92\u8054\u7f51
    • \u5982\u7528\u4e8e\u751f\u4ea7\u73af\u5883\uff0c\u63a8\u8350\u4f7f\u7528 \u79bb\u7ebf\u5b89\u88c5\u5305 \u8fdb\u884c\u90e8\u7f72

    \u4ee5 root \u7528\u6237 ssh \u767b\u5f55\u90e8\u7f72\u76ee\u6807\u670d\u52a1\u5668\uff0c\u6267\u884c\u4ee5\u4e0b\u811a\u672c\u8fdb\u884c\u4e00\u952e\u5b89\u88c5:

    curl -sSL https://resource.fit2cloud.com/metersphere/metersphere/releases/latest/download/quick_start.sh | bash\n

    \u5b89\u88c5\u6210\u529f\u540e\uff0c\u5ba2\u6237\u7aef\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u4ee5\u4e0b\u5730\u5740\uff0c\u8f93\u5165\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u5373\u53ef\u5f00\u59cb\u4f7f\u7528 MeterSphere\u3002

    \u5730\u5740: http://\u76ee\u6807\u670d\u52a1\u5668IP\u5730\u5740:8081\n\u9ed8\u8ba4\u7528\u6237\u540d: admin\n\u9ed8\u8ba4\u5bc6\u7801: metersphere\n

    "},{"location":"quick_start/quick_start/#2","title":"2 \u754c\u9762\u8bf4\u660e","text":"

    \u8fdb\u5165 MeterSphere \u4e3b\u754c\u9762\u540e\u53ef\u4ee5\u770b\u5230\u754c\u9762\u5de6\u8fb9\u662f\u5bfc\u822a\u680f\uff0c\u5305\u62ec\u3010\u5de5\u4f5c\u53f0\u3011\u3010\u6d4b\u8bd5\u8ddf\u8e2a\u3011\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011\u3010UI \u6d4b\u8bd5\u3011\u3010\u6027\u80fd\u6d4b\u8bd5\u3011\u3010\u62a5\u8868\u7edf\u8ba1\u3011\u3010\u9879\u76ee\u8bbe\u7f6e\u3011\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011\u516b\u4e2a\u6a21\u5757\uff0c\u5176\u4e2d UI \u6d4b\u8bd5\u662f\u4f01\u4e1a\u7248\u672c X-Pack\u7684\u529f\u80fd\uff0c\u754c\u9762\u4e0a\u65b9\u4ee5 Tab \u9875\u65b9\u5f0f\u5c55\u793a\u5f53\u524d\u6a21\u5757\u7684\u5177\u4f53\u529f\u80fd\u3002

    "},{"location":"quick_start/test_track/","title":"\u4f7f\u7528\u6d4b\u8bd5\u8ddf\u8e2a","text":"

    MeterSphere \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\u652f\u6301\u6d4b\u8bd5\u7528\u4f8b\u7ba1\u7406\u3001\u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\u3001\u6d4b\u8bd5\u8ba1\u5212\u8ddf\u8e2a\u7b49\u3002

    \u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u6811\u72b6\u591a\u7ea7\u6a21\u5757\u6765\u5206\u7ea7\u5206\u7ec4\u7ba1\u7406\u9879\u76ee\u4e0b\u7684\u6d4b\u8bd5\u7528\u4f8b\uff0c\u5bf9\u5df2\u6dfb\u52a0\u7684\u6d4b\u8bd5\u7528\u4f8b\u8fdb\u884c\u8bc4\u5ba1\uff0c\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\uff0c\u5c06\u5f85\u6d4b\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3001\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3001UI \u6d4b\u8bd5\u7528\u4f8b\u53ca\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u6dfb\u52a0\u5230\u6d4b\u8bd5\u8ba1\u5212\uff0c\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\uff0c\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3002

    "},{"location":"quick_start/test_track/#1","title":"1 \u6dfb\u52a0\u6d4b\u8bd5\u7528\u4f8b","text":"

    \u5728\u5de6\u4fa7\u83dc\u5355\u680f\u4e2d\u9009\u62e9\u3010\u6d4b\u8bd5\u8ddf\u8e2a\u3011\uff0c\u5728\u6253\u5f00\u7684\u9875\u9762\u9876\u90e8\u83dc\u5355\u4e2d\u9009\u62e9\u3010\u529f\u80fd\u7528\u4f8b\u3011\u6253\u5f00\u3010\u7528\u4f8b\u5217\u8868\u3011\u9875\u9762\u3002

    "},{"location":"quick_start/test_track/#11","title":"1.1 \u521b\u5efa\u6a21\u5757","text":"

    MeterSphere \u901a\u8fc7\u6a21\u5757\u6811\u7684\u65b9\u5f0f\u7ec4\u7ec7\u7ba1\u7406\u6d4b\u8bd5\u7528\u4f8b\uff0c\u7528\u6237\u53ef\u4ee5\u5728\u5de6\u4fa7\u67e5\u770b\u5230\u5f53\u524d\u9879\u76ee\u6d4b\u8bd5\u7528\u4f8b\u7684\u6a21\u5757\u6811\u3002\u70b9\u51fb\u5de6\u4fa7\u7684\u6a21\u5757\u6811\u4e2d\u7684\u3010\u6dfb\u52a0\u5b50\u6a21\u5757\u3011\u6309\u94ae\uff0c\u53ef\u4e3a\u8be5\u9879\u76ee\u6dfb\u52a0\u6a21\u5757\u3002

    "},{"location":"quick_start/test_track/#12","title":"1.2 \u8868\u5355\u65b9\u5f0f\u521b\u5efa\u7528\u4f8b","text":"

    \u521b\u5efa\u597d\u6a21\u5757\u540e\uff0c\u5373\u53ef\u5728\u5404\u4e2a\u6a21\u5757\u4e2d\u6dfb\u52a0\u6d4b\u8bd5\u7528\u4f8b\u3002\u5728\u3010\u7528\u4f8b\u5217\u8868\u3011\u9875\u9762\u4e2d\uff0c\u70b9\u51fb\u3010\u7528\u4f8b\u5217\u8868\u3011\u6807\u7b7e\u65c1\u7684\u3010+\u3011\u6309\u94ae\uff0c\u5728\u4e0b\u62c9\u83dc\u5355\u4e2d\u9009\u62e9\u3010\u65b0\u5efa\u7528\u4f8b\u3011 \u6309\u94ae\u6253\u5f00\u3010\u65b0\u5efa\u7528\u4f8b\u3011\u9875\u9762\u3002

    \u5728\u6253\u5f00\u7684\u3010\u65b0\u5efa\u7528\u4f8b\u3011\u9875\u9762\u4e2d\uff0c\u586b\u5199\u7528\u4f8b\u540d\u79f0\u3001\u524d\u7f6e\u6761\u4ef6\u3001\u6d4b\u8bd5\u6b65\u9aa4\u7b49\u8be6\u7ec6\u4fe1\u606f\uff0c\u4e4b\u540e\u70b9\u51fb\u3010\u4fdd\u5b58\u3011 \u6309\u94ae\u5b8c\u6210\u7528\u4f8b\u521b\u5efa\u3002

    "},{"location":"quick_start/test_track/#13","title":"1.3 \u8868\u5355\u65b9\u5f0f\u67e5\u770b\u7528\u4f8b","text":"

    \u5728\u3010\u7528\u4f8b\u5217\u8868\u3011\u9875\u9762\u4e2d\uff0c\u70b9\u51fb\u3010\u67e5\u770b\u3011\u6309\u94ae\uff0c\u5373\u53ef\u67e5\u770b\u8be5\u7528\u4f8b\u3002

    "},{"location":"quick_start/test_track/#14","title":"1.4 \u8111\u56fe\u65b9\u5f0f\u521b\u5efa\u7528\u4f8b","text":"

    \u9664\u4e86\u901a\u8fc7\u586b\u5199\u8868\u5355\u7684\u65b9\u5f0f\u7f16\u8f91\u3001\u5c55\u793a\u7528\u4f8b\uff0c\u8fd8\u53ef\u4ee5\u901a\u8fc7\u8111\u56fe\u7684\u65b9\u5f0f\u5b9e\u73b0\u6b64\u529f\u80fd\u3002\u5728\u3010\u7528\u4f8b\u5217\u8868\u3011\u9875\u9762\u70b9\u51fb\u3010\u8111\u56fe\u3011\u6807\u7b7e\u5207\u6362\u5230\u8111\u56fe\u5c55\u793a\u6a21\u5f0f\uff0c\u901a\u8fc7\u5728\u6a21\u5757\u4e0b\u6dfb\u52a0\u5b50\u8282\u70b9\u5e76\u6dfb\u52a0\u6807\u7b7e\u7684\u65b9\u5f0f\u521b\u5efa\u7528\u4f8b\u3002

    "},{"location":"quick_start/test_track/#2","title":"2 \u53d1\u8d77\u7528\u4f8b\u8bc4\u5ba1","text":"

    \u5728\u9876\u90e8\u83dc\u5355\u680f\u4e2d\uff0c\u9009\u62e9\u3010\u7528\u4f8b\u8bc4\u5ba1\u3011\u6253\u5f00\u3010\u7528\u4f8b\u8bc4\u5ba1\u3011\u9875\u9762\u3002

    "},{"location":"quick_start/test_track/#21","title":"2.1 \u521b\u5efa\u7528\u4f8b\u8bc4\u5ba1","text":"

    \u5728\u3010\u7528\u4f8b\u8bc4\u5ba1\u3011\u5217\u8868\u9875\u9762\u4e2d\uff0c\u70b9\u51fb\u5217\u8868\u4e0a\u65b9\u7684\u3010\u521b\u5efa\u7528\u4f8b\u8bc4\u5ba1\u3011\u6309\u94ae\uff0c\u5728\u6253\u5f00\u7684\u9875\u9762\u4e2d\u8f93\u5165\u7528\u4f8b\u8bc4\u5ba1\u4efb\u52a1\u540d\u79f0\u3001\u8bc4\u5ba1\u4eba\u7b49\u4fe1\u606f\u540e\uff0c\u70b9\u51fb\u4e0b\u65b9\u7684\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5b8c\u6210\u7528\u4f8b\u8bc4\u5ba1\u7684\u521b\u5efa\u3002

    "},{"location":"quick_start/test_track/#22","title":"2.2 \u7528\u4f8b\u8bc4\u5ba1\u5173\u8054\u7528\u4f8b","text":"

    \u5728\u3010\u7528\u4f8b\u8bc4\u5ba1\u3011\u5217\u8868\u9875\u9762\uff0c\u627e\u5230\u8981\u6dfb\u52a0\u7528\u4f8b\u7684\u8bc4\u5ba1\uff0c\u70b9\u51fb\u6253\u5f00\u3010\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3011\u5217\u8868\u9875\u9762\u3002 \u5728\u3010\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3011\u5217\u8868\u9875\u9762\uff0c\u70b9\u51fb\u3010\u5173\u8054\u7528\u4f8b\u3011 \u6309\u94ae\uff0c\u6253\u5f00\u3010\u5173\u8054\u7528\u4f8b\u3011\u5bf9\u8bdd\u6846\uff0c\u5728\u5bf9\u8bdd\u6846\u4e2d\u7684\u7528\u4f8b\u5217\u8868\u4e2d\u9009\u62e9\u8981\u6dfb\u52a0\u5230\u7528\u4f8b\u8bc4\u5ba1\u4efb\u52a1\u4e2d\u7684\u6d4b\u8bd5\u7528\u4f8b\uff0c\u9009\u62e9\u540e\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u4fdd\u5b58\u3002

    "},{"location":"quick_start/test_track/#23","title":"2.3 \u8bc4\u5ba1\u6d4b\u8bd5\u7528\u4f8b","text":"

    \u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u540e\uff0c\u5373\u53ef\u5728\u7528\u4f8b\u8bc4\u5ba1\u9875\u9762\u53f3\u4fa7\u7684\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u4e2d\u67e5\u770b\u5230\u5df2\u5173\u8054\u7684\u6d4b\u8bd5\u7528\u4f8b\u3002\u70b9\u51fb\u67d0\u4e2a\u6d4b\u8bd5\u7528\u4f8b\u64cd\u4f5c\u5217\u4e2d\u7684\u7f16\u8f91\u6309\u94ae\uff0c\u8fdb\u5165\u3010\u7528\u4f8b\u8be6\u60c5\u3011\u9875\u9762\u3002

    \u5728\u3010\u7528\u4f8b\u8be6\u60c5\u3011\u9875\u9762\u53f3\u4fa7\u8f93\u5165\u5e76\u53d1\u9001\u9488\u5bf9\u6b64\u6761\u6d4b\u8bd5\u7528\u4f8b\u7684\u8bc4\u8bba\u3002\u57fa\u4e8e\u8bc4\u5ba1\u7ed3\u679c\uff0c\u70b9\u51fb \u3010\u901a\u8fc7\u3011 \u6216 \u3010\u672a\u901a\u8fc7\u3011 \u7684\u72b6\u6001\u6309\u94ae\u4e3a\u672c\u6761\u7528\u4f8b\u6807\u8bb0\u8bc4\u5ba1\u72b6\u6001\u3002

    "},{"location":"quick_start/test_track/#24","title":"2.4 \u8111\u56fe\u65b9\u5f0f\u8bc4\u5ba1\u7528\u4f8b","text":"

    \u9664\u4e86\u901a\u8fc7\u5217\u8868\u53ca\u8868\u5355\u65b9\u5f0f\u8bc4\u5ba1\u7528\u4f8b\u5916\uff0c\u8fd8\u53ef\u4ee5\u901a\u8fc7\u8111\u56fe\u65b9\u5f0f\u5b9e\u73b0\u6b64\u529f\u80fd\u3002\u5728\u3010\u7528\u4f8b\u5217\u8868\u3011\u9875\u9762\u70b9\u51fb \u3010\u8111\u56fe\u3011 \u6807\u7b7e\u5207\u6362\u5230\u8111\u56fe\u5c55\u793a\u6a21\u5f0f\uff0c\u9009\u4e2d\u5f85\u8bc4\u5ba1\u7528\u4f8b\uff0c\u901a\u8fc7\u6dfb\u52a0\u6807\u7b7e\u7684\u65b9\u5f0f\u6765\u6807\u8bb0\u7528\u4f8b\u8bc4\u5ba1\u7ed3\u679c\u3002

    "},{"location":"quick_start/test_track/#3","title":"3 \u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212","text":"

    \u5728\u9876\u90e8\u83dc\u5355\u680f\u4e2d\uff0c\u9009\u62e9\u3010\u6d4b\u8bd5\u8ba1\u5212\u3011\u6253\u5f00\u3010\u6d4b\u8bd5\u8ba1\u5212\u3011\u9875\u9762\u3002

    "},{"location":"quick_start/test_track/#31","title":"3.1 \u65b0\u5efa\u6d4b\u8bd5\u8ba1\u5212","text":"

    \u5728\u3010\u6d4b\u8bd5\u8ba1\u5212\u3011\u9875\u9762\uff0c\u70b9\u51fb\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u4e0a\u65b9\u7684\u3010\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\u3011\u6309\u94ae\uff0c\u6253\u5f00\u3010\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\u3011\u5bf9\u8bdd\u6846\uff0c\u5728\u5bf9\u8bdd\u6846\u4e2d\u8f93\u5165\u6b64\u6b21\u6d4b\u8bd5\u8ba1\u5212\u7684\u540d\u79f0\u3001\u8d1f\u8d23\u4eba\u7b49\u4fe1\u606f\u540e\uff0c\u70b9\u51fb \u3010\u786e\u5b9a\u3011 \u6309\u94ae\u5b8c\u6210\u6d4b\u8bd5\u8ba1\u5212\u521b\u5efa\u3002

    "},{"location":"quick_start/test_track/#32","title":"3.2 \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7528\u4f8b","text":"

    \u70b9\u51fb\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u4e2d\u65b0\u521b\u5efa\u7684\u6d4b\u8bd5\u8ba1\u5212\uff0c\u8fdb\u5165\u6d4b\u8bd5\u8ba1\u5212\u8be6\u60c5\u9875\u9762\u3002 \u5207\u6362\u8981\u5173\u8054\u7684\u6d4b\u8bd5\u7528\u4f8b\u7c7b\u578b\u83dc\u5355\uff0c\u70b9\u51fb\u53f3\u4fa7\u5217\u8868\u4e0a\u65b9\u7684 \u3010\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u3011 \u6309\u94ae\uff0c\u5728\u5f39\u51fa\u7684\u7528\u4f8b\u9009\u62e9\u5217\u8868\u4e2d\u9009\u62e9\u8981\u6dfb\u52a0\u5230\u6b64\u6b21\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u7684\u6d4b\u8bd5\u7528\u4f8b\u3002\u53ef\u4ee5\u901a\u8fc7\u641c\u7d22\u6846\u53ca\u9ad8\u7ea7\u641c\u7d22\u529f\u80fd\u8fdb\u4e00\u6b65\u7b5b\u9009\u7279\u5b9a\u7684\u6d4b\u8bd5\u7528\u4f8b\u8fdb\u884c\u6dfb\u52a0\u3002

    \u8bb0\u5f55\u7528\u4f8b\u6267\u884c\u7ed3\u679c \u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u540e\uff0c\u5373\u53ef\u5728\u6d4b\u8bd5\u8ba1\u5212\u9875\u9762\u53f3\u4fa7\u7684\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u4e2d\u67e5\u770b\u5230\u5df2\u5173\u8054\u7684\u6d4b\u8bd5\u7528\u4f8b\u3002\u70b9\u51fb\u67d0\u4e2a\u6d4b\u8bd5\u7528\u4f8b\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u8fdb\u5165\u3010\u7528\u4f8b\u8be6\u60c5\u3011\u9875\u9762\u3002 \u5728\u6267\u884c\u6b65\u9aa4\u4e2d\uff0c\u586b\u5199\u6bcf\u4e00\u6b65\u7684\u5b9e\u9645\u7ed3\u679c\u53ca\u8be5\u6b65\u7684\u6267\u884c\u7ed3\u679c\uff0c\u57fa\u4e8e\u5404\u6b65\u9aa4\u6267\u884c\u60c5\u51b5\u53ca\u8bc4\u5b9a\u6807\u51c6\uff0c\u70b9\u51fb\u4e0a\u65b9\u7684\u72b6\u6001\u6309\u94ae\u4e3a\u6b64\u6761\u7528\u4f8b\u6807\u8bb0\u6267\u884c\u72b6\u6001\u3002 Tips:\u5728\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u4fee\u6539\u529f\u80fd\u7528\u4f8b\u7684\u72b6\u6001\uff0c\u4f1a\u540c\u6b65\u66f4\u65b0\u3010\u7528\u4f8b\u5217\u8868\u3011\u7684\u5bf9\u5e94\u7528\u4f8b\u7684\u72b6\u6001\u3002

    \u540c\u65f6\u5728\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u53ef\u76f4\u63a5\u5728\u66f4\u65b0\u7528\u4f8b\u72b6\u6001\u3002

    \u5173\u8054 \u3010\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3011\u3001\u3010UI \u6d4b\u8bd5\u7528\u4f8b\u3011\u3001\u3010\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3011\u65e0\u9700\u624b\u52a8\u4fee\u6539\u72b6\u6001\uff0c\u5173\u8054\u65b9\u5f0f\u548c\u3010\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3011\u76f8\u540c\u3002

    "},{"location":"quick_start/test_track/#33","title":"3.3 \u8111\u56fe\u65b9\u5f0f\u8bb0\u5f55\u7528\u4f8b\u6267\u884c\u7ed3\u679c","text":"

    \u4e0e\u7528\u4f8b\u7684\u521b\u5efa\u548c\u8bc4\u5ba1\u7c7b\u4f3c\uff0c\u7528\u4f8b\u6267\u884c\u7ed3\u679c\u540c\u6837\u53ef\u4ee5\u901a\u8fc7\u8111\u56fe\u65b9\u5f0f\u8bb0\u5f55\u3002\u5728\u3010\u7528\u4f8b\u5217\u8868\u3011\u9875\u9762\u70b9\u51fb\u3010\u8111\u56fe\u3011\u6807\u7b7e\u5207\u6362\u5230\u8111\u56fe\u5c55\u793a\u9875\u9762\uff0c\u9009\u4e2d\u5f85\u6267\u884c\u7528\u4f8b\uff0c\u901a\u8fc7\u6dfb\u52a0\u6807\u7b7e\u7684\u65b9\u5f0f\u6765\u6807\u8bb0\u7528\u4f8b\u6267\u884c\u7ed3\u679c\u3002

    "},{"location":"quick_start/test_track/#4","title":"4 \u6d4b\u8bd5\u8ba1\u5212\u6267\u884c","text":"

    \u70b9\u51fb\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u53f3\u4fa7\u3010\u6267\u884c\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\uff0c\u540c\u65f6\u6267\u884c\u65f6\u53ef\u9009\u62e9\u8fd0\u884c\u73af\u5883\u3001\u6267\u884c\u6a21\u5f0f\u3001\u8fd0\u884c\u8d44\u6e90\u6c60\u3001\u5931\u8d25\u91cd\u8bd5\u7b49\u5176\u4ed6\u914d\u7f6e\u3002

    "},{"location":"quick_start/test_track/#5","title":"5 \u67e5\u770b\u6d4b\u8bd5\u62a5\u544a","text":"

    \u5f53\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u7684\u6d4b\u8bd5\u7528\u4f8b\u6267\u884c\u5b8c\u6210\u540e\uff0c\u3010\u62a5\u544a\u3011\u9875\u7b7e\u83dc\u5355\u4e0b\u4f1a\u81ea\u52a8\u751f\u6210\u4e00\u4efd\u6d4b\u8bd5\u62a5\u544a\u3002\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u5c55\u793a\u6d4b\u8bd5\u6267\u884c\u7ed3\u679c\u7684\u8be6\u7ec6\u4fe1\u606f\u5e76\u7edf\u8ba1\u6d4b\u8bd5\u6267\u884c\u7387\u3001\u901a\u8fc7\u7387\u7b49\u6570\u636e\u3002\u6d4b\u8bd5\u62a5\u544a\u8be6\u60c5\u53f3\u4e0a\u89d2\u652f\u6301\u5206\u4eab\u3001\u5bfc\u51fa\u64cd\u4f5c\u3002

    "},{"location":"quick_start/ui_test/","title":"\u4f7f\u7528 UI \u6d4b\u8bd5","text":"

    MeterSphere UI \u6d4b\u8bd5\u63d0\u4f9b\u4e86\u5143\u7d20\u5e93\u3001UI \u81ea\u52a8\u5316\u3001\u6d4b\u8bd5\u62a5\u544a\u7b49UI\u6d4b\u8bd5\u76f8\u5173\u529f\u80fd\u3002 \u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u591a\u7ea7\u6a21\u5757\u6765\u7ec4\u7ec7\u7ba1\u7406\u9879\u76ee\u4e0b\u7684 UI \u81ea\u52a8\u5316\u573a\u666f\uff0c\u6267\u884c\u573a\u666f\uff0c\u751f\u6210\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3002UI \u6d4b\u8bd5\u6a21\u5757\u662f\u4f01\u4e1a\u7248 X-Pack \u529f\u80fd\u589e\u5f3a\u5305\u529f\u80fd\uff0c\u5982\u9700\u4f7f\u7528\uff0c\u8bf7\u70b9\u51fb\uff1a\u7533\u8bf7\u4f01\u4e1a\u7248\u8bd5\u7528\u3002

    \u6ce8\u610f\u4e8b\u9879

    1. \u4fee\u6539 /opt/metersphere/.env \u6587\u4ef6\uff0cMS_UI_ENABLED=true \u4fee\u6539\u914d\u7f6e\u540e\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\u6267\u884c msctl reload\u3002
    2. docker ps \u68c0\u67e5 selenium-hub \u5bb9\u5668\u662f\u5426\u6210\u529f\u542f\u52a8\u3002
    3. v2.8.1\u4e4b\u540e\u7248\u672c\u5728 MeterSphere \u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e\u4e2d\u4fee\u6539 selenium-docker \u5730\u5740\u4e3ahttp://selenium-hub:4444\u3002\u8be6\u60c5\u53c2\u8003https://bbs.fit2cloud.com/t/topic/127
    4. \u5728UI\u81ea\u52a8\u5316\u4e2d\uff0c\u4f7f\u7528\u672c\u5730\u8c03\u8bd5\u65f6\uff0c\u6ce8\u610f\u53d6\u6d88\u52fe\u9009\u201c\u6027\u80fd\u6a21\u5f0f\u201d\uff0c\u624d\u53ef\u6b63\u5e38\u62c9\u8d77\u672c\u5730\u6d4f\u89c8\u5668\u6267\u884c\u3002
    5. \u5982\u679c\u5bfc\u5165 License \u6210\u529f\u540e\uff0c\u4f9d\u7136\u6ca1\u6709 UI \u6d4b\u8bd5\u6a21\u5757\uff0c\u8bf7\u5230\u3010\u7528\u6237\u7ec4\u4e0e\u6743\u9650\u3011\u5904\u914d\u7f6e UI \u6a21\u5757\u6743\u9650\u3002
    "},{"location":"quick_start/ui_test/#1","title":"1 \u521b\u5efa\u6a21\u5757","text":"

    MeterSphere \u901a\u8fc7\u6a21\u5757\u6811\u7684\u65b9\u5f0f\u7ec4\u7ec7\u7ba1\u7406\u573a\u666f\uff0c\u7528\u6237\u53ef\u4ee5\u5728\u5de6\u4fa7\u521b\u5efa\u5e76\u7ba1\u7406\u6a21\u5757\u6811\u3002\u5143\u7d20\u5e93\u3001UI\u81ea\u52a8\u5316\u6a21\u5757\u5747\u652f\u6301\u521b\u5efa\u6a21\u5757\u6811\uff0c \u70b9\u51fb\u5de6\u4fa7\u7684\u6a21\u5757\u6811\u4e2d\u7684\u3010\u6dfb\u52a0\u5b50\u6a21\u5757\u3011\u6309\u94ae\uff0c\u4e3a\u8be5\u9879\u76ee\u6dfb\u52a0\u6a21\u5757\u3002

    "},{"location":"quick_start/ui_test/#2","title":"2 \u521b\u5efa\u5143\u7d20","text":"

    \u70b9\u51fb\u5de6\u4fa7\u7684\u6a21\u5757\u6811\u4e2d\u7684\u3010\u6dfb\u52a0\u5b50\u6a21\u5757\u3011 \u6309\u94ae\uff0c\u6dfb\u52a0\u6a21\u5757\uff0c\u7136\u540e\u521b\u5efa\u5143\u7d20\u3002\u5143\u7d20\u5e93\u53ef\u7528\u4e8e\u573a\u666f\u6b65\u9aa4\u4e2d\u5143\u7d20\u7684\u9009\u62e9\u3002

    "},{"location":"quick_start/ui_test/#3","title":"3 \u521b\u5efa\u573a\u666f","text":"

    \u7528\u6237\u53ef\u5728\u5404\u4e2a\u6a21\u5757\u4e2d\u6dfb\u52a0\u573a\u666f\uff0c\u53ef\u4ee5\u624b\u52a8\u521b\u5efa\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u5bfc\u5165\u7684\u65b9\u5f0f\u521b\u5efa UI \u81ea\u52a8\u5316\u573a\u666f\u3002

    "},{"location":"quick_start/ui_test/#31-selenium-ide","title":"3.1 \u5bfc\u5165 Selenium IDE \u811a\u672c","text":""},{"location":"quick_start/ui_test/#32","title":"3.2 \u624b\u52a8\u521b\u5efa\u573a\u666f","text":"

    \u70b9\u51fb\u53f3\u4fa7\u573a\u666f\u5217\u8868\u4e2d\u7684\u3010+\u3011\u53f7\u6309\u94ae\uff0c\u521b\u5efa\u573a\u666f\u3002

    \u5728\u6253\u5f00\u7684\u3010\u7528\u4f8b\u7f16\u8f91\u3011\u9875\u9762\u4e2d\u586b\u5199\u540d\u79f0\u3001\u6a21\u5757\u3001\u72b6\u6001\u3001\u8d23\u4efb\u4eba\u7b49\u8be6\u7ec6\u4fe1\u606f\u3002

    \u70b9\u51fb\u9875\u9762\u53f3\u4e0b\u89d2\u3010+\u3011\u53f7\uff0c\u53ef\u4ee5\u6dfb\u52a0\u573a\u666f\u6b65\u9aa4\uff0c\u573a\u666f\u6b65\u9aa4\u4e2d\u7684\u64cd\u4f5c\u5bf9\u8c61\u53ef\u4ee5\u9009\u62e9\u3010\u5143\u7d20\u5bf9\u8c61\u3011\u6216\u8005\u3010\u5143\u7d20\u5b9a\u4f4d\u3011\uff0c\u3010\u5143\u7d20\u5bf9\u8c61\u3011\u662f\u4ece\u5143\u7d20\u5e93\u4e2d\u9009\u53d6\u914d\u7f6e\u597d\u7684\u5143\u7d20\uff0c\u3010\u5143\u7d20\u5b9a\u4f4d\u3011\u9700\u8981\u7528\u5143\u7d20\u5b9a\u4f4d\u7684\u65b9\u5f0f\u53bb\u5b9a\u4f4d\u5143\u7d20\u3002 \u4ee5\u767b\u5f55 MeterSphere \u7cfb\u7edf\u4e3a\u4f8b\uff0c\u6dfb\u52a0\u5982\u4e0b\u51e0\u4e2a\u6b65\u9aa4\uff1a

    • \u6dfb\u52a0\u3010\u6d4f\u89c8\u5668\u64cd\u4f5c\u3011\u6b65\u9aa4\uff0c\u8f93\u5165 MeterSphere \u767b\u5f55\u9875\u9762\u5730\u5740\u3002

    • \u6dfb\u52a0\u3010\u8f93\u5165\u7528\u6237\u540d\u3011\u6b65\u9aa4: \u64cd\u4f5c\u5bf9\u8c61\u9009\u62e9\u3010\u5143\u7d20\u5b9a\u4f4d\u3011\uff0c\u5b9a\u4f4d\u65b9\u5f0f\u9009\u62e9\u3010xpath\u3011\uff0cxpath \u8def\u5f84\u8f93\u5165 //input[@placeholder=\"ID \u6216 \u90ae\u7bb1\"]\u3002

    • \u83b7\u53d6 xpath \u8def\u5f84\u65b9\u5f0f\u5982\u4e0b\uff08\u4ee5\u8c37\u6b4c\u6d4f\u89c8\u5668\u4e3a\u4f8b\uff09\uff1a\u6309\u4e0b F12 \u6253\u5f00\u5f53\u524d\u9875\u7684\u3010\u5143\u7d20\u3011\u754c\u9762\uff0c\u9009\u4e2d\u5de6\u4e0a\u65b9\u7684\u3010\u9f20\u6807\u3011\u6309\u94ae\uff0c\u62d6\u5230\u767b\u5f55\u754c\u9762\u7684\u3010\u7528\u6237\u540d\u8f93\u5165\u6846\u3011\u4e0a\uff0c\u70b9\u51fb\u9f20\u6807\u53ef\u5feb\u901f\u5b9a\u4f4d\u5230\u3010\u7528\u6237\u540d\u3011\u7684 html \u5143\u7d20\u5185\u5bb9\uff0c\u8f93\u5165\u3010Ctrl+F\u3011\uff0c\u6839\u636e\u5143\u7d20\u5185\u5bb9\u7684\u5173\u952e\u5c5e\u6027\uff0c\u5728\u6587\u672c\u6846\u4e2d\u8f93\u5165 xpath \u8def\u5f84\uff0c\u5373\u53ef\u5feb\u901f\u5b9a\u4f4d\u5230\u5143\u7d20\uff0c\u5982\u679c\u5143\u7d20\u5185\u5bb9\u53d8\u9ec4\uff0c\u5219\u8868\u793a xpath \u6210\u529f\u5b9a\u4f4d\u5230\u5143\u7d20\u3002

    • \u6dfb\u52a0\u3010\u8f93\u5165\u5bc6\u7801\u3011\u6b65\u9aa4\uff0c\u65b9\u5f0f\u540c\u4e0a\uff0cxpath \u8def\u5f84\u8f93\u5165 //input[@placeholder=\"\u5bc6\u7801\"]\u3002

    • \u6dfb\u52a0\u3010\u70b9\u51fb\u767b\u5f55\u3011\u6b65\u9aa4\uff0c\u70b9\u51fb\u9875\u9762\u53f3\u4e0b\u89d2\u3010+\u3011\u53f7\uff0c\u9009\u62e9\u3010\u9f20\u6807\u64cd\u4f5c\u3011\uff0c\u3010\u6b65\u9aa4\u7c7b\u578b\u3011\u9009\u62e9\u9f20\u6807\u70b9\u51fb\uff0c\u3010\u70b9\u51fb\u65b9\u5f0f\u3011\u9009\u62e9\u5355\u673a\uff0c\u5143\u7d20\u4f4d\u7f6e\u9009\u62e9\u3010\u5143\u7d20\u5b9a\u4f4d\u3011\uff0c\u5b9a\u4f4d\u65b9\u5f0f\u9009\u62e9\u3010xpath\u3011\uff0cxpath \u8def\u5f84\u4e3a //button[@type=\"button\"]\u3002

    "},{"location":"quick_start/ui_test/#4","title":"4 \u5728\u573a\u666f\u6b65\u9aa4\u4e2d\u6dfb\u52a0\u9ad8\u7ea7\u8bbe\u7f6e","text":"

    \u5728\u9ad8\u7ea7\u8bbe\u7f6e\u4e2d\uff0c\u4ee5\u540e\u7f6e\u64cd\u4f5c\u4e3a\u4f8b\uff0c\u9009\u62e9 \u540e\u7f6e\u64cd\u4f5c \uff0c\u70b9\u51fb\u4e0b\u62c9\u6846\uff0c\u9009\u62e9\u9700\u8981\u7684\u65b9\u5f0f\uff0c\u70b9\u51fb\u6dfb\u52a0\u3002\u53ef\u4ee5\u6dfb\u52a0\u540e\u7f6e\u811a\u672c\uff0c\u7b49\u5f85\u65f6\u95f4\uff0c\u65ad\u8a00\u548c\u540e\u7f6e\u63d0\u53d6\u3002

    "},{"location":"quick_start/ui_test/#5-ui","title":"5 \u8c03\u8bd5 UI \u81ea\u52a8\u5316\u573a\u666f","text":"

    \u53ef\u5728\u7f16\u8f91\u573a\u666f\u9875\u9762\u8c03\u8bd5 UI \u573a\u666f\uff0c\u4e5f\u53ef\u4ee5\u5728 UI \u81ea\u52a8\u5316\u573a\u666f\u5217\u8868\u9875\u9762\u6267\u884cUI\u573a\u666f\u3002\u5982\u56fe\u70b9\u51fb\u573a\u666f\u7f16\u8f91\u9875\u9762\u7684\u3010\u751f\u6210\u62a5\u544a\u3011\u6309\u94ae\uff0c\u53ef\u751f\u6210\u5e76\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3002 \u52fe\u9009\u6027\u80fd\u6a21\u5f0f\uff0c\u6d4b\u8bd5\u62a5\u544a\u4e2d\u9ed8\u8ba4\u65e0\u622a\u56fe\u4fe1\u606f\uff1b\u4e0d\u52fe\u9009\u6027\u80fd\u6a21\u5f0f\uff0c\u6d4b\u8bd5\u62a5\u544a\u51fa\u9519\u6b65\u9aa4\u4e2d\u6709\u622a\u56fe\u4fe1\u606f\u3002 \u5982\u679c\u9700\u8981\u6d4b\u8bd5\u62a5\u544a\u53ef\u4ee5\u67e5\u770b\u811a\u672c\u4e2d\u6bcf\u4e2a\u6b65\u9aa4\u7684\u622a\u56fe\uff0c\u53ef\u4ee5\u6279\u91cf\u591a\u9009\u811a\u672c\u6b65\u9aa4\u914d\u7f6e\u201c\u5f53\u524d\u6b65\u9aa4\u622a\u56fe\u201d\u7b56\u7565\u3002

    "},{"location":"quick_start/ui_test/#6","title":"6 \u751f\u6210\u6d4b\u8bd5\u62a5\u544a","text":"

    \u70b9\u51fb\u573a\u666f\u5217\u8868\u4e2d\u6267\u884c\u6309\u94ae\uff0c\u4f1a\u5f39\u51fa\u9875\u9762\u663e\u793a\u672c\u6b21\u573a\u666f\u7684\u6267\u884c\u7ed3\u679c\u3002

    \u67e5\u770b\u62a5\u544a\u4e2d\u6b65\u9aa4\u622a\u56fe\u4fe1\u606f

    \u4e5f\u53ef\u5728\u6d4b\u8bd5\u62a5\u544a\u9875\u9762\u4e2d\uff0c\u627e\u5230\u8981\u67e5\u770b\u7684\u62a5\u544a\uff0c\u70b9\u51fb\u5176\u3010\u62a5\u544a\u8be6\u60c5\u3011\u6309\u94ae\u6253\u5f00\u3010\u6d4b\u8bd5\u62a5\u544a\u3011\u9875\u9762\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3002

    "},{"location":"teach_video/video_index/","title":"\u6559\u5b66\u89c6\u9891","text":""},{"location":"teach_video/video_index/#1","title":"1 \u8bfe\u7a0b\u7b80\u4ecb\u548c\u7ebf\u4e0a\u73af\u5883\u4ecb\u7ecd","text":""},{"location":"teach_video/video_index/#2","title":"2 \u6d4b\u8bd5\u8ddf\u8e2a","text":""},{"location":"teach_video/video_index/#3","title":"3 \u63a5\u53e3\u6d4b\u8bd5","text":""},{"location":"teach_video/video_index/#4","title":"4 \u6027\u80fd\u6d4b\u8bd5","text":""},{"location":"teach_video/video_index/#5-ui","title":"5 UI \u6d4b\u8bd5","text":""},{"location":"teach_video/video_index/#6-devops","title":"6 \u878d\u5165 DevOps","text":""},{"location":"teach_video/video_index/#7","title":"7 \u5176\u5b83\u89c6\u9891","text":"
    • MeterSphere \u5982\u4f55\u4e0e TAPD\u548c Jira \u5bf9\u63a5
    • MeterSphere \u5982\u4f55\u5bf9\u63a5\u90ae\u4ef6\u3001\u9489\u9489\u3001\u4f01\u4e1a\u5fae\u4fe1
    • \u5982\u4f55\u5728 MeterSphere \u4e2d\u505a\u573a\u666f\u5316\u7684\u63a5\u53e3\u6d4b\u8bd5
    • \u5982\u4f55\u5728 MeterSphere \u4e2d\u5bfc\u5165 Postman \u811a\u672c\u505a\u63a5\u53e3\u6d4b\u8bd5
    • \u5982\u4f55\u5728 MeterSphere \u4e2d\u5bfc\u5165 Swagger UI \u811a\u672c\u505a\u63a5\u53e3\u6d4b\u8bd5
    "},{"location":"tutorial/use_tutorial/","title":"\u4f7f\u7528\u6559\u7a0b","text":""},{"location":"tutorial/use_tutorial/#1","title":"1 \u63a5\u53e3\u6d4b\u8bd5","text":"
    • \u5982\u4f55\u4f7f\u7528 MeterSphere \u8fdb\u884c Dubbo \u534f\u8bae\u63a5\u53e3\u6d4b\u8bd5
    • \u5982\u4f55\u4f7f\u7528 MeterSphere \u8fdb\u884c\u573a\u666f\u5316\u63a5\u53e3\u6d4b\u8bd5
    • \u5982\u4f55\u5728 MeterSphere \u4e2d\u4f7f\u7528 BeanShell \u524d\u7f6e\u811a\u672c\u751f\u6210\u63a5\u53e3\u8ba4\u8bc1\u7b7e\u540d
    • MeterSphere \u4e2d\u5404\u7c7b\u53d8\u91cf\u7684\u8bbe\u7f6e\u548c\u4f7f\u7528\u5168\u6559\u7a0b
    • MeterSphere \u4e2d JMeter \u51fd\u6570\u3001MockJS \u51fd\u6570\u4f7f\u7528\u6559\u7a0b
    • \u57fa\u4e8e MeterSphere \u63a5\u53e3\u81ea\u52a8\u5316\u505a\u6570\u636e\u9a71\u52a8\uff08ddt\uff09\u6d4b\u8bd5
    • MeterSphere Mock \u670d\u52a1\u529f\u80fd\u7684\u521b\u5efa\u548c\u8c03\u7528
    • \u4f7f\u7528 Python \u8c03\u7528 MeterSphere API \u89e6\u53d1\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c
    • MeterSphere \u4e2d\u5e38\u7528 Jmeter \u51fd\u6570\u4f7f\u7528\u8be6\u7ec6
    • MeterSphere \u5feb\u901f\u751f\u6210\u6d4b\u8bd5\u6570\u636e(\u679a\u4e3e\u3001\u6b63\u5219\u3001\u51fd\u6570)
    • MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u73af\u5883\u53ca\u73af\u5883\u7ec4+\u52a8\u6001\u6570\u636e\u6e90\u4f7f\u7528
    • MeterSphere \u6570\u636e\u5e93\u63d0\u53d6\u53c2\u6570\u548c\u65ad\u8a00
    "},{"location":"tutorial/use_tutorial/#2-ui","title":"2 UI \u6d4b\u8bd5","text":"
    • MeterSphere \u7684 UI \u6d4b\u8bd5\u6a21\u5757\u5982\u4f55\u8fdc\u7a0b\u8c03\u7528\u6d4f\u89c8\u5668
    • MeterSphere \u7684 UI \u81ea\u52a8\u5316\u5982\u4f55\u5b9e\u73b0\u6587\u4ef6\u4e0a\u4f20\u7684\u573a\u666f
    • MeterSphere \u7684 UI \u6d4b\u8bd5\u6ed1\u5757\u9a8c\u8bc1\u53ca\u9875\u9762\u6eda\u52a8\u6761\u95ee\u9898\u5904\u7406
    "},{"location":"tutorial/use_tutorial/#3","title":"3 \u670d\u52a1\u96c6\u6210","text":"
    • MeterSphere \u670d\u52a1\u96c6\u6210\u4e4b\u7985\u9053\u5bf9\u63a5
    • MeterSphere \u670d\u52a1\u96c6\u6210\u4e4b JIRA \u5bf9\u63a5
    • MeterSphere \u670d\u52a1\u96c6\u6210\u4e4b TAPD \u5bf9\u63a5
    • MeterSphere \u670d\u52a1\u96c6\u6210 Azure Devops \u5bf9\u63a5
    • \u5728 MeterSphere \u5e73\u53f0\u6dfb\u52a0\u5e76\u4f7f\u7528 Kubernetes \u8d44\u6e90\u6c60
    • MeterSphere\u5f00\u6e90\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\u4e0e\u817e\u8baf\u4e91CODING DevOps\u7684\u96c6\u6210
    "},{"location":"tutorial/use_tutorial/#4","title":"4 \u63d2\u4ef6\u4f7f\u7528","text":"
    • MeterSphere \u548c Jenkins \u5b9e\u73b0\u6d41\u6c34\u7ebf\u96c6\u6210
    • MeterSphere\u4e4b\u6d4f\u89c8\u5668\u5f55\u5236\u63d2\u4ef6\uff1achrome-extensions
    • MeterSphere \u63a5\u53e3\u81ea\u52a8\u5316\u63d2\u4ef6\u57fa\u7840\u5f00\u53d1\u6559\u7a0b
    • MeterSphere \u4e4b IDEA \u63a5\u53e3\u540c\u6b65\u63d2\u4ef6
    • Metersphere Selenium IDE\u63d2\u4ef6\u5f55\u5236UI\u811a\u672c
    "},{"location":"tutorial/use_tutorial/#5","title":"5 \u811a\u672c\u5f15\u7528","text":"
    • MeterSphere Python \u524d\u540e\u7f6e\u811a\u672c\u5982\u4f55\u5f15\u7528\u7b2c\u4e09\u65b9\u5e93
    • MeterSphere BeanShell \u524d\u540e\u7f6e\u811a\u672c\u5982\u4f55\u5f15\u7528\u5916\u90e8 Jar \u5305
    • MeterSphere JavaScript \u524d\u540e\u7f6e\u811a\u672c\u5982\u4f55\u5f15\u7528\u5916\u90e8\u5305
    "},{"location":"tutorial/use_tutorial/#6","title":"6 \u9879\u76ee\u8bbe\u7f6e","text":"
    • MeterSphere \u6d88\u606f\u901a\u77e5\u4e4b\u5bf9\u63a5\u90ae\u4ef6\u3001\u9489\u9489\u3001\u4f01\u4e1a\u5fae\u4fe1\u3001\u98de\u4e66
    "},{"location":"user_manual/access_matrix/","title":"\u6743\u9650\u77e9\u9635","text":"\u4e00\u7ea7\u529f\u80fd \u4e8c\u7ea7\u529f\u80fd \u4e09\u7ea7\u529f\u80fd \u5177\u4f53\u7528\u4f8b \u7cfb\u7edf\u7ba1\u7406\u5458 \u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406\u5458 \u5de5\u4f5c\u7a7a\u95f4\u6210\u5458 \u9879\u76ee\u7ba1\u7406\u5458 \u9879\u76ee\u6210\u5458 \u53ea\u8bfb\u7528\u6237 \u81ea\u5b9a\u4e49\u89d2\u8272 \u7cfb\u7edf\u7ba1\u7406 \u7cfb\u7edf \u7528\u6237\u7ba1\u7406 \u5217\u51fa\u7cfb\u7edf\u4e2d\u7684\u6240\u6709\u7528\u6237 Y * \u6307\u5b9a\u7528\u6237\u00a0ID\u3001\u7528\u6237\u540d\u3001\u90ae\u7bb1\u3001\u7535\u8bdd\u3001\u5bc6\u7801\u7b49\u4fe1\u606f\u521b\u5efa\u65b0\u7528\u6237 Y * \u4fee\u6539\u6307\u5b9a\u7528\u6237\u7684\u7528\u6237\u540d\u3001\u90ae\u7bb1\u3001\u7535\u8bdd\u3001\u5bc6\u7801\u7b49\u4fe1\u606f Y * \u6dfb\u52a0\u3001\u4fee\u6539\u6307\u5b9a\u7528\u6237\u7684\u89d2\u8272 Y * \u5220\u9664\u6307\u5b9a\u7528\u6237 Y * \u542f\u7528\u3001\u7981\u7528\u6307\u5b9a\u7528\u6237\uff0c\u7528\u6237\u7981\u7528\u540e\u65e0\u6cd5\u767b\u5f55\u7cfb\u7edf Y * \u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406 \u5217\u51fa\u7cfb\u7edf\u4e2d\u7684\u6240\u6709\u5de5\u4f5c\u7a7a\u95f4 Y * \u6307\u5b9a\u5de5\u4f5c\u7a7a\u95f4\u540d\u79f0\u3001\u63cf\u8ff0\u53ca\u6240\u5c5e\u7ec4\u7ec7\u7b49\u4fe1\u606f\u521b\u5efa\u65b0\u5de5\u4f5c\u7a7a\u95f4 Y * \u4fee\u6539\u6307\u5b9a\u5de5\u4f5c\u7a7a\u95f4\u7684\u540d\u79f0\u3001\u63cf\u8ff0\u53ca\u6240\u5c5e\u7ec4\u7ec7\u7b49\u4fe1\u606f Y * \u5220\u9664\u6307\u5b9a\u5de5\u4f5c\u7a7a\u95f4 Y * \u7528\u6237\u7ec4\u4e0e\u6743\u9650\u7ba1\u7406 \u5217\u51fa\u7cfb\u7edf\u6240\u6709\u89d2\u8272\u4fe1\u606f Y * \u521b\u5efa\u3001\u4fee\u6539\u7528\u6237\u7ec4\u57fa\u672c\u4fe1\u606f Y * \u4fee\u6539\u7528\u6237\u7ec4\u6743\u9650 Y * \u7ed9\u7528\u6237\u7ec4\u6dfb\u52a0\u3001\u5220\u9664\u6210\u5458 Y * \u5220\u9664\u7528\u6237\u7ec4 Y * \u6d4b\u8bd5\u8d44\u6e90\u6c60\u7ba1\u7406 \u5217\u51fa\u7cfb\u7edf\u4e2d\u7684\u6240\u6709\u6d4b\u8bd5\u8d44\u6e90\u6c60 Y * \u8bbe\u7f6e\u6d4b\u8bd5\u8d44\u6e90\u6c60\u540d\u79f0\u3001\u5177\u4f53\u914d\u7f6e\u7b49\u4fe1\u606f\u521b\u5efa\u65b0\u6d4b\u8bd5\u8d44\u6e90\u6c60 Y * \u4fee\u6539\u6307\u5b9a\u6d4b\u8bd5\u8d44\u6e90\u6c60\u7684\u540d\u79f0\u3001\u5177\u4f53\u7b49\u4fe1\u606f Y * \u5220\u9664\u6307\u5b9a\u6d4b\u8bd5\u8d44\u6e90\u6c60 Y * \u542f\u7528\u3001\u7981\u7528\u6307\u5b9a\u6d4b\u8bd5\u8d44\u6e90\u6c60 Y * \u7ed9\u6307\u5b9a\u8d44\u6e90\u6c60\u6dfb\u52a0\u3001\u5220\u9664\u538b\u529b\u8282\u70b9 Y * \u7cfb\u7edf\u8bbe\u7f6e \u57fa\u672c\u4fe1\u606f\u914d\u7f6e Y * \u90ae\u4ef6\u8bbe\u7f6e Y * LDAP\u8bbe\u7f6e Y * \u5de5\u4f5c\u7a7a\u95f4 \u5de5\u4f5c\u7a7a\u95f4\u6210\u5458\u7ba1\u7406 \u5217\u51fa\u8be5\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u6240\u6709\u6210\u5458\u53ca\u5176\u89d2\u8272\u4fe1\u606f Y * \u9009\u62e9\u7cfb\u7edf\u4e2d\u5df2\u6709\u7528\u6237\u5e76\u6307\u5b9a\u5de5\u4f5c\u7a7a\u95f4\u7ea7\u89d2\u8272\u6dfb\u52a0\u81f3\u5de5\u4f5c\u7a7a\u95f4\u6210\u5458 Y * \u4fee\u6539\u6307\u5b9a\u6210\u5458\u5728\u8be5\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u89d2\u8272 Y * \u4ece\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u5220\u9664\u6307\u5b9a\u6210\u5458\uff08\u53bb\u9664\u89d2\u8272\u4fe1\u606f\uff09 Y * \u670d\u52a1\u96c6\u6210 \u914d\u7f6eTapd\u3001Jira\u3001\u7985\u9053\u7b49\u670d\u52a1\u96c6\u6210\u4fe1\u606f Y Y Y * \u4e2a\u4eba\u4fe1\u606f \u4e2a\u4eba\u8bbe\u7f6e \u4fee\u6539\u81ea\u5df1\u7684\u7528\u6237\u540d\u3001\u90ae\u7bb1\u3001\u7535\u8bdd\u3001\u5bc6\u7801\u7b49\u4fe1\u606f Y Y Y Y Y Y * \u6d4b\u8bd5\u8ddf\u8e2a \u9996\u9875 Y Y Y \u9879\u76ee \u9879\u76ee \u5217\u51fa\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u6240\u6709\u9879\u76ee Y Y Y \u6307\u5b9a\u9879\u76ee\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u4fe1\u606f\uff0c\u5728\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u521b\u5efa\u65b0\u9879\u76ee Y Y \u4fee\u6539\u6307\u5b9a\u9879\u76ee\u7684\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u4fe1\u606f Y Y \u5220\u9664\u6307\u5b9a\u9879\u76ee Y Y \u5728\u9879\u76ee\u5217\u8868\u4e2d\u70b9\u51fb\u9879\u76ee\u540d\u79f0\uff0c\u8fdb\u5165\u8be5\u9879\u76ee\u4e0b\u7684\u6d4b\u8bd5\u7528\u4f8b\u9875\u9762 Y Y Y \u6d4b\u8bd5\u7528\u4f8b \u6d4b\u8bd5\u7528\u4f8b\u6811 \u4ee5\u6811\u72b6\u5f62\u5f0f\u5c55\u793a\u9879\u76ee\u7684\u6a21\u5757\u53ca\u5b50\u6a21\u5757 Y Y Y \u5728\u7528\u4f8b\u6811\u4e2d\u7684\u4efb\u4e00\u8282\u70b9\u5747\u53ef\u521b\u5efa\u8be5\u8282\u70b9\u7684\u5b50\u8282\u70b9\uff0c\u7528\u4f8b\u6811\u6700\u591a\u652f\u6301\u00a05\u00a0\u7ea7\u5b50\u8282\u70b9 Y Y \u901a\u8fc7\u524d\u7aef\u62d6\u62fd\u7684\u65b9\u5f0f\u79fb\u52a8\u7528\u4f8b\u6811\u7684\u67d0\u4e2a\u8282\u70b9\u5230\u6307\u5b9a\u4f4d\u7f6e Y Y \u4ece\u7528\u4f8b\u6811\u4e2d\u5220\u9664\u67d0\u4e2a\u8282\u70b9\uff0c\u8be5\u8282\u70b9\u53ca\u5176\u5b50\u8282\u70b9\u4e0b\u4e0b\u7684\u6240\u6709\u7528\u4f8b\uff0c\u79fb\u52a8\u5230\u540d\u4e3a\u2018\u672a\u5f52\u7c7b\u7528\u4f8b\u00a0\u2019\u7684\u865a\u62df1\u00a0\u7ea7\u8282\u70b9 Y Y \u6d4b\u8bd5\u7528\u4f8b\u7ba1\u7406 \u4ee5\u5217\u8868\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u9009\u4e2d\u7684\u7528\u4f8b\u6811\u67d0\u8282\u70b9\u4e0b\u7684\u6240\u6709\u7528\u4f8b Y Y Y \u5728\u5f53\u524d\u9009\u4e2d\u7684\u7528\u4f8b\u6811\u8282\u70b9\u4e0b\uff0c\u65b0\u5efa\u6d4b\u8bd5\u7528\u4f8b\uff1b\u6d4b\u8bd5\u7528\u4f8b\u4fe1\u606f\u5305\u542b\u7528\u4f8b\u540d\u79f0\u3001\u6240\u5c5e\u6a21\u5757\u3001\u4f18\u5148\u7ea7\u3001\u6267\u884c\u6b65\u9aa4\u7b49\u4fe1\u606f Y Y \u5220\u9664\u6307\u5b9a\u7684\u6d4b\u8bd5\u7528\u4f8b Y Y \u9009\u62e9\u67d0\u4e2a\u6d4b\u8bd5\u7528\u4f8b\uff0c\u7f16\u8f91\u4fee\u6539\u6d4b\u8bd5\u7528\u4f8b\u76f8\u5173\u4fe1\u606f Y Y \u9009\u62e9\u67d0\u4e2a\u6d4b\u8bd5\u7528\u4f8b\uff0c\u7f16\u8f91\u4fee\u6539\u6d4b\u8bd5\u7528\u4f8b\u7ef4\u62a4\u4eba\u4fe1\u606f Y Y \u6d4b\u8bd5\u8ba1\u5212 \u6d4b\u8bd5\u8ba1\u5212\u5217\u8868 \u4ee5\u5217\u8868\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u6240\u6709\u9879\u76ee\u4e0b\u7684\u6240\u6709\u6d4b\u8bd5\u8ba1\u5212 Y Y Y \u6307\u5b9a\u6d4b\u8bd5\u8ba1\u5212\u7684\u540d\u79f0\u3001\u63cf\u8ff0\u3001\u6240\u5c5e\u9879\u76ee\u7b49\u4fe1\u606f\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212 Y Y \u9009\u62e9\u67d0\u4e2a\u6d4b\u8bd5\u8ba1\u5212\uff0c\u7f16\u8f91\u4fee\u6539\u6d4b\u8bd5\u8ba1\u5212\u76f8\u5173\u4fe1\u606f Y Y \u6d4b\u8bd5\u8ba1\u5212\u4e2d\u7684\u7528\u4f8b\u7ba1\u7406 \u4ece\u8be5\u6d4b\u8bd5\u8ba1\u5212\u6240\u5c5e\u9879\u76ee\u4e2d\uff0c\u9009\u62e9\u7528\u4f8b\u6811\u8282\u70b9\u6216\u5177\u4f53\u7528\u4f8b\uff0c\u6dfb\u52a0\u5230\u8be5\u6d4b\u8bd5\u8ba1\u5212\uff0c\u5e76\u6307\u5b9a\u8be5\u7528\u4f8b\u7684\u6267\u884c\u4eba\u7b49\u4fe1\u606f Y Y \u4ee5\u53ea\u8bfb\u7684\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u5df2\u6dfb\u52a0\u5230\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u7684\u7528\u4f8b\u6811 Y Y Y \u4ee5\u5217\u8868\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u9009\u4e2d\u7684\u7528\u4f8b\u6811\u67d0\u8282\u70b9\u4e0b\u7684\u6240\u6709\u7528\u4f8b Y Y Y \u9009\u62e9\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u7684\u67d0\u4e2a\u6d4b\u8bd5\u7528\u4f8b\uff0c\u7f16\u8f91\u4fee\u6539\u6267\u884c\u4eba\u7b49\u76f8\u5173\u4fe1\u606f Y Y \u9009\u62e9\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u7684\u67d0\u4e2a\u6d4b\u8bd5\u7528\u4f8b\uff0c\u7f16\u8f91\u4fee\u6539\u6267\u884c\u7ed3\u679c\u7b49\u76f8\u5173\u4fe1\u606f Y Y \u63a5\u53e3\u6d4b\u8bd5 \u9879\u76ee \u5217\u51fa\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u6240\u6709\u9879\u76ee Y Y Y \u6307\u5b9a\u9879\u76ee\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u4fe1\u606f\uff0c\u5728\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u521b\u5efa\u65b0\u9879\u76ee Y Y \u4fee\u6539\u6307\u5b9a\u9879\u76ee\u7684\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u4fe1\u606f Y Y \u5220\u9664\u6307\u5b9a\u9879\u76ee Y Y \u5728\u9879\u76ee\u5217\u8868\u4e2d\u70b9\u51fb\u9879\u76ee\u540d\u79f0\uff0c\u8fdb\u5165\u8be5\u9879\u76ee\u4e0b\u7684\u63a5\u53e3\u7ba1\u7406\u9875\u9762 Y Y Y \u63a5\u53e3 TBD Y Y Y \u6d4b\u8bd5 \u4ee5\u5217\u8868\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u6240\u6709\u9879\u76ee\u4e0b\u7684\u6240\u6709\u63a5\u53e3\u6d4b\u8bd5 Y Y Y \u70b9\u51fb\u521b\u5efa\u6d4b\u8bd5\u6309\u94ae\uff0c\u9009\u62e9\u6d4b\u8bd5\u6240\u5c5e\u9879\u76ee\uff0c\u586b\u5199\u6d4b\u8bd5\u7684\u5177\u4f53\u914d\u7f6e\u4fe1\u606f\u5e76\u4fdd\u5b58\u6d4b\u8bd5 Y Y \u5220\u9664\u6307\u5b9a\u7684\u63a5\u53e3\u6d4b\u8bd5 Y Y \u9009\u62e9\u67d0\u4e2a\u63a5\u53e3\u6d4b\u8bd5\uff0c\u67e5\u770b\u5e76\u7f16\u8f91\u4fee\u6539\u8be5\u63a5\u53e3\u6d4b\u8bd5\u5177\u4f53\u4fe1\u606f Y Y \u4ec5\u67e5\u770b \u9009\u62e9\u67d0\u4e2a\u63a5\u53e3\u6d4b\u8bd5\u6267\u884c\u8be5\u6d4b\u8bd5\uff0c\u6d4b\u8bd5\u5f00\u59cb\u6267\u884c\u540e\u81ea\u52a8\u8df3\u8f6c\u5230\u8be5\u6b21\u6267\u884c\u4ea7\u751f\u7684\u6d4b\u8bd5\u62a5\u544a Y Y \u62a5\u544a \u4ee5\u5217\u8868\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u6240\u6709\u9879\u76ee\u4e0b\u7684\u6240\u6709\u6d4b\u8bd5\u62a5\u544a Y Y Y \u5220\u9664\u6307\u5b9a\u7684\u6d4b\u8bd5\u62a5\u544a Y Y \u9009\u62e9\u67d0\u4e2a\u6d4b\u8bd5\u62a5\u544a\uff0c\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u8be6\u7ec6\u5185\u5bb9 Y Y Y \u9009\u62e9\u591a\u4e2a\u6d4b\u8bd5\u62a5\u544a\u5bf9\u6bd4\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u5185\u5bb9 Y Y Y \u6027\u80fd\u6d4b\u8bd5 \u9879\u76ee \u5217\u51fa\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u6240\u6709\u9879\u76ee Y Y Y \u6307\u5b9a\u9879\u76ee\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u4fe1\u606f\uff0c\u5728\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u521b\u5efa\u65b0\u9879\u76ee Y Y \u4fee\u6539\u6307\u5b9a\u9879\u76ee\u7684\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u4fe1\u606f Y Y \u5220\u9664\u6307\u5b9a\u9879\u76ee Y Y \u6d4b\u8bd5 \u4ee5\u5217\u8868\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u6240\u6709\u9879\u76ee\u4e0b\u7684\u6240\u6709\u6027\u80fd\u6d4b\u8bd5 Y Y Y \u70b9\u51fb\u521b\u5efa\u6d4b\u8bd5\u6309\u94ae\uff0c\u9009\u62e9\u6d4b\u8bd5\u6240\u5c5e\u9879\u76ee\uff0c\u586b\u5199\u6d4b\u8bd5\u7684\u5177\u4f53\u914d\u7f6e\u4fe1\u606f\u5e76\u4fdd\u5b58\u6d4b\u8bd5 Y Y \u5220\u9664\u6307\u5b9a\u7684\u6027\u80fd\u6d4b\u8bd5 Y Y \u9009\u62e9\u67d0\u4e2a\u6027\u80fd\u6d4b\u8bd5\uff0c\u67e5\u770b\u5e76\u7f16\u8f91\u4fee\u6539\u8be5\u6027\u80fd\u6d4b\u8bd5\u5177\u4f53\u4fe1\u606f Y Y \u4ec5\u67e5\u770b \u9009\u62e9\u67d0\u4e2a\u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u8be5\u6d4b\u8bd5\uff0c\u6d4b\u8bd5\u5f00\u59cb\u6267\u884c\u540e\u81ea\u52a8\u8df3\u8f6c\u5230\u8be5\u6b21\u6267\u884c\u4ea7\u751f\u7684\u6d4b\u8bd5\u62a5\u544a Y Y \u62a5\u544a \u4ee5\u5217\u8868\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u6240\u6709\u9879\u76ee\u4e0b\u7684\u6240\u6709\u6d4b\u8bd5\u62a5\u544a Y Y Y \u5220\u9664\u6307\u5b9a\u7684\u6d4b\u8bd5\u62a5\u544a Y Y \u9009\u62e9\u67d0\u4e2a\u6d4b\u8bd5\u62a5\u544a\uff0c\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u8be6\u7ec6\u5185\u5bb9 Y Y Y \u9009\u62e9\u591a\u4e2a\u6d4b\u8bd5\u62a5\u544a\u5bf9\u6bd4\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u5185\u5bb9 Y Y Y"},{"location":"user_manual/api_test/","title":"Api test","text":"

    \u4f20\u7edf\u7684\u63a5\u53e3\u81ea\u52a8\u5316\u6d4b\u8bd5\u5927\u591a\u501f\u52a9\u7b2c\u4e09\u65b9\u6d4b\u8bd5\u6846\u67b6\uff0c\u4ee5\u4ee3\u7801\u5de5\u7a0b\u9879\u76ee\u7684\u5f62\u5f0f\u5b9e\u73b0\uff0c\u4e0d\u5229\u4e8e\u7ba1\u7406\u548c\u7ef4\u62a4\uff1b MeterSphere \u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u5f00\u53d1\u4e86\u53ef\u89c6\u5316\u63a5\u53e3\u81ea\u52a8\u5316\u6d4b\u8bd5\u529f\u80fd\uff0c\u53ea\u9700\u8981\u914d\u7f6e\u6bcf\u4e2a\u63a5\u53e3\u7684\u5165\u53c2\u548c \u65ad\u8a00\uff0c\u5373\u53ef\u5b9e\u73b0\u5bf9\u63a5\u53e3\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u540c\u65f6\u8fd8\u5f00\u53d1\u4e86\u57fa\u4e8echrome\u6d4f\u89c8\u5668\u7684MeterSphere Recorder\u63d2\u4ef6\uff0c\u65b9\u4fbf\u5f55\u5236\u573a\u666f\u4ee5\u53ca\u5feb\u901f\u5bfc\u5165\u573a\u666f\uff0c\u5927\u5927\u63d0\u5347\u4e86\u63a5\u53e3\u6d4b\u8bd5\u7684\u6548\u7387\u3002

    "},{"location":"user_manual/api_test/#_1","title":"\u9996\u9875","text":"

    \u7531\u6d4b\u8bd5\u3001\u62a5\u544a\u3001\u6d4b\u8bd5\u65e5\u5386\u4e09\u4e2a\u90e8\u5206\u7ec4\u6210\uff0c\u53ef\u5feb\u901f\u4e86\u89e3\u5230\u6700\u8fd1\u6267\u884c\u7684\u6d4b\u8bd5\u5185\u5bb9\u4ee5\u53ca\u6574\u4f53\u7684\u63a5\u53e3\u6d4b\u8bd5\u9891\u6b21\u3002

    • \u6d4b\u8bd5\uff1a\u5c55\u793a\u6700\u8fd1 5 \u6b21\u6267\u884c\u7684\u63a5\u53e3\u6d4b\u8bd5

    • \u62a5\u544a\uff1a\u5c55\u793a\u6700\u8fd1 5 \u6b21\u6267\u884c\u7684\u63a5\u53e3\u6d4b\u8bd5\u6240\u751f\u6210\u7684\u62a5\u544a

    • \u6d4b\u8bd5\u65e5\u5386\uff1a\u6309\u65f6\u95f4\u7ef4\u5ea6\u5c55\u793a\u63a5\u53e3\u6d4b\u8bd5\u6267\u884c\u7684\u9891\u6b21\uff0c\u989c\u8272\u8d8a\u6df1\uff0c\u4ee3\u8868\u4f7f\u7528\u9891\u6b21\u8d8a\u9ad8

    "},{"location":"user_manual/api_test/#_2","title":"\u9879\u76ee","text":"

    \u5bf9\u9879\u76ee\u8fdb\u884c\u65b0\u589e\u3001\u4fee\u6539\u3001\u5220\u9664\u3001\u67e5\u8be2\u64cd\u4f5c

    "},{"location":"user_manual/api_test/#_3","title":"\u65b0\u589e\u9879\u76ee","text":"

    \u70b9\u51fb\u201c\u521b\u5efa\u9879\u76ee\u201d\uff0c\u5f55\u5165\u9879\u76ee\u540d\u79f0\u548c\u63cf\u8ff0

    "},{"location":"user_manual/api_test/#_4","title":"\u4fee\u6539\u9879\u76ee","text":"

    \u9009\u62e9\u8981\u4fee\u6539\u7684\u9879\u76ee\uff0c\u70b9\u51fb\u7f16\u8f91\u6309\u94ae

    "},{"location":"user_manual/api_test/#_5","title":"\u5220\u9664\u9879\u76ee","text":"

    \u9009\u62e9\u8981\u5220\u9664\u7684\u9879\u76ee\uff0c\u70b9\u51fb\u5220\u9664\u6309\u94ae

    "},{"location":"user_manual/api_test/#_6","title":"\u67e5\u8be2\u9879\u76ee","text":"

    \u67e5\u8be2\u5168\u90e8\u9879\u76ee\u9009\u62e9\u201c\u663e\u793a\u5168\u90e8\u201d\uff0c\u67e5\u8be2\u5355\u4e2a\u9879\u76ee\u53ef\u4ee5\u6839\u636e\u540d\u79f0\u641c\u7d22

    "},{"location":"user_manual/api_test/#_7","title":"\u73af\u5883\u914d\u7f6e","text":"

    \u53ef\u4ee5\u6dfb\u52a0\u8be5\u9879\u76ee\u4e0b\u63a5\u53e3\u7684\u5b9e\u9645\u73af\u5883\uff0c\u589e\u52a0\u4e86\u5168\u5c40 header\uff0c\u53ef\u4ee5\u5728\u9879\u76ee\u4e2d\u8bbe\u7f6e\u5168\u5c40 header \u503c\u3002\u5728\u63a5\u53e3\u8fd0\u884c\u9875\u9762\u7684\u573a\u666f\u4e2d\u4e5f\u589e\u52a0\u73af\u5883\u914d\u7f6e\u5f39\u5c42\u3002

    \u65b0\u589e\u5168\u5c40\u53d8\u91cf\uff0c\u53ef\u4ee5\u5728\u73af\u5883\u5217\u8868\u4e2d\u5b9a\u4e49\u5168\u5c40\u53d8\u91cf\u7684\u540d\u79f0\u548c\u503c\uff0c\u63a5\u53e3\u6d4b\u8bd5\u91cc\u9762\u53ef\u4ee5\u901a\u8fc7$(xx)\u6765\u8bbf\u95ee\u5f53\u524d\u73af\u5883\u53d8\u91cf\u4e0b\u5b9a\u4e49\u7684\u5168\u5c40\u53d8\u91cf

    "},{"location":"user_manual/api_test/#_8","title":"\u6d4b\u8bd5","text":"

    \u5bf9\u6d4b\u8bd5\u63a5\u53e3\u6216\u63a5\u53e3\u96c6\u5408\u8fdb\u884c\u65b0\u589e\u3001\u4fee\u6539\u3001\u5220\u9664\u3001\u67e5\u8be2\u64cd\u4f5c

    "},{"location":"user_manual/api_test/#_9","title":"\u521b\u5efa\u6d4b\u8bd5","text":"

    \u70b9\u51fb\u521b\u5efa\u6d4b\u8bd5\uff0c\u5982\u56fe 5 \u6b65\u5373\u53ef\u6210\u529f\u521b\u5efa\u63a5\u53e3\u6d4b\u8bd5

    \u76ee\u524d\u652f\u6301HTTP\u3001DUBBO \u4e24\u79cd\u534f\u8bae\u7684\u63a5\u53e3\u6d4b\u8bd5

    "},{"location":"user_manual/api_test/#_10","title":"\u573a\u666f\u914d\u7f6e","text":"

    \u573a\u666f\u5185\u7684\u5168\u5c40\u53d8\u91cf\u548c\u8bf7\u6c42\u5934\u914d\u7f6e\uff0c\u4f5c\u7528\u57df\u4e3a\u573a\u666f\u5185

    "},{"location":"user_manual/api_test/#_11","title":"\u73af\u5883\u914d\u7f6e","text":"

    \u573a\u666f\u4e2d\u53ef\u4ee5\u914d\u7f6e\u73af\u5883

    "},{"location":"user_manual/api_test/#_12","title":"\u81ea\u5b9a\u4e49\u53d8\u91cf","text":"

    \u5728\u573a\u666f\u914d\u7f6e\u4e2d\u81ea\u5b9a\u4e49\u53d8\u91cf\u7684\u540d\u79f0\u548c\u503c\uff0c \u63a5\u53e3\u8fd0\u884c\u6216\u8005\u6d4b\u8bd5\u96c6\u5408\u91cc\u9762\u53ef\u4ee5\u901a\u8fc7 ${BASE} \u6765\u8bbf\u95ee\u5f53\u524d\u573a\u666f\u4e0b\u5b9a\u4e49\u7684\u5168\u5c40\u53d8\u91cf

    "},{"location":"user_manual/api_test/#_13","title":"\u8bf7\u6c42\u5934","text":"

    \u8fd9\u91cc\u589e\u52a0\u5168\u5c40 header\uff0c\u53ef\u4ee5\u5728\u9879\u76ee\u4e2d\u8bbe\u7f6e\u5168\u5c40 header \u503c

    "},{"location":"user_manual/api_test/#dubbo","title":"Dubbo\u914d\u7f6e","text":"

    \u4e3b\u8981\u7528\u4e8eDubbo RPC\u63a5\u53e3\u6d4b\u8bd5

    \u534f\u8bae\u652f\u6301\uff1azookeeper\u3001nacos\u3001Apollo

    dubbo\u53c2\u6570\u652f\u6301\uff1aconnections\u3001loadbalance\u3001async

    "},{"location":"user_manual/api_test/#_14","title":"\u8bf7\u6c42\u914d\u7f6e","text":""},{"location":"user_manual/api_test/#http","title":"HTTP\u8bf7\u6c42","text":""},{"location":"user_manual/api_test/#_15","title":"\u5f15\u7528\u73af\u5883","text":"

    \u5f15\u7528\u73af\u5883\u5f00\u542f\u540e\uff0c\u53ef\u4ee5\u5f15\u7528\u73af\u5883\u4e2d\u7684\u57df\u540d\u3001\u8bf7\u6c42\u5934\u548c\u53d8\u91cf

    "},{"location":"user_manual/api_test/#_16","title":"\u8bf7\u6c42\u53c2\u6570","text":"

    \u63a5\u53e3 url \u7684\u67e5\u8be2\u5b57\u7b26\u4e32

    "},{"location":"user_manual/api_test/#_17","title":"\u8bf7\u6c42\u5934","text":"

    http\u8bf7\u6c42\u7684header\uff0c\u4f5c\u7528\u57df\u4e3a\u8bf7\u6c42\u5185

    "},{"location":"user_manual/api_test/#_18","title":"\u8bf7\u6c42\u5185\u5bb9","text":"

    http \u8bf7\u6c42\u7684 body \u90e8\u5206\uff0c\u5982\u679c http \u8bf7\u6c42\u65b9\u5f0f\u662f post\uff0c put \u7b49\u8bf7\u6c42\u65b9\u5f0f\u65f6\u4f1a\u6709 \u8bf7\u6c42\u5185\u5bb9 \u90e8\u5206\uff0c\u5f62\u5f0f\u67092\u79cd\uff0c\u5206\u522b\u662f \u952e\u503c\u5bf9\uff08form\uff09\u3001\u6587\u672c\uff08json\uff09

    "},{"location":"user_manual/api_test/#dubbo_1","title":"DUBBO\u8bf7\u6c42","text":"

    Dubbo \u8bf7\u6c42\u7531\u534f\u8bae\u3001\u914d\u7f6e\u4e2d\u5fc3\u3001\u8bf7\u6c42\u53c2\u6570\u4e09\u90e8\u5206\u7ec4\u5408\u800c\u6210

    "},{"location":"user_manual/api_test/#dubbo_2","title":"Dubbo \u534f\u8bae","text":"

    \u76ee\u524d\u4ec5\u652f\u6301dubbo\u534f\u8bae

    "},{"location":"user_manual/api_test/#_19","title":"\u914d\u7f6e\u4e2d\u5fc3","text":"

    Interface

    Config Center \u914d\u7f6e\u4e2d\u5fc3\uff0c\u534f\u8bae\u652f\u6301 Zookeeper\u3001Nacos\u3001Apollo

    Registry Center \u6ce8\u518c\u4e2d\u5fc3\uff0c\u652f\u6301 Zookeeper\u3001Redis\u3001Multicast\u3001simple

    Consumer & Service

    "},{"location":"user_manual/api_test/#_20","title":"\u8bf7\u6c42\u53c2\u6570","text":"

    Args

    "},{"location":"user_manual/api_test/#_21","title":"\u65ad\u8a00","text":"

    \u65ad\u8a00\u652f\u6301\u6587\u672c\u3001\u6b63\u5219\u548c\u54cd\u5e94\u65f6\u95f4\u4e09\u79cd\u65b9\u5f0f\uff0c\u9009\u62e9\u65ad\u8a00\u65b9\u5f0f\u540e\uff0c\u70b9\u51fb\u201c+\u201d\u751f\u6210\u89c4\u5219\u5373\u53ef\u751f\u6548

    "},{"location":"user_manual/api_test/#_22","title":"\u63d0\u53d6","text":"

    \u652f\u6301\u4ece\u54cd\u5e94\u4e2d\u63d0\u53d6\u8fd4\u56de\u503c\u4f5c\u4e3a\u53d8\u91cf\u5b58\u50a8\uff0c\u4f5c\u7528\u57df\u4e3a\u573a\u666f\u5185\uff0c\u63d0\u53d6\u65b9\u5f0f\u4e3a\u6b63\u5219\u3001JSONPath\u3001XPath\u4e09\u79cd

    "},{"location":"user_manual/api_test/#_23","title":"\u4fee\u6539\u6d4b\u8bd5","text":"

    \u8bf7\u6c42\u6267\u884c\u987a\u5e8f\u548c\u573a\u666f\u6267\u884c\u987a\u5e8f\u652f\u6301\u62d6\u62fd\u8c03\u6574\uff1b\u53d8\u66f4\u7ed3\u675f\u70b9\u51fb\u4fdd\u5b58

    "},{"location":"user_manual/api_test/#_24","title":"\u5220\u9664\u6d4b\u8bd5","text":"

    \u70b9\u51fb\u6d4b\u8bd5-\u663e\u793a\u5168\u90e8\uff0c\u9009\u62e9\u8981\u5220\u9664\u7684\u6d4b\u8bd5\uff0c\u70b9\u51fb\u5220\u9664\u6309\u94ae

    "},{"location":"user_manual/api_test/#_25","title":"\u67e5\u8be2\u6d4b\u8bd5","text":"

    \u67e5\u8be2\u5168\u90e8\u6d4b\u8bd5\uff0c\u70b9\u51fb\u663e\u793a\u5168\u90e8\uff0c\u67e5\u8be2\u5355\u4e2a\u6d4b\u8bd5\u53ef\u4ee5\u6839\u636e\u540d\u79f0\u641c\u7d22

    "},{"location":"user_manual/api_test/#_26","title":"\u6267\u884c\u6d4b\u8bd5","text":"

    \u4fdd\u5b58\u6210\u529f\u7684\u6d4b\u8bd5\u70b9\u51fb\u201c\u6267\u884c\u201d\u6309\u94ae\uff0c\u7f16\u8f91\u5b8c\u6210\u7684\u6d4b\u8bd5\u4e5f\u53ef\u4ee5\u70b9\u51fb\u201c\u4fdd\u5b58\u5e76\u6267\u884c\u201d\u6309\u94ae\uff0c\u9875\u9762\u5c06\u4f1a\u8df3\u8f6c\u5230\u5f53\u524d\u6d4b\u8bd5\u7684\u6d4b\u8bd5\u62a5\u544a\u4e2d\u3002

    "},{"location":"user_manual/api_test/#_27","title":"\u5b9a\u65f6\u4efb\u52a1","text":"

    \u4fdd\u5b58\u6210\u529f\u7684\u6d4b\u8bd5\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u5b9a\u65f6\u4efb\u52a1\uff0c\u6d4b\u8bd5\u5c06\u4f1a\u5728\u6307\u5b9a\u65f6\u95f4\u8fd0\u884c\u5e76\u4ea7\u751f\u6d4b\u8bd5\u62a5\u544a

    "},{"location":"user_manual/api_test/#_28","title":"\u521b\u5efa\u5b9a\u65f6\u4efb\u52a1","text":"

    \u70b9\u51fbSCHEDULER\u53ef\u4ee5\u7f16\u8f91\u5b9a\u65f6\u4efb\u52a1\uff0c\u70b9\u51fb\u201c\u751f\u6210\u8868\u8fbe\u5f0f\u201d\u53ef\u5feb\u901f\u751f\u6210cron\u8868\u8fbe\u5f0f

    "},{"location":"user_manual/api_test/#_29","title":"\u5b9a\u65f6\u4efb\u52a1\u6267\u884c","text":"

    \u5b9a\u65f6\u4efb\u52a1\u4e3a\u5f00\u5173\u63a7\u5236\uff0c\u5e76\u5c55\u793a\u6700\u8fd1\u4e00\u6b21\u7684\u8ba1\u5212\u6267\u884c\u65f6\u95f4\uff0c\u751f\u6210\u7684\u6d4b\u8bd5\u62a5\u544a\u89e6\u53d1\u65b9\u5f0f\u4e3a\u201c\u5b9a\u65f6\u4efb\u52a1\u201d

    "},{"location":"user_manual/api_test/#_30","title":"\u66f4\u591a\u64cd\u4f5c","text":""},{"location":"user_manual/api_test/#_31","title":"\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5","text":"

    \u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\uff0c\u63a5\u53e3\u6d4b\u8bd5\u4fdd\u5b58\u540e\u53ef\u4ee5\u76f4\u63a5\u521b\u5efa\u8be5\u573a\u666f\u5bf9\u5e94\u7684\u6027\u80fd\u6d4b\u8bd5\uff0c\u914d\u7f6e\u538b\u529b\u6d4b\u8bd5\u53c2\u6570\u540e\uff0c\u53ef\u4e00\u952e\u6267\u884c

    "},{"location":"user_manual/api_test/#_32","title":"\u5bfc\u51fa","text":"

    \u5728\u66f4\u591a\u64cd\u4f5c\u4e2d\u9009\u62e9\u5bfc\u51fa\uff0c\u53ef\u4ee5\u5c06\u5f53\u524d\u6d4b\u8bd5\u5bfc\u51fa\u4e3ajson\u6587\u4ef6

    "},{"location":"user_manual/api_test/#_33","title":"\u5bfc\u5165","text":"

    \u652f\u6301\u5feb\u901f\u5bfc\u5165MeterSphere Record \uff0cpostman\uff0c swagger\u6570\u636e

    "},{"location":"user_manual/api_test/#metersphere-record","title":"MeterSphere Record","text":"

    \u4e3a MeterSphere \u914d\u5957\u7684\u6d4f\u89c8\u5668\u63d2\u4ef6\uff0c\u8be5\u63d2\u4ef6\u53ef\u5c06\u7528\u6237\u5728\u6d4f\u89c8\u5668\u64cd\u4f5c\u65f6\u7684 HTTP \u8bf7\u6c42\u8bb0\u5f55\u4e0b\u6765\u5e76\u751f\u6210 JMX \u6587\u4ef6\uff08JMeter \u811a\u672c\u6587\u4ef6\uff09\u6216 JSON \u6587\u4ef6\uff0c\u7528\u4e8e\u5728 MeterSphere \u4e2d\u8fdb\u884c\u63a5\u53e3\u6d4b\u8bd5\u6216\u6027\u80fd\u6d4b\u8bd5\u3002

    \u8be6\u7ec6\u4ecb\u7ecd\u4e0e\u5b89\u88c5\uff1ahttps://github.com/metersphere/chrome-extensions

    \u5f55\u5236\u811a\u672c\uff1a

    \u7f16\u8f91\u811a\u672c\uff1a\u53ef\u4ee5\u9488\u5bf9\u5f55\u5236\u7684\u8bf7\u6c42\u8fdb\u884c\u7f16\u8f91\u8c03\u6574\uff0c\u5bfc\u51fa\u683c\u5f0f\u652f\u6301JMX\u548cJSON\u4e24\u79cd

    \u5bfc\u5165\u811a\u672c\uff1aJSON\u811a\u672c\u53ef\u4ee5\u5bfc\u5165\u5230\u5e73\u53f0\u8fdb\u884c\u63a5\u53e3\u6d4b\u8bd5\uff0cJMX\u811a\u672c\u53ef\u4ee5\u5bfc\u5165\u5230\u5e73\u53f0\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5

    "},{"location":"user_manual/api_test/#postman","title":"postman","text":"

    \u5bfc\u51fapostman\u6d4b\u8bd5

    \u5bfc\u5165\u5230MeterSphere

    "},{"location":"user_manual/api_test/#swagger","title":"swagger","text":"

    swagger\u5bfc\u5165\uff1a\u5c06swagger\u6587\u4ef6\u5bfc\u5165\u5e73\u53f0

    "},{"location":"user_manual/api_test/#_34","title":"\u62a5\u544a","text":"

    \u5bf9\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a\u7684\u67e5\u8be2\u548c\u5220\u9664\u64cd\u4f5c

    "},{"location":"user_manual/api_test/#_35","title":"\u67e5\u8be2\u62a5\u544a","text":"

    \u67e5\u8be2\u5168\u90e8\u62a5\u544a\uff0c\u70b9\u51fb\u663e\u793a\u5168\u90e8\uff0c\u67e5\u8be2\u5355\u4e2a\u62a5\u544a\u53ef\u4ee5\u6839\u636e\u540d\u79f0\u641c\u7d22

    "},{"location":"user_manual/api_test/#_36","title":"\u62a5\u544a\u8be6\u60c5","text":"

    \u5c55\u793a\u63a5\u53e3\u6d4b\u8bd5\u7684\u6267\u884c\u7ed3\u679c\uff0c\u5305\u542b\u54cd\u5e94\u65f6\u95f4\u3001\u9519\u8bef\u3001\u65ad\u8a00\u4ee5\u53ca\u8bf7\u6c42\u7684\u5177\u4f53\u54cd\u5e94\u62a5\u6587\u7b49

    "},{"location":"user_manual/api_test/#_37","title":"\u5220\u9664\u62a5\u544a","text":"

    \u70b9\u51fb\u62a5\u544a-\u663e\u793a\u5168\u90e8\uff0c\u9009\u62e9\u8981\u5220\u9664\u7684\u62a5\u544a\uff0c\u70b9\u51fb\u5220\u9664\u6309\u94ae

    "},{"location":"user_manual/general/","title":"\u901a\u7528\u529f\u80fd","text":""},{"location":"user_manual/general/#1","title":"1 \u5207\u6362\u8bed\u8a00","text":"

    \u70b9\u51fb\u9875\u9762\u53f3\u4e0a\u65b9\u7684\u8bed\u8a00\u4e0b\u62c9\u83dc\u5355\uff0c\u8fdb\u884c\u6307\u5b9a\u8bed\u8a00\u7684\u5207\u6362\u3002

    "},{"location":"user_manual/general/#2","title":"2 \u5207\u6362\u5de5\u4f5c\u7a7a\u95f4","text":"

    \u5de5\u4f5c\u7a7a\u95f4\u7684\u6982\u5ff5\u8bf4\u660e\u53ca\u5173\u7cfb\u8bf7\u53c2\u8003 \u6982\u5ff5\u8bf4\u660e\u3002 \u9875\u9762\u53f3\u4e0a\u65b9\u5c55\u793a\u4e86\u7528\u6237\u5f53\u524d\u6240\u5904\u7684\u5de5\u4f5c\u7a7a\u95f4\u3002\u70b9\u51fb\u5de5\u4f5c\u7a7a\u95f4\u4e0b\u62c9\u83dc\u5355\uff0c\u83dc\u5355\u4e2d\u5217\u51fa\u4e86\u5f53\u524d\u7528\u6237\u5177\u6709\u6743\u9650\u7684\u5de5\u4f5c\u7a7a\u95f4\u5217\u8868\uff0c\u70b9\u51fb\u67d0\u4e2a\u5de5\u4f5c\u7a7a\u95f4\u8fdb\u884c\u5207\u6362\u3002

    "},{"location":"user_manual/general/#3","title":"3 \u5207\u6362\u9879\u76ee","text":"

    MeterSphere \u4e2d\u7684\u6d4b\u8bd5\u7528\u4f8b\u3001\u63a5\u53e3\u5b9a\u4e49\u3001\u6027\u80fd\u6d4b\u8bd5\u7b49\u8d44\u6e90\u5747\u4f7f\u7528\u9879\u76ee\u8fdb\u884c\u9694\u79bb\uff0c\u7528\u6237\u9700\u8981\u64cd\u4f5c\u53e6\u4e00\u4e2a\u9879\u76ee\u4e2d\u7684\u8d44\u6e90\u65f6\u9700\u8981\u5148\u8fdb\u884c\u9879\u76ee\u5207\u6362\u3002 \u70b9\u51fb\u5de6\u4e0a\u65b9\u7684\u9879\u76ee\u4e0b\u62c9\u83dc\u5355\uff0c\u83dc\u5355\u4e2d\u5217\u51fa\u4e86\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e0b\u7684\u9879\u76ee\u5217\u8868\uff0c\u70b9\u51fb\u67d0\u4e2a\u9879\u76ee\u8fdb\u884c\u5207\u6362\u3002

    "},{"location":"user_manual/general/#4","title":"4 \u6279\u91cf\u64cd\u4f5c","text":"

    \u7cfb\u7edf\u4e2d\u7684\u5927\u90e8\u5206\u5217\u8868\u5747\u63d0\u4f9b\u4e86\u591a\u9009\u53ca\u5168\u9009\u529f\u80fd\uff0c\u5f53\u9009\u4e2d\u591a\u4e2a\u6570\u636e\u540e\u53ef\u4ee5\u70b9\u51fb\u3010\u6279\u91cf\u5904\u7406\u3011\u6309\u94ae\u8fdb\u884c\u6279\u91cf\u64cd\u4f5c\u3002

    \u4e3a\u4e86\u66f4\u65b9\u4fbf\u7684\u8fdb\u884c\u5168\u9009\u64cd\u4f5c\uff0c\u7cfb\u7edf\u63d0\u4f9b\u4e86\u4e24\u79cd\u5168\u9009\u6a21\u5f0f\u3002\u70b9\u51fb\u5217\u8868\u5de6\u4e0a\u65b9\u5168\u9009\u6846\u65c1\u8fb9\u7684\u4e0b\u62c9\u6309\u94ae\uff0c\u9009\u62e9\u3010\u9009\u62e9\u53ef\u89c1\u6570\u636e\u3011\u9009\u9879\uff0c\u8be5\u65b9\u5f0f\u53ea\u9009\u4e2d\u5f53\u524d\u5206\u9875\u4e2d\u53ef\u89c1\u7684\u6570\u636e\u6761\u76ee\u3002\u9009\u62e9\u3010\u9009\u62e9\u6240\u6709\u6570\u636e\u3011\u9879\uff0c\u8be5\u65b9\u5f0f\u9009\u4e2d\u5f53\u524d\u5217\u8868\u6240\u6709\u5206\u9875\u4e2d\u7684\u6570\u636e\u6761\u76ee\u3002

    \u8bf4\u660e

    \u76f4\u63a5\u70b9\u51fb\u5168\u9009\u6846\u4e0d\u4e0b\u62c9\u9009\u62e9\u65f6\u9ed8\u8ba4\u4f7f\u7528\u3010\u9009\u62e9\u53ef\u89c1\u6570\u636e\u3011\u65b9\u5f0f\u3002

    "},{"location":"user_manual/general/#5","title":"5 \u67e5\u8be2\u7ba1\u7406","text":"

    \u5728\u6240\u6709\u5217\u8868\u4fe1\u606f\u9875\u9762\uff0c\u7cfb\u7edf\u90fd\u4f1a\u63d0\u4f9b\u67e5\u8be2\u529f\u80fd\uff0c\u67e5\u8be2\u529f\u80fd\u4e00\u822c\u6709\u5355\u4e00\u67e5\u8be2\uff0c\u6216\u540c\u65f6\u63d0\u4f9b\u5355\u4e00\u67e5\u8be2\u548c\u9ad8\u7ea7\u67e5\u8be2\u3002

    "},{"location":"user_manual/general/#51","title":"5.1 \u5355\u4e00\u67e5\u8be2","text":"

    \u5355\u4e00\u67e5\u8be2\uff1a\u4e00\u822c\u6309ID\u3001\u540d\u79f0\u7b49\u4fe1\u606f\u6a21\u7cca\u67e5\u8be2\uff0c\u5e76\u4e14\u5728\u67e5\u8be2\u8f93\u5165\u6846\u5185\u6709\u76f8\u5e94\u6761\u4ef6\u7684\u8bf4\u660e\uff0c\u5982\u4e0b\u56fe

    "},{"location":"user_manual/general/#52","title":"5.2 \u9ad8\u7ea7\u67e5\u8be2","text":"

    \u5728\u90e8\u5206\u5217\u8868\u4fe1\u606f\u9875\u9762\u7684\u53f3\u4e0a\u89d2\u4f1a\u63d0\u4f9b\u9ad8\u7ea7\u67e5\u8be2\u529f\u80fd\u3002 \u70b9\u51fb\u3010\u9ad8\u7ea7\u67e5\u8be2\u3011\u53ef\u770b\u5230\u63d0\u4f9b\u7684\u591a\u79cd\u6761\u4ef6\u7684\u7ec4\u5408\u67e5\u8be2\u3002\u4e0d\u540c\u9875\u9762\u7684\u9ad8\u7ea7\u67e5\u8be2\u6761\u4ef6\u4e0d\u4e00\u6837\uff0c\u4e0b\u9762\u4e3e\u4f8b\u7684\u662f\u529f\u80fd\u7528\u4f8b\u5217\u8868\u4e2d\u7684\u9ad8\u7ea7\u67e5\u8be2\u9875\u9762\u3002

    "},{"location":"user_manual/general/#6","title":"6 \u8868\u5934\u529f\u80fd","text":"

    \u5217\u8868\u6a21\u5f0f\u4e0b\uff0c\u5728\u4fe1\u606f\u5217\u8868\u5934\u4e0a\u63d0\u4f9b\u4e86\u5176\u4ed6\u76f8\u5173\u529f\u80fd\uff1a\u6bd4\u5982\u67e5\u8be2\u3001\u5217\u8868\u4fe1\u606f\u663e\u793a\u8bbe\u7f6e\u7b49\u3002

    "},{"location":"user_manual/general/#61","title":"6.1 \u590d\u9009\u6846\u529f\u80fd","text":"

    \u5728\u5217\u8868\u4fe1\u606f\u9875\u7684\u7b2c\u4e00\u5217\u590d\u9009\u6846\u5934\u90e8\uff0c\u6709\u4e2a\u5411\u4e0b\u7bad\u5934\u3010V\u3011\uff0c\u70b9\u51fb\u5411\u4e0b\u7bad\u5934\u3010V\u3011\u53ef\u4ee5\u770b\u5230\u5bf9\u4e8e\u8bb0\u5f55\u7684\u9009\u4e2d\u63d0\u4f9b\u4e24\u79cd\u9009\u62e9\u6570\u636e\u8303\u56f4\uff0c\u5373\u5bf9\u5f53\u524d\u9875\uff0c\u6216\u5bf9\u67e5\u8be2\u5230\u7684\u6240\u6709\u8bb0\u5f55\u3002

    "},{"location":"user_manual/general/#62","title":"6.2 \u5217\u8868\u5185\u67e5\u8be2","text":"

    \u5728\u5217\u8868\u4fe1\u606f\u5934\u4e2d\uff0c\u5982\u679c\u8868\u5934\u4fe1\u606f\u6709\u5411\u4e0b\u7bad\u5934\u3010V\u3011\uff0c\u5219\u8868\u793a\u5728\u5f53\u524d\u7684\u5217\u8868\u4fe1\u606f\u96c6\u4e2d\uff0c\u53ef\u4ee5\u6839\u636e\u6b64\u4fe1\u606f\u8fdb\u884c\u5feb\u901f\u7b5b\u9009\u67e5\u8be2\u3002

    "},{"location":"user_manual/general/#63","title":"6.3 \u6392\u5e8f\u529f\u80fd","text":"

    \u5728\u5217\u8868\u4fe1\u606f\u5934\u4e2d\uff0c\u5982\u679c\u8868\u5934\u4fe1\u606f\u6709\u5411\u4e0a\u4e0b\u7bad\u5934\uff0c\u5219\u8868\u793a\u6839\u636e\u6b64\u5b57\u6bb5\u5bf9\u5f53\u524d\u7684\u5217\u8868\u4fe1\u606f\u96c6\u8fdb\u884c\u5012\u5e8f\u548c\u6b63\u5e8f\u6392\u5217\u3002\u7cfb\u7edf\u4e00\u822c\u63d0\u4f9b\u591a\u79cd\u4fe1\u606f\u7684\u6b63\u5e8f\u6216\u5012\u5e8f\u7684\u6392\u5217\u3002

    "},{"location":"user_manual/general/#64","title":"6.4 \u81ea\u5b9a\u4e49\u5217\u8868\u663e\u793a","text":"

    \u7cfb\u7edf\u5bf9\u4e8e\u90e8\u5206\u5217\u8868\u4fe1\u606f\u9875\u9762\uff0c\u90fd\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u5217\u8868\u663e\u793a\u4fe1\u606f\u7684\u8bbe\u7f6e\u3002 \u5728\u4fe1\u606f\u5217\u8868\u7684\u64cd\u4f5c\u5217\uff0c\u5934\u90e8\u6709\u3010\u8bbe\u7f6e\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u81ea\u5b9a\u4e49\u5217\u8868\u663e\u793a\u6570\u636e\u7684\u5b57\u6bb5\u3002

    \u4e0b\u9762\u4ee5\u6d4b\u8bd5\u8ba1\u5212\u9875\u9762\u7684\u8bbe\u7f6e\u4e3a\u4f8b\uff0c\u70b9\u51fb\u3010\u8bbe\u7f6e\u3011\u6309\u94ae\uff0c\u5f39\u51fa\u8868\u5934\u663e\u793a\u5b57\u6bb5\u8bbe\u7f6e\uff0c\u7cfb\u7edf\u9ed8\u8ba4\u663e\u793a\u6240\u6709\u5b57\u6bb5\u3002 \u9700\u8981\u663e\u793a\u7684\u5b57\u6bb5\u79fb\u5230\u53f3\u8fb9\u5df2\u9009\u5b57\u6bb5\u6846\u4e2d\uff1b\u4e0d\u9700\u8981\u663e\u793a\u7684\u5b57\u6bb5\u79fb\u5230\u5de6\u8fb9\u5f85\u9009\u5b57\u6bb5\u6846\u4e2d\u3002

    \u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5b8c\u6210\u8bbe\u7f6e\uff0c\u7cfb\u7edf\u4f1a\u8fd4\u56de\u4fe1\u606f\u5217\u8868\u9875\u9762\uff0c\u6b64\u65f6\u7cfb\u7edf\u4f1a\u81ea\u52a8\u5237\u65b0\u4fe1\u606f\u5217\u8868\u9875\uff0c\u6b64\u65f6\u6309\u8bbe\u7f6e\u7684\u4fe1\u606f\u8fdb\u884c\u663e\u793a\u3002

    "},{"location":"user_manual/general/#65","title":"6.5 \u8c03\u6574\u5217\u8868\u5bbd\u5ea6","text":"

    \u70b9\u51fb\u5217\u8868\u8868\u5934\u5217\u4e2d\u95f4\u7684\u3010|\u3011\uff0c\u53ef\u5de6\u53f3\u62d6\u52a8\u81ea\u5b9a\u4e49\u8c03\u6574\u5217\u8868\u7684\u5bbd\u5ea6\u3002

    "},{"location":"user_manual/general/#7","title":"7 \u4e2a\u4eba\u4fe1\u606f","text":"

    \u5728\u53f3\u4e0a\u89d2\u7528\u6237\u540d\u5904\u7684\u4e0b\u62c9\u83dc\u5355\u4e2d\uff0c\u9009\u62e9\u3010\u4e2a\u4eba\u4fe1\u606f\u3011\u9009\u9879\uff0c\u53ef\u770b\u5f53\u524d\u4e2a\u4eba\u76f8\u5173\u7684\u914d\u7f6e\u4fe1\u606f\u3002

    "},{"location":"user_manual/general/#8","title":"8 \u67e5\u770b\u7248\u672c\u4fe1\u606f","text":"

    \u5728\u53f3\u4e0a\u89d2\u7528\u6237\u540d\u5904\u7684\u4e0b\u62c9\u83dc\u5355\u4e2d\uff0c\u9009\u62e9\u3010\u5173\u4e8e\u3011\u9009\u9879\uff0c\u5728\u5f39\u51fa\u7684\u9875\u9762\u4e2d\u53ef\u4ee5\u67e5\u770b\u5f53\u524d\u7248\u672c\u4fe1\u606f\u3002

    "},{"location":"user_manual/general/#9","title":"9 \u67e5\u770b\u5e2e\u52a9\u6587\u6863","text":"

    \u5728\u53f3\u4e0a\u89d2\u7528\u6237\u540d\u5904\u7684\u4e0b\u62c9\u83dc\u5355\u4e2d\uff0c\u9009\u62e9\u3010\u5e2e\u52a9\u6587\u6863\u3011\u9009\u9879\uff0c\u6d4f\u89c8\u5668\u5c06\u5728\u65b0\u9875\u9762\u6253\u5f00\u5728\u7ebf\u6587\u6863\u9875\u9762\u3002

    "},{"location":"user_manual/general/#10-api","title":"10 \u67e5\u770b API \u6587\u6863","text":"

    \u5728\u53f3\u4e0a\u89d2\u7528\u6237\u540d\u5904\u7684\u4e0b\u62c9\u83dc\u5355\u4e2d\uff0c\u9009\u62e9\u3010API\u6587\u6863\u3011\u9009\u9879\uff0c\u6d4f\u89c8\u5668\u5c06\u5728\u65b0\u9875\u9762\u6253\u5f00\u5185\u7f6e\u7684 API \u6587\u6863\u9875\u9762\u3002

    "},{"location":"user_manual/general/#11","title":"11 \u9000\u51fa\u7cfb\u7edf","text":"

    \u5728\u53f3\u4e0a\u89d2\u7528\u6237\u540d\u5904\u7684\u4e0b\u62c9\u83dc\u5355\u4e2d\uff0c\u9009\u62e9\u3010\u9000\u51fa\u7cfb\u7edf\u3011\u9009\u9879\uff0c\u9875\u9762\u5c06\u4f1a\u8df3\u5230\u767b\u5f55\u9875\u9762\u3002

    "},{"location":"user_manual/api_test/api_automation/","title":"\u63a5\u53e3\u81ea\u52a8\u5316","text":"

    \u573a\u666f\u662f\u63a5\u53e3\u81ea\u52a8\u5316\u4e2d\u7684\u57fa\u672c\u7ba1\u7406\u5355\u5143\uff0c\u7531\u4e00\u7ec4\u7528\u4f8b\u548c\u63a5\u53e3\u7ec4\u88c5\u800c\u6210\u3002\u5982\u7528\u6237\u7ba1\u7406\u573a\u666f\uff0c\u5305\u542b\u7528\u6237\u6ce8\u518c\u3001\u7528\u6237\u767b\u9646\u3001\u7528\u6237\u4fee\u6539\u3001\u7528\u6237\u6ce8\u9500\u3001\u7528\u6237\u9500\u6237\u7b49\u7528\u4f8b\u6216\u8005\u63a5\u53e3\u3002 MeterSphere \u652f\u6301\u5bfc\u5165\u63a5\u53e3\u901a\u8fc7\u62d6\u62fd\u7684\u65b9\u5f0f\u5bf9\u4e0a\u8ff0\u573a\u666f\u8fdb\u884c\u7528\u4f8b/\u63a5\u53e3\u7684\u7f16\u6392\u8bbe\u8ba1\u3002\u5728\u63a5\u53e3\u81ea\u52a8\u5316\u811a\u672c\u4e2d\u652f\u6301\u6dfb\u52a0\u5404\u79cd\u534f\u8bae\u7684\u8bf7\u6c42\u3001\u65ad\u8a00\u3001\u81ea\u5b9a\u4e49\u811a\u672c\u3001\u903b\u8f91\u63a7\u5236\u5668\u7b49\u7ec4\u4ef6\u5b8c\u6210\u4e00\u4e2a\u63a5\u53e3\u6d4b\u8bd5\u573a\u666f\uff0c\u5e76\u4e14\u652f\u6301\u5b9a\u65f6\u3001API\u8c03\u7528\u3001Jenkins\u8c03\u7528\u65b9\u5f0f\u89e6\u53d1\u81ea\u52a8\u5316\u6267\u884c\u4efb\u52a1\u3002

    "},{"location":"user_manual/api_test/api_automation/#1","title":"1 \u6a21\u5757\u6811\u7ba1\u7406","text":"

    \u6bcf\u4e2a\u573a\u666f\u90fd\u9700\u8981\u5c5e\u4e8e\u4e00\u4e2a\u7279\u5b9a\u7684\u6a21\u5757\uff0c\u5728\u521b\u5efa\u573a\u666f\u524d\u9700\u8981\u5148\u89c4\u5212\u5e76\u521b\u5efa\u6a21\u5757\u6811\u3002\u63a5\u53e3\u81ea\u52a8\u5316\u4e0e\u63a5\u53e3\u5b9a\u4e49\u4e2d\u7684\u6a21\u5757\u6811\u76f8\u4e92\u72ec\u7acb\uff0c\u63a5\u53e3\u5b9a\u4e49\u4e2d\u521b\u5efa\u7684\u6a21\u5757\u4e0d\u4f1a\u51fa\u73b0\u5728\u63a5\u53e3\u81ea\u52a8\u5316\u7684\u6a21\u5757\u6811\u4e2d\u3002 \u5177\u4f53\u7684\u6a21\u5757\u7ba1\u7406\u64cd\u4f5c\u4e0e\u63a5\u53e3\u5b9a\u4e49\u4e2d\u7684\u6a21\u5757\u6811\u7c7b\u4f3c\uff0c\u8bf7\u53c2\u8003\u63a5\u53e3\u5b9a\u4e49\u4e2d\u7684 \u6a21\u5757\u6811\u7ba1\u7406\u3002

    "},{"location":"user_manual/api_test/api_automation/#2","title":"2 \u573a\u666f\u7ba1\u7406","text":""},{"location":"user_manual/api_test/api_automation/#21","title":"2.1 \u5feb\u6377\u529f\u80fd","text":"

    \u573a\u666f\u5217\u8868\u7684\u5feb\u6377\u6309\u94ae\u6709\u3010\u6267\u884c\u3011\u3010\u7f16\u8f91\u3011\u3010\u590d\u5236\u3011\u3010\u5220\u9664\u3011\u70b9\u51fb\u66f4\u591a\u53ef\u64cd\u4f5c\u3010\u67e5\u770b\u5f15\u7528\u3011\u3010\u5b9a\u65f6\u4efb\u52a1\u3011\u3010\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u3011\u3002

    "},{"location":"user_manual/api_test/api_automation/#22","title":"2.2 \u5feb\u901f\u521b\u5efa","text":"

    \u9009\u62e9\u4e00\u4e2a\u6a21\u5757\uff0c\u70b9\u51fb\u3010\u66f4\u591a\u64cd\u4f5c-\u521b\u5efa\u573a\u666f\u3011\u6309\u94ae\uff0c\u53ef\u4ec5\u586b\u5199\u63a5\u53e3\u57fa\u672c\u4fe1\u606f\uff0c\u5728\u8be5\u6a21\u5757\u4e0b\u5feb\u901f\u521b\u5efa\u63a5\u53e3\u3002

    "},{"location":"user_manual/api_test/api_automation/#23","title":"2.3 \u7f16\u8f91\u8be6\u60c5","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u70b9\u51fb\u6307\u5b9a\u573a\u666f\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u8fdb\u5165\u573a\u666f\u8be6\u60c5\u7f16\u8f91\u9875\u9762\u3002\u5728\u8be5\u9875\u9762\u4e2d\u53ef\u5bf9\u573a\u666f\u7684\u57fa\u7840\u4fe1\u606f\uff0c\u573a\u666f\u7684\u5177\u4f53\u6b65\u9aa4\u7b49\u8fdb\u884c\u8fdb\u4e00\u6b65\u7f16\u8f91\uff0c\u7f16\u8f91\u5b8c\u6210\u540e\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u4fdd\u5b58\u6309\u94ae\u8fdb\u884c\u4fdd\u5b58\u3002

    "},{"location":"user_manual/api_test/api_automation/#24","title":"2.4 \u573a\u666f\u53d8\u91cf\u914d\u7f6e","text":"

    \u5728\u6dfb\u52a0\u573a\u666f\u6b65\u9aa4\u524d\u53ef\u4ee5\u6dfb\u52a0\u6574\u4e2a\u573a\u666f\u516c\u7528\u7684\u53d8\u91cf\u53c2\u6570\uff0c\u652f\u6301\u591a\u79cd\u4e0d\u540c\u7c7b\u578b\uff0c\u5728\u573a\u666f\u4e2d\u7684\u6b65\u9aa4\u5747\u53ef\u5f15\u7528\u8fd9\u4e9b\u53c2\u6570\u3002

    \u53c2\u6570\u8bf4\u660e

    • \u3010\u5e38\u91cf\u3011

      • \u53d8\u91cf\u540d: \u8be5\u53d8\u91cf\u7684\u53d8\u91cf\u540d\uff0c\u53ef\u4ee5\u5728\u573a\u666f\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${varName} \u7684\u5f62\u5f0f\u5f15\u7528\u8be5\u53d8\u91cf\u3002
      • \u63cf\u8ff0\uff1a\u9488\u5bf9\u8be5\u53d8\u91cf\u7684\u8be6\u7ec6\u8bf4\u660e\u3002
      • \u503c\uff1a\u8be5\u53d8\u91cf\u7684\u503c\uff0c\u53ef\u4ee5\u4f7f\u7528 JMeter \u4e2d\u7684\u5185\u7f6e\u51fd\u6570\u3002
      • \u4e3e\u4f8b\u8bf4\u660e\uff1a\u5b9a\u4e49\u53d8\u91cf\u540d\u4e3a varName\uff0c\u53d8\u91cf\u503c\u4e3a varValue \u7684\u53d8\u91cf\uff0c\u5728\u540e\u7eed\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${varName} \u5f15\u7528\u5f97\u5230 varValue\u3002
    • \u3010\u5217\u8868\u3011

      • \u53d8\u91cf\u540d: \u8be5\u53d8\u91cf\u7684\u53d8\u91cf\u540d\uff0c\u53ef\u4ee5\u5728\u573a\u666f\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${varName} \u7684\u5f62\u5f0f\u5f15\u7528\u8be5\u53d8\u91cf\u3002
      • \u63cf\u8ff0\uff1a\u9488\u5bf9\u8be5\u53d8\u91cf\u7684\u8be6\u7ec6\u8bf4\u660e\u3002
      • \u503c\uff1a\u4ee5\u9017\u53f7 , \u5206\u9694\u7684\u503c\u5217\u8868\uff0c\u53ef\u4ee5\u5728\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${varName_n} \u7684\u5f62\u5f0f\u5f15\u7528\u6307\u5b9a\u4f4d\u7f6e\u7684\u503c\uff0c\u5176\u4e2d n \u4ee3\u8868\u8981\u5f15\u7528\u7684\u503c\u7684\u4f4d\u7f6e\uff0c\u4ece 1 \u5f00\u59cb\u3002
      • \u4e3e\u4f8b\u8bf4\u660e\uff1a\u5b9a\u4e49\u53d8\u91cf\u540d\u4e3a listVar\uff0c\u53d8\u91cf\u503c\u4e3a value1,value2,value3 \u7684\u53d8\u91cf\uff0c\u5728\u540e\u7eed\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${listVar_1} \u5f15\u7528\u5f97\u5230 value1\uff0c\u901a\u8fc7 ${listVar_2} \u5f15\u7528\u5f97\u5230 value2\u3002
    • \u3010CSV\u3011

      • \u53d8\u91cf\u540d: CSV \u6587\u4ef6\u7684\u540d\u79f0\uff0c\u4ec5\u8d77\u5230\u6807\u8bb0\u4f5c\u7528\uff0c\u65e0\u6cd5\u5728\u573a\u666f\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${varName} \u7684\u5f62\u5f0f\u5f15\u7528\u8be5\u53d8\u91cf\u3002
      • \u63cf\u8ff0\uff1a\u9488\u5bf9\u8be5\u53d8\u91cf\u7684\u8be6\u7ec6\u8bf4\u660e\u3002
      • \u6dfb\u52a0\u6587\u4ef6\uff1aCSV \u6587\u4ef6\u9009\u62e9\uff0c\u4ece\u672c\u5730\u4e0a\u4f20 CSV \u6587\u4ef6\u3002
      • Encoding\uff1aCSV \u6587\u4ef6\u7684\u7f16\u7801\u683c\u5f0f\u3002
      • \u5206\u9694\u7b26\uff1aCSV \u6587\u4ef6\u4e2d\u7684\u6570\u636e\u5206\u9694\u7b26\uff0c\u9ed8\u8ba4\u4e3a ,\u3002
      • \u4e3e\u4f8b\u8bf4\u660e\uff1a\u4e0a\u4f20 CSV \u4e2d\u7684\u5185\u5bb9\u5982\u4e0b\u6240\u793a\uff0c\u7b2c\u4e00\u5217\u4e3a\u53d8\u91cf\u540d\u5217\uff0c\u53ef\u4ee5\u5728\u573a\u666f\u7684\u540e\u7eed\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${name}\uff0c${age} \u5206\u522b\u5f15\u7528\u7b2c\u4e00\u5217\u548c\u7b2c\u4e8c\u5217\u7684\u503c\u3002\u5f53\u5728\u5faa\u73af\u63a7\u5236\u5668\u5916\u5f15\u7528\u53d8\u91cf\u65f6\uff0c\u53d8\u91cf\u503c\u4e3a\u7b2c\u4e00\u4e2a\u6570\u636e\u503c\uff0c${name}=Andy\uff0c${age}=20\uff1b\u5f53\u5728\u5faa\u73af\u63a7\u5236\u5668\u5185\u5f15\u7528\u53d8\u91cf\u65f6\uff0c\u6bcf\u8fed\u4ee3\u4e00\u6b21\u90fd\u4f1a\u53d6\u4e0b\u4e00\u884c\u7684\u6570\u636e\u503c\u3002

        name,age\nAndy,20\nTom,22\n
    • \u3010\u8ba1\u6570\u5668\u3011

      • \u53d8\u91cf\u540d: \u8be5\u53d8\u91cf\u7684\u53d8\u91cf\u540d\uff0c\u53ef\u4ee5\u5728\u573a\u666f\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${varName} \u7684\u5f62\u5f0f\u5f15\u7528\u8be5\u53d8\u91cf\u3002
      • \u63cf\u8ff0\uff1a\u9488\u5bf9\u8be5\u53d8\u91cf\u7684\u8be6\u7ec6\u8bf4\u660e\u3002
      • \u5f00\u59cb\uff1a\u8ba1\u6570\u5668\u53d8\u91cf\u7684\u8d77\u59cb\u503c\uff0c\u5373\u6700\u5c0f\u503c\u3002
      • \u7ed3\u675f\uff1a\u8ba1\u6570\u5668\u53d8\u91cf\u7684\u7ed3\u675f\u503c\uff0c\u5373\u6700\u5927\u503c\u3002
      • \u589e\u91cf\uff1a\u8ba1\u6570\u5668\u53d8\u91cf\u6bcf\u6b21\u589e\u52a0\u7684\u589e\u91cf\u503c\uff0c\u9ed8\u8ba4\u4e3a 1\u3002
      • \u4e3e\u4f8b\u8bf4\u660e\uff1a\u5b9a\u4e49\u53d8\u91cf\u540d\u4e3a counter1 \u7684\u8ba1\u6570\u5668\u53d8\u91cf\uff0c\u5f00\u59cb\u503c\u4e3a 1\uff0c\u7ed3\u675f\u503c\u4e3a 100\uff0c\u589e\u91cf\u4e3a 1\u3002\u5f53\u5728\u5faa\u73af\u63a7\u5236\u5668\u5916\u5f15\u7528\u53d8\u91cf\u65f6\uff0c\u53d8\u91cf\u503c\u4e0d\u4f1a\u9012\u589e\uff0c\u4e00\u76f4\u4e3a\u5f53\u524d\u503c\uff1b\u5f53\u5728\u5faa\u73af\u63a7\u5236\u5668\u5185\u5f15\u7528\u53d8\u91cf\u65f6\uff0c\u6bcf\u8fed\u4ee3\u4e00\u6b21\u53d8\u91cf\u503c\u90fd\u4f1a\u589e\u52a0\u4e00\u6b21\u3002
    • \u3010\u968f\u673a\u6570\u3011

      • \u53d8\u91cf\u540d: \u8be5\u53d8\u91cf\u7684\u53d8\u91cf\u540d\uff0c\u53ef\u4ee5\u5728\u573a\u666f\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${varName} \u7684\u5f62\u5f0f\u5f15\u7528\u8be5\u53d8\u91cf\u3002
      • \u63cf\u8ff0\uff1a\u9488\u5bf9\u8be5\u53d8\u91cf\u7684\u8be6\u7ec6\u8bf4\u660e\u3002
      • \u6700\u5c0f\u503c\uff1a\u968f\u673a\u8303\u56f4\u7684\u6700\u5c0f\u503c\u3002
      • \u6700\u5927\u503c\uff1a\u968f\u673a\u8303\u56f4\u7684\u6700\u5927\u503c\u3002
      • \u8f93\u51fa\u683c\u5f0f\uff1a\u968f\u673a\u6570\u7684\u8f93\u51fa\u683c\u5f0f\uff0c\u4f8b\u5982\u8bbe\u5b9a\u6700\u5c0f\u503c 1\uff0c\u6700\u5927\u503c 100\uff0c\u8f93\u51fa\u683c\u5f0f\u4e3a 000\uff0c\u5219\u53d8\u91cf\u503c\u4e3a 013\uff0c074 \u8fd9\u6837\u7684\u683c\u5f0f\u3002
      • \u4e3e\u4f8b\u8bf4\u660e\uff1a\u5b9a\u4e49\u53d8\u91cf\u540d\u4e3a random1\uff0c\u6700\u5c0f\u503c 1\uff0c\u6700\u5927\u503c 100\uff0c\u8f93\u51fa\u683c\u5f0f\u4e3a 000 \u7684\u53d8\u91cf\u3002\u5f53\u5728\u5faa\u73af\u63a7\u5236\u5668\u5916\u5f15\u7528\u53d8\u91cf\u65f6\uff0c\u591a\u6b21\u5f15\u7528\u53d8\u91cf\u503c\u4e0d\u4f1a\u91cd\u65b0\u968f\u673a\uff0c\u4e00\u76f4\u4e3a\u5f53\u524d\u503c\uff1b\u5f53\u5728\u5faa\u73af\u63a7\u5236\u5668\u5185\u5f15\u7528\u53d8\u91cf\u65f6\uff0c\u6bcf\u8fed\u4ee3\u4e00\u6b21\u53d8\u91cf\u503c\u90fd\u4f1a\u91cd\u65b0\u968f\u673a\u4e00\u6b21\u3002
    "},{"location":"user_manual/api_test/api_automation/#25","title":"2.5 \u573a\u666f\u6b65\u9aa4\u7f16\u6392","text":"

    \u6dfb\u52a0\u4e00\u7ea7\u6b65\u9aa4 \u5728\u573a\u666f\u8be6\u60c5\u7f16\u8f91\u9875\u9762\uff0c\u70b9\u51fb\u9875\u9762\u53f3\u4e0b\u65b9\u7684\u3010+\u3011\u6309\u94ae\uff0c\u53ef\u5728\u5f53\u524d\u573a\u666f\u4e2d\u6dfb\u52a0\u6b65\u9aa4\u3002

    \u70b9\u51fb\u6b65\u9aa4\u6761\u76ee\u7684\u7a7a\u767d\u5904\uff0c\u53ef\u4ee5\u5c55\u5f00\u67e5\u770b\u6b65\u9aa4\u8be6\u60c5\u3002

    \u6dfb\u52a0\u5b50\u6b65\u9aa4 \u5728\u6b65\u9aa4\u7684\u8bf7\u6c42\u53c2\u6570\u8be6\u60c5\u754c\u9762\uff0c\u53ef\u9009\u62e9\u6dfb\u52a0\u3010\u524d\u7f6e\u64cd\u4f5c\u3011\u3001\u3010\u540e\u7f6e\u64cd\u4f5c\u3011\u3001\u3010\u65ad\u8a00\u89c4\u5219\u3011\u5b50\u6b65\u9aa4\u3002

    • \u3010\u524d\u7f6e\u64cd\u4f5c\u3011\u53ef\u6dfb\u52a0\u3010\u524d\u7f6e\u811a\u672c\u3011\u3001\u3010\u524d\u7f6eSQL\u3011\u3001\u3010\u7b49\u5f85\u63a7\u5236\u5668\u3011\u3002
    • \u3010\u540e\u7f6e\u64cd\u4f5c\u3011\u53ef\u6dfb\u52a0\u3010\u63d0\u53d6\u53c2\u6570\u3011\u3001\u3010\u540e\u7f6eSQL\u3011\u3001\u3010\u540e\u7f6e\u811a\u672c\u3011\u3002
    • \u3010\u65ad\u8a00\u89c4\u5219\u3011\u53ef\u6dfb\u52a0\u591a\u79cd\u7c7b\u578b\u7684\u3010\u65ad\u8a00\u3011\u3002\u5177\u4f53\u6b65\u9aa4\u53ef\u53c2\u8003\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u4e2d\u7684 \u64cd\u4f5c\u6b65\u9aa4\u3002

    \u8c03\u6574\u6b65\u9aa4\u987a\u5e8f\u53ca\u5c42\u7ea7 \u9009\u4e2d\u67d0\u4e2a\u6b65\u9aa4\u540e\u957f\u6309\u9f20\u6807\u5de6\u952e\u53ef\u4ee5\u5bf9\u6b65\u9aa4\u8fdb\u884c\u62d6\u62fd\uff0c\u62d6\u62fd\u652f\u6301\u8c03\u6574\u6b65\u9aa4\u987a\u5e8f\u53ca\u5c42\u7ea7\uff0c\u901a\u8fc7\u62d6\u62fd\u53ef\u5c06\u5176\u53d8\u4e3a\u4e00\u7ea7\u6b65\u9aa4\u6216\u67d0\u4e2a\u6b65\u9aa4\u7684\u5b50\u6b65\u9aa4\u3002

    \u9488\u5bf9\u6b65\u9aa4\u7684\u5176\u4ed6\u64cd\u4f5c

    • \u3010\u7f16\u8f91\u540d\u79f0\u3011\uff1a\u5bf9\u4e8e\u652f\u6301\u914d\u7f6e\u540d\u79f0\u7684\u6b65\u9aa4\uff0c\u70b9\u51fb\u8be5\u6309\u94ae\u53ef\u4ee5\u4fee\u6539\u8be5\u6b65\u9aa4\u7684\u540d\u79f0\u3002
    • \u3010\u542f\u7528/\u7981\u7528\u3011\uff1a\u70b9\u51fb\u8be5\u6309\u94ae\u542f\u7528/\u7981\u7528\u8be5\u6b65\u9aa4\u3002
    • \u3010\u8c03\u8bd5\u3011\uff1a\u5bf9\u4e8e\u652f\u6301\u5355\u72ec\u6267\u884c\u7684\u6b65\u9aa4\uff0c\u70b9\u51fb\u8be5\u6309\u94ae\u53ef\u4ee5\u5355\u72ec\u6267\u884c\u6b65\u9aa4\uff0c\u6267\u884c\u540e\u70b9\u51fb\u6b65\u9aa4\u7a7a\u767d\u5904\u53ef\u4ee5\u5728\u5176\u8be6\u60c5\u4e2d\u67e5\u770b\u6267\u884c\u7ed3\u679c\u3002
    • \u3010\u590d\u5236\u3011\uff1a\u590d\u5236\u8be5\u6b65\u9aa4\u3002
    • \u3010\u5220\u9664\u3011\uff1a\u5220\u9664\u8be5\u6b65\u9aa4\u3002

    \u8c03\u9488\u5bf9\u573a\u666f\u7684\u5176\u4ed6\u64cd\u4f5c

    • \u3010\u573a\u666f\u53d8\u91cf\u3011\uff1a\u81ea\u5b9a\u4e49\u573a\u666f\u53d8\u91cf\uff0c\u5305\u62ec\u5e38\u91cf\u3001\u5217\u8868\u53d8\u91cf\u3001csv\u3001\u8ba1\u6570\u5668\u3001\u968f\u673a\u6570\u7b49\u3002
    • \u3010\u5171\u4eabcookie\u3011\uff1a\u573a\u666f\u91cc\u7684\u6240\u6709\u6b65\u9aa4\u5171\u4eabcookie\u3002
    • \u3010\u5931\u8d25\u7ee7\u7eed\u3011\uff1a\u573a\u666f\u4e2d\u6709\u6b65\u9aa4\u5931\u8d25\u4e0d\u5f71\u54cd\u540e\u9762\u6b65\u9aa4\u6267\u884c\u3002
    • \u3010\u8fd0\u884c\u73af\u5883\u3011\uff1a\u573a\u666f\u8fd0\u884c\u73af\u5883\u914d\u7f6e\uff0c\u53ef\u9009\u9879\u76ee\u73af\u5883\u6216\u8005\u73af\u5883\u7ec4\u4e24\u79cd\u7c7b\u578b\u3002
    • \u3010\u8c03\u8bd5\u3011\uff1a\u8c03\u6574\u573a\u666f\u548c\u751f\u6210\u62a5\u544a\u3002
    • \u3010\u4fdd\u5b58\u3011\uff1a\u4fdd\u5b58\u573a\u666f\u3002
    • \u3010\u5237\u65b0\u3011\uff1a\u573a\u666f\u5185\u5237\u65b0\u6b65\u9aa4\u3002
    • \u3010\u8c03\u8bd5\u5386\u53f2\u3011\uff1a\u67e5\u770b\u573a\u666f\u7684\u8c03\u8bd5\u5386\u53f2\u548c\u62a5\u544a\u8be6\u60c5\u3002
    • \u3010\u53d8\u66f4\u8bb0\u5f55\u3011\uff1a\u67e5\u770b\u573a\u666f\u53d8\u66f4\u8bb0\u5f55\u3002
    • \u3010\u7248\u672c\uff08X-Pack\uff09\u3011\uff1a\u5c55\u793a\u5f53\u524d\u573a\u666f\u6240\u5c5e\u7248\u672c\u4fe1\u606f\u3002
    • \u3010\u6279\u91cf\u64cd\u4f5c\u3011\uff1a\u573a\u666f\u5185\u90e8\u7684\u6279\u91cf\u64cd\u4f5c\uff0c\u5305\u542b \u6279\u91cf\u542f\u7528\u6b65\u9aa4\u3001\u6279\u91cf\u7981\u7528\u6b65\u9aa4\u3001\u6279\u91cf\u5c55\u5f00\u6b65\u9aa4\uff0c\u6279\u91cf\u6298\u53e0\u6b65\u9aa4\u3001\u6279\u91cf\u5220\u9664\u6b65\u9aa4\u3002

    "},{"location":"user_manual/api_test/api_automation/#26","title":"2.6 \u8c03\u8bd5\u6307\u5b9a\u573a\u666f","text":"

    \u573a\u666f\u53ca\u573a\u666f\u4e2d\u7684\u6b65\u9aa4\u521b\u5efa\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u3010\u8c03\u8bd5\u3011\u53ef\u5b9e\u65f6\u67e5\u770b\u573a\u666f\u5185\u5404\u4e2a\u6b65\u9aa4\u6267\u884c\u72b6\u6001\u53ca\u54cd\u5e94\u7ed3\u679c\u4fe1\u606f\uff0c\u53ea\u70b9\u51fb\u3010\u8c03\u8bd5\u3011\u4ea7\u751f\u7684\u7ed3\u679c\u4ec5\u4e34\u65f6\u5b58\u5728\uff0c\u65e0\u6cd5\u4fdd\u5b58\u4e3a\u6d4b\u8bd5\u62a5\u544a\u4f9b\u540e\u7eed\u67e5\u770b\u3002

    \u70b9\u51fb\u3010\u8c03\u8bd5\u3011\u6309\u94ae\u4e0b\u62c9\u56fe\u6807\uff0c\u518d\u70b9\u51fb\u751f\u6210\u6d4b\u8bd5\u62a5\u544a\u3002\u5f39\u51fa\u6267\u884c\u7ed3\u679c\u9875\u9762\uff0c\u5f53\u573a\u666f\u6267\u884c\u5b8c\u6210\u540e\u53ef\u67e5\u770b\u5230\u8be6\u7ec6\u7684\u6267\u884c\u62a5\u544a\u3002

    "},{"location":"user_manual/api_test/api_automation/#27","title":"2.7 \u6267\u884c\u6307\u5b9a\u573a\u666f","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u70b9\u51fb\u6307\u5b9a\u573a\u666f\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u6267\u884c\u3011\u6309\u94ae\uff0c\u5f39\u51fa\u6267\u884c\u7ed3\u679c\u9875\u9762\uff0c\u5f53\u573a\u666f\u6267\u884c\u5b8c\u6210\u540e\u53ef\u67e5\u770b\u5230\u8be6\u7ec6\u7684\u6267\u884c\u7ed3\u679c\u3002

    "},{"location":"user_manual/api_test/api_automation/#28","title":"2.8 \u6279\u91cf\u6267\u884c\u573a\u666f","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u6279\u91cf\u6267\u884c\u3011\uff0c\u6240\u6709\u7528\u4f8b\u6267\u884c\u5b8c\u6210\u540e\u53ef\u8fdb\u5165\u3010\u6d4b\u8bd5\u62a5\u544a\u3011\u9875\u9762\u67e5\u770b\u6267\u884c\u7ed3\u679c\u3002

    • \u3010\u8fd0\u884c\u73af\u5883\u3011\uff1a\u6279\u91cf\u6267\u884c\u573a\u666f\u9009\u62e9\u7684\u73af\u5883\uff0c\u652f\u6301\u9879\u76ee\u73af\u5883\u548c\u73af\u5883\u7ec4\u4e24\u79cd\u65b9\u5f0f\u3002
    • \u3010\u6a21\u5f0f\u3011\uff1a\u4e32\u884c\u8868\u793a\u591a\u573a\u666f\u4f9d\u6b21\u6267\u884c\uff1b\u5e76\u884c\u8868\u793a\u591a\u573a\u666f\u540c\u65f6\u6267\u884c\u3002
    • \u3010\u5176\u4ed6\u914d\u7f6e\u3011\uff1a\u72ec\u7acb\u62a5\u544a\u8868\u793a\u6bcf\u4e2a\u573a\u666f\u90fd\u751f\u6210\u4e00\u4efd\u62a5\u544a\uff1b\u96c6\u5408\u62a5\u544a\u8868\u793a\u6240\u6709\u573a\u666f\u53ea\u751f\u6210\u4e00\u4efd\u62a5\u544a\u3002
    • \u3010\u8d44\u6e90\u6c60\u3011\uff1a\u652f\u6301\u9009\u62e9\u4e0d\u540c\u8282\u70b9\u6267\u884c\u573a\u666f\uff0c\u53ef\u4ee5\u9009\u62e9\u666e\u901a\u8d44\u6e90\u6c60\u548c K8S \u8d44\u6e90\u6c60\uff0cK8S \u8d44\u6e90\u6c60\u662f\u4f01\u4e1a\u7248\u529f\u80fd\u3002

    "},{"location":"user_manual/api_test/api_automation/#29","title":"2.9 \u6279\u91cf\u7f16\u8f91\u573a\u666f","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u6279\u91cf\u7f16\u8f91\u3011\uff0c\u652f\u6301\u6279\u91cf\u7f16\u8f91\u3010\u7528\u4f8b\u7b49\u7ea7\u3001\u72b6\u6001\u3001\u8d23\u4efb\u4eba\u3001\u8fd0\u884c\u73af\u5883\u3001\u6807\u7b7e\u3011\u56db\u4e2a\u5c5e\u6027\u3002

    "},{"location":"user_manual/api_test/api_automation/#210","title":"2.10 \u6279\u91cf\u79fb\u52a8\u573a\u666f","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u6279\u91cf\u79fb\u52a8\u3011\uff0c\u652f\u6301\u5c06\u573a\u666f\u5230\u79fb\u52a8\u5176\u4ed6\u6a21\u5757\u4f4d\u7f6e\u3002

    "},{"location":"user_manual/api_test/api_automation/#211","title":"2.11 \u6279\u91cf\u590d\u5236\u573a\u666f","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u6279\u91cf\u590d\u5236\u3011\uff0c\u652f\u6301\u590d\u5236\u591a\u4e2a\u573a\u666f\u3002

    "},{"location":"user_manual/api_test/api_automation/#212","title":"2.12 \u6279\u91cf\u5220\u9664\u573a\u666f","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u6279\u91cf\u5220\u9664\u3011\uff0c\u652f\u6301\u5220\u9664\u591a\u4e2a\u573a\u666f\u3002

    "},{"location":"user_manual/api_test/api_automation/#213","title":"2.13 \u751f\u6210\u4f9d\u8d56\u5173\u7cfb","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u751f\u6210\u4f9d\u8d56\u5173\u7cfb\u3011\u3002 \u3010\u4f9d\u8d56\u5173\u7cfb\u56fe\u3011\u53ef\u4ee5\u5bfc\u51fa\u3010JPG\u3011\u548c\u3010PNG\u3011\u56fe\u7247\u683c\u5f0f\u3002

    "},{"location":"user_manual/api_test/api_automation/#214","title":"2.14 \u6279\u91cf\u6dfb\u52a0\u6d4b\u8bd5\u8ba1\u5212","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u6279\u91cf\u6dfb\u52a0\u6d4b\u8bd5\u8ba1\u5212\u3011\uff0c\u652f\u6301\u5c06\u591a\u4e2a\u573a\u666f\u6dfb\u52a0\u5230\u6d4b\u8bd5\u8ba1\u5212\u3002

    \u52fe\u9009\u8981\u6dfb\u52a0\u7684\u6d4b\u8bd5\u8ba1\u5212\uff0c\u70b9\u51fb\u786e\u5b9a\u5373\u53ef\u6dfb\u52a0\u6210\u529f\u3002

    "},{"location":"user_manual/api_test/api_automation/#215","title":"2.15 \u6279\u91cf\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u6279\u91cf\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u3011\uff0c\u652f\u6301\u5c06\u591a\u4e2a\u573a\u666f\u5bfc\u5165\u6027\u80fd\u6d4b\u8bd5\u3002

    "},{"location":"user_manual/api_test/api_automation/#216","title":"2.16 \u573a\u666f\u5b9a\u65f6\u4efb\u52a1","text":"

    \u573a\u666f\u5217\u8868\u9875\u70b9\u51fb\u53f3\u4fa7\u3010...\u3011\uff0c \u9009\u62e9\u5b9a\u65f6\u4efb\u52a1\u3002\u5f39\u51fa\u5b9a\u65f6\u4efb\u52a1\u914d\u7f6e\u9875\u9762\uff0c\u5b9a\u65f6\u4efb\u52a1\u53ef\u4ee5\u914d\u7f6e\u81ea\u52a8\u751f\u6210\uff0c\u80fd\u770b\u5230\u8fd1 5 \u6b21\u8fd0\u884c\u7ed3\u679c\uff0c\u652f\u6301\u9009\u62e9\u8fd0\u884c\u8d44\u6e90\u6c60\u3002

    "},{"location":"user_manual/api_test/api_automation/#217","title":"2.17 \u573a\u666f\u5bfc\u51fa \u5bfc\u5165","text":"

    \u573a\u666f\u5217\u8868\u652f\u6301\u5bfc\u51fa\u3010MeterSphere \u683c\u5f0f\u3011\u548c\u3010JMETER \u683c\u5f0f\u3011 \u4e24\u79cd\u683c\u5f0f\u3002

    \u573a\u666f\u5217\u8868\u652f\u6301\u5bfc\u5165\u3010MeterSphere\u3011\u3001\u3010Postman\u3011\u3001\u3010JMeter\u3011\u3001\u3010HAR\u3011\u56db\u79cd\u683c\u5f0f\uff0c\u573a\u666f\u5bfc\u5165\u652f\u6301\u3010\u8986\u76d6\u3011\u548c\u3010\u4e0d\u8986\u76d6\u3011\u4e24\u79cd\u6a21\u5f0f\u3002

    \u573a\u666f\u5728\u8de8\u9879\u76ee\u3001\u8de8\u5de5\u4f5c\u7a7a\u95f4\u751a\u81f3\u662f\u8de8\u670d\u52a1\u8fc1\u79fb\u6570\u636e\u5bfc\u5165\u3001\u5bfc\u51fa\u65f6\uff0c\u80fd\u591f\u4fdd\u7559\u81ea\u8eab\u6b65\u9aa4\u7684\u5f15\u7528\u5173\u7cfb\uff0c\u4fdd\u8bc1\u6570\u636e\u7684\u5b8c\u6574\u6027\u548c\u4e00\u81f4\u6027\u3002\u540c\u4e00\u5de5\u4f5c\u7a7a\u95f4\u4e0b\uff0c\u652f\u6301\u5bfc\u5165\u4e0d\u540c\u5de5\u4f5c\u7a7a\u95f4\u4e0b\u7684\u6570\u636e\u5bfc\u5165\u3002

    "},{"location":"user_manual/api_test/api_automation/#218","title":"2.18 \u573a\u666f\u67e5\u770b\u5f15\u7528","text":"

    \u652f\u6301\u67e5\u770b\u573a\u666f\u5728\u53e6\u5916\u573a\u666f\u548c\u6d4b\u8bd5\u8ba1\u5212\u7684\u5f15\u7528\u60c5\u51b5\u3002

    "},{"location":"user_manual/api_test/api_automation/#219","title":"2.19 \u5c06\u573a\u666f\u79fb\u5165\u56de\u6536\u7ad9","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u70b9\u51fb\u6307\u5b9a\u573a\u666f\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u8be5\u573a\u666f\u5c06\u88ab\u79fb\u5165\u56de\u6536\u7ad9\uff0c\u540c\u65f6\u573a\u666f\u53d8\u4e3a\u3010\u5e9f\u5f03\u3011\u72b6\u6001\u3002\u7528\u6237\u53ef\u4ee5\u70b9\u51fb\u5de6\u4fa7\u6a21\u5757\u6811\u4e2d\u7684\u3010\u56de\u6536\u7ad9\u3011\u67e5\u770b\u5df2\u5e9f\u5f03\u7684\u573a\u666f\u3002

    "},{"location":"user_manual/api_test/api_automation/#220","title":"2.20 \u56de\u6536\u7ad9\u64cd\u4f5c","text":"

    \u70b9\u51fb\u5de6\u4fa7\u6a21\u5757\u6811\u4e2d\u7684\u3010\u56de\u6536\u7ad9\u3011\uff0c\u8fdb\u5165\u56de\u6536\u7ad9\u9875\u9762\uff0c\u652f\u6301\u5bf9\u5df2\u7ecf\u5220\u9664\u7684\u573a\u666f\u8fdb\u884c\u3010\u6062\u590d\u3011\u3010\u5220\u9664\u3011\u64cd\u4f5c\u3002\u9009\u62e9\u8981\u6062\u590d\u7684\u573a\u666f\u70b9\u51fb\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u6062\u590d\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u5c06\u6570\u636e\u6062\u590d\u5230\u63a5\u53e3\u81ea\u52a8\u5316\u5217\u8868\uff1b\u70b9\u51fb\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u5220\u9664\u3011\u6309\u94ae\u3002 \u4ece\u56de\u6536\u7ad9\u4e2d\u5220\u9664\u67d0\u4e2a\u573a\u666f\u65f6\uff0c\u8be5\u573a\u666f\u5c06\u4ece\u6570\u636e\u5e93\u4e2d\u5220\u9664\u4e14\u65e0\u6cd5\u6062\u590d\uff0c\u8bf7\u8c28\u614e\u4f7f\u7528\u8be5\u529f\u80fd\u3002

    "},{"location":"user_manual/api_test/api_automation/#221-mqtt-x-pack","title":"2.21 MQTT\u534f\u8bae (X-Pack)","text":"

    \u70b9\u51fb\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf-\u63d2\u4ef6\u7ba1\u7406\u3011\uff0c\u70b9\u51fb\u3010\u70b9\u51fb\u4e0a\u4f20\u3011\uff0c\u5c06 MQTT \u534f\u8bae\u7684 Jar \u5305\u4e0a\u4f20\u4e0a\u53bb\u3002

    \u70b9\u51fb\u3010\u63a5\u53e3\u81ea\u52a8\u5316-\u521b\u5efa\u573a\u666f\u3011\uff0c\u53f3\u4fa7\u4f1a\u51fa\u73b0 MQTT \u8bf7\u6c42\u76f8\u5173\u5185\u5bb9\u3002

    \u6839\u636e\u9700\u8981\uff0c\u9009\u62e9 MQTT \u8bf7\u6c42\u7684\u7ec4\u4ef6

    "},{"location":"user_manual/api_test/api_automation/#222-websocket-x-pack","title":"2.22 Websocket\u534f\u8bae (X-Pack)","text":"

    \u70b9\u51fb\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf-\u63d2\u4ef6\u7ba1\u7406\u3011\uff0c\u70b9\u51fb\u3010\u70b9\u51fb\u4e0a\u4f20\u3011\uff0c\u5c06 Websocket \u534f\u8bae\u7684 Jar \u5305\u4e0a\u4f20\u4e0a\u53bb\u3002

    \u70b9\u51fb\u3010\u63a5\u53e3\u81ea\u52a8\u5316-\u521b\u5efa\u573a\u666f\u3011\uff0c\u53f3\u4fa7\u4f1a\u51fa\u73b0 Websocket \u8bf7\u6c42\u76f8\u5173\u5185\u5bb9\uff0c\u6839\u636e\u9700\u8981\uff0c\u9009\u62e9 Websocket \u8bf7\u6c42\u7684\u7ec4\u4ef6\u3002

    "},{"location":"user_manual/api_test/api_automation/#223-thrift-x-pack","title":"2.23 Thrift\u534f\u8bae (X-Pack)","text":"

    \u4e0e\u4e0a\u9762 MQTT\u534f\u8bae (X-Pack) \u548c Websocket\u534f\u8bae (X-Pack) \u64cd\u4f5c\u6b65\u9aa4\u76f8\u540c

    "},{"location":"user_manual/api_test/api_definition/","title":"\u63a5\u53e3\u5b9a\u4e49","text":""},{"location":"user_manual/api_test/api_definition/#1","title":"1 \u6982\u8ff0","text":"

    \u63a5\u53e3\u5b9a\u4e49\u5c55\u793a\u5f53\u524d\u9879\u76ee\u7684\u6240\u6709\u63a5\u53e3\u6570\u636e\uff0c\u5305\u542b\u5de6\u4fa7\u63a5\u53e3\u6a21\u5757\u6811\u3001API \u63a5\u53e3\u5217\u8868\u3001\u63a5\u53e3 CASE \u5217\u8868\u3001\u6587\u6863\u56db\u4e2a\u90e8\u5206\u3002

    "},{"location":"user_manual/api_test/api_definition/#2","title":"2 \u63a5\u53e3\u7ba1\u7406","text":""},{"location":"user_manual/api_test/api_definition/#21","title":"2.1 \u63a5\u53e3\u534f\u8bae","text":"

    \u70b9\u51fb\u5de6\u4e0a\u89d2\u3010HTTP\u3011\u4e0b\u62c9\u6846\uff0c\u53ef\u5207\u6362\u63a5\u53e3\u534f\u8bae\uff0c\u76ee\u524d\u652f\u6301 HTTP\u3001TCP \u3001SQL \u548c DUBBO \u56db\u79cd\u534f\u8bae\u3002

    "},{"location":"user_manual/api_test/api_definition/#22","title":"2.2 \u6a21\u5757\u6811\u7ba1\u7406","text":"

    \u63a5\u53e3\u6570\u636e\u53ef\u4ee5\u5206\u6a21\u5757\u7ba1\u7406\uff0c\u53ef\u6309\u7167\u4f01\u4e1a\u5b9e\u9645\u6d4b\u8bd5\u9879\u76ee\u5212\u5206\u4e3a\u591a\u7ea7\u6a21\u5757\u8fdb\u884c\u7ba1\u7406\uff0c\u6700\u591a\u53ef\u5206\u516b\u7ea7\u3002\u9f20\u6807\u60ac\u6d6e\u5728\u6a21\u5757\u4e0a\u70b9\u51fb\u3010+\u3011\u521b\u5efa\u4e00\u7ea7\u6a21\u5757\u3002\u6a21\u5757\u652f\u6301\u6dfb\u52a0\u5b50\u6a21\u5757\u3001\u6a21\u7cca\u641c\u7d22\u3001\u5220\u9664\u3001\u91cd\u547d\u540d\u64cd\u4f5c\uff0c\u9009\u4e2d\u76ee\u5f55\u53ef\u8fdb\u884c\u62d6\u62fd\u8c03\u6574\u3002

    "},{"location":"user_manual/api_test/api_definition/#23","title":"2.3 \u63a5\u53e3\u5feb\u6377\u8c03\u8bd5","text":"

    \u9f20\u6807\u60ac\u6d6e\u5728\u3010+\u3011\u53ef\u4ee5\u5b8c\u6210\u3010\u5feb\u901f\u8c03\u8bd5\u3011\u3010\u521b\u5efa\u63a5\u53e3\u3011\u3010\u5173\u95ed\u6240\u6709\u9875\u7b7e\u3011\u64cd\u4f5c\u3002\u70b9\u51fb\u3010\u5feb\u6377\u8c03\u8bd5\u3011\u8fdb\u5165\u5feb\u6377\u8c03\u8bd5\u9875\u9762\u3002\u586b\u5199\u5b8c\u6574\u7684\u6d4b\u8bd5\u5730\u5740\u548c\u57fa\u672c\u8bf7\u6c42\u53c2\u6570\uff0c\u70b9\u51fb\u3010\u6d4b\u8bd5\u3011\u6309\u94ae\u5373\u53ef\u8fdb\u884c\u63a5\u53e3\u8c03\u8bd5\u3002\u6d4b\u8bd5\u5b8c\u6210\u70b9\u51fb\u3010\u53e6\u5b58\u4e3a\u65b0\u7528\u4f8b\u3011\uff0c\u586b\u5199\u63a5\u53e3\u7528\u4f8b\u540d\u79f0\u53ef\u4fdd\u5b58\u4e3a\u4e00\u4e2a\u65b0\u7684\u63a5\u53e3\u7528\u4f8b\u3002

    "},{"location":"user_manual/api_test/api_definition/#24","title":"2.4 \u5feb\u901f\u521b\u5efa\u63a5\u53e3","text":"

    \u9f20\u6807\u60ac\u6d6e\u5728\u3010+\u3011\uff0c\u70b9\u51fb\u5982\u4e0a\u56fe\u3010\u521b\u5efa\u63a5\u53e3\u3011\u5f39\u51fa\u521b\u5efa\u63a5\u53e3\u8be6\u60c5\u9875\u9762\u3002\u521b\u5efa\u63a5\u53e3\u9875\u9762\u586b\u5199\u63a5\u53e3\u57fa\u7840\u4fe1\u606f\u3001\u8bf7\u6c42\u65b9\u5f0f\u3001\u8bf7\u6c42\u53c2\u6570\u3001\u54cd\u5e94\u5185\u5bb9\u5373\u53ef\u3002

    • \u8bf7\u6c42\u65b9\u5f0f\uff1a\u652f\u6301GET\u3001POST\u3001PUT\u3001PATCH\u3001DELETE\u3001OPTIONS\u3001HEAD\u3001CONNECT\u3002
    • \u8bf7\u6c42\u53c2\u6570\uff1a\u5305\u542b\u9ed8\u8ba4\u8bf7\u6c42\u5934\u53d8\u91cf\uff1b\u5e38\u7528query\u3001rest\u53c2\u6570\uff0c\u9f20\u6807\u60ac\u6d6e\u4f1a\u6709\u63d0\u793a\u3002
    • \u8bf7\u6c42\u4f53\uff1a\u652f\u6301\u591a\u79cd\u5f62\u5f0f\uff1aform-data\uff0cx-www-form-urlencoded\uff0cjson\uff0cxml\uff0craw\uff0cbinary\u3002

    \u53c2\u6570\u586b\u5199\u5b8c\u6210\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5373\u53ef\u5b8c\u6210\u63a5\u53e3\u5b9a\u4e49\u521b\u5efa\uff0c\u5e76\u8df3\u8f6c\u5230\u63a5\u53e3\u5c55\u793a\u3010\u7f16\u8f91\u8be6\u60c5\u3011\u9875\u9762\uff0c\u53ef\u5728\u3010API\u3011\u3010TEST\u3011\u3010CASE\u3011\u3010MOCK\u3011\u83dc\u5355\u4e0b\u5bf9\u63a5\u53e3\u505a\u8fdb\u4e00\u6b65\u8c03\u6574\u3002

    "},{"location":"user_manual/api_test/api_definition/#3-api","title":"3 API","text":""},{"location":"user_manual/api_test/api_definition/#31-api","title":"3.1 \u7f16\u8f91 API","text":"

    \u5728\u7f16\u8f91\u63a5\u53e3\u3010API\u3011\u9875\u9762\u4e2d\u53ef\u4ee5\u5bf9\u63a5\u53e3\u7684\u57fa\u7840\u4fe1\u606f\u3001\u8bf7\u6c42\u53ca\u54cd\u5e94\u5b9a\u4e49\u3001\u524d\u540e\u7f6e\u4f9d\u8d56\u5173\u7cfb\u8fdb\u884c\u8be6\u7ec6\u7f16\u8f91\u3002 \u5728\u4f01\u4e1a\u7248\u3010Xpack\u3011\u529f\u80fd\u5305\u4e2d\uff1a\u5bf9\u5df2\u6709 CASE \u7684\u63a5\u53e3\uff0c\u66f4\u6539\u63a5\u53e3\u5730\u5740\u3001\u8bf7\u6c42\u5934\u3001\u8bf7\u6c42\u53c2\u6570\u7b49\u5185\u5bb9\u3002\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\uff0c\u4f1a\u5f39\u51fa\u540c\u6b65\u66f4\u65b0\u8bbe\u7f6e\u786e\u8ba4\u6846\uff0c\u53ef\u4e00\u952e\u540c\u6b65\u88ab\u4f7f\u7528\u7684 CASE \u53c2\u6570\uff0c\u4fbf\u4e8e\u7ef4\u62a4\u811a\u672c\u3002

    "},{"location":"user_manual/api_test/api_definition/#32","title":"3.2 \u5173\u6ce8\u63a5\u53e3","text":"

    \u70b9\u51fb\u9875\u9762\u53f3\u4e0a\u89d2\u7684\u3010\u4e94\u89d2\u661f\u56fe\u6807\u3011\uff0c\u53ef\u5173\u6ce8/\u53d6\u6d88\u5173\u6ce8\u8be5\u63a5\u53e3\u5b9a\u4e49\u3002\u82e5\u63a5\u53e3\u6709\u53d8\u66f4\u4f1a\u53ca\u65f6\u63d0\u9192\u5173\u6ce8\u8005\u3002

    "},{"location":"user_manual/api_test/api_definition/#33","title":"3.3 \u63a5\u53e3\u53d8\u66f4\u8bb0\u5f55","text":"

    \u70b9\u51fb\u9875\u9762\u53f3\u4e0a\u89d2\u7684\u3010\u53d8\u66f4\u8bb0\u5f55\u3011\u53ef\u67e5\u770b\u6b64\u63a5\u53e3\u6240\u6709\u7684\u53d8\u66f4\u8bb0\u5f55\u3002\u53ef\u67e5\u770b\u5177\u4f53\u7684\u53d8\u66f4\u5b57\u6bb5\u3001\u53d8\u66f4\u524d\u3001\u53d8\u66f4\u540e\u7684\u4fe1\u606f\u3002

    "},{"location":"user_manual/api_test/api_definition/#34-x-pack","title":"3.4 \u7248\u672c\u7ba1\u7406 (X-Pack)","text":"

    \u70b9\u51fb\u9875\u9762\u53f3\u4e0a\u89d2\u7684\u3010\u7248\u672c: v1.1.0\u3011\u53ef\u67e5\u770b\u6240\u6709\u7684\u7248\u672c\u53f7\uff0c\u9009\u62e9\u5f53\u524d\u7248\u672c\u53f7\uff0c\u521b\u5efa\u63a5\u53e3\u3002\u5728\u63a5\u53e3\u5217\u8868\u9ed8\u8ba4\u5c55\u793a\u6240\u6709\u63a5\u53e3\u7684\u6700\u65b0\u7248\u672c\u6570\u636e\uff0c\u5e76\u652f\u6301\u6279\u91cf\u64cd\u4f5c\u590d\u5236\u6307\u5b9a\u7248\u672c\u7684 CASE \u548c Mock \u6570\u636e\uff0c\u53ef\u5feb\u901f\u5207\u6362\u7248\u672c\u53ca\u5386\u53f2\u6570\u636e\u5bf9\u6bd4\uff0c\u4f18\u5316\u5bf9\u63a5\u53e3\u7684\u7ba1\u7406\u65b9\u6cd5\u3002

    "},{"location":"user_manual/api_test/api_definition/#35-http","title":"3.5 HTTP \u8bf7\u6c42","text":"

    \u8bf7\u6c42\u5934 \u8bf7\u6c42\u5934\uff1a\u63d0\u4f9b\u8bf7\u6c42\u5934\u53d8\u91cf\uff0c\u70b9\u51fb\u5373\u53ef\u5f39\u51fa\u65b9\u6cd5\u5217\u8868\u3002\u70b9\u51fb\u53c2\u6570\u3010\u94c5\u7b14\u56fe\u6807\u3011\u8fd8\u53ef\u6dfb\u52a0 Mock \u6570\u636e\u548c JMeter \u65b9\u6cd5\u5185\u7f6e\u51fd\u6570\u3002

    • \u51fd\u6570 Tab \u9875\u7b7e\u9ed8\u8ba4\u9009\u4e2d\u3010Mock\u65b9\u6cd5\u3011\uff0c\u9009\u62e9\u6570\u636e\u7c7b\u578b\u53ef\u6dfb\u52a0\u51fd\u6570\u4f7f\u7528\uff0c\u6570\u636e\u7c7b\u578b\u5217\u8868\u4e0b\u65b9\u4f1a\u5c55\u793a\u51fd\u6570\u9884\u89c8\u6548\u679c\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u6309\u94ae\u751f\u6548\u3002
    • \u51fd\u6570 Tab \u9875\u7b7e\u9009\u62e9\u9009\u62e9\u3010JMeter\u65b9\u6cd5\u3011\uff0c\u5373\u53ef\u9009\u62e9\u4f7f\u7528\u5185\u7f6e\u7684 Jmeter \u51fd\u6570\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u6309\u94ae\u751f\u6548\u3002 \u5185\u7f6e\u51fd\u6570\u7684\u8be6\u7ec6\u8bf4\u660e\u8bf7\u53c2\u8003 \u5185\u7f6e\u51fd\u6570

    QUERY\u53c2\u6570 QUERY \u53c2\u6570\u662f\u5728\u63a5\u53e3\u5730\u5740\u680f\u4e2d\u8ddf\u5728\uff1f\u540e\u9762\u7684\u53c2\u6570\uff0c\u5982 updateapi?id=11\uff1b\u53ef\u76f4\u63a5\u5728\u4e0b\u65b9\u5217\u8868\u8f93\u5165 QUERY \u53c2\u6570\u952e\u503c\u5bf9\u3002\u70b9\u51fb\u53c2\u6570\u4e0a\u9762\u7684 \u3010\u8bbe\u7f6e\u56fe\u6807\u3011\uff0c\u53ef\u6dfb\u52a0\u53c2\u6570\u7684\u5176\u4ed6\u5c5e\u6027\u5982\u7f16\u7801\u3001\u6700\u5927\u957f\u5ea6\u3001\u63cf\u8ff0\u7b49\u3002\u70b9\u51fb\u3010\u6279\u91cf\u6dfb\u52a0\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u6279\u91cf\u6dfb\u52a0\u53c2\u6570\uff1a\u586b\u5199\u53c2\u6570\u952e\u503c\u5bf9\u70b9\u51fb\u786e\u5b9a\u5373\u53ef\u89e3\u6790\u5230\u53c2\u6570\u5217\u8868\u3002

    REST\u53c2\u6570 REST\u53c2\u6570\u662f\u5728\u63a5\u53e3\u5730\u5740\u680f\u4e2d\u88ab\u3010/\u3011\u5206\u9694\u7684\u53c2\u6570\uff0c\u5982 updateapi/{id}\u3002\u4f7f\u7528\u65b9\u6cd5\u540c\u4e0a\u3002

    \u8bf7\u6c42\u4f53 \u8bf7\u6c42\u4f53\u53c2\u6570\u652f\u6301\u591a\u79cd\u5f62\u5f0f\uff1aform-data\uff0cx-www-form-urlencoded\uff0cjson\uff0cxml\uff0craw\uff0cbinary\u3002 \u8bf7\u6c42\u4f53\u662f form-data \u548c x-www-form-urlencoded \u683c\u5f0f\u65f6\uff0c\u53ef\u4ee5\u9009\u62e9\u53c2\u6570\u7c7b\u578b\u3002\u4e0d\u540c\u7684\u53c2\u6570\u7c7b\u578b\uff0c\u7cfb\u7edf\u4f1a\u63d0\u4f9b \u9ed8\u8ba4\u5c5e\u6027\u3002

    \u8bf7\u6c42\u4f53\u662f json \u683c\u5f0f\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528 Json-schema \u7528\u4e8e\u9a8c\u8bc1json\u6570\u636e\u683c\u5f0f\u3002

    \u8ba4\u8bc1\u914d\u7f6e \u652f\u6301 Basic Auth \u7684\u8ba4\u8bc1\u65b9\u5f0f\u548c\u5bf9\u6570\u636e\u52a0\u5bc6\uff0c\u6b64\u5904\u53ef\u4ee5\u914d\u7f6e\u8ba4\u8bc1\u4fe1\u606f\u53ca\u52a0\u5bc6\u65b9\u5f0f\u3002

    \u5176\u4ed6\u8bbe\u7f6e \u53ef\u8bbe\u7f6e\u8bc1\u4e66\u3001\u8ddf\u968f\u91cd\u5b9a\u5411\u3001\u8fde\u63a5\u8d85\u65f6\u3001\u54cd\u5e94\u8d85\u65f6\u65f6\u95f4\u7b49\u3002

    "},{"location":"user_manual/api_test/api_definition/#36-tcp","title":"3.6 TCP \u8bf7\u6c42","text":"

    \u8bf7\u6c42\u53c2\u6570 \u8bf7\u6c42\u53c2\u6570\u53ef\u4ee5\u5728\u8bf7\u6c42\u6a21\u677f\u901a\u8fc7 ${xxx} \u5f15\u7528\u3002

    \u8bf7\u6c42\u4f53 \u8bf7\u6c42\u4f53\u53c2\u6570\u652f\u6301 json\u3001xml\u3001raw \u4e09\u79cd\u6570\u636e\u683c\u5f0f\u3002\u5176\u4e2d\u5728 xml \u53c2\u6570\u4e2d\u70b9\u51fb\u3010\u6dfb\u52a0\u3011\u6309\u94ae\uff0c\u652f\u6301\u4ee5\u8868\u683c\u5f62\u5f0f\u6dfb\u52a0\u53c2\u6570\u3002xml \u53ef\u6dfb\u52a0 object\u3001string\u3001array \u4e09\u79cd\u6570\u636e\u7c7b\u578b\u7684\u53c2\u6570\u3002\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u6309\u94ae\u4fdd\u5b58\u6dfb\u52a0\u7684 xml \u53c2\u6570\u3002

    \u5176\u4ed6\u8bbe\u7f6e \u5728\u5176\u4ed6\u8bbe\u7f6e\u4e2d\u53ef\u8bbe\u7f6e TCP \u5ba2\u6237\u7aef\u3001\u8fde\u63a5\u65f6\u95f4\u3001\u54cd\u5e94\u65f6\u95f4\u7b49\u53c2\u6570\u3002TCPClient \u9ed8\u8ba4\u63d0\u4f9b\u4e09\u79cd\u8fde\u63a5\u65b9\u5f0f\u3002

    "},{"location":"user_manual/api_test/api_definition/#37-sql","title":"3.7 SQL \u8bf7\u6c42","text":"

    SQL \u8bf7\u6c42\u652f\u6301\u914d\u7f6e\u591a\u4e2a\u6570\u636e\u6e90\uff0c\u9009\u62e9\u8fd0\u884c\u73af\u5883\u3001\u6570\u636e\u6e90\uff0c\u7f16\u5199sql\u811a\u672c\uff08sql\u811a\u672c\u652f\u6301\u4f20\u9012\u53d8\u91cf${\u53d8\u91cf\u540d}\uff09\uff0c\u67e5\u8be2\u7ed3\u679c\u53ef\u4ee5\u3010\u6309\u7ed3\u679c\u5b58\u50a8\u3011\u3010\u6309\u5217\u5b58\u50a8\u3011\u4e24\u79cd\u65b9\u5f0f\u3002 \u6309\u7ed3\u679c\u5b58\u50a8\uff1a\u662f\u5c06\u8fd4\u56de\u7ed3\u679c\u6240\u6709\u7684\u5b57\u6bb5\u5b58\u50a8\u5230\u4e00\u4e2a\u53d8\u91cf\u4e2d\u53bb\uff0c\u5982\u679c\u9700\u8981\u4f7f\u7528\u5176\u4e2d\u7684\u67d0\u4e2a\u5b57\u6bb5\u5219\u9700\u8981\u5bf9\u53d8\u91cf\u8fdb\u884c\u89e3\u6790\uff0c\u91cc\u9762\u7684\u5b9e\u9645\u6570\u636e\u662f\u96c6\u5408\u5d4c\u5957\u96c6\u5408\u3002\u6bcf\u4e00\u884c\u6570\u636e\u90fd\u662f\u4ee5 <\u5b57\u6bb5\u540d>\uff1a<\u5b57\u6bb5\u503c>( \u5373key :value)\u7684\u683c\u5f0f\u5b58\u5230map\u4e2d\u7684\uff0c\u800c\u6574\u4e2a\u8fd4\u56de\u6570\u636e\u5c31\u662f\u4ee5\u4e00\u4e2a\u5927\u7684map\u53bb\u5b58\u50a8\u6bcf\u4e00\u884c\u7684\u6570\u636e\u7684map \uff0c\u6700\u540e\u5f97\u5230\u4e00\u4e2a\u7ed3\u679c\u96c6\u5408\uff0c\u5982\u679c\u9700\u8981\u5176\u4e2d\u7684\u6570\u636e\uff0c\u9700\u8981\u901a\u8fc7 beanshell \u6216 python \u811a\u672c\u53bb\u89e3\u6790\u3002 \u6309\u5217\u5b58\u50a8\uff1a\u76f4\u63a5\u6307\u5b9a\u8fd4\u56de\u5b57\u6bb5\u7684\u7ed3\u679c\u503c\uff0c\u5217\u6570\u8981\u548c SQL \u8bed\u53e5\u4e2d\u67e5\u8be2\u5b57\u6bb5\u8fd4\u56de\u7ed3\u679c\u7684\u5217\u6570\u76f8\u540c\u3002\u540c\u65f6\u53ef\u4ee5\u7528\u9017\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u4ee3\u66ff\u5217\u540d\uff0c\u53ea\u5199\u51fa \u8981\u63d0\u53d6\u7684\u5217\u540d\u5373\u53ef\uff0c\u5f15\u7528\u65f6 ${\u5217\u540d\u53d8\u91cf_n}

    "},{"location":"user_manual/api_test/api_definition/#38-dubbo","title":"3.8 DUBBO \u8bf7\u6c42","text":"

    Interface \u70b9\u51fb\u3010Get Providers List\u3011\u6309\u94ae\uff0c\u53ef\u4ece\u3010Registry Center\u3011\u4e2d\u83b7\u53d6\u670d\u52a1\u5217\u8868\u3002\u53ef\u5728\u5b57\u6bb5 Interfaces \u4e0b\u62c9\u5217\u8868\u4e2d\u9009\u62e9\u9700\u8981\u6d4b\u8bd5\u7684\u63a5\u53e3\u53ca\u65b9\u6cd5\uff0c\u6839\u636e\u8be5\u65b9\u6cd5\u7684\u5b9a\u4e49\u4f20\u5165\u6240\u9700\u7684\u53c2\u6570\u3002

    Config Center \u53ef\u5728\u3010Config Center\u3011\u4e2d\u586b\u5199\u914d\u7f6e\u8d85\u65f6\u65f6\u95f4\u3001\u7528\u6237\u540d\u3001\u5bc6\u7801\u7b49\u76f8\u5173\u57fa\u7840\u4fe1\u606f\u3002

    Registry Center \u53ef\u5728\u3010Registry Center\u3011\u9875\u9762\u4e2d\u9009\u62e9\u534f\u8bae\u3001\u586b\u5199\u8fde\u63a5\u4fe1\u606f\u7b49\u3002

    Consumer & Service \u53ef\u5728\u3010Consumer & Service\u3011\u586b\u5199 Consumer \u548c Service \u4fe1\u606f\u3002

    Args \u53ef\u5728\u3010Args\u3011\u4e2d\u6dfb\u52a0\u8bf7\u6c42\u76f8\u5173\u53c2\u6570\u3002

    Attachment Args \u53ef\u5728\u3010Attachment Args\u3011\u4e2d\u8bbe\u7f6e\u5176\u4ed6\u952e\u503c\u5bf9\u53c2\u6570\u3002

    "},{"location":"user_manual/api_test/api_definition/#39","title":"3.9 \u4f9d\u8d56\u5173\u7cfb\u8bbe\u7f6e","text":"

    \u63a5\u53e3\u5b9a\u4e49\u652f\u6301\u8bbe\u7f6e\u63a5\u53e3\u7684\u524d\u540e\u7f6e\u4f9d\u8d56\u5173\u7cfb\u3002\u70b9\u51fb\u3010\u6dfb\u52a0\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u6dfb\u52a0\u524d\u7f6e\u63a5\u53e3\u3001\u540e\u7f6e\u63a5\u53e3\u4f9d\u8d56\u3002

    "},{"location":"user_manual/api_test/api_definition/#310-api","title":"3.10 API \u5217\u8868\u529f\u80fd","text":"

    \u652f\u6301\u5bf9\u63a5\u53e3\u5b9a\u4e49\u7684\u6267\u884c\u3001\u7f16\u8f91\u3001\u5220\u9664\u3001\u590d\u5236\u64cd\u4f5c\u70b9\u51fb\u66f4\u591a\u64cd\u4f5c\u3010...\u3011\u53ef\u4ee5 \u67e5\u770b\u5f15\u7528\u3001\u67e5\u770bCASE\u3002

    • \u6267\u884c\uff1a\u8fdb\u5165\u3010\u7f16\u8f91\u63a5\u53e3\u8be6\u60c5-TEST\u3011\u9875\u9762
    • \u7f16\u8f91\uff1a\u8fdb\u5165\u3010\u7f16\u8f91\u63a5\u53e3\u8be6\u60c5-API\u3011\u9875\u9762
    • \u5220\u9664\uff1a\u5220\u9664\u8be5\u63a5\u53e3\u5230\u3010\u56de\u6536\u7ad9\u3011
    • \u590d\u5236\uff1a\u590d\u5236\u8be5\u63a5\u53e3\u5b9a\u4e49\u4fe1\u606f
    • \u67e5\u770b\u5f15\u7528\uff1a\u53ef\u4ee5\u67e5\u770b\u63a5\u53e3\u5177\u4f53\u54ea\u4e2a\u573a\u666f\u5f15\u7528
    • \u67e5\u770b CASE :\u53ef\u4ee5\u67e5\u770b\u63a5\u53e3\u4e0b\u5199\u597d\u7684 CASE \u7528\u4f8b

    "},{"location":"user_manual/api_test/api_definition/#4-test","title":"4 TEST","text":"

    \u5728\u3010TEST\u3011\u9875\u9762\u4e2d\u53ef\u4ee5\u9009\u62e9\u8fd0\u884c\u73af\u5883\u8c03\u8bd5\u63a5\u53e3\uff0c\u540c\u65f6\u53ef\u4ee5\u6dfb\u52a0\u524d\u540e\u7f6e\u811a\u672c\u3001\u524d\u540e\u7f6eSQL\u3001\u65ad\u8a00\u3001\u63d0\u53d6\u53c2\u6570\u7b49\u5b50\u6b65\u9aa4\u3002

    "},{"location":"user_manual/api_test/api_definition/#41","title":"4.1 \u81ea\u52a8\u751f\u6210\u6d4b\u8bd5\u6570\u636e","text":"

    \u63a5\u53e3\u8bf7\u6c42\u4f53\u4e3a json \u683c\u5f0f\u53ef\u5f00\u542f \u3010JSON-SCHEMA\u3011\u6a21\u5f0f\uff0c\u70b9\u51fb\u3010\u751f\u6210\u6d4b\u8bd5\u6570\u636e\u3011\u4f1a\u751f\u6210\u968f\u673a\u53c2\u6570\u503c \uff0c\u7528\u4e8e\u5feb\u901f\u4f20\u53c2\u6d4b\u8bd5\u3002 \u5982\u9700\u5b9a\u5236\u751f\u6210\u89c4\u5219\u53ef\u70b9\u51fb\u3010\u8bbe\u7f6e\u3011\u56fe\u6807\uff0c\u5bf9\u679a\u4e3e\u503c\u751f\u6210\u89c4\u5219\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u5feb\u901f\u751f\u6210\u6570\u636e\u89c4\u5219\u5728\u3010\u9ad8\u7ea7\u8bbe\u7f6e\u3011\u9875\u9762\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u9ed8\u8ba4\u503c\u3001\u679a\u4e3e\u503c\u3001\u6700\u5927\u6700\u5c0f\u957f\u5ea6\u3001\u6b63\u5219\u8868\u8fbe\u3001\u63cf\u8ff0\u76f8\u5173\u4fe1\u606f\uff0c\u89c4\u5219\u8bbe\u7f6e\u597d\u540e\u70b9\u51fb\u3010\u751f\u6210\u6d4b\u8bd5\u6570\u636e\u3011\u751f\u6548\u3002\u5982\u6709\u8bbe\u7f6e\u4e86\u9ed8\u8ba4\u503c\uff0c\u5219\u751f\u6210\u6d4b\u8bd5\u6570\u636e\u662f\u9ed8\u8ba4\u503c\uff1b\u5982\u8bbe\u7f6e\u679a\u4e3e\u503c\uff0c\u751f\u6210\u7684\u6570\u636e\u662f\u679a\u4e3e\u503c\u5176\u4e2d\u4e00\u4e2a\uff0c\u679a\u4e3e\u503c\u53ef\u4ee5\u6362\u884c\u8bbe\u7f6e\u591a\u4e2a\u3002

    "},{"location":"user_manual/api_test/api_definition/#42","title":"4.2 \u9488\u5bf9\u5355\u4e2a\u63a5\u53e3\u53d1\u8d77\u6d4b\u8bd5","text":"

    \u9009\u62e9\u8fd0\u884c\u73af\u5883\uff0c\u70b9\u51fb \u3010\u6d4b\u8bd5\u3011\u6309\u94ae\u5373\u53ef\u8c03\u8bd5\u63a5\u53e3\u3002\u5728\u54cd\u5e94\u5185\u5bb9\u53ef\u4ee5\u770b\u5230\u63a5\u53e3\u7684\u8bf7\u6c42\u54cd\u5e94\u4f53\u3001\u54cd\u5e94\u5934\u3001\u63a7\u5236\u53f0\u3001\u65ad\u8a00\u3001\u63d0\u53d6\u3001\u8bf7\u6c42\u5185\u5bb9\u4fe1\u606f\u3002 \u524d\u540e\u7f6e\u811a\u672c\u3001\u524d\u540e\u7f6eSQL\u3001\u65ad\u8a00\u53ca\u53c2\u6570\u63d0\u53d6\u7b49\u5b50\u6b65\u9aa4\u7684\u8be6\u60c5\u8bf4\u660e\u8bf7\u53c2\u8003\u3002 \u7528\u4f8b\u6b65\u9aa4\u8bf4\u660e

    "},{"location":"user_manual/api_test/api_definition/#43","title":"4.3 \u5176\u4ed6\u529f\u80fd","text":"

    \u70b9\u51fb\u3010\u6d4b\u8bd5\u3011\u6309\u94ae\u65c1\u8fb9\u7684\u5411\u4e0b\u7bad\u5934\u3010V\u3011\uff0c\u8fd8\u63d0\u4f9b\u4e86\u52a0\u8f7d\u7528\u4f8b\u3001\u53e6\u5b58\u4e3a\u65b0\u7528\u4f8b\u3001\u66f4\u65b0\u63a5\u53e3\u3001\u53e6\u5b58\u4e3a\u65b0\u63a5\u53e3\u5feb\u6377\u529f\u80fd\u3002

    \u3010\u52a0\u8f7d\u7528\u4f8b\u3011\u52a0\u8f7d\u8be5\u63a5\u53e3\u4e0b\u7684\u6240\u6709\u7528\u4f8b\u3002

    \u3010\u53e6\u5b58\u4e3a\u65b0\u7528\u4f8b\u3011\u53ef\u4f7f\u7528\u8be5\u63a5\u53e3\u9875\u9762\u586b\u5199\u7684\u53c2\u6570\u4fe1\u606f\u53ca\u6dfb\u52a0\u7684\u5b50\u6b65\u9aa4\uff0c\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u63a5\u53e3\u7528\u4f8b\u3002\u8f93\u5165\u7528\u4f8b\u540d\u79f0\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u6309\u94ae\uff0c\u5373\u53ef\u4fdd\u5b58\u4e3a\u4e00\u4e2a\u65b0\u7684\u63a5\u53e3\u7528\u4f8b\u3002

    \u3010\u66f4\u65b0\u63a5\u53e3\u3011\u53ef\u5c06\u5f53\u524d\u9875\u9762\u586b\u5199\u7684\u53c2\u6570\u4fe1\u606f\u66f4\u65b0\u5230\u5bf9\u5e94\u7684\u63a5\u53e3\u5b9a\u4e49\u4e2d\u3002

    \u3010\u53e6\u5b58\u4e3a\u65b0\u63a5\u53e3\u3011\u5373\u53ef\u4f7f\u7528\u5f53\u524d\u9875\u9762\u63a5\u53e3\u4fe1\u606f\u6765\u521b\u5efa\u65b0\u7684\u63a5\u53e3\u5b9a\u4e49\u3002

    "},{"location":"user_manual/api_test/api_definition/#5-case","title":"5 CASE","text":"

    \u5728 CASE \u9875\u9762\u4e2d\u5c55\u793a\u5f53\u524d\u63a5\u53e3\u4e0b\u7684\u6240\u6709\u63a5\u53e3\u7528\u4f8b\u5217\u8868\u3002

    "},{"location":"user_manual/api_test/api_definition/#51","title":"5.1 \u5217\u8868\u529f\u80fd","text":"

    \u652f\u6301\u5bf9\u63a5\u53e3\u7528\u4f8b\u7684 \u7f16\u8f91 \u6267\u884c \u590d\u5236 \u5220\u9664\u9f20\u6807\u60ac\u6d6e\u3010\u2026\u3011\u53ef\u5c55\u793a\u66f4\u591a\u529f\u80fd\u3001\u67e5\u770b\u5f15\u7528\u3001\u6267\u884c\u5386\u53f2\u3001\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u64cd\u4f5c\u3002

    • \u7f16\u8f91\uff1a\u7f16\u8f91\u8be5\u63a5\u53e3\u7528\u4f8b
    • \u6267\u884c\uff1a\u8c03\u8bd5\u8be5\u63a5\u53e3
    • \u590d\u5236\uff1a\u590d\u5236\u8be5\u63a5\u53e3\u7528\u4f8b\u4fe1\u606f
    • \u5220\u9664\uff1a\u5220\u9664\u8be5\u63a5\u53e3\u7528\u4f8b\u5230\u56de\u6536\u7ad9
    • \u67e5\u770b\u5f15\u7528\uff1a\u67e5\u770b\u8be5\u63a5\u53e3\u7528\u4f8b\u88ab\u573a\u666f\u5f15\u7528\u548c\u6d4b\u8bd5\u8ba1\u5212\u5f15\u7528\u60c5\u51b5
    • \u6267\u884c\u5386\u53f2\uff1a\u53ef\u67e5\u770b\u8be5\u63a5\u53e3\u7528\u4f8b\u6267\u884c\u5386\u53f2\u5217\u8868\u53ca\u6267\u884c\u7ed3\u679c\u8be6\u60c5
    • \u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\uff1a\u53ef\u4f7f\u7528\u5f53\u524d\u63a5\u53e3\u7528\u4f8b\u5feb\u901f\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5

    "},{"location":"user_manual/api_test/api_definition/#52","title":"5.2 \u6279\u91cf\u64cd\u4f5c","text":"

    \u9009\u62e9\u591a\u6761\u63a5\u53e3\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u2026\u3011\uff0c\u53ef\u5bf9\u591a\u4e2a\u63a5\u53e3\u7528\u4f8b\u8fdb\u884c\u6279\u91cf\u5220\u9664\u3001\u6279\u91cf\u7f16\u8f91\u3001\u6279\u91cf\u6267\u884c\u3001\u6279\u91cf\u540c\u6b65\u64cd\u4f5c\u3002

    • \u6279\u91cf\u5220\u9664\uff1a\u6279\u91cf\u5220\u9664\u63a5\u53e3\u7528\u4f8b\u5230\u56de\u6536\u7ad9
    • \u6279\u91cf\u7f16\u8f91\uff1a\u6279\u91cf\u7f16\u8f91\u63a5\u53e3\u7528\u4f8b\u7b49\u7ea7\u3001\u6807\u7b7e\u5c5e\u6027
    • \u6279\u91cf\u6267\u884c\uff1a\u6279\u91cf\u8c03\u8bd5\u63a5\u53e3\u7528\u4f8b\uff0c\u8fd0\u884c\u6a21\u5f0f\u53ef\u9009\u62e9\u4e32\u884c\u6216\u5e76\u884c\uff0c\u751f\u6210\u62a5\u544a\u53ef\u9009\u751f\u6210\u72ec\u7acb\u62a5\u544a\u3001\u96c6\u5408\u62a5\u544a\u3002
    • \u6279\u91cf\u540c\u6b65\uff1a\u6279\u91cf\u540c\u6b65\u63a5\u53e3\u7528\u4f8b\uff0c\u53ef\u5bf9\u540c\u6b65\u7528\u4f8b\u8fdb\u884c\u57fa\u672c\u4fe1\u606f\u3001\u8bf7\u6c42\u53c2\u6570\u3001\u5176\u4ed6\u8bbe\u7f6e\u76f8\u5173\u5185\u5bb9\u8fdb\u884c\u914d\u7f6e\u3002

    "},{"location":"user_manual/api_test/api_definition/#53","title":"5.3 \u65b0\u5efa\u63a5\u53e3\u7528\u4f8b","text":"

    \u70b9\u51fb \u3010+\u6dfb\u52a0\u3011\u6309\u94ae\uff0c\u53ef\u4f7f\u7528\u5f53\u524d\u63a5\u53e3\u5b9a\u4e49\u7684\u53c2\u6570\u4fe1\u606f\u521b\u5efa\u65b0\u7684\u63a5\u53e3\u7528\u4f8b\u3002

    "},{"location":"user_manual/api_test/api_definition/#54","title":"5.4 \u641c\u7d22","text":"

    \u666e\u901a\u641c\u7d22\u652f\u6301\u901a\u8fc7\u63a5\u53e3\u7528\u4f8b\u7684 ID \u3001\u540d\u79f0\u3001\u6807\u7b7e\u8fdb\u884c\u6a21\u7cca\u641c\u7d22\u3002\u9ad8\u7ea7\u641c\u7d22\u652f\u6301\u6309 ID \u3001\u540d\u79f0\u3001\u7528\u4f8b\u7b49\u7ea7\u3001\u6807\u7b7e\u3001\u6267\u884c\u7ed3\u679c\u3001\u66f4\u65b0\u65f6\u95f4\u3001\u521b\u5efa\u65f6\u95f4\u3001\u521b\u5efa\u4eba\u3001\u5173\u6ce8\u4eba\u3001\u8def\u5f84\u641c\u7d22\u3002

    "},{"location":"user_manual/api_test/api_definition/#6-mock","title":"6 MOCK","text":"

    \u5728 MOCK \u9875\u9762\u4e2d\u5c55\u793a\u5f53\u524d\u63a5\u53e3\u5b9a\u4e49\u4e0b\u7684 MOCK \u670d\u52a1\u3002\u5728\u63a5\u53e3\u7f16\u8f91\u9875\u9762\u53ef\u5c55\u793a\u6b64\u63a5\u53e3\u7684 Mock \u4fe1\u606f\uff0cMock \u9ed8\u8ba4\u5730\u5740\u662f MeterSphere \u7cfb\u7edf\u5730\u5740+\u6a21\u5757 ID + \u63a5\u53e3\u5730\u5740\uff0c\u4e00\u4e2a\u63a5\u53e3\u5b9a\u4e49\u53ef\u4ee5\u8bbe\u7f6e\u591a\u4e2a Mock \u670d\u52a1\u3002

    "},{"location":"user_manual/api_test/api_definition/#61-http-mock","title":"6.1 HTTP Mock\u670d\u52a1\u8bbe\u7f6e","text":"

    MeterSphere \u63d0\u4f9b\u7684 Mock \u529f\u80fd\u53ef\u4ee5\u6839\u636e\u7528\u6237\u8f93\u5165\u7684\u8bf7\u6c42\u53c2\u6570\u3001\u8fd4\u56de\u6570\u636e\u751f\u6210Mock\u63a5\u53e3\uff0c\u8fd9\u4e9b\u63a5\u53e3\u4f1a\u81ea\u52a8\u751f\u6210\u6a21\u62df\u6570\u636e\uff0c\u4ee5\u8986\u76d6\u7528\u6237\u7684\u6a21\u62df\u6d4b\u8bd5\u9700\u6c42\u3002Mock \u671f\u671b\u662f\u6839\u636e\u8bbe\u7f6e\u7684\u8bf7\u6c42\u89e6\u53d1\u6761\u4ef6\u6765\u8fdb\u884c\u8fc7\u6ee4\uff0c\u7136\u540e\u8fd4\u56de\u671f\u671b\u7684\u6570\u636e\u3002\u5728\u3010MOCK\u3011\u9875\u9762\u70b9\u51fb\u3010+\u6dfb\u52a0\u3011\u6309\u94ae\u6dfb\u52a0 Mock \u670d\u52a1\u3002

    \u8bbe\u7f6e Mock \u670d\u52a1\u89e6\u53d1\u6761\u4ef6\u3002\u53ef\u4ee5\u5728\u8bf7\u6c42\u5934\u3001QUERY\u53c2\u6570\u3001REST\u53c2\u6570\u3001\u8bf7\u6c42\u4f53\u8bbe\u7f6e\u89e6\u53d1\u6761\u4ef6\uff1b\u5728\u54cd\u5e94\u5185\u5bb9\u4e2d\u8bbe\u7f6e\u81ea\u5b9a\u4e49\u54cd\u5e94\u5934\u3001\u54cd\u5e94\u4f53\u3001\u72b6\u6001\u7801\u3001\u54cd\u5e94\u5ef6\u8fdf\u65f6\u95f4\u76f8\u5173\u4fe1\u606f

    Mock \u670d\u52a1\u89e6\u53d1\u6761\u4ef6\u8bbe\u7f6e\u89c4\u5219\u5339\u914d\u53ca\u903b\u8f91\u5224\u65ad: \u8bf7\u6c42\u53c2\u6570\u8bbe\u7f6e\u89c4\u5219\u5339\u914d\uff0c\u53ef\u4ee5\u6839\u636e\u53c2\u6570\u8bbe\u5b9a\u7684\u503c\u3001\u957f\u5ea6\u3001\u6b63\u5219\u8868\u8fbe\u5f0f Mock \u51fa\u76f8\u5e94\u7684\u8bf7\u6c42\u53c2\u6570\uff0c\u540c\u65f6\u53c2\u6570\u4e0e\u53c2\u6570\u4e4b\u95f4\u65b0\u589e\u4e86\u903b\u8f91\u5224\u65ad\uff08AND/OR\uff09\uff0c\u4ee5\u63d0\u5347\u89e6\u53d1\u6761\u4ef6\u7684\u7075\u6d3b\u6027\u3002

    \u9488\u5bf9\u4e00\u4e9b\u7279\u5b9a\u6d4b\u8bd5\u573a\u666f\u9700\u8981\u5bf9\u8fd4\u56de\u4fe1\u606f\u8fdb\u4e00\u6b65\u5904\u7406\u7684\u60c5\u51b5\uff0c\u6bd4\u5982\u52a0\u89e3\u5bc6\u64cd\u4f5c\u3001\u8c03\u7528\u7b2c\u4e09\u65b9 JAR \u5305\u7b49\u64cd\u4f5c\u3002MeterSphere \u5728 Mock \u670d\u52a1\u4e2d\u6dfb\u52a0 \u540e\u7f6e\u811a\u672c\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u7f16\u5199\u811a\u672c\u6216\u6dfb\u52a0\u7cfb\u7edf\u5df2\u6709\u7684 \u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u6765\u5b9e\u73b0\u5bf9\u8fd4\u56de\u4fe1\u606f\u7684\u5904\u7406\u3002

    \u5728\u3010MOCK\u3011\u6570\u636e\u5217\u8868\uff0c\u9009\u62e9\u4e00\u6761\u6570\u636e\u70b9\u51fb\u6267\u884c\uff0c\u9009\u62e9 MOCK \u73af\u5883\uff0c\u5f53\u8bf7\u6c42\u53c2\u6570\u4e0e\u8bbe\u7f6e\u7684\u89e6\u53d1\u6761\u4ef6\u5339\u914d\u65f6\u5019\uff0c\u5219\u8fd4\u56de\u8bbe\u7f6e\u7684\u54cd\u5e94\u5185\u5bb9\u3002

    "},{"location":"user_manual/api_test/api_definition/#62-tcp-mock","title":"6.2 TCP Mock\u8bbe\u7f6e","text":"

    TCP Mock \u670d\u52a1\u9700\u5728\u3010\u9879\u76ee\u8bbe\u7f6e-\u5e94\u7528\u7ba1\u7406-\u63a5\u53e3\u6d4b\u8bd5\u3011\u4e2d\u5f00\u542f TCP Mock \u670d\u52a1\u3002\u5176\u529f\u80fd\u8bbe\u7f6e\u540c HTTP MOCK\u3002

    "},{"location":"user_manual/api_test/api_definition/#63-mock","title":"6.3 MOCK \u5217\u8868\u529f\u80fd","text":"

    \u652f\u6301\u5bf9 Mock \u6570\u636e\u8fdb\u884c\u6267\u884c\u3001\u7f16\u8f91\u3001\u590d\u5236 \u3001\u5220\u9664\u64cd\u4f5c\u3002

    "},{"location":"user_manual/api_test/api_definition/#7","title":"7 \u5b9a\u65f6\u540c\u6b65","text":"

    \u63a5\u53e3\u5b9a\u4e49\u5217\u8868\uff0c\u70b9\u51fb\u3010\u66f4\u591a\u64cd\u4f5c-\u5b9a\u65f6\u540c\u6b65\u3011\u53ef\u8bbe\u7f6e Swagger \u5728\u7ebf\u63a5\u53e3\u6587\u6863\u5b9a\u65f6\u540c\u6b65\u3002

    \u5b9a\u65f6\u540c\u6b65\u9875\u9762\u9700\u8bbe\u7f6e\u540c\u6b65\u7684\u8def\u5f84\uff08\u4ee5/api-docs\u7ed3\u5c3e\uff09\u3001\u5b9a\u65f6Cron\u8868\u8fbe\u5f0f\uff08\u652f\u6301\u81ea\u52a8\u751f\u6210\u53ef\u4ee5\u9884\u89c8\u8fd15\u6b21\u8fd0\u884c\u65f6\u95f4\uff09\u3001\u5bfc\u5165\u6a21\u5757\u3001\u5bfc\u5165\u6a21\u5f0f\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u3011\u6309\u94ae\u5b8c\u6210\u63a5\u53e3\u5b9a\u65f6\u540c\u6b65\u8bbe\u7f6e\u3002

    \u63a5\u53e3\u5b9a\u65f6\u540c\u6b65\u4efb\u52a1\u652f\u6301\u8bbe\u7f6e\u4efb\u52a1\u901a\u77e5\u65b9\u5f0f\uff0c\u70b9\u51fb\u4efb\u52a1\u901a\u77e5\u6309\u94ae\uff0c\u5f39\u51fa\u4efb\u52a1\u901a\u77e5\u8bbe\u7f6e\u9875\u9762\uff0c\u6d88\u606f\u901a\u77e5\u65b9\u5f0f\uff1a\u90ae\u4ef6\u3001\u9489\u9489\u673a\u5668\u4eba\u3001\u4f01\u4e1a\u5fae\u4fe1\u673a\u5668\u4eba\u3001\u98de\u4e66\u673a\u5668\u4eba\u3001\u81ea\u5b9a\u4e49 Webhook \u3002

    \u5b9a\u65f6\u540c\u6b65\u4efb\u52a1\u652f\u6301\u5b9a\u65f6\u540c\u6b65\u4efb\u52a1\u67e5\u770b\u3001\u5f00\u542f\u3001\u5173\u95ed\u3001\u5220\u9664\u64cd\u4f5c\u3002

    "},{"location":"user_manual/api_test/api_definition/#8","title":"8 \u5bfc\u5165\u63a5\u53e3","text":"

    \u63a5\u53e3\u5b9a\u4e49\u5217\u8868\u3010\u66f4\u591a\u64cd\u4f5c-\u5bfc\u5165\u3011\uff0c\u652f\u6301\u591a\u79cd\u7c7b\u578b\u63a5\u53e3\u6587\u6863\u7684\u5bfc\u5165\uff0c\u5305\u62ec\uff1aMeterSphere\u3001Postman\u3001Swagger\u3001HAR\u3001JMX\u7c7b\u578b\u6570\u636e\u3002

    \u652f\u6301 Swagger Json \u6587\u4ef6\u7684\u79bb\u7ebf\u5bfc\u5165\uff0c\u540c\u65f6\u4e5f\u652f\u6301\u4f7f\u7528 Swagger URL \u8fdb\u884c\u5728\u7ebf\u540c\u6b65\uff0c\u5bfc\u5165\u89c4\u5219\u8bf7\u770b\u5bfc\u5165\u9875\u9762\u4e0b\u65b9\u7684\u63d0\u793a\u3002\u6ce8\u610f: \u82e5\u5bfc\u5165\u7684\u63a5\u53e3\u4e3a\u65b0\u5efa\u63a5\u53e3\u4e14\u6ca1\u6709\u7528\u4f8b\uff0c\u5219\u9ed8\u8ba4\u4e3a\u63a5\u53e3\u521b\u5efa\u4e00\u4e2a\u7528\u4f8b\u3002

    "},{"location":"user_manual/api_test/api_definition/#9","title":"9 \u5bfc\u51fa\u63a5\u53e3\u5b9a\u4e49","text":"

    \u63a5\u53e3\u5b9a\u4e49\u5217\u8868\u3010\u66f4\u591a\u64cd\u4f5c-\u5bfc\u51fa\u3011\u652f\u6301\u5bfc\u51fa MeterSphere \u548c Swagger3.0 \u683c\u5f0f\u7684\u63a5\u53e3\u6587\u4ef6\u5bfc\u51fa\u3002\u9009\u62e9\u8981\u5bfc\u51fa\u7684\u63a5\u53e3\uff0c\u70b9\u51fb \u3010\u66f4\u591a\u64cd\u4f5c-\u5bfc\u51fa\u3011\u9009\u62e9\u8981\u5bfc\u51fa\u7684\u6587\u4ef6\u683c\u5f0f\uff0c\u7cfb\u7edf\u81ea\u52a8\u5b8c\u6210\u63a5\u53e3\u5bfc\u51fa\u3002

    "},{"location":"user_manual/api_test/api_definition/#10","title":"10 \u6279\u91cf\u64cd\u4f5c","text":"

    \u9009\u62e9\u591a\u6761 API \u6570\u636e\u70b9\u51fb\u3010\u2026\u3011\uff0c\u53ef\u5bf9\u591a\u4e2a\u63a5\u53e3\u8fdb\u884c\u6279\u91cf\u64cd\u4f5c\u3002\u6279\u91cf\u5220\u9664\u3001\u6279\u91cf\u7f16\u8f91\u3001\u6279\u91cf\u79fb\u52a8\u3001\u6279\u91cf\u590d\u5236\u3001\u590d\u5236\u7248\u672c\u6570\u636e\u3001\u751f\u6210\u4f9d\u8d56\u5173\u7cfb

    • \u6279\u91cf\u5220\u9664\uff1a\u6279\u91cf\u5220\u9664\u63a5\u53e3\u5230\u56de\u6536\u7ad9
    • \u6279\u91cf\u7f16\u8f91\uff1a\u6279\u91cf\u7f16\u8f91\u63a5\u53e3\u5c5e\u6027
    • \u6279\u91cf\u79fb\u52a8\uff1a\u6279\u91cf\u5c06\u63a5\u53e3\u79fb\u52a8\u5230\u5176\u4ed6\u6a21\u5757
    • \u6279\u91cf\u590d\u5236\uff1a\u6279\u91cf\u5c06\u63a5\u53e3\u590d\u5236\u5230\u5176\u4ed6\u6a21\u5757
    • \u590d\u5236\u7248\u672c\u6570\u636e(X-Pack)\uff1a\u968f\u7740\u7248\u672c\u7684\u8fed\u4ee3\uff0c\u540c\u4e00\u63a5\u53e3\uff0c\u5f53\u65b0\u7248\u63a5\u53e3\u53c2\u6570\u53d8\u66f4\u9700\u8981\u521b\u5efa\u5bf9\u5e94\u65b0\u7248\u672c\u7684\u63a5\u53e3 CASE \u548c Mock \u6570\u636e\u3002\u4f7f\u7528\u6b64\u529f\u80fd\u53ef\u6279\u91cf\u5c06\u5386\u53f2\u7248\u672c\u7684 CASE \u548c Mock \u6570\u636e\u5feb\u901f\u590d\u5236\u5230\u65b0\u7248\u672c\uff0c\u65b9\u4fbf\u5feb\u901f\u7ef4\u62a4\u63a5\u53e3\u7684\u7528\u4f8b\u6570\u636e\u3002
    • \u751f\u6210\u4f9d\u8d56\u5173\u7cfb\uff1a\u6279\u91cf\u63a5\u53e3\u4e4b\u95f4\u7684\u8054\u7cfb\u751f\u6210\u4f9d\u8d56\u5173\u7cfb\u62d3\u6251\u56fe

    "},{"location":"user_manual/api_test/api_definition/#11","title":"11 \u641c\u7d22","text":"

    \u63a5\u53e3\u5b9a\u4e49\u5217\u8868\u652f\u6301\u666e\u901a\u641c\u7d22\u63a5\u53e3\u5b9a\u4e49\u7684 ID\u3001\u540d\u79f0\u3001\u6807\u7b7e\u3001\u8def\u5f84 \u8fdb\u884c\u6a21\u7cca\u641c\u7d22\u3002\u9ad8\u7ea7\u641c\u7d22\u652f\u6301 ID \u3001\u540d\u79f0\u3001\u8bf7\u6c42\u7c7b\u578b\u3001\u8def\u5f84\u3001\u72b6\u6001\u3001\u6807\u7b7e\u3001\u66f4\u65b0\u4e8b\u4ef6\u3001\u521b\u5efa\u4e8b\u4ef6\u3001\u8d23\u4efb\u4eba\u3001\u6240\u5c5e\u6a21\u5757\u3001\u5173\u6ce8\u4eba\u8fdb\u884c\u641c\u7d22\u3002

    "},{"location":"user_manual/api_test/api_definition/#12","title":"12 \u56de\u6536\u7ad9","text":"

    \u56de\u6536\u7ad9\u5c55\u793a\u5df2\u5220\u9664\u7684\u63a5\u53e3 API\u3001CASE \u5217\u8868\u3002\u652f\u6301\u628a\u56de\u6536\u7ad9\u7684\u6570\u636e\u6062\u590d\u5230\u63a5\u53e3\u5217\u8868\u548c\u5f7b\u5e95\u5220\u9664\u64cd\u4f5c\u3002

    \u56de\u6536\u7ad9\u5217\u8868\u6279\u91cf\u9009\u62e9\u6570\u636e\uff0c\u70b9\u51fb\u3010...\u3011\u6309\u94ae\u5f39\u51fa\u64cd\u4f5c\u83dc\u5355\uff0c\u652f\u6301\u6279\u91cf\u5220\u9664\u3001\u6279\u91cf\u6062\u590d\u64cd\u4f5c\u3002

    "},{"location":"user_manual/api_test/api_definition/#13","title":"13 \u6587\u6863\u7ba1\u7406","text":"

    API \u63a5\u53e3\u652f\u6301\u4ee5\u6587\u6863\u5f62\u5f0f\u5c55\u793a\u63a5\u53e3\u5b9a\u4e49\u8be6\u7ec6\u4fe1\u606f\uff0c\u9875\u9762\u53f3\u4fa7\u5c55\u793a\u63a5\u53e3\u5217\u8868\uff0c\u70b9\u51fb\u63a5\u53e3\u540d\u79f0\u53ef\u5feb\u901f\u5b9a\u4f4d\u5230\u8be5\u63a5\u53e3\u8be6\u60c5\u6240\u5728\u4f4d\u7f6e\u3002 \u70b9\u51fb\u3010\u5206\u4eab\u3011\u56fe\u6807\uff0c\u7cfb\u7edf\u4f1a\u751f\u6210\u63a5\u53e3\u7684 URL \u5730\u5740\u3002 \u70b9\u51fb\u3010\u590d\u5236\u3011\u6309\u94ae\u5373\u53ef\u5c06\u63a5\u53e3\u7684 URL \u5730\u5740\u5206\u4eab\u7ed9\u4ed6\u4eba\u3002

    "},{"location":"user_manual/api_test/api_definition/#14-x-pack","title":"14 \u7248\u672c\u7ba1\u7406 (X-Pack)","text":"

    \u63a5\u53e3\u5b9a\u4e49\u5217\u8868\u53ef\u5207\u6362\u67e5\u770b\u5f53\u524d\u5b9a\u4e49\u63a5\u53e3\u7684\u7248\u672c\u4fe1\u606f\uff0c\u5217\u8868\u9ed8\u8ba4\u5c55\u793a\u6700\u65b0\u7248\u6570\u636e\uff0c\u53ef\u5207\u6362\u67e5\u770b\u5404\u7248\u672c\u7684\u63a5\u53e3\u5b9a\u4e49\u4fe1\u606f\u3002

    "},{"location":"user_manual/api_test/api_scenario/","title":"\u63a5\u53e3\u573a\u666f\u7f16\u6392","text":""},{"location":"user_manual/api_test/api_scenario/#1","title":"1 \u63a5\u53e3\u5217\u8868\u5bfc\u5165","text":"

    \u901a\u8fc7\u63a5\u53e3\u5217\u8868\u5bfc\u5165\u529f\u80fd\uff0c\u53ef\u4ee5\u76f4\u63a5\u6dfb\u52a0\u63a5\u53e3\u5b9a\u4e49\u4e2d\u5df2\u7ef4\u62a4\u597d\u7684\u63a5\u53e3\u6216\u7528\u4f8b\uff0c\u51cf\u5c11\u91cd\u590d\u5de5\u4f5c\u3002

    "},{"location":"user_manual/api_test/api_scenario/#11","title":"1.1 \u5bfc\u5165\u63a5\u53e3","text":"

    \u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u53f3\u4e0b\u89d2\u83dc\u5355\u3010+\u3011\u9009\u62e9 \u3010\u63a5\u53e3\u5217\u8868\u5bfc\u5165\u3011\uff0c\u4ece\u63a5\u53e3\u5217\u8868\u53ef\u4ee5\u9009\u62e9 API \u91cc\u9762\u7684\u6570\u636e\uff0c\u4f7f\u7528\u65b9\u5f0f\u652f\u6301 \u3010\u590d\u5236\u3011\u6a21\u5f0f\u3002 \u3010\u590d\u5236\u3011\u65b9\u5f0f\u5bfc\u5165\u7684\u7528\u4f8b\uff0c\u5f53\u539f\u7528\u4f8b\u53d1\u751f\u53d8\u5316\u65f6\uff0c\u573a\u666f\u4e2d\u5bfc\u5165\u7684\u7528\u4f8b\u4e0d\u4f1a\u6539\u53d8\u3002

    "},{"location":"user_manual/api_test/api_scenario/#12","title":"1.2 \u5bfc\u5165\u7528\u4f8b","text":"

    \u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u53f3\u4e0b\u89d2\u83dc\u5355\u3010+\u3011\u9009\u62e9\u3010\u63a5\u53e3\u5217\u8868\u5bfc\u5165\u3011\uff0c\u4ece\u63a5\u53e3\u5217\u8868\u53ef\u4ee5\u9009\u62e9 CASE \u91cc\u9762\u7684\u6570\u636e\uff0c\u4f7f\u7528\u65b9\u5f0f\u652f\u6301 \u3010\u590d\u5236\u3011\u3001\u3010\u5f15\u7528\u3011\u4e24\u79cd\u6a21\u5f0f\u3002

    • \u3010\u590d\u5236\u3011\u65b9\u5f0f\u5bfc\u5165\u7684\u7528\u4f8b\uff0c\u5f53\u539f\u7528\u4f8b\u53d1\u751f\u53d8\u5316\u65f6\uff0c\u573a\u666f\u4e2d\u5bfc\u5165\u7684\u7528\u4f8b\u4e0d\u4f1a\u6539\u53d8\uff1b
    • \u3010\u5f15\u7528\u3011\u65b9\u5f0f\u5bfc\u5165\u7684\u7528\u4f8b\uff0c\u5f53\u539f\u7528\u4f8b\u53d1\u751f\u53d8\u5316\u65f6\uff0c\u573a\u666f\u4e2d\u5bfc\u5165\u7684\u7528\u4f8b\u4e5f\u4f1a\u968f\u4e4b\u6539\u53d8\u3002

    "},{"location":"user_manual/api_test/api_scenario/#2","title":"2 \u81ea\u5b9a\u4e49\u8bf7\u6c42","text":"

    \u9664\u4e86\u5bfc\u5165\u5df2\u6709\u5b9a\u4e49\u7684\u63a5\u53e3\u6216\u7528\u4f8b\uff0c\u8fd8\u53ef\u4ee5\u901a\u8fc7\u81ea\u5b9a\u4e49\u8bf7\u6c42\u7684\u65b9\u5f0f\u589e\u52a0\u8bf7\u6c42\uff0c\u76ee\u524d\u652f\u6301 HTTP\u3001TCP\u3001DUBBO\u3001SQL \u7b49\u4e0d\u540c\u7c7b\u578b\u3002

    "},{"location":"user_manual/api_test/api_scenario/#3","title":"3 \u81ea\u5b9a\u4e49\u811a\u672c","text":"

    \u81ea\u5b9a\u4e49\u811a\u672c\u4e0e\u524d\u540e\u7f6e\u811a\u672c\u4f7f\u7528\u65b9\u5f0f\u7c7b\u4f3c\uff0c\u4f46\u662f\u53ef\u4ee5\u72ec\u7acb\u6dfb\u52a0\uff0c\u4e0d\u9700\u8981\u4f9d\u8d56\u4e8e\u67d0\u4e2a\u5df2\u6709\u8bf7\u6c42\u4f5c\u4e3a\u5176\u5b50\u6b65\u9aa4\u3002\u76ee\u524d\u652f\u6301\u7684\u811a\u672c\u8bed\u8a00\u53ca\u5185\u7f6e\u53d8\u91cf\u8bf7\u53c2\u8003 \u524d\u7f6e\u811a\u672c\u3002

    "},{"location":"user_manual/api_test/api_scenario/#4","title":"4 \u573a\u666f\u5bfc\u5165","text":"

    \u7528\u6237\u53ef\u4ee5\u7ef4\u62a4\u4e00\u4e9b\u57fa\u7840\u3001\u901a\u7528\u573a\u666f\uff0c\u901a\u8fc7\u573a\u666f\u5bfc\u5165\u529f\u80fd\uff0c\u53ef\u4ee5\u76f4\u63a5\u5c06\u5df2\u6709\u7684\u573a\u666f\u6dfb\u52a0\u5230\u5f53\u524d\u573a\u666f\u4e2d\uff0c\u51cf\u5c11\u91cd\u590d\u5de5\u4f5c\uff0c\u63d0\u9ad8\u573a\u666f\u7684\u590d\u7528\u6027\u3002

    • \u3010\u590d\u5236\u3011\u65b9\u5f0f\u5bfc\u5165\u7684\u573a\u666f\uff0c\u5f53\u539f\u573a\u666f\u53d1\u751f\u53d8\u5316\u65f6\uff0c\u573a\u666f\u4e2d\u5bfc\u5165\u7684\u573a\u666f\u4e0d\u4f1a\u6539\u53d8\u3002
    • \u3010\u5f15\u7528\u3011\u65b9\u5f0f\u5bfc\u5165\u7684\u573a\u666f\uff0c\u5f53\u539f\u573a\u666f\u53d1\u751f\u53d8\u5316\u65f6\uff0c\u573a\u666f\u4e2d\u5bfc\u5165\u7684\u573a\u666f\u4e5f\u4f1a\u968f\u4e4b\u6539\u53d8\u3002

    "},{"location":"user_manual/api_test/api_scenario/#5","title":"5 \u6761\u4ef6\u63a7\u5236\u5668","text":"

    \u5f53\u6761\u4ef6\u63a7\u5236\u5668\u4e2d\u914d\u7f6e\u7684\u6761\u4ef6\u6ee1\u8db3\u65f6\uff0c\u6761\u4ef6\u63a7\u5236\u5668\u4e0b\u7684\u5b50\u6b65\u9aa4\u624d\u4f1a\u6267\u884c\uff0c\u5426\u5219\u5b50\u6b65\u9aa4\u4f1a\u88ab\u8df3\u8fc7\u3002

    "},{"location":"user_manual/api_test/api_scenario/#6","title":"6 \u5faa\u73af\u63a7\u5236\u5668","text":"

    \u901a\u8fc7\u4f7f\u7528\u5faa\u73af\u63a7\u5236\u5668\uff0c\u53ef\u4ee5\u91cd\u590d\u6267\u884c\u5faa\u73af\u63a7\u5236\u5668\u4e0b\u7684\u5b50\u6b65\u9aa4\u3002

    "},{"location":"user_manual/api_test/api_scenario/#61","title":"6.1 \u6b21\u6570\u5faa\u73af","text":"

    \u6b21\u6570\u5faa\u73af\u652f\u6301\u81ea\u5b9a\u4e49\u8bbe\u7f6e\u6b21\u6570\u3001\u95f4\u9694\u7b49\u65b9\u5f0f\u8fdb\u884c\u5faa\u73af\u63a7\u5236\u3002

    • \u3010\u5faa\u73af\u6b21\u6570\u3011\uff1a\u8be5\u5faa\u73af\u63a7\u5236\u5668\u4e0b\u7684\u5b50\u6b65\u9aa4\u603b\u5171\u6267\u884c\u7684\u6b21\u6570\u3002
    • \u3010\u5faa\u73af\u95f4\u9694\u3011\uff1a\u6bcf\u6b21\u6267\u884c\u95f4\u7684\u65f6\u95f4\u95f4\u9694\uff0c\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d\u3002
    • \u3010\u6210\u529f\u540e\u662f\u5426\u7ee7\u7eed\u5faa\u73af\u3011\uff1a\u4ec5\u5faa\u73af\u63a7\u5236\u5668\u4e0b\u5b58\u5728\u4e00\u4e2a\u8bf7\u6c42\u65f6\u53ef\u4ee5\u5173\u95ed\u3002\u5f53\u5173\u95ed\u65f6\uff0c\u82e5\u5faa\u73af\u63a7\u5236\u5668\u4e0b\u7684\u8bf7\u6c42\u662f\u6210\u529f\u72b6\u6001\uff0c\u5219\u7acb\u5373\u7ec8\u6b62\u5faa\u73af\uff0c\u65e0\u8bba\u6709\u6ca1\u6709\u8fbe\u5230\u5faa\u73af\u6b21\u6570\u3002\u53ef\u4ee5\u7528\u5728\u5f02\u6b65\u8bf7\u6c42\u540e\u8f6e\u8be2\u67e5\u8be2\u6267\u884c\u7ed3\u679c\u7684\u573a\u666f\uff0c\u5f53\u67e5\u8be2\u7ed3\u679c\u7b26\u5408\u9884\u671f\u65f6\u7ec8\u6b62\u5faa\u73af\uff0c\u907f\u514d\u591a\u4f59\u7684\u67e5\u8be2\u64cd\u4f5c\u3002

    \u793a\u4f8b

    \u5f00\u542f\u3010\u6210\u529f\u540e\u7ee7\u7eed\u5faa\u73af\u3011\uff0c\u5faa\u73af\u603b\u5171\u6267\u884c\u4e86 5 \u6b21\u3002

    \u5173\u95ed\u3010\u6210\u529f\u540e\u7ee7\u7eed\u5faa\u73af\u3011\uff0c\u7531\u4e8e\u5faa\u73af\u4e0b\u7684\u8bf7\u6c42\u7b2c\u4e00\u6b21\u4fbf\u6267\u884c\u6210\u529f\uff0c\u5faa\u73af\u4ec5\u6267\u884c\u4e86 1 \u6b21\u3002

    "},{"location":"user_manual/api_test/api_scenario/#62-foreach","title":"6.2 ForEach \u5faa\u73af","text":"

    ForEach \u5faa\u73af\u4e00\u822c\u914d\u5408\u5217\u8868\u53d8\u91cf\u4f7f\u7528\uff0c\u4f8b\u5982\u5b58\u5728 ID_1\uff0cID_2\uff0cID_3 \u5f62\u5f0f\u7684\u4e00\u7ec4\u53d8\u91cf\u65f6\uff0c\u53ef\u4ee5\u901a\u8fc7 ForEach \u5faa\u73af\u4f7f\u7528\u5176\u4e2d\u6bcf\u4e2a ID \u53d1\u9001\u7279\u5b9a\u8bf7\u6c42\u3002

    • \u3010\u8f93\u51fa\u53d8\u91cf\u540d\u79f0\u3011\uff1a\u5728\u5faa\u73af\u4e2d\u53ef\u4ee5\u901a\u8fc7\u8be5\u53d8\u91cf\u5f15\u7528\u5230\u5217\u8868\u53d8\u91cf\u4e2d\u5f53\u524d\u8fed\u4ee3\u7684\u53d8\u91cf\u503c\u3002
    • \u3010\u8f93\u5165\u53d8\u91cf\u524d\u7f00\u3011\uff1a\u5217\u8868\u53d8\u91cf\u7684\u53d8\u91cf\u524d\u7f00\u3002
    • \u3010\u5faa\u73af\u95f4\u9694\u3011\uff1a\u6bcf\u6b21\u6267\u884c\u95f4\u7684\u65f6\u95f4\u95f4\u9694\uff0c\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d\u3002

    \u793a\u4f8b

    \u5728\u573a\u666f\u53d8\u91cf\u4e2d\u8bbe\u7f6e\u5217\u8868\u53d8\u91cf id\uff0c\u5217\u8868\u503c\u4e3a1\uff0c2\uff0c3\u3002

    \u904d\u5386\u573a\u666f\u53d8\u91cf\u4e2d\u7684\u5217\u8868\u53d8\u91cf\uff0c\u5728\u3010\u524d\u7f6e\u811a\u672c\u3011\u4e2d\u6253\u5370\u5217\u8868\u53d8\u91cf\u4e2d\u7684\u6bcf\u4e2a\u503c\u3002

    \u5faa\u73af\u6b21\u6570\u4e0e\u5217\u8868\u957f\u5ea6\u76f8\u540c\uff0c\u4e14\u8f93\u51fa\u5217\u8868\u53d8\u91cf\u4e2d\u7684\u6bcf\u4e2a\u503c\u3002

    "},{"location":"user_manual/api_test/api_scenario/#63-while","title":"6.3 While \u5faa\u73af","text":"

    While \u5faa\u73af\u66f4\u4e3a\u7075\u6d3b\uff0c\u5f53\u914d\u7f6e\u7684\u6761\u4ef6\u6ee1\u8db3\u65f6\u5faa\u73af\u4f1a\u4e00\u76f4\u8fdb\u884c\u3002

    • \u3010\u53d8\u91cf\u3011\uff1a\u8981\u8fdb\u884c\u5224\u65ad\u7684\u53d8\u91cf\u3002
    • \u3010\u5224\u65ad\u6761\u4ef6\u3011\uff1a\u53d8\u91cf\u4e0e\u671f\u671b\u503c\u7684\u6bd4\u8f83\u65b9\u5f0f\u3002
    • \u3010\u503c\u3011\uff1a\u8981\u5bf9\u53d8\u91cf\u8fdb\u884c\u5224\u65ad\u7684\u503c\u3002
    • \u3010\u5faa\u73af\u8d85\u65f6\u65f6\u95f4\u3011\uff1a\u7531\u4e8e while \u5faa\u73af\u7684\u7279\u6b8a\u6027\uff0c\u5f53\u6761\u4ef6\u6ee1\u8db3\u65f6\u5c06\u4f1a\u4e00\u76f4\u5faa\u73af\uff0c\u4e3a\u4e86\u907f\u514d\u6b7b\u5faa\u73af\u7684\u60c5\u51b5\u51fa\u73b0\uff0c\u7528\u6237\u53ef\u4ee5\u914d\u7f6e\u5faa\u73af\u8d85\u65f6\u65f6\u95f4\uff0c\u5230\u8d85\u8fc7\u8be5\u65f6\u95f4\u540e\uff0c\u4e0d\u7ba1\u5faa\u73af\u6761\u4ef6\u662f\u5426\u6ee1\u8db3\uff0c\u5faa\u73af\u90fd\u5c06\u88ab\u7ec8\u6b62\u3002

    \u793a\u4f8b

    \u5728\u573a\u666f\u53d8\u91cf\u4e2d\u8bbe\u7f6e\u5e38\u91cf\u53d8\u91cf NUM\uff0c\u503c\u4e3a5\u3002

    \u8bbe\u7f6e While\u5faa\u73af\u7684\u6761\u4ef6\uff0c\u5728\u524d\u7f6e\u811a\u672c\u83b7\u53d6\u53d8\u91cf\u503c\u5e76\u66f4\u6539\u53d8\u91cf\u503c

    \u6bcf\u6b21\u5faa\u73af\u4fee\u6539\u7684\u503c\u5728\u63a7\u5236\u53f0\u8fdb\u884c\u6253\u5370

    "},{"location":"user_manual/api_test/api_scenario/#7","title":"7 \u7b49\u5f85\u63a7\u5236\u5668","text":"

    \u5f53\u67d0\u4e2a\u6b65\u9aa4\u6267\u884c\u540e\u9700\u8981\u7b49\u5f85\u4e00\u6bb5\u65f6\u95f4\u65f6\uff0c\u53ef\u4f7f\u7528\u7b49\u5f85\u63a7\u5236\u5668\u8fdb\u884c\u63a7\u5236\u3002\u5f53\u4f5c\u4e3a\u6b65\u9aa4\u6dfb\u52a0\u65f6\uff0c\u4e0e\u4e4b\u540c\u7ea7\u7684\u6240\u6709\u6b65\u9aa4\u5747\u4f1a\u7b49\u5f85\u82e5\u5e72\u65f6\u95f4\uff1b\u4f5c\u4e3a\u67d0\u4e2a\u6b65\u9aa4\u7684\u5b50\u6b65\u9aa4\u6dfb\u52a0\u65f6\uff0c\u8be5\u6b65\u9aa4\u5c06\u7b49\u5f85\u82e5\u5e72\u65f6\u95f4\u540e\u518d\u6267\u884c\u3002

    "},{"location":"user_manual/api_test/api_scenario/#8","title":"8 \u4e8b\u52a1\u63a7\u5236\u5668","text":"

    \u4e8b\u52a1\u63a7\u5236\u5668\u5c06\u4e00\u7ec4\u8bf7\u6c42\u5f53\u6210\u4e00\u4e2a\u4e8b\u52a1\u8fdb\u884c\u5904\u7406\uff0c\u6bd4\u5982\u7528\u6237\u4e00\u4e2a\u52a8\u4f5c\u5305\u542b\u5f88\u591a\u4e2a\u8bf7\u6c42\uff0c\u8fd9\u90e8\u5206\u8bf7\u6c42\u5c31\u90fd\u53ef\u4ee5\u653e\u5728\u4e00\u4e2a\u4e8b\u52a1\u63a7\u5236\u5668\u4e0b\uff0c\u5f53\u6210\u4e00\u4e2a\u4e8b\u52a1\uff0c\u5e38\u7528\u4e8e\u6027\u80fd\u6d4b\u8bd5\u3002

    "},{"location":"user_manual/api_test/api_scenario/#9","title":"9 \u524d\u7f6e\u811a\u672c","text":"

    \u4e0e\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u4e2d\u7684\u524d\u7f6e\u811a\u672c\u7c7b\u4f3c\uff0c\u8bf7\u53c2\u8003 \u524d\u7f6e\u811a\u672c\u3002

    "},{"location":"user_manual/api_test/api_scenario/#10","title":"10 \u540e\u7f6e\u811a\u672c","text":"

    \u4e0e\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u4e2d\u7684\u540e\u7f6e\u811a\u672c\u7c7b\u4f3c\uff0c\u8bf7\u53c2\u8003 \u540e\u7f6e\u811a\u672c\u3002

    "},{"location":"user_manual/api_test/api_scenario/#11-sql","title":"11 \u524d\u7f6eSQL","text":"

    \u4e0e\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u4e2d\u7684\u524d\u7f6eSQL\u7c7b\u4f3c\uff0c\u8bf7\u53c2\u8003 \u524d\u7f6eSQL\u3002

    "},{"location":"user_manual/api_test/api_scenario/#12-sql","title":"12 \u540e\u7f6eSQL","text":"

    \u4e0e\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u4e2d\u7684\u540e\u7f6eSQL\u7c7b\u4f3c\uff0c\u8bf7\u53c2\u8003 \u540e\u7f6eSQL\u3002

    "},{"location":"user_manual/api_test/api_scenario/#13","title":"13 \u65ad\u8a00\u89c4\u5219","text":"

    \u4e0e\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u4e2d\u7684\u65ad\u8a00\u89c4\u5219\u7c7b\u4f3c\uff0c\u8bf7\u53c2\u8003 \u65ad\u8a00\u89c4\u5219\u3002

    "},{"location":"user_manual/api_test/api_scenario/#14","title":"14 \u63d0\u53d6\u53c2\u6570","text":"

    \u4e0e\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u4e2d\u7684\u63d0\u53d6\u53c2\u6570\u7c7b\u4f3c\uff0c\u8bf7\u53c2\u8003 \u63d0\u53d6\u53c2\u6570\u3002

    "},{"location":"user_manual/api_test/api_step/","title":"\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u6b65\u9aa4","text":""},{"location":"user_manual/api_test/api_step/#1","title":"1 \u524d\u7f6e\u811a\u672c","text":"

    \u524d\u7f6e\u811a\u672c\u53ef\u4ee5\u6dfb\u52a0\u4e3a\u8bf7\u6c42\u7684\u5b50\u6b65\u9aa4\uff0c\u5728\u8bf7\u6c42\u53d1\u9001\u524d\u6267\u884c\uff0c\u53ef\u4ee5\u7528\u5728\u4fee\u6539\u8bf7\u6c42\u5185\u5bb9\u3001\u521d\u59cb\u5316\u8bf7\u6c42\u9700\u8981\u7684\u53c2\u6570\u503c\u7b49\u573a\u666f\u3002 \u76ee\u524d MeterSphere \u652f\u6301\u4ee5\u4e0b\u51e0\u79cd\u8bed\u8a00\u7684\u524d\u7f6e\u811a\u672c\uff1a

    • BeanShell
    • Python2
    • Groovy
    • NashornScript
    • RhinoScript

    \u5728\u524d\u7f6e\u811a\u672c\u4e2d\u53ef\u4ee5\u76f4\u63a5\u5f15\u7528JMeter \u9884\u5b9a\u4e49\u5bf9\u8c61\uff0c\u4f8b\u5982\uff1a - log\uff1a\u7528\u4e8e\u5728\u811a\u672c\u6267\u884c\u8fc7\u7a0b\u4e2d\u6253\u5370\u65e5\u5fd7

    //\u6253\u5370 `Hello World!` \u5230 info \u65e5\u5fd7\u4e2d\nlog.info(\"Hello World!\");\n
    - Label\uff1a\u524d\u7f6e\u811a\u672c\u6240\u5c5e\u8bf7\u6c42\u7684\u8bf7\u6c42\u540d\u79f0 - SampleResult\uff1a\u5f53\u524d\u8bf7\u6c42\u8bf7\u6c42\u7ed3\u679c SamplerResult \u7684\u6307\u9488
    //\u8bbe\u7f6e\u8bf7\u6c42\u7ed3\u679c\u6210\u529f\u6216\u5931\u8d25\nSampleResult.setSuccessful(true/false);\n//\u8bbe\u7f6e\u8bf7\u6c42\u8fd4\u56de\u7801\nSampleResult.setResponseCode(\"code\");\n//\u8bbe\u7f6e\u8bf7\u6c42\u8fd4\u56de\u6d88\u606f\nSampleResult.setResponseMessage(\"message\");\n
    - sampler\uff1a\u5f53\u524d\u8bf7\u6c42 sampler \u7684\u6307\u9488
    //\u83b7\u53d6\u5f53\u524d\u8bf7\u6c42\u540d\u79f0\nsampler.getName();\n
    - vars\uff1aJMeterVariables\uff0c\u7528\u4e8e\u64cd\u4f5c\u53d8\u91cf
    //\u83b7\u53d6\u53d8\u91cf VAR1 \u7684\u503c\nvars.get(\"VAR1\");\n//\u8bbe\u7f6e\u53d8\u91cf VAR2 \u7684\u503c\u4e3a value\nvars.put(\"VAR2\",\"value\");\n//\u79fb\u9664\u53d8\u91cf VAR3\nvars.remove(\"VAR3\");\n

    \u3010\u6ce8\u610f\u3011 \u4e0d\u540c\u811a\u672c\u8bed\u8a00\u8bed\u6cd5\u4e0d\u540c\uff0c\u4ee5\u4e0a\u793a\u4f8b\u4ec5\u9488\u5bf9 BeanShell \u6216 Groovy\u3002

    \u5728\u63a5\u53e3 CASE \u7f16\u8f91\u9875\u9762\uff0c\u64cd\u4f5c Tab \u9875\u524d\u7f6e\u64cd\u4f5c\u83dc\u5355\uff1a\u63d0\u4f9b\u4e86\u591a\u79cd\u4e0d\u540c\u7c7b\u578b\u548c\u8303\u56f4\u7684\u6807\u51c6\u4ee3\u7801\u6a21\u677f\uff0c\u540c\u65f6\u8fd8\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u4ee3\u7801\u6a21\u677f\u3002\u4ee3\u7801\u6a21\u7248\u5206\u4e3a\uff1aAPI\u6d4b\u8bd5\u3001\u81ea\u5b9a\u4e49\u53d8\u91cf\u3001\u9879\u76ee\u73af\u5883\u3001\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u3001\u5f02\u5e38\u5904\u7406\u3002

    "},{"location":"user_manual/api_test/api_step/#11-api","title":"1.1 API\u6d4b\u8bd5","text":"

    \u3010\u4eceAPI\u5b9a\u4e49\u5bfc\u5165\u3011\uff1aAPI\u5b9a\u4e49\u5bfc\u5165\u53ef\u4ee5\u76f4\u63a5\u5bfc\u5165 API / CASE \u81ea\u52a8\u751f\u6210\u811a\u672c\u3002\u70b9\u51fb\u3010API\u5b9a\u4e49\u5bfc\u5165\u3011\u6309\u94ae\uff0c\u4ece\u63a5\u53e3\u5217\u8868 API/ CASE \u9009\u62e9\u76ee\u6807\u6570\u636e\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u4f1a\u5728\u524d\u7f6e\u811a\u672c\u4e2d\u9ed8\u8ba4\u751f\u6210 beanshell \u811a\u672c\u3002\u811a\u672c\u8bed\u8a00\u53ef\u5207\u6362\uff0c\u9ed8\u8ba4\u652f\u6301 beanshell \u3001python2 \u3001groovy \u3001javascript \u8bed\u8a00\u3002

    \u70b9\u51fb\u3010\u65b0API\u6d4b\u8bd5[json]\u3011\u53ef\u4ee5\u81ea\u52a8\u751f\u6210 json \u8bf7\u6c42\u65b9\u5f0f\u7684 API \u8bf7\u6c42\u6a21\u677f\u3002

    "},{"location":"user_manual/api_test/api_step/#12","title":"1.2 \u81ea\u5b9a\u4e49\u53d8\u91cf","text":"

    \u5728\u3010\u81ea\u5b9a\u4e49\u53d8\u91cf\u3011\u65b9\u6cd5\u5217\u8868\uff0c\u9009\u62e9\u9700\u8981\u7684\u81ea\u5b9a\u4e49\u53d8\u91cf\u65b9\u6cd5\u53ef\u81ea\u52a8\u751f\u6210\u83b7\u53d6\u53d8\u91cf\u7684\u811a\u672c\u3002\u5305\u62ec\u83b7\u53d6\u54cd\u5e94\u5934\u3001\u83b7\u53d6\u54cd\u5e94\u7801\u3001\u83b7\u53d6\u54cd\u5e94\u7b49\u811a\u672c\uff0c\u4ee5\u83b7\u53d6\u63a5\u53e3\u8c03\u8bd5\u7ed3\u679c\u4e2d\u7684\u54cd\u5e94\u5934\u3001\u54cd\u5e94\u7801\u3001\u54cd\u5e94\u7ed3\u679c\u7b49\u4fe1\u606f\u3002

    "},{"location":"user_manual/api_test/api_step/#13","title":"1.3 \u9879\u76ee\u73af\u5883","text":"

    \u9009\u62e9\u3010\u9879\u76ee\u73af\u5883\u3011\u8bbe\u7f6e\u73af\u5883\u53c2\u6570\uff0c\u81ea\u52a8\u751f\u6210\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\u65b9\u6cd5\u586b\u5199\u5bf9\u5e94\u65b9\u6cd5\u952e\u503c\u5bf9\u5373\u53ef\u8bd5\u7528\u3002 vars.put(${__metersphere_env_id}+\"key\",\"value\"); // \u5c06\u503c\u5b58\u50a8\u4e3a\u73af\u5883\u53d8\u91cf\uff0c\u53ef\u5728\u3010\u73af\u5883-\u901a\u7528\u8bbe\u7f6e\u3011\u5904\u770b\u5230\u503c\u3002\u5f53\u524d\u73af\u5883\u4e0b\u7684\u6240\u6709\u63a5\u53e3\u4f7f\u7528\u3002 vars.put(\"key\",\"value\") // \u5c06\u503c\u5b58\u50a8\u4e3a\u573a\u666f\u53d8\u91cf

    "},{"location":"user_manual/api_test/api_step/#14","title":"1.4 \u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5","text":"

    \u9009\u62e9\u3010\u81ea\u5b9a\u4e49\u4ee3\u7801\u3011\u63d2\u5165\u4ee3\u7801\u7247\u6bb5\uff0c\u9009\u62e9\u5728\u3010\u9879\u76ee\u7ba1\u7406-\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u3011\u5b9a\u4e49\u597d\u7684\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\uff0c\u53ef\u5b9e\u73b0\u590d\u7528\u811a\u672c\u4f18\u5316\u6d4b\u8bd5\u7ba1\u7406\u529e\u6cd5\u3002

    "},{"location":"user_manual/api_test/api_step/#15","title":"1.5 \u5f02\u5e38\u5904\u7406","text":"

    \u9009\u62e9\u3010\u5f02\u5e38\u5904\u7406\u3011\u7ec8\u6b62\u6d4b\u8bd5\uff0c\u53ef\u81ea\u52a8\u751f\u6210 \u7ec8\u6b62\u6d4b\u8bd5\u7ebf\u7a0b\u7684\u811a\u672c\u3002\u8bbe\u7f6e\u7ec8\u6b62\u6d4b\u8bd5\u5f02\u5e38\u6761\u4ef6\uff0c\u63a5\u53e3\u6216\u573a\u666f\u6267\u884c\u8fc7\u7a0b\u4e2d\u5339\u914d\u5230\u7ec8\u6b62\u6761\u4ef6\u5219\u7ec8\u6b62\u8be5\u8fdb\u7a0b\u3002

    "},{"location":"user_manual/api_test/api_step/#2","title":"2 \u540e\u7f6e\u811a\u672c","text":"

    \u540e\u7f6e\u811a\u672c\u4e0e\u524d\u7f6e\u811a\u672c\u7c7b\u4f3c\uff0c\u53ef\u4ee5\u6dfb\u52a0\u4e3a\u8bf7\u6c42\u7684\u5b50\u6b65\u9aa4\uff0c\u5728\u8bf7\u6c42\u53d1\u9001\u540e\u6267\u884c\uff0c\u53ef\u4ee5\u7528\u4e8e\u5904\u7406\u54cd\u5e94\u7ed3\u679c\uff0c\u4ece\u4e2d\u63d0\u53d6\u53d8\u91cf\u7b49\u573a\u666f\u3002

    "},{"location":"user_manual/api_test/api_step/#3-sql","title":"3 \u524d\u7f6e SQL","text":"

    \u5728\u8bf7\u6c42\u53d1\u9001\u4e4b\u524d\u6267\u884c SQL \u811a\u672c\u3002\u524d\u7f6e\u64cd\u4f5c\u4e0b\u62c9\u9009\u62e9 \u524d\u7f6eSQL\uff0c\u914d\u7f6e \u8fd0\u884c\u73af\u5883\u53ca \u76ee\u6807\u6570\u636e\u6e90\uff0c\u53ef\u76f4\u63a5\u5728 SQL\u811a\u672c\u4e2d\u7f16\u5199 SQL \u8bed\u53e5\uff0c\u8fd4\u56de\u7684\u63a5\u53e3\u652f\u6301\u5b58\u50a8\u7ed3\u679c\u3001\u6309\u5217\u5b58\u50a8\uff0c\u652f\u6301\u5728 SQL\u811a\u672c\u4e2d\u8bbe\u7f6e\u53d8\u91cf\u4f20\u53c2\u3002

    • \u5b58\u50a8\u7ed3\u679c\uff1a\u8fd4\u56de\u7ed3\u679c\u7684\u6240\u6709\u5b57\u6bb5\u5b58\u50a8\u5230\u4e00\u4e2a\u53d8\u91cf\u4e2d\u3002\u53ef\u914d\u5408\u811a\u672c\u5904\u7406\u83b7\u8fd4\u56de\u7ed3\u679c\u4e2d\u7684\u67d0\u4e00\u90e8\u5206\u503c\u3002
    • \u6309\u5217\u5b58\u50a8\uff1a\u76f4\u63a5\u6307\u5b9a\u53d6\u51fa\u8fd4\u56de\u7ed3\u679c\u5b57\u6bb5\u7684\u503c\uff0c\u5217\u540d\u8981\u548cSQL\u8bed\u53e5\u4e2d\u67e5\u8be2\u8fd4\u56de\u7ed3\u679c\u5217\u540d\u5bf9\u5e94\u3002\u53ef\u4ee5\u7528\u9017\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u4ee3\u66ff\u5217\u540d\uff0c\u53ea\u5199\u51fa\u8981\u63d0\u53d6\u7684\u5217\u540d\u5373\u53ef\u3002

    \u5982\u56fe\u6240\u793a\u67e5\u8be2\uff0c\u7528\u6237\u3010\u6309\u5217\u5b58\u50a8\u3011\u67e5\u8be2 id \u548c name\uff0c\u901a\u8fc7${name_n}\u8fdb\u884c\u5f15\u7528\uff0cn\u4e3a\u884c\u6570\uff0c${name_1} \u4e3a name \u5217\u7684\u7b2c\u4e00\u884c\u503c\u3002

    "},{"location":"user_manual/api_test/api_step/#4-sql","title":"4 \u540e\u7f6e SQL","text":"

    \u540e\u7f6eSQL\u4e0e\u524d\u7f6eSQL\u7c7b\u4f3c\uff0c\u5728\u8bf7\u6c42\u6267\u884c\u5b8c\u6210\u540e\u518d\u8fdb\u884cSQL\u5904\u7406\u3002

    "},{"location":"user_manual/api_test/api_step/#5","title":"5 \u65ad\u8a00\u89c4\u5219","text":"

    \u65ad\u8a00\u7684\u4e3b\u8981\u529f\u80fd\u662f\u901a\u8fc7\u9a8c\u8bc1\u54cd\u5e94\u62a5\u6587\u662f\u5426\u6ee1\u8db3\u9700\u6c42\u89c4\u7ea6\u6765\u786e\u8ba4\u63a5\u53e3\u8fd0\u884c\u662f\u5426\u6b63\u786e\u3002 \u76ee\u524d MeterSphere \u652f\u6301\u4ee5\u4e0b\u51e0\u79cd\u5f62\u5f0f\u7684\u65ad\u8a00\u89c4\u5219\uff1a

    • \u6587\u672c
    • \u6b63\u5219
    • JSONPath
    • XPath
    • \u54cd\u5e94\u65f6\u95f4
    • \u811a\u672c
    • \u6587\u6863\u7ed3\u6784\u6821\u9a8c

    "},{"location":"user_manual/api_test/api_step/#51","title":"5.1 \u6587\u672c\u65ad\u8a00","text":"

    \u6587\u672c\u65ad\u8a00\u5373\u5bf9\u54cd\u5e94\u5bf9\u8c61\u6309\u6587\u672c\u65b9\u5f0f\u8ddf\u8fdb\u6307\u5b9a\u5224\u65ad\u6761\u4ef6\u8fdb\u884c\u5224\u65ad\u3002

    • \u5bf9\u8c61\u5305\u62ec\uff1a Response Code\uff0cResponse Headers\uff0cResponse Data \u3002
    • \u6761\u4ef6\u652f\u6301\uff1a \u5305\u542b\uff0c\u4e0d\u5305\u542b\uff0c\u7b49\u4e8e\uff0c\u4ee5...\u5f00\u59cb\uff0c\u4ee5...\u7ed3\u675f \u3002
    • \u503c\uff1a\u65ad\u8a00\u5bf9\u8c61\u9700\u8981\u5339\u914d\u7684\u503c\uff0c\u5339\u914d\u6210\u529f\u5219\u65ad\u8a00\u6210\u529f\uff0c\u5426\u5219\u65ad\u8a00\u5931\u8d25\u3002

    "},{"location":"user_manual/api_test/api_step/#52","title":"5.2 \u6b63\u5219\u65ad\u8a00","text":"

    \u6b63\u5219\u65ad\u8a00\u9002\u7528\u4e8e\u54cd\u5e94\u5185\u5bb9\u4e0d\u662f JSON\u3001XML\u3001HTML \u7b49\u8fd9\u6837\u7684\u6807\u51c6\u4e14\u5e38\u89c1\u7684\u7ed3\u6784\u5316\u6587\u672c\u7684\u8bf7\u6c42\u8fdb\u884c\u65ad\u8a00\u64cd\u4f5c\u3002

    • \u5bf9\u8c61\u5305\u62ec\uff1aResponse Code\uff0cResponse Headers\uff0cResponse Data\u3002
    • Perl\u578b\u6b63\u5219\u8868\u8fbe\u5f0f\uff1a\u65ad\u8a00\u5bf9\u8c61\u9700\u8981\u5339\u914d\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\uff0c\u5339\u914d\u6210\u529f\u5219\u65ad\u8a00\u6210\u529f\uff0c\u5426\u5219\u65ad\u8a00\u5931\u8d25\u3002

    \u793a\u4f8b

    \u8bf7\u6c42\u7684\u54cd\u5e94\u4f53\uff1a

    id=\"ddc86657-d402-4c10-b458-2ba2e4604cef\"&name=\"myorg\"&description=\"test org\"\n
    \u65ad\u8a00\u9700\u6c42\uff1a\u5224\u65ad\u54cd\u5e94\u4f53\u4e2d\u5305\u542b name=\"\u4efb\u610f\u6587\u672c\"\u3002

    \u65ad\u8a00\u914d\u7f6e\uff1a

    • \u5bf9\u8c61\uff1aResponse Data
    • Perl\u578b\u6b63\u5219\u8868\u8fbe\u5f0f\uff1aname=\".*?\"
    "},{"location":"user_manual/api_test/api_step/#53-jsonpath","title":"5.3 JSONPath \u65ad\u8a00","text":"

    JSONPath \u65ad\u8a00\u9002\u7528\u4e8e\u54cd\u5e94\u5185\u5bb9\u662f JSON \u683c\u5f0f\u8fdb\u884c\u65ad\u8a00\u3002

    • JSONPath\u8868\u8fbe\u5f0f\uff1aJSONPath \u8868\u8fbe\u5f0f\uff0c\u901a\u8fc7\u8be5\u8868\u8fbe\u5f0f\u5b9a\u4f4d\u5230\u7279\u5b9a\u5b57\u6bb5\u3002
    • \u671f\u671b\u503c\uff1a\u901a\u8fc7 JSONPath \u8868\u8fbe\u5f0f\u5b9a\u4f4d\u7684\u5b57\u6bb5\u7684\u671f\u671b\u503c\uff0c\u652f\u6301\u6b63\u5219\u8868\u8fbe\u5f0f\u3002

    "},{"location":"user_manual/api_test/api_step/#54-xpath","title":"5.4 XPath \u65ad\u8a00","text":"

    XPath \u65ad\u8a00\u9002\u7528\u4e8e\u5bf9\u54cd\u5e94\u5185\u5bb9\u662f XML\u3001HTML \u7b49\u683c\u5f0f\u7684\u8bf7\u6c42\u8fdb\u884c\u65ad\u8a00\u3002

    • XPath\u8868\u8fbe\u5f0f\uff1a\u9700\u8981\u8fdb\u884c\u5339\u914d\u7684 XPath \u8868\u8fbe\u5f0f\u3002

    \u793a\u4f8b

    \u8bf7\u6c42\u7684\u54cd\u5e94\u4f53\uff1a

    <root xmlns:foo=\"http://www.foo.org/\" xmlns:bar=\"http://www.bar.org\">\n    <employees>\n        <employee id=\"1\">Johnny Dapp</employee>\n        <employee id=\"2\">Al Pacino</employee>\n        <employee id=\"3\">Robert De Niro</employee>\n        <employee id=\"4\">Kevin Spacey</employee>\n        <employee id=\"5\">Denzel Washington</employee>\n    </employees>\n    <foo:companies>\n        <foo:company id=\"6\">Tata Consultancy Services</foo:company>\n        <foo:company id=\"7\">Wipro</foo:company>\n        <foo:company id=\"8\">Infosys</foo:company>\n        <foo:company id=\"9\">Microsoft</foo:company>\n        <foo:company id=\"10\">IBM</foo:company>\n        <foo:company id=\"11\">Apple</foo:company>\n        <foo:company id=\"12\">Oracle</foo:company>\n    </foo:companies>\n</root>\n
    \u65ad\u8a00\u9700\u6c42\uff1a\u5224\u65ad\u54cd\u5e94\u4f53\u4e2d\u7684 id \u4e3a 10 \u7684\u516c\u53f8\u540d\u79f0\u4e3a IBM

    \u65ad\u8a00\u914d\u7f6e\uff1a

    - XPath \u8868\u8fbe\u5f0f\uff1a//*[local-name()='company' and @id=\"10\"]/text()=\"IBM\"\n
    "},{"location":"user_manual/api_test/api_step/#55","title":"5.5 \u54cd\u5e94\u65f6\u95f4\u65ad\u8a00","text":"

    \u54cd\u5e94\u65f6\u95f4\u65ad\u8a00\u9002\u7528\u4e8e\u5bf9\u54cd\u5e94\u65f6\u95f4\u6709\u7279\u5b9a\u8981\u6c42\u65f6\u7684\u8bf7\u6c42\u8fdb\u884c\u65ad\u8a00\u64cd\u4f5c\u3002

    • \u54cd\u5e94\u65f6\u95f4\u5728...\u6beb\u79d2\u4ee5\u5185\uff1a\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d\u7684\u54cd\u5e94\u65f6\u95f4\u671f\u671b\uff0c\u5f53\u5b9e\u9645\u54cd\u5e94\u65f6\u95f4\u5c0f\u4e8e\u7b49\u4e8e\u8be5\u503c\u65f6\u65ad\u8a00\u6210\u529f\u3002

    "},{"location":"user_manual/api_test/api_step/#56","title":"5.6 \u6587\u6863\u7ed3\u6784\u6821\u9a8c","text":"

    \u6587\u6863\u7ed3\u6784\u6821\u9a8c\u65ad\u8a00\u9002\u7528\u4e8e\u54cd\u5e94\u7ed3\u679c\u4e3aXML/JSON\u683c\u5f0f\u7684\u8bf7\u6c42\u8fdb\u884c\u65ad\u8a00\u64cd\u4f5c\u3002

    \u5bfc\u5165\u6587\u6863\u6821\u9a8c\uff1a \u70b9\u51fb\u3010\u5bfc\u5165\u3011\u53ef\u5bfc\u5165\u9700\u65ad\u8a00 Json/xml \u6570\u636e\uff0c\u81ea\u52a8\u751f\u6210\u6587\u6863\u7ed3\u6784\u6821\u9a8c\u5143\u7d20\u8868\u683c\u3002\u53ef\u4ee5\u81ea\u5b9a\u4e49\u8bbe\u7f6e \u6821\u9a8c\u89c4\u5219\u3002 \u8ddf\u968f API \u5b9a\u4e49\uff1a\u662f API \u54cd\u5e94\u4f53\u8bbe\u7f6e\u8fd4\u56de\u503c\u4e00\u81f4\uff0c\u52fe\u9009\u3010\u8ddf\u968fAPI\u5b9a\u4e49\u3011\u53ef\u4ee5\u81ea\u52a8\u751f\u6210\u5185\u5bb9\u6821\u9a8c\u3002

    "},{"location":"user_manual/api_test/api_step/#57","title":"5.7 \u811a\u672c\u65ad\u8a00","text":"

    \u5f53\u5e38\u89c4\u65ad\u8a00\u65e0\u6cd5\u6ee1\u8db3\u9700\u6c42\u65f6\uff0c\u53ef\u4ee5\u9009\u62e9\u811a\u672c\u65ad\u8a00\uff0c\u5373\u9009\u62e9\u5408\u9002\u7684\u8bed\u8a00\u7f16\u5199\u811a\u672c\u6765\u5bf9\u7ed3\u679c\u8fdb\u884c\u5224\u65ad\u3002

    • \u4e0e\u524d\u540e\u7f6e\u811a\u672c\u4e00\u6837\uff0c\u811a\u672c\u5728\u52a0\u8f7d\u524d\u5df2\u7ecf\u5185\u7f6e\u4e86\u90e8\u5206\u53d8\u91cf\uff0c\u76ee\u524d\u652f\u6301 BeanShell\u3001Groovy\u3001Python \u3001javascript \u811a\u672c\u8bed\u8a00\u3002\u9664\u4e86\u5728\u4e4b\u524d\u5df2\u7ecf\u4ecb\u7ecd\u8fc7\u7684\u53d8\u91cf\u5916\uff0c\u811a\u672c\u65ad\u8a00\u4e2d\u7684\u811a\u672c\u8fd8\u989d\u5916\u63d0\u4f9b\u4e86\u65ad\u8a00\u7ed3\u679c\u5bf9\u8c61AssertionResult\uff0c\u901a\u8fc7 AssertionResult.setFailure(true) \u65b9\u6cd5\u8bbe\u7f6e\u65ad\u8a00\u662f\u5426\u6210\u529f\uff0c\u901a\u8fc7 AssertionResult.setFailureMessage(\"message\") \u65b9\u6cd5\u8bbe\u7f6e\u65ad\u8a00\u5931\u8d25\u63d0\u793a\u4fe1\u606f\u3002

    "},{"location":"user_manual/api_test/api_step/#6","title":"6 \u63d0\u53d6\u53c2\u6570","text":"

    \u63d0\u53d6\u53c2\u6570\u4e3b\u8981\u7528\u4e8e\u4ece\u8bf7\u6c42\u54cd\u5e94\u4e2d\u63d0\u53d6\u7279\u5b9a\u8fd4\u56de\u503c\u5e76\u5b58\u50a8\u5230\u53d8\u91cf\u4e2d\uff0c\u4fbf\u4e8e\u5728\u540e\u7eed\u7684\u6b65\u9aa4\u4e2d\u5f15\u7528\u8be5\u8fd4\u56de\u503c\u3002 MeterSphere\u5df2\u652f\u6301\u7684\u63d0\u53d6\u53c2\u6570\u65b9\u5f0f\u5305\u62ec\uff1a

    • \u6b63\u5219
    • JSONPath
    • XPath

    "},{"location":"user_manual/api_test/api_step/#61","title":"6.1 \u6b63\u5219\u63d0\u53d6","text":"

    \u6b63\u5219\u63d0\u53d6\u9002\u7528\u4e8e\u8bf7\u6c42\u975e JSON\u3001XML\u3001HTML \u6807\u51c6\u4e14\u5e38\u89c1\u7684\u7ed3\u6784\u5316\u6587\u672c\u7684\u54cd\u5e94\u5185\u5bb9\u3002

    • \u5bf9\u8c61\uff1a\u652f\u6301 Body\uff0cRequest Headers\uff0cResponse Headers\uff0cURL\uff0cResponse Code\uff0cResponse Message
    • \u53d8\u91cf\u540d\uff1a\u4fdd\u5b58\u63d0\u53d6\u503c\u7684\u53d8\u91cf\u540d\uff0c\u540e\u7eed\u53ef\u4ee5\u901a\u8fc7 ${varName} \u5f62\u5f0f\u5f15\u7528\u5230\uff0c\u5982\u679c\u9009\u62e9\u4e86 \u3010\u5339\u914d\u591a\u4e2a\u3011\u53ef\u4ee5\u901a\u8fc7 ${varName_matchNr} \u83b7\u53d6\u5230\u5339\u914d\u7684\u603b\u4e2a\u6570\uff0c\u901a\u8fc7 ${varName_n} \u4f9d\u6b21\u83b7\u53d6\u5230\u6bcf\u4e2a\u5339\u914d\u503c\u3002
    • Perl\u578b\u6b63\u5219\u8868\u8fbe\u5f0f\uff1a\u63d0\u53d6\u7279\u5b9a\u503c\u4f7f\u7528\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\uff0c\u5c06\u63d0\u53d6\u6b63\u5219\u8868\u8fbe\u5f0f\u4e2d\u7684\u7b2c\u4e00\u4e2a\u7ec4\u3002

    \u8bf7\u6c42\u7684\u54cd\u5e94\u4f53\uff1a

    id=\"ddc86657-d402-4c10-b458-2ba2e4604cef\"&name=\"myorg\"&description=\"test org\"\n
    \u63d0\u53d6\u9700\u6c421\uff1a\u54cd\u5e94\u4f53\u4e2d name \u5b57\u6bb5\u7684\u503c\u3002

    \u63d0\u53d6\u914d\u7f6e\uff1a

    • \u5bf9\u8c61\uff1aBody
    • \u53d8\u91cf\u540d\uff1aname
    • Perl\u578b\u6b63\u5219\u8868\u8fbe\u5f0f\uff1aname=\"(.*?)\"
    "},{"location":"user_manual/api_test/api_step/#62-jsonpath","title":"6.2 JSONPath \u63d0\u53d6","text":"

    JSONPath \u63d0\u53d6\u9002\u7528\u4e8e\u54cd\u5e94\u5185\u5bb9\u662f JSON \u683c\u5f0f\u7684\u54cd\u5e94\u5185\u5bb9\u7684\u5904\u7406\uff0c\u53ef\u4ee5\u65b9\u4fbf\u5730\u901a\u8fc7 JSONPath \u8868\u8fbe\u5f0f\u5b9a\u4f4d\u5230\u7279\u5b9a\u5b57\u6bb5\u8fdb\u884c\u63d0\u53d6\u3002

    • \u53d8\u91cf\u540d\uff1a\u4fdd\u5b58\u63d0\u53d6\u503c\u7684\u53d8\u91cf\u540d\uff0c\u540e\u7eed\u53ef\u4ee5\u901a\u8fc7 ${varName} \u5f62\u5f0f\u5f15\u7528\u5230\uff0c\u5982\u679c\u9009\u62e9\u4e86\u3010\u5339\u914d\u591a\u4e2a\u3011\uff0c\u53ef\u4ee5\u901a\u8fc7 ${varName_matchNr} \u83b7\u53d6\u5230\u5339\u914d\u7684\u603b\u4e2a\u6570\uff0c\u901a\u8fc7 ${varName_n} \u4f9d\u6b21\u83b7\u53d6\u5230\u6bcf\u4e2a\u5339\u914d\u503c\u3002
    • JSONPath\u8868\u8fbe\u5f0f\uff1aJSONPath \u8868\u8fbe\u5f0f\uff0c\u901a\u8fc7\u8be5\u8868\u8fbe\u5f0f\u5b9a\u4f4d\u5230\u8981\u63d0\u53d6\u7684\u5b57\u6bb5\u3002

    \u8bf7\u6c42\u7684\u54cd\u5e94\u4f53\uff1a

    {\n    \"success\": true,\n    \"message\": null,\n    \"data\": {\n        \"id\": \"ddc86657-d402-4c10-b458-2ba2e4604cef\",\n        \"name\": \"myorg\",\n        \"description\": \"form api\",\n        \"createTime\": 1611154807818,\n        \"updateTime\": 1611154807818\n    }\n}\n
    \u63d0\u53d6\u9700\u6c42\uff1a\u63d0\u53d6\u54cd\u5e94\u4f53 data \u4e2d\u7684 name \u5b57\u6bb5\u5e76\u5b58\u50a8\u5728 name \u53d8\u91cf\u4e2d\u3002 \u63d0\u53d6\u914d\u7f6e\uff1a

    • \u53d8\u91cf\u540d\uff1aname
    • JSONPath \u8868\u8fbe\u5f0f\uff1a$.data.name
    "},{"location":"user_manual/api_test/api_step/#63-xpath","title":"6.3 XPath \u63d0\u53d6","text":"

    XPath \u63d0\u53d6\u9002\u7528\u4e8e\u5904\u7406 XML\u3001HTML \u7b49\u683c\u5f0f\u7684\u54cd\u5e94\u5185\u5bb9\uff0c\u53ef\u4ee5\u65b9\u4fbf\u5730\u901a\u8fc7 XPath \u8868\u8fbe\u5f0f\u5b9a\u4f4d\u5230\u7279\u5b9a\u5b57\u6bb5\u8fdb\u884c\u63d0\u53d6\u3002

    • \u53d8\u91cf\u540d\uff1a\u4fdd\u5b58\u63d0\u53d6\u503c\u7684\u53d8\u91cf\u540d\uff0c\u540e\u7eed\u53ef\u4ee5\u901a\u8fc7 ${varName} \u5f62\u5f0f\u5f15\u7528\u5230\uff0c\u5982\u679c\u9009\u62e9\u4e86\u3010\u5339\u914d\u591a\u4e2a\u3011\uff0c\u53ef\u4ee5\u901a\u8fc7 ${varName_matchNr} \u83b7\u53d6\u5230\u5339\u914d\u7684\u603b\u4e2a\u6570\uff0c\u901a\u8fc7 ${varName_n} \u4f9d\u6b21\u83b7\u53d6\u5230\u6bcf\u4e2a\u5339\u914d\u503c\u3002
    • XPath\u8868\u8fbe\u5f0f\uff1a\u9700\u8981\u8fdb\u884c\u5339\u914d\u7684 XPath \u8868\u8fbe\u5f0f\u3002

    \u793a\u4f8b

    \u8bf7\u6c42\u7684\u54cd\u5e94\u4f53\uff1a

    <root xmlns:foo=\"http://www.foo.org/\" xmlns:bar=\"http://www.bar.org\">\n    <employees>\n        <employee id=\"1\">Johnny Dapp</employee>\n        <employee id=\"2\">Al Pacino</employee>\n        <employee id=\"3\">Robert De Niro</employee>\n        <employee id=\"4\">Kevin Spacey</employee>\n        <employee id=\"5\">Denzel Washington</employee>\n    </employees>\n    <foo:companies>\n        <foo:company id=\"6\">Tata Consultancy Services</foo:company>\n        <foo:company id=\"7\">Wipro</foo:company>\n        <foo:company id=\"8\">Infosys</foo:company>\n        <foo:company id=\"9\">Microsoft</foo:company>\n        <foo:company id=\"10\">IBM</foo:company>\n        <foo:company id=\"11\">Apple</foo:company>\n        <foo:company id=\"12\">Oracle</foo:company>\n    </foo:companies>\n</root>\n
    \u63d0\u53d6\u9700\u6c42\uff1a\u63d0\u53d6\u54cd\u5e94\u4f53\u4e2d\u7684 id \u4e3a 3 \u7684\u5458\u5de5\u7684\u59d3\u540d\uff0c\u5373\u4e0a\u8ff0\u54cd\u5e94\u4e2d\u7684 Robert De Niro\uff0c\u5e76\u5b58\u50a8\u5728 employeeName \u53d8\u91cf\u4e2d\u3002

    \u63d0\u53d6\u914d\u7f6e\uff1a

    • \u53d8\u91cf\u540d\uff1aemployeeName
    • XPath \u8868\u8fbe\u5f0f\uff1astring(//employee[@id='3'])
    "},{"location":"user_manual/api_test/functions/","title":"\u5185\u7f6e\u51fd\u6570","text":""},{"location":"user_manual/api_test/functions/#1","title":"1 \u5185\u7f6e\u51fd\u6570\u6982\u8ff0","text":"

    MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u57fa\u4e8e JMeter \u5b9e\u73b0\uff0c\u56e0\u6b64 JMeter \u4e2d\u7684\u5185\u7f6e\u51fd\u6570\u53ca\u53d8\u91cf\u5728 MeterSphere \u4e2d\u90fd\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\u3002\u5185\u7f6e\u51fd\u6570\u53ca\u53d8\u91cf\u53ef\u5e94\u7528\u4e8eQUERY \u53c2\u6570\u3001REST \u53c2\u6570\u3001\u8bf7\u6c42\u4f53\u3001\u524d\u540e\u7f6e\u811a\u672c\u7b49\u3002 \u5185\u7f6e\u51fd\u6570\u4e00\u822c\u4ee5\u4e24\u4e2a\u4e0b\u5212\u7ebf\u5f00\u5934\uff0c\u5e76\u4f7f\u7528\u7c7b\u4f3c ${__functionName(var1,var2,var3)} \u7684\u5f62\u5f0f\u8c03\u7528\u3002\u5176\u4e2d __functionName \u4ee3\u8868\u51fd\u6570\u540d\uff0cvar1\uff0cvar2 \u548c var3 \u5206\u522b\u662f\u4f20\u7ed9\u8be5\u51fd\u6570\u7684\u4e09\u4e2a\u53c2\u6570\u3002 \u53d8\u91cf\u53ef\u4ee5\u901a\u8fc7\u7c7b\u4f3c ${varName} \u7684\u5f62\u5f0f\u5f15\u7528\uff0c\u5176\u4e2d varName \u4ee3\u8868\u53d8\u91cf\u540d\u3002\u4f8b\u5982\uff1a\u751f\u62101\u5230100\u7684\u968f\u673a\u6570\u4f7f\u7528\u8868\u8fbe\u5f0f\uff1a${__Random(1,100)}\u3002

    "},{"location":"user_manual/api_test/functions/#2","title":"2 \u5185\u7f6e\u51fd\u6570\u5217\u8868","text":"\u51fd\u6570\u7c7b\u578b \u51fd\u6570\u540d\u79f0 \u51fd\u6570\u8bf4\u660e Information threadNum get thread number Information threadGroupName get thread group name Information samplerName get the sampler name (label) Information machineIP get the local machine IP address Information machineName get the local machine name Information time return current time in various formats Information timeShift return a date in various formats with the specified amount of seconds/minutes/hours/days added Information log log (or display) a message (and return the value) Information logn log (or display) a message (empty return value) Input StringFromFile read a line from a file Input FileToString read an entire file Input CSVRead read from CSV delimited file Input XPath Use an XPath expression to read from a file Input StringToFile write a string to a file Calculation counter generate an incrementing number Formatting dateTimeConvert Convert a date or time from source to target format Calculation digest Generate a digest (SHA-1, SHA-256, MD5...) Calculation intSum add int numbers Calculation longSum add long numbers Calculation Random generate a random number Calculation RandomDate generate random date within a specific date range Calculation RandomFromMultipleVars extracts an element from the values of a set of variables separated by | Calculation RandomString generate a random string Calculation UUID generate a random type 4 UUID Scripting groovy run an Apache Groovy script Scripting BeanShell run a BeanShell script Scripting javaScript process JavaScript (Nashorn) Scripting jexl2 evaluate a Commons Jexl2 expression Scripting jexl3 evaluate a Commons Jexl3 expression Properties isPropDefined Test if a property exists Properties property read a property Properties P read a property (shorthand method) Properties setProperty set a JMeter property Variables split Split a string into variables Variables eval evaluate a variable expression Variables evalVar evaluate an expression stored in a variable Properties isVarDefined Test if a variable exists Variables V evaluate a variable name String char generate Unicode char values from a list of numbers String changeCase Change case following different modes String escapeHtml Encode strings using HTML encoding String escapeOroRegexpChars quote meta chars used by ORO regular expression String escapeXml Encode strings using XMl encoding String regexFunction parse previous response using a regular expression String unescape Process strings containing Java escapes (e.g. \\n & \\t) String unescapeHtml Decode HTML-encoded strings String urldecode Decode a application/x-www-form-urlencoded string String urlencode Encode a string to a application/x-www-form-urlencoded string String TestPlanName Return name of current test plan"},{"location":"user_manual/api_test/home/","title":"\u9996\u9875","text":"

    \u63a5\u53e3\u6d4b\u8bd5\u3010\u9996\u9875\u3011\u7528\u4e8e\u5c55\u793a\u73b0\u6709\u9879\u76ee\u7684\u63a5\u53e3\u6570\u91cf\u3001\u63a5\u53e3\u7528\u4f8b\u6570\u91cf\u3001\u573a\u666f\u7528\u4f8b\u6570\u91cf\u3001\u573a\u666f\u5b9a\u65f6\u4efb\u52a1\u6570\u91cf\u3001\u8fc7\u53bb7\u5929\u6709\u66f4\u65b0\u63a5\u53e3\u3001\u8fd0\u884c\u4e2d\u7684\u5b9a\u65f6\u4efb\u52a1\u4fe1\u606f\uff0c\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u4e86\u89e3\u5f53\u524d\u9879\u76ee\u63a5\u53e3\u6d4b\u8bd5\u60c5\u51b5\u3002

    "},{"location":"user_manual/api_test/intro/","title":"\u6982\u8ff0","text":"

    \u4ece\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011\u83dc\u5355\u8fdb\u5165\u63a5\u53e3\u6d4b\u8bd5\u529f\u80fd\u6a21\u5757\uff0c\u8be5\u6a21\u5757\u7531\u9996\u9875\u3001\u63a5\u53e3\u5b9a\u4e49\u3001\u63a5\u53e3\u81ea\u52a8\u5316\u3001\u6d4b\u8bd5\u62a5\u544a\u56db\u90e8\u5206\u7ec4\u6210\u3002

    \u9996\u9875\uff1a\u5c55\u793a\u5f53\u524d\u9879\u76ee\u7684\u63a5\u53e3\u6570\u91cf\u3001\u63a5\u53e3\u7528\u4f8b\u6570\u91cf\u3001\u81ea\u52a8\u5316\u573a\u666f\u6570\u91cf\u3001\u573a\u666f\u5b9a\u65f6\u4efb\u52a1\u6570\u91cf\u3001\u63a5\u53e3\u8986\u76d6\u5ea6\u3001\u7528\u4f8b\u8986\u76d6\u5ea6\u7b49\u4fe1\u606f\uff0c\u8fc7\u53bb 7 \u5929\u6709\u66f4\u65b0\u7684\u63a5\u53e3\u3001\u8fd0\u884c\u4e2d\u7684\u5b9a\u65f6\u4efb\u52a1\uff0c\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u5f53\u524d\u9879\u76ee\u63a5\u53e3\u6d4b\u8bd5\u60c5\u51b5\u3002 \u63a5\u53e3\u5b9a\u4e49\uff1a\u53ef\u7528\u4e8e\u7ba1\u7406\u63a5\u53e3\u3001\u63a5\u53e3\u7528\u4f8b\uff0c\u5e76\u6267\u884c\u8c03\u8bd5\u7b49\u6d4b\u8bd5\u5de5\u4f5c\u3002\u5176\u4e2d\u63a5\u53e3\u5b9a\u4e49\u652f\u6301 HTTP\u3001TCP\u3001SQL\u3001DUBBO \u534f\u8bae\uff0c\u5bfc\u5165\u652f\u6301\u624b\u52a8\u5f55\u5165\uff0c\u4e5f\u652f\u6301\u5bfc\u5165\u4f01\u4e1a\u73b0\u6709\u7684\u63a5\u53e3\u6d4b\u8bd5\u5de5\u5177\u4e2d\u7684\u63a5\u53e3\uff0c\u5982 MeterSphere \u683c\u5f0f\u3001Postman \u683c\u5f0f\u3001Swagger \u683c\u5f0f\u3001HAR \u683c\u5f0f\u3001JMeter \u683c\u5f0f\u7b49\u3002\u540c\u65f6\u4e5f\u652f\u6301\u4f7f\u7528 Chrome \u63d2\u4ef6\u5f55\u5236\u63a5\u53e3\uff0c\u53ef\u4ee5\u5feb\u901f\u5f55\u5236\u63a5\u53e3\u5e76\u5bfc\u5165\u81f3 MeterSphere \u5e73\u53f0\u63d0\u9ad8\u521b\u5efa\u63a5\u53e3\u6548\u7387\uff0c\u63a5\u53e3\u5f55\u5236\u5de5\u5177\u53ef\u5230 GitHub \u7f51\u7ad9 MeterSphere \u9879\u76ee\u4e0b\u8f7d\uff0c\u5177\u4f53\u7528\u6cd5\u53ef\u53c2\u8003 MeterSphere \u6d4f\u89c8\u5668\u63d2\u4ef6\u3002 \u63a5\u53e3\u81ea\u52a8\u5316\uff1a\u7528\u4e8e\u573a\u666f\u7ea7\u81ea\u52a8\u5316\u6d4b\u8bd5\u5de5\u4f5c\uff0c\u80fd\u591f\u7f16\u6392\u7ec4\u5408\u591a\u4e2a\u63a5\u53e3\u5b9e\u73b0\u4e00\u4e2a\u573a\u666f\u7684\u6d4b\u8bd5\uff1b\u5728\u573a\u666f\u4e2d\u652f\u6301\u81ea\u7531\u6dfb\u52a0\u63a5\u53e3\u8bf7\u6c42\uff0c\u63d0\u4f9b\u53d8\u91cf\u63d0\u53d6\u3001\u54cd\u5e94\u65ad\u8a00\u3001\u524d\u540e\u7f6e\u811a\u672c\u3001\u903b\u8f91\u63a7\u5236\u5668\u7b49\u529f\u80fd\u3002\u63a5\u53e3\u81ea\u52a8\u5316\u652f\u6301\u7528\u6237\u5feb\u901f\u5bfc\u5165\u73b0\u6709\u7684 Postman \u63a5\u53e3\u6d4b\u8bd5\u96c6\u3001JMeter \u63a5\u53e3\u6d4b\u8bd5\u811a\u672c\u3001HAR \u811a\u672c\u3001 Chrome \u63d2\u4ef6\u5f55\u5236\u7684\u811a\u672c\u3002 \u6d4b\u8bd5\u62a5\u544a\uff1a\u5bf9\u63a5\u53e3\u6d4b\u8bd5\u7ed3\u679c\u8fdb\u884c\u53ef\u89c6\u5316\u7684\u7f8e\u89c2\u9875\u9762\u62a5\u544a\u5c55\u793a\uff0c\u652f\u6301\u62a5\u544a\u5206\u4eab\u3001\u5bfc\u51fa\u65b9\u4fbf\u5bf9\u6d4b\u8bd5\u7ed3\u679c\u8fdb\u884c\u5f52\u6863\u7559\u5b58\u3002

    "},{"location":"user_manual/api_test/test_report/","title":"\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a","text":"

    \u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a\u662f\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3001\u573a\u666f\u6267\u884c\u7684\u7ed3\u679c\u5c55\u793a\u3002\u5728\u6d4b\u8bd5\u62a5\u544a\u4e2d\u53ef\u4ee5\u67e5\u770b\u573a\u666f\u53ca\u7528\u4f8b\u6267\u884c\u5b8c\u6210\u7684\u8be6\u7ec6\u4fe1\u606f\uff0c\u5305\u542b\u63a5\u53e3\u8fd0\u884c\u73af\u5883\u3001\u8fd0\u884c\u8d44\u6e90\u6c60\u3001\u63a5\u53e3\u6210\u529f\u5931\u8d25\u6570\u636e\u5c55\u793a\u53ca\u63a7\u5236\u53f0\u65e5\u5fd7\u3002

    "},{"location":"user_manual/api_test/test_report/#1","title":"1 \u67e5\u770b\u6d4b\u8bd5\u62a5\u544a","text":"

    \u5728\u6d4b\u8bd5\u62a5\u544a\u5217\u8868\u4e2d\uff0c\u652f\u6301\u67e5\u770b\u7528\u4f8b\u3001\u573a\u666f\u62a5\u544a\u3002\u70b9\u51fb\u6307\u5b9a\u6d4b\u8bd5\u62a5\u544a\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u62a5\u544a\u8be6\u60c5\u3011\u6309\u94ae\uff0c\u8fdb\u5165\u62a5\u544a\u8be6\u60c5\u9875\u9762\u3002\u5728\u8be5\u9875\u9762\u4e2d\u53ef\u4ee5\u67e5\u770b\u8be5\u62a5\u544a\u7684\u8be6\u7ec6\u5185\u5bb9\uff0c\u5e76\u652f\u6301\u91cd\u547d\u540d\u3001\u5bfc\u51fa\u7b49\u64cd\u4f5c\u3002

    "},{"location":"user_manual/api_test/test_report/#2","title":"2 \u5bfc\u51fa\u548c\u5206\u4eab\u6d4b\u8bd5\u62a5\u544a","text":"

    \u5728\u6d4b\u8bd5\u62a5\u544a\u8be6\u60c5\u9875\u9762\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2\u3010\u5206\u4eab\u62a5\u544a\u3011\u751f\u6210\u4e00\u4e2a\u6709\u5b9e\u6548\u7684\u62a5\u544a\u5206\u4eab\u94fe\u63a5\u3002\u70b9\u51fb \u3010\u5bfc\u51fa\u62a5\u544a\u3011\u6309\u94ae\u5c06\u62a5\u544a\u5bfc\u51fa\u4e3a PDF \u683c\u5f0f\u3002

    "},{"location":"user_manual/api_test/test_report/#3","title":"3 \u5220\u9664\u6d4b\u8bd5\u62a5\u544a","text":"

    \u5728\u6d4b\u8bd5\u62a5\u544a\u5217\u8868\u4e2d\u70b9\u51fb\u6307\u5b9a\u6d4b\u8bd5\u62a5\u544a\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u5220\u9664\u3011\u6309\u94ae\u5220\u9664\u62a5\u544a\u3002

    \u5728\u6d4b\u8bd5\u62a5\u544a\u5217\u8868\u6279\u91cf\u52fe\u9009\uff0c\u70b9\u51fb\u5217\u8868\u4e09\u4e2a\u5c0f\u70b9\u3010...\u3011\u5373\u53ef\u51fa\u73b0\u3010\u6279\u91cf\u5220\u9664\u62a5\u544a\u3011\u83dc\u5355\uff0c\u70b9\u51fb\u53ef\u6279\u91cf\u5220\u9664\u6d4b\u8bd5\u62a5\u544a\u3002 \u3010\u6ce8\u610f\u3011 \u5220\u9664\u6d4b\u8bd5\u62a5\u544a\u540e\u65e0\u6cd5\u6062\u590d\uff0c\u8bf7\u8c28\u614e\u4f7f\u7528\u8be5\u529f\u80fd\u3002

    "},{"location":"user_manual/load_test/home/","title":"Home","text":"

    \u6027\u80fd\u6d4b\u8bd5\u7684\u9996\u9875\u4e3b\u8981\u7528\u4e8e\u5c55\u793a\u73b0\u6709\u9879\u76ee\u7684\u6d4b\u8bd5\u5217\u8868\u3001\u62a5\u544a\u3001\u6d4b\u8bd5\u65e5\u5386\u3001\u8fd0\u884c\u4e2d\u7684\u4efb\u52a1\u3002

    • \u6d4b\u8bd5\uff1a\u5c55\u793a\u6700\u8fd1 5 \u6b21\u6267\u884c\u7684\u6027\u80fd\u6d4b\u8bd5\u3002
    • \u62a5\u544a\uff1a\u5c55\u793a\u6700\u8fd1 5 \u6b21\u6267\u884c\u7684\u6027\u80fd\u6d4b\u8bd5\u6240\u751f\u6210\u7684\u62a5\u544a\u3002
    • \u6d4b\u8bd5\u65e5\u5386\uff1a\u6309\u65f6\u95f4\u7ef4\u5ea6\u5c55\u793a\u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u7684\u9891\u6b21\uff0c\u989c\u8272\u8d8a\u6df1\uff0c\u4ee3\u8868\u4f7f\u7528\u9891\u6b21\u8d8a\u9ad8\u3002

    "},{"location":"user_manual/load_test/intro/","title":"\u6982\u8ff0","text":"

    \u6027\u80fd\u6d4b\u8bd5\u7684\u9996\u9875\u4e3b\u8981\u7528\u4e8e\u5c55\u793a\u73b0\u6709\u9879\u76ee\u7684\u6d4b\u8bd5\u5217\u8868\u3001\u62a5\u544a\u3001\u6d4b\u8bd5\u65e5\u5386\u3001\u8fd0\u884c\u4e2d\u7684\u4efb\u52a1\u3002

    • \u6d4b\u8bd5\uff1a\u5c55\u793a\u6700\u8fd1 5 \u6b21\u6267\u884c\u7684\u6027\u80fd\u6d4b\u8bd5\u3002
    • \u62a5\u544a\uff1a\u5c55\u793a\u6700\u8fd1 5 \u6b21\u6267\u884c\u7684\u6027\u80fd\u6d4b\u8bd5\u6240\u751f\u6210\u7684\u62a5\u544a\u3002
    • \u6d4b\u8bd5\u65e5\u5386\uff1a\u6309\u65f6\u95f4\u7ef4\u5ea6\u5c55\u793a\u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u7684\u9891\u6b21\uff0c\u989c\u8272\u8d8a\u6df1\uff0c\u4ee3\u8868\u4f7f\u7528\u9891\u6b21\u8d8a\u9ad8\u3002

    \u3002

    "},{"location":"user_manual/load_test/load_test/","title":"\u6027\u80fd\u6d4b\u8bd5","text":"

    MeterSphere \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\u652f\u6301\u7528\u6237\u901a\u8fc7\u5df2\u6709\u7684\u63a5\u53e3\u6d4b\u8bd5\u521b\u5efa\u6216\u76f4\u63a5\u4e0a\u4f20 JMX \u811a\u672c\u6765\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\uff0c\u5e76\u6309\u9700\u8c03\u6574\u5e76\u53d1\u7528\u6237\u6570\u7b49\u538b\u529b\u53c2\u6570\u3002

    "},{"location":"user_manual/load_test/load_test/#1","title":"1 \u521b\u5efa\u6d4b\u8bd5\u8d44\u6e90\u6c60","text":"

    \u901a\u8fc7\u5b89\u88c5\u5305\u5b89\u88c5 MeterSphere \u540e\uff0c\u7cfb\u7edf\u9ed8\u8ba4\u4f7f\u7528\u5f53\u524d\u8282\u70b9\u521b\u5efa\u4e86\u540d\u4e3a\u3010LOCAL\u3011\u6d4b\u8bd5\u8d44\u6e90\u6c60\u3002\u5173\u4e8e\u6d4b\u8bd5\u8d44\u6e90\u6c60\u7684\u4f5c\u7528\u8bf7\u53c2\u8003 FAQ\u3002 \u5982\u679c\u9700\u8981\u521b\u5efa\u65b0\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\uff0c\u6216\u5411\u5df2\u6709\u8d44\u6e90\u6c60\u4e2d\u6dfb\u52a0\u8282\u70b9\uff0c\u8bf7\u53c2\u8003 \u5982\u4f55\u5411\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u6dfb\u52a0\u8282\u70b9\uff1f\u3002

    "},{"location":"user_manual/load_test/load_test/#2-url","title":"2 \u4fee\u6539\u5f53\u524d\u7ad9\u70b9 URL","text":"

    \u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u8fc7\u7a0b\u4e2d node-controller \u8282\u70b9\u9700\u8981\u901a\u8fc7\u914d\u7f6e\u7684\u3010\u5f53\u524d\u7ad9\u70b9URL\u3011\u4e0b\u8f7d JMX \u7b49\u6d4b\u8bd5\u8d44\u6e90\u6587\u4ef6\u3002\u5728\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u524d\u9700\u8981\u914d\u7f6e\u5e76\u68c0\u67e5\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u7684\u8282\u70b9\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u5230\u8be5 URL\uff0cURL \u503c\u4e00\u822c\u4e3a\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee MeterSphere \u7684\u5730\u5740\u3002

    "},{"location":"user_manual/load_test/load_test/#3","title":"3 \u521b\u5efa\u6027\u80fd\u6d4b\u8bd5","text":"

    \u8fdb\u5165\u3010\u6027\u80fd\u6d4b\u8bd5-\u6d4b\u8bd5\u3011\u9875\u9762\uff0c\u53ef\u9009\u62e9\u7248\u672c\u7ba1\u7406 (X-Pack)\u3002

    \u70b9\u51fb\u3010\u521b\u5efa\u6d4b\u8bd5\u3011\u8fdb\u5165\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u521b\u5efa\u9875\u9762\uff0c\u6216\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u8fdb\u5165\u6027\u80fd\u6d4b\u8bd5\u8be6\u60c5\u9875\uff0c\u5176\u754c\u9762\u5305\u542b\u591a\u4e2a\u9875\u7b7e\uff1a\u3010\u573a\u666f\u914d\u7f6e\u3011\u3001\u3010\u538b\u529b\u914d\u7f6e\u3011\u3001\u3010\u9ad8\u7ea7\u914d\u7f6e\u3011\u7b49\u3002

    "},{"location":"user_manual/load_test/load_test/#4","title":"4 \u573a\u666f\u914d\u7f6e","text":"

    \u573a\u666f\u914d\u7f6e\u9700\u8981\u586b\u5199\u5185\u5bb9\u5305\u62ec\u6d4b\u8bd5\u540d\u79f0\u3001\u4e0a\u4f20\u6d4b\u8bd5\u811a\u672c\u6216\u5f15\u7528\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u3001\u4e0a\u4f20\u5176\u4ed6\u6027\u80fd\u6d4b\u8bd5\u8f85\u52a9\u6587\u4ef6\uff08jar \u5305\u3001cvs\u3001excel\u3001word\u3001pdf \u7b49\u6587\u4ef6\uff09\u3002 \u6027\u80fd\u6d4b\u8bd5\u811a\u672c\u652f\u6301\u5bfc\u5165 JMeter JMX\u6d4b\u8bd5\u8ba1\u5212\uff0c\u8fd8\u652f\u6301\u57fa\u4e8e\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u811a\u672c\u548c\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u4e00\u952e\u8f6c\u6027\u80fd\u6d4b\u8bd5\u3002

    • \u52a0\u8f7d\u6027\u80fd\u6d4b\u8bd5\u811a\u672c\uff1a\u5728\u3010\u573a\u666f\u5217\u8868\u3011\u4e2d\u70b9\u51fb\u3010\u5f15\u7528\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u3011\uff0c\u5c06\u5df2\u6709\u7684\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u6dfb\u52a0\u5230\u6027\u80fd\u6d4b\u8bd5\u4e2d\uff0c\u6216\u8005\u70b9\u51fb\u3010\u52a0\u8f7dJMX\u6587\u4ef6\u3011\u5c06JMeter\u811a\u672c\u76f4\u63a5\u5bfc\u5165\u5230\u6027\u80fd\u4e2d\u3002

    • \u7ebf\u7a0b\u7ec4\uff1a\u652f\u6301\u4e24\u79cd\u6a21\u5f0f\uff1a\u7ebf\u6027\u52a0\u538b\u6a21\u5f0f ThreadGroup\u548c\u9636\u68af\u52a0\u538b\u6a21\u5f0f ConcurrencyThreadGroup\u3002

    • \u52a0\u8f7d\u8d44\u6e90\u6587\u4ef6\uff1a\u5982\u679c\u6d4b\u8bd5\u4e2d\u6709\u4f7f\u7528 CSV \u53c2\u6570\u5316\u6216\u8005\u81ea\u5b9a\u4e49 jar \u5305\uff0c\u53ef\u70b9\u51fb\u3010\u52a0\u8f7d\u6587\u4ef6\u3011\u5c06 CSV \u6587\u4ef6\u6216\u8005 jar \u6dfb\u52a0\u5230\u5e73\u53f0\u3002

    "},{"location":"user_manual/load_test/load_test/#5","title":"5 \u538b\u529b\u914d\u7f6e","text":"

    \u6bcf\u4e00\u4e2a\u6027\u80fd\u6d4b\u8bd5\u573a\u666f\u811a\u672c\u90fd\u53ef\u4ee5\u5404\u81ea\u5206\u522b\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5\u538b\u529b\u8bbe\u7f6e\uff1a\u5e76\u53d1\u6570\u91cf\u3001\u538b\u6d4b\u65f6\u957f\u3001RPS \u4e0a\u9650\uff08\u6307\u7684\u662f\u540c\u4e00\u65f6\u523b\u6700\u9ad8\u7684\u5e76\u53d1\u6570\u91cf\uff09\u7b49\u914d\u7f6e\uff0c\u540c\u65f6\u53f3\u4fa7\u7edf\u8ba1\u56fe\u4f1a\u6839\u636e\u5de6\u4fa7\u7684\u8bbe\u7f6e\u5b9e\u65f6\u663e\u793a\u6bcf\u4e2a\u573a\u666f\u914d\u7f6e\u8d70\u52bf\u56fe\u3002\u70b9\u51fb\u3010\u538b\u529b\u914d\u7f6e\u3011\u8bbe\u7f6e\u538b\u6d4b\u57fa\u672c\u7684\u6d4b\u8bd5\u6570\u636e

    • \u8d44\u6e90\u6c60\uff1a\u6307\u5b9a\u6d4b\u8bd5\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\uff0c\u7cfb\u7edf\u652f\u6301\u72ec\u7acb\u4e3b\u673a\u548c K8s \u8d44\u6e90\u6c60\u914d\u7f6e\uff0c\u5176\u53ef\u7528\u8d44\u6e90\u6c60\u4f9d\u636e\u7cfb\u7edf\u7684\u8d44\u6e90\u6c60\u914d\u7f6e\u3002

    • \u6267\u884c\u987a\u5e8f\uff1a\u573a\u666f\u662f\u5426\u987a\u5e8f\u6267\u884c\uff1a\u56e0\u4e3a\u7cfb\u7edf\u652f\u6301\u591a\u573a\u666f\u7ec4\u5408\u538b\u6d4b\uff0c\u5bf9\u4e8e\u6709\u4e9b\u573a\u666f\u662f\u6709\u987a\u5e8f\u8981\u6c42\u7684\uff0c\u6b64\u9700\u8981\u628a\u5f00\u5173\u6253\u5f00\uff0c\u53ef\u4ee5\u907f\u514d\u811a\u672c 1 \u6ca1\u8dd1\u5b8c\uff0c\u811a\u672c 2 \u5c31\u542f\u52a8\u4e86\u3002

    • \u81ea\u52a8\u505c\u6b62\u5f00\u5173\uff1a\u8bbe\u7f6e\u6b64\u5f00\u5173\u5f00\u542f\u65f6\uff0c\u9700\u8981\u6307\u5b9a\u538b\u6d4b\u591a\u4e45\u540e\uff0c\u5f3a\u5236\u505c\u6b62\u6d4b\u8bd5\u3002

    • \u5e76\u53d1\u6570\uff1a\u6a21\u62df\u4e00\u5b9a\u6570\u91cf\u7528\u6237\u64cd\u4f5c\u7684\u4e00\u4e2a\u914d\u7f6e\u3002
    • \u53d6\u6837\u5668\u9519\u8bef\u540e\u7eed\u6267\u884c\u52a8\u4f5c\uff1a\u53d6\u6837\u5668\u9519\u8bef\u540e\uff0c\u63d0\u4f9b\u591a\u79cd\u5904\u7406\u65b9\u5f0f\u3002\u6bcf\u79cd\u65b9\u5f0f\u4f5c\u7528\u4ecb\u7ecd\u5982\u4e0b\uff1a
    • \u3010\u7ee7\u7eed\u3011\uff1a\u5ffd\u7565\u9519\u8bef\uff0c\u7ee7\u7eed\u6267\u884c\u3002
    • \u3010\u542f\u52a8\u4e0b\u4e00\u6b21\u5faa\u73af\u3011\uff1a\u5ffd\u7565\u9519\u8bef\uff0c\u7ebf\u7a0b\u5f53\u524d\u5faa\u73af\u7ec8\u6b62\uff0c\u6267\u884c\u4e0b\u4e00\u4e2a\u5faa\u73af\u3002
    • \u3010\u505c\u6b62\u7ebf\u7a0b\u3011\uff1a\u5f53\u524d\u7ebf\u7a0b\u505c\u6b62\u6267\u884c\uff0c\u4e0d\u5f71\u54cd\u5176\u4ed6\u7ebf\u7a0b\u6b63\u5e38\u6267\u884c\u3002
    • \u3010\u505c\u6b62\u6d4b\u8bd5\u3011\uff1a\u6574\u4e2a\u6d4b\u8bd5\u4f1a\u5728\u6240\u6709\u5f53\u524d\u6b63\u5728\u6267\u884c\u7684\u7ebf\u7a0b\u6267\u884c\u5b8c\u6bd5\u540e\u505c\u6b62\u3002
    • \u3010\u7acb\u5373\u505c\u6b62\u6d4b\u8bd5\u3011\uff1a\u6574\u4e2a\u6d4b\u8bd5\u4f1a\u7acb\u5373\u505c\u6b62\u6267\u884c\uff0c\u5f53\u524d\u6b63\u5728\u6267\u884c\u7684\u53d6\u6837\u5668\u53ef\u80fd\u4f1a\u88ab\u4e2d\u65ad\u3002

    • \u6267\u884c\u65b9\u5f0f\uff1a\u5982\u679c\u8bbe\u7f6e\u672c\u6b21\u538b\u6d4b\u9700\u8981\u6301\u7eed\u6267\u884c\u591a\u957f\u65f6\u95f4\uff0c\u538b\u6d4b\u8fd0\u884c\u65f6\u957f\u8fbe\u5230\u8bbe\u5b9a\u7684\u65f6\u95f4\u5c31\u505c\u6b62\u538b\u529b\u6d4b\u8bd5\u3002\u76ee\u524d\u7cfb\u7edf\u63d0\u4f9b\u6309\u5c0f\u65f6\u3001\u5206\u949f\u3001\u79d2\u6765\u8bbe\u7f6e\u3002\u8bbe\u7f6e\u672c\u6b21\u538b\u6d4b\u6267\u884c\u7684\u6b21\u6570\uff0c\u5e76\u4e14\u8bbe\u7f6e\u8fd0\u884c\u65f6\u95f4\uff0c\u538b\u6d4b\u8fd0\u884c\u6b21\u6570\u8fbe\u5230\u8bbe\u5b9a\u7684\u6b21\u6570\u6216\u8005\u5230\u8fbe\u8bbe\u7f6e\u8fd0\u884c\u7684\u65f6\u95f4\uff0c\u5c31\u505c\u6b62\u538b\u529b\u6d4b\u8bd5\u3002
    • \u3010\u6309\u6301\u7eed\u65f6\u95f4\u3011\uff1a\u8bbe\u7f6e\u672c\u6b21\u538b\u6d4b\u9700\u8981\u6301\u7eed\u6267\u884c\u591a\u957f\u65f6\u95f4\uff0c\u538b\u6d4b\u8fd0\u884c\u65f6\u957f\u8fbe\u5230\u8bbe\u5b9a\u7684\u65f6\u95f4\u5c31\u505c\u6b62\u538b\u529b\u6d4b\u8bd5\u3002\u76ee\u524d\u7cfb\u7edf\u63d0\u4f9b\u6309\u5c0f\u65f6\u3001\u5206\u949f\u3001\u79d2\u6765\u8bbe\u7f6e\u3002
    • \u3010\u6309\u8fed\u4ee3\u6b21\u6570\u3011\uff1a\u8bbe\u7f6e\u672c\u6b21\u538b\u6d4b\u6267\u884c\u7684\u6b21\u6570\uff0c\u5e76\u4e14\u8bbe\u7f6e\u8fd0\u884c\u65f6\u95f4\uff0c\u538b\u6d4b\u8fd0\u884c\u6b21\u6570\u8fbe\u5230\u8bbe\u5b9a\u7684\u6b21\u6570\u6216\u8005\u5230\u8fbe\u8bbe\u7f6e\u8fd0\u884c\u7684\u65f6\u95f4\uff0c\u5c31\u505c\u6b62\u538b\u529b\u6d4b\u8bd5\u3002

    • RPS\u8bbe\u7f6e\uff1a\u8bbe\u7f6e RPS \u65f6\uff0c\u9700\u8981\u5148\u6253\u5f00 RPS \u5f00\u5173\u624d\u53ef\u4ee5\uff0cRPS\uff08Requests per second\uff09\uff1a\u6bcf\u79d2\u8bf7\u6c42\u6570\u3002 \u5982\u679c\u8bbe\u7f6e\u4e86 RPS \u4e0a\u9650\uff0c\u5219\u53d1\u538b\u8fbe\u5230\u8fd9\u4e2a\u503c\u540e\uff0c\u5c31\u4e0d\u4f1a\u518d\u7ee7\u7eed\u52a0\u538b\u3002

    • Ramp-Up\u8bbe\u7f6e\uff1a\u662f\u5e76\u53d1\u7528\u6237\u6570\u5230\u8fbe\u6307\u5b9a\u4e2a\u6570\u6240\u82b1\u8d39\u7684\u65f6\u95f4\uff0cStep \u662f\u5206\u51e0\u6b65\u8fbe\u5230\u3002

    • \u5206\u914d\u7b56\u7565\uff1a\u9488\u5bf9\u6709\u591a\u4e2a\u8282\u70b9\u7684\u8d44\u6e90\u6c60\uff0cMeterSphere \u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u8bbe\u7f6e\u4e0d\u540c\u7684\u5206\u914d\u7b56\u7565\u3002\u76ee\u524d\u5206\u914d\u7b56\u7565\u652f\u6301\u81ea\u52a8\u5206\u914d\u3001\u56fa\u5b9a\u8282\u70b9\u3001\u4ee5\u53ca\u81ea\u5b9a\u4e49\u3002

    \uff081\uff09\u81ea\u52a8\u5206\u914d\uff1a\u7cfb\u7edf\u9ed8\u8ba4\u4e3a\u3010\u81ea\u52a8\u5206\u914d\u3011\uff0c\u5176\u6838\u5fc3\u903b\u8f91\u662f\u6309\u8d44\u6e90\u6c60\u8282\u70b9\u6700\u5927\u5e76\u53d1\u6570\u5360\u6bd4\u6bd4\u4f8b\u5206\u914d\uff0c\u6bd4\u5982\u3010\u6d4b\u8bd5\u8d44\u6e90\u6c60\u3011\u8bbe\u7f6e\u5982\u4e0b\u3002

    \uff082\uff09\u56fa\u5b9a\u8282\u70b9\uff1a\u5141\u8bb8\u7528\u6237\u6307\u5b9a\u538b\u6d4b\u4ec5\u4ec5\u5728\u67d0\u4e00\u4e2a\u8282\u70b9\u4e0a\u6267\u884c\u3002

    \uff083\uff09\u81ea\u5b9a\u4e49\uff1a\u652f\u6301\u7528\u6237\u6839\u636e\u9700\u8981\u81ea\u5b9a\u4e49\u6bcf\u4e2a\u8282\u70b9\u6267\u884c\u5206\u914d\u5360\u6bd4\u7684\u60c5\u51b5\u3002

    "},{"location":"user_manual/load_test/load_test/#6","title":"6 \u9ad8\u7ea7\u914d\u7f6e","text":"

    \u8fdb\u5165\u6027\u80fd\u6d4b\u8bd5\u811a\u672c\u7f16\u8f91\u9875\u9762\uff0c\u9009\u62e9\u3010\u9ad8\u7ea7\u914d\u7f6e\u3011\uff0c\u8fdb\u5165\u6027\u80fd\u6d4b\u8bd5\u9ad8\u7ea7\u914d\u7f6e\u9875\u9762\u3002\u9ad8\u7ea7\u8bbe\u7f6e\u5206\u4e3a\u591a\u90e8\u5206\uff1a\u5e38\u89c4\u3001\u57df\u540d\u7ed1\u5b9a\u3001CSVDataSet\u3001\u81ea\u5b9a\u4e49\u53d8\u91cf\u3001JMeter Properties\u3001System Properties\u3001\u76d1\u63a7\u7b49\u3002

    • \u5e38\u89c4\uff1a\u8fdb\u5165\u3010\u9ad8\u7ea7\u914d\u7f6e\u3011\u9875\u9762\uff0c\u6700\u4e0a\u9762\u7684\u8bbe\u7f6e\u53ef\u7406\u89e3\u4e3a\u5e38\u89c4\u4fe1\u606f\u8bbe\u7f6e\u90e8\u5206\uff0c\u6b64\u5305\u542b\u8bbe\u7f6e\u6d4b\u8bd5\u811a\u672c\u7684\u8fde\u63a5\u8d85\u65f6\u65f6\u95f4\u548c HTTP \u54cd\u5e94\u7801\u7b49\u4fe1\u606f\u3002\u4e0b\u9762\u4ecb\u7ecd\u90e8\u5206\u53c2\u6570\u4fe1\u606f\u3002

    • \u8d85\u65f6\u914d\u7f6e\uff1a\u8fde\u63a5\u8d85\u65f6\u662f\u8fde\u63a5\u65f6\u8d85\u8fc7\u8bbe\u7f6e\u7684\u65f6\u95f4\u5c31\u4e0d\u5728\u8fde\u63a5\uff0c\u54cd\u5e94\u8d85\u65f6\u662f\u7b49\u5f85\u54cd\u5e94\u65f6\u8d85\u8fc7\u8bbe\u7f6e\u7684\u65f6\u95f4\u5c31\u4e0d\u5728\u7b49\u5f85\u54cd\u5e94\u3002

    • \u805a\u5408\u65f6\u95f4\uff1a\u8868\u793a\u62a5\u544a\u91c7\u96c6\u65f6\u95f4\u4e5f\u53eb\u6253\u70b9\u65f6\u95f4\uff0c\u662f\u6307\u6d4b\u8bd5\u62a5\u544a\u5237\u65b0\u6570\u636e\u65f6\u95f4\u3002\u628a\u9f20\u6807\u653e\u5728\u3010\u805a\u5408\u65f6\u95f4\u3011\u540e\u7684\u3010i\u3011\u6309\u94ae\u4e0a\uff0c\u53ef\u4ee5\u770b\u5230\u7cfb\u7edf\u9ed8\u8ba4\u63d0\u4f9b\u4fe1\u606f\u8bf4\u660e\u3002

    • \u81ea\u5b9a\u4e49\u54cd\u5e94\uff1a\u8868\u793a\u6307\u5728\u8fd9\u91cc\u8bbe\u7f6e\u7684\u54cd\u5e94\u7801\uff0c\u5c31\u4e0d\u7edf\u8ba1\u4e3a\u5931\u8d25\u7684\u63a5\u53e3\u3002\u7cfb\u7edf\u652f\u6301\u6dfb\u52a0\u591a\u4e2a\u54cd\u5e94\u7801\uff0c\u6309\u9017\u53f7\u5206\u5272\u3002

    • \u57df\u540d\u7ed1\u5b9a\uff1a\u4f7f\u7528 JMeter \u7684\u65f6\u5019\u4f1a\u6d89\u53ca\u5230\u4f7f\u7528\u57df\u540d\u7684\u60c5\u51b5\uff0c\u4e3a\u4e86\u4f7f\u811a\u672c\u66f4\u5177\u6709\u901a\u7528\u6027\uff0c\u4ee5\u53ca\u53d1\u9001\u7ed9\u5176\u4ed6\u4eba\u65f6\uff0c\u811a\u672c\u4e00\u6837\u53ef\u4ee5\u76f4\u63a5\u8fd0\u884c\uff0c\u6545\u9700\u8981\u5728\u8fd0\u884c\u811a\u672c\u4e2d\u6dfb\u52a0 hosts \u5185\u5bb9\uff0c\u76f4\u63a5\u4ece JMeter \u4e2d\u83b7\u53d6\u3002

    • CSVDataSet\uff1a\u6027\u80fd\u6d4b\u8bd5\u65f6\u6240\u9700\u8981\u7684\u53c2\u6570\u6570\u636e\u6587\u4ef6\uff0c\u5982\u679c\u6240\u6709\u573a\u666f\u4f7f\u7528\u4e00\u4e2a\u7edf\u4e00\u7684\u53c2\u6570\u6587\u4ef6\uff0c\u4e3a\u4e86\u907f\u514d\u76f8\u540c\u7684\u53c2\u6570\u88ab\u4e0d\u540c\u7684\u573a\u666f\u5f15\u7528\u9020\u6210\u6d41\u7a0b\u5f02\u5e38\u3002\u7cfb\u7edf\u4f1a\u6839\u636e\u538b\u6d4b\u7b56\u7565\u81ea\u52a8\u6765\u5206\u5272 CSV \u6570\u636e\u6587\u4ef6\u91cc\u7684\u53c2\u6570\uff0c\u628a\u4e0d\u540c\u7684\u53c2\u6570\u5206\u914d\u7ed9\u4e0d\u540c\u7684\u4e1a\u52a1\u573a\u666f\u3002

    • \u81ea\u5b9a\u4e49\u53d8\u91cf\uff1a\u7cfb\u7edf\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u6027\u80fd\u6d4b\u8bd5\u811a\u672c\u91cc\u6240\u9700\u7684\u53d8\u91cf\u3002\u4e0d\u4f7f\u7528\u65f6\uff0c\u53ef\u4ee5\u5173\u95ed\u542f\u7528\u5f00\u5173\u3002

    • JMeter Properties\uff1a\u7cfb\u7edf\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u9700\u8981\u5173\u6ce8\u6216\u4f7f\u7528\u7684\u4efb\u4f55 JMeter Properties \u4fe1\u606f\u3002

    • System Properties\uff1a\u5982\u679c\u6027\u80fd\u6d4b\u8bd5\u6709\u7528\u5230\u8bc1\u4e66\uff0c\u9664\u4e86\u8981\u5728\u8d44\u6e90\u6587\u4ef6\u91cc\u6dfb\u52a0\u5916\uff0c\u8fd8\u8981\u5728 System_Properties \u91cc\u8fdb\u884c\u914d\u7f6e\u3002

    • \u76d1\u63a7\uff1a\u7cfb\u7edf\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u914d\u7f6e\u9700\u8981\u5173\u6ce8\u4efb\u4f55\u53d1\u538b\u7aef\u548c\u88ab\u6d4b\u670d\u52a1\u7684\u6d4b\u8bd5\u5b9e\u65f6\u76d1\u63a7\uff0c\u76ee\u524d\u5bf9\u4e8e\u88ab\u76d1\u63a7\u7cfb\u7edf\u9700\u8981\u5b89\u88c5 Prometheus \u7684\u76d1\u63a7\u63d2\u4ef6 node_export \u5e76\u542f\u52a8\u670d\u52a1\u3002

    • \u76d1\u63a7\u914d\u7f6e\uff1a\u70b9\u51fb\u3010\u9ad8\u7ea7\u914d\u7f6e-\u76d1\u63a7-\u6dfb\u52a0\u3011\uff0c\u53ef\u4ee5\u6307\u5b9a\u8981\u76d1\u63a7\u7684\u670d\u52a1\u5668\u6216\u538b\u6d4b\u8282\u70b9\uff0c\u8bbe\u7f6e\u8981\u76d1\u63a7\u7cfb\u7edf\u7684\u76f8\u5173\u4fe1\u606f\u3002\u70b9\u51fb\u3010\u786e\u8ba4\u3011\u5b8c\u6210\u8bbe\u7f6e\u3002

    "},{"location":"user_manual/load_test/load_test/#7","title":"7 \u6027\u80fd\u6d4b\u8bd5\u7ef4\u62a4\u7ba1\u7406","text":"
    • \u4fdd\u5b58\u548c\u6267\u884c\uff1a\u5b8c\u6210\u6027\u80fd\u6d4b\u8bd5\u4ee5\u4e0a\u7684\u76f8\u5173\u914d\u7f6e\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5b8c\u6210\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u7684\u521b\u5efa\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u5e76\u6267\u884c\u3011\u7cfb\u7edf\u4f1a\u5728\u4fdd\u5b58\u540e\uff0c\u76f4\u63a5\u8fd0\u884c\u8be5\u6027\u80fd\u6d4b\u8bd5\u3002
    • \u6027\u80fd\u5217\u8868\uff1a\u5728\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u4e2d\u53ef\u67e5\u770b\u5230\u521b\u5efa\u7684\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u6267\u884c\u3011\u3001\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u548c\u3010\u5220\u9664\u3011\u53ef\u5bf9\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u8fdb\u884c\u76f8\u5e94\u7684\u64cd\u4f5c\u3002
    • \u5b9a\u65f6\u4efb\u52a1\uff1a\u70b9\u51fb\u3010\u5b9a\u65f6\u4efb\u52a1\u3011\u53ef\u8bbe\u7f6e\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u7684\u5b9a\u65f6\u4efb\u52a1\u3002

    \u914d\u7f6e\u5b9a\u65f6\u4efb\u52a1\u5e76\u5f00\u542f\uff1a

    \u914d\u7f6e\u5b9a\u65f6\u4efb\u52a1\u901a\u77e5\uff1a

    • \u6027\u80fd\u6d4b\u8bd5\u6267\u884c\uff1a\u70b9\u51fb\u3010\u4fdd\u5b58\u5e76\u6267\u884c\u3011\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5\u7684\u6267\u884c\uff0c\u6267\u884c\u5b8c\u6210\u540e\u53ef\u5b9e\u65f6\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\uff0c\u5728\u6d4b\u8bd5\u62a5\u544a\u4e2d\u53ef\u70b9\u51fb\u3010\u7acb\u5373\u505c\u6b62\u3011\u7ec8\u6b62\u6027\u80fd\u6d4b\u8bd5\uff0c\u53ef\u70b9\u51fb\u3010\u518d\u6b21\u6267\u884c\u3011\u3001\u3010\u5bfc\u51fa\u62a5\u544a\u3011\u548c\u3010\u4e0b\u8f7dJTL\u3011\u7b49\u64cd\u4f5c\u529f\u80fd\uff0c\u5bf9\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u548c\u62a5\u544a\u8fdb\u884c\u76f8\u5e94\u7684\u64cd\u4f5c\u3002

    • \u53d8\u66f4\u8bb0\u5f55\uff1a\u5728\u6027\u80fd\u6d4b\u8bd5\u811a\u672c\u4e2d\u4e5f\u53ef\u4ee5\u67e5\u770b\u3010\u53d8\u66f4\u8bb0\u5f55\u3011\u3002

    • \u7248\u672c\u7ba1\u7406 (X-Pack)\uff1a\u6027\u80fd\u6d4b\u8bd5\u811a\u672c\u4e2d\u4e5f\u53ef\u4ee5\u8fdb\u884c\u3010\u7248\u672c\u7ba1\u7406\u3011\u3002

    • \u540c\u6b65\u53d8\u66f4\u573a\u666f\u6d4b\u8bd5\uff1a\u5f53\u6027\u80fd\u6d4b\u8bd5\u573a\u666f\u6709\u66f4\u65b0\u65f6\uff0c\u5728\u6027\u80fd\u6d4b\u8bd5\u9875\u9762\u53ef\u70b9\u51fb\u3010\u540c\u6b65\u53d8\u66f4\u573a\u666f\u6d4b\u8bd5\u3011\u6309\u94ae\u8fdb\u884c\u540c\u6b65\u66f4\u65b0\u3002

    "},{"location":"user_manual/load_test/test_report/","title":"\u6027\u80fd\u6d4b\u8bd5\u62a5\u544a","text":""},{"location":"user_manual/load_test/test_report/#1","title":"1 \u62a5\u544a","text":"

    \u5bf9\u4e8e\u6027\u80fd\u6d4b\u8bd5\u63d0\u4f9b\u4e86\u4e0d\u540c\u7684\u7ba1\u7406\u529f\u80fd\uff0c\u5982\uff1a - \u3010\u7acb\u5373\u505c\u6b62\u3011\uff1a\u5bf9\u8fdb\u884c\u4e2d\u7684\u6027\u80fd\u6d4b\u8bd5\uff0c\u53ef\u4ee5\u624b\u52a8\u8fdb\u884c\u505c\u6b62\u6267\u884c\u3002 - \u3010\u518d\u6b21\u6267\u884c\u3011\uff1a\u518d\u6b21\u6267\u884c\u8be5\u6027\u80fd\u6d4b\u8bd5\u3002 - \u3010\u5bfc\u51fa\u62a5\u544a\u3011\uff1a\u53ef\u5c06\u62a5\u544a\u8fdb\u884c\u5bfc\u51fa\u6210 PDF\u3002 - \u3010\u62a5\u544a\u5bf9\u6bd4\u3011\uff1a\u53ef\u5bf9\u8fd1\u51e0\u6b21\u6d4b\u8bd5\u62a5\u544a\u8fdb\u884c\u6bd4\u5bf9\u3002 - \u3010\u4e0b\u8f7d JTL\u3011\uff1a\u53ef\u4e0b\u8f7d JTL \u6587\u4ef6\u3002 - \u3010\u4e0b\u8f7d\u6267\u884c\u6587\u4ef6\u3011\uff1a\u53ef\u4e0b\u8f7d\u6267\u884c\u6587\u4ef6(\u5305\u62ec JMX \u811a\u672c\u3001Jar\u5305\u3001CSV\u6587\u4ef6)\u3002

    • \u67e5\u770b\u62a5\u544a:\u70b9\u51fb\u6027\u80fd\u6d4b\u8bd5\u914d\u7f6e\u9875\u9762\u7684\u3010\u4fdd\u5b58\u5e76\u6267\u884c\u3011\u6309\u94ae\uff0c\u7cfb\u7edf\u81ea\u52a8\u8fdb\u5165\u6027\u80fd\u6d4b\u8bd5\u6d4b\u8bd5\u62a5\u544a\u9875\u9762\u3002\u5f53\u6536\u5230\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u540e\uff0c\u62a5\u544a\u9875\u9762\u5c06\u81ea\u52a8\u66f4\u65b0\u3002

    • \u6d4b\u8bd5\u6982\u89c8:\u8ba4\u8fdb\u5165\u6d4b\u8bd5\u62a5\u544a\uff0c\u5373\u4e3a\u6d4b\u8bd5\u6982\u89c8\u9875\u9762\uff0c\u53ef\u770b\u5230\u4e0d\u540c\u6307\u6807\u4e0b\u7684\u6d4b\u8bd5\u6570\u636e\u6c47\u603b\u60c5\u51b5\u3002

    • \u6d4b\u8bd5\u8be6\u60c5:\u7cfb\u7edf\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u5404\u79cd\u6d4b\u8bd5\u6307\u6807\uff0c\u5e76\u4e14\u6839\u636e\u7528\u6237\u81ea\u5b9a\u4e49\u7684\u6307\u6807\u52a8\u6001\u5b9e\u65f6\u751f\u6210\u6d4b\u8bd5\u62a5\u8868\u3002

    • \u8bf7\u6c42\u7edf\u8ba1:\u6027\u80fd\u6d4b\u8bd5\u6240\u6709\u8bf7\u6c42\u60c5\u51b5\u7684\u7edf\u8ba1\u548c\u5206\u6790\u3002

    • \u9519\u8bef\u8bb0\u5f55:\u5bf9\u6027\u80fd\u6d4b\u8bd5\u8fc7\u7a0b\u4e2d\u53d1\u751f\u7684\u6240\u6709\u7684\u9519\u8bef\u8bb0\u5f55\u7684\u7edf\u8ba1\u53ca\u5206\u6790\u3002

    • \u65e5\u5fd7\u8be6\u60c5:\u6bcf\u6b21\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u65f6\uff0c\u90fd\u4f1a\u8bb0\u5f55\u548c\u4fdd\u5b58\u672c\u6b21\u6267\u884c\u8fc7\u7a0b\u4e2d\u6240\u6709\u7684\u65e5\u5fd7\u60c5\u51b5\uff0c\u65b9\u4fbf\u6280\u672f\u4eba\u5458\u95ee\u9898\u7684\u67e5\u9605\u548c\u5b9a\u4f4d\u3002\u540c\u65f6\u53ef\u4ee5\u4e0b\u8f7d\u5b8c\u6574\u7684\u65e5\u5fd7\u4fe1\u606f\u3002

    • \u76d1\u63a7\u8be6\u60c5:\u5bf9\u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u65f6\uff0c\u8bbe\u7f6e\u7684\u6240\u6709\u76d1\u63a7\u4fe1\u606f\u7684\u76d1\u63a7\u6570\u636e\u3002\u540c\u65f6\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u9009\u62e9\u76d1\u63a7\u6307\u6807\uff0c\u6839\u636e\u4e0d\u540c\u7684\u6307\u6807\uff0c\u7cfb\u7edf\u4f1a\u5b9e\u65f6\u52a8\u6001\u751f\u6210\u76d1\u63a7\u62a5\u544a\u3002

    • \u6d4b\u8bd5\u914d\u7f6e:\u67e5\u770b\u6b64\u62a5\u544a\u5bf9\u5e94\u7684\u6bcf\u4e2a\u573a\u666f\u5bf9\u5e94\u7684\u538b\u529b\u914d\u7f6e\u60c5\u51b5\u3002\u70b9\u9009\u6bcf\u4e2a\u573a\u666f\u53ef\u4ee5\u67e5\u770b\u5404\u81ea\u7684\u538b\u529b\u914d\u7f6e\u3002

    • \u505c\u6b62\u6d4b\u8bd5:\u70b9\u51fb\u3010\u7acb\u5373\u505c\u6b62\u3011\u6309\u94ae\uff0c\u53ef\u624b\u52a8\u505c\u6b62\u6d4b\u8bd5\u3002

    • \u518d\u6b21\u6267\u884c:\u70b9\u51fb\u3010\u518d\u6b21\u6267\u884c\u3011\u6309\u94ae\uff0c\u53ef\u518d\u6b21\u6267\u884c\u6d4b\u8bd5\u3002

    • \u5bfc\u51fa\u62a5\u544a:\u70b9\u51fb\u3010\u5bfc\u51fa\u62a5\u544a\u3011\u6309\u94ae\uff0c\u53ef\u5c06\u672c\u6b21\u6d4b\u8bd5\u62a5\u544a\u5bfc\u51fa PDF \u6587\u4ef6\u3002

    • \u5206\u4eab\u62a5\u544a:\u70b9\u51fb\u3010\u5206\u4eab\u62a5\u544a\u3011\u6309\u94ae\uff0c\u7cfb\u7edf\u5373\u4f1a\u751f\u6210\u8be5\u62a5\u544a\u5bf9\u5e94\u7684\u94fe\u63a5\u3002\u63a5\u4e0b\u6765\uff0c\u70b9\u51fb\u3010\u590d\u5236\u3011\u6309\u94ae\u5c31\u53ef\u4ee5\u5206\u4eab\u7ed9\u9700\u8981\u67e5\u770b\u62a5\u544a\u7684\u7528\u6237\u3002

    \u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u7684\u94fe\u63a5\u6709\u6548\u65f6\u957f\u9ed8\u8ba4\u4e3a 24 \u5c0f\u65f6\uff0c\u7528\u6237\u53ef\u4ee5\u9009\u62e9\u3010\u9879\u76ee\u8bbe\u7f6e-\u66f4\u591a\u9009\u9879-\u5e94\u7528\u7ba1\u7406-\u6027\u80fd\u6d4b\u8bd5\u3011\uff0c\u6839\u636e\u9700\u8981\u81ea\u5b9a\u4e49\u8be5\u94fe\u63a5\u7684\u6709\u6548\u65f6\u957f\u3002

    • \u62a5\u544a\u5bf9\u6bd4\uff1a\u70b9\u51fb\u3010\u62a5\u544a\u5bf9\u6bd4\u3011\uff0c\u52fe\u9009\u8981\u5bf9\u6bd4\u7684\u62a5\u544a\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5373\u53ef\u3002

    • \u4e0b\u8f7dJTL\u6587\u4ef6\uff1a\u70b9\u51fb\u3010\u4e0b\u8f7dJTL\u3011\uff0c\u53ef\u4e0b\u8f7d\u6d4b\u8bd5\u7ed3\u679c\u6587\u4ef6\uff0c\u652f\u6301\u5bfc\u51fa JTL \u6587\u4ef6\u7528\u4ee5\u751f\u6210 JMeter \u81ea\u5b9a\u4e49\u62a5\u8868\u3002

    • \u4e0b\u8f7d\u6267\u884c\u6587\u4ef6\uff1a\u70b9\u51fb\u3010\u4e0b\u8f7d\u6267\u884c\u6587\u4ef6\u3011\uff0c\u53ef\u4e0b\u8f7d\u6d4b\u8bd5 JMX \u811a\u672c\u914d\u7f6e\u6587\u4ef6(\u5305\u62ec Jar\u5305\u3001CSV\u6587\u4ef6\u7b49)\u3002

    "},{"location":"user_manual/load_test/test_report/#2","title":"2 \u6d4b\u8bd5\u62a5\u544a\u7ba1\u7406","text":"

    \u70b9\u51fb\u3010\u62a5\u544a\u3011\u53ef\u8fdb\u5165\u6d4b\u8bd5\u62a5\u544a\u5217\u8868\uff0c\u53ef\u67e5\u770b\u3001\u5bf9\u6bd4\u3001\u5220\u9664\u62a5\u544a\u3002

    • \u62a5\u544a\u8be6\u60c5\uff1a\u70b9\u51fb\u3010\u62a5\u544a\u8be6\u60c5\u3011\u53ef\u67e5\u770b\u62a5\u544a\u3002

    • \u5bf9\u6bd4\uff1a\u70b9\u51fb\u3010\u5bf9\u6bd4\u3011\u53ef\u8fdb\u884c\u591a\u62a5\u544a\u6570\u636e\u5bf9\u6bd4\u3002

    • \u5220\u9664\uff1a\u70b9\u51fb\u3010\u5220\u9664\u3011\u53ef\u5220\u9664\u62a5\u544a\u3002

    • \u6279\u91cf\u5220\u9664\uff1a\u9009\u4e2d\u591a\u4efd\u62a5\u544a\uff0c\u70b9\u51fb\u3010\u6279\u91cf\u5220\u9664\u62a5\u544a\u3011\u53ef\u5220\u9664\u62a5\u544a\u3002

    "},{"location":"user_manual/my_desk/attention/","title":"\u6211\u7684\u5173\u6ce8","text":"

    \u8f93\u5165\u9879\u76ee\u540d\u79f0\u53ef\u641c\u7d22\u5230\u9879\u76ee\uff0c\u9009\u4e2d\u9879\u76ee\uff0c\u5207\u6362\u5230\u5bf9\u5e94\u7684\u83dc\u5355\uff0c\u4e0b\u65b9\u5217\u8868\u4e5f\u4e0e\u4e4b\u5bf9\u5e94\u3002\u53ef\u5207\u6362\u5230\u4efb\u610f\u83dc\u5355\uff0c\u4e0b\u65b9\u5217\u8868\u5c31\u663e\u793a\u5bf9\u5e94\u5185\u5bb9\u3002\u9ed8\u8ba4\u3010\u529f\u80fd\u7528\u4f8b\u3011\uff0c\u9009\u62e9\u5f53\u524d\u7248\u672c\u53f7\uff0c\u70b9\u51fb\u5217\u8868\u4efb\u4e00\u6570\u636e\uff0c\u4f1a\u8df3\u8f6c\u5230\u5bf9\u5e94\u7684\u9875\u9762\u67e5\u770b\u8be6\u7ec6\u60c5\u51b5\u3002

    "},{"location":"user_manual/my_desk/created/","title":"\u6211\u521b\u5efa\u7684","text":"

    \u8f93\u5165\u9879\u76ee\u540d\u79f0\u53ef\u641c\u7d22\u5230\u9879\u76ee\uff0c\u9009\u4e2d\u9879\u76ee\uff0c\u5207\u6362\u5230\u5bf9\u5e94\u7684\u83dc\u5355\uff0c\u4e0b\u65b9\u5217\u8868\u4e5f\u4e0e\u4e4b\u5bf9\u5e94\u3002\u53ef\u5207\u6362\u5230\u4efb\u610f\u83dc\u5355\uff0c\u4e0b\u65b9\u5217\u8868\u5c31\u663e\u793a\u5bf9\u5e94\u5185\u5bb9\u3002\u9ed8\u8ba4\u3010\u529f\u80fd\u7528\u4f8b\u3011\uff0c\u9009\u62e9\u5f53\u524d\u7248\u672c\u53f7\uff0c\u70b9\u51fb\u5217\u8868\u4efb\u4e00\u6570\u636e\uff0c\u4f1a\u8df3\u8f6c\u5230\u5bf9\u5e94\u7684\u9875\u9762\u67e5\u770b\u8be6\u7ec6\u60c5\u51b5\u3002

    "},{"location":"user_manual/my_desk/dashboard/","title":"\u6211\u7684\u4eea\u8868\u76d8","text":"

    \u9875\u9762\u4e3b\u8981\u5c55\u793a\u3010\u6211\u7684\u5f85\u529e\u3011\u3001\u3010\u6211\u7684\u5173\u6ce8\u3011\u3001\u3010\u6211\u521b\u5efa\u7684\u7528\u4f8b\u3011\u3001\u3010\u6211\u521b\u5efa\u7684\u7f3a\u9677\u3011\u6a21\u5757\u7684\u7edf\u8ba1\u6570\u636e\u3002

    "},{"location":"user_manual/my_desk/dashboard/#1","title":"1 \u6211\u7684\u5f85\u529e","text":"

    \u5c55\u793a\u4e0d\u540c\u7c7b\u522b\u7684\u5f85\u529e\u6570\u636e\uff0c\u5982\u529f\u80fd\u7528\u4f8b\u3001\u6d4b\u8bd5\u8ba1\u5212\u3001\u7528\u4f8b\u8bc4\u5ba1\u3001\u7f3a\u9677\u7ba1\u7406\u3001\u63a5\u53e3\u5b9a\u4e49\u3001\u63a5\u53e3\u7528\u4f8b\u3001\u63a5\u53e3\u81ea\u52a8\u5316\u3001\u6027\u80fd\u6d4b\u8bd5\u7b49\uff0c\u70b9\u51fb\u5f85\u529e\u5217\u8868\u4e2d\u7684\u4e0d\u540c\u7c7b\u522b\uff0c\u4f1a\u8df3\u81f3\u76f8\u5e94\u7684\u9875\u9762\u3002

    "},{"location":"user_manual/my_desk/dashboard/#2","title":"2 \u6211\u7684\u5173\u6ce8","text":"

    \u5c55\u793a\u4e0d\u540c\u7c7b\u522b\u7684\u5173\u6ce8\uff0c\u5982\u529f\u80fd\u7528\u4f8b\u3001\u6d4b\u8bd5\u8ba1\u5212\u3001\u7528\u4f8b\u8bc4\u5ba1\u3001\u7f3a\u9677\u7ba1\u7406\u3001\u63a5\u53e3\u5b9a\u4e49\u3001\u63a5\u53e3\u7528\u4f8b\u3001\u63a5\u53e3\u81ea\u52a8\u5316\u3001\u6027\u80fd\u6d4b\u8bd5\u7b49\uff0c\u70b9\u51fb\u5173\u6ce8\u5217\u8868\u4e2d\u7684\u4e0d\u540c\u7c7b\u522b\uff0c\u4f1a\u8df3\u81f3\u76f8\u5e94\u7684\u9875\u9762\u3002

    "},{"location":"user_manual/my_desk/dashboard/#3","title":"3 \u6211\u521b\u5efa\u7684\u7528\u4f8b","text":"

    \u997c\u56fe\u5c55\u793a\u5404\u7c7b\u7528\u4f8b\u7684\u6570\u91cf\uff0c\u9f20\u6807\u60ac\u6d6e\u5728\u5404\u7c7b\u7528\u4f8b\u4e0a\uff0c\u4f1a\u663e\u793a\u8be5\u7c7b\u7528\u4f8b\u7684\u4e2a\u6570\u3002

    "},{"location":"user_manual/my_desk/dashboard/#4","title":"4 \u6211\u521b\u5efa\u7684\u7f3a\u9677","text":"

    \u997c\u56fe\u5c55\u793a\u5404\u7c7b\u7f3a\u9677\u7684\u4e2a\u6570\uff0c\u9f20\u6807\u60ac\u6d6e\u5728\u5404\u7c7b\u7f3a\u9677\u4e0a\uff0c\u4f1a\u663e\u793a\u8be5\u7c7b\u7f3a\u9677\u7684\u4e2a\u6570\u3002

    "},{"location":"user_manual/my_desk/todo/","title":"\u6211\u7684\u5f85\u529e","text":"

    \u53ef\u5207\u6362\u5230\u4efb\u610f\u83dc\u5355\uff0c\u4e0b\u65b9\u5217\u8868\u5c31\u663e\u793a\u5bf9\u5e94\u5185\u5bb9\u3002\u9ed8\u8ba4\u3010\u529f\u80fd\u7528\u4f8b\u3011\uff0c\u9009\u62e9\u5f53\u524d\u7248\u672c\u53f7\uff0c\u70b9\u51fb\u5217\u8868\u4efb\u4e00\u6570\u636e\uff0c\u4f1a\u8df3\u8f6c\u5230\u5bf9\u5e94\u7684\u9875\u9762\u67e5\u770b\u8be6\u7ec6\u60c5\u51b5\u3002

    "},{"location":"user_manual/my_desk/todo/#1","title":"1 \u5f85\u5b8c\u6210","text":"

    \u5728\u3010\u63a5\u53e3\u5b9a\u4e49\u3011\u3001\u3010\u63a5\u53e3\u7528\u4f8b\u3011\u3001\u3010\u63a5\u53e3\u81ea\u52a8\u5316\u3011Tab \u4e0b\u53ef\u4ee5\u5c55\u793a\u6240\u6709\u3010\u5f85\u5b8c\u6210\u3011\u7684\u63a5\u53e3\u6216\u8005\u7528\u4f8b\u5217\u8868\u3002

    "},{"location":"user_manual/my_desk/todo/#2","title":"2 \u5f85\u66f4\u65b0","text":"

    \u5df2\u5b58\u5728\u7684\u63a5\u53e3\uff0c\u4fee\u6539\u5730\u5740\u3001\u8bf7\u6c42\u5934\u3001\u8bf7\u6c42\u4f53\u7b49\u4fe1\u606f\uff0c\u70b9\u51fb\u4fdd\u5b58\u540e\uff0c\u672a\u8fdb\u884c\u3010\u540c\u6b65\u8bbe\u7f6e\u3011\u64cd\u4f5c\u3002

    \u540c\u6b65\u8bbe\u7f6e

    \u5373\u5728 API \u63a5\u53e3\u53d1\u751f\u53d8\u66f4\u5e76\u70b9\u51fb\u4fdd\u5b58\u540e\uff0c\u53ef\u52fe\u9009\u540c\u6b65\u8bbe\u7f6e Header\u3001QUERY\u53c2\u6570\u3001REST\u53c2\u6570\u7b49\u9009\u9879\uff0c\u52fe\u9009\u540e\uff0c\u4f1a\u540c\u6b65\u66f4\u65b0\u8be5 API \u5bf9\u5e94\u7684 CASE \u548c\u5f15\u7528\u8be5 API \u7684\u573a\u666f\u3002

    \u53ef\u5728\u3010\u5f85\u66f4\u65b0\u3011\u9875\u9762\u5217\u8868\u4e2d\u8fdb\u884c\u3010\u540c\u6b65\u3011\u6216\u3010\u5ffd\u7565\u3011\u64cd\u4f5c\u3002

    "},{"location":"user_manual/plugin_use/api_test_plugin/","title":"Api test plugin","text":"

    MeterSphere \u9664\u652f\u6301\u901a\u7528\u7684HTTP/HTTPS\u3001TCP\u3001SQL\u3001DUBBO\u534f\u8bae\u5916\uff0c\u8fd8\u53ef\u4ee5\u901a\u8fc7\u63d2\u4ef6\u7684\u65b9\u5f0f\u652f\u6301\u5176\u5b83\u6269\u5c55\u534f\u8bae\uff0c\u76ee\u524d\u4f01\u4e1a\u7248\u672c\u5df2\u652f\u6301\u7684\u6269\u5c55\u534f\u8bae\u5305\u62ec\uff1aWebSocket/MQTT/AMQP\u3002WebSocket/MQTT/AMQP \u7b49\u534f\u8bae\u63d2\u4ef6\u5305\u662f\u4f01\u4e1a\u7248\u529f\u80fd\uff0c\u4ec5\u5411\u4f01\u4e1a\u5ba2\u6237\u5f00\u653e\u3002 \u4e0b\u9762\u4ee5 WebSocket \u534f\u8bae\u4e3a\u4f8b\uff0c\u4ecb\u7ecd\u63a5\u53e3\u6d4b\u8bd5\u6269\u5c55\u63d2\u4ef6\u7684\u5b89\u88c5\u4ee5\u53ca\u4f7f\u7528\u3002

    "},{"location":"user_manual/plugin_use/api_test_plugin/#1","title":"1 \u63d2\u4ef6\u5b89\u88c5","text":"

    \u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u7cfb\u7edf\u3011-\u3010\u63d2\u4ef6\u7ba1\u7406\u3011\u754c\u9762\u4e0b\uff0c\u4e0a\u4f20 WebSocket \u63d2\u4ef6\u3002

    "},{"location":"user_manual/plugin_use/api_test_plugin/#2","title":"2 \u63d2\u4ef6\u4f7f\u7528","text":"

    \u5728\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011-\u3010\u63a5\u53e3\u81ea\u52a8\u5316\u3011\u754c\u9762\u4e0b\uff0c\u65b0\u5efa\u573a\u666f\uff0c\u70b9\u51fb\u573a\u666f\u53f3\u4e0b\u89d2\u3010+\u3011\u53f7\uff0c\u5373\u53ef\u6dfb\u52a0 WebSocket \u76f8\u5173\u8bf7\u6c42\u3002

    "},{"location":"user_manual/plugin_use/chrome_plugin/","title":"Chrome plugin","text":"

    \u8be5\u63d2\u4ef6\u4e3a MeterSphere \u914d\u5957\u7684\u6d4f\u89c8\u5668\u5f55\u5236\u63d2\u4ef6\uff0c\u8be5\u63d2\u4ef6\u53ef\u5c06\u7528\u6237\u5728 chrome \u6d4f\u89c8\u5668\u64cd\u4f5c\u65f6\u7684\u6240\u6709 HTTP \u8bf7\u6c42\u8bb0\u5f55\u4e0b\u6765\u5e76\u751f\u6210 JMX \u6587\u4ef6\uff08JMeter \u811a\u672c\u6587\u4ef6\uff09\uff0c\u5bfc\u5165 MeterSphere \u540e\u8fdb\u884c\u63a5\u53e3\u6d4b\u8bd5\u6216\u6027\u80fd\u6d4b\u8bd5\u3002

    "},{"location":"user_manual/plugin_use/chrome_plugin/#1","title":"1 \u63d2\u4ef6\u5b89\u88c5","text":"

    \u5728 MeterSphere chrome-extensions \u9879\u76ee\u4e2d\u4e0b\u8f7d\u6700\u65b0\u7684\u53d1\u5e03\u7248\u672c\uff0c\u4e0b\u8f7d\u5b8c\u6210\u540e\u8fdb\u884c\u89e3\u538b\uff0c\u7136\u540e\u5728\u8c37\u6b4c\u6d4f\u89c8\u5668\u8f93\u5165 chrome://extensions/ \u8fdb\u5165\u6269\u5c55\u7a0b\u5e8f\u5b89\u88c5\u754c\u9762\uff0c \u9009\u62e9\u3010\u52a0\u8f7d\u5df2\u89e3\u538b\u7684\u6269\u5c55\u7a0b\u5e8f\u3011\uff0c\u9009\u62e9\u63d2\u4ef6\u89e3\u538b\u540e\u7684\u76ee\u5f55\u8fdb\u884c\u5b89\u88c5\u3002

    "},{"location":"user_manual/plugin_use/chrome_plugin/#2","title":"2 \u4f7f\u7528\u8bf4\u660e","text":"

    \u5728 Chrome \u6d4f\u89c8\u5668\u4e2d\u70b9\u51fb\u6269\u5c55\u7a0b\u5e8f\u6309\u94ae\uff0c\u5e76\u9009\u62e9MeterSphere \u5f55\u5236\u63d2\u4ef6\u56fe\u6807\uff0c\u70b9\u51fb\u5f00\u59cb\u5f55\u5236\u6309\u94ae\u3002

    \u8bbf\u95ee\u9700\u8981\u8fdb\u884c\u5f55\u5236\u7684\u7ad9\u70b9\uff0c\u8fdb\u884c\u6b63\u5e38\u4f7f\u7528\u64cd\u4f5c\uff0c\u6d4f\u89c8\u5668\u4e2d\u7684\u6240\u6709\u7f51\u7edc\u8bf7\u6c42\u5747\u4f1a\u88ab\u8bb0\u5f55\u4e0b\u6765\u3002\u5f53\u64cd\u4f5c\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u505c\u6b62\u6309\u94ae\u505c\u6b62\u5f55\u5236\u3002

    \u5f55\u5236\u7ed3\u675f\u540e\uff0c\u70b9\u51fb\u4fdd\u5b58\u6309\u94ae\u8fdb\u884c\u4fdd\u5b58\u3002

    \u63d2\u4ef6\u5f39\u51fa\u6240\u6709\u8bb0\u5f55\u5230\u8bf7\u6c42\u7684\u7ad9\u70b9\u5217\u8868\uff0c\u52fe\u9009\u9700\u8981\u4fdd\u7559\u7684\u7ad9\u70b9\u8bf7\u6c42\u70b9\u51fb\u4e0b\u8f7d\u6309\u94ae\uff0c\u4e0b\u8f7d JMX \u811a\u672c\u81f3\u672c\u5730\u3002

    \u5728 MeterSphere \u4e2d\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u4efb\u52a1\uff0c \u4e0a\u4f20\u521a\u521a\u5f55\u5236\u7684 JMX \u811a\u672c\uff0c\u7136\u540e\u8bbe\u7f6e\u5e76\u53d1\u53c2\u6570\uff0c\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5\u3002

    "},{"location":"user_manual/plugin_use/idea_plugin/","title":"Idea plugin","text":"

    \u8be5\u63d2\u4ef6\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u5728IntelliJ IDEA IDE \u4e2d\uff0c\u5c06\u7f16\u5199\u7684 HTTP \u63a5\u53e3\u6587\u6863\u4fe1\u606f\u5feb\u6377\u63a8\u9001\u5230 MeterSphere \u7cfb\u7edf\u4e2d\u3002

    "},{"location":"user_manual/plugin_use/idea_plugin/#1","title":"1 \u63d2\u4ef6\u5b89\u88c5","text":""},{"location":"user_manual/plugin_use/idea_plugin/#11","title":"1.1 \u5728\u7ebf\u5b89\u88c5","text":"

    \u5728 IDEA -> Settings -> plugins -> Marketplace \u641c\u7d22\u5e76\u9009\u62e9\u3010MeterSphere\u3011\uff0c\u70b9\u51fb install \u5373\u53ef\u8fdb\u884c\u5728\u7ebf\u5b89\u88c5\u3002

    "},{"location":"user_manual/plugin_use/idea_plugin/#12","title":"1.2 \u79bb\u7ebf\u5b89\u88c5","text":"

    \u5148\u5728 jetbrains plugin marketplace \u4e2d\u4e0b\u8f7d\u4e0e IDEA\u7248\u672c\u5339\u914d\u7684\u7248\u672c\uff0c \u7136\u540e\u5728 IDEA -> Settings -> plugins\uff0c\u70b9\u51fb\u3010Install Plugin from Disk\u3011\u5e76\u9009\u62e9\u5df2\u4e0b\u8f7d\u7684\u79bb\u7ebf\u5305\u8fdb\u884c\u5b89\u88c5\u3002

    "},{"location":"user_manual/plugin_use/idea_plugin/#2","title":"2 \u63d2\u4ef6\u4f7f\u7528","text":"

    IDEA -> Settings -> MeterSphere \u4e2d\u914d\u7f6e\u597d\u8bbf\u95ee\u5730\u5740\u4ee5\u53ca AK/SK \u7b49\u8be6\u7ec6\u4fe1\u606f\uff0c\u70b9\u51fb\u3010test\u3011\u6309\u94ae\u5373\u786e\u8ba4\u8fde\u63a5\u6210\u529f\u3002

    \u914d\u7f6e\u5bfc\u51fa\u662f\u5426\u8986\u76d6\u3001\u76ee\u5f55\u5c42\u7ea7\u7b49\u4fe1\u606f\u540e\uff0c\u70b9\u51fb\u3010Apply\u3011\u6309\u94ae\u3002

    \u5728\u8981\u540c\u6b65\u63a5\u53e3\u7684 Controller \u9875\u9762\u4e2d\u53f3\u952e\u9009\u62e9\u3010Export MeterSphere\u3011\u5373\u53ef\u5c06\u4ee3\u7801\u4e2d\u7684 HTTP \u63a5\u53e3\u63a8\u9001\u5230 MeterSphere \u7cfb\u7edf\u4e2d\u3002

    "},{"location":"user_manual/plugin_use/jenkins_plugin/","title":"Jenkins plugin","text":"

    \u8be5\u63d2\u4ef6\u4e3a MeterSphere \u914d\u5957DevOps \u6301\u7eed\u96c6\u6210\u5de5\u5177\u94fe\u4e2d\u4e0e Jenkins \u7684\u81ea\u52a8\u5316\u6267\u884c\u63d2\u4ef6\u3002

    "},{"location":"user_manual/plugin_use/jenkins_plugin/#1","title":"1 \u63d2\u4ef6\u5b89\u88c5","text":"

    \u6839\u636e MeterSphere \u7248\u672c\uff0c\u5728 MeterSphere Jenkins-plugin \u4e0b\u8f7d\u5bf9\u5e94\u7248\u672c\u7684 hpi \u5305\uff0c \u5e76\u5728 Jenkins \u7684\u63d2\u4ef6\u7ba1\u7406-\u9ad8\u7ea7\u4e2d\u7684Deploy Plugin\u6bb5\u4e2d\uff0c\u9009\u62e9\u4e0a\u4f20\u5df2\u4e0b\u8f7d\u597d\u7684 hpi \u63d2\u4ef6\u5305\u3002

    "},{"location":"user_manual/plugin_use/jenkins_plugin/#2","title":"2 \u63d2\u4ef6\u4f7f\u7528","text":"

    \u63d2\u4ef6\u5b89\u88c5\u540e\uff0c\u5728\u6307\u5b9a\u7684 Jenkins \u6784\u5efa\u4efb\u52a1\u7684\u6784\u5efa\u6b65\u9aa4\u4e2d\uff0c\u589e\u52a0\u5e76\u914d\u7f6e\u3010MeterSphere\u3011\u7c7b\u578b\u7684\u6784\u5efa\u6b65\u9aa4\u3002 \u914d\u7f6e MeterSphere \u8ba4\u8bc1\u4fe1\u606f\uff0c\u5e76\u6307\u5b9a\u9700\u8981\u89e6\u53d1\u6267\u884c\u7684\u63a5\u53e3\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u6216\u6d4b\u8bd5\u8ba1\u5212\uff0c\u914d\u7f6e\u5b8c\u6210\u540e\u5373\u53ef\u8fd0\u884c Jenkins Job\u3002

    v2\u7248\u672c\u5c06 Jenkins Job \u7684\u8fd0\u884c\u7ed3\u679c\u53d8\u66f4\u4e3a\u5f53\u524d\u8fd0\u884c\u7684\u6d4b\u8bd5\u8ba1\u5212\u6216\u7528\u4f8b\u7684\u5b9e\u9645\u8fd0\u884c\u7ed3\u679c\u72b6\u6001\uff0c\u5373\u5f53\u7528\u4f8b\u8fd0\u884c\u5931\u8d25\u65f6\uff0cJenkins Job \u7684\u72b6\u6001\u4e5f\u4e3a\u5931\u8d25\u3002

    "},{"location":"user_manual/plugin_use/selenium_ide_plugin/","title":"Selenium ide plugin","text":"

    \u8be5\u63d2\u4ef6\u4e3a Selenium \u539f\u751f\u63d2\u4ef6\uff0c\u7528\u4e8e\u5f55\u5236\u3001\u56de\u653e\u7528\u6237\u5728 web \u9875\u9762\u4e0a\u7684\u64cd\u4f5c\uff0c\u652f\u6301 Chrome\uff0cfirefox\u3001Edge\u7b49\u4e3b\u6d41\u6d4f\u89c8\u5668\u3002\u4ee5Chrome\u6d4f\u89c8\u5668\u4e3a\u4f8b\u8bf4\u660e\u63d2\u4ef6\u7684\u4e0b\u8f7d\u5b89\u88c5\u4ee5\u53ca\u4f7f\u7528\u3002

    "},{"location":"user_manual/plugin_use/selenium_ide_plugin/#1","title":"1 \u63d2\u4ef6\u5b89\u88c5","text":"

    \u5728 Chrome \u5e94\u7528\u5546\u5e97\u4e2d\u641c\u7d22 selenium \u5173\u952e\u5b57\uff0c \u9009\u62e9Selenium IDE\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u81f3 Chrome\u3011\u5b8c\u6210\u63d2\u4ef6\u5b89\u88c5\u3002

    "},{"location":"user_manual/plugin_use/selenium_ide_plugin/#2","title":"2 \u63d2\u4ef6\u4f7f\u7528","text":"

    \u5728 Chrome \u6d4f\u89c8\u5668\u4e2d\u70b9\u51fb\u6269\u5c55\u7a0b\u5e8f\u6309\u94ae\uff0c\u5e76\u9009\u62e9 Selenium IDE\u63d2\u4ef6\u56fe\u6807\uff0c\u542f\u52a8\u63d2\u4ef6\u7a0b\u5e8f\u3002

    \u542f\u52a8\u3010Selenium IDE\u3011\u63d2\u4ef6

    \u521b\u5efa\u5f55\u5236\u7684\u9879\u76ee\uff0c\u8f93\u5165\u9879\u76ee\u540d\u79f0 \u70b9\u51fb\u3010\u5f55\u5236\u3011\u6309\u94ae\uff0c\u5728\u8f93\u5165\u5f55\u5236\u7f51\u7ad9\u5730\u5740\u4e4b\u540e\u5f00\u59cb\u5f55\u5236\u3002

    \u5f55\u5236\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u3010\u505c\u6b62\u3011\u6309\u94ae\u7ed3\u675f\u5f55\u5236\uff0c\u5e76\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u6309\u94ae\uff0c\u5c06\u5f55\u5236\u7ed3\u679c\u4fdd\u5b58\u540e\u7f6e\u4e3a .side \u6587\u4ef6

    \u5c06\u4fdd\u5b58\u7684 .side \u6587\u4ef6\u5bfc\u5165\u5230 MeterSphere UI \u6d4b\u8bd5\u4e2d\u5373\u8fdb\u884c Web UI\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u3002

    "},{"location":"user_manual/plugin_use/service_integration_plugin/","title":"Service integration plugin","text":"

    MeterSphere v2.4 \u7248\u672c\u5b9e\u73b0\u4e86\u670d\u52a1\u96c6\u6210\u7684\u63d2\u4ef6\u5316\uff0c\u76ee\u524d\u5df2\u7ecf\u652f\u6301\u7985\u9053\u3001Jira\u3001TAPD\u7b49\u5e73\u53f0\u7684\u5bf9\u63a5\uff0c\u4e5f\u53ef\u6839\u636e\u81ea\u8eab\u9700\u6c42\u5f00\u53d1\u5bf9\u5e94\u63d2\u4ef6\u3002\u7cfb\u7edf\u8bbe\u7f6e-\u63d2\u4ef6\u7ba1\u7406\u4e0a\u4f20\u63d2\u4ef6 \u4f7f\u7528\u65b9\u5f0f\u8ddf\u539f\u6765\u4e00\u81f4\uff0c\u5177\u4f53\u53c2\u8003 metersphere-platform-plugin \u3002\u4ee5 Jira \u5e73\u53f0\u4e3a\u4f8b\uff0c\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u7cfb\u7edf\u3011-\u3010\u63d2\u4ef6\u7ba1\u7406\u3011\u754c\u9762\u4e0b\uff0c\u4e0a\u4f20 Jira \u63d2\u4ef6\u5305\u3002

    \u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u7cfb\u7edf\u3011-\u3010\u670d\u52a1\u96c6\u6210\u3011\u5904\u53ef\u770b\u5230 Jira \u5e73\u53f0\uff0c\u9009\u4e2d Jira \u5e73\u53f0\u53ef\u51fa\u73b0\u76f8\u5173\u8d26\u53f7\u4fe1\u606f\u3002\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u586b\u5199Jira \u5e73\u53f0\u76f8\u5173\u8d26\u53f7\u4fe1\u606f\u540e\u8fdb\u884c\u4fdd\u5b58\uff0c\u5e76\u901a\u8fc7\u3010\u6d4b\u8bd5\u8fde\u63a5\u3011\u8fdb\u884c\u9a8c\u8bc1\u3002

    \u9a8c\u8bc1\u901a\u8fc7\u540e\uff0c\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u7cfb\u7edf\u3011-\u3010\u9879\u76ee\u7ba1\u7406\u3011\u5904\uff0c\u8fdb\u884c\u9879\u76ee\u7f16\u8f91\u65f6\uff0c\u53ef\u770b\u5230\u3010\u96c6\u6210\u7b2c\u4e09\u65b9\u5e73\u53f0\u3011\u7684\u4e0b\u62c9\u6846\u6709 Jira \u5e73\u53f0\u9009\u9879\u4ee5\u53ca Jira \u5e73\u53f0\u7684\u76f8\u5173\u4fe1\u606f\u3002

    "},{"location":"user_manual/project_management/application_management/","title":"\u5e94\u7528\u7ba1\u7406","text":""},{"location":"user_manual/project_management/application_management/#1","title":"1 \u5e94\u7528\u7ba1\u7406\u6743\u9650","text":"

    \u5982\u679c\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011\u91cc\u770b\u4e0d\u5230\u3010\u5e94\u7528\u7ba1\u7406\u3011\u83dc\u5355\uff0c\u8868\u793a\u6b64\u7528\u6237\u6ca1\u6709\u6b64\u6743\u9650\uff0c\u9700\u8981\u5230\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u7cfb\u7edf\u3011-\u3010\u7528\u6237\u7ec4\u4e0e\u6743\u9650\u3011\u4fee\u6539\u3010\u9879\u76ee\u7ba1\u7406\u5458\u3011\u7684\u6743\u9650\u3002

    \u9009\u4e2d\u5e94\u7528\u8bbe\u7f6e\u6743\u9650\u5373\u53ef\u3002

    "},{"location":"user_manual/project_management/application_management/#2","title":"2 \u5e94\u7528\u7ba1\u7406\u8bbe\u7f6e","text":"

    \u70b9\u51fb\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u5e94\u7528\u7ba1\u7406\u3011\u53ef\u4ee5\u5bf9 MeterSphere \u7684\u3010\u5de5\u4f5c\u53f0\u3011\u3001\u3010\u6d4b\u8bd5\u8ddf\u8e2a\u3011\u3001\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011\u3001\u3010UI\u6d4b\u8bd5\u3011\u3001\u3010\u6027\u80fd\u6d4b\u8bd5\u3011\u7b49\u5e94\u7528\u8fdb\u884c\u9ad8\u7ea7\u8bbe\u7f6e\u3002

    "},{"location":"user_manual/project_management/application_management/#21","title":"2.1 \u5de5\u4f5c\u53f0","text":"

    \u7ef4\u62a4\u3010\u5de5\u4f5c\u53f0\u3011\u4e0b\u7684\u4e00\u4e9b\u9ad8\u7ea7\u5e94\u7528\u914d\u7f6e\u7ba1\u7406\uff0c\u5305\u542b\u3010\u6211\u7684\u5f85\u529e-\u5f85\u66f4\u65b0\u5217\u8868\u3011\u914d\u7f6e\u3002

    "},{"location":"user_manual/project_management/application_management/#22","title":"2.2 \u6d4b\u8bd5\u8ddf\u8e2a\u8bbe\u7f6e","text":"

    \u7ef4\u62a4\u3010\u6d4b\u8bd5\u8ddf\u8e2a\u3011\u4e0b\u7684\u4e00\u4e9b\u9ad8\u7ea7\u5e94\u7528\u914d\u7f6e\u7ba1\u7406\uff0c\u5305\u542b \u3010\u542f\u52a8\u516c\u5171\u7528\u4f8b\u5e93\u3011\u3001\u3010\u6d4b\u8bd5\u7528\u4f8b\u81ea\u5b9a\u4e49ID\u3011\u3001\u3010\u5b9a\u65f6\u6e05\u7406\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u3011\u3001\u3010\u62a5\u544a\u5206\u4eab\u94fe\u63a5\u3011\u914d\u7f6e\u3002

    • \u542f\u52a8\u516c\u5171\u7528\u4f8b\u5e93

    • \u6d4b\u8bd5\u7528\u4f8b\u81ea\u5b9a\u4e49ID \u5f00\u542f\u540e\uff0c\u5728\u521b\u5efa\u3010\u6d4b\u8bd5\u7528\u4f8b\u3011\u9875\u9762\uff0c\u53ef\u4ee5\u81ea\u5b9a\u4e49\u8bbe\u7f6e\u7528\u4f8b ID\u3002

    • \u5b9a\u65f6\u6e05\u7406\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a

    • \u62a5\u544a\u5206\u4eab\u94fe\u63a5

    "},{"location":"user_manual/project_management/application_management/#23","title":"2.3 \u63a5\u53e3\u6d4b\u8bd5\u8bbe\u7f6e","text":"

    \u7ef4\u62a4\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011\u4e0b\u7684\u4e00\u4e9b\u9ad8\u7ea7\u5e94\u7528\u914d\u7f6e\u7ba1\u7406\uff0c\u5305\u542b\u3010\u63a5\u53e3\u5b9a\u4e49URL\u53ef\u91cd\u590d\u3011\u3001\u3010\u573a\u666f\u81ea\u5b9a\u4e49ID\u3011\u3001\u3010TCP Mock Port\u3011\u4ee5\u53ca\u3010\u5b9a\u65f6\u6e05\u7406\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a\u3011\u3001\u3010\u62a5\u544a\u5206\u4eab\u94fe\u63a5\u3011\u4ee5\u53ca\u3010\u63a5\u53e3\u5b9a\u4e49\u5feb\u6377\u6dfb\u52a0\u6309\u94ae\u3011\u7b49\u914d\u7f6e\u3002

    • \u63a5\u53e3\u5b9a\u4e49URL\u53ef\u91cd\u590d \u542f\u7528\u540e\u63a5\u53e3\u5b9a\u4e49\u91cd\u590d\u6027\u6821\u9a8c\u5c06\u4e0d\u6821\u9a8cURL\uff0c\u540c\u4e00\u4e2a\u9879\u76ee\u4e0b\u5141\u8bb8\u63a5\u53e3\u8def\u5f84\u76f8\u540c\u7684\u3010\u63a5\u53e3\u5b9a\u4e49\u3011\u3002

    • \u573a\u666f\u81ea\u5b9a\u4e49ID \u542f\u7528\u540e\u521b\u5efa\u573a\u666f\u652f\u6301\u81ea\u5b9a\u4e49\u8bbe\u7f6e\u573a\u666fID\u3002

    • TCP Mock Port \u8bbe\u7f6e\u63a5\u53e3\u534f\u8bae\u4e3aTCP\u7684\u63a5\u53e3\uff0cMock\u670d\u52a1\u7684\u53ef\u7528\u6027\u3002

    \u5982\u679c TCP \u534f\u8bae\u7684\u63a5\u53e3\u9700\u8981\u4f7f\u7528 Mock \u670d\u52a1\uff0c\u5219\u9700\u8981\u5f00\u542f\u6b64\u670d\u52a1\uff0c\u5f00\u542f\u540e\u5728\u63a5\u53e3\u6d4b\u8bd5\u4e2d\uff0cMock \u670d\u52a1\u624d\u53ef\u7528\u3002

    • \u5b9a\u65f6\u6e05\u7406\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a

    • \u62a5\u544a\u5206\u4eab\u94fe\u63a5

    • \u63a5\u53e3\u5b9a\u4e49\u5feb\u6377\u6dfb\u52a0\u6309\u94ae

    "},{"location":"user_manual/project_management/application_management/#24-ui","title":"2.4 UI\u6d4b\u8bd5\u8bbe\u7f6e","text":""},{"location":"user_manual/project_management/application_management/#25","title":"2.5 \u6027\u80fd\u6d4b\u8bd5\u8bbe\u7f6e","text":"

    \u7ef4\u62a4\u3010\u6027\u80fd\u6d4b\u8bd5\u3011\u4e0b\u7684\u4e00\u4e9b\u9ad8\u7ea7\u5e94\u7528\u914d\u7f6e\u7ba1\u7406\uff0c\u5305\u542b\u3010\u5b9a\u65f6\u6e05\u7406\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a\u3011\u3001\u3010\u62a5\u544a\u5206\u4eab\u94fe\u63a5\u3011\u914d\u7f6e\u3002

    "},{"location":"user_manual/project_management/customcode_snippets/","title":"\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5","text":"

    \u5728\u63a5\u53e3\u81ea\u52a8\u5316\u4e2d\u7ecf\u5e38\u9700\u8981\u6dfb\u52a0\u524d\u540e\u7f6e\u811a\u672c\u53ca\u81ea\u5b9a\u4e49\u811a\u672c\uff0c\u901a\u8fc7\u65b0\u589e\u7684\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u529f\u80fd\uff0c\u7528\u6237\u53ef\u4ee5\u5c06\u5e38\u7528\u7684\u811a\u672c\u4fdd\u5b58\u4e0b\u6765\uff0c\u5728\u9700\u8981\u4f7f\u7528\u7684\u5730\u65b9\u76f4\u63a5\u6dfb\u52a0\u5373\u53ef\u3002

    "},{"location":"user_manual/project_management/customcode_snippets/#1","title":"1 \u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u7ef4\u62a4","text":"

    \u9009\u62e9\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u3011\u3002

    \u70b9\u51fb\u3010\u521b\u5efa\u4ee3\u7801\u7247\u6bb5\u3011\uff0c\u53ef\u4ee5\u628a\u5e38\u7528\u7684\u811a\u672c\u4ee3\u7801\u4fdd\u5b58\u5728\u8fd9\u91cc\u3002

    \u70b9\u51fb\u3010\u6d4b\u8bd5\u3011\u53ef\u4ee5\u6821\u9a8c\u6b64\u4ee3\u7801\u6267\u884c\u7684\u60c5\u51b5\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u521b\u5efa\u7684\u4ee3\u7801\u7247\u6bb5\u4fdd\u5b58\u5728\u4ee3\u7801\u5217\u8868\u4e2d\u3002

    \u540c\u65f6\u7cfb\u7edf\u63d0\u4f9b\u76f8\u5173\u7684\u7ba1\u7406\u529f\u80fd\uff1a\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u548c\u3010\u5220\u9664\u3011\u7b49\uff0c\u5bf9\u4ee3\u7801\u7247\u6bb5\u8fdb\u884c\u7ba1\u7406\u3002

    "},{"location":"user_manual/project_management/customcode_snippets/#2","title":"2 \u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u4f7f\u7528","text":"

    \u4ee3\u7801\u7247\u6bb5\u7ef4\u62a4\u597d\u540e\uff0c\u5728\u3010\u63a5\u53e3\u3001\u573a\u666f\u6d4b\u8bd5\u7528\u4f8b\u3011\u6216\u8005\u3010\u73af\u5883\u3011\u7684\u3010\u524d\u7f6e\u811a\u672c\u3001\u540e\u7f6e\u811a\u672c\u3011\u4e2d\uff0c\u9009\u62e9\u3010\u63d2\u5165\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u3011\u53ef\u4ee5\u76f4\u63a5\u5f15\u7528\u6b64\u4ee3\u7801\uff0c\u4ee5\u3010\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3011\u4e3a\u4f8b\u3002

    "},{"location":"user_manual/project_management/false_library/","title":"\u8bef\u62a5\u5e93","text":"

    \u5f53\u6267\u884c\u53cd\u5411\u7528\u4f8b\u540e\u54cd\u5e94\u72b6\u6001\u7801\u975e 200 \u65f6\uff0cMS \u4f1a\u5c06\u5176\u5f52\u4e3a\u9519\u8bef\u7ed3\u679c\uff0c\u4f46\u5bf9\u7528\u6237\u4e1a\u52a1\u800c\u8a00\u662f\u6b63\u786e\u7684\uff0c\u6b64\u65f6\u53ef\u4ee5\u4f7f\u7528\u8bef\u62a5\u5e93\u7684\u529f\u80fd\u8fdb\u884c\u907f\u514d

    "},{"location":"user_manual/project_management/false_library/#1-x-pack","title":"1 \u8bef\u62a5\u5e93 (X-Pack)","text":"

    \u70b9\u51fb\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u8bef\u62a5\u5e93\u3011\u9875\u9762\uff0c\u70b9\u51fb\u3010\u521b\u5efa\u8bef\u62a5\u3011

    \u5728\u3010\u521b\u5efa\u8bef\u62a5\u3011\u9875\u9762\uff0c\u8f93\u5165\u76f8\u5173\u914d\u7f6e\u540e\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5373\u53ef

    \u3010\u521b\u5efa\u8bef\u62a5\u3011\u5b8c\u6210\u540e\uff0c\u53ef\u3010\u5f00\u542f/\u5173\u95ed\u3011\u8be5\u8bef\u62a5

    \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u53ef\u7f16\u8f91\u8bef\u62a5\u5185\u5bb9\uff0c\u4e4b\u540e\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5373\u53ef

    \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u5220\u9664\u63d0\u793a\u4e2d\u7684\u3010\u786e\u5b9a\u3011\u6309\u94ae\uff0c\u8be5\u8bef\u62a5\u5c31\u88ab\u5220\u9664\u4e86

    "},{"location":"user_manual/project_management/file_management/","title":"\u6587\u4ef6\u7ba1\u7406","text":"

    \u53ef\u4e0a\u4f20\u6d4b\u8bd5\u6240\u9700\u7684 JAR \u5305\u3001\u811a\u672c\u3001\u76f8\u5173\u6587\u4ef6\uff0c\u5728\u9879\u76ee\u7ea7\u522b\u7edf\u4e00\u7ba1\u7406\u3002

    "},{"location":"user_manual/project_management/file_management/#1","title":"1 \u6a21\u5757\u7ba1\u7406","text":"

    \u65b0\u5efa\u6a21\u5757\u65f6\uff0c\u9009\u62e9\u3010\u6a21\u5757\u3011\uff0c\u53ef\u5bf9\u6a21\u5757\u76ee\u5f55\u8fdb\u884c\u91cd\u547d\u540d\u3001\u65b0\u589e\u3001\u5220\u9664\u7b49\u64cd\u4f5c

    "},{"location":"user_manual/project_management/file_management/#2","title":"2.\u4e0a\u4f20\u6587\u4ef6","text":"

    \u53ef\u4e0a\u4f20 JAR\u3001CSV\u3001TXT\u3001JMX\u3001XLSX \u7b49\u591a\u79cd\u683c\u5f0f\u7684\u6587\u4ef6\uff0c\u4e0a\u4f20\u7684 JAR \u53ef\u5728\u63a5\u53e3\u524d\u540e\u7f6e\u811a\u672c\u4e2d\u8fdb\u884c\u4f7f\u7528

    \u7528\u4e8e\u63a5\u53e3\u6d4b\u8bd5\u7684\u8981\u5f00\u542f\u52a0\u8f7d Jar \u5305\u7684 Switch \u5f00\u5173\uff0c\u5426\u5219\u5728\u63a5\u53e3\u524d\u540e\u7f6e\u811a\u672c\u4e2d\u5f15\u7528\u8be5 Jar \u5305\u4e0d\u751f\u6548

    \u4e0a\u4f20\u7684\u6587\u4ef6\u53ef\u5728\u6027\u80fd\u6d4b\u8bd5\u9875\u9762\u8fdb\u884c\u9009\u62e9

    "},{"location":"user_manual/project_management/file_management/#3","title":"3 \u67e5\u770b\u6587\u4ef6","text":"

    \u70b9\u51fb\u67e5\u770b\u6309\u94ae\uff0c\u53ef\u67e5\u770b\u8be5\u6587\u4ef6\u7684\u8be6\u7ec6\u4fe1\u606f\uff0c\u4e5f\u53ef\u5728\u8be5\u9875\u9762\u589e\u52a0\u6587\u4ef6\u7684\u63cf\u8ff0

    \u53ef\u70b9\u51fb\u4e0a\u4e00\u4e2a/\u4e0b\u4e00\u4e2a\u6309\u94ae\uff0c\u5207\u6362\u5f53\u524d\u67e5\u770b\u7684\u6587\u4ef6

    \u53ef\u5bf9\u8be5\u6587\u4ef6\u51fa\u73b0\u4e0a\u4f20\uff0c\u4e0b\u8f7d\uff0c\u5220\u9664\u7b49\u64cd\u4f5c

    "},{"location":"user_manual/project_management/file_management/#4","title":"4 \u6587\u4ef6\u4e0b\u8f7d","text":"

    \u53ef\u70b9\u51fb\u5217\u8868\u540e\u9762\u4e0b\u8f7d\u6309\u94ae\u8fdb\u884c\u6587\u4ef6\u4e0b\u8f7d\uff0c\u4e5f\u53ef\u5728\u6587\u4ef6\u67e5\u770b\u9875\u9762\u8fdb\u884c\u6587\u4ef6\u4e0b\u8f7d

    "},{"location":"user_manual/project_management/file_management/#5","title":"5 \u6587\u4ef6\u5220\u9664","text":"

    \u53ef\u70b9\u51fb\u5217\u8868\u540e\u9762\u5220\u9664\u6309\u94ae\u8fdb\u884c\u6587\u4ef6\u5220\u9664\uff0c\u4e5f\u53ef\u5728\u6587\u4ef6\u67e5\u770b\u9875\u9762\u8fdb\u884c\u6587\u4ef6\u5220\u9664

    "},{"location":"user_manual/project_management/file_management/#6","title":"6 \u7b2c\u4e09\u65b9\u4ed3\u5e93","text":"

    \u65b0\u5efa\u6a21\u5757\u65f6\uff0c\u9009\u62e9\u3010\u5b58\u50a8\u5e93\u3011\uff0c\u652f\u6301\u5bf9\u63a5\u7b2c\u4e09\u65b9\u4ed3\u5e93\uff08\u5982 GitHub\u3001GitLab \u548c Gitee\uff09\uff0c\u586b\u5199\u76f8\u5e94\u4fe1\u606f\u3002

    \u70b9\u51fb\u3010\u4e0a\u4f20\u6587\u4ef6\u3011\u6309\u94ae\uff0c\u586b\u5199\u76f8\u5173\u4fe1\u606f\uff0c\u70b9\u51fb\u786e\u5b9a\u6309\u94ae\u5373\u53ef

    \u70b9\u51fb\u3010\u67e5\u770b\u3011\u6309\u94ae\uff0c\u53ef\u67e5\u770b\u6587\u4ef6\u8be6\u7ec6\u4fe1\u606f

    \u5207\u6362\u5230\u3010\u5173\u8054\u7528\u4f8b\u3011\u548c\u3010\u7248\u672c\u5386\u53f2\u3011\u9875\u9762\uff0c\u53ef\u67e5\u770b\u5177\u4f53\u8be6\u7ec6\u4fe1\u606f

    "},{"location":"user_manual/project_management/notice_management/","title":"\u6d88\u606f\u8bbe\u7f6e","text":""},{"location":"user_manual/project_management/notice_management/#1","title":"1 \u6d88\u606f\u8bbe\u7f6e","text":"

    \u9488\u5bf9\u7cfb\u7edf\u7684\u6bcf\u4e2a\u529f\u80fd\u90fd\u652f\u6301\u7528\u6237\u6839\u636e\u9700\u8981\u8fdb\u884c\u3010\u9879\u76ee\u7ea7\u522b\u3011\u7684\u4efb\u52a1\u901a\u77e5\u8bbe\u7f6e\u3002\u70b9\u51fb\u3010\u9879\u76ee\u7ba1\u7406\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u6d88\u606f\u8bbe\u7f6e\u3011\u5373\u53ef\u8fdb\u5165\u6d88\u606f\u8bbe\u7f6e\u9875\u9762\uff0c\u5e76\u4e14\u7cfb\u7edf\u652f\u6301\u63a5\u6536\u4eba\u5458\u6309\u89d2\u8272\u6216\u6307\u5b9a\u5177\u4f53\u4eba\u5458\uff1b\u540c\u65f6\u652f\u6301\u7ad9\u5185\u901a\u77e5\u548c\u7ad9\u5916\u901a\u77e5\u591a\u79cd\u901a\u77e5\u65b9\u5f0f\u7b49\u529f\u80fd\u3002

    • \u6d4b\u8bd5\u8ddf\u8e2a\u4efb\u52a1\u901a\u77e5 \u6d4b\u8bd5\u8ddf\u8e2a\u7684\u6bcf\u4e2a\u9875\u9762\uff1a\u9996\u9875\u3001\u6d4b\u8bd5\u7528\u4f8b\u3001\u7528\u4f8b\u8bc4\u5ba1\u3001\u6d4b\u8bd5\u8ba1\u5212\u3001\u6d4b\u8bd5\u62a5\u544a\u3001\u7f3a\u9677\u7ba1\u7406\u7b49\u9875\u9762\u90fd\u652f\u6301\u81ea\u5b9a\u4e49\u4efb\u52a1\u901a\u77e5\u3002

    \u540c\u65f6\u6d4b\u8bd5\u8ddf\u8e2a\u9875\u9762\u4e0a\u7684\u6bcf\u4e2a\u5173\u952e\u64cd\u4f5c\uff0c\u90fd\u53ef\u4ee5\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u4efb\u52a1\u901a\u77e5\u3002\u6bd4\u5982\u6d4b\u8bd5\u8ba1\u5212\u7684\u65b0\u5efa\u3001\u66f4\u65b0\u3001\u5220\u9664\u3001\u6267\u884c\u5b8c\u6210\u7b49\uff0c\u90fd\u53ef\u4ee5\u8bbe\u7f6e\u76f8\u5e94\u7684\u4efb\u52a1\u901a\u77e5\u3002

    • \u63a5\u53e3\u6d4b\u8bd5\u4efb\u52a1\u901a\u77e5 \u63a5\u53e3\u6d4b\u8bd5\u7684\u6bcf\u4e2a\u9875\u9762\uff1a\u9996\u9875\u3001\u63a5\u53e3\u5b9a\u4e49\u3001\u63a5\u53e3\u81ea\u52a8\u5316\u3001\u6d4b\u8bd5\u62a5\u544a\u7b49\u9875\u9762\u90fd\u652f\u6301\u81ea\u5b9a\u4e49\u4efb\u52a1\u901a\u77e5\u3002

    \u540c\u65f6\u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u4e0a\u7684\u6bcf\u4e2a\u5173\u952e\u64cd\u4f5c\uff0c\u90fd\u53ef\u4ee5\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u4efb\u52a1\u901a\u77e5\u3002\u6bd4\u5982\u63a5\u53e3\u5b9a\u4e49\u4e2d API \u76f8\u5173\u7684\u589e\u5220\u6539\u3001CASE \u76f8\u5173\u7684\u589e\u5220\u6539\u7b49\u64cd\u4f5c\uff0c\u90fd\u53ef\u4ee5\u8bbe\u7f6e\u76f8\u5e94\u7684\u4efb\u52a1\u901a\u77e5\u3002

    • \u6027\u80fd\u6d4b\u8bd5\u4efb\u52a1\u901a\u77e5 \u6027\u80fd\u6d4b\u8bd5\u7684\u6bcf\u4e2a\u9875\u9762\uff1a\u6d4b\u8bd5\u3001\u6d4b\u8bd5\u62a5\u544a\u7b49\u9875\u9762\u90fd\u652f\u6301\u81ea\u5b9a\u4e49\u4efb\u52a1\u901a\u77e5\u3002

    \u540c\u65f6\u6027\u80fd\u6d4b\u8bd5\u9875\u9762\u4e0a\u7684\u6bcf\u4e2a\u5173\u952e\u64cd\u4f5c\uff0c\u90fd\u53ef\u4ee5\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u4efb\u52a1\u901a\u77e5\u3002\u6bd4\u5982\u6d4b\u8bd5\u7684\u65b0\u5efa\u3001\u66f4\u65b0\u3001\u5220\u9664\u3001\u6267\u884c\u5b8c\u6210\u7b49\u64cd\u4f5c\uff0c\u90fd\u53ef\u4ee5\u8bbe\u7f6e\u76f8\u5e94\u7684\u4efb\u52a1\u901a\u77e5\u3002

    • Jenkins\u4efb\u52a1\u901a\u77e5 \u81ea\u52a8\u5316\u901a\u8fc7 Jenkins \u6301\u7eed\u90e8\u7f72\u6765\u542f\u52a8 MeterSphere \u81ea\u52a8\u5316\u811a\u672c\u65f6\uff0c\u53ef\u4ee5\u5728\u8fd9\u91cc\u8bbe\u7f6e\u6b64\u7c7b\u578b\u7684\u4efb\u52a1\u901a\u77e5\u3002

    Jenkins \u4efb\u52a1\u901a\u77e5\u81ea\u52a8\u5316\u901a\u8fc7 Jenkins \u6301\u7eed\u90e8\u7f72\u6765\u542f\u52a8 MeterSphere \u81ea\u52a8\u5316\u811a\u672c\u65f6\uff0c\u53ef\u4ee5\u5728\u8fd9\u91cc\u8bbe\u7f6e\u6b64\u7c7b\u578b\u7684\u4efb\u52a1\u901a\u77e5\u3002

    "},{"location":"user_manual/project_management/notice_management/#2-x-pack","title":"2 \u81ea\u5b9a\u4e49\u6d88\u606f\u6a21\u677f (X-Pack)","text":"

    \u70b9\u51fb\u3010\u6a21\u677f\u3011\u6309\u94ae\uff0c\u6765\u5230\u81ea\u5b9a\u4e49\u6a21\u677f\u9875\u9762\uff0c\u53ef\u4ee5\u70b9\u51fb\u3010\u6a21\u677f\u3011\u540e\u7684\u3010i\u3011\uff0c\u4f1a\u6709\u4e00\u4e9b\u53d8\u91cf\u8bf4\u660e\u53ca\u5176\u5f15\u7528\u65b9\u5f0f\uff0c\u53ef\u4ee5\u7528\u4e8e\u81ea\u5b9a\u4e49\u5185\u5bb9\u4e2d\u3002

    "},{"location":"user_manual/project_management/operation_log/","title":"\u64cd\u4f5c\u65e5\u5fd7","text":"

    \u663e\u793a\u767b\u5f55\u7528\u6237\u5f53\u524d\u6240\u5904\u7684\u3010\u9879\u76ee\u3011\u7684\u6d4b\u8bd5\u8d44\u6e90\u65e5\u5fd7\u4fe1\u606f\uff0c\u5e76\u4e14\u53ef\u4ee5\u4f7f\u7528\u9ad8\u7ea7\u67e5\u8be2\u6765\u5feb\u901f\u67e5\u627e\u76f8\u5173\u65e5\u5fd7\u7cfb\u7edf\u3002

    "},{"location":"user_manual/project_management/operation_log/#1","title":"1 \u64cd\u4f5c\u65e5\u5fd7","text":"

    \u8be6\u7ec6\u529f\u80fd\u64cd\u4f5c\u53ca\u8bf4\u660e\u53c2\u8003 \u7cfb\u7edf->\u5de5\u4f5c\u7a7a\u95f4->\u64cd\u4f5c\u65e5\u5fd7\u3002

    "},{"location":"user_manual/project_management/project_environment/","title":"\u9879\u76ee\u73af\u5883","text":"

    \u663e\u793a\u5f53\u524d\u9879\u76ee\u7684\u6240\u6709\u73af\u5883\u4fe1\u606f\uff0c\u540c\u65f6\u53ef\u4ee5\u7ef4\u62a4\u9879\u76ee\u73af\u5883\u4fe1\u606f\u3001\u5bfc\u5165\u548c\u5bfc\u51fa\u73af\u5883\u4fe1\u606f\u3002

    "},{"location":"user_manual/project_management/project_environment/#1","title":"1 \u9879\u76ee\u73af\u5883","text":"

    \u3010\u521b\u5efa\u73af\u5883\u3011\u3001\u3010\u5bfc\u5165\u3011\u3001\u3010\u5bfc\u51fa\u3011\u3001\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u3001\u3010\u5220\u9664\u3011\u7b49\u8be6\u7ec6\u529f\u80fd\u64cd\u4f5c\u53ca\u8bf4\u660e\u53c2\u8003 \u7cfb\u7edf\u8bbe\u7f6e->\u5de5\u4f5c\u7a7a\u95f4->\u73af\u5883\u7ba1\u7406\u3002

    "},{"location":"user_manual/project_management/project_info/","title":"\u9879\u76ee\u4fe1\u606f","text":"

    \u663e\u793a\u5f53\u524d\u9879\u76ee\u7684\u57fa\u672c\u4fe1\u606f\u548c\u9879\u76ee\u57fa\u672c\u64cd\u4f5c\u529f\u80fd\u3002

    "},{"location":"user_manual/project_management/project_info/#1","title":"1 \u9879\u76ee\u57fa\u7840\u914d\u7f6e","text":"

    \u9ed8\u8ba4\u5728\u3010\u9879\u76ee\u4fe1\u606f\u3011\u9875\u9762\uff0c\u8be5\u9875\u9762\u5206\u4e3a\u5de6\u53f3\u4e24\u90e8\u5206\uff0c\u5de6\u8fb9\u662f\u9879\u76ee\u57fa\u672c\u4fe1\u606f\uff1b\u53f3\u8fb9\u662f\u9879\u76ee\u57fa\u672c\u64cd\u4f5c\u529f\u80fd\uff0c\u6b64\u529f\u80fd\u5728\u9875\u9762\u9876\u90e8\u4e5f\u6709\u663e\u793a\u3002

    "},{"location":"user_manual/project_management/project_user/","title":"\u9879\u76ee\u6210\u5458","text":"

    \u4e3a\u9879\u76ee\u6307\u5b9a\u9879\u76ee\u6210\u5458\uff0c\u5373\u54ea\u4e9b\u6210\u5458\u6709\u9879\u76ee\u89d2\u8272\uff0c\u540c\u65f6\u53ef\u5bf9\u5f53\u524d\u9879\u76ee\u6210\u5458\u8fdb\u884c\u6dfb\u52a0\u3001\u4fee\u6539\u53ca\u5220\u9664\u7684\u64cd\u4f5c\u3002

    "},{"location":"user_manual/project_management/project_user/#1","title":"1 \u9879\u76ee\u6210\u5458","text":"

    \u70b9\u51fb\u3010\u9879\u76ee\u6210\u5458\u3011\u83dc\u5355\uff0c\u5373\u53ef\u67e5\u770b\u5f53\u524d\u6709\u9879\u76ee\u89d2\u8272\u7684\u6210\u5458\u3002

    \u70b9\u51fb\u9875\u9762\u5de6\u4e0a\u89d2\u3010\u6dfb\u52a0\u6210\u5458\u3011\uff0c\u53ef\u6839\u636e\u7528\u6237 ID \u548c\u7528\u6237\u90ae\u7bb1\u641c\u7d22\u9700\u8981\u6dfb\u52a0\u7684\u7528\u6237\uff0c\u53ef\u9009\u62e9\u7528\u6237\u7ec4\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5b8c\u6210\u9879\u76ee\u6210\u5458\u6dfb\u52a0\u3002

    \u6dfb\u52a0\u5b8c\u6210\u540e\u53ef\u5728\u6210\u5458\u5217\u8868\u4e2d\u67e5\u770b\u5230\u6dfb\u52a0\u7684\u6210\u5458\uff0c\u5728\u6210\u5458\u7684\u64cd\u4f5c\u5217\u4e2d\u53ef\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u548c\u3010\u5220\u9664\u3011\u8fdb\u884c\u6210\u5458\u4fee\u6539\u548c\u6210\u5458\u5220\u9664\u64cd\u4f5c\u3002

    "},{"location":"user_manual/project_management/template_management/","title":"\u6a21\u7248\u7ba1\u7406","text":"

    \u7cfb\u7edf\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u3010\u9879\u76ee\u7ea7\u522b\u3011\u7684\u3010\u6a21\u677f\u5b57\u6bb5\u3011\u3001\u3010\u7528\u4f8b\u6a21\u677f\u3011\u3001\u3010\u7f3a\u9677\u6a21\u677f\u3011\u3001\u3010\u63a5\u53e3\u6a21\u677f\u3011\u3002

    "},{"location":"user_manual/project_management/template_management/#1","title":"1 \u6a21\u677f\u5b57\u6bb5","text":"

    \u5728\u81ea\u5b9a\u4e49\u6a21\u677f\u524d\uff08\u7528\u4f8b&\u7f3a\u9677\uff09\uff0c\u9700\u8981\u5148\u81ea\u5b9a\u4e49\u6a21\u677f\u4e2d\u5b57\u6bb5\u7684\u57fa\u672c\u5c5e\u6027\u3002\u70b9\u51fb\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u6a21\u677f\u7ba1\u7406\u3011-\u3010\u6a21\u677f\u5b57\u6bb5\u3011\uff0c\u5373\u53ef\u67e5\u770b\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u6240\u6709\u6a21\u677f\u5b57\u6bb5\u5217\u8868\u3002

    • \u521b\u5efa\u5b57\u6bb5 \u70b9\u51fb\u9875\u9762\u5de6\u4e0a\u89d2\u3010\u521b\u5efa\u5b57\u6bb5\u3011\uff0c\u8bbe\u7f6e\u5b57\u6bb5\u7684\u57fa\u672c\u4fe1\u606f\uff1a\u540d\u79f0\u3001\u5907\u6ce8\u3001\u4f7f\u7528\u573a\u666f\u3001\u5b57\u6bb5\u7c7b\u578b\u7b49\u57fa\u672c\u4fe1\u606f\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5b8c\u6210\u6a21\u677f\u5b57\u6bb5\u6dfb\u52a0\u3002

    \u4e2a\u522b\u5b57\u6bb5\u8bf4\u660e

    \u3010\u4f7f\u7528\u573a\u666f\u3011\uff1a\u8bbe\u7f6e\u5b9a\u4e49\u7684\u5b57\u6bb5\u4f7f\u7528\u4e8e\u5177\u4f53\u7684\u6a21\u677f\u4e2d\u3002 \u3010\u5b57\u6bb5\u7c7b\u578b\u3011\uff1a\u7cfb\u7edf\u63d0\u4f9b\u591a\u79cd\u5b57\u6bb5\u7c7b\u578b\u53ef\u4f9b\u9009\u62e9\uff0c\u6839\u636e\u4e0d\u540c\u5b57\u6bb5\u7c7b\u578b\uff0c\u7cfb\u7edf\u81ea\u52a8\u63a7\u5236\u5b57\u6bb5\u7684\u663e\u793a\u3001\u8bbe\u7f6e\u548c\u5c5e\u6027\u7b49\u3002\u5b57\u6bb5\u652f\u6301\u7684\u7c7b\u578b\u6709\u8f93\u5165\u6846\u3001\u6587\u672c\u6846\u3001\u4e0b\u6765\u9009\u62e9\u6846\uff08\u5355\u9009&\u591a\u9009\uff09\u3001\u65e5\u671f\u65f6\u95f4\u5668\u3001\u6570\u503c\u7b49\u7b49\u7c7b\u578b\u3002

    • \u7ef4\u62a4\u5b57\u6bb5 \u521b\u5efa\u5b8c\u6210\u540e\u53ef\u5728\u6a21\u677f\u5b57\u6bb5\u5217\u8868\u4e2d\u67e5\u770b\u5230\u6dfb\u52a0\u7684\u6a21\u677f\u5b57\u6bb5\uff0c\u5728\u81ea\u5b9a\u4e49\u5b57\u6bb5\u4fe1\u606f\u4e2d\u53ef\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u548c\u3010\u5220\u9664\u3011\u6309\u94ae\u8fdb\u884c\u6a21\u677f\u5b57\u6bb5\u4fee\u6539\u3001\u590d\u5236\u548c\u5220\u9664\u64cd\u4f5c\u3002

    "},{"location":"user_manual/project_management/template_management/#2","title":"2 \u7528\u4f8b\u6a21\u7248","text":"

    \u7528\u4f8b\u6a21\u677f\u5373\u5f53\u524d\u9879\u76ee\u4e0b\u90fd\u53ef\u4f7f\u7528\u7684\u6d4b\u8bd5\u7528\u4f8b\u6a21\u677f\uff0c\u5e76\u4e14\u53ef\u5bf9\u7528\u4f8b\u6a21\u677f\u6dfb\u52a0\u3001\u4fee\u6539\u3001\u590d\u5236\u53ca\u79fb\u9664\u7684\u64cd\u4f5c\u3002\u70b9\u51fb\u9875\u9762\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u6a21\u7248\u7ba1\u7406\u3011-\u3010\u7528\u4f8b\u6a21\u7248\u3011\uff0c\u5373\u53ef\u67e5\u770b\u5f53\u524d\u9879\u76ee\u4e2d\u7684\u6240\u6709\u7528\u4f8b\u6a21\u677f\u5217\u8868\u3002

    • \u521b\u5efa\u6a21\u677f \u70b9\u51fb\u9875\u9762\u5de6\u4e0a\u89d2\u3010\u521b\u5efa\u6a21\u677f\u3011\uff0c\u521b\u5efa\u65b0\u7684\u7528\u4f8b\u6a21\u677f\uff0c\u8bbe\u7f6e\u7528\u4f8b\u57fa\u672c\u4fe1\u606f\u3001\u6a21\u677f\u8bbe\u7f6e\u660e\u7ec6\u4fe1\u606f\u7b49\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5b8c\u6210\u7528\u4f8b\u6a21\u677f\u6dfb\u52a0\u3002\u5982\u679c\u6a21\u677f\u6dfb\u52a0\u7684\u5b57\u6bb5\u4fe1\u606f\u4e0d\u5b58\u5728\uff0c\u53ef\u4ee5\u5728\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u6a21\u7248\u7ba1\u7406\u3011-\u3010\u6a21\u7248\u5b57\u6bb5\u3011\u4e2d\u8fdb\u884c\u521b\u5efa\uff0c\u7136\u540e\u5728\u6b64\u5f15\u7528\u5373\u53ef\u3002

    • \u7ef4\u62a4\u6a21\u677f \u521b\u5efa\u5b8c\u6210\u540e\u53ef\u5728\u7528\u4f8b\u6a21\u677f\u5217\u8868\u4e2d\u67e5\u770b\u5230\u6dfb\u52a0\u7684\u7528\u4f8b\u6a21\u677f\uff0c\u5728\u7528\u4f8b\u6a21\u677f\u4fe1\u606f\u4e2d\u53ef\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u548c\u3010\u5220\u9664\u3011\u6309\u94ae\u8fdb\u884c\u7528\u4f8b\u6a21\u677f\u4fee\u6539\u3001\u590d\u5236\u548c\u5220\u9664\u64cd\u4f5c\u3002

    • \u5f15\u7528\u6a21\u677f \u521b\u5efa\u7528\u4f8b\u6a21\u677f\u540e\uff0c\u9700\u8981\u5728\u9879\u76ee\u4e2d\u4f7f\u7528\u521b\u5efa\u7684\u6a21\u677f\uff0c\u53ef\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u9879\u76ee\u7ba1\u7406\u3011-\u3010\u7f16\u8f91\u3011\u9875\u9762\uff0c\u9009\u62e9\u8981\u4f7f\u7528\u7684\u7528\u4f8b\u6a21\u677f

    "},{"location":"user_manual/project_management/template_management/#3","title":"3 \u7f3a\u9677\u6a21\u7248","text":"

    \u5728\u3010\u6a21\u7248\u7ba1\u7406\u3011-\u3010\u7f3a\u9677\u6a21\u7248\u3011\uff0c\u4f1a\u663e\u793a\u5f53\u524d\u9879\u76ee\u4e0b\u7684\u7f3a\u9677\u6a21\u7248\u5217\u8868\uff0c\u652f\u6301\u67e5\u8be2\u3001\u7f16\u8f91\u3001\u590d\u5236\u3001\u5220\u9664\u7b49\u64cd\u4f5c\u3002

    • \u521b\u5efa\u7f3a\u9677\u6a21\u677f \u70b9\u51fb\u9875\u9762\u5de6\u4e0a\u89d2\u3010\u521b\u5efa\u7f3a\u9677\u6a21\u677f\u3011\u65b0\u5efa\u7f3a\u9677\u6a21\u677f\uff0c\u8bbe\u7f6e\u7528\u4f8b\u57fa\u672c\u4fe1\u606f\u3001\u6a21\u677f\u8bbe\u7f6e\u660e\u7ec6\u4fe1\u606f\u7b49\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5b8c\u6210\u9879\u76ee\u7f3a\u9677\u6a21\u677f\u6dfb\u52a0\u3002\u5982\u679c\u6a21\u677f\u6dfb\u52a0\u5b57\u6bb5\u4fe1\u606f\u4e0d\u5b58\u5728\uff0c\u53ef\u4ee5\u5728\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u6a21\u7248\u7ba1\u7406\u3011-\u3010\u6a21\u7248\u5b57\u6bb5\u3011\u4e2d\u8fdb\u884c\u521b\u5efa\uff0c\u7136\u540e\u5728\u6b64\u5f15\u7528\u5373\u53ef\u3002

    • \u7ef4\u62a4\u5b57\u6bb5 \u521b\u5efa\u5b8c\u6210\u540e\u53ef\u5728\u7f3a\u9677\u6a21\u677f\u5217\u8868\u4e2d\u67e5\u770b\u5230\u6dfb\u52a0\u7684\u6a21\u677f\uff0c\u5728\u7f3a\u9677\u6a21\u677f\u4fe1\u606f\u4e2d\u53ef\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u548c\u3010\u5220\u9664\u3011\u6309\u94ae\u8fdb\u884c\u7f3a\u9677\u6a21\u677f\u4fee\u6539\u3001\u590d\u5236\u548c\u5220\u9664\u7b49\u64cd\u4f5c\u3002

    • \u5f15\u7528\u6a21\u677f \u521b\u5efa\u7f3a\u9677\u6a21\u677f\u540e\uff0c\u9700\u8981\u5728\u9879\u76ee\u4e2d\u4f7f\u7528\u521b\u5efa\u7684\u6a21\u677f\uff0c\u53ef\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u9879\u76ee\u7ba1\u7406\u3011-\u3010\u7f16\u8f91\u3011\u9875\u9762\uff0c\u9009\u62e9\u8981\u4f7f\u7528\u7684\u7f3a\u9677\u6a21\u677f

    "},{"location":"user_manual/project_management/template_management/#4","title":"4 \u63a5\u53e3\u6a21\u677f","text":"

    \u63a5\u53e3\u6d4b\u8bd5\u652f\u6301\u81ea\u5b9a\u4e49\u63a5\u53e3\u6a21\u677f\uff0c\u652f\u6301\u67e5\u8be2\u3001\u7f16\u8f91\u3001\u590d\u5236\u3001\u5220\u9664\u7b49\u64cd\u4f5c\u3002

    • \u521b\u5efa\u63a5\u53e3\u6a21\u677f \u70b9\u51fb\u9875\u9762\u5de6\u4e0a\u89d2\u3010\u521b\u5efa\u6a21\u677f\u3011\u65b0\u5efa\u63a5\u53e3\u9677\u6a21\u677f\uff0c\u586b\u5199\u57fa\u672c\u4fe1\u606f\u3001\u6a21\u677f\u8bbe\u7f6e\u7b49\u4fe1\u606f\uff0c\u6dfb\u52a0\u5b57\u6bb5\u6216\u8bbe\u7f6e\u81ea\u5b9a\u4e49\u5b57\u6bb5\u540e\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5373\u53ef\u3002

    • \u7ef4\u62a4\u6a21\u677f \u521b\u5efa\u5b8c\u6210\u540e\u53ef\u5728\u63a5\u53e3\u6a21\u677f\u5217\u8868\u4e2d\u67e5\u770b\u5230\u6dfb\u52a0\u7684\u63a5\u53e3\u6a21\u677f\uff0c\u5728\u63a5\u53e3\u6a21\u677f\u4fe1\u606f\u4e2d\u53ef\u5bf9\u6a21\u677f\u8fdb\u884c\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u548c\u3010\u5220\u9664\u3011\u7b49\u64cd\u4f5c\u3002

    • \u5f15\u7528\u6a21\u677f \u521b\u5efa\u63a5\u53e3\u6a21\u677f\u540e\uff0c\u9700\u8981\u5728\u9879\u76ee\u4e2d\u4f7f\u7528\u521b\u5efa\u7684\u6a21\u677f\uff0c\u53ef\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u9879\u76ee\u7ba1\u7406\u3011-\u3010\u7f16\u8f91\u3011\u9875\u9762\uff0c\u9009\u62e9\u8981\u4f7f\u7528\u7684\u63a5\u53e3\u6a21\u677f

    \u5728\u521b\u5efa\u63a5\u53e3\u5b9a\u4e49\u65f6\uff0c\u63a5\u53e3\u57fa\u7840\u4fe1\u606f\u4e2d\u4f1a\u5c55\u793a\u81ea\u5b9a\u4e49\u7684\u6a21\u677f\u5b57\u6bb5\u3002

    "},{"location":"user_manual/project_management/usergroup_permission/","title":"\u7528\u6237\u7ec4\u4e0e\u6743\u9650","text":"

    \u7ef4\u62a4\u5f53\u524d\u9879\u76ee\u7528\u6237\u53ca\u6743\u9650\u3002

    "},{"location":"user_manual/project_management/usergroup_permission/#1","title":"1 \u65b0\u589e\u7528\u6237\u7ec4","text":"

    \u70b9\u51fb\u3010\u521b\u5efa\u7528\u6237\u7ec4\u3011\uff0c\u65b0\u589e\u5f53\u524d\u9879\u76ee\u7684\u7528\u6237\u7ec4\u4fe1\u606f\u3002\u8be6\u7ec6\u529f\u80fd\u64cd\u4f5c\u53ca\u8bf4\u660e\u53c2\u8003 \u7cfb\u7edf\u8bbe\u7f6e->\u7cfb\u7edf->\u7528\u6237\u7ec4\u4e0e\u6743\u9650->\u521b\u5efa\u7528\u6237\u7ec4\u3002

    "},{"location":"user_manual/project_management/usergroup_permission/#2","title":"2 \u8bbe\u7f6e\u7528\u6237\u7ec4\u6743\u9650","text":"

    \u70b9\u51fb\u3010\u8bbe\u7f6e\u6743\u9650\u3011\u4e3a\u7528\u6237\u7ec4\u8fdb\u884c\u6743\u9650\u8bbe\u7f6e\u3002\u8be6\u7ec6\u529f\u80fd\u64cd\u4f5c\u53ca\u8bf4\u660e\u53c2\u8003 \u7cfb\u7edf\u8bbe\u7f6e->\u7cfb\u7edf->\u7528\u6237\u7ec4\u4e0e\u6743\u9650->\u8bbe\u7f6e\u6743\u9650\u3002

    "},{"location":"user_manual/project_management/usergroup_permission/#3","title":"3 \u8bbe\u7f6e\u7528\u6237\u7ec4\u6210\u5458","text":"

    \u5728\u7528\u6237\u7ec4\u5217\u8868\u4fe1\u606f\u6210\u5458\u5904\uff0c\u70b9\u51fb\u4fe1\u606f\u5217\u91cc\u7684\u3010\u6570\u5b57\u3011\u4e3a\u7528\u6237\u7ec4\u8fdb\u884c\u6210\u5458\u8bbe\u7f6e\u3002\u8be6\u7ec6\u529f\u80fd\u64cd\u4f5c\u53ca\u8bf4\u660e\u53c2\u8003 \u7cfb\u7edf\u8bbe\u7f6e->\u7cfb\u7edf->\u7528\u6237\u7ec4\u4e0e\u6743\u9650->\u6210\u5458\u8bbe\u7f6e\u3002

    "},{"location":"user_manual/project_management/version%20management/","title":"\u7248\u672c\u7ba1\u7406","text":"

    \u4e0d\u540c\u7248\u672c\u7684\u9879\u76ee\u6709\u4e0d\u540c\u7248\u672c\u7684\u7528\u4f8b\uff0c\u540e\u4e00\u4e2a\u7248\u672c\u662f\u5728\u524d\u4e00\u4e2a\u7248\u672c\u7684\u57fa\u7840\u4e0a\u4e0d\u65ad\u66f4\u65b0\u5b8c\u5584

    "},{"location":"user_manual/project_management/version%20management/#1-x-pack","title":"1 \u7248\u672c\u7ba1\u7406 (X-Pack)","text":"

    \u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u7248\u672c\u7ba1\u7406\u3011\u9875\u9762\uff0c\u542f\u7528\u7248\u672c\u7ba1\u7406\uff0c\u70b9\u51fb\u3010\u521b\u5efa\u7248\u672c\u3011\u3002

    \u5728\u3010\u521b\u5efa\u7248\u672c\u3011\u9875\u9762\uff0c\u8f93\u5165\u57fa\u672c\u914d\u7f6e\u4fe1\u606f\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u6216\u8005\u3010\u4fdd\u5b58\u5e76\u521b\u5efa\u3011\u5373\u53ef\u3002

    \u521b\u5efa\u7248\u672c\u5b8c\u6210\u540e\uff0c\u662f\u5426\u542f\u7528\u3010\u72b6\u6001\u3011\u548c\u3010\u6700\u65b0\u7248\u3011\u3002

    \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u8fdb\u5165\u7f16\u8f91\u9875\u9762\uff0c\u7f16\u8f91\u5b8c\u6210\u540e\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5373\u53ef\u3002

    \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u6309\u7167\u63d0\u793a\u8f93\u5165\u3010DELETE-v1.0.0\u3011\uff0c\u8be5\u7248\u672c\u53f7\u5c31\u88ab\u5220\u9664\u4e86\u3002

    "},{"location":"user_manual/report_statistics/project_statistics/","title":"\u9879\u76ee\u62a5\u8868","text":"

    \u62a5\u8868\u7edf\u8ba1\u9875\u9762\u4e3b\u8981\u5c55\u793a\u62a5\u8868\u7c7b\u578b\uff0c\u7528\u6237\u53ef\u6839\u636e\u4e0d\u540c\u62a5\u8868\u7c7b\u578b\u521b\u5efa\u62a5\u8868\u3002

    "},{"location":"user_manual/report_statistics/project_statistics/#1","title":"1 \u6d4b\u8bd5\u7528\u4f8b\u7edf\u8ba1","text":"

    \u70b9\u51fb\u3010\u6d4b\u8bd5\u7528\u4f8b\u7edf\u8ba1\u3011\uff0c\u8fdb\u5165\u6d4b\u8bd5\u7528\u4f8b\u7edf\u8ba1\u9875\u9762\uff0c\u53ef\u4ee5\u770b\u5230\u5df2\u521b\u5efa\u7684\u62a5\u8868\u3002

    • \u521b\u5efa\u65b0\u62a5\u8868

    \u9009\u9879\u63d0\u4f9b\u6c34\u5e73\u8f74\u7cfb\u5217\u3001\u7eb5\u5411\u8f74\u7cfb\u5217\uff0c\u521b\u5efa\u65f6\u95f4\u4e09\u4e2a\u7ef4\u5ea6\u751f\u6210\u62a5\u544a\u3002

    • \u6c34\u5e73\u8f74\u7cfb\u5217

    \u6c34\u5e73\u8f74\u53ea\u652f\u6301\u5355\u9009\u3002

    • \u7eb5\u5411\u8f74\u7cfb\u5217

    \u7eb5\u5411\u8f74\u652f\u6301\u591a\u9009\u3002

    • \u521b\u5efa\u65f6\u95f4

    \u521b\u5efa\u65f6\u95f4\u652f\u6301\u52a8\u6001\u65f6\u95f4\u548c\u56fa\u5b9a\u65f6\u95f4\u751f\u6210\u62a5\u8868\u3002

    • \u66f4\u591a\u9009\u9879

    \u66f4\u591a\u9009\u9879\u53ef\u6839\u636e\u521b\u5efa\u4eba\u7b49\u6761\u4ef6\u8fc7\u6ee4\u751f\u6210\u62a5\u8868\u3002

    • \u4fdd\u5b58

    \u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u53ef\u4fdd\u5b58\u62a5\u8868\u3002

    • \u53e6\u5b58\u4e3a

    \u70b9\u51fb\u3010\u53e6\u5b58\u4e3a\u3011\u53ef\u5c06\u5f53\u524d\u62a5\u8868\u53e6\u5b58\u4e3a\u5176\u4ed6\u62a5\u8868\u3002

    • \u5168\u90e8\u62a5\u8868

    \u70b9\u51fb\u3010\u5168\u90e8\u62a5\u8868\u3011\u53ef\u67e5\u770b\u6240\u6709\u62a5\u8868\u3002

    • \u6211\u7684\u62a5\u8868

    \u70b9\u51fb\u3010\u6211\u7684\u62a5\u8868\u3011\u53ef\u67e5\u770b\u81ea\u5df1\u521b\u5efa\u7684\u62a5\u8868\u3002

    • \u91cd\u547d\u540d\u62a5\u8868

    \u70b9\u51fb\u3010\u91cd\u547d\u540d\u3011\u53ef\u5c06\u81ea\u5df1\u521b\u5efa\u7684\u62a5\u8868\u91cd\u547d\u540d\u3002

    • \u5220\u9664

    \u70b9\u51fb\u3010\u5220\u9664\u3011\u53ef\u5c06\u81ea\u5df1\u521b\u5efa\u7684\u62a5\u8868\u5220\u9664\u3002

    • \u5bfc\u51fa

    \u70b9\u51fb\u3010\u5bfc\u51fa\u3011\u53ef\u5c06\u62a5\u8868\u5bfc\u51fa PDF \u6587\u4ef6\u3002

    "},{"location":"user_manual/report_statistics/report/","title":"\u9879\u76ee\u62a5\u544a","text":"

    \u7528\u6237\u521b\u5efa\u62a5\u8868\u8fdb\u884c\u4fdd\u5b58\u540e\uff0c\u53ef\u5728\u6d4b\u8bd5\u62a5\u544a\u5185\u5bb9\u4e2d\u5c06\u62a5\u8868\u6dfb\u52a0\u8fdb\u6765\u8fdb\u884c\u53d1\u9001\u3002

    "},{"location":"user_manual/report_statistics/report/#1-x-pack","title":"1 \u9879\u76ee\u62a5\u544a (X-Pack)","text":"
    • \u521b\u5efa\u62a5\u544a

    \u5207\u6362\u5230\u3010\u9879\u76ee\u62a5\u544a\u3011\u9875\u9762\uff0c\u70b9\u51fb\u3010\u521b\u5efa\u62a5\u544a\u3011\uff0c\u8fdb\u5165\u62a5\u544a\u914d\u7f6e\u9875\u9762

    \u586b\u5199\u62a5\u544a\u7684\u57fa\u7840\u4fe1\u606f\uff0c\u9f20\u6807\u60ac\u6d6e\u5230\u3010\u793a\u4f8b\u3011\u524d\u9762\u7684\u5c0f\u56fe\u6807\uff0c\u53ef\u770b\u5230\u5185\u5bb9\u4e3a\u3010\u6587\u672c\u3011\u548c\u3010\u62a5\u8868\u3011\uff0c\u6839\u636e\u9700\u8981\u8fdb\u884c\u914d\u7f6e\u3002

    \u62a5\u544a\u914d\u7f6e\u5b8c\u6210\u53ef\u70b9\u51fb\u3010\u9884\u89c8\u3011\u3001\u3010\u53d1\u9001\u3011\u3001\u3010\u4fdd\u5b58\u8349\u7a3f\u3011\u3001\u3010\u53d6\u6d88\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u3010\u53d1\u9001\u3011\u3001\u3010\u4fdd\u5b58\u8349\u7a3f\u3011\u7684\u62a5\u544a\u4f1a\u51fa\u73b0\u5728\u62a5\u544a\u5217\u8868\u4e2d

    • \u9884\u89c8\u62a5\u544a

    \u70b9\u51fb\u3010\u9884\u89c8\u3011\u6309\u94ae\uff0c\u5373\u53ef\u9884\u89c8\u8be5\u62a5\u544a\u7684\u5185\u5bb9

    • \u590d\u5236\u62a5\u544a

    \u70b9\u51fb\u3010\u590d\u5236\u3011\u6309\u94ae\uff0c\u5373\u53ef\u590d\u5236\u8be5\u62a5\u544a\uff0c\u663e\u793a\u5728\u5217\u8868\u4e0a\u65b9

    • \u7f16\u8f91\u62a5\u544a

    \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u5373\u53ef\u4fee\u6539\u8be5\u62a5\u544a\u7684\u5185\u5bb9\uff0c\u7f16\u8f91\u5b8c\u6210\u540e\u70b9\u51fb\u3010\u4fdd\u5b58\u8349\u7a3f\u3011\u6216\u3010\u53d1\u9001\u3011

    • \u5220\u9664\u62a5\u544a

    \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u5373\u53ef\u5220\u9664\u8be5\u62a5\u544a

    • \u5b9a\u65f6\u53d1\u9001

    \u70b9\u51fb\u3010\u5b9a\u65f6\u53d1\u9001\u3011\u6309\u94ae\uff0c\u5373\u53ef\u914d\u7f6e\u5b9a\u65f6\u4efb\u52a1\u53d1\u9001\u62a5\u544a

    "},{"location":"user_manual/system_management/intro/","title":"\u6982\u8ff0","text":"

    MeterSphere \u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\u4e3a\u4e0d\u540c\u89d2\u8272\u7684\u7528\u6237\u63d0\u4f9b\u4e86\u5bf9\u5e94\u7684\u7ba1\u7406\u8bbe\u7f6e\u529f\u80fd\uff0c\u5176\u4e2d\u5305\u62ec\uff1a

    • \u7cfb\u7edf\uff1a\u7cfb\u7edf\u7ea7\u522b\u7684\u7ba1\u7406\u914d\u7f6e\u529f\u80fd\uff0c\u4f8b\u5982\u6574\u4e2a\u7cfb\u7edf\u7684\u7528\u6237\u3001\u5de5\u4f5c\u7ba1\u7406\u3001\u7528\u6237\u7ec4\u4e0e\u6743\u9650\uff0c\u6d4b\u8bd5\u8d44\u6e90\u6c60\u7ba1\u7406\u53ca LDAP \u914d\u7f6e\u3001\u90ae\u4ef6\u914d\u7f6e\u7b49\u7cfb\u7edf\u53c2\u6570\u914d\u7f6e\u529f\u80fd\uff0c\u5305\u62ec\u6388\u6743\u7ba1\u7406\u3001\u64cd\u4f5c\u65e5\u5fd7\u3001\u63d2\u4ef6\u7ba1\u7406\u7b49\u5168\u5c40\u914d\u7f6e\u529f\u80fd\uff0c\u7528\u6237\u9700\u8981\u5177\u6709\u3010\u7cfb\u7edf\u7ba1\u7406\u5458\u3011\u89d2\u8272\u624d\u80fd\u770b\u5230\u8be5\u83dc\u5355\u3002
    • \u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406\uff1a\u5de5\u4f5c\u7a7a\u95f4\u7ea7\u522b\u7684\u7ba1\u7406\u914d\u7f6e\u529f\u80fd\uff0c\u4f8b\u5982\u5de5\u4f5c\u7a7a\u95f4\u4e0b\u7684\u6210\u5458\u7ba1\u7406\u4ee5\u53ca\u5de5\u4f5c\u7a7a\u95f4\u7ea7\u522b\u7684\u914d\u7f6e\u529f\u80fd\uff0c\u5305\u62ec\u670d\u52a1\u96c6\u6210\u914d\u7f6e\u3001\u6d88\u606f\u8bbe\u7f6e\u3001\u9879\u76ee\u7ba1\u7406\u3001\u73af\u5883\u7ba1\u7406\u3001\u5de5\u4f5c\u7a7a\u95f4\u7ea7\u522b\u64cd\u4f5c\u65e5\u5fd7\u3001\u6a21\u7248\u7ba1\u7406\u7b49\uff0c\u7528\u6237\u9700\u8981\u5728\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u6709\u3010\u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406\u5458\u3011\u89d2\u8272\u624d\u80fd\u770b\u5230\u8be5\u83dc\u5355\u3002
    "},{"location":"user_manual/system_management/system/","title":"\u7cfb\u7edf","text":"

    \u7cfb\u7edf\u4e3b\u8981\u9488\u5bf9\u7cfb\u7edf\u7ea7\u522b\u7684\u7ba1\u7406\u914d\u7f6e\u529f\u80fd\u3002\u76ee\u524d\uff0cMeterSphere \u5185\u7f6e\u4e09\u7ea7\u79df\u6237\u4f53\u7cfb\u5e76\u53ef\u8bbe\u7f6e\u53ea\u8bfb\u7528\u6237\u3002\u5e73\u53f0\u9ed8\u8ba4\u7528\u6237\u7ec4\u53ca\u7528\u6237\u7ec4\u89d2\u8272\u5212\u5206\u4e3a\uff1a -\u3010\u7cfb\u7edf\u7ea7\u7528\u6237\u7ec4\u3011\uff1a\u7cfb\u7edf\u7ba1\u7406\u5458\u3002 -\u3010\u5de5\u4f5c\u7a7a\u95f4\u7ea7\u7528\u6237\u7ec4\u3011\uff1a\u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406\u5458\u3001\u5de5\u4f5c\u7a7a\u95f4\u6210\u5458\u3002 -\u3010\u9879\u76ee\u7ea7\u7528\u6237\u7ec4\u3011\uff1a\u9879\u76ee\u7ba1\u7406\u5458\u3001\u9879\u76ee\u6210\u5458\u3001\u53ea\u8bfb\u7528\u6237\u3002 \u5e73\u53f0\u7528\u6237\u7ec4\u652f\u6301\u7528\u6237\u5728\u3010\u7528\u6237\u7ec4\u4e0e\u6743\u9650\u3011\u529f\u80fd\u9875\u9762\u4e2d\u81ea\u5b9a\u4e49\u3002

    "},{"location":"user_manual/system_management/system/#1","title":"1 \u7528\u6237","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u7cfb\u7edf\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u7528\u6237\u3011\u8fdb\u5165\u7528\u6237\u754c\u9762\u3002\u53f3\u4fa7\u663e\u793a\u5f53\u524d\u7cfb\u7edf\u4e2d\u7684\u5168\u90e8\u7528\u6237\u5217\u8868\uff0c\u53ef\u4ee5\u5bf9\u7528\u6237\u8fdb\u884c\u3010\u65b0\u589e\u3011\u3001\u3010\u7f16\u8f91\u3011\u3001\u3010\u67e5\u8be2\u3011\u3001\u3010\u5220\u9664\u3011\u3001\u3010\u66f4\u6539\u72b6\u6001\u3011\u3001\u3010\u8bbe\u7f6e\u5bc6\u7801\u3011\u7b49\u64cd\u4f5c\u3002

    \u8bf4\u660e

    MeterSphere \u90e8\u7f72\u6210\u529f\u540e\u4f1a\u81ea\u52a8\u521b\u5efa\u4e00\u4e2a\u7cfb\u7edf\u7ba1\u7406\u5458\u8d26\u6237\uff0c\u7528\u6237\u540d\u4e3a admin\uff0c\u9ed8\u8ba4\u5bc6\u7801\u4e3a metersphere\u3002\u5982\u5c06\u5e73\u53f0\u7528\u4e8e\u751f\u4ea7\u73af\u5883\uff0c\u8bf7\u53ca\u65f6\u66f4\u6539\u5bc6\u7801\u3002

    • \u521b\u5efa\u7528\u6237 \u70b9\u51fb\u3010\u521b\u5efa\u7528\u6237\u3011\u6309\u94ae\u521b\u5efa\u7528\u6237\uff0c\u5728\u5f39\u51fa\u9875\u9762\u4e2d\u7f16\u8f91\u7528\u6237\u4fe1\u606f\u3002

    \u9700\u8981\u521b\u5efa\u591a\u4e2a\u7528\u6237\u65f6\uff0c\u53ef\u70b9\u51fb\u3010\u5bfc\u5165\u7528\u6237\u3011\u6309\u94ae\uff0c\u4e0b\u8f7d\u6a21\u7248\u5e76\u586b\u5199\u7528\u6237\u4fe1\u606f\uff0c\u901a\u8fc7 Excel \u6587\u4ef6\u5bfc\u5165\u7528\u6237\u3002

    • \u4e3a\u7528\u6237\u6dfb\u52a0\u7528\u6237\u7ec4 \u70b9\u51fb\u3010\u6dfb\u52a0\u7528\u6237\u7ec4\u3011\u6309\u94ae\u4e3a\u7528\u6237\u6dfb\u52a0\u7528\u6237\u7ec4\u4fe1\u606f\u3002\u65b0\u7528\u6237\u81f3\u5c11\u6240\u5c5e\u4e00\u4e2a\u7528\u6237\u7ec4\uff0c\u6bcf\u4e2a\u7528\u6237\u53ef\u4ee5\u5c5e\u4e8e\u591a\u4e2a\u7528\u6237\u7ec4\u3002

    • \u67e5\u8be2\u7528\u6237 \u7528\u6237\u5217\u8868\u53f3\u4e0a\u65b9\uff0c\u4f7f\u7528\u641c\u7d22\u6846\uff0c\u6839\u636e ID \u6216\u540d\u79f0\u67e5\u8be2\u7528\u6237\u3002

    • \u9488\u5bf9\u7528\u6237\u7684\u5176\u4ed6\u64cd\u4f5c \u5728\u7528\u6237\u5217\u8868\u53f3\u4fa7\u64cd\u4f5c\u5217\uff0c\u53ef\u4ee5\u70b9\u51fb\u3010Switch\u3011\u5f00\u5173\u5207\u6362\u9009\u5b9a\u7528\u6237\u542f\u7528\u72b6\u6001\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u53ef\u4fee\u6539\u7528\u6237\u4fe1\u606f\uff0c\u70b9\u51fb\u3010\u4fee\u6539\u5bc6\u7801\u3011\u53ef\u4fee\u6539\u7528\u6237\u7684\u5bc6\u7801\uff0c\u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\u5220\u9664\u8be5\u7528\u6237\u3002

    "},{"location":"user_manual/system_management/system/#2","title":"2 \u5de5\u4f5c\u7a7a\u95f4","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u7cfb\u7edf\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u5de5\u4f5c\u7a7a\u95f4\u3011\u8fdb\u5165\u5de5\u4f5c\u7a7a\u95f4\u754c\u9762\u3002\u53f3\u4fa7\u663e\u793a\u5f53\u524d\u7cfb\u7edf\u4e2d\u7684\u5168\u90e8\u5de5\u4f5c\u7a7a\u95f4\u5217\u8868\uff0c\u53ef\u4ee5\u5bf9\u5de5\u4f5c\u7a7a\u95f4\u8fdb\u884c\u3010\u65b0\u589e\u3011\u3001\u3010\u7f16\u8f91\u3011\u3001\u3010\u67e5\u8be2\u3011\u3001\u3010\u5220\u9664\u3011\u7b49\u64cd\u4f5c\u3002

    • \u521b\u5efa\u5de5\u4f5c\u7a7a\u95f4 \u70b9\u51fb\u3010\u521b\u5efa\u5de5\u4f5c\u7a7a\u95f4\u3011\u6309\u94ae\u521b\u5efa\u5de5\u4f5c\u7a7a\u95f4\uff0c\u5728\u5f39\u51fa\u9875\u9762\u4e2d\u586b\u5199\u540d\u79f0\u548c\u63cf\u8ff0\u3002

    • \u7f16\u8f91\u5de5\u4f5c\u7a7a\u95f4 \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u7f16\u8f91\u5de5\u4f5c\u7a7a\u95f4\uff0c\u5728\u5f39\u51fa\u9875\u9762\u4e2d\u4fee\u6539\u540d\u79f0\u548c\u63cf\u8ff0\u3002

    • \u5220\u9664\u5de5\u4f5c\u7a7a\u95f4 \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\u5220\u9664\u5de5\u4f5c\u7a7a\u95f4\u3002

    "},{"location":"user_manual/system_management/system/#3","title":"3 \u7528\u6237\u7ec4\u4e0e\u6743\u9650","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u7cfb\u7edf\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u7528\u6237\u7ec4\u4e0e\u6743\u9650\u3011\u8fdb\u5165\u7528\u6237\u7ec4\u754c\u9762\u3002\u7528\u6237\u53ef\u57fa\u4e8e\u81ea\u8eab\u9700\u6c42\u521b\u5efa\u81ea\u5b9a\u4e49\u7528\u6237\u7ec4\uff0c\u5e76\u8d4b\u4e88\u7528\u6237\u7ec4\u4e0d\u540c\u7684\u6743\u9650\u8bbe\u7f6e\u3002\u5176\u4e2d\u3010\u8d85\u7ea7\u7ba1\u7406\u5458\u3011\u7528\u6237\u7ec4\u62e5\u6709\u7cfb\u7edf\u5168\u90e8\u5de5\u4f5c\u7a7a\u95f4\u4e0e\u9879\u76ee\u7684\u64cd\u4f5c\u6743\u9650\uff0c\u7528\u6237\u53ef\u4ee5\u4e3a admin \u7528\u6237\u6dfb\u52a0\u3010\u8d85\u7ea7\u7ba1\u7406\u5458\u3011\u6743\u9650\u6765\u7ba1\u7406\u7cfb\u7edf\u5168\u90e8\u6570\u636e\u3002

    • \u521b\u5efa\u7528\u6237\u7ec4 \u70b9\u51fb\u3010\u521b\u5efa\u7528\u6237\u7ec4\u3011\u6309\u94ae\u65b0\u5efa\u81ea\u5b9a\u4e49\u7528\u6237\u7ec4\u3002\u5728\u5f39\u51fa\u7684\u754c\u9762\u4e2d\u7f16\u8f91\u7528\u6237\u7ec4\u540d\u79f0\u53ca\u63cf\u8ff0\uff0c\u9009\u62e9\u7528\u6237\u7ec4\u6240\u5c5e\u7c7b\u578b\u3002\u4f7f\u7528\u3010\u5168\u5c40\u7528\u6237\u7ec4\u3011\u5f00\u5173\u5207\u6362\u7528\u6237\u7ec4\u9002\u7528\u72b6\u6001\u3002\u65b0\u5efa\u7528\u6237\u7ec4\u7c7b\u578b\u4e3a\u7cfb\u7edf\u7c7b\u578b\u65f6\u81ea\u52a8\u5207\u6362\u4e3a\u5168\u5c40\u7528\u6237\u7ec4\uff0c\u6b64\u5f00\u5173\u4e3a\u9ed8\u8ba4\u6253\u5f00\u72b6\u6001\uff1b\u65b0\u5efa\u7528\u6237\u7ec4\u7c7b\u578b\u4e3a\u5176\u4ed6\u7c7b\u578b\u65f6\uff0c\u5168\u5c40\u72b6\u6001\u53ef\u5173\u95ed\uff0c\u6b64\u65f6\u987b\u4e3a\u7528\u6237\u7ec4\u9009\u62e9\u6240\u5c5e\u5de5\u4f5c\u7a7a\u95f4\u3002

    • \u4e3a\u7528\u6237\u7ec4\u914d\u7f6e\u6743\u9650 \u56de\u5230\u7528\u6237\u7ec4\u5217\u8868\u4e2d\uff0c\u70b9\u51fb\u3010\u8bbe\u7f6e\u6743\u9650\u3011\u6309\u94ae\u8fdb\u5165\u7528\u6237\u7ec4\u6743\u9650\u8bbe\u7f6e\u9875\u9762\uff0c\u5728\u8be5\u9875\u9762\u4e2d\u57fa\u4e8e\u7528\u6237\u7ec4\u9700\u6c42\u52fe\u9009\u64cd\u4f5c\u6743\u9650\uff0c\u4e00\u4e2a\u7528\u6237\u7ec4\u5373\u4e3a\u4e00\u4e2a\u6743\u9650\u96c6\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5b8c\u6210\u914d\u7f6e\u3002

    • \u7f16\u8f91\u7528\u6237\u7ec4\u4fe1\u606f \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u7f16\u8f91\u9009\u5b9a\u7528\u6237\u7ec4\u4fe1\u606f\uff0c\u5728\u5f39\u51fa\u9875\u9762\u4e2d\u53ef\u4ee5\u66f4\u6539\u7528\u6237\u7ec4\u540d\u79f0\u53ca\u63cf\u8ff0\u3002

    • \u67e5\u8be2\u7528\u6237\u7ec4 \u7528\u6237\u7ec4\u5217\u8868\u53f3\u4e0a\u65b9\uff0c\u4f7f\u7528\u641c\u7d22\u6846\uff0c\u6839\u636e\u540d\u79f0\u67e5\u8be2\u7528\u6237\u7ec4\u3002

    • \u5220\u9664\u7528\u6237\u7ec4 \u7528\u6237\u7ec4\u5217\u8868\u4e2d\uff0c\u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\u5220\u9664\u81ea\u5b9a\u4e49\u7684\u7528\u6237\u7ec4\uff0c\u7cfb\u7edf\u7528\u6237\u7ec4\u4e0d\u652f\u6301\u5220\u9664\u3002

    "},{"location":"user_manual/system_management/system/#4","title":"4 \u6d4b\u8bd5\u8d44\u6e90\u6c60\u7ba1\u7406","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u7cfb\u7edf\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u6d4b\u8bd5\u8d44\u6e90\u6c60\u3011\u8fdb\u5165\u8d44\u6e90\u6c60\u754c\u9762\u3002\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e3b\u8981\u7528\u4e8e\u63a5\u53e3\u6d4b\u8bd5\u53ca\u6027\u80fd\u7b49\u6d4b\u8bd5\u3002\u53f3\u4fa7\u8d44\u6e90\u6c60\u5217\u8868\u4e2d\uff0c\u53ef\u4ee5\u901a\u8fc7\u3010Switch\u3011\u5f00\u5173\u5207\u6362\u8d44\u6e90\u6c60\u542f\u7528\u72b6\u6001\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u66f4\u6539\u8d44\u6e90\u6c60\u4fe1\u606f\uff0c\u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\u5220\u9664\u9009\u5b9a\u8d44\u6e90\u6c60\u3002

    "},{"location":"user_manual/system_management/system/#41-node","title":"4.1 \u521b\u5efa Node \u8d44\u6e90\u6c60","text":"

    \u70b9\u51fb\u3010\u521b\u5efa\u8d44\u6e90\u6c60\u3011\u6309\u94ae\uff0c\u5728\u5f39\u51fa\u7684\u754c\u9762\u4e2d\u4e3a\u65b0\u5efa\u8d44\u6e90\u6c60\u7f16\u8f91\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u76f8\u5173\u4fe1\u606f\uff0c\u3010\u7c7b\u578b\u3011\u9009\u62e9\u3010Node\u3011\uff0c\u586b\u5199\u76f8\u5e94\u7684\u914d\u7f6e\u4fe1\u606f\uff0c\u5e76\u652f\u6301\u8bbe\u5b9a\u8d44\u6e90\u6c60\u6700\u5927\u5e76\u53d1\u6570\u91cf\u6216\u6700\u5927\u7ebf\u7a0b\u6570\u91cf\u3002

    "},{"location":"user_manual/system_management/system/#42-kubernetes-x-pack","title":"4.2 \u521b\u5efa Kubernetes \u8d44\u6e90\u6c60 (X-Pack)","text":"

    \u70b9\u51fb\u3010\u521b\u5efa\u8d44\u6e90\u6c60\u3011\u6309\u94ae\uff0c\u5728\u5f39\u51fa\u7684\u754c\u9762\u4e2d\u4e3a\u65b0\u5efa\u8d44\u6e90\u6c60\u7f16\u8f91\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u76f8\u5173\u4fe1\u606f\uff0c\u3010\u7c7b\u578b\u3011\u9009\u62e9\u3010Kubernetes\u3011\uff0c\u586b\u5199\u76f8\u5e94\u7684\u914d\u7f6e\u4fe1\u606f\uff0c\u5e76\u652f\u6301\u8bbe\u5b9a\u8d44\u6e90\u6c60\u6700\u5927\u5e76\u53d1\u6570\u91cf\u6216\u6700\u5927\u7ebf\u7a0b\u6570\u91cf\u3002

    \u83b7\u53d6 Master URL\uff0c\u8f93\u5165 kubectl describe svc kubernetes \u53ef\u83b7\u5f97 Endpoints \u5730\u5740 \u83b7\u53d6 Token\uff0c\u9700\u8981\u6709 k8s \u96c6\u7fa4\u73af\u5883\uff0c\u4e4b\u540e\u521b\u5efa\u597d SA \u548c token\uff0c\u547d\u4ee4\u5982\u4e0b

    # 1 \u521b\u5efa namespaces\nkubectl create namespace metersphere\n# 2 \u521b\u5efa SA\nkubectl create serviceaccount ms -n metersphere\n# 3 \u521b\u5efa namespace \u6388\u6743 SA\nkubectl create clusterrolebinding ms --clusterrole=admin --serviceaccount=metersphere:ms -n metersphere\n# 4 \u67e5\u8be2 SA token\nkubectl describe sa/ms -n metersphere\nkubectl describe secrets -n metersphere ms-token-xxxx\n

    Namespace \u53ef\u4ee5\u8fdb\u884c\u81ea\u5b9a\u4e49\uff0c\u5728 k8s \u96c6\u7fa4\u4e0a\u521b\u5efa\u81ea\u5b9a\u4e49\u7684 Namespace

    kubectl create ns ms-pool\n

    \u4e0b\u8f7d deployment.yaml \u4e0a\u4f20\u5230 k8s \u96c6\u7fa4\u670d\u52a1\u5668\u4e0a\uff0c\u8f93\u5165\u547d\u4ee4\u4f7f\u5176\u751f\u6548\u540e\uff0c\u8f93\u5165\u547d\u4ee4\u67e5\u8be2\u81ea\u5b9a\u4e49 Namespace \u4e0b\u7684 ms-node-controller \u662f\u5426\u6b63\u5e38\u8d77\u6765

    # \u4f7f deployment.yaml \u751f\u6548\nkubectl apply -f deployment.yaml -n ms-pool\n# \u67e5\u8be2 ms-node-controller \u670d\u52a1\nkubectl get all -n ms-pool\n

    Deploy Name \u4f7f\u7528\u9ed8\u8ba4\u7684 ms-node-controller \u5c31\u884c\uff0c\u4e0d\u9700\u8981\u66f4\u6539\u3002 \u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u786e\u5b9a\u5373\u53ef\u3002\u5728\u8d44\u6e90\u6c60\u5217\u8868\u4e2d\u6709\u8be5\u8d44\u6e90\u6c60\uff0c\u5728\u6027\u80fd\u6d4b\u8bd5\u9875\u9762-\u538b\u529b\u914d\u7f6e\u5904\u4e5f\u53ef\u4ee5\u770b\u5230\u8be5\u8d44\u6e90\u6c60\u3002

    • \u67e5\u8be2\u8d44\u6e90\u6c60 \u8d44\u6e90\u6c60\u5217\u8868\u53f3\u4e0a\u65b9\uff0c\u4f7f\u7528\u641c\u7d22\u6846\uff0c\u6839\u636e\u540d\u79f0\u67e5\u8be2\u8d44\u6e90\u6c60\u3002
    • \u5220\u9664\u8d44\u6e90\u6c60 \u8d44\u6e90\u6c60\u5217\u8868\u4e2d\uff0c\u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\u5220\u9664\u9009\u5b9a\u8d44\u6e90\u6c60\u3002
    "},{"location":"user_manual/system_management/system/#5","title":"5 \u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u7cfb\u7edf\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e\u3011\u8fdb\u5165\u53c2\u6570\u8bbe\u7f6e\u754c\u9762\uff0c\u7528\u4e8e\u5e73\u53f0\u3010\u57fa\u672c\u914d\u7f6e\u3011\u3001\u3010\u90ae\u4ef6\u8bbe\u7f6e\u3011\u3001\u3010LDAP\u8bbe\u7f6e\u3011\u3001\u3010\u663e\u793a\u8bbe\u7f6e\u3011\u3001\u3010\u8ba4\u8bc1\u8bbe\u7f6e\u3011\u3001\u3010\u6a21\u5757\u7ba1\u7406\u3011\u7b49\u53c2\u6570\u7684\u8bbe\u7f6e\u3002

    "},{"location":"user_manual/system_management/system/#51","title":"5.1 \u57fa\u672c\u914d\u7f6e","text":"

    \u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u8fc7\u7a0b\u4e2d node-controller \u8282\u70b9\u9700\u8981\u901a\u8fc7\u914d\u7f6e\u7684\u3010\u5f53\u524d\u7ad9\u70b9URL\u3011\u4e0b\u8f7d JMX \u7b49\u6d4b\u8bd5\u8d44\u6e90\u6587\u4ef6\u3002\u5728\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u524d\u9700\u8981\u914d\u7f6e\u5e76\u68c0\u67e5\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u7684\u8282\u70b9\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u5230\u8be5 URL\uff0cURL \u503c\u4e00\u822c\u4e3a\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee MeterSphere \u7684\u5730\u5740\u3002

    \u9009\u9879

    • \u3010\u5f53\u524d\u7ad9\u70b9URL\u3011\uff1a\u5f53\u524d MeterSphere \u7ad9\u70b9\u5730\u5740\uff0c\u7528\u4e8e\u6027\u80fd\u6d4b\u8bd5 JMeter \u4ece MeterSphere \u7ad9\u70b9\u83b7\u53d6\u538b\u6d4b\u811a\u672c\u7b49\u6570\u636e\u3002
    • \u3010\u5e76\u53d1\u6570\u3011\uff1a\u9650\u5236\u573a\u666f\u63a5\u53e3\u81ea\u52a8\u5316\u4e2d\u573a\u666f\u5e76\u884c\u6267\u884c\u65f6\u7684\u5e76\u53d1\u6570\u91cf\u3002
    • \u3010Prometheus \u5730\u5740\u3011\uff1aPrometheus \u76d1\u63a7\u670d\u52a1\u5730\u5740\u3002
    • \u3010selenium-docker \u5730\u5740\u3011\uff1aselenium \u670d\u52a1\u5730\u5740\u3002
    • \u3010\u63a5\u53e3\u9ed8\u8ba4\u672c\u5730\u6267\u884c\u3011\uff1a\u7981\u7528\u540e\u6240\u6709\u6267\u884c\u529f\u80fd\u53ea\u80fd\u901a\u8fc7\u6d4b\u8bd5\u8d44\u6e90\u6c60\u6267\u884c\uff0c\u4e3a\u4e86\u4e0d\u5f71\u54cd\u63a5\u53e3\u6b63\u5e38\u6267\u884c\uff0c\u9009\u62e9\u3010\u7981\u7528\u3011\u540e\uff0c\u8bf7\u5728\u3010 \u9879\u76ee\u8bbe\u7f6e-\u5e94\u7528\u7ba1\u7406-\u63a5\u53e3\u6d4b\u8bd5 \u3011\u4e2d\u914d\u7f6e\u63a5\u53e3\u6267\u884c\u7684\u8d44\u6e90\u6c60\u3002
    "},{"location":"user_manual/system_management/system/#52","title":"5.2 \u90ae\u4ef6\u8bbe\u7f6e","text":"

    \u5207\u6362\u81f3\u3010\u90ae\u4ef6\u8bbe\u7f6e\u3011\u6807\u7b7e\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u53ef\u4ee5\u5bf9 SMTP \u4fe1\u606f\u8fdb\u884c\u4fee\u6539\u3001\u4fdd\u5b58\u3002

    "},{"location":"user_manual/system_management/system/#53-ldap","title":"5.3 LDAP \u8bbe\u7f6e","text":"

    \u5207\u6362\u81f3\u3010LDAP\u8bbe\u7f6e\u3011\u6807\u7b7e\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u914d\u7f6e LDAP \u767b\u5f55\u76f8\u5173\u53c2\u6570\u3002

    \u9009\u9879

    • \u3010LDAP\u5730\u5740\u3011\uff1aldap://serveurl:389 \u6216 ldaps://serveurl:636
    • \u3010\u7ed1\u5b9aDN\u3011\uff1acn=administrator,cn=Users,dc=metersphere,dc=com
    • \u3010\u7528\u6237OU\u3011\uff1aou=metersphere,dc=metersphere,dc=com
    • \u3010\u7528\u6237\u8fc7\u6ee4\u5668\u3011\uff1asAMAccountName={0}
    • \u3010LDAP\u5c5e\u6027\u6620\u5c04\u3011\uff1a{\"username\":\"sAMAccountName\",\"name\":\"cn\",\"email\":\"mail\"}

    \u9009\u9879\u8bf4\u660e

    • \u3010OU\u3011\uff1a\u540c\u7ea7\u591aOU\u7528\uff5c\u5206\u5272
    • \u3010\u7528\u6237\u8fc7\u6ee4\u5668\u3011\uff1a\u6839\u636e\u89c4\u5219\u5230 \u7528\u6237OU \u91cc\u9762\u53bb\u68c0\u7d22\u7528\u6237\uff0c\u53ef\u80fd\u7684\u9009\u9879\u4e3a (uid={0}) \u6216 (sAMAccountName={0}) \u6216 (cn={0})
    • \u3010LDAP\u5c5e\u6027\u6620\u5c04\u3011\uff1a{\"username\":\"sAMAccountName\",\"name\":\"cn\",\"email\":\"mail\",\"phone\":\"phone\"}\uff0cusername,name,email \u4e09\u9879\u4e0d\u53ef\u4fee\u6539\u5220\u9664, phone \u5c5e\u6027\u53ef\u9009
    • \u3010\u542f\u7528LDAP\u8ba4\u8bc1\u3011\uff1a\u542f\u7528\u540e\u767b\u5f55\u9875\u663e\u793a LDAP \u767b\u5f55\u9009\u9879

    \u6ce8\u610f

    \u7528\u6237\u8fc7\u6ee4\u5668\u7528\u4ec0\u4e48\u7b5b\u9009, LDAP \u5c5e\u6027\u6620\u5c04\u5b57\u6bb5\u8981\u4e0e\u5176\u4e00\u81f4, \u8fc7\u6ee4\u5668\u7528 sAMAccountName, LDAP\u5c5e\u6027\u6620\u5c04\u4e5f\u8981\u7528 sAMAccountName

    \u542f\u7528 LDAP \u8ba4\u8bc1\u540e\uff0c\u767b\u5f55\u9875\u4f1a\u65b0\u589e LDAP \u767b\u5f55\u9009\u9879\u3002

    "},{"location":"user_manual/system_management/system/#54-x-pack","title":"5.4 \u663e\u793a\u8bbe\u7f6e (X-Pack)","text":"

    \u5207\u6362\u81f3\u3010\u663e\u793a\u8bbe\u7f6e\u3011\u6807\u7b7e\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u914d\u7f6e\u7cfb\u7edf\u7684 logo \u4ee5\u53ca\u663e\u793a\u7684\u6587\u5b57\u548c\u56fe\u7247\uff0c\u586b\u5199\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5373\u53ef\u3002

    "},{"location":"user_manual/system_management/system/#55-x-pack","title":"5.5 \u8ba4\u8bc1\u8bbe\u7f6e (X-Pack)","text":"

    \u5207\u6362\u81f3\u3010\u8ba4\u8bc1\u8bbe\u7f6e\u3011\u6807\u7b7e\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u3011\u6309\u94ae\uff0c\u586b\u5199 CAS\u3001OIDC\u3001OAuth2 \u7b49\u65b9\u5f0f\u7684\u5355\u70b9\u767b\u5f55\u534f\u8bae\u8ba4\u8bc1\u4fe1\u606f\u3002

    \u53ef\u4ee5\u70b9\u51fb\u3010\u542f\u7528/\u7981\u7528\u3011\u6309\u94ae\u6216\u8005\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u82e5\u542f\u7528 CAS\u3001OIDC \u8ba4\u8bc1\u540e\uff0c\u767b\u5f55\u9875\u4f1a\u65b0\u589e CAS\u3001OIDC \u767b\u5f55\u9009\u9879\u3002

    "},{"location":"user_manual/system_management/system/#56-x-pack","title":"5.6 \u6a21\u5757\u7ba1\u7406 (X-Pack)","text":"

    \u5207\u6362\u81f3\u3010\u6a21\u5757\u7ba1\u7406\u3011\u6807\u7b7e\uff0c\u70b9\u51fb\u3010\u542f\u7528/\u7981\u7528\u3011\u6309\u94ae\uff0c\u7cfb\u7edf\u53ea\u663e\u793a\u3010\u542f\u7528\u3011\u7684\u6a21\u5757\uff0c\u3010\u7981\u7528\u3011\u7684\u6a21\u5757\u4e0d\u4f1a\u5728\u7cfb\u7edf\u4e2d\u51fa\u73b0\u3002

    "},{"location":"user_manual/system_management/system/#57-x-pack","title":"5.7 \u626b\u7801\u767b\u5f55 (X-Pack)","text":"

    \u5207\u6362\u81f3\u3010\u626b\u7801\u767b\u5f55\u3011\u6807\u7b7e\uff0c\u7cfb\u7edf\u652f\u6301\u4f01\u4e1a\u5fae\u4fe1\u3001\u9489\u9489\u3001\u98de\u4e66\u7b49\u65b9\u5f0f\u626b\u7801\u767b\u5f55\u3002

    \u4f01\u4e1a\u5fae\u4fe1

    \u6253\u5f00 \u4f01\u4e1a\u5fae\u4fe1\u7ba1\u7406\u540e\u53f0\uff0c\u7528\u7ba1\u7406\u5458\u6743\u9650\u7528\u6237\u767b\u5f55\u3002\u70b9\u51fb\u3010\u6211\u7684\u4f01\u4e1a\u3011\u83b7\u53d6\u4f01\u4e1aID\u3002

    \u70b9\u51fb\u3010\u5de5\u4f5c\u53f0-\u5e94\u7528\u7ba1\u7406-\u521b\u5efa\u5e94\u7528\u3011\uff0c\u8fdb\u5165\u5e94\u7528\u9875\u9762\u8fdb\u884c\u521b\u5efa\u3002

    \u70b9\u51fb\u5e94\u7528\u8fdb\u5165\uff0c\u83b7\u53d6 AgentId\u3001Scret\u3002

    \u70b9\u51fb\u4f01\u4e1a\u5fae\u4fe1\u6388\u6743\u767b\u5f55\uff0c\u914d\u7f6e\u56de\u8c03\u5730\u5740\u3002

    \u914d\u7f6e\u4f01\u4e1a\u53ef\u4fe1IP\u3002

    \u70b9\u51fb\u3010\u4f01\u4e1a\u5fae\u4fe1\u3011\u6dfb\u52a0\u6309\u94ae\uff0c\u586b\u5199\u4f01\u4e1aID\u3001\u5e94\u7528ID\u3001\u5e94\u7528\u79d8\u94a5\u540e\uff0c\u6d4b\u8bd5\u8fde\u63a5\u901a\u8fc7\u540e\u5373\u53ef\u3002

    \u767b\u5f55\u9875\u9762\uff0c\u70b9\u51fb\u626b\u7801\u767b\u5f55\u5373\u53ef\u3002

    \u9489\u9489

    \u6253\u5f00 \u9489\u9489\u5f00\u53d1\u5e73\u53f0\uff0c\u7528\u7ba1\u7406\u5458\u6743\u9650\u7528\u6237\u767b\u5f55\u3002\u70b9\u51fb\u3010\u5e94\u7528\u5f00\u53d1-\u9489\u9489\u5e94\u7528-\u521b\u5efa\u5e94\u7528\u3011

    \u70b9\u51fb\u5e94\u7528\u8fdb\u5165\uff0c\u83b7\u53d6 AgentId\u3001Client ID \u548c Client Secret\u3002

    \u70b9\u51fb\u3010\u5206\u4eab\u8bbe\u7f6e-\u56de\u8c03\u57df\u540d\u3011\uff0c\u5728\u914d\u7f6e\u9875\u9762\u586b\u5199\u56de\u8c03\u57df\u540d(\u56de\u8c03\u57df\u540d\u4e3a MeterSphere \u7684\u8bbf\u95ee\u5730\u5740)\uff0c\u70b9\u51fb\u6dfb\u52a0\u5373\u53ef\u3002

    \u70b9\u51fb\u3010\u5b89\u5168\u8bbe\u7f6e\u3011\uff0c\u586b\u5199\u670d\u52a1\u5668\u51fa\u53e3IP\uff0c\u70b9\u51fb\u4fdd\u5b58\u5373\u53ef\u3002

    \u8fdb\u884c\u3010\u6743\u9650\u7ba1\u7406-\u6210\u5458\u4fe1\u606f\u8bfb\u6743\u9650-\u52fe\u9009-\u6279\u91cf\u7533\u8bf7\u3011\u64cd\u4f5c\uff0c\u641c\u7d22\u3010User\u3011\u540e\uff0c\u5f00\u901a\u3010\u4e2a\u4eba\u624b\u673a\u53f7\u4fe1\u606f\u3011\u3001\u3010\u901a\u8baf\u5f55\u4e2a\u4eba\u4fe1\u606f\u8bfb\u6743\u9650\u3011\u3001\u3010\u8c03\u7528\u9489\u9489\u9879\u76ee\u7ba1\u7406\u76f8\u5173\u63a5\u53e3\u7684\u6743\u9650\u3011\u6743\u9650\u3002

    \u70b9\u51fb\u3010\u9489\u9489\u3011\u6dfb\u52a0\u6309\u94ae\uff0c\u586b\u5199\u5e94\u7528key\u3001\u5e94\u7528ID\u3001\u5e94\u7528\u79d8\u94a5\u540e\uff0c\u6d4b\u8bd5\u8fde\u63a5\u901a\u8fc7\u540e\u5373\u53ef\u3002

    \u767b\u5f55\u9875\u9762\uff0c\u70b9\u51fb\u9489\u9489\u626b\u7801\u767b\u5f55\u5373\u53ef\u3002

    "},{"location":"user_manual/system_management/system/#6-x-pack","title":"6 \u914d\u989d\u7ba1\u7406 (X-Pack)","text":"

    \u8fdb\u5165\u3010\u914d\u989d\u7ba1\u7406\u3011\u9875\u9762\uff0c\u53ef\u3010\u7f16\u8f91\u3011\u4e0a\u65b9\u7684\u5de5\u4f5c\u7a7a\u95f4\u9ed8\u8ba4\u914d\u989d\uff0c\u7f16\u8f91\u5b8c\u6210\u540e\uff0c\u5728\u914d\u989d\u5217\u8868\u4e2d\u4f7f\u7528\u9ed8\u8ba4\u914d\u7f6e\u7684\uff0c\u5c06\u540c\u6b65\u66f4\u65b0\u7f16\u8f91\u7684\u6570\u636e\u3002

    \u70b9\u51fb\u5de5\u4f5c\u7a7a\u95f4\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u53ef\u5bf9\u5355\u4e2a\u5de5\u4f5c\u7a7a\u95f4\u8fdb\u884c\u914d\u989d\u7ba1\u7406\u8bbe\u7f6e

    \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u5373\u53ef\u5220\u9664\u5df2\u914d\u7f6e\u597d\u7684\u5185\u5bb9\uff0c\u6062\u590d\u5230\u6700\u521d\u72b6\u6001\uff0c\u4f7f\u7528\u9ed8\u8ba4\u914d\u989d\u7684\u72b6\u6001\u4e5f\u7531\u3010\u662f\u3011\u53d8\u6210\u3010\u5426\u3011

    "},{"location":"user_manual/system_management/system/#7","title":"7 \u6388\u6743\u7ba1\u7406","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u7cfb\u7edf\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u6388\u6743\u7ba1\u7406\u3011\u8fdb\u5165\u6388\u6743\u7ba1\u7406\u754c\u9762\uff0c\u70b9\u51fb\u3010\u6388\u6743\u9a8c\u8bc1\u3011\u5bfc\u5165\u4f01\u4e1a\u7248\u8bc1\u4e66\uff0c\u5f00\u542f X-Pack \u529f\u80fd\u3002

    "},{"location":"user_manual/system_management/system/#8","title":"8 \u64cd\u4f5c\u65e5\u5fd7","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u7cfb\u7edf\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u64cd\u4f5c\u65e5\u5fd7\u3011\u8fdb\u5165\u65e5\u5fd7\u754c\u9762\uff0c\u663e\u793a\u767b\u5f55\u7528\u6237\u6743\u9650\u8303\u56f4\u5185\u7684\u5168\u90e8\u6d4b\u8bd5\u8d44\u6e90\u65e5\u5fd7\u4fe1\u606f\uff0c\u5e76\u652f\u6301\u4f7f\u7528\u9ad8\u7ea7\u67e5\u8be2\u6765\u5feb\u901f\u67e5\u627e\u76f8\u5173\u65e5\u5fd7\u3002

    "},{"location":"user_manual/system_management/system/#9","title":"9 \u63d2\u4ef6\u7ba1\u7406","text":""},{"location":"user_manual/system_management/system/#91-websocket-x-pack","title":"9.1 WebSocket \u63d2\u4ef6 (X-Pack)","text":"

    \u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u7cfb\u7edf\u3011-\u3010\u63d2\u4ef6\u7ba1\u7406\u3011\u754c\u9762\u4e0b\uff0c\u4e0a\u4f20 WebSocket \u63d2\u4ef6

    \u5728\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011-\u3010\u63a5\u53e3\u81ea\u52a8\u5316\u3011\u754c\u9762\u4e0b\uff0c\u65b0\u5efa\u4e00\u4e2a\u573a\u666f\uff0c\u70b9\u51fb\u573a\u666f\u53f3\u4e0b\u89d2\u3010+\u3011\u53f7\uff0c\u6dfb\u52a0 WebSocket \u76f8\u5173\u8bf7\u6c42\u3002

    "},{"location":"user_manual/system_management/workspace/","title":"\u5de5\u4f5c\u7a7a\u95f4","text":""},{"location":"user_manual/system_management/workspace/#1","title":"1 \u6210\u5458","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u5de5\u4f5c\u7a7a\u95f4\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u6210\u5458\u3011\u8fdb\u5165\u6210\u5458\u754c\u9762\uff0c\u67e5\u770b\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u6240\u6709\u6210\u5458\u4fe1\u606f\u3002\u53ef\u4ee5\u5bf9\u6210\u5458\u8fdb\u884c\u3010\u65b0\u589e\u3011\uff0c\u3010\u7f16\u8f91\u3011\uff0c\u3010\u67e5\u8be2\u3011\uff0c\u3010\u5220\u9664\u3011\u3002

    • \u6dfb\u52a0\u6210\u5458 \u70b9\u51fb\u3010\u6dfb\u52a0\u6210\u5458\u3011\u6309\u94ae\u6dfb\u52a0\u6210\u5458\u6237\uff0c\u5728\u5f39\u51fa\u9875\u9762\u4e2d\u9009\u62e9\u8981\u6dfb\u52a0\u7684\u7528\u6237\u3002

    \u53c2\u6570\u8bf4\u660e

    • \u53ef\u6839\u636e\u7528\u6237 ID \u548c\u7528\u6237\u90ae\u7bb1\u641c\u7d22\u9700\u8981\u6dfb\u52a0\u7684\u7528\u6237\uff0c\u7cfb\u7edf\u652f\u6301\u53ef\u4e00\u6b21\u6dfb\u52a0\u591a\u4e2a\u6210\u5458\u3002
    • \u53ef\u9009\u62e9\u7528\u6237\u7ec4\uff0c\u6b64\u4e0b\u62c9\u4fe1\u606f\u7684\u7528\u6237\u7ec4\uff0c\u5176\u3010\u6240\u5c5e\u7c7b\u578b\u3011\u5c5e\u4e8e\u3010\u7ec4\u7ec7\u7ea7\u522b\u3011\u7684\u7528\u6237\u7ec4\uff0c\u7cfb\u7edf\u652f\u6301\u4e00\u6b21\u6dfb\u52a0\u591a\u4e2a\u7528\u6237\u7ec4\u3002
    • \u70b9\u51fb\u3010\u786e\u8ba4\u3011\u5b8c\u6210\u7ec4\u7ec7\u6210\u5458\u6dfb\u52a0\u3002
    • \u7f16\u8f91\u6210\u5458 \u5728\u6210\u5458\u4fe1\u606f\u4e2d\u53ef\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u548c\u3010\u5220\u9664\u3011\u8fdb\u884c\u6210\u5458\u4fee\u6539\u548c\u5220\u9664\u64cd\u4f5c\u3002

    • \u67e5\u8be2\u7528\u6237 \u53ef\u6309\u540d\u79f0\u6765\u6a21\u7cca\u67e5\u8be2\u6210\u5458\u4fe1\u606f\uff0c\u8f93\u5165\u67e5\u8be2\u4fe1\u606f\uff0c\u70b9\u51fb\u56de\u8f66\u5373\u53ef\u5b8c\u6210\u67e5\u8be2\u3002

    "},{"location":"user_manual/system_management/workspace/#2","title":"2 \u670d\u52a1\u96c6\u6210","text":"

    \u53ef\u67e5\u770b\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u91cc\u96c6\u6210\u7684\u7f3a\u9677\u7ba1\u7406\u5e73\u53f0\uff0c\u5e76\u8bbe\u7f6e\u548c\u4fee\u6539\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u9700\u8981\u5c06\u6d4b\u8bd5\u7528\u4f8b\u7f3a\u9677\u6570\u636e\u540c\u6b65\u7684\u7f3a\u9677\u7ba1\u7406\u5e73\u53f0\u3002 \u70b9\u51fb\u3010\u5de5\u4f5c\u7a7a\u95f4\u3011\u83dc\u5355\u680f\uff0c\u70b9\u51fb\u3010\u670d\u52a1\u96c6\u6210\u3011\uff0c\u5373\u53ef\u67e5\u770b\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u5df2\u96c6\u6210\u7684\u7f3a\u9677\u7ba1\u7406\u5e73\u53f0\uff0c\u540c\u65f6\u53ef\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u96c6\u6210 TAPD\u3001JIRA \u548c\u7985\u9053\u3001Azure Devops\u7b49\u5e73\u53f0\u3002 v2.4 \u7248\u672c\u7f3a\u9677\u5bf9\u63a5\u5b9e\u73b0\u4e86\u63d2\u4ef6\u5316\uff0c\u53ef\u6839\u636e\u81ea\u8eab\u9700\u6c42\u5f00\u53d1\u5bf9\u5e94\u63d2\u4ef6\u3002\u5177\u4f53\u53c2\u8003\u63d2\u4ef6\u9879\u76ee\uff1ahttps://github.com/metersphere/metersphere-platform-plugin

    Metersphere \u5e73\u53f0\u4e0e\u7ba1\u7406\u5de5\u5177\u96c6\u6210\u8bbe\u7f6e\u53ef\u5206\u4e3a\u4e09\u6b65\u9aa4\u6765\u5b8c\u6210

    (1)\u9996\u5148\u914d\u7f6e\u548c\u9879\u76ee\u7ba1\u7406\u5de5\u5177\u96c6\u6210\u8bbe\u7f6e\u3002 (2)\u5176\u6b21\u914d\u7f6e\u9879\u76ee\u76f8\u5173\u4fe1\u606f\u3002 (3)\u7136\u540e\u4e3a\u6bcf\u4e2a\u767b\u5f55\u7528\u6237\u8bbe\u7f6e\u5404\u81ea\u7684\u4e2a\u4eba\u8d26\u53f7\uff0c\u6b64\u914d\u7f6e\u4e5f\u53ef\u4ee5\u4e0d\u8bbe\u7f6e\u3002

    "},{"location":"user_manual/system_management/workspace/#21-tapd","title":"2.1 \u4e0eTAPD\u96c6\u6210","text":"

    \u7b2c\u4e00\u6b65\uff1a\u670d\u52a1\u96c6\u6210\u914d\u7f6e\u3002

    \u53c2\u6570\u8bf4\u660e

    \u3010API \u8d26\u53f7\u548c\u53e3\u4ee4\u3011\u662f Tapd Basic Auth \u8d26\u53f7\u4fe1\u606f\u5728\u3010\u516c\u53f8\u7ba1\u7406-\u5b89\u5168\u4e0e\u96c6\u6210-\u5f00\u653e\u5e73\u53f0\u3011\u4e2d\u67e5\u8be2\u3002

    \u7b2c\u4e8c\u6b65\uff1a\u5173\u8054\u9879\u76ee\u914d\u7f6e\u3002 \u914d\u7f6e\u5b8c\u670d\u52a1\u96c6\u6210\u540e\uff0c\u8fd8\u9700\u8981\u914d\u7f6e\u9879\u76ee\u4e2d\u5f15\u7528 TAPD \u9879\u76ee\u7684\u8bbe\u7f6e\uff0c\u5373\u5173\u8054\u9879\u76ee\u3002\u70b9\u51fb\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u5173\u8054\u9879\u76ee\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u8df3\u8f6c\u5230\u9879\u76ee\u7ba1\u7406\u9875\u9762\uff0c\u70b9\u51fb\u9879\u76ee\u5217\u8868\u4e2d\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u7f16\u8f91\u9879\u76ee\u91cc\u3010TAPD \u9879\u76ee ID\u3011\uff0c\u4ee5\u53ca\u7f3a\u9677\u6a21\u677f\u7b49\u76f8\u5173\u4fe1\u606f\u3002

    \u540c\u65f6\uff0c\u8fd8\u9700\u8981\u914d\u7f6e\u9879\u76ee\u4e2d\u7684 TAPD \u7f3a\u9677\u6a21\u677f\u8bbe\u7f6e\uff0c\u3010\u7f3a\u9677\u6a21\u677f\u3011\u9700\u8981\u9009\u62e9\u3010TAPD-\u9ed8\u8ba4\u6a21\u677f\u3011\u3002

    \u7b2c\u4e09\u6b65\uff1a\u6dfb\u52a0\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7\u3002 \u70b9\u51fb\u670d\u52a1\u96c6\u6210\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u6dfb\u52a0\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u8be5\u4fe1\u606f\u4e3a\u901a\u8fc7 TAPD \u63d0\u4ea4\u7f3a\u9677\u7684\u7528\u6237\u8ba4\u8bc1\u4fe1\u606f\uff0c\u82e5\u672a\u586b\u5199\uff0c\u5219\u4f7f\u7528\u7ec4\u7ec7\u4e2d\u914d\u7f6e\u7684\u9ed8\u8ba4\u4fe1\u606f\u3002 \u9009\u62e9\u3010\u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u3011\u8bbe\u7f6e\u3010Tapd\u3011\u4fe1\u606f\uff0c\u5982\u679c\u4e0d\u8bbe\u7f6e\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7\uff0c\u5219\u6240\u6709\u4f7f\u7528 MeterSphere \u63d0\u4ea4\u7f3a\u9677\u7684\u7528\u6237\uff0c\u6b64\u7f3a\u9677\u63a8\u9001\u5230\u914d\u7f6e\u7684\u670d\u52a1\u5e73\u53f0\u4e0a\u8d26\u53f7\u90fd\u662f\u670d\u52a1\u914d\u7f6e\u4e2d\u8bbe\u5b9a\u7684\u8d26\u53f7\u4fe1\u606f\u3002

    \u53c2\u6570\u8bf4\u660e\uff1a\u3010TAPD \u6635\u79f0\u3011\u662f TAPD \u4e2a\u4eba\u8bbe\u7f6e\u91cc\u67e5\u770b\u3002

    \u4ee5\u4e0a\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u5728 Metersphere \u7cfb\u7edf\u4e2d\u6d4b\u8bd5\u7528\u4f8b\u91cc\uff0c\u5c31\u53ef\u4ee5\u5173\u8054 TAPD \u7684\u76f8\u5173\u9700\u6c42\u3002

    \u5728\u7f3a\u9677\u7ba1\u7406\u63d0\u4ea4\u7f3a\u9677\u540e\uff0c\u5e73\u53f0\u7c7b\u578b\u663e\u793a\u4e3a TAPD \u7684\u6570\u636e\uff0c\u70b9\u51fb\u3010\u540c\u6b65\u7f3a\u9677\u3011\u6309\u94ae\uff0c\u4f1a\u5c06\u6570\u636e\u540c\u6b65\u5230 TAPD \u7cfb\u7edf\u4e2d\u3002

    \u5728 TAPD \u7f3a\u9677\u4e2d\u53ef\u4ee5\u67e5\u8be2\u5230\u540c\u6b65\u8fc7\u6765\u7684\u7f3a\u9677\u6570\u636e\u3002

    "},{"location":"user_manual/system_management/workspace/#22-jira","title":"2.2 \u4e0eJIRA\u96c6\u6210","text":"

    \u6ce8\u610f

    v2.4 \u7248\u672c\u7f3a\u9677\u5bf9\u63a5\u5b9e\u73b0\u4e86\u63d2\u4ef6\u5316\uff0c\u53ef\u6839\u636e\u81ea\u8eab\u9700\u6c42\u5f00\u53d1\u5bf9\u5e94\u63d2\u4ef6\u3002 \u76ee\u524d\u5df2\u5b9e\u73b0 Jira \u5e73\u53f0\u7684\u63d2\u4ef6\u5316\uff0c\u539f\u5148\u4f7f\u7528 Jira \u7684\u7528\u6237\uff0c\u9700\u8981\u4e0b\u8f7d\u4e0b\u63d2\u4ef6\uff0c\u5e76\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u63d2\u4ef6\u7ba1\u7406\u3011\u4e0a\u4f20\u63d2\u4ef6\u3002 \u4f7f\u7528\u65b9\u5f0f\u8ddf\u539f\u6765\u4e00\u81f4\uff0c\u5177\u4f53\u53c2\u8003\u63d2\u4ef6\u9879\u76ee\uff1ahttps://github.com/metersphere/metersphere-platform-plugin

    \u7b2c\u4e00\u6b65\uff1a\u586b\u5199\u5bf9\u63a5 JIRA \u7684\u5730\u5740\u3001\u8ba4\u8bc1\u4fe1\u606f\u548c\u95ee\u9898\u7c7b\u578b\uff0c\u5982\u4e0b\u3002

    \u6ce8\u610f

    \u95ee\u9898\u7c7b\u578b\u9700\u8981\u548c JIRA \u7684\u4e8b\u52a1\u7c7b\u578b\u4fdd\u6301\u4e00\u81f4\uff0c\u5fc5\u987b\u5728 JIRA \u4e2d\u5b58\u5728\u6b64\u7c7b\u578b\uff0c\u5982\u4e0b\uff1a

    \u5982\u679c\u53f3\u4e0a\u89d2\u5207\u6362\u7ec4\u7ec7\uff0c\u9700\u8981\u91cd\u590d\u4e0a\u8ff0\u5bf9\u63a5 JIRA \u64cd\u4f5c

    \u7b2c\u4e8c\u6b65\uff1a \u5173\u8054\u9879\u76ee\u914d\u7f6e \u914d\u7f6e\u5b8c\u670d\u52a1\u96c6\u6210\u540e\uff0c\u8fd8\u9700\u8981\u914d\u7f6e\u9879\u76ee\u4e2d\u5f15\u7528 JIRA \u9879\u76ee\u7684\u8bbe\u7f6e\uff0c\u5373\u5173\u8054\u9879\u76ee\u3002\u70b9\u51fb\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u5173\u8054\u9879\u76ee\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u8df3\u8f6c\u5230\u9879\u76ee\u7ba1\u7406\u9875\u9762\uff0c\u70b9\u51fb\u9879\u76ee\u5217\u8868\u4e2d\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u8bbe\u7f6e\u9879\u76ee\u91cc\u9879\u76ee\u76f8\u5173\u914d\u7f6e\u3002

    \u53c2\u6570\u8bf4\u660e

    \u3010\u96c6\u6210\u7b2c\u4e09\u65b9\u5e73\u53f0\u3011\uff1a\u9009\u62e9\u3010JIRA\u3011\u3002 \u3010\u7f3a\u9677\u6a21\u677f\u3011\uff1a\u9009\u62e9\u3010JIRA-\u9ed8\u8ba4\u6a21\u677f\u3011 \u3010\u4f7f\u7528 Jira \u7f3a\u9677\u6a21\u677f\u3011\uff1a\u9009\u4e2d\uff0c\u5219\u8868\u793a\u7cfb\u7edf\u4f1a\u81ea\u52a8\u540c\u6b65 JIRA \u7cfb\u7edf\u4e2d\u7684\u7f3a\u9677\u6a21\u677f\uff1b\u4e0d\u9009\u62e9\uff0c\u5219\u9700\u8981\u8fdb\u5165\u7b2c\u56db\u6b65\uff0c\u624b\u52a8\u914d\u7f6e MS \u7f3a\u9677\u6a21\u677f\u548c Jira \u7cfb\u7edf\u4e2d\u7684\u7f3a\u9677\u6a21\u677f\u7684\u5b57\u6bb5\u5bf9\u5e94\u5173\u7cfb\u3002 \u3010JIRA \u9879\u76ee Key\u3011\uff1a\u9879\u76ee\u7684\u5173\u952e\u5b57\u7684\u9700\u8981\u5728 JIRA \u5e73\u53f0\u4e0a\u8fdb\u884c\u67e5\u8be2\uff0c\u5982\u4e0b\u3002

    \u7b2c\u4e09\u6b65\uff1a\u6dfb\u52a0\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7\u3002 \u70b9\u51fb\u670d\u52a1\u96c6\u6210\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u6dfb\u52a0\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u8be5\u4fe1\u606f\u4e3a\u901a\u8fc7 Jira \u63d0\u4ea4\u7f3a\u9677\u7684\u7528\u6237\u8ba4\u8bc1\u4fe1\u606f\uff0c\u82e5\u672a\u586b\u5199\uff0c\u5219\u4f7f\u7528\u7ec4\u7ec7\u4e2d\u914d\u7f6e\u7684\u9ed8\u8ba4\u4fe1\u606f.\u70b9\u51fb\u3010\u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u3011\u8bbe\u7f6e\u3010Jira \u4fe1\u606f\u3011\uff0c\u5982\u679c\u4e0d\u8bbe\u7f6e\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7\uff0c\u5219\u6240\u6709\u4f7f\u7528 MeterSphere \u63d0\u4ea4\u7f3a\u9677\u7684\u7528\u6237\uff0c\u6b64\u7f3a\u9677\u63a8\u9001\u5230\u914d\u7f6e\u7684\u670d\u52a1\u5e73\u53f0\u4e0a\u8d26\u53f7\u90fd\u662f\u670d\u52a1\u914d\u7f6e\u4e2d\u8bbe\u5b9a\u7684\u8d26\u53f7\u4fe1\u606f\u3002

    \u4ee5\u4e0a\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u5728 Metersphere \u7cfb\u7edf\u4e2d\u6d4b\u8bd5\u7528\u4f8b\u91cc\uff0c\u5c31\u53ef\u4ee5\u5173\u8054JIRA \u7684\u76f8\u5173\u9700\u6c42\uff0c\u6216\u540c\u6b65\u76f8\u5173\u7f3a\u9677\u3002

    "},{"location":"user_manual/system_management/workspace/#23","title":"2.3 \u4e0e\u7985\u9053\u96c6\u6210","text":"

    \u7b2c\u4e00\u6b65\uff1a\u670d\u52a1\u96c6\u6210\u914d\u7f6e\u3002

    \u7985\u9053\u76ee\u524d\u5b58\u5728 GET \u548c PATH_INFO \u4e24\u79cd\u63a5\u53e3\u8c03\u7528\u65b9\u5f0f\uff08\u5373\u5176requestType \u53c2\u6570\uff09\u5bf9\u4e8e\u7985\u9053\u63a5\u53e3\u7684\u8c03\u7528\u4f7f\u7528\u7684\u662f PATH_INFO \u65b9\u5f0f\u548c GET \u8bf7\u6c42\u65b9\u5f0f\u7684\u652f\u6301\uff0c\u7528\u6237\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u4f7f\u7528\u7684\u7985\u9053\u7cfb\u7edf\u7684\u914d\u7f6e\u60c5\u51b5\u81ea\u4e3b\u9009\u62e9\u8bf7\u6c42\u65b9\u5f0f\u3002

    \u8bf4\u660e

    1. \u8d26\u53f7\u5bc6\u7801\u4e3a\u5177\u6709\u76f8\u5e94\u6743\u9650\u7684 Zentao \u8d26\u53f7\uff0c\u8d26\u53f7\u9700\u8981\u5177\u6709\u8d85\u7ea7 model \u8c03\u7528\u63a5\u53e3\u6743\u9650\u3002
    2. \u8bf7\u6c42\u65b9\u5f0f\uff1a\u5728\u7985\u9053\u91cc\u5177\u4f53\u67e5\u770b\uff1a\u53c2\u8003\u7985\u9053\u914d\u7f6e\u6587\u4ef6\u4e2d$config->requestType \u7684\u503c\uff1b\u914d\u7f6e\u6587\u4ef6\u53c2\u8003\u8def\u5f84\uff1a/opt/zbox/app/zentao/config/my.php \u3002
    3. \u5982\u679c\u63d0\u793a\u56e0\u4e3a\u5b89\u5168\u95ee\u9898 api \u7981\u7528\uff0c\u9700\u8981\u4fee\u6539\u7985\u9053\u670d\u52a1\u5668\u914d\u7f6e\u6587\u4ef6/opt/zbox/app/zentao/config/my.php\uff0c\u52a0\u4e0a '$config->features->apiGetModel = true;' \u8fd9\u4e2a\u914d\u7f6e\u3002

    \u7b2c\u4e8c\u6b65\uff1a \u5173\u8054\u9879\u76ee\u914d\u7f6e \u914d\u7f6e\u5b8c\u670d\u52a1\u96c6\u6210\u540e\uff0c\u8fd8\u9700\u8981\u914d\u7f6e\u9879\u76ee\u4e2d\u5f15\u7528\u7985\u9053\u9879\u76ee\u7684\u8bbe\u7f6e\uff0c\u5373\u5173\u8054\u9879\u76ee\u3002\u70b9\u51fb\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u5173\u8054\u9879\u76ee\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u8df3\u8f6c\u5230\u3010\u9879\u76ee\u7ba1\u7406\u3011\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\uff0c\u7f16\u8f91\u9879\u76ee\u91cc\u3010\u7985\u9053\u9879\u76eeID\u3011\uff0c\u4ee5\u53ca\u7f3a\u9677\u6a21\u677f\u7b49\u76f8\u5173\u4fe1\u606f\u3002

    \u53c2\u6570\u8bf4\u660e

    \u3010Zentao\uff08\u7985\u9053\uff09\u9879\u76ee ID\u3011\uff1a\u5982\u679c \u7985\u9053 bug \u662f\u9644\u5c5e\u5728\u9879\u76ee\u4e0a\uff0c\u5219\u5173\u8054\u7684Zentao ID \u4e3a\u9879\u76ee ID\uff1b\u5982\u679c \u7985\u9053 Bug \u662f\u9644\u5c5e\u5728\u4ea7\u54c1\u4e0a\uff0c\u5219\u5173\u8054\u7684 ZentaoID \u4e3a\u4ea7\u54c1 ID\u3002

    \u7b2c\u4e09\u6b65\uff1a\u6dfb\u52a0\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7 \u70b9\u51fb\u670d\u52a1\u96c6\u6210\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u6dfb\u52a0\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u8be5\u4fe1\u606f\u4e3a\u901a\u8fc7\u7985\u9053\u63d0\u4ea4\u7f3a\u9677\u7684\u7528\u6237\u540d\u3001\u5bc6\u7801\uff0c\u82e5\u672a\u586b\u5199\uff0c\u5219\u4f7f\u7528\u7ec4\u7ec7\u4e2d\u914d\u7f6e\u7684\u9ed8\u8ba4\u4fe1\u606f\u3002 \u9009\u62e9\u3010\u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u3011\u8bbe\u7f6e\u3010\u7985\u9053\u4fe1\u606f\u3011\uff0c\u5982\u679c\u4e0d\u8bbe\u7f6e\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7\uff0c\u5219\u6240\u6709\u4f7f\u7528 MeterSphere \u63d0\u4ea4\u7f3a\u9677\u7684\u7528\u6237\uff0c\u6b64\u7f3a\u9677\u63a8\u9001\u5230\u914d\u7f6e\u7684\u670d\u52a1\u5e73\u53f0\u4e0a\u8d26\u53f7\u90fd\u662f\u670d\u52a1\u914d\u7f6e\u4e2d\u8bbe\u5b9a\u7684\u8d26\u53f7\u4fe1\u606f\u3002

    \u4ee5\u4e0a\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u5728 Metersphere \u7cfb\u7edf\u4e2d\u6d4b\u8bd5\u7528\u4f8b\u91cc\uff0c\u5c31\u53ef\u4ee5\u5173\u8054\u7985\u9053\u7684\u76f8\u5173\u9700\u6c42\u3002

    \u5728\u7f3a\u9677\u7ba1\u7406\u63d0\u4ea4\u7f3a\u9677\u540e\uff0c\u6570\u636e\u4f1a\u540c\u6b65\u5230\u7985\u9053\u7cfb\u7edf\u4e2d\u3002

    "},{"location":"user_manual/system_management/workspace/#24-azure-devops","title":"2.4 \u4e0eAzure Devops\u96c6\u6210","text":"

    \u7b2c\u4e00\u6b65\uff1a\u670d\u52a1\u96c6\u6210\u914d\u7f6e\u3002 \u586b\u5199\u3010Basic Auth \u8d26\u53f7\u4fe1\u606f\u3011\u540e\uff0c\u70b9\u51fb\u3010\u6d4b\u8bd5\u8fde\u63a5\u3011\u5373\u53ef

    \u7b2c\u4e8c\u6b65\uff1a \u5173\u8054\u9879\u76ee\u914d\u7f6e \u914d\u7f6e\u5b8c\u670d\u52a1\u96c6\u6210\u540e\uff0c\u8fd8\u9700\u8981\u914d\u7f6e\u9879\u76ee\u4e2d\u5f15\u7528\u7985\u9053\u9879\u76ee\u7684\u8bbe\u7f6e\uff0c\u5373\u5173\u8054\u9879\u76ee\u3002\u70b9\u51fb\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u5173\u8054\u9879\u76ee\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u8df3\u8f6c\u5230\u3010\u9879\u76ee\u7ba1\u7406\u3011\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\uff0c\u7f16\u8f91\u9879\u76ee\u91cc\u3010\u96c6\u6210\u7b2c\u4e09\u65b9\u5e73\u53f0\u3011\u3001\u3010AzureDevops\u9879\u76eeID\u3011\u3001\u3010AzureDevops\u8fc7\u6ee4ID\u3011\uff0c\u4ee5\u53ca\u7f3a\u9677\u6a21\u677f\u7b49\u76f8\u5173\u4fe1\u606f\u3002

    \u7b2c\u4e09\u6b65\uff1a\u6dfb\u52a0\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7 \u70b9\u51fb\u670d\u52a1\u96c6\u6210\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u6dfb\u52a0\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u9009\u62e9\u3010\u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u3011\u8bbe\u7f6e\u3010AzureDevops \u4fe1\u606f\u3011\uff0c\u5982\u679c\u4e0d\u8bbe\u7f6e\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7\uff0c\u5219\u4f7f\u7528 MeterSphere \u63d0\u4ea4\u7f3a\u9677\u7684\u7528\u6237\uff0c\u6b64\u7f3a\u9677\u63a8\u9001\u5230\u914d\u7f6e\u7684\u670d\u52a1\u5e73\u53f0\u4e0a\u8d26\u53f7\u90fd\u662f\u670d\u52a1\u914d\u7f6e\u4e2d\u8bbe\u5b9a\u7684\u8d26\u53f7\u4fe1\u606f\u3002

    \u4ee5\u4e0a\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u5728 Metersphere \u7cfb\u7edf\u4e2d\u6d4b\u8bd5\u7528\u4f8b\u91cc\uff0c\u5c31\u53ef\u4ee5\u5173\u8054 AzureDevops \u7684\u76f8\u5173\u9700\u6c42\u3002

    \u5728\u7f3a\u9677\u7ba1\u7406\u63d0\u4ea4\u7f3a\u9677\u540e\uff0c\u70b9\u51fb\u3010\u540c\u6b65\u6309\u94ae\u3011\uff0c\u6570\u636e\u4f1a\u540c\u6b65\u5230 AzureDevops \u7cfb\u7edf\u4e2d\u3002

    "},{"location":"user_manual/system_management/workspace/#3","title":"3 \u9879\u76ee\u7ba1\u7406","text":"

    \u5de5\u4f5c\u7a7a\u95f4\u4e0b\u5bf9\u6240\u6709\u9879\u76ee\u53ca\u9879\u76ee\u4f7f\u7528\u5230\u7684 Jar \u5305\u8fdb\u884c\u7edf\u4e00\u7ba1\u7406\u3002

    • \u521b\u5efa\u9879\u76ee

    \u70b9\u51fb\u9875\u9762\u5de6\u4fa7\u3010\u9879\u76ee\u7ba1\u7406\u3011\uff0c\u70b9\u51fb\u3010\u521b\u5efa\u9879\u76ee\u3011\uff0c\u586b\u5199\u76f8\u5173\u9879\u76ee\u57fa\u672c\u4fe1\u606f

    \u6839\u636e\u9879\u76ee\u5b9e\u9645\u60c5\u51b5\uff0c\u9009\u62e9\u5bf9\u5e94\u7684\u7b2c\u4e09\u65b9\u96c6\u6210\u5e73\u53f0\u4ee5\u53ca\u7528\u4f8b\u6a21\u677f\u548c\u7f3a\u9677\u6a21\u677f\uff0c\u70b9\u51fb\u4fdd\u5b58\u5373\u53ef\u3002

    \u53c2\u6570\u8bf4\u660e

    \u3010\u7b2c\u4e09\u65b9\u96c6\u6210\u5e73\u53f0\u3011\uff1a\u76ee\u524d\u53ea\u652f\u6301\u4ee5\u4e0a\u51e0\u79cd\u96c6\u6210\u5e73\u53f0\uff0c\u53ef\u53c2\u8003\u4e0a\u9762\u3010\u5de5\u4f5c\u7a7a\u95f4-\u670d\u52a1\u96c6\u6210\u3011\u8fdb\u884c\u914d\u7f6e\u3002 \u3010\u7528\u4f8b\u6a21\u677f\u3011\uff1a\u53ef\u53c2\u8003\u3010\u9879\u76ee\u8bbe\u7f6e-\u6a21\u677f\u7ba1\u7406-\u7528\u4f8b\u6a21\u677f\u3011\u8fdb\u884c\u81ea\u5b9a\u4e49\u7528\u4f8b\u6a21\u677f\u3002 \u3010\u7f3a\u9677\u6a21\u677f\u3011\uff1a\u53ef\u53c2\u8003\u3010\u9879\u76ee\u8bbe\u7f6e-\u6a21\u677f\u7ba1\u7406-\u7f3a\u9677\u6a21\u677f\u3011\u8fdb\u884c\u81ea\u5b9a\u4e49\u7f3a\u9677\u6a21\u677f\u3002

    \u81ea\u52a8\u751f\u6210 Jira \u7f3a\u9677\u6a21\u7248 (X-Pack) \u3010\u521b\u5efa\u9879\u76ee\u3011\uff0c\u586b\u5199\u7b2c\u4e09\u65b9\u96c6\u6210\u5e73\u53f0\u4e3a Jira \u540e\uff0c\u52fe\u9009\u4e0b\u9762\u7684\u3010\u4f7f\u7528 Jira \u7f3a\u9677\u6a21\u677f\u3011\uff0c\u586b\u5199\u597d\u5176\u4ed6\u914d\u7f6e\u4fe1\u606f\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5373\u53ef

    • \u7f16\u8f91\u9879\u76ee \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u53ef\u7f16\u8f91\u9879\u76ee\u76f8\u5173\u4fe1\u606f\u540e\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5373\u53ef

    • \u5220\u9664\u9879\u76ee \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u586b\u5199\u4e0a\u65b9\u63d0\u793a\u5185\u5bb9\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\uff0c\u8be5\u9879\u76ee\u5373\u53ef\u88ab\u5220\u9664

    • \u73af\u5883\u914d\u7f6e \u70b9\u51fb\u3010\u73af\u5883\u914d\u7f6e\u3011\u6309\u94ae\uff0c\u586b\u5199\u73af\u5883\u76f8\u5173\u4fe1\u606f\u5373\u53ef\uff0c\u5177\u4f53\u60c5\u51b5\u53ef\u53c2\u8003\u3010\u5de5\u4f5c\u7a7a\u95f4-\u73af\u5883\u7ba1\u7406\u3011

    "},{"location":"user_manual/system_management/workspace/#4-x-pack","title":"4 \u914d\u989d\u7ba1\u7406 (X-Pack)","text":"

    \u8fdb\u5165\u3010\u914d\u989d\u7ba1\u7406\u3011\u9875\u9762\uff0c\u53ef\u3010\u7f16\u8f91\u3011\u4e0a\u65b9\u7684\u9879\u76ee\u9ed8\u8ba4\u914d\u989d\uff0c\u7f16\u8f91\u5b8c\u6210\u540e\uff0c\u5728\u914d\u989d\u5217\u8868\u4e2d\u4f7f\u7528\u9ed8\u8ba4\u914d\u7f6e\u7684\uff0c\u5c06\u540c\u6b65\u66f4\u65b0\u7f16\u8f91\u7684\u6570\u636e\u3002

    \u70b9\u51fb\u9879\u76ee\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u53ef\u5bf9\u5355\u4e2a\u9879\u76ee\u8fdb\u884c\u914d\u989d\u7ba1\u7406\u8bbe\u7f6e

    \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u5373\u53ef\u5220\u9664\u5df2\u914d\u7f6e\u597d\u7684\u5185\u5bb9\uff0c\u6062\u590d\u5230\u6700\u521d\u72b6\u6001\uff0c\u4f7f\u7528\u9ed8\u8ba4\u914d\u989d\u7684\u72b6\u6001\u4e5f\u7531\u3010\u662f\u3011\u53d8\u6210\u3010\u5426\u3011

    "},{"location":"user_manual/system_management/workspace/#5","title":"5 \u73af\u5883\u7ba1\u7406","text":"

    \u5de5\u4f5c\u7a7a\u95f4\u4e0b\u6240\u6709\u6d4b\u8bd5\u76f8\u5173\u73af\u5883\u7edf\u4e00\u7ba1\u7406\u3002\u6b64\u73af\u5883\u914d\u7f6e\u7ba1\u7406\u5373\u662f\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u7684 \u6240\u6709\u9879\u76ee\u7684 \u6240\u6709\u73af\u5883\u4fe1\u606f\uff0c\u53ef\u5bf9\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u7684\u73af\u5883\u8fdb\u884c\u6dfb\u52a0\u3001\u4fee\u6539\u53ca\u79fb\u9664\u7684\u64cd\u4f5c\u3002\u5e76\u4e14\u652f\u6301\u5404\u4e2a\u73af\u5883\u914d\u7f6e\u4fe1\u606f\u7684\u5bfc\u5165\u548c\u5bfc\u51fa\uff0c\u65b9\u4fbf\u5ba2\u6237\u5feb\u901f\u65b0\u5efa\u548c\u7ef4\u62a4\u6d4b\u8bd5\u73af\u5883\u3002 \u70b9\u51fb\u9875\u9762\u5de6\u4fa7\u3010\u5de5\u4f5c\u7a7a\u95f4\u3011\uff0c\u70b9\u51fb\u3010\u73af\u5883\u914d\u7f6e\u3011\uff0c\u5373\u53ef\u67e5\u770b\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u6240\u6709\u9879\u76ee\u7684\u6240\u6709\u73af\u5883\u5217\u8868\u3002

    "},{"location":"user_manual/system_management/workspace/#51","title":"5.1 \u73af\u5883\u5217\u8868","text":"
    • \u521b\u5efa\u73af\u5883 \u70b9\u51fb\u9875\u9762\u5217\u8868\u4fe1\u606f\u5de6\u4e0a\u89d2\u7684\u3010\u521b\u5efa\u73af\u5883\u3011\uff0c\u53ef\u65b0\u589e\u6b64\u5de5\u4f5c\u7a7a\u95f4\u4e0b\u4efb\u610f\u9879\u76ee\u7684\u6d4b\u8bd5\u73af\u5883\u3002

    \u5728\u5de5\u4f5c\u7a7a\u95f4\u4e0b\u521b\u5efa\u73af\u5883\uff0c\u9700\u8981\u6307\u5b9a\u6b64\u73af\u5883\u662f\u7528\u4e8e\u54ea\u4e2a\u9879\u76ee\uff0c\u5176\u4ed6\u73af\u5883\u8bbe\u7f6e\u4fe1\u606f\u540c\u9879\u76ee\u7ba1\u7406\u91cc\u7684\u65b0\u589e\u73af\u5883\u3002

    \u53c2\u6570\u8bf4\u660e

    \u3010\u9009\u62e9\u9879\u76ee\u3011\uff1a\u6307\u5b9a\u73af\u5883\u6240\u5c5e\u7684\u9879\u76ee\uff0c\u6b64\u9879\u76ee\u662f\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e0b\uff0c\u6709\u6743\u9650\u7684\u9879\u76ee\u5217\u8868\u3002 \u3010\u73af\u5883\u540d\u79f0\u3011\uff1a\u4e3a\u65b0\u521b\u5efa\u7684\u73af\u5883\u547d\u540d\u3002 \u3010\u901a\u7528\u914d\u7f6e\u3011\uff1a\u6b64\u5904\u8bbe\u7f6e\u7684\u53d8\u91cf\u662f\u73af\u5883\u53d8\u91cf\uff0c\u53ef\u5355\u4e2a\u6dfb\u52a0\u548c\u6279\u91cf\u6dfb\u52a0\u3002IP \u548c\u57df\u540d\u6620\u5c04\u5173\u7cfb\u8bbe\u7f6e\u4ee5\u53ca\u94fe\u63a5\u8d85\u65f6\u3001\u54cd\u5e94\u8d85\u65f6\u8bbe\u7f6e\u3002 \u3010HTTP\u914d\u7f6e\u3011\uff1a\u6b64\u5904\u53ef\u914d\u7f6e\u73af\u5883\u5730\u5740\u4ee5\u53ca\u542f\u7528\u6761\u4ef6\uff0c\u4e5f\u53ef\u8bbe\u7f6e\u8bf7\u6c42\u5934\u3002 \u3010\u6570\u636e\u5e93\u914d\u7f6e\u3011\uff1a\u914d\u7f6e\u6570\u636e\u5e93\u7684\u6570\u636e\u9a71\u52a8\u4ee5\u53ca\u8fde\u63a5\u4fe1\u606f\u7b49\uff0c\u76ee\u524d\u652f\u6301 MYSQL\u3001Oracle\u3001SQLServer\u3001Postgre\u6570\u636e\u5e93 \u3010TCP \u914d\u7f6e\u3011\uff1a\u914d\u7f6e\u8fde\u63a5 TCP \u8bf7\u6c42\u7684\u76f8\u5173\u4fe1\u606f \u3010\u8bc1\u4e66\u914d\u7f6e\u3011\uff1a\u53ef\u5728\u6b64\u914d\u7f6e\u76f8\u5173\u7684\u8bc1\u4e66\u4fe1\u606f \u3010\u5168\u5c40\u524d\u7f6e\u811a\u672c\u3011\uff1a\u5168\u5c40\u524d\u7f6e\u811a\u672c\u53ef\u5206\u4e3a\u3010\u5355\u4e2a\u8bf7\u6c42\u6b65\u9aa4\u524d\u6267\u884c\u3011\u548c\u3010\u6240\u6709\u573a\u666f\u6b65\u9aa4\u524d\u6267\u884c\u3011 \u3010\u5168\u5c40\u540e\u7f6e\u811a\u672c\u3011\uff1a\u5168\u5c40\u540e\u7f6e\u811a\u672c\u53ef\u5206\u4e3a\u3010\u5355\u4e2a\u8bf7\u6c42\u6b65\u9aa4\u540e\u6267\u884c\u3011\u548c\u3010\u6240\u6709\u573a\u666f\u6b65\u9aa4\u540e\u6267\u884c\u3011 \u3010\u5168\u5c40\u8ba4\u8bc1\u914d\u7f6e\u3011\uff1a\u53ef\u914d\u7f6e\u8ba4\u8bc1\u65b9\u5f0f\u548c\u52a0\u5bc6\u7b49\u4fe1\u606f \u3010\u5168\u5c40\u65ad\u8a00\u3011\uff1a\u53ef\u542f\u7528\u8bef\u62a5\u8bbe\u7f6e\u548c\u9009\u62e9\u591a\u79cd\u7c7b\u578b\u65b9\u5f0f\u8fdb\u884c\u65ad\u8a00

    • \u901a\u7528\u914d\u7f6e \u6b64\u5904\u8bbe\u7f6e\u7684\u53d8\u91cf\u662f\u73af\u5883\u53d8\u91cf\uff0c\u7c7b\u578b\u53ef\u4ee5\u4e3a\u591a\u79cd\u7c7b\u578b\uff0c\u53ef\u5355\u4e2a\u6dfb\u52a0\u548c\u6279\u91cf\u6dfb\u52a0

    IP \u548c\u57df\u540d\u8fdb\u884c\u6620\u5c04\u914d\u7f6e\uff0c\u53ef\u8bbe\u7f6e\u94fe\u63a5\u8d85\u65f6\u3001\u54cd\u5e94\u8d85\u65f6\u65f6\u95f4

    • HTTP\u914d\u7f6e \u8bbe\u7f6e HTTP/HTTPS \u8bf7\u6c42\u5730\u5740\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u3011\u540e\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5373\u53ef

    \u53ef\u8bbe\u7f6e\u6a21\u5757\u3001\u8def\u5f84\u7b49\u6761\u4ef6\u6765\u542f\u7528\u8be5\u73af\u5883

    \u53ef\u5355\u4e2a\u8bbe\u7f6e\u6216\u8005\u6279\u91cf\u8bbe\u7f6e\u8bf7\u6c42\u5934\u4fe1\u606f

    • \u6570\u636e\u5e93\u914d\u7f6e \u914d\u7f6e\u6570\u636e\u5e93\u7684\u6570\u636e\u9a71\u52a8\u4ee5\u53ca\u8fde\u63a5\u4fe1\u606f\u7b49\uff0c\u76ee\u524d\u652f\u6301 MYSQL\u3001Oracle\u3001SQLServer\u3001Postgre\u6570\u636e\u5e93

    \u6267\u884c\u591a\u6761SQL\u8bed\u53e5\u9700\u5728\u6570\u636e\u5e93\u540e\u9762\u52a0\u4e0a\u3010?allowMultiQueries=true\u3011\uff0c\u53ef\u8bbe\u7f6e\u6700\u5927\u8fde\u63a5\u6570\u548c\u8d85\u65f6\u65f6\u95f4\uff0c\u70b9\u51fb\u3010\u6821\u9a8c\u3011\u6216\u3010\u6dfb\u52a0\u3011

    • TCP \u914d\u7f6e \u53ef\u914d\u7f6e\u8fde\u63a5 TCP \u8bf7\u6c42\u7684\u76f8\u5173\u4fe1\u606f\uff0c\u4e3b\u8981\u6709 TCPClientImpl\u3001BinaryTCPClientImpl\u3001LengthPrefixedBinaryTCPClientImpl \u4e09\u79cd\u65b9\u5f0f

    • \u8bc1\u4e66\u914d\u7f6e \u8bc1\u4e66\u6587\u4ef6\u4e0a\u4f20\u652f\u6301 p12\uff0cjks\uff0cpfx \u683c\u5f0f

    • \u5168\u5c40\u524d\u7f6e\u811a\u672c \u53ef\u5728\u5355\u4e2a\u8bf7\u6c42\u6b65\u9aa4\u524d\u6267\u884c\u548c\u5728\u6240\u6709\u573a\u666f\u6b65\u9aa4\u524d\u6267\u884c\uff0c\u70b9\u51fb\u3010i\u3011\u53ef\u67e5\u770b\u63d0\u793a\u4fe1\u606f

    \u3010\u5355\u4e2a\u8bf7\u6c42\u6b65\u9aa4\u524d\u6267\u884c\u3011\u53ef\u8bbe\u7f6e\u3010\u5168\u5c40\u524d\u7f6e\u811a\u672c\u3011\u6267\u884c\u7684\u534f\u8bae\u4ee5\u53ca\u987a\u5e8f

    \u3010\u6240\u6709\u573a\u666f\u6b65\u9aa4\u524d\u6267\u884c\u3011\u53ef\u5173\u8054\u573a\u666f\u7ed3\u679c\uff0c\u573a\u666f\u6267\u884c\u6210\u529f\u4f46\u662f\u6b64\u5904\u524d\u7f6e\u811a\u672c\u6267\u884c\u5931\u8d25\uff0c\u6267\u884c\u7ed3\u679c\u662f\u663e\u793a\u5931\u8d25

    • \u5168\u5c40\u540e\u7f6e\u811a\u672c \u53ef\u53c2\u8003\u4e0a\u9762\u3010\u5168\u5c40\u524d\u7f6e\u811a\u672c\u3011
    • \u5168\u5c40\u8ba4\u8bc1\u914d\u7f6e \u53ef\u914d\u7f6e\u8ba4\u8bc1\u65b9\u5f0f\u548c\u52a0\u5bc6\u4fe1\u606f

    • \u5168\u5c40\u65ad\u8a00 \u53ef\u542f\u7528/\u5173\u95ed\u8bef\u62a5

    \u53ef\u9009\u62e9\u591a\u79cd\u7c7b\u578b\u8fdb\u884c\u65ad\u8a00\u8bbe\u7f6e\uff0c\u53ef\u52fe\u9009\u5ffd\u7565\u72b6\u6001\u7801\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u3011\u6309\u94ae\u5373\u53ef

    • \u5bfc\u5165\u73af\u5883 \u70b9\u51fb\u3010\u5bfc\u5165\u3011\u6309\u94ae\u5bfc\u5165\u73af\u5883\uff0c\u4ec5\u652f\u6301\u901a\u8fc7 metersphere \u5bfc\u51fa\u7684 json \u6587\u4ef6\u3002

    \u5bfc\u5165\u652f\u6301\u4e3a\u4e00\u4e2a\u9879\u76ee\u6279\u91cf\u521b\u5efa\u4e0d\u540c\u7684\u73af\u5883\u3002

    • \u5bfc\u51fa\u73af\u5883 \u70b9\u51fb\u3010\u5bfc\u51fa\u73af\u5883\u3011\u6309\u94ae\u5bfc\u51fa\u73af\u5883\uff0c\u5c06\u73af\u5883\u5bfc\u51fa\u7684 json \u6587\u4ef6\u3002

    • \u7f16\u8f91\u73af\u5883 \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u7f16\u8f91\u73af\u5883\uff0c\u53ef\u4fee\u6539\u73af\u5883\u914d\u7f6e\u3002

    • \u590d\u5236\u73af\u5883 \u70b9\u51fb\u3010\u590d\u5236\u3011\u6309\u94ae\u8fdb\u884c\u590d\u5236\u73af\u5883\uff0c\u53ef\u590d\u5236\u5f53\u524d\u73af\u5883\u914d\u7f6e\u3002

    • \u5220\u9664\u73af\u5883 \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\uff0c\u5373\u53ef\u5220\u9664\u73af\u5883\u914d\u7f6e\u3002

    "},{"location":"user_manual/system_management/workspace/#52","title":"5.2 \u73af\u5883\u7ec4","text":"
    • \u521b\u5efa\u73af\u5883\u7ec4 MeterSphere \u652f\u6301\u8de8\u9879\u76ee\u8fdb\u884c\u63a5\u53e3\u3001\u63a5\u53e3\u7528\u4f8b\u3001\u573a\u666f\u7528\u4f8b\u7b49\u81ea\u52a8\u5316\u811a\u672c\u5f15\u7528\uff0c\u53ef\u4ee5\u6839\u636e\u4e0d\u540c\u9879\u76ee\u3001\u4e0d\u540c\u73af\u5883\u7ec4\u5408\u6210\u4e00\u4e2a\u73af\u5883\u7ec4\uff0c\u5f53\u81ea\u52a8\u5316\u6267\u884c\u65f6\uff0c\u53ef\u4ee5\u76f4\u63a5\u9009\u62e9\u8be5\u73af\u5883\u7ec4\u3002 \u70b9\u51fb\u3010\u521b\u5efa\u73af\u5883\u7ec4\u3011\uff0c\u9009\u62e9\u4e0d\u540c\u9879\u76ee\u3001\u4e0d\u540c\u73af\u5883\u4fe1\u606f\u3002
    • \u7f16\u8f91\u73af\u5883\u7ec4 \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u7f16\u8f91\u73af\u5883\u7ec4\uff0c\u53ef\u4fee\u6539\u5f53\u524d\u73af\u5883\u7ec4\u3002
    • \u590d\u5236\u73af\u5883\u7ec4 \u70b9\u51fb\u3010\u590d\u5236\u3011\u6309\u94ae\uff0c\u590d\u5236\u73af\u5883\u7ec4\u3002
    • \u5220\u9664\u73af\u5883\u7ec4 \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u6839\u636e\u63d0\u793a\u4fe1\u606f\u8f93\u5165\u540e\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\uff0c\u5220\u9664\u73af\u5883\u7ec4\u3002
    "},{"location":"user_manual/system_management/workspace/#6","title":"6 \u64cd\u4f5c\u65e5\u5fd7","text":"

    \u663e\u793a\u767b\u5f55\u7528\u6237\u6240\u5904\u3010\u5de5\u4f5c\u7a7a\u95f4\u3011\u4e0b\u7684\u6240\u6709\u6709\u6743\u9650\u3010\u9879\u76ee\u3011\u7684\u6d4b\u8bd5\u8d44\u6e90\u65e5\u5fd7\u4fe1\u606f\u3002

    "},{"location":"user_manual/test_track/home/","title":"\u9996\u9875","text":"

    \u6d4b\u8bd5\u8ddf\u8e2a\u7684\u9996\u9875\u4e3b\u8981\u7528\u4e8e\u5c55\u793a\u73b0\u6709\u9879\u76ee\u7684\u7528\u4f8b\u6570\u91cf\u3001\u5173\u8054\u7528\u4f8b\u6570\u91cf\u3001\u7528\u4f8b\u7ef4\u62a4\u4eba\u5206\u5e03\u3001\u4ee5\u53ca\u8fc7\u53bb7\u5929\u6d4b\u8bd5\u8ba1\u5212\u5931\u8d25\u7528\u4f8bTOP 10\u3001\u8fd0\u884c\u4e2d\u7684\u5b9a\u65f6\u4efb\u52a1\u7b49\u4fe1\u606f\u3002

    "},{"location":"user_manual/test_track/intro/","title":"\u6982\u8ff0","text":"

    Meterphere \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\u56f4\u7ed5\u6d4b\u8bd5\u7528\u4f8b\u53ca\u6d4b\u8bd5\u8ba1\u5212\u63d0\u4f9b\u4ee5\u4e0b\u4e3b\u8981\u529f\u80fd\uff1a

    • \u9996\u9875\u4fe1\u606f\u5c55\u793a\uff1a\u9996\u9875\u96c6\u4e2d\u5c55\u793a\u4e86\u5f53\u524d\u9879\u76ee\u7684\u7528\u4f8b\u6570\u91cf\u7edf\u8ba1\u3001\u5173\u8054\u7528\u4f8b\u6570\u91cf\u7edf\u8ba1\u3001\u7528\u4f8b\u7ef4\u62a4\u4eba\u5206\u5e03\u3001\u9057\u7559\u7f3a\u9677\u7edf\u8ba1\u3001\u8fc7\u53bb7\u5929\u6d4b\u8bd5\u8ba1\u5212\u5931\u8d25\u7528\u4f8bTOP 10\u3001\u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\u3001\u5b9a\u65f6\u4efb\u52a1\u7b49\u4fe1\u606f\u3002
    • \u529f\u80fd\u7528\u4f8b\uff1a\u652f\u6301\u5728\u7ebf\u8868\u5355\u3001\u8111\u56fe\u65b9\u5f0f\u521b\u5efa\u6d4b\u8bd5\u7528\u4f8b\uff0c\u521b\u5efa\u7528\u4f8b\u65f6\u5173\u8054\u5176\u4ed6\u7c7b\u578b\u6d4b\u8bd5\u7528\u4f8b\uff08\u6bd4\u5982\u63a5\u53e3\u7528\u4f8b\u3001\u573a\u666f\u7528\u4f8b\u3001\u6027\u80fd\u7528\u4f8b\uff09\uff0c\u652f\u6301\u6d4b\u8bd5\u7528\u4f8b\u5bfc\u5165\u3001\u5bfc\u51fa\uff0c\u5bfc\u5165\u5bfc\u51fa\u683c\u5f0f\u652f\u6301 Excel\u3001Xmind \u7b49\u591a\u79cd\u6587\u4ef6\u683c\u5f0f\u3002
    • \u7528\u4f8b\u8bc4\u5ba1\uff1a\u652f\u6301\u521b\u5efa\u8bc4\u5ba1\uff0c\u5173\u8054\u53ca\u53d6\u6d88\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\uff0c\u5728\u7ebf\u8bc4\u5ba1\u5e76\u53cd\u9988\u8bc4\u5ba1\u662f\u5426\u901a\u8fc7\u53ca\u8bc4\u5ba1\u5177\u4f53\u610f\u89c1\u5efa\u8bae\u3002
    • \u6d4b\u8bd5\u8ba1\u5212\uff1a\u652f\u6301\u5217\u8868\u663e\u793a\u3001\u521b\u5efa\u3001\u7f16\u8f91\u3001\u5220\u9664\u6d4b\u8bd5\u8ba1\u5212\uff0c\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\uff0c\u5728\u7ebf\u66f4\u65b0\u53cd\u9988\u6d4b\u8bd5\u7528\u4f8b\u7684\u6d4b\u8bd5\u7ed3\u679c\uff0c\u5305\u62ec\"\u901a\u8fc7\"\u3001\"\u5931\u8d25\"\u3001\"\u963b\u585e\"\u3001\"\u8df3\u8fc7\"\uff0c\u4ee5\u53ca\u5728\u7ebf\u81ea\u52a8\u5b9e\u65f6\u7edf\u8ba1\u663e\u793a\u6d4b\u8bd5\u8ba1\u5212\u5bf9\u5e94\u7684\u6d4b\u8bd5\u62a5\u544a\uff0c\u5bfc\u51faHTML\u683c\u5f0f\u6d4b\u8bd5\u62a5\u544a\u548c\u5206\u4eab\u62a5\u544a\u94fe\u63a5\u3002\u540c\u65f6\u6d4b\u8bd5\u62a5\u544a\u6a21\u677f\u53ef\u81ea\u5b9a\u4e49\uff0c\u80fd\u591f\u4e0e\u5e73\u53f0\u4e2d\u7684\u63a5\u53e3\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u529f\u80fd\u8054\u52a8\uff0c\u81ea\u52a8\u66f4\u65b0\u5173\u8054\u7528\u4f8b\u7684\u7ed3\u679c\uff0c\u8bb0\u5f55\u6d4b\u8bd5\u7528\u4f8b\u5173\u8054\u7684\u7f3a\u9677\uff0c\u7f3a\u9677\u8bb0\u5f55\u652f\u6301\u5173\u8054\u5230 JIRA / TAPD\u3002
    • \u7f3a\u9677\u7ba1\u7406\uff1a\u7ba1\u7406\u8be5\u9879\u76ee\u4e0b\u6240\u6709\u7684\u7f3a\u9677\u4fe1\u606f\uff0c\u5982\u679c\u9879\u76ee\u8bbe\u7f6e\u5173\u8054\u4e86\u5176\u4ed6BUG\u5e73\u53f0\uff08\u6bd4\u5982JIRA\u3001TAPD\u3001\u7985\u9053\u7b49\uff09\uff0c\u5219\u6b64Bug\u4f1a\u81ea\u52a8\u540c\u6b65\u5230\u76f8\u5e94\u7684\u5e73\u53f0\u3002
    • \u62a5\u544a\uff1a\u63d0\u4f9b\u76f4\u89c2\u3001\u7f8e\u89c2\u7684\u9875\u9762\u5bf9\u6d4b\u8bd5\u8ba1\u5212\u7ed3\u679c\u8fdb\u884c\u53ef\u89c6\u5316\u5c55\u793a\uff0c\u540c\u65f6\u63d0\u4f9b\u5bfc\u51fa\u62a5\u544a\u7b49\u529f\u80fd\u65b9\u4fbf\u5bf9\u6d4b\u8bd5\u7ed3\u679c\u8fdb\u884c\u5f52\u6863\u53ca\u5206\u4eab\uff0c\u540c\u65f6\u53ef\u81ea\u5b9a\u4e49\u914d\u7f6e\u62a5\u544a\u6a21\u7248\u3002
    "},{"location":"user_manual/test_track/test_case_review/","title":"\u7528\u4f8b\u8bc4\u5ba1","text":"

    \u7528\u4f8b\u8bc4\u5ba1\u652f\u6301\u521b\u5efa\u8bc4\u5ba1\uff0c\u5173\u8054\u53ca\u53d6\u6d88\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\uff0c\u5728\u7ebf\u8bc4\u5ba1\u5e76\u53cd\u9988\u8bc4\u5ba1\u662f\u5426\u901a\u8fc7\u53ca\u8bc4\u5ba1\u5177\u4f53\u610f\u89c1\u5efa\u8bae\u3002 \u70b9\u51fb\u3010\u7528\u4f8b\u8bc4\u5ba1\u3011\u53ef\u67e5\u770b\u5f53\u524d\u9879\u76ee\u4e2d\u6240\u6709\u7684\u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\u3002

    \u8fdb\u5165\u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\u8be6\u60c5\u9875\u65f6\uff0c\u7cfb\u7edf\u63d0\u4f9b\u4e86\u4e24\u79cd\u7528\u4f8b\u663e\u793a\u6a21\u5f0f\uff1a\u5217\u8868\u548c\u8111\u56fe\u3002

    \u540c\u65f6\u53ef\u521b\u5efa\u3001\u7f16\u8f91\u3001\u5220\u9664\u3001\u5f00\u542f\u7528\u4f8b\u8bc4\u5ba1\u3001\u67e5\u8be2\u7b49\u7b49\u76f8\u5173\u64cd\u4f5c\u3002

    "},{"location":"user_manual/test_track/test_case_review/#1","title":"1 \u521b\u5efa\u7528\u4f8b\u8bc4\u5ba1\u4efb\u52a1","text":"

    \u70b9\u51fb\u3010\u521b\u5efa\u7528\u4f8b\u8bc4\u5ba1\u3011\u6309\u94ae\uff0c\u521b\u5efa\u4e00\u4e2a\u7528\u4f8b\u8bc4\u5ba1\u3002

    \u8bc4\u5ba1\u901a\u8fc7\u6807\u51c6

    • \u3010\u5168\u90e8\u901a\u8fc7\u3011\uff1a\u6240\u6709\u8bc4\u5ba1\u4eba\u90fd\u901a\u8fc7\u624d\u901a\u8fc7\u3002
    • \u3010\u5355\u4eba\u901a\u8fc7\u3011\uff1a\u4efb\u610f\u8bc4\u5ba1\u4eba\u901a\u8fc7\u5219\u901a\u8fc7\u3002

    \u5728\u8bc4\u5ba1\u4efb\u52a1\u6267\u884c\u4e3b\u9875\uff0c\u70b9\u51fb\u53f3\u4fa7\u5217\u8868\u4e0a\u65b9\u7684\u3010\u5173\u8054\u7528\u4f8b\u3011\u6309\u94ae\u4e3a\u8bc4\u5ba1\u4efb\u52a1\u5173\u8054\u7528\u4f8b\u3002

    \u5728\u5f39\u51fa\u7684\u7528\u4f8b\u9009\u62e9\u5217\u8868\u4e2d\uff0c\u9009\u62e9\u8981\u6dfb\u52a0\u5230\u6b64\u6b21\u7528\u4f8b\u8bc4\u5ba1\u4efb\u52a1\u4e2d\u7684\u6d4b\u8bd5\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5b8c\u6210\u6dfb\u52a0\u3002

    "},{"location":"user_manual/test_track/test_case_review/#2","title":"2 \u7f16\u8f91\u8bc4\u5ba1","text":"

    \u5728\u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\u8bb0\u5f55\u4e2d\uff0c\u9f20\u6807\u70b9\u51fb\u67d0\u6761\u8bb0\u5f55\uff0c\u6216\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u8fdb\u5165\u8be5\u8bc4\u5ba1\u8bb0\u5f55\u7684\u7ef4\u62a4\u4fe1\u606f\u9875\u9762\u3002

    "},{"location":"user_manual/test_track/test_case_review/#21","title":"2.1 \u5173\u8054\u7528\u4f8b","text":"

    \u70b9\u51fb\u3010\u5173\u8054\u7528\u4f8b\u3011\uff0c\u53ef\u5c06\u9700\u8981\u8bc4\u5ba1\u7684\u6d4b\u8bd5\u7528\u4f8b\u8fdb\u884c\u5173\u8054\uff0c\u8fd9\u662f\u5f00\u542f\u8bc4\u5ba1\u6d4b\u8bd5\u7528\u4f8b\u7684\u524d\u63d0\u3002

    \u540c\u65f6\u7cfb\u7edf\u652f\u6301\u8de8\u9879\u76ee\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u3002

    \u9009\u62e9\u9700\u8bc4\u5ba1\u7684\u6d4b\u8bd5\u7528\u4f8b\u540e\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5373\u53ef\u5b8c\u6210\u6d4b\u8bd5\u7528\u4f8b\u7684\u5173\u8054\u3002

    "},{"location":"user_manual/test_track/test_case_review/#22","title":"2.2 \u53d6\u6d88\u5173\u8054","text":"

    \u70b9\u51fb\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u7684\u3010\u53d6\u6d88\u7528\u4f8b\u5173\u8054\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u53d6\u6d88\u8be5\u7528\u4f8b\u4e0e\u7528\u4f8b\u8bc4\u5ba1\u7684\u5173\u8054\uff0c\u53d6\u6d88\u540e\uff0c\u8be5\u7528\u4f8b\u5728\u7528\u4f8b\u5217\u8868\u4e2d\u6d88\u5931\u3002\u5f53\u6709\u591a\u6761\u7684\u7528\u4f8b\u9700\u8981\u53d6\u6d88\u5173\u8054\u65f6\uff0c\u53ef\u4ee5\u53bb\u52fe\u9009\u76f8\u5173\u7684\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u6279\u91cf\u53d6\u6d88\u5173\u8054\u3011\u6309\u94ae\uff0c\u4e00\u6b21\u6027\u5bf9\u591a\u6761\u7528\u4f8b\u53d6\u6d88\u5173\u8054\u3002

    "},{"location":"user_manual/test_track/test_case_review/#3","title":"3 \u5f00\u59cb\u8bc4\u5ba1","text":"

    \u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\u5206\u4e3a\u4e24\u79cd\u6a21\u5f0f\uff0c\u4e00\u79cd\u662f\u4ee5\u5217\u8868\u6a21\u5f0f\u8fdb\u884c\u8bc4\u5ba1\uff1b\u7b2c\u4e8c\u79cd\u65b9\u5f0f\u662f\u4ee5\u8111\u56fe\u6a21\u5f0f\u8fdb\u884c\u8bc4\u5ba1\u3002

    "},{"location":"user_manual/test_track/test_case_review/#31","title":"3.1 \u5217\u8868\u6a21\u5f0f\u8bc4\u5ba1","text":"

    \u4e3a\u8bc4\u5ba1\u4efb\u52a1\u6dfb\u52a0\u5b8c\u7528\u4f8b\u540e\uff0c\u70b9\u51fb\u3010\u5f00\u59cb\u8bc4\u5ba1\u3011\u6309\u94ae\u8fdb\u5165\u7528\u4f8b\u8be6\u60c5\u9875\uff0c\u9ed8\u8ba4\u4ece\u4efb\u52a1\u5217\u8868\u7684\u7b2c\u4e00\u6761\u7528\u4f8b\u5b9e\u65bd\u8bc4\u5ba1\uff0c\u7528\u6237\u4e5f\u53ef\u4ee5\u70b9\u51fb\u4efb\u610f\u4e00\u6761\u7528\u4f8b\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u4ece\u8be5\u6761\u7528\u4f8b\u5f00\u59cb\u5b9e\u65bd\u8bc4\u5ba1\u3002

    \u8fdb\u5165\u7528\u4f8b\u8bc4\u5ba1\u8be6\u60c5\u9875\u9762\uff0c\u4f7f\u7528\u3010\u7ffb\u9875\u3011\u6309\u94ae\u5feb\u901f\u5207\u6362\u7528\u4f8b\uff0c\u4f7f\u7528\u6807\u7b7e\u5feb\u6377\u6807\u6ce8\u7528\u4f8b\u8bc4\u5ba1\u7ed3\u679c\uff0c\u6807\u6ce8\u540e\u7684\u8bc4\u5ba1\u7ed3\u679c\u5c06\u4f1a\u5728\u7528\u4f8b\u5217\u8868\u4e2d\u663e\u793a\u3002\u540c\u65f6\u652f\u6301\u7528\u6237\u4e3a\u6b64\u6b21\u8bc4\u5ba1\u53d1\u8868\u8bc4\u8bba\u3002

    • \u67e5\u770b\u7528\u4f8b\u5173\u8054\u7f3a\u9677 \u7528\u6237\u53ef\u4ee5\u67e5\u770b\u8bc4\u5ba1\u7528\u4f8b\u5173\u8054\u7684\u7f3a\u9677\u3002

    • \u6279\u91cf\u66f4\u6539\u8bc4\u5ba1\u7ed3\u679c \u5f53\u591a\u4e2a\u7528\u4f8b\u7684\u8bc4\u5ba1\u7ed3\u679c\u76f8\u540c\u6216\u53d1\u751f\u76f8\u540c\u53d8\u66f4\uff0c\u53ef\u4ee5\u9009\u4e2d\u76f8\u5e94\u7528\u4f8b\uff0c\u8fdb\u5165\u3010\u6279\u91cf\u7f16\u8f91\u3011\u5f39\u7a97\uff0c\u5bf9\u8bc4\u5ba1\u7ed3\u679c\u8fdb\u884c\u7edf\u4e00\u7f16\u8f91\u3002

    "},{"location":"user_manual/test_track/test_case_review/#32","title":"3.2 \u6307\u5b9a\u7528\u4f8b\u8bc4\u5ba1","text":"

    \u5982\u679c\u4e0d\u662f\u4ece\u5934\u5f00\u59cb\u505a\u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\uff0c\u53ef\u4ee5\u7528\u9f20\u6807\u70b9\u51fb\u5177\u4f53\u7684\u67d0\u4e2a\u6d4b\u8bd5\u7528\u4f8b\uff0c\u6216\u8005\u70b9\u51fb\u3010\u7f16\u8f91\u3011\uff0c\u8fdb\u5165\u6307\u5b9a\u6d4b\u8bd5\u7528\u4f8b\u7684\u8bc4\u5ba1\u3002

    "},{"location":"user_manual/test_track/test_case_review/#33","title":"3.3 \u8111\u56fe\u6a21\u5f0f\u8bc4\u5ba1\u7528\u4f8b","text":"

    \u9664\u4e86\u901a\u8fc7\u5217\u8868\u53ca\u8868\u5355\u65b9\u5f0f\u8bc4\u5ba1\u7528\u4f8b\u5916\uff0c\u7528\u6237\u8fd8\u53ef\u4ee5\u901a\u8fc7\u8111\u56fe\u65b9\u5f0f\u5b9e\u73b0\u6b64\u529f\u80fd\u3002\u5728\u7528\u4f8b\u5217\u8868\u9875\u9762\u70b9\u51fb\u3010\u8111\u56fe\u3011\u5207\u6362\u5230\u8111\u56fe\u5c55\u793a\u6a21\u5f0f\uff0c\u9009\u4e2d\u5f85\u8bc4\u5ba1\u7528\u4f8b\uff0c\u901a\u8fc7\u6dfb\u52a0\u6807\u7b7e\u7684\u65b9\u5f0f\u6765\u6807\u8bb0\u7528\u4f8b\u8bc4\u5ba1\u7ed3\u679c\u3002

    "},{"location":"user_manual/test_track/test_case_review/#4","title":"4 \u91cd\u65b0\u63d0\u5ba1","text":"

    \u5f53\u8bc4\u5ba1\u6d3b\u52a8\u4e2d\u7684\u7528\u4f8b\u53d1\u751f\u5185\u5bb9\u53d8\u66f4\u540e\uff0c\u7528\u4f8b\u72b6\u6001\u4f1a\u81ea\u52a8\u5207\u6362\u4e3a\u3010\u91cd\u65b0\u63d0\u5ba1\u3011\u72b6\u6001\u3002

    \u8bc4\u5ba1\u4eba\u53ef\u5feb\u901f\u68c0\u7d22\u51fa\u9700\u8981\u91cd\u65b0\u8bc4\u5ba1\u7684\u7528\u4f8b\u3002\u8bc4\u5ba1\u5217\u8868\u4e2d\u8fd8\u652f\u6301\u624b\u52a8\u66f4\u65b0\u4e3a\u3010\u91cd\u65b0\u63d0\u5ba1\u3011\u72b6\u6001\u3002

    \u5f00\u542f\u91cd\u65b0\u63d0\u5ba1

    \u3010\u91cd\u65b0\u63d0\u5ba1\u3011\u6d41\u7a0b\u9700\u8981\u5728\u3010\u9879\u76ee\u7ba1\u7406\u3011-> \u3010\u66f4\u591a\u9009\u9879\u3011 ->\u3010\u5e94\u7528\u7ba1\u7406\u3011->\u3010\u6d4b\u8bd5\u8ddf\u8e2a\u3011\u9009\u9879\u5361\u4e2d\u5f00\u542f\u3010\u91cd\u65b0\u63d0\u5ba1\u3011\u5f00\u5173\u3002

    "},{"location":"user_manual/test_track/test_case_review/#5","title":"5 \u6279\u91cf\u64cd\u4f5c","text":"

    \u529f\u80fd\u8be6\u7ec6\u4ecb\u7ecd\u53ca\u4f7f\u7528\u8bf4\u660e\u53c2\u8003 \u901a\u7528\u529f\u80fd->\u8868\u5934\u529f\u80fd\u3002\u52fe\u9009\u6216\u5168\u9009\u6240\u6709\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u2026\u3011\u6309\u94ae\uff0c\u53ef\u5bf9\u5176\u505a\u6279\u91cf\u7684\u7f16\u8f91\u548c\u53d6\u6d88\u7b49\u76f8\u5173\u64cd\u4f5c\u3002

    "},{"location":"user_manual/test_track/test_case_review/#51","title":"5.1 \u6279\u91cf\u7f16\u8f91","text":"

    \u5f53\u6709\u5f88\u591a\u7528\u4f8b\u7684\u8bc4\u5ba1\u7ed3\u679c\u76f8\u540c\uff0c\u53ef\u4ee5\u53bb\u52fe\u9009\u5bf9\u5e94\u7684\u7528\u4f8b\uff0c\u8fdb\u5165\u5230\u6279\u91cf\u7f16\u8f91\u5f39\u7a97\uff0c\u70b9\u51fb\u3010\u6279\u91cf\u7f16\u8f91\u3011\uff0c\u5bf9\u8bc4\u5ba1\u7ed3\u679c\u505a\u7edf\u4e00\u7684\u7f16\u8f91\u3002

    "},{"location":"user_manual/test_track/test_case_review/#52","title":"5.2 \u6279\u91cf\u53d6\u6d88\u5173\u8054","text":"

    \u53d6\u6d88\u5173\u8054\u7684\u76ee\u7684\u5c31\u662f\u8be5\u8bc4\u5ba1\u4e2d\u4e0d\u5305\u542b\u6b64\u6d4b\u8bd5\u7528\u4f8b\uff0c\u4ec5\u4ec5\u662f\u4fee\u6539\u4e86\u8bc4\u5ba1\u7528\u4f8b\u7684\u8303\u56f4\uff0c\u5bf9\u6d4b\u8bd5\u7528\u4f8b\u6ca1\u6709\u4efb\u4f55\u4fee\u6539\u548c\u5f71\u54cd\u3002 \u9009\u62e9\u3010\u6279\u91cf\u53d6\u6d88\u5173\u8054\u3011\uff0c\u53ef\u4ee5\u4e00\u6b21\u6027\u8bbe\u7f6e\u6b64\u6b21\u8bc4\u5ba1\u4e0d\u5305\u542b\u591a\u6761\u6307\u5b9a\u7684\u6d4b\u8bd5\u7528\u4f8b\u3002

    "},{"location":"user_manual/test_track/test_defect/","title":"\u7f3a\u9677\u7ba1\u7406","text":"

    \u7f3a\u9677\u7ba1\u7406\u7528\u4e8e\u7ba1\u7406\u8be5\u9879\u76ee\u4e0b\u6240\u6709\u7684\u7f3a\u9677\u4fe1\u606f\uff0c\u5982\u679c\u9879\u76ee\u5df2\u5173\u8054\u5176\u4ed6\u7b2c\u4e09\u65b9\u7f3a\u9677\u7ba1\u7406\u5e73\u53f0\uff0c\u5219 MeterSphere \u5e73\u53f0\u4e0a\u7684 Bug \u72b6\u6001\u4f1a\u81ea\u52a8\u540c\u6b65\u5230\u5173\u8054\u5e73\u53f0\u3002 \u6b64\u7f3a\u9677\u7ba1\u7406\u662f\u7ba1\u7406\u8be5\u9879\u76ee\u4e0b\u6240\u6709\u7684\u7f3a\u9677\u4fe1\u606f\uff0c\u5982\u679c\u9879\u76ee\u8bbe\u7f6e\u4e86\u548c\u5176\u4ed6BUG\u5e73\u53f0\uff08\u6bd4\u5982 Jira\u3001TAPD\u3001\u7985\u9053\u7b49\uff09\u5173\u8054\uff0c\u5219\u6b64 Bug \u4f1a\u81ea\u52a8\u540c\u6b65\u5230\u76f8\u5e94\u7684\u5e73\u53f0\u3002

    "},{"location":"user_manual/test_track/test_defect/#1","title":"1 \u521b\u5efa\u7f3a\u9677","text":"

    \u70b9\u51fb\u5de6\u4e0a\u89d2\u7684\u3010\u521b\u5efa\u7f3a\u9677\u3011\uff0c\u53ef\u4ee5\u5728\u6b64\u521b\u5efa\u7f3a\u9677\uff0c\u4f46\u5728\u6b64\u521b\u5efa\u7684\u7f3a\u9677\u9700\u8981\u624b\u52a8\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u3002

    \u4e5f\u53ef\u4ee5\u5728\u6d4b\u8bd5\u7528\u4f8b\u6267\u884c\u4e2d\u521b\u5efa\u7f3a\u9677\u6216\u5173\u8054\u7f3a\u9677\u3002

    "},{"location":"user_manual/test_track/test_defect/#2-x-pack","title":"2 \u540c\u6b65\u7f3a\u9677 (X-Pack)","text":"

    \u70b9\u51fb\u5de6\u4e0a\u89d2\u7684\u3010\u540c\u6b65\u7f3a\u9677\u3011\uff0c\u5373\u53ef\u5c06\u7f3a\u9677\u540c\u6b65\u5230\u7b2c\u4e09\u65b9\u96c6\u6210\u5e73\u53f0\uff0c\u7b2c\u4e09\u65b9\u96c6\u6210\u5e73\u53f0\u7684\u7f3a\u9677\u4e5f\u4f1a\u540c\u6b65\u5230 MeterSphere \u4e2d\u3002

    "},{"location":"user_manual/test_track/test_defect/#3","title":"3 \u5bfc\u5165\u7f3a\u9677","text":"

    \u70b9\u51fb\u9875\u9762\u7684\u3010\u5bfc\u5165\u3011\u6309\u94ae\uff0c\u4e0b\u8f7d\u5bfc\u5165\u7f3a\u9677\u6a21\u677f\uff0c\u6309\u7167\u7f3a\u9677\u6a21\u677f\u7684\u89c4\u5219\u8fdb\u884c\u586b\u5199\uff0c\u9009\u62e9\u8986\u76d6\u6216\u8005\u4e0d\u8986\u76d6\u8fdb\u884c\u4e0a\u4f20\u5373\u53ef\u3002

    "},{"location":"user_manual/test_track/test_defect/#4","title":"4 \u5bfc\u51fa\u7f3a\u9677","text":"

    \u9009\u62e9\u7f3a\u9677\uff0c\u70b9\u51fb\u9875\u9762\u7684\u3010\u5bfc\u51fa\u3011\u6309\u94ae\uff0c\u52fe\u9009\u5bfc\u51fa\u5b57\u6bb5\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5373\u53ef\u3002

    "},{"location":"user_manual/test_track/test_report/","title":"\u62a5\u544a","text":"

    \u5bf9\u6d4b\u8bd5\u8ba1\u5212\u3001\u63a5\u53e3\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u7b49\uff0c\u7cfb\u7edf\u90fd\u652f\u6301\u63d0\u4f9b\u5b9e\u65f6\u7684\u6d4b\u8bd5\u62a5\u544a\uff0c\u652f\u6301\u5206\u4eab\u3001\u5bfc\u51fa\u6d4b\u8bd5\u62a5\u544a\uff08html\u683c\u5f0f\uff09\u7b49\u3002

    "},{"location":"user_manual/test_track/test_report/#1","title":"1 \u62a5\u544a\u8be6\u60c5\u4ecb\u7ecd","text":"

    \u5bf9\u4e8e\u6d4b\u8bd5\u8ba1\u5212\u7684\u6d4b\u8bd5\u62a5\u544a\uff0c\u5305\u542b\u5404\u7c7b\u6d4b\u8bd5\u7684\u8fdb\u5ea6\u7edf\u8ba1\u3001\u811a\u672c\u7edf\u8ba1\u3001\u7f3a\u9677\u7edf\u8ba1\u4ee5\u53ca\u8be6\u60c5\u7b49\u3002

    "},{"location":"user_manual/test_track/test_report/#11","title":"1.1 \u62a5\u544a\u603b\u7ed3","text":"

    \u5728\u3010\u6d4b\u8bd5\u8ba1\u5212\u3011\u9875\u9762\uff0c\u70b9\u51fb\u3010\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3011\uff0c\u53ef\u7f16\u8f91\u6d4b\u8bd5\u62a5\u544a\u603b\u7ed3\u3002\u70b9\u51fb\u3010\u62a5\u544a\u3011\uff0c\u8fdb\u5165\u6d4b\u8bd5\u62a5\u544a\u9875\u9762\uff0c\u53ef\u770b\u5230\u6b64\u6b21\u62a5\u544a\u7684\u603b\u7ed3\u63cf\u8ff0\u3002

    "},{"location":"user_manual/test_track/test_report/#12","title":"1.2 \u529f\u80fd\u6d4b\u8bd5\u90e8\u5206","text":"

    \u62a5\u544a\u4e2d\u529f\u80fd\u6d4b\u8bd5\u7edf\u8ba1\u5206\u6790\u4e2d\uff0c\u63d0\u4f9b\u4e86\u76f8\u5173\u591a\u4e2a\u9875\u7b7e\u3002\u6bd4\u5982\u6d4b\u8bd5\u7ed3\u679c\u3001\u5931\u8d25\u7528\u4f8b\u3001\u7f3a\u9677\u5217\u8868\u3001\u6240\u6709\u7528\u4f8b\u7b49\u3002 \u6d4b\u8bd5\u7ed3\u679c\u7edf\u8ba1\uff0c\u9ed8\u8ba4\u6b64\u4ee5\u56fe\u5f62\u5316\u5c55\u793a\u3002

    \u540c\u65f6\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u6307\u5b9a\u7edf\u8ba1\u5404\u4e2a\u6307\u6807\uff0c\u7edf\u8ba1\u56fe\u8868\u4e3a\u81ea\u52a8\u91cd\u65b0\u7edf\u8ba1\u3002

    \u62a5\u544a\u4e2d\u3010\u7f3a\u9677\u5217\u8868\u3001\u6240\u6709\u7528\u4f8b\u3001\u5931\u8d25\u7528\u4f8b\u3001\u5835\u585e\u7528\u4f8b\u3001\u8df3\u8fc7\u7528\u4f8b\u3011\u90fd\u662f\u4ee5\u5217\u8868\u7684\u5f62\u5f0f\u663e\u793a\u5176\u76f8\u5173\u660e\u7ec6\u3002

    "},{"location":"user_manual/test_track/test_report/#13","title":"1.3 \u63a5\u53e3\u6d4b\u8bd5\u90e8\u5206","text":"

    \u62a5\u544a\u4e2d\u63a5\u53e3\u6d4b\u8bd5\u7edf\u8ba1\u5206\u6790\uff0c\u63d0\u4f9b\u4e86\u76f8\u5173\u591a\u4e2a\u9875\u7b7e\u3002 \u6d4b\u8bd5\u7ed3\u679c\u7edf\u8ba1\uff0c\u9ed8\u8ba4\u6b64\u4ee5\u56fe\u5f62\u5316\u5c55\u793a\u3002\u540c\u65f6\u628a\u9f20\u6807\u60ac\u6d6e\u5728\u67f1\u72b6\u56fe\u4e0a\uff0c\u53ef\u51fa\u73b0\u6b64\u67f1\u72b6\u76f8\u5173\u7edf\u8ba1\u4fe1\u606f\u3002

    \u62a5\u544a\u4e2d\u3010\u5931\u8d25\u7528\u4f8b\u3001\u6240\u6709\u7528\u4f8b\u3011\u90fd\u662f\u4ee5\u5217\u8868\u7684\u5f62\u5f0f\u663e\u793a\u5176\u76f8\u5173\u660e\u7ec6\u3002 \u6240\u6709\u7528\u4f8b\u5305\u542b\u3010\u63a5\u53e3\u7528\u4f8b\u3011\u548c\u3010\u573a\u666f\u7528\u4f8b\u3011\u4e24\u4e2a\u9875\u7b7e\u3002

    \u9009\u62e9\u3010\u63a5\u53e3\u7528\u4f8b\u3011\uff0c\u70b9\u51fb\u5de6\u4fa7\u63a5\u53e3\u7528\u4f8b\u5217\u8868\u4e2d\u7684\u67d0\u4e2a\u63a5\u53e3\uff0c\u5176\u53f3\u4fa7\u53ef\u5448\u73b0\u8be5\u63a5\u53e3\u8fd0\u884c\u65f6\u8be6\u7ec6\u7684\u6d4b\u8bd5\u6570\u636e\u53ca\u7ed3\u679c\u3002

    \u9009\u62e9\u3010\u573a\u666f\u7528\u4f8b\u3011\uff0c\u70b9\u51fb\u5de6\u4fa7\u573a\u666f\u7528\u4f8b\u5217\u8868\u4e2d\u7684\u67d0\u4e2a\u573a\u666f\uff0c\u5176\u53f3\u4fa7\u53ef\u5448\u73b0\u8be5\u573a\u666f\u7528\u4f8b\u8fd0\u884c\u65f6\u8be6\u7ec6\u7684\u6d4b\u8bd5\u6570\u636e\u53ca\u7ed3\u679c\u3002

    "},{"location":"user_manual/test_track/test_report/#14-ui","title":"1.4 UI \u6d4b\u8bd5\u90e8\u5206","text":"

    \u6d4b\u8bd5\u7ed3\u679c\u7edf\u8ba1\uff0c\u9ed8\u8ba4\u6b64\u4ee5\u56fe\u5f62\u5316\u5c55\u793a\u3002\u540c\u65f6\u628a\u9f20\u6807\u60ac\u6d6e\u5728\u67f1\u72b6\u56fe\u4e0a\uff0c\u53ef\u51fa\u73b0\u6b64\u67f1\u72b6\u76f8\u5173\u7edf\u8ba1\u4fe1\u606f\u3002

    \u70b9\u51fb\u5de6\u4fa7 UI \u7528\u4f8b\u5217\u8868\u4e2d\u7684\u67d0\u4e2a\u7528\u4f8b\uff0c\u5176\u53f3\u4fa7\u53ef\u5448\u73b0\u8be5 UI \u8fd0\u884c\u65f6\u8be6\u7ec6\u7684\u6d4b\u8bd5\u6570\u636e\u53ca\u7ed3\u679c\u3002

    "},{"location":"user_manual/test_track/test_report/#15","title":"1.5 \u6027\u80fd\u6d4b\u8bd5\u90e8\u5206","text":"

    \u62a5\u544a\u4e2d\u6027\u80fd\u6d4b\u8bd5\u7edf\u8ba1\u5206\u6790\uff0c\u63d0\u4f9b\u4e86\u76f8\u5173\u591a\u4e2a\u9875\u7b7e\u3002 \u6d4b\u8bd5\u7ed3\u679c\u7edf\u8ba1\uff0c\u9ed8\u8ba4\u6b64\u4ee5\u56fe\u5f62\u5316\u5c55\u793a\u3002\u540c\u65f6\u628a\u9f20\u6807\u60ac\u6d6e\u5728\u7edf\u8ba1\u56fe\u4e0a\uff0c\u53ef\u51fa\u73b0\u6b64\u56fe\u76f8\u5173\u7edf\u8ba1\u4fe1\u606f\u3002

    \u62a5\u544a\u4e2d\u3010\u5931\u8d25\u7528\u4f8b\u3001\u6240\u6709\u7528\u4f8b\u3011\u90fd\u662f\u4ee5\u5217\u8868\u7684\u5f62\u5f0f\u663e\u793a\u5176\u76f8\u5173\u660e\u7ec6\u3002 \u62a5\u544a\u4e2d\u9009\u62e9\u3010\u6240\u6709\u7528\u4f8b\u3011\uff0c\u70b9\u51fb\u5de6\u4fa7\u7528\u4f8b\u5217\u8868\u4e2d\u7684\u67d0\u4e2a\u7528\u4f8b\uff0c\u5176\u53f3\u4fa7\u53ef\u5448\u73b0\u8be5\u8fd0\u884c\u65f6\u8be6\u7ec6\u7684\u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u3002

    "},{"location":"user_manual/test_track/test_report/#2","title":"2 \u62a5\u544a\u76ee\u5f55","text":"

    \u6d4b\u8bd5\u62a5\u544a\u5305\u542b\u6240\u6709\u6307\u5b9a\u7684\u6d4b\u8bd5\u8303\u56f4\u7684\u62a5\u544a\uff0c\u5185\u5bb9\u7e41\u591a\uff0c\u7cfb\u7edf\u63d0\u4f9b\u4e86\u62a5\u544a\u76ee\u5f55\uff0c\u53ef\u5feb\u901f\u5b9a\u4f4d\u5c55\u793a\u6307\u5b9a\u8be6\u60c5\u3002 \u70b9\u51fb\u62a5\u544a\u5de6\u4fa7\u3010\u76ee\u5f55\u3011\uff0c\u53ef\u770b\u5230\u6b64\u62a5\u544a\u7684\u76ee\u5f55\uff0c\u70b9\u51fb\u5177\u4f53\u76ee\u5f55\uff0c\u53ef\u76f4\u63a5\u8f6c\u5165\u6307\u5b9a\u76ee\u5f55\u7684\u6d4b\u8bd5\u62a5\u544a\u8be6\u60c5\u3002

    "},{"location":"user_manual/test_track/test_report/#3","title":"3 \u62a5\u544a\u514d\u767b\u9646\u5206\u4eab","text":"

    \u62a5\u544a\u652f\u6301\u514d\u767b\u9646\u5206\u4eab\u3002\u70b9\u51fb\u6d4b\u8bd5\u62a5\u544a\u53f3\u4e0a\u89d2\u7684\u3010\u5206\u4eab\u3011\uff0c\u7cfb\u7edf\u4f1a\u751f\u6210\u8be5\u62a5\u544a\u7684\u5730\u5740\uff0c\u5206\u4eab\u6b64\u5730\u5740\u7ed9\u5176\u4ed6\u4eba\u5458\u3002

    \u5728\u6d4f\u89c8\u5668\u7684\u5730\u5740\u680f\u4e2d\uff0c\u8f93\u5165\u8be5\u5730\u5740\uff0c\u5c31\u53ef\u76f4\u63a5\u6253\u5f00\u6b64\u6d4b\u8bd5\u62a5\u544a\u3002

    "},{"location":"user_manual/test_track/test_report/#4","title":"4 \u62a5\u544a\u5bfc\u51fa","text":"

    \u70b9\u51fb\u6d4b\u8bd5\u62a5\u544a\u53f3\u4e0a\u89d2\u7684\u3010\u5bfc\u51fa\u3011\uff0c\u6b64\u62a5\u544a\u53ef\u5bfc\u51fa HTML \u683c\u5f0f\u7684\u62a5\u544a\uff0c\u5176\u5185\u5bb9\u548c\u5728\u7ebf\u62a5\u544a\u4e00\u81f4\u3002

    "},{"location":"user_manual/test_track/test_case/public_test_case/","title":"\u516c\u5171\u7528\u4f8b\u5e93","text":"

    \u516c\u5171\u7528\u4f8b\u5e93\u4e3a\u540c\u4e00\u5de5\u4f5c\u7a7a\u95f4\u4e0b\u7684\u4e0d\u540c\u9879\u76ee\u5747\u53ef\u5171\u4eab\u4f7f\u7528\u7684\u3010\u516c\u5171\u7528\u4f8b\u3011\uff0c\u4e0d\u540c\u9879\u76ee\u53ef\u3010\u6dfb\u52a0\u3011\u7528\u4f8b\u81f3\u516c\u5171\u7528\u4f8b\u5e93\uff0c\u548c\u3010\u590d\u5236\u3011\u516c\u5171\u7528\u4f8b\u5e93\u4e2d\u7684\u7528\u4f8b\u3002

    \u516c\u5171\u7528\u4f8b\u5e93\u5217\u8868\u5b57\u6bb5\u4e0d\u5c55\u793a\u81ea\u5b9a\u4e49\u7684\u6a21\u677f\u5b57\u6bb5

    "},{"location":"user_manual/test_track/test_case/public_test_case/#1","title":"1 \u542f\u52a8\u516c\u5171\u7528\u4f8b\u5e93","text":"

    \u9879\u76ee\u7ba1\u7406\u5458\u53ef\u5230\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u5e94\u7528\u7ba1\u7406\u3011\u9875\u9762\u4e0b\uff0c\u5f00\u542f\u3010\u542f\u52a8\u516c\u5171\u7528\u4f8b\u5e93\u3011\u8bbe\u7f6e\u3002

    "},{"location":"user_manual/test_track/test_case/public_test_case/#2","title":"2 \u6dfb\u52a0\u7528\u4f8b\u81f3\u516c\u5171\u7528\u4f8b\u5e93","text":"

    \u70b9\u51fb\u7528\u4f8b\u3010ID\u3011\u6216\u8005\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u5230\u516c\u5171\u7528\u4f8b\u5e93\u3011\u3002

    "},{"location":"user_manual/test_track/test_case/public_test_case/#3","title":"3 \u4ece\u516c\u5171\u7528\u4f8b\u5e93\u4e2d\u590d\u5236\u7528\u4f8b","text":"

    \u590d\u5236\u516c\u5171\u7528\u4f8b\u5e93\u4e2d\u7684\u7528\u4f8b\u5230\u81ea\u5df1\u7684\u9879\u76ee\u6a21\u5757\u4e2d\u3002

    "},{"location":"user_manual/test_track/test_case/switch_project/","title":"Switch project","text":"

    \u529f\u80fd\u7528\u4f8b\uff0c\u4e3b\u8981\u7528\u4e8e\u5bf9\u529f\u80fd\u7528\u4f8b\u8fdb\u884c\u7edf\u4e00\u7ba1\u7406\uff0c\u652f\u6301\u7528\u4f8b\u7684\u5feb\u6377\u521b\u5efa\u53ca\u5bfc\u5165\u5bfc\u51fa\u64cd\u4f5c\u3002 \u8fdb\u5165\u3010\u529f\u80fd\u7528\u4f8b\u3011\u754c\u9762\u3002\u5de6\u4e0a\u65b9\u663e\u793a\u5f53\u524d\u9879\u76ee\uff0c\u9879\u76ee\u4e0b\u65b9\u663e\u793a\u6b64\u9879\u76ee\u7684\u5168\u90e8\u6d4b\u8bd5\u7528\u4f8b\u6a21\u5757\u3002\u6240\u5c5e\u67d0\u4e00\u9879\u76ee\u7684\u6d4b\u8bd5\u7528\u4f8b\u4ee5\u6a21\u5757\u4e3a\u5355\u4f4d\u8fdb\u884c\u7edf\u4e00\u7ba1\u7406\uff0c\u9875\u9762\u53f3\u4fa7\u663e\u793a\u9009\u5b9a\u6a21\u5757\u4e0b\u7684\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\uff0c\u652f\u6301\u5bf9\u6d4b\u8bd5\u7528\u4f8b\u8fdb\u884c\u65b0\u5efa\u3001\u67e5\u8be2\u3001\u7f16\u8f91\u3001\u590d\u5236\u3001\u5220\u9664\u7b49\u64cd\u4f5c\u3002

    "},{"location":"user_manual/test_track/test_case/switch_project/#1","title":"1 \u5207\u6362\u5de5\u4f5c\u7a7a\u95f4","text":"

    \u5728\u53f3\u4e0a\u89d2\u7684\u5de5\u4f5c\u7a7a\u95f4\u5904\u5207\u6362\u4e0b\u62c9\u83dc\u5355\u4e2d\u8fdb\u884c\u5de5\u4f5c\u7a7a\u95f4\u5207\u6362\uff0c\u5c55\u793a\u6240\u5c5e\u8be5\u5de5\u4f5c\u7a7a\u95f4\u53ca\u5bf9\u5e94\u9879\u76ee\u4e0b\u7684\u7528\u4f8b\u5217\u8868\u3002

    "},{"location":"user_manual/test_track/test_case/switch_project/#2","title":"2 \u5207\u6362\u9879\u76ee","text":"

    \u5728\u6a21\u5757\u6811\u4e0a\u65b9\u7684\u9879\u76ee\u5207\u6362\u4e0b\u62c9\u83dc\u5355\u4e2d\u8fdb\u884c\u9879\u76ee\u5207\u6362\uff0c\u5c55\u793a\u6240\u5c5e\u8be5\u9879\u76ee\u4e0b\u7684\u7528\u4f8b\u5217\u8868\u3002

    \u8bf4\u660e

    \u4e0d\u540c\u9879\u76ee\u95f4\u6a21\u5757\u6811\u76f8\u4e92\u72ec\u7acb\uff0c\u5f53\u5207\u6362\u9879\u76ee\u540e\u9700\u8981\u91cd\u65b0\u521b\u5efa\u6a21\u5757\u6811\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/","title":"\u7528\u4f8b\u7ba1\u7406","text":""},{"location":"user_manual/test_track/test_case/test_case/#1-x-pack","title":"1 \u7528\u4f8b\u7248\u672c\u7ba1\u7406 (X-Pack)","text":"

    \u5e73\u53f0\u53ef\u4e3a\u4e0d\u540c\u7248\u672c\u7cfb\u7edf\u6d4b\u8bd5\u7684\u7528\u4f8b\u8fdb\u884c\u7ba1\u7406\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#2","title":"2 \u5207\u6362\u7528\u4f8b\u89c6\u56fe","text":"

    \u76ee\u524d\uff0c\u5e73\u53f0\u63d0\u4f9b\u4e24\u79cd\u7528\u4f8b\u5448\u73b0\u65b9\u5f0f\uff0c\u8fdb\u5165\u3010\u6d4b\u8bd5\u7528\u4f8b\u3011\u9875\u9762\u540e\uff0c\u9ed8\u8ba4\u6253\u5f00\u3010\u5217\u8868\u3011\u89c6\u56fe\uff0c\u70b9\u51fb\u3010\u8111\u56fe\u3011\u6807\u7b7e\u5207\u6362\u81f3\u8111\u56fe\u89c6\u56fe\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#3","title":"3 \u57fa\u4e8e\u5217\u8868\u89c6\u56fe\u65b0\u5efa\u7528\u4f8b","text":"

    \u9009\u62e9\u65b0\u5efa\u7528\u4f8b\u6240\u5c5e\u6a21\u5757\uff0c\u70b9\u51fb\u5217\u8868\u5de6\u4e0a\u65b9\u3010\u521b\u5efa\u7528\u4f8b\u3011\uff0c\u5f39\u51fa\u4e00\u4e2a\u65b0\u7684\u7a97\u53e3\u5c55\u793a\u7528\u4f8b\u8be6\u60c5\u9875\u9762\u8fdb\u884c\u7f16\u8f91\u3002

    \u5728\u65b0\u5efa\u7528\u4f8b\u8be6\u60c5\u9875\u9762\u4e2d\uff0c\u8fdb\u4e00\u6b65\u586b\u5199\u7528\u4f8b\u540d\u79f0\u3001\u524d\u7f6e\u6761\u4ef6\u3001\u6b65\u9aa4\u4fe1\u606f\u3001\u6dfb\u52a0\u5907\u6ce8\u3001\u4e0a\u4f20\u9644\u4ef6\u7b49\uff0c\u8fd8\u53ef\u4ee5\u4e3a\u7528\u4f8b\u8bbe\u7f6e\u6a21\u5757\u3001\u7528\u4f8b\u7b49\u7ea7\u3001\u7248\u672c\u3001\u5173\u8054\u9700\u6c42\u3001\u6807\u7b7e\u7b49\uff0c\u7f16\u8f91\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5c06\u6b64\u6761\u7528\u4f8b\u4fdd\u5b58\u81f3\u5217\u8868\u3002

    \u65b0\u5efa\u7528\u4f8b\u5c06\u5728\u7528\u4f8b\u5217\u8868\u4e2d\u5448\u73b0\uff0c\u70b9\u51fb\u7528\u4f8b\u3010ID\u3011\u6216\u70b9\u51fb\u6b64\u6761\u7528\u4f8b\u540e\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\u53ef\u91cd\u65b0\u8fdb\u5165\u7528\u4f8b\u8be6\u60c5\u9875\u9762\u8fdb\u884c\u7f16\u8f91\uff0c\u53ef\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u3001\u5173\u8054\u7f3a\u9677\u3001\u8bbe\u7f6e\u4f9d\u8d56\u5173\u7cfb\u3001\u6dfb\u52a0\u8bc4\u8bba\u3001\u67e5\u770b\u53d8\u66f4\u3001\u521b\u5efa\u65b0\u7248\u672c\u3001\u7248\u672c\u5bf9\u6bd4\u3001\u8bbe\u7f6e\u5173\u6ce8\u3001\u6dfb\u52a0\u5230\u516c\u5171\u7528\u4f8b\u5e93\u3001\u590d\u5236\u7b49\u64cd\u4f5c\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#31","title":"3.1 \u4e3a\u7528\u4f8b\u5173\u8054\u6d4b\u8bd5","text":"

    \u65b0\u5efa\u6d4b\u8bd5\u7528\u4f8b\u53ef\u4ee5\u548c\u5e73\u53f0\u5df2\u6709\u7684\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3001\u63a5\u53e3\u573a\u666f\u7528\u4f8b\u3001\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u8fdb\u884c\u5173\u8054\u3002\u8fdb\u5165\u6d4b\u8bd5\u7528\u4f8b\u8be6\u60c5\u9875\u9762\uff0c\u70b9\u51fb\u3010\u5173\u8054\u6d4b\u8bd5\u3011\u6807\u7b7e\uff0c\u9009\u62e9\u5e0c\u671b\u4e0e\u672c\u6761\u7528\u4f8b\u8fdb\u884c\u5173\u8054\u7684\u7528\u4f8b\u5173\u8054\u6d4b\u8bd5\u6d4b\u8bd5\u7c7b\u578b\uff0c\u8fdb\u5165\u8be5\u7c7b\u578b\u7684\u7528\u4f8b\u5217\u8868\u8fdb\u884c\u5173\u8054\u3002

    \u4ee5\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u4e3a\u4f8b\u3002\u8fdb\u5165\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\uff0c\u9009\u4e2d\u76f8\u5173\u8054\u7684\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5b8c\u6210\u5173\u8054\u3002

    \u5173\u8054\u540e\u7684\u6d4b\u8bd5\u7528\u4f8b\u5c06\u5728\u5173\u8054\u5217\u8868\u4e2d\u663e\u793a\uff0c\u70b9\u51fb\u3010\u53d6\u6d88\u5173\u8054\u3011\u53ef\u53d6\u6d88\u5173\u8054\u7684\u6d4b\u8bd5\u7528\u4f8b\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#32","title":"3.2 \u4e3a\u7528\u4f8b\u5173\u8054\u9700\u6c42","text":"

    \u65b0\u5efa\u6d4b\u8bd5\u7528\u4f8b\u53ef\u4ee5\u548c\u9700\u6c42\u5173\u8054\u3002\u5982\u679c\u5173\u8054\u7b2c\u4e09\u65b9\u7f3a\u9677\u5e73\u53f0\u7684\u8bdd\uff0c\u5728\u3010\u7528\u4f8b\u8be6\u60c5\u3011\u53f3\u4fa7\uff0c\u70b9\u51fb\u3010\u5173\u8054\u9700\u6c42\u3011\u9009\u9879\uff0c\u4e0b\u62c9\u9009\u6846\u4e2d\u9009\u62e9\u5e0c\u671b\u4e0e\u672c\u6761\u7528\u4f8b\u8fdb\u884c\u5173\u8054\u7684\u7b2c\u4e09\u65b9\u7f3a\u9677\u5e73\u53f0\u7684\u9700\u6c42\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#33","title":"3.3 \u4e3a\u7528\u4f8b\u5173\u8054\u7f3a\u9677","text":"

    \u65b0\u5efa\u6d4b\u8bd5\u7528\u4f8b\u53ef\u4ee5\u548c\u7f3a\u9677\u5173\u8054\u3002\u70b9\u51fb\u3010\u5173\u8054\u7f3a\u9677\u3011\u6807\u7b7e\uff0c\u5173\u8054\u5df2\u6709\u7f3a\u9677\u6216\u521b\u5efa\u65b0\u7684\u7f3a\u9677\u5e76\u8fdb\u884c\u5173\u8054\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#34","title":"3.4 \u4e3a\u7528\u4f8b\u521b\u5efa\u4f9d\u8d56\u5173\u7cfb","text":"
    • \u4f9d\u8d56\u5173\u7cfb\u8bbe\u7f6e \u7cfb\u7edf\u652f\u6301\u7528\u6237\uff0c\u4ece\u6d4b\u8bd5\u7684\u89d2\u5ea6\u6765\u8bbe\u7f6e\u8be5\u6d4b\u8bd5\u7528\u4f8b\u7684\u524d\u540e\u7f6e\u4f9d\u8d56\u6d4b\u8bd5\u7528\u4f8b\u3002 \u70b9\u51fb\u6d4b\u8bd5\u7528\u4f8b\u7684\u3010\u4f9d\u8d56\u5173\u7cfb\u3011\u9875\u7b7e\u3002
    • \u4f9d\u8d56\u5173\u7cfb\u56fe \u70b9\u51fb\u3010\u4f9d\u8d56\u5173\u7cfb\u56fe\u3011\uff0c\u53ef\u770b\u5230\u8be5\u7528\u4f8b\u7684\u524d\u7f6e/\u540e\u7f6e\u4e4b\u95f4\u7684\u76f8\u4e92\u8054\u7cfb\u3002
    "},{"location":"user_manual/test_track/test_case/test_case/#4","title":"4 \u57fa\u4e8e\u8111\u56fe\u89c6\u56fe\u65b0\u5efa\u7528\u4f8b","text":"

    \u5728\u7528\u4f8b\u5217\u8868\u9875\u9762\u70b9\u51fb\u3010\u8111\u56fe\u3011\u5207\u6362\u4ee5\u8111\u56fe\u5f62\u5f0f\u5c55\u73b0\u7528\u4f8b\u3002\u8111\u56fe\u7236\u4e3b\u9898\u4e3a\u6a21\u5757\u540d\u79f0\uff0c\u5b50\u4e3b\u9898\u4e3a\u6a21\u5757\u4e0b\u6d4b\u8bd5\u7528\u4f8b\uff0c\u5b59\u4e3b\u9898\u4e3a\u6d4b\u8bd5\u7528\u4f8b\u6b65\u9aa4\u8be6\u60c5\u6216\u5907\u6ce8\u4fe1\u606f\u3002\u5404\u7ea7\u4e3b\u9898\u4f7f\u7528\u6807\u7b7e\u65b9\u5f0f\u533a\u5206\u6587\u672c\u5185\u5bb9\uff0c\u652f\u6301\u4f7f\u7528\u6807\u7b7e\u65b9\u5f0f\u6807\u8bb0\u7528\u4f8b\u4f18\u5148\u7ea7\u3002

    \u53f3\u952e\u4e3b\u9898\u533a\u57df\u89e6\u53d1\u529f\u80fd\u952e\u3002

    \u64cd\u4f5c\u8bf4\u660e

    • \u3010\u6536\u8d77\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u53ef\u4ee5\u6536\u8d77\u8be5\u4e3b\u9898\u4e0b\u5c5e\u5b50\u4e3b\u9898\u3002
    • \u3010\u4e0a\u7ea7\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u521b\u5efa\u8be5\u4e3b\u9898\u7684\u4e0a\u7ea7\u4e3b\u9898\u3002
    • \u3010\u4e0b\u7ea7\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u521b\u5efa\u8be5\u4e3b\u9898\u7684\u4e0b\u7ea7\u4e3b\u9898\u3002
    • \u3010\u540c\u7ea7\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u521b\u5efa\u8be5\u4e3b\u9898\u7684\u540c\u7ea7\u4e3b\u9898\u3002
    • \u3010\u540e\u79fb\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u5c06\u8be5\u4e3b\u9898\u79fb\u5165\u5176\u4e0b\u7ea7\u4e3b\u9898\u3002
    • \u3010\u524d\u79fb\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u5c06\u8be5\u4e3b\u9898\u79fb\u5165\u5176\u4e0a\u7ea7\u4e3b\u9898\u3002
    • \u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u5220\u9664\u8be5\u4e3b\u9898\u3002
    • \u3010\u5bfc\u51fa\u3011\u64cd\u4f5c\uff0c\u652f\u6301\u5bfc\u51fa\u5168\u90e8\u6a21\u5757\u53ca\u89c6\u56fe\u5185\u5168\u90e8\u5df2\u5c55\u5f00\u7684\u7528\u4f8b\u3002\u652f\u6301\u5bfc\u51fa\u4e3a json\u3001png\u3001svg\u3001txt\u3001md\u3001mm \u7b49\u683c\u5f0f\u7684\u6587\u4ef6\u3002
    • \u3010\u4f18\u5148\u7ea7/\u6807\u7b7e\u3011\u64cd\u4f5c\uff0c\u652f\u6301\u4e3a\u8be5\u4e3b\u9898\u6dfb\u52a0\u4f18\u5148\u7ea7\u53ca\u6587\u672c\u6807\u7b7e\u3002
    "},{"location":"user_manual/test_track/test_case/test_case/#5","title":"5 \u6279\u91cf\u64cd\u4f5c","text":"

    \u5177\u4f53\u64cd\u4f5c\u8bf7\u53c2\u8003 \u901a\u7528\u529f\u80fd->\u6279\u91cf\u64cd\u4f5c\u3002 \u5728\u5217\u8868\u5bf9\u7528\u4f8b\u8fdb\u884c\u52fe\u9009\uff0c\u70b9\u51fb\u3010\u2026\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u5bf9\u591a\u6761\u7528\u4f8b\u8fdb\u884c\u6279\u91cf\u64cd\u4f5c\uff0c\u5305\u62ec\u6279\u91cf\u7f16\u8f91\u3001\u6279\u91cf\u79fb\u52a8\u3001\u6279\u91cf\u590d\u5236\u3001\u6279\u91cf\u5220\u9664\u3001\u6279\u91cf\u5173\u8054\u9700\u6c42\u3001\u751f\u6210\u4f9d\u8d56\u5173\u7cfb\u3001\u6279\u91cf\u6dfb\u52a0\u5230\u516c\u5171\u7528\u4f8b\u5e93\u7b49\u64cd\u4f5c\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#6","title":"6 \u5bfc\u5165\u7528\u4f8b","text":"

    \u70b9\u51fb\u5de6\u4e0a\u65b9\u3010\u5bfc\u5165\u3011\u6309\u94ae\uff0c\u5728\u4e0b\u62c9\u83dc\u5355\u4e2d\u9009\u62e9\u3010\u4eceExcel\u8868\u683c\u5bfc\u5165\u6d4b\u8bd5\u7528\u4f8b\u3011\u6216\u3010\u4ece\u601d\u7ef4\u5bfc\u56fe\u5bfc\u5165\u6d4b\u8bd5\u7528\u4f8b\u3011\u3002

    \u53ef\u5148\u4e0b\u8f7d\u6a21\u677f\uff0c\u4e0b\u8f7d\u7684\u6a21\u677f\u4e2d\u4f1a\u51fa\u73b0\u81ea\u5b9a\u4e49\u7684\u5b57\u6bb5\uff0c\u586b\u5199\u5185\u5bb9\u540e\uff0c\u8fdb\u884c\u4e0a\u4f20\u3002\u81ea\u5b9a\u4e49\u5b57\u6bb5\u4e5f\u6b63\u5e38\u5c55\u793a\u5230\u9875\u9762\u4e2d\u3002

    \u64cd\u4f5c\u8bf4\u660e

    • \u3010\u5bfc\u5165\u65b0\u5efa\u3011\uff0c\u5bfc\u5165\u7684\u7528\u4f8b\u81ea\u52a8\u4fdd\u5b58\u4e3a\u65b0\u7528\u4f8b\u3002
    • \u3010\u5bfc\u5165\u66f4\u65b0\u3011\uff0c\u5bfc\u5165\u7684\u7528\u4f8b\u81ea\u52a8\u8986\u76d6\u5df2\u6709\u7528\u4f8b\u3002
    "},{"location":"user_manual/test_track/test_case/test_case/#7","title":"7 \u5bfc\u51fa\u7528\u4f8b","text":"

    \u9009\u62e9\u9700\u8981\u5bfc\u51fa\u7684\u7528\u4f8b,\u70b9\u51fb\u4e0b\u65b9\u6309\u94ae\u3010...\u3011\u53ef\u4ee5\u5bfc\u51fa\u6d4b\u8bd5\u7528\u4f8b\u3002\u652f\u6301\u5bfc\u51faExcel\u8868\u683c\u3001\u5bfc\u51fa\u601d\u7ef4\u5bfc\u56fe\u4e24\u79cd\u6a21\u5f0f\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#8","title":"8 \u56de\u6536\u7ad9","text":"

    \u6240\u6709\u88ab\u5220\u9664\u7684\u6d4b\u8bd5\u7528\u4f8b\u90fd\u4f1a\u653e\u5728\u56de\u6536\u7ad9\u91cc\u4fdd\u5b58\u3002

    \u5728\u56de\u6536\u7ad9\u91cc\u53ef\u8fdb\u884c\u3010\u6062\u590d\u3011\u548c\u3010\u5f7b\u5e95\u5220\u9664\u3011\u64cd\u4f5c\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#9","title":"9 \u67e5\u770b\u53d8\u66f4\u8bb0\u5f55","text":"

    \u5728\u6d4b\u8bd5\u7528\u4f8b\u8be6\u60c5\u9875\u9762\u6700\u53f3\u4fa7\u83dc\u5355\u3010\u53d8\u66f4\u8bb0\u5f55\u3011\u4e0b\uff0c\u53ef\u4ee5\u67e5\u770b\u6b64\u7528\u4f8b\u6240\u6709\u7684\u53d8\u66f4\u8be6\u60c5\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#10","title":"10 \u7248\u672c\u7ba1\u7406","text":"

    \u70b9\u51fb\u7528\u4f8b\u8be6\u60c5\u5de6\u4e0a\u65b9\uff0c\u3010XX\u7248\u672c\u3011\u53ef\u8fdb\u884c\u7528\u4f8b\u7248\u672c\u5207\u6362\u3001\u4e0d\u540c\u7248\u672c\u7528\u4f8b\u521b\u5efa\u3001\u5220\u9664\u7248\u672c\u7528\u4f8b\u3001\u7248\u672c\u5bf9\u6bd4\u7b49\u529f\u80fd\u3002

    "},{"location":"user_manual/test_track/test_case/test_case_module/","title":"\u6a21\u5757\u6811\u7ba1\u7406","text":"

    \u529f\u80fd\u7528\u4f8b\u63d0\u4f9b\u6a21\u5757\u529f\u80fd\uff0c\u53ef\u6839\u636e\u4e0d\u540c\u7684\u529f\u80fd\u8bbe\u7f6e\u4e0d\u540c\u7684\u6a21\u5757\uff0c\u5e76\u53ef\u6839\u636e\u5404\u529f\u80fd\u4f9d\u8d56\u5173\u7cfb\u8bbe\u7f6e\u5b50\u6a21\u5757\u3002\u70b9\u51fb\u9875\u9762\u5de6\u4fa7\u3010\u5168\u90e8\u7528\u4f8b\u3011\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u5b50\u6a21\u5757\u3011\uff0c\u586b\u5199\u6a21\u5757\u540d\u79f0\uff0c\u5373\u53ef\u5b8c\u6210\u7528\u4f8b\u6a21\u5757\u6dfb\u52a0\u3002

    "},{"location":"user_manual/test_track/test_case/test_case_module/#1","title":"1 \u521b\u5efa\u5b50\u6a21\u5757","text":"

    \u9009\u4e2d\u6a21\u5757\u6811\u5217\u8868\u3010\u5168\u90e8\u7528\u4f8b\u3011\uff0c\u70b9\u51fb\u3010+\u3011\u53f7\u6309\u94ae\u5728\u6a21\u5757\u603b\u76ee\u5f55\u4e0b\u521b\u5efa\u5b50\u6a21\u5757\u3002\u9009\u4e2d\u4efb\u610f\u4e0a\u7ea7\u6a21\u5757\u5373\u53ef\u5728\u8be5\u6a21\u5757\u4e0b\u521b\u5efa\u6b21\u7ea7\u6a21\u5757\uff0c\u6a21\u5757\u6811\u652f\u6301\u6700\u591a 8 \u5c42\u7684\u6811\u72b6\u7ed3\u6784\u3002

    "},{"location":"user_manual/test_track/test_case/test_case_module/#2","title":"2 \u6a21\u5757\u64cd\u4f5c","text":"

    \u64cd\u4f5c\u8bf4\u660e

    • \u3010\u91cd\u547d\u540d\u3011\u6309\u94ae\uff0c\u9f20\u6807\u60ac\u505c\u5728\u8981\u64cd\u4f5c\u7684\u6a21\u5757\u65f6\u51fa\u73b0\uff0c\u70b9\u51fb\u53ef\u4ee5\u91cd\u547d\u540d\u8be5\u6a21\u5757\u3002
    • \u3010\u6dfb\u52a0\u5b50\u6a21\u5757\u3011\u6309\u94ae\uff0c\u9f20\u6807\u60ac\u505c\u5728\u8981\u64cd\u4f5c\u7684\u6a21\u5757\u65f6\u51fa\u73b0\uff0c\u70b9\u51fb\u53ef\u4ee5\u5728\u8be5\u6a21\u5757\u4e0b\u6dfb\u52a0\u5b50\u6a21\u5757\u3002
    • \u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u9f20\u6807\u60ac\u505c\u5728\u8981\u64cd\u4f5c\u7684\u6a21\u5757\u65f6\u51fa\u73b0\uff0c\u70b9\u51fb\u5c06\u5220\u9664\u8be5\u6a21\u5757\u548c\u5176\u6240\u6709\u5b50\u6a21\u5757\u3002\u5220\u9664\u67d0\u4e2a\u6a21\u5757\u4e0d\u4ec5\u4f1a\u5220\u9664\u8be5\u6a21\u5757\u53ca\u5176\u6240\u6709\u5b50\u6a21\u5757\uff0c\u88ab\u5220\u9664\u6a21\u5757\u4e2d\u7684\u63a5\u53e3\u53ca\u63a5\u53e3\u7528\u4f8b\u4e5f\u5c06\u88ab\u79fb\u5165\u56de\u6536\u7ad9\u4e2d\uff0c\u8bf7\u8c28\u614e\u4f7f\u7528\u8be5\u529f\u80fd\u3002
    • \u3010\u5c55\u5f00/\u6536\u8d77\u3011\u64cd\u4f5c\uff0c\u5f53\u6a21\u5757\u4e0b\u5b58\u5728\u5b50\u6a21\u5757\u65f6\u51fa\u73b0\uff0c\u70b9\u51fb\u3010\u5c55\u5f00/\u6536\u8d77\u3011\u8be5\u6a21\u5757\u4e0b\u7684\u6240\u6709\u5b50\u6a21\u5757\u3002

    \u6a21\u5757\u6811\u8fd8\u652f\u6301\u9f20\u6807\u62d6\u62fd\u64cd\u4f5c\uff0c\u7528\u6237\u53ef\u4ee5\u6839\u636e\u9700\u6c42\u8c03\u6574\u6a21\u5757\u987a\u5e8f\u53ca\u5176\u5c42\u7ea7\u5173\u7cfb\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_batch/","title":"\u6279\u91cf\u64cd\u4f5c","text":""},{"location":"user_manual/test_track/test_plan/test_plan_batch/#1","title":"1 \u6279\u91cf\u5f00/\u5173\u5b9a\u65f6\u4efb\u52a1","text":"

    \u52fe\u9009\u591a\u4e2a\u6d4b\u8bd5\u8ba1\u5212\u540e\uff0c\u70b9\u51fb\u6279\u91cf\u5f00/\u5173\u5b9a\u65f6\u4efb\u52a1\uff0c\u53ef\u5bf9\u8bbe\u7f6e\u597d\u7684\u5b9a\u65f6\u4efb\u52a1\u8fdb\u884c\u5f00\u542f/\u5173\u95ed\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_batch/#2","title":"2 \u6279\u91cf\u6267\u884c","text":"

    \u52fe\u9009\u591a\u4e2a\u6d4b\u8bd5\u8ba1\u5212\u540e\uff0c\u70b9\u51fb\u6279\u91cf\u6267\u884c\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_batch/#3","title":"3 \u6279\u91cf\u5220\u9664","text":"

    \u52fe\u9009\u591a\u4e2a\u6d4b\u8bd5\u8ba1\u5212\u540e\uff0c\u70b9\u51fb\u6279\u91cf\u5220\u9664\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_list/","title":"\u8ba1\u5212\u5217\u8868","text":"

    \u6d4b\u8bd5\u8ba1\u5212\u5c5e\u4e8e\u67d0\u4e2a\u9879\u76ee\uff0c\u5e76\u53ef\u5173\u8054\u8be5\u9879\u76ee\u4e0b\u7684\u6d4b\u8bd5\u7528\u4f8b\u3002\u6d4b\u8bd5\u8ba1\u5212\u7528\u4e8e\u5c06\u6d4b\u8bd5\u5404\u73af\u8282\u4e0d\u540c\u7c7b\u578b\u7684\u6d4b\u8bd5\u4efb\u52a1\u6dfb\u52a0\u5230\u4e00\u4e2a\u6d4b\u8bd5\u8ba1\u5212\u4e2d\uff0c\u5305\u62ec\u529f\u80fd\u6d4b\u8bd5\u3001\u63a5\u53e3\u6d4b\u8bd5\u548c\u6027\u80fd\u6d4b\u8bd5\u7b49\uff0c\u652f\u6301\u5b9e\u65f6\u5c55\u793a\u5404\u6d4b\u8bd5\u73af\u8282\u7684\u8fdb\u5ea6\u53ca\u6d4b\u8bd5\u60c5\u51b5\uff0c\u5e76\u5b9e\u65f6\u751f\u6210\u6d4b\u8bd5\u62a5\u544a\u3002 \u6d4b\u8bd5\u8ba1\u5212\u53ef\u5c06\u6d4b\u8bd5\u5404\u73af\u8282\u52a0\u5165\u5230\u4e00\u4e2a\u6d4b\u8bd5\u8ba1\u5212\u4e2d\uff0c\u5305\u62ec\u529f\u80fd\u6d4b\u8bd5\u3001\u63a5\u53e3\u6d4b\u8bd5\u548c\u6027\u80fd\u6d4b\u8bd5\u7b49\uff0c\u80fd\u5b9e\u65f6\u5c55\u793a\u5404\u6d4b\u8bd5\u73af\u8282\u7684\u8fdb\u5ea6\u53ca\u6d4b\u8bd5\u60c5\u51b5\uff0c\u5e76\u5b9e\u65f6\u751f\u6210\u6d4b\u8bd5\u62a5\u544a\u3002 \u70b9\u51fb\u3010\u6d4b\u8bd5\u8ddf\u8e2a\u3011\uff0c\u70b9\u51fb\u3010\u9879\u76ee\u3011\uff0c\u70b9\u51fb\u6d4b\u8bd5\u8ba1\u5212\uff0c\u53ef\u67e5\u770b\u5f53\u524d\u9879\u76ee\u4e2d\u7684\u6d4b\u8bd5\u8ba1\u5212\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_list/#1","title":"1 \u8ba1\u5212\u5217\u8868\u64cd\u4f5c","text":"

    \u5728\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u4fe1\u606f\u9875\uff0c\u9f20\u6807\u70b9\u51fb\u67d0\u4e2a\u8ba1\u5212\uff0c\u8fdb\u5165\u8ba1\u5212\u8be6\u60c5\u9875\u9762\u3002

    \u70b9\u51fb\u3010\u6267\u884c\u3011\u6309\u94ae\uff0c\u9009\u62e9\u548c\u52fe\u9009\u8fd0\u884c\u6d4b\u8bd5\u8ba1\u5212\u7684\u76f8\u5173\u914d\u7f6e\u540e\uff0c\u70b9\u51fb\u3010\u6267\u884c\u3011\u5373\u53ef\u3002\u9ed8\u8ba4\u73af\u5883\u4e3a\u7528\u4f8b\u9996\u6b21\u5173\u8054\u8fdb\u6d4b\u8bd5\u8ba1\u5212\u6240\u9009\u62e9\u7684\u7528\u4f8b\uff0c\u9009\u62e9\u65b0\u73af\u5883\u540e\u53ef\u9009\u62e9\u6267\u884c\u548c\u4fdd\u5b58\uff0c\u4fdd\u5b58\u540e\u65b0\u9009\u62e9\u7684\u73af\u5883\u4e3a\u9ed8\u8ba4\u73af\u5883\uff0c\u70b9\u51fb\u6267\u884c\u4e0d\u4f1a\u4fee\u6539\u9ed8\u8ba4\u73af\u5883\uff0c\u9ed8\u8ba4\u73af\u5883\u591a\u7528\u4e8e\u5b9a\u65f6\u4efb\u52a1\u3001API\u8c03\u7528\u53ca\u6d41\u6c34\u7ebf\u89e6\u53d1\u6267\u884c\u3002

    \u53ef\u4ee5\u7ba1\u7406\u548c\u7ef4\u62a4\u672c\u6b21\u8ba1\u5212\u6d4b\u8bd5\u7684\u8303\u56f4\uff1a\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3001\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3001\u573a\u666f\u6d4b\u8bd5\u7528\u4f8b\u3001\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u7b49\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_list/#2","title":"2 \u6d4b\u8bd5\u62a5\u544a\u67e5\u770b","text":"

    \u8ba1\u5212\u6267\u884c\u540e\uff0c\u53ef\u4ee5\u70b9\u51fb\u3010\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3011\u3002

    \u62a5\u544a\u8be6\u7ec6\u89e3\u8bfb\u89c1 \u6d4b\u8bd5\u8ddf\u8e2a->\u62a5\u544a\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/","title":"\u7ba1\u7406\u8ba1\u5212","text":""},{"location":"user_manual/test_track/test_plan/test_plan_manage/#1","title":"1 \u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212","text":"

    \u70b9\u51fb\u3010\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\u3011\uff0c\u5373\u53ef\u8fdb\u5165\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\u9875\u9762\uff0c\u9875\u9762\u5185\u5bb9\u5305\u62ec\uff1a

    • \u8ba1\u5212\u540d\u79f0\u3001\u8d1f\u8d23\u4eba\u3001\u6d4b\u8bd5\u9636\u6bb5\u7b49\u7b49\u5fc5\u586b\u4fe1\u606f
    • \u6807\u7b7e\u3001\u8ba1\u5212\u5f00\u59cb/\u7ed3\u675f\u65f6\u95f4\u3001\u5907\u6ce8\u7b49\u7b49\u4fe1\u606f
    • \u81ea\u52a8\u66f4\u65b0\u72b6\u6001\u5f00\u5173 \u7b49\u9009\u62e9\u4fe1\u606f

    \u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5b8c\u6210\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\uff0c\u5e76\u4e14\u9875\u9762\u8df3\u8f6c\u5230\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u4fe1\u606f\u9875\u9762\uff0c\u53ef\u5728\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u4e2d\u67e5\u770b\u5230\u521b\u5efa\u7684\u6d4b\u8bd5\u8ba1\u5212\u3002 \u70b9\u51fb\u3010\u89c4\u5212&\u6267\u884c\u3011\u5b8c\u6210\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\uff0c\u5e76\u4e14\u9875\u9762\u8df3\u8f6c\u5230\u6d4b\u8bd5\u8ba1\u5212\u5185\u5bb9\u7ef4\u62a4\u754c\u9762\uff0c\u53ef\u76f4\u63a5\u6dfb\u52a0\u672c\u6b21\u8ba1\u5212\u7684\u6d4b\u8bd5\u8303\u56f4\u548c\u6d4b\u8bd5\u5185\u5bb9\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#2","title":"2 \u6267\u884c\u6d4b\u8bd5\u8ba1\u5212","text":"

    \u70b9\u51fb\u7528\u4f8b\u5217\u8868\u3010\u6267\u884c\u3011\u8bbe\u7f6e\u8fd0\u884c\u73af\u5883\u3001\u6267\u884c\u6a21\u5f0f\u3001\u8d44\u6e90\u6c60\u3001\u5931\u8d25\u91cd\u8bd5\u3001\u5931\u8d25\u505c\u6b62\u7b49\u529f\u80fd\uff0c\u53ef\u4ee5\u8fdb\u884c\u3010\u4fdd\u5b58\u3011\u3001\u3010\u4fdd\u5b58\u5e76\u6267\u884c\u3011\u3001\u3010\u6267\u884c\u3011\u64cd\u4f5c\u3002

    • \u4fdd\u5b58\uff1a\u53ea\u4fdd\u5b58\u5f53\u524d\u8bbe\u7f6e\u7684\u9ed8\u8ba4\u73af\u5883\u53ca\u8fd0\u884c\u914d\u7f6e\uff0c\u4e0d\u89e6\u53d1\u6267\u884c\u3002
    • \u4fdd\u5b58\u5e76\u6267\u884c\uff1a\u4fdd\u5b58\u5f53\u524d\u8bbe\u7f6e\u7684\u9ed8\u8ba4\u73af\u5883\u53ca\u8fd0\u884c\u914d\u7f6e\u5e76\u89e6\u53d1\u6267\u884c\u3002
    • \u6267\u884c\uff1a\u4e0d\u4fee\u6539\u5f53\u524d\u9ed8\u8ba4\u73af\u5883\u53ca\u8fd0\u884c\u914d\u7f6e\uff0c\u76f4\u63a5\u89e6\u53d1\u6267\u884c\u3002 \u6539\u914d\u7f6e\u64cd\u4f5c\u4f1a\u5f71\u54cd\u3010\u5b9a\u65f6\u4efb\u52a1\u3011\u3001\u3010\u6d41\u6c34\u7ebf\u8c03\u7528\u3011\u3001\u3010API\u8c03\u7528\u3011\uff0c\u8bf7\u614e\u91cd\u4fee\u6539\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#3","title":"3 \u5931\u8d25\u91cd\u8bd5","text":"

    \u6d4b\u8bd5\u8ba1\u5212\u4e2d\u7684\u7528\u4f8b\u6267\u884c\u5931\u8d25\u540e\uff0c\u652f\u6301\u6839\u636e\u8bbe\u5b9a\u7684\u91cd\u8bd5\u6b21\u6570\u518d\u6b21\u53d1\u8d77\u6267\u884c\uff0c\u6d4b\u8bd5\u62a5\u544a\u4f1a\u5b8c\u6574\u8bb0\u5f55\u63a5\u53e3\u9996\u6b21\u8fd0\u884c\u4ee5\u53ca\u6700\u540e10\u6b21\u8fd0\u884c\u7684\u54cd\u5e94\u7ed3\u679c\uff0c\u4f9b\u7528\u6237\u8fdb\u884c\u5bf9\u6bd4\u5206\u6790\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#4","title":"4 \u7ef4\u62a4\u6d4b\u8bd5\u8ba1\u5212","text":"

    \u5728\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u4fe1\u606f\u5217\u8868\uff0c\u70b9\u51fb\u67d0\u6761\u8ba1\u5212\uff0c\u53ef\u4ee5\u5bf9\u6d4b\u8bd5\u8ba1\u5212\u8be6\u60c5\u8fdb\u884c\u7ef4\u62a4\u3002

    \u6dfb\u52a0\u672c\u6b21\u8ba1\u5212\u6d4b\u8bd5\u7684\u8303\u56f4\uff1a\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3001\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3001\u573a\u666f\u6d4b\u8bd5\u7528\u4f8b\u3001\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u7b49\u3002

    • \u70b9\u51fb\u3010\u62a5\u544a\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u67e5\u770b\u6d4b\u8bd5\u8ba1\u5212\u7684\u62a5\u544a\uff1b
    • \u70b9\u51fb\u3010\u6267\u884c\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\uff1b
    • \u70b9\u51fb\u3010...\u3011\u6309\u94ae\uff0c\u5728\u4e0b\u62c9\u64cd\u4f5c\u83dc\u5355\u4e2d\uff0c\u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u5bf9\u6d4b\u8bd5\u8ba1\u5212\u8fdb\u884c\u5220\u9664\uff1b\u70b9\u51fb\u3010\u5b9a\u65f6\u4efb\u52a1\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u4e00\u4e2a\u6307\u5b9a\u7684\u6267\u884c\u65f6\u95f4\uff1b
    • \u70b9\u51fb\u3010\u590d\u5236\u3011\u6309\u94ae\uff0c\u53ef\u514b\u9686\u539f\u8ba1\u5212\u751f\u6210\u65b0\u7684\u8ba1\u5212\uff0c\u540c\u65f6\u53ef\u5bf9\u6b64\u65b0\u8ba1\u5212\u8fdb\u884c\u6b63\u5e38\u7684\u7ef4\u62a4\u548c\u64cd\u4f5c\u3002

    \u70b9\u51fb\u3010\u7f16\u8f91\u3011\uff0c\u4fee\u6539\u6d4b\u8bd5\u8ba1\u5212\u7684\u76f8\u5173\u4fe1\u606f\u548c\u5f53\u524d\u72b6\u6001\u3002

    \u5f53\u524d\u72b6\u6001\u8bf4\u660e\uff1a

    • \u5df2\u5b8c\u6210\uff1a\u8868\u793a\u8ba1\u5212\u4e2d\u6240\u6709\u7684\u6d4b\u8bd5\u7528\u4f8b\u90fd\u901a\u8fc7\u4e86\u3002
    • \u5df2\u7ed3\u675f\uff1a\u8868\u793a\u8ba1\u5212\u4e2d\u6267\u884c\u7ed3\u679c\u6709\u5931\u8d25\u7684\uff0c\u4f46\u662f\u90fd\u6267\u884c\u5b8c\u4e86\u3002

    \u5907\u6ce8\uff1a

    \u6b64\u72b6\u6001\u53ef\u7531\u7cfb\u7edf\u81ea\u52a8\u66f4\u65b0\uff0c\u4e5f\u53ef\u4ee5\u624b\u52a8\u7ef4\u62a4\uff0c\u624b\u52a8\u6539\u72b6\u6001\u53ea\u662f\u6539\u6d4b\u8bd5\u8ba1\u5212\u7684\u72b6\u6001\uff0c\u91cc\u9762\u7684\u7528\u4f8b\u72b6\u6001\u4e0d\u4f1a\u5224\u65ad\uff0c\u4e5f\u4e0d\u4f1a\u4fee\u6539\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#5","title":"5 \u5173\u8054\u6d4b\u8bd5\u7528\u4f8b","text":"

    \u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u652f\u6301\u8bb0\u4f4f\u8de8\u9875\u9009\u62e9\u7684\u8bb0\u5f55\uff0c\u518d\u4e00\u5e76\u5bfc\u5165\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#51","title":"5.1 \u5173\u8054\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b","text":"

    \u8fdb\u5165\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u4e3b\u9875\uff0c\u9ed8\u8ba4\u6253\u5f00\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u6807\u7b7e\u3002\u70b9\u51fb\u3010\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u3011\u652f\u6301\u4e3a\u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u529f\u80fd\u7528\u4f8b\uff0c\u540c\u65f6\u652f\u6301\u7528\u6237\u5feb\u901f\u5207\u6362\u3010\u6211\u7684\u7528\u4f8b\u3011\u6216\u3010\u5168\u90e8\u7528\u4f8b\u3011\u5217\u8868\u3002

    • \u57fa\u4e8e\u5217\u8868\u89c6\u56fe\u8bb0\u5f55\u8ba1\u5212\u6267\u884c\u7ed3\u679c \u529f\u80fd\u6d4b\u8bd5\u7528\u5173\u8054\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u4efb\u610f\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u8fdb\u5165\u7528\u4f8b\u8be6\u60c5\u9875\u9762\u3002\u5728\u6267\u884c\u6b65\u9aa4\u4e2d\uff0c\u586b\u5199\u6bcf\u4e00\u6b65\u7684\u5b9e\u9645\u7ed3\u679c\u53ca\u8be5\u6b65\u7684\u6267\u884c\u7ed3\u679c\uff0c\u57fa\u4e8e\u5404\u6b65\u9aa4\u6267\u884c\u60c5\u51b5\u53ca\u8bc4\u5b9a\u6807\u51c6\uff0c\u70b9\u51fb\u4e0a\u65b9\u7684\u72b6\u6001\u6309\u94ae\u4e3a\u6b64\u6761\u7528\u4f8b\u6807\u8bb0\u6267\u884c\u72b6\u6001\u3002

    • \u57fa\u4e8e\u8111\u56fe\u89c6\u56fe\u8bb0\u5f55\u8ba1\u5212\u6267\u884c\u7ed3\u679c \u4e0e\u7528\u4f8b\u7684\u521b\u5efa\u548c\u8bc4\u5ba1\u7c7b\u4f3c\uff0c\u7528\u4f8b\u6267\u884c\u7ed3\u679c\u540c\u6837\u53ef\u4ee5\u901a\u8fc7\u8111\u56fe\u65b9\u5f0f\u8bb0\u5f55\u3002\u5728\u7528\u4f8b\u5217\u8868\u9875\u9762\u70b9\u51fb\u3010\u8111\u56fe\u3011\u5207\u6362\u5230\u8111\u56fe\u5c55\u793a\u6a21\u5f0f\uff0c\u9009\u4e2d\u5f85\u6267\u884c\u7528\u4f8b\uff0c\u901a\u8fc7\u6dfb\u52a0\u6807\u7b7e\u7684\u65b9\u5f0f\u6765\u6807\u8bb0\u7528\u4f8b\u6267\u884c\u7ed3\u679c\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#52","title":"5.2 \u5173\u8054\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b","text":"

    \u70b9\u51fb\u3010\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3011\uff0c\u70b9\u51fb\u3010\u63a5\u53e3\u7528\u4f8b\u3011\u548c\u3010\u573a\u666f\u7528\u4f8b\u3011\uff0c\u53ef\u8fdb\u5165\u4e0d\u540c\u7c7b\u578b\u63a5\u53e3\u7528\u4f8b\u7684\u5173\u8054\u5217\u8868\u3002

    \u70b9\u51fb\u3010\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u3011\uff0c\u8fdb\u5165\u5173\u8054\u63a5\u53e3\u7528\u4f8b\u9875\u9762\uff0c\u540c\u65f6\u6b64\u4e5f\u652f\u6301\u8de8\u9879\u76ee\u7684\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u548c\u573a\u666f\u7528\u4f8b\u7684\u5f15\u7528\u3002 \u52fe\u9009\u9700\u8981\u5173\u8054\u7684\u6d4b\u8bd5\u7528\u4f8b\u540e\uff0c\u540c\u65f6\u9700\u8981\u9009\u62e9\u8fd0\u884c\u73af\u5883\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5373\u53ef\u5b8c\u6210\u63a5\u53e3\u7528\u4f8b\u7684\u5173\u8054\u64cd\u4f5c\u3002

    \u5173\u8054\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u540e\uff0c\u5728\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u4e2d\u53ef\u70b9\u51fb\u3010\u6267\u884c\u3011\uff0c\u6267\u884c\u63a5\u53e3\u6d4b\u8bd5\uff0c\u6267\u884c\u5b8c\u6210\u540e\u53ef\u70b9\u51fb\u3010\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3011\u67e5\u770b\u6d4b\u8bd5\u7ed3\u679c\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#53-ui-x-pack","title":"5.3 \u5173\u8054 UI \u6d4b\u8bd5\u7528\u4f8b (X-Pack)","text":"

    \u5207\u6362\u81f3\u3010UI\u6d4b\u8bd5\u7528\u4f8b\u3011\u6807\u7b7e\u89c6\u56fe\uff0c\u8fdb\u5165 UI \u6d4b\u8bd5\u7528\u4f8b\u5173\u8054\u9875\u9762\uff0c\u70b9\u51fb\u3010\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u3011\u6309\u94ae\u3002

    \u52fe\u9009\u8981\u5173\u8054\u7684 UI \u6d4b\u8bd5\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5373\u53ef\u3002

    \u53ef\u770b\u5230 UI \u6d4b\u8bd5\u7528\u4f8b\u9875\u9762\uff0c\u5217\u8868\u5c55\u793a\u5df2\u7ecf\u5173\u8054\u7684\u7528\u4f8b

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#54","title":"5.4 \u5173\u8054\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b","text":"

    \u5207\u6362\u81f3\u3010\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3011\u6807\u7b7e\u89c6\u56fe\uff0c\u652f\u6301\u7528\u6237\u4e3a\u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3002\u7528\u6237\u53ef\u4ee5\u5728\u8be5\u9875\u9762\u53d1\u8d77\u5355\u7528\u4f8b\u7684\u5feb\u901f\u6267\u884c\u3001\u67e5\u770b\u5355\u7528\u4f8b\u6267\u884c\u7ed3\u679c\uff0c\u540c\u65f6\u652f\u6301\u6279\u91cf\u53d6\u6d88\u5173\u8054\u3001\u6279\u91cf\u6267\u884c\u7b49\u64cd\u4f5c\u3002\u76ee\u524d\uff0c\u5e73\u53f0\u652f\u6301\u4ee5\u5e76\u884c\u6216\u4e32\u884c\u65b9\u5f0f\u6279\u91cf\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#55","title":"5.5 \u62a5\u544a\u7edf\u8ba1","text":"

    \u5207\u6362\u81f3\u3010\u62a5\u544a\u7edf\u8ba1\u3011\u6807\u7b7e\u89c6\u56fe\uff0c\u53ef\u770b\u5230\u8be5\u6d4b\u8bd5\u8ba1\u5212\u7684\u5177\u4f53\u62a5\u544a\u5185\u5bb9\uff0c\u4e5f\u53ef\u4ee5\u81ea\u5b9a\u4e49\u7f16\u5199\u6d4b\u8bd5\u62a5\u544a\u603b\u7ed3\u5185\u5bb9\u3002

    \u70b9\u51fb\u3010\u5206\u4eab\u3011\u6309\u94ae\uff0c\u53ef\u590d\u5236\u8be5\u6d4b\u8bd5\u62a5\u544a\u94fe\u63a5\u8fdb\u884c\u5206\u4eab\u3002

    \u70b9\u51fb\u3010\u914d\u7f6e\u3011\u6309\u94ae\uff0c\u53ef\u81ea\u5b9a\u4e49\u914d\u7f6e\u62a5\u544a\u5185\u5bb9\u3002

    \u53ef\u4fdd\u5b58\u5f53\u524d\u6d4b\u8bd5\u62a5\u544a\uff0c\u4e5f\u53ef\u5bfc\u51fa\u5f53\u524d\u6d4b\u8bd5\u62a5\u544a\uff0c\u5bfc\u51fa\u7684\u683c\u5f0f\u4e3a HTML \u683c\u5f0f\u3002

    \u53ef\u5207\u6362\u4e0d\u540c\u6d4b\u8bd5\u8ba1\u5212\u67e5\u770b\u62a5\u544a\u7edf\u8ba1\uff0c\u70b9\u51fb\u5de6\u4fa7\u76ee\u5f55\uff0c\u53ef\u67e5\u770b\u62a5\u544a\u7edf\u8ba1\u76ee\u5f55\u3002

    "},{"location":"user_manual/ui_test/info/","title":"Info","text":"
    • \u4fee\u6539 /opt/metersphere/.env \u6587\u4ef6\u4e2d MS_SELENIARM_ENABLED \u503c\uff0cMS_SELENIARM_ENABLED=true\uff0c \u4fee\u6539\u914d\u7f6e\u540e\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\u6267\u884c msctl reload\u3002
    • docker ps \u68c0\u67e5 local-selenium-grid \u5bb9\u5668\u662f\u5426\u6210\u529f\u542f\u52a8\u3002
    • \u5728 MeterSphere \u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e\u4e2d\u4fee\u6539 selenium-docker \u5730\u5740\u4e3ahttp://local-selenium-grid:4444\u3002
    • UI \u6d4b\u8bd5\u7528\u4f8b\uff0c\u9ed8\u8ba4 \"\u6027\u80fd\u6a21\u5f0f\" \u6ca1\u6709\u622a\u56fe\u5c55\u793a\uff0c\u5173\u6389 \"\u6027\u80fd\u6d4b\u8bd5\" \u53ef\u4ee5\u67e5\u770b\u6bcf\u4e2a\u6b65\u9aa4\u7684\u622a\u56fe\u3002
    • \u5982\u679c\u5bfc\u5165 License \u6210\u529f\u540e\uff0c\u4f9d\u7136\u663e\u793a\u6ca1\u6709 UI \u6d4b\u8bd5\u6a21\u5757\uff0c\u8bf7\u5230\u3010\u7528\u6237\u7ec4\u4e0e\u6743\u9650\u3011\u4e2d\u786e\u8ba4\u662f\u5426\u6709 UI \u6a21\u5757\u7684\u6743\u9650\u3002
    "},{"location":"user_manual/ui_test/intro/","title":"\u6982\u8ff0","text":"

    MeterSphere UI \u6d4b\u8bd5\u6a21\u5757\u56f4\u7ed5\u5e94\u7528\u7cfb\u7edf\u7684 \u7528\u6237\u754c\u9762 \u63d0\u4f9b\u4ee5\u4e0b\u4e3b\u8981\u529f\u80fd\uff1a

    • \u5143\u7d20\u5e93\uff1a\u5e73\u53f0\u63d0\u4f9b\u5143\u7d20\u5e93\u7684\u529f\u80fd\uff0c\u901a\u8fc7\u521b\u5efa\u5143\u7d20\u5e93\uff0c\u53ef\u4ee5\u628a UI \u81ea\u52a8\u5316\u573a\u666f\u4e2d\u7684\u5355\u4e2a\u6b65\u9aa4\uff0c\u8fdb\u884c\u7edf\u4e00\u7ba1\u7406\uff0c\u8fbe\u5230\u9875\u9762\u5143\u7d20\u5728\u4e0d\u540c UI \u573a\u666f\u4e2d\u590d\u7528\u7684\u6548\u679c\u3002
    • UI \u81ea\u52a8\u5316\uff1a\u652f\u6301\u624b\u52a8\u521b\u5efa UI \u81ea\u52a8\u5316\u573a\u666f\u548c\u5bfc\u5165 SeleniumIDE \u5de5\u5177\u5f55\u5236\u597d\u7684 side \u811a\u672c\u6587\u4ef6\uff0c\u652f\u6301\u6dfb\u52a0\u6d4f\u89c8\u5668\u64cd\u4f5c\u3001 \u5f39\u7a97\u64cd\u4f5c\u3001\u5143\u7d20\u64cd\u4f5c\u3001\u9f20\u6807\u64cd\u4f5c\u3001\u8f93\u5165\u64cd\u4f5c\u3001\u6d41\u7a0b\u63a7\u5236\u7b49\u6b65\u9aa4\uff0c\u5e76\u63d0\u4f9b\u67e5\u770b\u5143\u7d20\u5e93\u3001\u524d\u7f6e\u64cd\u4f5c\u3001\u540e\u7f6e\u64cd\u4f5c\u3001\u9519\u8bef\u5904\u7406\u9ad8\u7ea7\u529f\u80fd\u3002
    • \u6d4b\u8bd5\u62a5\u544a\uff1a\u63d0\u4f9b\u76f4\u89c2\u3001\u7f8e\u89c2\u7684\u9875\u9762\u5bf9UI\u6d4b\u8bd5\u7684\u7ed3\u679c\u8fdb\u884c\u53ef\u89c6\u5316\u5c55\u793a\uff0c\u53ef\u67e5\u770b\u573a\u666f\u5168\u90e8\u6b65\u9aa4\u548c\u5931\u8d25\u6b65\u9aa4\uff0c\u4ee5\u53ca\u63a7\u5236\u53f0\u8be6\u60c5\uff0c\u5e76\u4e14\u652f\u6301\u5bf9\u6b65\u9aa4\u6267\u884c\u65f6\u7684UI\u622a\u56fe\u9884\u89c8\u3002

    \u5907\u6ce8: UI \u6d4b\u8bd5\u6a21\u5757\u662f\u4f01\u4e1a\u7248 X-Pack \u529f\u80fd\u589e\u5f3a\u5305\u529f\u80fd\u3002\u5982\u9700\u4f7f\u7528\u4f01\u4e1a\u7248\uff0c\u8bf7\u70b9\u51fb\uff1a\u7533\u8bf7\u4f01\u4e1a\u7248\u8bd5\u7528\u3002

    \u6ce8\u610f\u4e8b\u9879

    • \u4fee\u6539 /opt/metersphere/.env \u6587\u4ef6\u4e2d MS_UI_ENABLED \u503c\uff0cMS_UI_ENABLED=true\uff0c \u4fee\u6539\u914d\u7f6e\u540e\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\u6267\u884c msctl reload\u3002
    • docker ps \u68c0\u67e5 selenium-hub \u5bb9\u5668\u662f\u5426\u6210\u529f\u542f\u52a8\u3002
    • \u5728 MeterSphere \u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e\u4e2d\u4fee\u6539 selenium-docker \u5730\u5740\u4e3ahttp://selenium-hub:4444\u3002
    • UI \u6d4b\u8bd5\u7528\u4f8b\uff0c\u9ed8\u8ba4 \"\u6027\u80fd\u6a21\u5f0f\" \u6ca1\u6709\u622a\u56fe\u5c55\u793a\uff0c\u5173\u6389 \"\u6027\u80fd\u6d4b\u8bd5\" \u53ef\u4ee5\u67e5\u770b\u6bcf\u4e2a\u6b65\u9aa4\u7684\u622a\u56fe\u3002
    • \u5982\u679c\u5bfc\u5165 License \u6210\u529f\u540e\uff0c\u4f9d\u7136\u663e\u793a\u6ca1\u6709 UI \u6d4b\u8bd5\u6a21\u5757\uff0c\u8bf7\u5230\u3010\u7528\u6237\u7ec4\u4e0e\u6743\u9650\u3011\u4e2d\u786e\u8ba4\u662f\u5426\u6709 UI \u6a21\u5757\u7684\u6743\u9650\u3002

    "},{"location":"user_manual/ui_test/ui_automation/","title":"UI \u81ea\u52a8\u5316","text":""},{"location":"user_manual/ui_test/ui_automation/#1","title":"1 \u521b\u5efa\u573a\u666f","text":""},{"location":"user_manual/ui_test/ui_automation/#11","title":"1.1 \u57fa\u7840\u4fe1\u606f","text":"

    \u70b9\u51fb\u3010+\u3011\u6309\u94ae\uff0c\u9009\u62e9\u3010\u521b\u5efa\u573a\u666f\u3011\uff0c\u8fdb\u5165\u573a\u666f\u521b\u5efa\u9875\u9762\u3002

    \u5728\u3010\u57fa\u7840\u4fe1\u606f\u3011\u680f\uff0c\u6dfb\u52a0\u6a21\u5757\u3001\u72b6\u6001\u3001\u540d\u79f0\u7b49\u4fe1\u606f\u540e\u5373\u53ef\u4fdd\u5b58\u573a\u666f\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#12","title":"1.2 \u573a\u666f\u53c2\u6570","text":"
    • \u573a\u666f\u53d8\u91cf\uff1a\u70b9\u51fb\u3010\u573a\u666f\u53d8\u91cf\u3011\uff0c\u8fdb\u5165\u53d8\u91cf\u6dfb\u52a0\u9875\u9762\u3002

    \u76ee\u524d\u652f\u6301\u6dfb\u52a0\u3010\u5b57\u7b26\u4e32\u3001\u6570\u7ec4\u3001json\u3001\u6570\u503c\u3011\uff0c\u53ef\u4ee5\u5355\u884c\u6dfb\u52a0\u548c\u6279\u91cf\u6dfb\u52a0\uff0c\u6279\u91cf\u6dfb\u52a0\u4ee5 \u201c\u53d8\u91cf\u540d:\u53d8\u91cf\u503c\u201d \u683c\u5f0f\u6dfb\u52a0\u3002

    • \u6027\u80fd\u6a21\u5f0f\uff1a\u3010\u6027\u80fd\u6a21\u5f0f\u3011\u9ed8\u8ba4\u5f00\u542f\uff0c\u5f00\u542f\u540e\u4e0d\u4f1a\u5bf9\u6bcf\u4e2a\u6b65\u9aa4\u90fd\u622a\u56fe\uff0c\u66f4\u8282\u7701\u8d44\u6e90\u3002

    • \u6d4f\u89c8\u5668\u9a71\u52a8\uff1a\u6d4f\u89c8\u5668\u9a71\u52a8\u5373\u4ee5\u4ec0\u4e48\u6d4f\u89c8\u5668\u6267\u884c\u8be5\u573a\u666f\uff0c\u5f53\u524d\u652f\u6301 chrome \u6d4f\u89c8\u5668\u548c firefox \u6d4f\u89c8\u5668\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#13","title":"1.3 \u6dfb\u52a0\u6b65\u9aa4","text":"
    • \u6dfb\u52a0\u6b65\u9aa4 \uff1a\u70b9\u51fb\u573a\u666f\u53f3\u4e0b\u89d2\u3010+\u3011\u6309\u94ae\u3002
    • \u6d4f\u89c8\u5668\u64cd\u4f5c\uff1a\u70b9\u51fb\u3010\u6d4f\u89c8\u5668\u64cd\u4f5c\u3011\uff0c\u8f93\u5165\u3010URL\u3011\u5730\u5740\uff0c\u53ef\u6dfb\u52a0\u6d4f\u89c8\u5668\u76f8\u5173\u64cd\u4f5c\u6b65\u9aa4\u3002

    \u76ee\u524d\u652f\u6301\u6d4f\u89c8\u5668\u6253\u5f00\u7f51\u9875\u3001\u5173\u95ed\u7f51\u9875\u3001\u5207\u6362\u7a97\u53e3\u3001\u8bbe\u7f6e\u7a97\u53e3\u5927\u5c0f\u3001\u9009\u62e9\u5185\u5d4c\u7f51\u9875\u7684\u64cd\u4f5c\u3002

    • \u5f39\u7a97\u64cd\u4f5c\uff1a\u652f\u6301\u5bf9\u5f39\u7a97\u8f93\u5165\u6846\u8f93\u5165\u5185\u5bb9\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u548c\u3010\u53d6\u6d88\u3011\u7684\u64cd\u4f5c\u3002

    • \u5143\u7d20\u64cd\u4f5c\uff1a \u652f\u6301\u3010\u63d0\u4ea4\u8868\u5355\u3011\u3001\u3010\u4e0b\u62c9\u6846\u64cd\u4f5c\u3011\u3001\u3010\u8bbe\u7f6e\u9009\u9879\u3011\u3001\u3010\u7b49\u5f85\u5143\u7d20\u3011\u56db\u79cd\u65b9\u5f0f\u3002
    • \u3010\u63d0\u4ea4\u8868\u5355\u3011\uff1a\u9488\u5bf9\u5c5e\u6027type=\"submit\u201d\u7684\u5143\u7d20\uff0c\u7528\u4e8e\u63d0\u4ea4\u8868\u5355\u6570\u636e\u3002
    • \u3010\u4e0b\u62c9\u6846\u64cd\u4f5c\u3011\uff1a\u5bf9\u4e0b\u62c9\u9009\u9879\u8fdb\u884c\u64cd\u4f5c\uff0c\u53ef\u5b9e\u73b0\u5355\u9009\uff0c\u591a\u9009\uff0c\u4ee5\u53ca\u53d6\u6d88\u9009\u62e9\u7684\u64cd\u4f5c\u3002
    • \u3010\u8bbe\u7f6e\u9009\u9879\u3011\uff1a\u7528\u4e8e\u8bbe\u7f6e checkbox/radio \u7684\u72b6\u6001\u3002
    • \u3010\u7b49\u5f85\u5143\u7d20\u3011\uff1a\u5bf9\u9875\u9762\u5bf9\u8c61\u6267\u884c\u6307\u5b9a\u7684\u7b49\u5f85\u64cd\u4f5c\uff0c\u9ed8\u8ba4\u7b49\u5f85\u8d85\u65f63000ms\u3002

    • \u9f20\u6807\u64cd\u4f5c\uff1a\u652f\u6301\u3010\u9f20\u6807\u70b9\u51fb\u3011\u3001\u3010\u9f20\u6807\u79fb\u52a8\u3011\u548c\u3010\u9f20\u6807\u62d6\u62fd\u3011\u7684\u64cd\u4f5c\uff0c\u901a\u8fc7\u5b9a\u4f4d\u627e\u5230\u5143\u7d20\u540e\uff0c\u8fd8\u652f\u6301\u8bbe\u7f6e\u9f20\u6807\u5728\u5143\u7d20\u4e0a\u7684\u70b9\u51fb\u4f4d\u7f6e\u3002
    • \u3010\u9f20\u6807\u70b9\u51fb\u3011\uff1a\u6a21\u62df\u9f20\u6807\u70b9\u51fb\u7684\u64cd\u4f5c\uff0c\u652f\u6301\u5355\u51fb/\u53cc\u51fb/\u6309\u4e0b/\u5f39\u8d77\u3002
    • \u3010\u9f20\u6807\u79fb\u52a8\u3011\uff1a\u5c06\u9f20\u6807\u60ac\u505c\u5728\u7f51\u9875\u5143\u7d20\u7684\u4e0a\u65b9\u3002
    • \u3010\u9f20\u6807\u62d6\u62fd\u3011\uff1a\u6a21\u62df\u9f20\u6807\u5c06\u5143\u7d20\u4ece\u67d0\u4e2a\u4f4d\u7f6e\u62d6\u5230\u53e6\u4e00\u4e2a\u4f4d\u7f6e\u3002

    \u3010\u9f20\u6807\u64cd\u4f5c\u3011\u9009\u62e9\u3010\u9f20\u6807\u70b9\u51fb\u3011\uff0c\u9009\u62e9\u70b9\u51fb\u65b9\u5f0f\uff0c\u586b\u5199\u5143\u7d20\u4f4d\u7f6e\u4ee5\u53ca\u9f20\u6807\u70b9\u51fb\u4f4d\u7f6e\u5373\u53ef

    \u5f53\u5b9a\u4f4d\u5143\u7d20\u88ab\u906e\u6321\u65f6\uff0c\u53ef\u8fdb\u884c\u5f3a\u5236\u70b9\u51fb

    \u3010\u9f20\u6807\u64cd\u4f5c\u3011\u9009\u62e9\u3010\u9f20\u6807\u79fb\u52a8\u3011\uff0c\u9009\u62e9\u79fb\u52a8\u65b9\u5f0f\uff0c\u586b\u5199\u9f20\u6807\u4f4d\u7f6e\u5373\u53ef

    \u3010\u9f20\u6807\u64cd\u4f5c\u3011\u9009\u62e9\u3010\u9f20\u6807\u62d6\u62fd\u3011\uff0c\u9009\u62e9\u62d6\u62fd\u65b9\u5f0f\uff0c\u586b\u5199\u64cd\u4f5c\u5143\u7d20\u4ee5\u53ca\u5750\u6807\u70b9\u5373\u53ef\u3002

    • \u8f93\u5165\u64cd\u4f5c\uff1a\u652f\u6301\u8f93\u5165\u6846\u548c\u53ef\u7f16\u8f91\u6bb5\u843d\u8f93\u5165\uff0c\u540c\u65f6\u652f\u6301\u8ffd\u52a0\u8f93\u5165\u548c\u8986\u76d6\u8f93\u5165\u6a21\u5f0f\u3002

    • \u6d41\u7a0b\u63a7\u5236\uff1a\u652f\u6301\u3010\u6b21\u6570\u5faa\u73af\u3011\u3001\u3010ForEach\u5faa\u73af\u3011\u3001\u3010While\u3011\u3001\u3010If\u3011\u3001\u3010ElseIf\u3011\u3001\u3010Else\u3011\u7b49\u65b9\u5f0f\u3002

    • \u3010\u6b21\u6570\u5faa\u73af\u3011\uff1a\u8bbe\u7f6e\u6b65\u9aa4\u6267\u884c\u6b21\u6570\u3002

    • \u3010ForEach \u5faa\u73af\u3011\uff1a\u904d\u5386\u7ed9\u5b9a\u7684\u96c6\u5408\u3002
    • \u3010While \u5faa\u73af\u3011\uff1a\u6ee1\u8db3\u8868\u8fbe\u5f0f\u7684\u6761\u4ef6\u5219\u5faa\u73af\u6267\u884c\u91cc\u9762\u7684\u6b65\u9aa4\u3002
    • \u3010If\u3011\uff1a\u6ee1\u8db3 If \u6761\u4ef6\u5219\u6267\u884c\u91cc\u9762\u7684\u6b65\u9aa4\u3002
    • \u3010ElseIf\u3011\uff1a\u4e0d\u6ee1\u8db3 If \u6761\u4ef6\u4e14\u6ee1\u8db3 ElseIf \u6761\u4ef6\u5219\u6267\u884c\u3002
    • \u3010Else\u3011\uff1a\u4e0d\u6ee1\u8db3 If \u6761\u4ef6\u5219\u6267\u884c\u3002

    \u5c06\u9700\u8981\u8fdb\u884c\u6d41\u7a0b\u63a7\u5236\u7684\u6b65\u9aa4\u62d6\u5165\u6d41\u7a0b\u63a7\u5236\u5668\u4e0b\u5373\u53ef\u5b9e\u73b0\u6b65\u9aa4\u5faa\u73af\u6216\u8005\u6761\u4ef6\u63a7\u5236\u3002

    • \u573a\u666f\u5bfc\u5165\uff1a\u70b9\u51fb\u3010\u573a\u666f\u5bfc\u5165\u3011\uff0c\u53ef\u4ee5\u9009\u62e9\u9879\u76ee\u4e0b\u7684\u591a\u4e2a\u573a\u666f/\u6307\u4ee4\u5bfc\u5165\u5230\u8be5\u573a\u666f\u505a\u4e3a\u4e00\u4e2a\u6b65\u9aa4\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#14","title":"1.4 \u9ad8\u7ea7\u8bbe\u7f6e","text":"
    • \u5143\u7d20\u5e93\uff1a\u5982\u679c\u5f53\u524d\u6b65\u9aa4\u4f7f\u7528\u4e86\u5143\u7d20\u5e93\u7684\u5143\u7d20\uff0c\u5728\u3010\u9ad8\u7ea7\u8bbe\u7f6e\u3011\u7684\u5143\u7d20\u5e93\u4e0b\u4f1a\u5c55\u793a\u5f53\u524d\u6b65\u9aa4\u6240\u9009\u7684\u5143\u7d20\u5bf9\u8c61\u3002
    • \u524d\u7f6e\u64cd\u4f5c\uff1a\u6709\u56db\u79cd\u7c7b\u578b\uff0c\u5305\u62ec\u3010\u524d\u7f6e\u811a\u672c\u3011\u3001\u3010\u7b49\u5f85\u65f6\u95f4\u3011\u3001\u3010\u6570\u636e\u63d0\u53d6\u3011\u548c\u3010\u622a\u56fe\u3011\u3002

    \uff081\uff09\u524d\u7f6e\u811a\u672c\uff1a\u76ee\u524d\u652f\u6301\u3010js\u811a\u672c\u3011\uff0c\u8bbe\u7f6e js \u811a\u672c\u540e\uff0c\u4f1a\u5148\u4e8e\u5f53\u524d\u6b65\u9aa4\u5728\u6d4f\u89c8\u5668\u4e2d\u6267\u884c\u8be5\u811a\u672c\u3002

    \u811a\u672c\u7c7b\u578b\u53ef\u9009\u62e9\u540c\u6b65\u6216\u5f02\u6b65\uff0c\u5982\u679c\u811a\u672c\u6267\u884c\u540e\u6709\u8fd4\u56de\uff0c\u53ef\u4ee5\u4ee5\u53d8\u91cf\u5f62\u5f0f\u5b58\u50a8\u8fd4\u56de\u503c\u3002

    \uff082\uff09\u7b49\u5f85\u65f6\u95f4\uff1a\u3010\u524d\u7f6e\u64cd\u4f5c\u3011\u53ef\u4ee5\u8bbe\u7f6e\u7b49\u5f85\u65f6\u95f4\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u5c06\u4f1a\u7b49\u5f85 3 \u79d2\u518d\u6267\u884c\u5f53\u524d\u6b65\u9aa4\u3002

    \uff083\uff09\u6570\u636e\u63d0\u53d6\uff1a\u3010\u524d\u7f6e\u64cd\u4f5c\u3011\u53ef\u4ee5\u4f7f\u7528\u6570\u636e\u63d0\u53d6\uff0c\u53ef\u4ee5\u63d0\u53d6\u7a97\u53e3\u4fe1\u606f\u548c\u5143\u7d20\u4fe1\u606f\uff0c\u5e76\u4ee5\u53d8\u91cf\u5f62\u5f0f\u8fdb\u884c\u5b58\u50a8\u3002

    \u7a97\u53e3\u4fe1\u606f\u5305\u62ec\u7a97\u53e3 Handle \u4fe1\u606f\u548c\u7f51\u9875\u6807\u9898\u3002

    \u5143\u7d20\u4fe1\u606f\u53ef\u4ee5\u63d0\u53d6\u666e\u901a\u5bf9\u8c61\u3001\u6587\u672c\u5bf9\u8c61\u3001\u5143\u7d20\u503c\u3001\u5143\u7d20\u5c5e\u6027\u548c\u5339\u914d xpath \u7684\u5143\u7d20\u6570\u91cf\u3002

    \u7cfb\u7edf\u4f1a\u6839\u636e\u6240\u9009\u7684\u5b9a\u4f4d\u65b9\u5f0f\u3001\u5b9a\u4f4d\u8868\u8fbe\u5f0f\u548c\u5143\u7d20\u5c5e\u6027\u63d0\u53d6\u6570\u636e\u4ee5\u53ca\u5b58\u50a8\u53d8\u91cf\u3002

    \uff084\uff09\u540e\u7f6e\u64cd\u4f5c\uff1a\u540e\u7f6e\u64cd\u4f5c\u4f1a\u5728\u5f53\u524d\u6b65\u9aa4\u6267\u884c\u7ed3\u675f\u540e\u518d\u6267\u884c\uff0c\u540e\u7f6e\u64cd\u4f5c\u4e0e\u524d\u7f6e\u64cd\u4f5c\u7684\u65b9\u5f0f\u57fa\u672c\u4e00\u81f4\uff0c\u53ea\u662f\u591a\u4e86\u65ad\u8a00\u7c7b\u578b\u3002

    \u76ee\u524d\u65ad\u8a00\u5bf9\u8c61\u652f\u6301\u65ad\u8a00\u503c\u3001\u5f39\u7a97\u6587\u672c\u3001\u5143\u7d20\u65ad\u8a00\u3001\u4e0b\u62c9\u6846\u548c\u7f51\u9875\u6807\u9898\u3002

    • \u9519\u8bef\u5904\u7406\uff1a\u76ee\u524d\u6709\u4e24\u79cd\u9519\u8bef\u5904\u7406\u65b9\u5f0f\uff1a
    • \u3010\u7ec8\u6b62\u6d41\u7a0b\u3011\uff1a\u5f53\u524d\u6b65\u9aa4\u5931\u8d25\u540e\uff0c\u505c\u6b62\u6d4b\u8bd5\uff0c\u540e\u7eed\u7684\u6b65\u9aa4\u4e0d\u4f1a\u518d\u6267\u884c\u3002
    • \u3010\u5ffd\u7565\u5f02\u5e38\u5e76\u7ee7\u7eed\u6267\u884c\u3011\uff1a\u5ffd\u7565\u8be5\u9519\u8bef\uff0c\u7ee7\u7eed\u5f80\u4e0b\u6267\u884c\u6d4b\u8bd5\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#15","title":"1.5 \u6b65\u9aa4\u5217\u8868","text":"
    • \u67e5\u770b\u8be6\u60c5\uff1a\u70b9\u51fb\u67d0\u4e2a\u6b65\u9aa4\uff0c\u53f3\u4fa7\u4f1a\u5c55\u793a\u8be5\u6b65\u9aa4\u7684\u8be6\u7ec6\u5185\u5bb9\u3002
    • \u57fa\u7840\u64cd\u4f5c\uff1a\u9f20\u6807\u60ac\u6d6e\u5728\u67d0\u4e2a\u6b65\u9aa4\u4e4b\u4e0a\uff0c\u4f1a\u5c55\u793a\u3010\u7f16\u8f91\u3011\u952e\uff0c\u70b9\u51fb\u540e\u53ef\u91cd\u547d\u540d\u8be5\u6b65\u9aa4\u3002

    \u9f20\u6807\u60ac\u6d6e\u5728\u67d0\u4e2a\u6b65\u9aa4\u4e4b\u4e0a\uff0c\u70b9\u51fb\u6b65\u9aa4\u53f3\u4fa7\u3010\u2026\u3011\uff0c\u53ef\u5bf9\u6b65\u9aa4\u8fdb\u884c\u590d\u5236\u3001\u7981\u7528\u3001\u5220\u9664\u6b65\u9aa4\u548c\u91cd\u547d\u540d\u3002

    • \u6279\u91cf\u64cd\u4f5c\uff1a\u70b9\u51fb\u5de6\u4fa7\u5c0f\u56fe\u8868\uff0c\u53ef\u4ee5\u5217\u8868\u8fdb\u884c\u6279\u91cf\u64cd\u4f5c\u3002

    \u5305\u62ec\u6279\u91cf\u542f\u7528\u3001\u6279\u91cf\u7981\u7528\u3001\u6279\u91cf\u5c55\u5f00\u3001\u6279\u91cf\u6298\u53e0\u548c\u6279\u91cf\u5220\u9664\u6b65\u9aa4\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#2","title":"2 \u5bfc\u5165\u5bfc\u51fa","text":""},{"location":"user_manual/ui_test/ui_automation/#21","title":"2.1 \u5bfc\u51fa\u573a\u666f","text":"

    \u52fe\u9009\u573a\u666f\uff0c\u70b9\u51fb\u5de6\u4fa7\u3010\u66f4\u591a\u64cd\u4f5c\u3011\uff0c\u9009\u62e9\u3010\u5bfc\u51fa\u3011\uff0c\u573a\u666f\u4f1a\u5bfc\u51fa\u4e3a side \u683c\u5f0f\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#22","title":"2.2 \u5bfc\u5165\u573a\u666f","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u66f4\u591a\u64cd\u4f5c\u3011\uff0c\u9009\u62e9\u3010\u5bfc\u5165\u3011\u3002

    \u5728\u5bfc\u5165\u9875\u9762\u9009\u62e9\u3010\u5bfc\u5165\u6a21\u5757\u3011\u548c\u3010\u5bfc\u5165\u6a21\u5f0f\u3011\uff0c\u5e76\u4e0a\u4f20 side \u683c\u5f0f\u7684\u6587\u4ef6\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5373\u53ef\u628a UI \u81ea\u52a8\u5316\u573a\u666f\u5bfc\u5165\u5230\u76f8\u5e94\u7684\u6a21\u5757\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#3","title":"3 \u57fa\u7840\u64cd\u4f5c","text":""},{"location":"user_manual/ui_test/ui_automation/#31","title":"3.1 \u573a\u666f\u5217\u8868","text":"

    \u5728\u573a\u666f\u5217\u8868\uff0c\u53ef\u4ee5\u9009\u62e9\u5de6\u4fa7\u7684\u7528\u4f8b\u76ee\u5f55\uff0c\u53f3\u8fb9\u4f1a\u6839\u636e\u6240\u9009\u76ee\u5f55\u5c55\u793a\u5bf9\u5e94\u7684\u573a\u666f\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#32","title":"3.2 \u6267\u884c\u573a\u666f","text":"

    \u70b9\u51fb\u53f3\u4fa7\u3010\u6267\u884c\u3011\u6309\u94ae\uff0c\u4f1a\u5728\u5f53\u524d\u9875\u9762\u6267\u884c\u8be5\u573a\u666f\u3002

    \u573a\u666f\u6267\u884c\u5b8c\u6210\u4f1a\uff0c\u4f1a\u5728\u5f53\u524d\u4e5f\u4f1a\u5c55\u793a\u6d4b\u8bd5\u62a5\u544a\u8be6\u60c5\uff0c\u4e5f\u53ef\u4ee5\u5230\u3010UI\u6d4b\u8bd5-\u6d4b\u8bd5\u62a5\u544a\u3011\u8def\u5f84\u4e0b\u67e5\u770b\u62a5\u544a\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#33","title":"3.3 \u7f16\u8f91\u573a\u666f","text":""},{"location":"user_manual/ui_test/ui_automation/#34","title":"3.4 \u590d\u5236\u573a\u666f","text":""},{"location":"user_manual/ui_test/ui_automation/#35","title":"3.5 \u5220\u9664\u573a\u666f","text":"

    \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u4f1a\u5f39\u51fa\u63d0\u793a\u6846\uff0c\u786e\u8ba4\u5220\u9664\u540e\uff0c\u573a\u666f\u4f1a\u88ab\u5220\u9664\u5230\u56de\u6536\u7ad9\u3002

    \u56de\u6536\u7ad9\u5185\u7684\u573a\u666f\u53ef\u4ee5\u6062\u590d\u6216\u5f7b\u5e95\u5220\u9664\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#4","title":"4 \u6279\u91cf\u64cd\u4f5c","text":""},{"location":"user_manual/ui_test/ui_automation/#41","title":"4.1 \u6279\u91cf\u7f16\u8f91","text":"

    \u52fe\u9009\u591a\u4e2a\u573a\u666f\uff0c\u70b9\u51fb\u5217\u8868\u5de6\u4fa7\u7684\u4e09\u4e2a\u70b9\uff0c\u70b9\u51fb\u3010\u6279\u91cf\u7f16\u8f91\u3011\u3002

    \u5f39\u51fa\u6279\u91cf\u7f16\u8f91\u9875\u9762\uff0c\u9009\u62e9\u9700\u8981\u4fee\u6539\u7684\u5c5e\u6027\u548c\u5c5e\u6027\u503c\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5373\u53ef\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#42","title":"4.2 \u6279\u91cf\u79fb\u52a8","text":"

    \u52fe\u9009\u591a\u4e2a\u573a\u666f\uff0c\u70b9\u51fb\u3010\u6279\u91cf\u79fb\u52a8\u3011\uff0c\u5f39\u51fa\u6279\u91cf\u79fb\u52a8\u7f16\u8f91\u9875\u9762\u3002

    \u9009\u62e9\u7528\u4f8b\u76ee\u5f55\u70b9\u51fb\u3010\u786e\u5b9a\u3011\uff0c\u52fe\u9009\u7684\u573a\u666f\u4f1a\u79fb\u52a8\u5230\u8be5\u76ee\u5f55\u4e0b\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#43","title":"4.3 \u6279\u91cf\u590d\u5236","text":"

    \u52fe\u9009\u591a\u4e2a\u573a\u666f\uff0c\u70b9\u51fb\u3010\u6279\u91cf\u590d\u5236\u3011\uff0c\u4f1a\u5f39\u51fa\u6279\u91cf\u590d\u5236\u7f16\u8f91\u9875\u9762\u3002

    \u9009\u62e9\u7528\u4f8b\u76ee\u5f55\u5e76\u70b9\u51fb\u3010\u786e\u5b9a\u3011\uff0c\u52fe\u9009\u7684\u7528\u4f8b\u4f1a\u590d\u5236\u5230\u8be5\u76ee\u5f55\u4e0b\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#44","title":"4.4 \u6279\u91cf\u5220\u9664","text":"

    \u52fe\u9009\u591a\u4e2a\u573a\u666f\uff0c\u70b9\u51fb\u3010\u6279\u91cf\u5220\u9664\u3011\uff0c\u5f39\u51fa\u786e\u8ba4\u9875\u9762\u3002

    \u70b9\u51fb\u3010\u786e\u5b9a\u3011\uff0c\u52fe\u9009\u7684\u5220\u9664\u4f1a\u88ab\u5220\u9664\u5230\u56de\u6536\u7ad9\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#5","title":"5 \u521b\u5efa\u6307\u4ee4","text":""},{"location":"user_manual/ui_test/ui_automation/#51","title":"5.1 \u57fa\u672c\u4fe1\u606f","text":"

    \u70b9\u51fb\u3010+\u3011\u6309\u94ae\uff0c\u9009\u62e9\u3010\u521b\u5efa\u6307\u4ee4\u3011\uff0c\u8fdb\u5165\u6307\u4ee4\u521b\u5efa\u9875\u9762\u3002

    \u5728\u3010\u57fa\u7840\u4fe1\u606f\u3011\u680f\uff0c\u6dfb\u52a0\u6a21\u5757\u3001\u72b6\u6001\u3001\u540d\u79f0\u7b49\u4fe1\u606f\u540e\u5373\u53ef\u4fdd\u5b58\u573a\u666f\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#52","title":"5.2 \u6307\u4ee4\u6b65\u9aa4","text":"

    \u5728\u53f3\u4e0b\u89d2\u9009\u62e9\u6b65\u9aa4\u8fdb\u884c\u6dfb\u52a0\uff0c\u53ef\u5728\u3010\u6307\u4ee4\u6b65\u9aa4\u3011\u9875\u9762\u770b\u5230\u5404\u4e2a\u6b65\u9aa4\uff0c\u9ed8\u8ba4\u6709\u524d\u7f6e\u6b65\u9aa4\u3001\u81ea\u5b9a\u4e49\u6b65\u9aa4\u3001\u540e\u7f6e\u6b65\u9aa4\u3002

    \u6dfb\u52a0 UI \u81ea\u52a8\u5316\u63a7\u4ef6\u5230\u76f8\u5e94\u6b65\u9aa4\u4e0b\uff0c\u5176\u4e2d\u81ea\u5b9a\u4e49\u6b65\u9aa4\u5904\u652f\u6301\u53c2\u6570\u5316\u914d\u7f6e\u3002

    \u53ef\u5728\u3010\u573a\u666f\u6b65\u9aa4\u3011\u6216\u3010\u6307\u4ee4\u6b65\u9aa4\u3011\u7684\u6279\u91cf\u9009\u62e9\u4e2d\uff0c\u70b9\u51fb\u521b\u5efa\u81ea\u5b9a\u4e49\u6307\u4ee4\u9009\u9879\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#53","title":"5.3 \u6307\u4ee4\u5217\u8868","text":"

    \u5728\u3010\u81ea\u52a8\u5316\u5217\u8868\u3011\u9875\u9762\uff0c\u5207\u6362\u5230\u3010\u6307\u4ee4\u3011\u9875\u9762\uff0c\u53ef\u770b\u5230\u6240\u6709\u7684\u6307\u4ee4\u5217\u8868\u3002

    \u53ef\u5bf9\u5217\u8868\u4e2d\u7684\u6307\u4ee4\u8fdb\u884c\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u3001\u3010\u5220\u9664\u3011\u3001\u3010\u67e5\u770b\u5f15\u7528\u3011\u7b49\u64cd\u4f5c\u3002

    "},{"location":"user_manual/ui_test/ui_element_store/","title":"\u5143\u7d20\u5e93","text":""},{"location":"user_manual/ui_test/ui_element_store/#1","title":"1 \u521b\u5efa\u5143\u7d20","text":"

    \u5207\u6362\u5230\u3010UI\u6d4b\u8bd5\u3011\u6a21\u5757\u4e0b\u7684\u3010\u5143\u7d20\u5e93\u3011\u9875\u9762\uff0c\u70b9\u51fb\u3010\u521b\u5efa\u5143\u7d20\u3011\uff0c\u8f93\u5165\u5143\u7d20\u5b57\u6bb5\u540d\uff0c\u9009\u62e9\u6240\u5c5e\u6a21\u5757\u548c\u5b9a\u4f4d\u7c7b\u578b\uff0c\u7136\u540e\u8f93\u5165\u5143\u7d20\u5b9a\u4f4d\u7684\u8868\u8fbe\u5f0f\u548c\u5907\u6ce8\u3002

    "},{"location":"user_manual/ui_test/ui_element_store/#2","title":"2 \u5143\u7d20\u5b9a\u4f4d","text":"

    \u5143\u7d20\u5b9a\u4f4d\u652f\u6301\u591a\u79cd\u65b9\u5f0f\uff0c\u5305\u62ec id\u3001name\u3001class\u3001tag\u3001link\u3001plink\u3001css\u3001xpath\u3001lable\u3001value\u3001index\uff0c\u8fd9\u91cc\u4ee5 xpath \u4e3a\u4f8b\u3002\u8f93\u5165\u5fc5\u586b\u4fe1\u606f\u540e\uff0c\u70b9\u51fb\u786e\u8ba4\u5373\u53ef\u4fdd\u5b58\u5143\u7d20\u3002

    \u5728\u9875\u9762\u4e0a\u70b9\u51fb\u4f60\u8981\u5b9a\u4f4d\u7684\u5143\u7d20\uff0c\u7136\u540e\u53f3\u952e\u9009\u62e9\u3010\u68c0\u67e5\u3011\u3002

    \u53f3\u952e\u9009\u62e9 Copy-Copy XPath \u5373\u53ef\u83b7\u5f97\u8be5\u5143\u7d20\u7684 xpath \u8def\u5f84\u3002

    "},{"location":"user_manual/ui_test/ui_element_store/#3","title":"3 \u7f16\u8f91\u5143\u7d20","text":"

    \u5728\u5143\u7d20\u5e93\u5217\u8868\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u952e\uff0c\u53ef\u4ee5\u4fee\u6539\u5143\u7d20\u5c5e\u6027\uff0c\u4fee\u6539\u4e4b\u540e\u70b9\u51fb\u786e\u8ba4\u5373\u53ef\u4fdd\u5b58\u3002

    "},{"location":"user_manual/ui_test/ui_element_store/#4","title":"4 \u590d\u5236\u5143\u7d20","text":""},{"location":"user_manual/ui_test/ui_element_store/#5","title":"5 \u5220\u9664\u5143\u7d20","text":""},{"location":"user_manual/ui_test/ui_test_report/","title":"\u6d4b\u8bd5\u62a5\u544a","text":""},{"location":"user_manual/ui_test/ui_test_report/#1","title":"1 \u62a5\u544a\u5217\u8868","text":"

    \u6d4b\u8bd5\u62a5\u544a\u5217\u8868\u8868\u5934\u5c55\u793a\u4e86\u62a5\u544a\u7684\u540d\u79f0\u3001\u521b\u5efa\u4eba\u3001\u521b\u5efa\u65f6\u95f4\u3001\u7ed3\u675f\u65f6\u95f4\u3001\u89e6\u53d1\u65b9\u5f0f\u3001\u72b6\u6001\u548c\u64cd\u4f5c\u3002\u6d4b\u8bd5\u62a5\u544a\u652f\u6301\u6309\u540d\u79f0\u641c\u7d22\u548c\u9ad8\u7ea7\u641c\u7d22\u3002

    \u9ad8\u7ea7\u641c\u7d22\u652f\u6301\u4ee5\u540d\u79f0\u3001\u72b6\u6001\u3001\u521b\u5efa\u4eba\u7b49\u7ef4\u5ea6\u8fdb\u884c\u7ec4\u5408\u67e5\u8be2\u3002

    "},{"location":"user_manual/ui_test/ui_test_report/#2","title":"2 \u91cd\u547d\u540d\u62a5\u544a","text":"

    \u5728\u6d4b\u8bd5\u62a5\u544a\u5217\u8868\u7684\u540d\u79f0\u680f\uff0c\u53ef\u4ee5\u91cd\u547d\u540d\u62a5\u544a\u540d\u79f0\u3002

    "},{"location":"user_manual/ui_test/ui_test_report/#3","title":"3 \u62a5\u544a\u8be6\u60c5","text":"

    \u70b9\u51fb\u3010\u62a5\u544a\u8be6\u60c5\u3011\uff0c\u53ef\u8fdb\u5165\u62a5\u544a\u8be6\u60c5\u9875\u9762\u3002

    \u8be6\u60c5\u9875\u9762\u9762\u677f\u5c55\u793a\u4e86\u672c\u6b21\u6267\u884c\u573a\u666f\u7684\u8017\u65f6\u3001\u6210\u529f\u548c\u5931\u8d25\u4ee5\u53ca\u672a\u6267\u884c\u7684\u6b65\u9aa4\u6570\uff0c\u8fd8\u6709\u65ad\u8a00\u6210\u529f\u548c\u5931\u8d25\u7684\u6570\u91cf\u3002

    \u5728\u603b\u89c8\u9762\u677f\u4e0b\u9762\uff0c\u53ef\u4ee5\u67e5\u770b\u573a\u666f\u5168\u90e8\u6b65\u9aa4\u548c\u5931\u8d25\u6b65\u9aa4\uff0c\u4ee5\u53ca\u63a7\u5236\u53f0\u8be6\u60c5\u3002

    \u5c55\u5f00\u6b65\u9aa4\u8be6\u60c5\u53ef\u4ee5\u67e5\u770b\u5f53\u524d\u6b65\u9aa4\u7684\u6267\u884c\u7ed3\u679c\u65e5\u5fd7\u3001\u65ad\u8a00\u7ed3\u679c\u548c\u63d0\u53d6\u7ed3\u679c\u3002

    \u9f20\u6807\u60ac\u6d6e\u5728\u53f3\u4fa7\u7684\u3010\u622a\u56fe\u3011\u4e0a\uff0c\u4f1a\u5c55\u793a\u8be5\u6b65\u9aa4\u6267\u884c\u65f6\u7684 UI \u622a\u56fe\u9884\u89c8\u3002

    \u70b9\u51fb\u8be5\u9884\u89c8\u56fe\uff0c\u4f1a\u4ee5\u7f51\u9875\u5927\u56fe\u5f62\u5f0f\u5c55\u793a UI \u622a\u56fe\u3002

    "},{"location":"user_manual/ui_test/ui_test_report/#4","title":"4 \u5220\u9664\u62a5\u544a","text":"

    \u5728\u6d4b\u8bd5\u62a5\u544a\u5217\u8868\u9875\u9762\uff0c\u70b9\u51fb\u3010\u5220\u9664\u3011\u952e\uff0c\u4f1a\u5f39\u51fa\u786e\u8ba4\u5220\u9664\u7684\u63d0\u793a\u3002

    "}]} \ No newline at end of file +{"config":{"lang":["en","ja"],"separator":"[\\s\\-\\.]+","pipeline":["stemmer"]},"docs":[{"location":"","title":"\u9879\u76ee\u4ecb\u7ecd","text":"

    MeterSphere \u662f\u4e00\u7ad9\u5f0f\u5f00\u6e90\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\uff0c\u6db5\u76d6\u6d4b\u8bd5\u8ddf\u8e2a\u3001\u63a5\u53e3\u6d4b\u8bd5\u3001UI \u6d4b\u8bd5\u548c\u6027\u80fd\u6d4b\u8bd5\u7b49\uff0c\u5168\u9762\u517c\u5bb9 JMeter\u3001Selenium \u7b49\u4e3b\u6d41\u5f00\u6e90\u6807\u51c6\uff0c\u6709\u6548\u52a9\u529b\u5f00\u53d1\u548c\u6d4b\u8bd5\u56e2\u961f\u5728\u7ebf\u5171\u4eab\u534f\u4f5c\uff0c\u5b9e\u73b0\u7aef\u5230\u7aef\u7684\u6d4b\u8bd5\u7ba1\u7406\u8ddf\u8e2a\u53ef\u89c6\u5316\u3001\u81ea\u52a8\u5316\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u53ca\u878d\u5165\u6301\u7eed\u4ea4\u4ed8 DevOps \u4f53\u7cfb\uff0c\u5e76\u5145\u5206\u5229\u7528\u4e91\u5f39\u6027\u8fdb\u884c\u9ad8\u5ea6\u53ef\u6269\u5c55\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u4ece\u800c\u52a0\u901f\u9ad8\u8d28\u91cf\u7684\u8f6f\u4ef6\u4ea4\u4ed8\uff0c\u63a8\u52a8\u4e2d\u56fd\u6d4b\u8bd5\u884c\u4e1a\u6574\u4f53\u6548\u7387\u7684\u63d0\u5347\u3002

    "},{"location":"#1","title":"1 \u4ea7\u54c1\u4f18\u52bf","text":"
    • \u5f00\u6e90\uff1a\u57fa\u4e8e\u5f00\u6e90\u3001\u517c\u5bb9\u5f00\u6e90\uff0c\u6309\u6708\u53d1\u5e03\u65b0\u7248\u672c\u3001\u65e5\u5747\u4e0b\u8f7d\u5b89\u88c5\u8d85\u8fc7100\u6b21\u3001\u88ab\u5927\u91cf\u7528\u6237\u9a8c\u8bc1\u3002
    • \u4e00\u7ad9\u5f0f\uff1a\u5168\u9762\u6db5\u76d6\u6d4b\u8bd5\u8ddf\u8e2a\u3001\u63a5\u53e3\u6d4b\u8bd5\u3001UI\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u5e76\u6253\u901a\u8054\u52a8\u3002
    • \u5168\u751f\u547d\u5468\u671f\uff1a\u6ee1\u8db3\u4ece\u6d4b\u8bd5\u8ba1\u5212\u3001\u6d4b\u8bd5\u6267\u884c\u5230\u6d4b\u8bd5\u62a5\u544a\u5206\u6790\u7684\u5168\u751f\u547d\u5468\u671f\u9700\u6c42\u3002
    • \u6301\u7eed\u6d4b\u8bd5\uff1a\u65e0\u7f1d\u5bf9\u63a5 Bug \u7ba1\u7406\u5de5\u5177\u548c\u6301\u7eed\u96c6\u6210\u5de5\u5177\u7b49\uff0c\u5c06\u6d4b\u8bd5\u878d\u5165\u6301\u7eed\u4ea4\u4ed8\u548c DevOps \u4f53\u7cfb\u3002
    • \u56e2\u961f\u534f\u4f5c\uff1a\u652f\u6301\u56e2\u961f\u534f\u4f5c\u548c\u8d44\u4ea7\u6c89\u6dc0\uff0c\u65e0\u8bba\u56e2\u961f\u89c4\u6a21\u5982\u4f55\uff0c\u603b\u6709\u9002\u5408\u7684\u843d\u5730\u65b9\u5f0f\u3002
    "},{"location":"#2","title":"2 \u4e3b\u8981\u529f\u80fd","text":"
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u5bf9\u63a5\u4e3b\u6d41\u9879\u76ee\u7ba1\u7406\u5e73\u53f0\uff0c\u6d4b\u8bd5\u8fc7\u7a0b\u5168\u94fe\u8def\u8ddf\u8e2a\u7ba1\u7406\uff1b\u5217\u8868\u8111\u56fe\u6a21\u5f0f\u81ea\u7531\u5207\u6362\uff0c\u7528\u4f8b\u7f16\u5199\u66f4\u7b80\u5355\u3001\u6d4b\u8bd5\u62a5\u544a\u66f4\u6e05\u6670\u3002
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u96c6 JMeter\u3001PostMan \u6613\u7528\u6027\u548c\u529f\u80fd\u6027\u4e8e\u4e00\u4f53\uff1b \u652f\u6301API \u7ba1\u7406\u3001Mock \u670d\u52a1\u3001\u573a\u666f\u7f16\u6392\u3001\u6269\u5c55\u534f\u8bae\u7b49\u3002
    • UI \u6d4b\u8bd5\uff1a\u57fa\u4e8e Selenium \u6d4f\u89c8\u5668\u81ea\u52a8\u5316\uff0c\u9ad8\u5ea6\u53ef\u590d\u7528\u7684\u6d4b\u8bd5\u811a\u672c\uff1b\u65e0\u9700\u590d\u6742\u7684\u4ee3\u7801\u7f16\u5199\uff0c\u4eba\u4eba\u90fd\u53ef\u5f00\u5c55\u7684\u4f4e\u4ee3\u7801\u81ea\u52a8\u5316\u6d4b\u8bd5\u3002
    • \u6027\u80fd\u6d4b\u8bd5\uff1a\u517c\u5bb9 JMeter \u7684\u540c\u65f6\u8865\u8db3\u5176\u5206\u5e03\u5f0f\u3001\u76d1\u63a7\u4e0e\u62a5\u544a\u4ee5\u53ca\u7ba1\u7406\u77ed\u677f\uff1b\u5e2e\u52a9\u56e2\u961f\u5b9e\u73b0\u9ad8\u5e76\u53d1\u3001\u5206\u5e03\u5f0f\u7684\u6027\u80fd\u538b\u6d4b\uff0c\u5b8c\u6210\u538b\u6d4b\u4efb\u52a1\u7684\u7edf\u4e00\u8c03\u5ea6\u4e0e\u7ba1\u7406\u3002
    "},{"location":"#3","title":"3 \u754c\u9762\u5c55\u793a","text":""},{"location":"#4","title":"4 \u7cbe\u54c1\u8bfe\u7a0b","text":"
    • \u73a9\u8f6c MeterSphere \u5f00\u6e90\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\u7cfb\u5217\u6559\u7a0b\u4e4b\u6d4b\u8bd5\u8ddf\u8e2a
    • \u73a9\u8f6c MeterSphere \u5f00\u6e90\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\u7cfb\u5217\u6559\u7a0b\u4e4b\u63a5\u53e3\u6d4b\u8bd5
    • \u73a9\u8f6c MeterSphere \u5f00\u6e90\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\u7cfb\u5217\u6559\u7a0b\u4e4b\u6027\u80fd\u6d4b\u8bd5
    • \u73a9\u8f6c MeterSphere \u5f00\u6e90\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\u7cfb\u5217\u6559\u7a0b\u4e4b UI \u6d4b\u8bd5
    "},{"location":"#5","title":"5 \u4e86\u89e3\u66f4\u591a","text":"
    • \u83b7\u53d6\u300a\u6301\u7eed\u6d4b\u8bd5\u767d\u76ae\u4e66\u300b
    • \u5982\u4f55\u5411\u56e2\u961f\u4ecb\u7ecd MeterSphere\uff1f
    • MeterSphere \u77e5\u8bc6\u5e93
    • MeterSphere \u793e\u533a\u8bba\u575b
    • MeterSphere \u57f9\u8bad\u548c\u8ba4\u8bc1
    "},{"location":"automation_plugin_dev/","title":"\u63a5\u53e3\u81ea\u52a8\u5316\u63d2\u4ef6\u5f00\u53d1","text":""},{"location":"automation_plugin_dev/#1","title":"1 \u80cc\u666f\u4ecb\u7ecd","text":"

    \u5728 JMeter \u4e2d\u4f7f\u7528 Dummy Sampler \u53ef\u4ee5\u6784\u9020\u51fa\u4e00\u4e2a\u8bf7\u6c42\u548c\u54cd\u5e94\u5b8c\u5168\u81ea\u5b9a\u4e49\u7684\u8bf7\u6c42\u53d6\u6837\u5668\uff0c\u5e76\u4e14\u8fd9\u79cd\u65b9\u5f0f\u53ef\u4ee5\u65b9\u4fbf\u5730\u5bf9\u65ad\u8a00\u3001\u53c2\u6570\u63d0\u53d6\u7b49\u5404\u79cd\u540e\u7f6e\u5904\u7406\u5668\u8fdb\u884c\u8c03\u8bd5\u3002\u9488\u5bf9 JMeter \u5df2\u6709\u7684\u529f\u80fd\u6216\u63d2\u4ef6\uff0c\u53ea\u9700\u8981\u8fdb\u884c\u5f88\u5c11\u91cf\u7684\u5f00\u53d1\u5de5\u4f5c\uff0c\u5c31\u53ef\u4ee5\u5c06\u5176\u5c01\u88c5\u6210 MeterSphere \u7684\u63a5\u53e3\u81ea\u52a8\u5316\u63d2\u4ef6\uff0c\u5bf9\u5e94\u7684\u63d2\u4ef6 Demo \u793a\u4f8b\u89c1: metersphere-plugin-DummySampler\u3002

    "},{"location":"automation_plugin_dev/#2","title":"2 \u5f00\u53d1\u6d41\u7a0b","text":""},{"location":"automation_plugin_dev/#21","title":"2.1 \u9879\u76ee\u521d\u59cb\u5316","text":"

    \u521d\u59cb\u5316\u4e00\u4e2a maven \u9879\u76ee\uff0c\u5e76\u6dfb\u52a0\u5982\u4e0b\u4f9d\u8d56\u3002\u516c\u5171\u63d2\u4ef6\u5305\u4f9d\u8d56\u5bf9\u5e94\u7684\u4ee3\u7801\u4ed3\u5e93\u89c1\uff1ametersphere-plugin-core \u3002

    <!-- \u7701\u7565\u5f00\u5934 -->\n    <dependencies>\n        <!-- \u516c\u5171\u63d2\u4ef6\u5305\uff0c\u5b9a\u4e49\u4e86\u6267\u884c\u6570\u636e\u7684\u57fa\u7c7b\u548c\u516c\u5171\u63a5\u53e3 -->\n        <dependency>\n            <groupId>io.metersphere</groupId>\n            <artifactId>metersphere-plugin-core</artifactId>\n            <version>2.0</version>\n            <scope>provided</scope>\n        </dependency>\n        <!-- \u539f\u59cb\u7684 JMeter DummySampler \u63d2\u4ef6 -->\n        <dependency>\n            <groupId>kg.apc</groupId>\n            <artifactId>jmeter-plugins-dummy</artifactId>\n            <version>0.4</version>\n        </dependency>\n    </dependencies>\n<!-- \u7701\u7565\u7ed3\u5c3e -->\n

    "},{"location":"automation_plugin_dev/#22","title":"2.2 \u751f\u6210\u524d\u7aef\u8868\u5355","text":"

    \u5728 JMeter \u4e2d\u521b\u5efa\u4e00\u4e2a\u5305\u542b DummySampler \u6b65\u9aa4\u7684\u811a\u672c\uff0c\u5bf9\u7167 JMeter \u4e2d\u8be5\u6b65\u9aa4\u7684\u914d\u7f6e\u9875\u9762\uff0c\u4f7f\u7528 \u8868\u5355\u751f\u6210\u5668 \u751f\u6210\u524d\u7aef\u8868\u5355\u7684 json \u6587\u4ef6\u3002

    \u70b9\u51fb\u8868\u5355\u751f\u6210\u5668\u53f3\u4e0a\u89d2\u7684\u3010\u751f\u6210JSON\u3011\u6309\u94ae\uff0c\u5c06\u5185\u5bb9\u4fdd\u5b58\u5230src\\main\\resources\\json\\ui_dummy.json\u6587\u4ef6\u4e2d\uff1b\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u3010\u751f\u6210Options\u3011\u6309\u94ae\uff0c\u5c06\u5185\u5bb9\u4fdd\u5b58\u5230src\\main\\resources\\json\\ui_form.json\u6587\u4ef6\u4e2d\u3002\u5bf9\u4e8e\u6ca1\u6709\u9ed8\u8ba4\u503c\u7684\u5b57\u6bb5\uff0c\u624b\u52a8\u7f16\u8f91 json \u6587\u4ef6\uff0c\u589e\u52a0\u7a7a\u9ed8\u8ba4\u503c\uff0c\u907f\u514d\u51fa\u73b0\u7a7a\u6307\u9488\u5f02\u5e38\u3002

    "},{"location":"automation_plugin_dev/#23","title":"2.3 \u521d\u59cb\u5316\u63d2\u4ef6\u8d44\u6e90","text":"

    \u5728src\\main\\java\\io\\metersphere\\plugin\\dummy\\UiScriptApiImpl.java\u4e2d\u4f7f\u7528\u4e0a\u9762\u751f\u6210\u7684\u8868\u5355 json\uff0c\u5bf9\u63d2\u4ef6\u5185\u5bb9\u8fdb\u884c\u521d\u59cb\u5316\u3002

    "},{"location":"automation_plugin_dev/#24-jmeter-hashtree","title":"2.4 \u8f6c\u6362\u751f\u6210 JMeter HashTree","text":"

    \u521b\u5efa\u4e0e\u4e0a\u4e00\u6b65\u5bf9\u5e94\u7684\u521d\u59cb\u5316 UiScript \u5bf9\u8c61\u65f6\u6307\u5b9a\u7c7b\u540d\u4e00\u81f4\u7684io.metersphere.plugin.dummy.sampler.MsDummySampler\u7c7b\uff0c\u5728\u8be5\u7c7b\u4e2d\u5b8c\u6210\u524d\u7aef\u8868\u5355\u6570\u636e\u5230 JMeter HashTree \u7684\u8f6c\u6362\u3002

    \u751f\u6210 DummySampler \u5bf9\u8c61\u65f6\uff0cguiclass\u3001testclass \u53ca\u5404\u4e2a\u5c5e\u6027\u5bf9\u5e94\u7684\u5b57\u6bb5\uff0c\u53ef\u4ee5\u901a\u8fc7\u521b\u5efa\u4e00\u4e2a\u5305\u542b DummySampler \u6b65\u9aa4\u7684 jmx \u811a\u672c\uff0c\u4ee5\u6587\u672c\u6a21\u5f0f\u6253\u5f00\u811a\u672c\u5feb\u901f\u83b7\u53d6\u3002

    "},{"location":"automation_plugin_dev/#25","title":"2.5 \u6253\u5305","text":"

    \u589e\u52a0\u4e00\u4e2a\u4e0e\u6253\u5305\u540e\u7684 jar \u5305\u540c\u540d\u7684\u6587\u4ef6 src\\main\\resources\\metersphere-plugin-DummySampler-1.0.0-jar-with-all-dependencies \u6307\u5b9a\u63d2\u4ef6\u5165\u53e3\u3002\u518d\u8865\u5145\u4e00\u4e9b\u5176\u4ed6\u7684\u5fc5\u8981\u5185\u5bb9\u540e\u5c31\u53ef\u4ee5\u6253\u5305\u4e86\u3002

    "},{"location":"automation_plugin_dev/#26","title":"2.6 \u4e0a\u4f20\u6d4b\u8bd5","text":"

    \u6253\u5305\u540e\u5c06\u751f\u6210\u7684 metersphere-plugin-DummySampler-1.0.0-jar-with-all-dependencies.jar \u5728 MeterSphere \u7684\u63d2\u4ef6\u7ba1\u7406\u9875\u9762\u8fdb\u884c\u4e0a\u4f20\uff0c\u4e0a\u4f20\u6210\u529f\u540e\u5c31\u53ef\u4ee5\u5728\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u7f16\u8f91\u65f6\u67e5\u770b\u3001\u4f7f\u7528\u548c\u8c03\u8bd5\u63d2\u4ef6\u63d0\u4f9b\u7684\u8bf7\u6c42\u3002

    "},{"location":"awesome-jmeter/","title":"Awesome jmeter","text":"

    Apache JMeter \u662f\u4e00\u4e2a Java \u8bed\u8a00\u7f16\u5199\u7684\u5f00\u6e90\u6027\u80fd\u6d4b\u8bd5\u5de5\u5177\uff0c\u662f\u76ee\u524d\u6700\u4e3b\u6d41\u7684\u5f00\u6e90\u6027\u80fd\u6d4b\u8bd5\u5de5\u5177\u3002\u672c\u8d44\u6e90\u96c6\u6e90\u81ea awesome-jmeter\uff08CC-BY-4.0 license\uff09\uff0cMeterSphere \u56e2\u961f\u9488\u5bf9\u56fd\u5185\u7528\u6237\u8fdb\u884c\u4e86\u6c49\u5316\u3001\u4f18\u5316\u548c\u8fdb\u4e00\u6b65\u6574\u7406\u3002

    "},{"location":"awesome-jmeter/#1","title":"1 \u5b98\u65b9\u8d44\u6e90","text":"
    • Apache JMeter Project - Apache JMeter \u5b98\u65b9\u7f51\u7ad9
    • GitHub Repository - Apache JMeter GitHub \u4ee3\u7801\u5e93
    • JMeter Wiki - Apache JMeter \u5b98\u65b9\u6587\u6863
    • Issue Tracking - Apache JMeter \u7f3a\u9677\u8ddf\u8e2a\u7cfb\u7edf
    • Mailing Lists - Apache JMeter \u90ae\u4ef6\u5217\u8868
    "},{"location":"awesome-jmeter/#2","title":"2 \u5feb\u901f\u5165\u95e8","text":"
    • The Beginner's Guide to Performance Testing with Apache JMeter
    "},{"location":"awesome-jmeter/#3","title":"3 \u4f7f\u7528\u6559\u7a0b","text":"
    • JMeter Tutorials
    • JMeter Tutorial for Load Testing: The Ultimate Guide
    • RESTful API testing with JMeter
    • JMeter Tutorial - By Guru99
    "},{"location":"awesome-jmeter/#4","title":"4 \u6700\u4f73\u5b9e\u8df5","text":"
    • JMeter \u6700\u4f73\u5b9e\u8df5 - \u5b98\u65b9
    • JMeter \u6700\u4f73\u5b9e\u8df5 - BlazeMeter
    • Concurrent, High Throughput Performance Testing with JMeter
    "},{"location":"awesome-jmeter/#5-scripting","title":"5 Scripting","text":"
    • Beanshell vs JSR223 vs Java JMeter Scripting - Most popular scripting mechanisms performance comparison.
    • Testing with Groovy - Using JMeter and Groovy for load testing.
    "},{"location":"awesome-jmeter/#6","title":"6 \u6301\u7eed\u96c6\u6210","text":"
    • JMeter Ant Task - Ant task to automate running JMeter test plans.
    • JMeter Maven Plugin - Maven plugin that provides the ability to run JMeter tests as part of the build.
    • Jenkins Performance Plugin - Jenkins plugin to capture reports from JMeter and generate graphic charts with the trend report of performance and robustness.
    • Sonar JMeter Plugin - Plugin to collect JMeter performance tests results and display in Sonar dashboard (deprecated).
    "},{"location":"awesome-jmeter/#7","title":"7 \u5206\u5e03\u5f0f\u6d4b\u8bd5","text":"
    • JMeter Distributed Testing Step-by-step
    • JMeter Remote Testing
    • Setting up a JMeter Cluster for web server load testing
    "},{"location":"awesome-jmeter/#8","title":"8 \u5bb9\u5668\u5316","text":"
    • Dockerized JMeter - Distributed load testing workflow with Docker and JMeter.
    • JMeter Docker Images
    • Distributed JMeter testing using Docker
    • A Docker solution to JMeter + InfluxDB + Grafana performance testing
    • AutoMeter - An automation tool for scaling load tests using distributed slaves, based on JMeter master-slave architecture.
    "},{"location":"awesome-jmeter/#9","title":"9 \u4e0e\u516c\u6709\u4e91\u96c6\u6210","text":"
    • Amazon Web Services
      • jmeter-ec2 - Automates running Apache JMeter on Amazon EC2.
      • gee - A modified version of JMeter-EC2 project.
      • os-jmeter-aws - Run JMeter on multiple AWS instances, view results in ELK.
      • Load Testing with JMeter and Amazon EC2
      • Performance Testing in the Cloud with JMeter & AWS
      • JMeter distributed testing with Amazon EC2
    • Microsoft Azures
      • Load Testing Pipeline with JMeter, ACI and Terraform - Scalable cloud load/stress testing pipeline solution with Apache JMeter and Terraform to dynamically provision and destroy the required infrastructure on Azure.
    "},{"location":"awesome-jmeter/#10","title":"10 \u7ed3\u679c\u5904\u7406\u548c\u53ef\u89c6\u5316","text":"
    • JMeter Report Dashboard - JMeter supports dashboard report generation to get graphs and statistics from a test plan.
    • JMeter Log Analysis - Suggestions and recipes for JMeter log analysis.
    • Analyzing JMeter Results
    • JMeter Result Analysis: The Ultimate Guide
    • BlazeMeter Sense - Service for storing and analysing performance test results.
    • JAnalyser - Browser-based results analysis tool.
    • JMeter Result Analysis Plugin - Maven plugin that parses JMeter test results and generates detailed reports with charts.
    • JMeter Results Analyser - Web-based application for collating, analysing and reporting JMeter test results.
    • DB Results Collectors
      • JMeter MySQLCollector Plugin - Patch to configure listener to log into MySQL database.
    • InfluxDB & Grafana
      • Using JMeter with InfluxDB & Grafana - Collection of guides to collect and visualize real-time test-results and server monitoring stats using InfluxDB & Grafana.
      • How to Use Grafana to Monitor JMeter Non-GUI Results
    • Grafana Dashboards
      • JMeter Load Test Dashboard - Grafana dashboard shows live load test metrics provided by JMeter (by NovaTec-APM).
      • JMeter Dashboard using Core InfluxdbBackendListenerClient - Monitor your Apache JMeter load test in real time with InfluxDB and Grafana (by Philippe M).
      • JMeter Dashboard (3.2 and up) - Monitor JMeter load test in real time with InfluxDB and Grafana (by adrianbanu).
      • JMeter (via prometheus exporter) - A Grafana dashboard to inspect JMeter metrics via Prometheus exporter (by chiabre).
      • JMeter-InfluxBD-Writer Plugin - JMeter plugin to write load test data on-the-fly into InfluxDB.
      • JMeter Results to InfluxDB - Read JMeter results from csv file and put into InfluxDB database.
    • ELK Stack
      • Using ELK - Using Elasticsearch, Logstash, and Kibana to visualize JMeter test results.
      • JMeter + ElasticSearch Live Monitoring - Using the ElasticSearch Backend listener and Grafana/Kibana to monitor results in realtime.
    • Prometheus
      • jmeter-prometheus-plugin - A Prometheus Listener for Apache JMeter that exposes results in HTTP API.
    • Backend Listener Implementations
      • jmeter-elasticsearch-backend-listener - JMeter plugin to send test results to an ElasticSearch engine.
      • jmeter-backend-azure - JMeter plugin to send test results to Azure Application Insights.
      • jmeter-backend-listener-kafka - JMeter plugin to send test results to a Kafka server.
      • jmeter-listener - JMeter plugin to write load test data on-the-fly to ClickHouse, InfluxDB, ElasticSearch.
    "},{"location":"awesome-jmeter/#11-streaming-protocols","title":"11 Streaming Protocols","text":"
    • Easy and realistic Load Testing of HTTP Live Streaming (HLS) with Apache JMeter
    • Using JMeter to Load Test Live HLS Concurrency of Wowza Streaming Engine
    • Load testing HLS with Ruby JMeter
    • Media Live Streaming Load Testing with JMeter - Collection of articles by BlazeMeter (HLS, RTMP, WS, podcasts, etc.).
    • HLS JMeter Plugin
    "},{"location":"awesome-jmeter/#12-mobile-apps","title":"12 Mobile Apps","text":"
    • Record iOS application HTTP requests
    • Load Testing Mobile Apps Made Easy
    • Performance Testing for Native Mobile Apps
    "},{"location":"awesome-jmeter/#13-plugins","title":"13 Plugins \u5217\u8868\u3001\u4e8c\u6b21\u5f00\u53d1","text":"
    • JMeter Plugins list - List of available plugins and extensions.
    • JMeter Plugins - Independent set of plugins for Apache JMeter, with plugin manager references many plugins and simplifies installation.
    • Ubik Load Pack - Productivity extensions for Apache JMeter.
    • JMeter Developer Manual
    • How to write a plugin for JMeter
    • How to build a JMeter plugin utilising groovy
    • How to create a plugin in JMeter
    • Custom JMeter Samplers and Config Elements
    • Implement Custom JMeter Samplers
    "},{"location":"awesome-jmeter/#14-ide","title":"14 IDE \u96c6\u6210","text":"
    • Intellij IDEA IDE Plugin - Create run configurations and run JMeter tests from Intellij IDEA.
    • JMeter + Eclipse HOWTO - Develop the JMeter project with Eclipse IDE.
    "},{"location":"awesome-jmeter/#15","title":"15 \u76f8\u5173\u4e66\u7c4d","text":"
    • JMeter \u6027\u80fd\u6d4b\u8bd5\u5b9e\u6218 \u7b2c2\u7248
    "},{"location":"awesome-jmeter/#16","title":"16 \u57f9\u8bad\u8bfe\u7a0b","text":"
    • \u6781\u5ba2\u65f6\u95f4\uff1a\u6027\u80fd\u6d4b\u8bd5\u5b9e\u6218 30 \u8bb2
    • JMeter: Performance and Load Testing - By LinkedIn Learning.
    • BlazeMeter University - By BlazeMeter.
    • Apache JMeter Testing Courses - By QAInsights.
    "},{"location":"awesome-jmeter/#17","title":"17 \u76f8\u5173\u535a\u5ba2","text":"
    • BlazeMeter Blog - BlazeMeter blog about JMeter and performance testing.
    • Flood.io Blog - Load testing thoughts, stories and ideas from Flood IO.
    • JMeter Blog - Another blog for performance & automation testing using JMeter.
    "},{"location":"dev_manual/","title":"\u5f00\u53d1\u73af\u5883\u642d\u5efa","text":""},{"location":"dev_manual/#1","title":"1 \u9879\u76ee\u7ed3\u6784","text":"
    .\n\u251c\u2500\u2500 Jenkinsfile                                     # \u6784\u5efaJAR\u5305\u4f7f\u7528\u7684 jenkinsfile\n\u251c\u2500\u2500 LICENSE\n\u251c\u2500\u2500 OWNERS\n\u251c\u2500\u2500 README.md                                       # \u9879\u76ee\u4e2d\u6587\u4ecb\u7ecd\n\u251c\u2500\u2500 README-EN.md                                    # \u9879\u76ee\u82f1\u6587\u4ecb\u7ecd\n\u251c\u2500\u2500 SECURITY.md                                     # \u5b89\u5168\u8bf4\u660e\n\u251c\u2500\u2500 CODE_OF_CONDUCT.md                        \n\u251c\u2500\u2500 CONTRIBUTING.md \n\u251c\u2500\u2500 build.md                                        # \u6784\u5efa\u8fc7\u7a0b\n\u251c\u2500\u2500framework                                          \n\u2502\u00a0\u00a0 \u251c\u2500\u2500 eureka                                       # \u670d\u52a1\u6ce8\u518c\u4e2d\u5fc3\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 gateway                                      # API \u7f51\u5173\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 sdk-parent                                   # SDK\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 .gitignore                                    \n\u2502\u00a0\u00a0 \u2514\u2500\u2500 pom                                          # \u4e3b\u6846\u67b6\u7684 pom \u6587\u4ef6           \n\u251c\u2500\u2500test-track                                        # \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 backend                                      # \u540e\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 frontend                                     # \u524d\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Dockerfile                                   # \u6784\u5efa\u5bb9\u5668\u955c\u50cf\u4f7f\u7528\u7684 dockerfile\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 pom                                          # \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\u4f7f\u7528\u7684 pom \u6587\u4ef6   \n\u251c\u2500\u2500 api-test                                         # \u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 backend                                      # \u540e\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 frontend                                     # \u524d\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Dockerfile                                   # \u6784\u5efa\u5bb9\u5668\u955c\u50cf\u4f7f\u7528\u7684 dockerfile\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 pom                                          # \u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\u4f7f\u7528\u7684 pom \u6587\u4ef6\n\u251c\u2500\u2500 performance-test                                 # \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 backend                                      # \u540e\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 frontend                                     # \u524d\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Dockerfile                                   # \u6784\u5efa\u5bb9\u5668\u955c\u50cf\u4f7f\u7528\u7684 dockerfile\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 pom                                          # \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\u4f7f\u7528\u7684 pom \u6587\u4ef6\n\u251c\u2500\u2500 report-stat                                      # \u62a5\u8868\u7edf\u8ba1\u6a21\u5757\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 backend                                      # \u540e\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 frontend                                     # \u524d\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Dockerfile                                   # \u6784\u5efa\u5bb9\u5668\u955c\u50cf\u4f7f\u7528\u7684 dockerfile\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 pom                                          # \u62a5\u8868\u7edf\u8ba1\u6a21\u5757\u4f7f\u7528\u7684 pom \u6587\u4ef6  \n\u251c\u2500\u2500 project-management                               # \u9879\u76ee\u7ba1\u7406\u6a21\u5757\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 backend                                      # \u540e\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 frontend                                     # \u524d\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Dockerfile                                   # \u6784\u5efa\u5bb9\u5668\u955c\u50cf\u4f7f\u7528\u7684 dockerfile\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 pom                                          # \u9879\u76ee\u7ba1\u7406\u6a21\u5757\u4f7f\u7528\u7684 pom \u6587\u4ef6 \n\u251c\u2500\u2500 system-setting                                   # \u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 backend                                      # \u540e\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 frontend                                     # \u524d\u7aef\u4ee3\u7801\u76ee\u5f55\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Dockerfile                                   # \u6784\u5efa\u5bb9\u5668\u955c\u50cf\u4f7f\u7528\u7684 dockerfile\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 pom                                          # \u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\u4f7f\u7528\u7684 pom \u6587\u4ef6\n\u251c\u2500\u2500 .gitignore\n\u251c\u2500\u2500 .gitmodules\n\u2514\u2500\u2500 pom.xml                                         # \u6574\u4f53 maven \u9879\u76ee\u4f7f\u7528\u7684 pom \u6587\u4ef6\n
    "},{"location":"dev_manual/#2","title":"2 \u914d\u7f6e\u5f00\u53d1\u73af\u5883","text":""},{"location":"dev_manual/#21","title":"2.1 \u62c9\u53d6\u4ee3\u7801","text":"

    \u9700\u8981\u62c9\u53d6 metersphere \u670d\u52a1\u4ee3\u7801\uff0c\u5e76\u5207\u6362\u5230 v2.10 \u5206\u652f\u3002

    "},{"location":"dev_manual/#22","title":"2.2 \u540e\u7aef","text":"

    \u5728\u542f\u52a8 MeterSphere \u670d\u52a1\u4e4b\u524d\u8981\u5148\u542f\u52a8 Mysql\u3001Redis\u3001Kafka\u3001Minio \u7b49\u670d\u52a1\u3002 MeterSphere \u540e\u7aef\u4f7f\u7528\u4e86 Java \u8bed\u8a00\u7684 Spring Cloud \u6846\u67b6\uff0c\u5e76\u4f7f\u7528 Maven \u4f5c\u4e3a\u9879\u76ee\u7ba1\u7406\u5de5\u5177\u3002\u5f00\u53d1\u8005\u9700\u8981\u5148\u5728\u5f00\u53d1\u73af\u5883\u4e2d\u5b89\u88c5 JDK 17 \u53ca Maven\u3002

    • \u521d\u59cb\u5316\u914d\u7f6e \uff081\uff09\u6570\u636e\u5e93\u521d\u59cb\u5316 MeterSphere \u4f7f\u7528 MySQL \u6570\u636e\u5e93 v8 \u7248\u672c\u3002\u540c\u65f6 MeterSphere \u5bf9\u6570\u636e\u5e93\u90e8\u5206\u914d\u7f6e\u9879\u6709\u8981\u6c42\uff0c\u8bf7\u53c2\u8003\u4e0b\u9644\u7684\u6570\u636e\u5e93\u914d\u7f6e\uff0c\u4fee\u6539\u5f00\u53d1\u73af\u5883\u4e2d\u7684\u6570\u636e\u5e93\u914d\u7f6e\u6587\u4ef6\u3002
    [mysqld]\ndatadir=/var/lib/mysql\n\ndefault-storage-engine=INNODB\ncharacter_set_server=utf8mb4\nlower_case_table_names=1\nperformance_schema=off\ntable_open_cache=128\ntransaction_isolation=READ-COMMITTED\nmax_connections=1000\nmax_connect_errors=6000\nmax_allowed_packet=64M\ninnodb_file_per_table=1\ninnodb_buffer_pool_size=512M\ninnodb_flush_method=O_DIRECT\ninnodb_lock_wait_timeout=1800\n\nserver-id=1\nlog-bin=mysql-bin\nexpire_logs_days = 2\nbinlog_format=mixed\n\ncharacter-set-client-handshake = FALSE\ncharacter-set-server=utf8mb4\ncollation-server=utf8mb4_general_ci\ninit_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci'\n\nsql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\n\nskip-name-resolve\n\n[mysql]\ndefault-character-set=utf8mb4\n\n[mysql.server]\ndefault-character-set=utf8mb4\n

    \u8bf7\u53c2\u8003\u6587\u6863\u4e2d\u7684\u5efa\u5e93\u8bed\u53e5\u521b\u5efa MeterSphere \u4f7f\u7528\u7684\u6570\u636e\u5e93\uff0cMeterSphere \u670d\u52a1\u542f\u52a8\u65f6\u4f1a\u81ea\u52a8\u5728\u914d\u7f6e\u7684\u5e93\u4e2d\u521b\u5efa\u6240\u9700\u7684\u8868\u7ed3\u6784\u53ca\u521d\u59cb\u5316\u6570\u636e\u3002

    CREATE DATABASE metersphere_dev /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci *//*!80016 DEFAULT ENCRYPTION='N'*/;\n

    \uff082\uff09MeterSphere \u914d\u7f6e\u6587\u4ef6 MeterSphere \u4f1a\u9ed8\u8ba4\u52a0\u8f7d\u8be5\u8def\u5f84\u4e0b\u7684\u914d\u7f6e\u6587\u4ef6 /opt/metersphere/conf/metersphere.properties\uff0c\u8bf7\u53c2\u8003\u4e0b\u5217\u914d\u7f6e\u521b\u5efa\u5bf9\u5e94\u76ee\u5f55\u53ca\u914d\u7f6e\u6587\u4ef6\u3002

    # eureka \u914d\u7f6e\neureka.client.service-url.defaultZone=http://localhost:8761/eureka/\n\n\n# \u6570\u636e\u5e93\u914d\u7f6e\nspring.datasource.url=jdbc:mysql://localhost:3306/metersphere_dev?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false\nspring.datasource.username=root\nspring.datasource.password=Password123@mysql\n\n\n# kafka \u914d\u7f6e\uff0cnode-controller \u4ee5\u53ca data-streaming \u670d\u52a1\u9700\u8981\u4f7f\u7528 kafka \u8fdb\u884c\u6d4b\u8bd5\u7ed3\u679c\u7684\u6536\u96c6\u548c\u5904\u7406\nkafka.partitions=1\nkafka.replicas=1\nkafka.topic=JMETER_METRICS\nkafka.test.topic=JMETER_TESTS\nkafka.bootstrap-servers=127.0.0.1:9092\nkafka.log.topic=JMETER_LOGS\nkafka.report.topic=JMETER_REPORT\n\n# node-controller \u6240\u4f7f\u7528\u7684 jmeter \u955c\u50cf\u7248\u672c\njmeter.image=registry.cn-qingdao.aliyuncs.com/metersphere/jmeter-master:5.5-ms7-jdk17\n\n# TCP Mock \u7aef\u53e3\u8303\u56f4\ntcp.mock.port=10000-10010\n\n# Redis \u914d\u7f6e\nspring.redis.host=localhost\nspring.session.store-type=redis\nspring.redis.port=6379\nspring.redis.password=Password123@redis\n\n\n# \u542f\u52a8\u6a21\u5f0f\uff0clcoal \u8868\u793a\u4ee5\u672c\u5730\u5f00\u53d1\u6a21\u5f0f\u542f\u52a8\nrun.mode=local\n\n# minio \u914d\u7f6e\nminio.endpoint=http://localhost:9000\nminio.accessKey=admin\nminio.secretKey=Password123@minio\n\n## CAS\n#cas.client.name=MS_SERVER\n## CAS SERVER URL\n#cas.server.url=http://xxx/cas\n## METERSPHERE SERVER URL\n#cas.client.url=http://IP:8081                          \n

    \uff083\uff09Redis \u914d\u7f6e\u6587\u4ef6 MeterSphere \u4f1a\u9ed8\u8ba4\u52a0\u8f7d\u8be5\u8def\u5f84\u4e0b\u7684\u914d\u7f6e\u6587\u4ef6 /opt/metersphere/conf/redisson.yml\uff0c\u8bf7\u53c2\u8003\u4e0b\u5217\u914d\u7f6e\u521b\u5efa\u5bf9\u5e94\u76ee\u5f55\u53ca\u914d\u7f6e\u6587\u4ef6\u3002

    # Redis \u914d\u7f6e\nsingleServerConfig:\npassword: Password123@redis\naddress: \"redis://localhost:6379\"\ndatabase: 1\n

    \uff084\uff09\u9879\u76ee\u6253\u5305

    \u5728\u9879\u76ee\u6839\u76ee\u5f55\u4e0b\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4

    1. \u4f9d\u8d56\u6253\u5305\n# parent pom \u5b89\u88c5\u5230\u672c\u5730\u4ed3\u5e93, sdk \u4e5f\u8fdb\u884c\u5b89\u88c5\n./mvnw install -N\n./mvnw clean install -pl framework,framework/sdk-parent,framework/sdk-parent/domain,framework/sdk-parent/sdk,framework/sdk-parent/xpack-interface,framework/sdk-parent/jmeter\n\n#  \u5982\u679c\u662f\u4f01\u4e1a\u7248\u672c \u9700\u8981\u52a0\u4e0a  framework/sdk-parent/xpack-interface\n\n2. \u6574\u4f53\u6253\u5305\n./mvnw clean package\n

    • \u542f\u52a8\u987a\u5e8f \u5148\u542f\u52a8 eureka \u670d\u52a1\uff0c\u518d\u542f\u52a8 system-setting\uff0c\u5230\u8fd9\u4e00\u6b65\u53ef\u4ee5\u542f\u52a8\u6210\u529f\uff0c\u53ef\u4ee5\u8bbf\u95ee\u9875\u9762\u4e86\u3002

    \u5982\u679c\u8981\u8fdb\u884c\u591a\u6a21\u5757\u8054\u8c03\u7684\u8bdd\u9700\u8981\u542f\u52a8 gateway \u548c\u5176\u4ed6\u670d\u52a1\uff0c\u53ef\u4ee5\u901a\u8fc7 eureka \u67e5\u770b\u670d\u52a1\u4fe1\u606f\uff0c\u6ce8\u518c\u6210\u529f\uff0c\u5c31\u53ef\u4ee5\u591a\u6a21\u5757\u8054\u8c03\u4e86\u3002

    • \u542f\u52a8 \u8fd0\u884c\u67d0\u4e00\u6a21\u5757\uff0c\u6bd4\u5982 \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\uff08test-track\uff09,\u9009\u62e9 test-track \u7684 Spring Boot \u542f\u52a8\u9879\uff0c\u76f4\u63a5\u542f\u52a8\u5373\u53ef\u3002
    "},{"location":"dev_manual/#23","title":"2.3 \u524d\u7aef","text":"

    MeterSphere \u524d\u7aef\u4f7f\u7528\u4e86 Vue.js \u4f5c\u4e3a\u524d\u7aef\u6846\u67b6\uff0cElementUI \u4f5c\u4e3a UI \u6846\u67b6\uff0c\u5e76\u4f7f\u7528 npm \u4f5c\u4e3a\u5305\u7ba1\u7406\u5de5\u5177\u3002\u5f00\u53d1\u8005\u8bf7\u5148\u4e0b\u8f7d Node.js \u4f5c\u4e3a\u8fd0\u884c\u73af\u5883\uff0cIDEA \u7528\u6237\u5efa\u8bae\u5b89\u88c5 Vue.js \u63d2\u4ef6\uff0c\u4fbf\u4e8e\u5f00\u53d1\u3002

    • \u521d\u59cb\u5316\u914d\u7f6e \u8fdb\u5165 metersphere-server/test-track/frontend/ \u76ee\u5f55\uff0c\u6267\u884c\u547d\u4ee4npm install\u5b89\u88c5\u76f8\u5173\u524d\u7aef\u7ec4\u4ef6\u3002
    • \u8fd0\u884c\u524d\u7aef\u670d\u52a1 \u8fdb\u5165\u5230 metersphere-server/test-track/frontend/ \u76ee\u5f55\uff0c\u6267\u884c\u547d\u4ee4npm run track\uff08\u5176\u4ed6\u5fae\u670d\u52a1\u53c2\u8003\u5fae\u670d\u52a1\u76ee\u5f55\u4e0b\u5bf9\u5e94\u7684 package.json\uff09\u542f\u52a8\u524d\u7aef\u670d\u52a1\u3002
    "},{"location":"enterprise/","title":"Enterprise","text":"
    • \u7533\u8bf7\u4f01\u4e1a\u7248\u8bd5\u7528

    \u6ce8: \u4f01\u4e1a\u7248\u652f\u6301\u79bb\u7ebf\u5b89\u88c5\uff0c\u7533\u8bf7\u901a\u8fc7\u540e\u4f1a\u63d0\u4f9b\u9ad8\u901f\u4e0b\u8f7d\u94fe\u63a5\u3002

    "},{"location":"system_arch/","title":"\u7cfb\u7edf\u67b6\u6784","text":""},{"location":"system_arch/#1","title":"1 \u6574\u4f53\u67b6\u6784","text":"

    \u7ec4\u4ef6\u8bf4\u660e

    • Chrome \u6d4f\u89c8\u5668\u5f55\u5236\u63d2\u4ef6: \u5f55\u5236 Web \u8bbf\u95ee\u8bf7\u6c42\u751f\u6210 JMeter \u811a\u672c\u5e76\u5bfc\u5165\u5230 MeterSphere \u4e2d\u7528\u4e8e\u63a5\u53e3\u6d4b\u8bd5\u53ca\u6027\u80fd\u6d4b\u8bd5\u3002
    • Jenkins \u63d2\u4ef6: \u5728 Jenkins \u4e2d\u5b89\u88c5\u8be5\u63d2\u4ef6\u540e\u53ef\u5c06 Jenkins \u4efb\u52a1\u4e2d\u6dfb\u52a0 MeterSphere \u6784\u5efa\u73af\u8282,\u7528\u6237\u5728\u8be5\u6784\u5efa\u73af\u8282\u4e2d\u914d\u7f6e MeterSphere \u5e73\u53f0\u7684\u8ba4\u8bc1\u4fe1\u606f\u540e,\u53ef\u9009\u62e9\u6307\u5b9a\u9879\u76ee\u4e0b\u7684\u63a5\u53e3/\u6027\u80fd\u6d4b\u8bd5\u8fdb\u884c\u89e6\u53d1\u6267\u884c\u3002
    • IDEA \u63d2\u4ef6: IDEA \u63d2\u4ef6,\u57fa\u4e8ejavadoc\u89e3\u6790,\u80fd\u591f\u81ea\u52a8\u8bc6\u522b\u7c7b,\u540c\u6b65\u63a5\u53e3\u5b9a\u4e49\u5230 MeterSphere\u3002
    • GateWay: API \u7f51\u5173\u9879\u76ee\u3002
    • Eureka: \u670d\u52a1\u6ce8\u518c\u4e2d\u5fc3\u3002
    • \u5de5\u4f5c\u53f0: MeterSphere \u9879\u76ee\u7684\u5de5\u4f5c\u53f0\u6a21\u5757\u3002
    • \u9879\u76ee\u8bbe\u7f6e: MeterSphere \u9879\u76ee\u7684\u9879\u76ee\u8bbe\u7f6e\u6a21\u5757\u3002
    • \u6d4b\u8bd5\u8ddf\u8e2a: MeterSphere \u9879\u76ee\u7684\u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\u3002
    • \u63a5\u53e3\u6d4b\u8bd5: MeterSphere \u9879\u76ee\u7684\u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\u3002
    • UI \u6d4b\u8bd5: MeterSphere \u9879\u76ee\u7684UI \u6d4b\u8bd5\u6a21\u5757\u3002
    • \u6027\u80fd\u6d4b\u8bd5: MeterSphere \u9879\u76ee\u7684\u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\u3002
    • \u7cfb\u7edf\u8bbe\u7f6e: MeterSphere \u9879\u76ee\u7684\u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\u3002
    • \u62a5\u544a\u7edf\u8ba1: MeterSphere \u9879\u76ee\u7684\u62a5\u544a\u7edf\u8ba1\u6a21\u5757\u3002
    • Node Controller: \u4e3a\u63a5\u53e3\u6216\u8005\u6027\u80fd\u6d4b\u8bd5\u63d0\u4f9b\u72ec\u7acb\u8282\u70b9\u7c7b\u578b\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\u3002
    • MySQL: MeterSphere \u9879\u76ee\u7684\u4e3b\u8981\u6570\u636e\u5747\u5b58\u50a8\u5728 MySQL\u3002
    • Redis: MeterSphere \u9879\u76ee\u767b\u5f55\u7528\u6237\u7684 Session \u548c\u4efb\u52a1\u961f\u5217\u4fe1\u606f\u5b58\u50a8\u5728 Redis\u3002
    • Minio: MeterSphere \u9879\u76ee\u7684\u5206\u5e03\u5f0f\u5bf9\u8c61\u5b58\u50a8\u6a21\u5757\u3002
    • Kafka: \u63a5\u6536 JMeter \u4ea7\u751f\u7684\u63a5\u53e3\u6d4b\u8bd5\u6216\u8005\u6027\u80fd\u6d4b\u8bd5\u7684\u7ed3\u679c\u6570\u636e\u3002
    • Prometheus: \u6536\u96c6\u538b\u529b\u673a\u53ca\u88ab\u6d4b\u7cfb\u7edf\u7684\u76d1\u63a7\u6570\u636e\u3002
    • Data Streaming: \u4ece Kafka \u4e2d\u83b7\u53d6\u63a5\u53e3\u6d4b\u8bd5\u6216\u8005\u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u8fdb\u884c\u5904\u7406\u540e\u5b58\u5165 MySQL \u6570\u636e\u5e93\u3002
    • Docker Engine: \u4e3a Node Controller \u63d0\u4f9b JMeter \u5bb9\u5668\u8fd0\u884c\u73af\u5883\u3002
    • Selenium Grid: \u4e3a UI\u81ea\u52a8\u5316\u6d4b\u8bd5\u63d0\u4f9b\u8fd0\u884c\u73af\u5883,\u652f\u6301\u5206\u5e03\u5f0f\u62d3\u5c55\u3002

    \u5404\u4e2a\u7ec4\u4ef6\u95f4\u7684\u5173\u7cfb\u53ef\u53c2\u8003\u4e0b\u56fe\uff1a

    "},{"location":"system_arch/#2","title":"2 \u7ba1\u7406\u6a21\u578b","text":"

    MeterSphere \u63d0\u4f9b\u4e86\u591a\u79df\u6237\u3001\u591a\u89d2\u8272\u7684\u7ba1\u7406\u6a21\u578b, \u7528\u6237\u53ef\u6839\u636e\u6240\u5728\u56e2\u961f\u7684\u5b9e\u9645\u60c5\u51b5\u8fdb\u884c\u7075\u6d3b\u7684\u79df\u6237\u4f53\u7cfb\u6620\u5c04\u3002

    • \u7cfb\u7edf: \u6bcf\u4e2a\u72ec\u7acb\u90e8\u7f72\u7684 MeterSphere \u5373\u79f0\u4e3a\u4e00\u5957\u7cfb\u7edf\u3002
    • \u7cfb\u7edf\u7ea7\u89d2\u8272: \u89d2\u8272\u7684\u6743\u9650\u8303\u56f4\u4e3a\u6574\u4e2a\u7cfb\u7edf, \u5e38\u89c1\u7684\u89d2\u8272\u5982\u7cfb\u7edf\u7ba1\u7406\u5458, \u53ef\u7ba1\u7406\u6574\u4e2a\u7cfb\u7edf\u5185\u7684\u79df\u6237\u3001\u7528\u6237\u53ca\u6d4b\u8bd5\u8d44\u6e90, \u540c\u65f6\u53ef\u53d8\u66f4\u4fee\u6539\u7cfb\u7edf\u7ea7\u914d\u7f6e\u53c2\u6570\u3002
    • \u5de5\u4f5c\u7a7a\u95f4: MeterSphere \u4e2d\u7684\u4e00\u7ea7\u79df\u6237, \u53ef\u6620\u5c04\u4e3a\u4e0d\u540c\u7684\u90e8\u95e8\u6216\u8005\u4ea7\u54c1\u7ebf\u3002
    • \u5de5\u4f5c\u7a7a\u95f4\u7ea7\u89d2\u8272: \u89d2\u8272\u7684\u6743\u9650\u8303\u56f4\u9650\u5b9a\u5728\u67d0\u4e2a\u5de5\u4f5c\u7a7a\u95f4\u5f53\u4e2d, \u5e38\u89c1\u7684\u89d2\u8272\u5982\u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406\u5458\u53ca\u666e\u901a\u7528\u6237, \u53ef\u5728\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u521b\u5efa\u9879\u76ee\u3001\u53d1\u8d77\u6d4b\u8bd5\u3001\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u7b49\u3002
    • \u9879\u76ee: \u4ee5\u9879\u76ee\u7eac\u5ea6\u7ba1\u7406\u5404\u79cd\u7c7b\u578b\u6d4b\u8bd5\u6570\u636e\uff0c\u5404\u4e2a\u9879\u76ee\u95f4\u6570\u636e\u9694\u79bb\u3002
    • \u9879\u76ee\u7ea7\u89d2\u8272: \u89d2\u8272\u7684\u6743\u9650\u8303\u56f4\u9650\u5b9a\u5728\u67d0\u4e2a\u9879\u76ee\u5f53\u4e2d, \u5e38\u89c1\u7684\u89d2\u8272\u5982\u9879\u76ee\u7ba1\u7406\u5458\u3001\u9879\u76ee\u6210\u5458\u3001\u53ea\u8bfb\u7528\u6237\u7b49\uff0c\u53ef\u5728\u9879\u76ee\u4e2d\u521b\u5efa\u3001\u4fee\u6539\u3001\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\u3001\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3001\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3001\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3001\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u7b49\u3002
    • \u81ea\u5b9a\u4e49\u89d2\u8272: \u53ef\u521b\u5efa\u4e0d\u540c\u6240\u5c5e\u7c7b\u578b\u7684\u81ea\u5b9a\u4e49\u89d2\u8272\uff0c\u6ee1\u8db3\u66f4\u591a\u6837\u5316\u7684\u56e2\u961f\u7ba1\u7406\u53ca\u5728\u7ebf\u534f\u4f5c\u3002

    "},{"location":"system_arch/#3","title":"3 \u6280\u672f\u6808","text":"
    • \u540e\u7aef: Spring Cloud
    • \u524d\u7aef: Vue.js
    • \u4e2d\u95f4\u4ef6: MySQL, Kafka, Redis, Minio, Prometheus
    • \u57fa\u7840\u8bbe\u65bd: Docker, Kubernetes
    • \u6d4b\u8bd5\u5f15\u64ce: JMeter
    "},{"location":"about/changelog/","title":"\u66f4\u65b0\u65e5\u5fd7","text":""},{"location":"about/changelog/#_2","title":"\u7248\u672c\u8bf4\u660e","text":"

    MeterSphere \u7248\u672c\u53f7\u547d\u540d\u89c4\u5219\u4e3a\uff1a v \u5927\u7248\u672c\u53f7.\u529f\u80fd\u7248\u672c\u53f7.\u4fee\u590d\u7248\u672c\u53f7\uff0cMeterSphere \u6309\u6708\u8fed\u4ee3\u53d1\u5e03\u529f\u80fd\u7248\u672c\uff0c\u5e76\u6309\u5e74\u53d1\u5e03 LTS\uff08Long Term Support\uff09\u7248\u672c\uff0c\u76ee\u524d\u5df2\u7ecf\u53d1\u5e03\u4e86\u4e09\u4e2a LTS \u7248\u672c\uff1a

    • v1.10-lts\uff1a\u53d1\u5e03\u65f6\u95f4\u4e3a 2021 \u5e74 5 \u6708 27 \u65e5\uff0c\u76ee\u524d\u5df2\u7ecf\u505c\u6b62\u7ef4\u62a4\u3002
    • v1.20-lts\uff1a\u53d1\u5e03\u65f6\u95f4\u4e3a 2022 \u5e74 4 \u6708 27 \u65e5\uff0c\u76ee\u524d\u4ec5\u8fdb\u884c\u5fc5\u8981\u7684\u5b89\u5168\u7c7b Bug \u4fee\u590d\u548c\u4e25\u91cd Bug \u4fee\u590d\u3002
    • v2.10-lts\uff1a\u53d1\u5e03\u65f6\u95f4\u4e3a 2023 \u5e74 5 \u6708 25 \u65e5\uff0c\u6bcf\u6708\u53d1\u5e03\u5c0f\u7248\u672c\uff0c\u6301\u7eed\u8fdb\u884c Bug \u4fee\u590d\u548c\u90e8\u5206\u529f\u80fd\u7684\u6709\u9650\u4f18\u5316\u3002
    "},{"location":"about/changelog/#v21020-lts","title":"v2.10.20-lts","text":"

    2024\u5e749\u670830\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u65b0\u589e\u529f\u80fd

    • feat: \u652f\u6301\u4f01\u4e1a\u5fae\u4fe1\u3001\u9489\u9489\u3001\u98de\u4e66\u626b\u7801\u767b\u5f55\u529f\u80fd\uff08X-Pack\u589e\u5f3a\u5305\uff09
    • feat: \u652f\u6301\u81ea\u5b9a\u4e49\u4e0a\u4f20\u6587\u4ef6\u5927\u5c0f\u9650\u5236

    \u529f\u80fd\u4f18\u5316

    • refactor: \u652f\u6301\u670d\u52a1\u96c6\u6210\u63d2\u4ef6\u83b7\u53d6\u300c\u4e2a\u4eba\u4fe1\u606f\u300d\u76f8\u5173\u8ba4\u8bc1\u4fe1\u606f
    • refactor: \u7b2c\u4e09\u65b9\u8ba4\u8bc1\u540e\u9875\u9762\u8df3\u8f6c\u4f18\u5316

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u56de\u6536\u7ad9\u4e2d\u7684\u6d4b\u8bd5\u7528\u4f8b\u65e0\u6cd5\u6062\u590d\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u5168\u9009\u5e76\u884c\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u6027\u80fd\u6d4b\u8bd5\u90e8\u7f72\u591a\u4e2a\u8282\u70b9\u65f6\u51fa\u73b0time sync \u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u56e0\u7528\u6237\u5220\u9664\u5bfc\u81f4\u9875\u9762\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u8def\u5f84\u5339\u914d\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dSwagger\u5bfc\u5165\u65f6\u90e8\u5206\u9ed8\u8ba4\u503c\u672a\u5bfc\u5165\u7684\u95ee\u9898
    • fix(\u9879\u76ee\u7ba1\u7406): \u4fee\u590d\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u6267\u884c\u7b2c\u4e09\u65b9jar\u5305\u5931\u8d25\u7684\u7f3a\u9677
    • fix(\u5de5\u4f5c\u53f0): \u4fee\u590d\u4e00\u952e\u540c\u6b65\u5f85\u66f4\u65b0\u6309\u94ae\u63d0\u793a\u4fe1\u606f\u9519\u8bef\u95ee\u9898
    "},{"location":"about/changelog/#v21019-lts","title":"v2.10.19-lts","text":"

    2024\u5e748\u670826\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u95ee\u9898\u4fee\u590d

    • fix: \u4fee\u590d\u963f\u91cc\u4e91\u626b\u63cf\u6f0f\u6d1e Spring Framework ETags \u89e3\u6790\u62d2\u7edd\u670d\u52a1\u6f0f\u6d1e\uff08CVE-2024-38809\uff09#32822
    "},{"location":"about/changelog/#v21018-lts","title":"v2.10.18-lts","text":"

    2024\u5e748\u670823\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • feat: \u652f\u6301\u7528\u6237\u8bbe\u7f6e\u9ed8\u8ba4\u8bed\u8a00 in #32516
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u5220\u9664\u8bc4\u5ba1\u540e\u5237\u65b0\u8bc4\u5ba1\u4e2d\u7528\u4f8b\u7684\u72b6\u6001 in #32734
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ddf\u8e2a\u524d\u7aef\u6784\u5efa\u62a5\u9519 in #32779
    • refactor(\u529f\u80fd\u7528\u4f8b): \u7528\u4f8b\u8be6\u60c5\u5bcc\u6587\u672c\u6846\u81ea\u5b9a\u4e49\u5b57\u6bb5\uff0c\u4ece\u53f3\u4fa7\u57fa\u7840\u4fe1\u606f\u79fb\u5230\u5de6\u4fa7 in #32775
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u5faa\u73af\u4f9d\u8d56\u63d0\u793a\u4f18\u5316 in #32777

    \u95ee\u9898\u4fee\u590d

    • fix: \u4fee\u590d\u4e32\u884c\u961f\u5217\u7279\u6b8a\u60c5\u51b5\u91cd\u590d\u6267\u884c\u95ee\u9898 in #32440
    • fix: \u4fee\u590dK8s\u6267\u884c pod \u8fc7\u6ee4\u9519\u8bef in #32442
    • fix: \u4fee\u590d\u914d\u7f6e\u591a\u6570\u636e\u6e90\u7684\u95ee\u9898 in #32564
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u7528\u4f8b\u96c6\u5408\u62a5\u544a\u67e5\u770b\u8be6\u60c5\u62a5\u9519\u6ca1\u6743\u9650 in #32623
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dJSON Schema Integer \u7c7b\u578b\u5904\u7406\u95ee\u9898 in #32679
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dSQL\u6570\u636e\u6e90\u4e3a\u7a7a\u65f6\u65e0\u6cd5\u6536\u5230\u7ed3\u679c\u95ee\u9898 in #32706
    • fix(\u63a5\u53e3\u6d4b\u8bd5): xmind\u5bfc\u5165\u7528\u4f8b\u6821\u9a8c\u91cd\u590d in #32708
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u9009\u4e2d\u6a21\u5757\uff0c\u5207\u6362\u516c\u5171\u7528\u4f8b\u5e93\u518d\u56de\u9000\uff0c\u6570\u636e\u548c\u6a21\u5757\u9009\u4e2d\u663e\u793a\u4e0d\u4e00\u81f4 in #32726
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u7f3a\u9677\u4fee\u6539\u72b6\u6001\u4e0d\u751f\u6548 in #32747
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u5de5\u4f5c\u7a7a\u95f4\u9875\u9762\u6279\u91cf\u6dfb\u52a0\u81f3\u9879\u76ee\u5c55\u793a\u7684\u89d2\u8272\u6709\u8bef in #32771
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u66f4\u65b0\u7f3a\u9677\u81ea\u5b9a\u4e49\u5b57\u6bb5\u540e\uff0c\u7f3a\u9677\u5217\u8868\u7684\u5b57\u6bb5\u503c\u663e\u793a\u4e0d\u6b63\u786e in #32613
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5bcc\u6587\u672c\u6846\u81ea\u5b9a\u4e49\u5b57\u6bb5\u8f93\u5165\u63d0\u793a\u6ca1\u6709\u56fd\u9645\u5316 in #32784
    "},{"location":"about/changelog/#v21017-lts","title":"v2.10.17-lts","text":"

    2024\u5e747\u670826\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • feat(\u6027\u80fd\u6d4b\u8bd5): \u62a5\u544a\u652f\u6301\u5bfc\u51fa\u8be6\u60c5excel in #31992
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u7f16\u8f91\u573a\u666f\u6a21\u5757\u9009\u9879\u6837\u5f0f\u8c03\u6574 in #31879
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u8d85\u65f6\u5904\u7406\u903b\u8f91 in #32042
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u573a\u666f\u66f4\u65b0\u65b9\u6cd5 in #32050
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u53d1\u9001\u901a\u77e5\u65b9\u6cd5\u4f18\u5316 in #32051
    • refactor(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5Git\u4e0b\u8f7d\u91c7\u7528\u6d41\u5f0f\u4e0b\u8f7d\u6cd5 in #32054
    • refactor(\u6d4b\u8bd5\u8ba1\u5212): \u4fee\u6539\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u5165\u53c2\u540d\u79f0 in #32183

    \u95ee\u9898\u4fee\u590d

    • fix(\u901a\u7528\u529f\u80fd): \u4efb\u52a1\u4e2d\u5fc3\u505c\u6b62\u5168\u90e8\uff0c\u6ca1\u6709\u6839\u636e\u8fc7\u6ee4\u6761\u4ef6\u505c\u6b62 in #31951
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5b9e\u65f6\u62a5\u544a\u5206\u4eab\u6709\u6548\u671f\u8ddf\u5e94\u7528\u914d\u7f6e\u4e0d\u5339\u914d in #31941
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u590d\u5236\u7684\u6d4b\u8bd5\u8ba1\u5212\uff0c\u6267\u884c\u7ed3\u679c\u6709\u8bef in #31956
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5bcc\u6587\u672c\u7f16\u8f91\u5668\uff0cxss\u8fc7\u6ee4\u5bfc\u81f4\u6807\u7b7e\u5b57\u7b26\u65e0\u6cd5\u663e\u793a in #31966
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6807\u7b7e\u7b5b\u9009\u540e\uff0c\u6267\u884c\u6279\u91cf\u64cd\u4f5c\u4e0d\u751f\u6548\u95ee\u9898 in #32003
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6807\u7b7e\u7b5b\u9009\u540e\u590d\u5236\u62a5\u9519\u9519\u8bef\u95ee\u9898 in #32025
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u56de\u6536\u7ad9\u6807\u7b7e\u641c\u7d22\u95ee\u9898&\u6807\u7b7e\u5bfc\u81f4\u7684\u6240\u6709\u6279\u91cf\u64cd\u4f5c\u95ee\u9898 in #32027
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6b65\u9aa4\u7c7b\u578b\u4e3a\u6587\u672c\u63cf\u8ff0\u7684\u7528\u4f8b\u5bfc\u5165\u540e\uff0c\u65e0\u6cd5\u67e5\u770b\u53d8\u66f4\u8bb0\u5f55 in #32175
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u8111\u56fe\u5bfc\u5165\u5931\u8d25 in #32210
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u9996\u9875\u6211\u7684\u8bc4\u5ba1\u5217\u8868\u6570\u636e\u6709\u8bef in #32213
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u4fee\u590d\u6267\u884c\u63a5\u53e3\u7528\u4f8b\u7684\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\u811a\u672c\u65f6\u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\u7684\u4e0d\u662f\u4f7f\u7528\u73af\u5883\u7684\u95ee\u9898 in #32218
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u6587\u6863\u7ed3\u6784\u5bfc\u5165\uff0cnull\u503c\u672a\u5c55\u793a\u95ee\u9898 in #32017
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5bfc\u5165\u7528\u6237\u540d\u663e\u793a\u9519\u8bef\u95ee\u9898 in #32018
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u96c6\u5408\u62a5\u544a\u8d85\u65f6\u5904\u7406\u95ee\u9898 in #32040
    • fix(UI\u6d4b\u8bd5): \u4fee\u590d\u6587\u6848\u5b57\u7b26\u4f7f\u7528\u4e0d\u6b63\u786e\u95ee\u9898 in #32231
    "},{"location":"about/changelog/#v21016-lts","title":"v2.10.16-lts","text":"

    2024\u5e746\u670828\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u5217\u8868\u5237\u65b0\u4f18\u5316 in #31265
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u6821\u9a8c\u6743\u9650 in #31288
    • refactor(\u7cfb\u7edf\u8bbe\u7f6e): \u4f18\u5316\u7279\u6b8a\u5b57\u7b26\u62a5\u9519\u7684\u7f3a\u9677 in #31297
    • refactor(\u7cfb\u7edf\u8bbe\u7f6e): \u4f18\u5316\u9879\u76ee\u4e0b\u62c9\u6846\u663e\u793a in #31385

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u4fee\u590d\u6279\u91cf\u4fee\u6539\u73af\u5883\u7684\u95ee\u9898 in #31268
    • fix(\u9879\u76ee\u7ba1\u7406): \u4fee\u590d\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u65e0\u6cd5\u4f7f\u7528\u4e09\u65b9jar\u5305\u7684\u7f3a\u9677 in #31260
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8bc4\u5ba1\u6253\u5f00\u7528\u4f8b\u62a5\u9519 in #31389
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u8bc4\u5ba1\u5207\u6362\u4e0a\u4e00\u6761\u4e0b\u4e00\u6761\uff0c\u8bc4\u8bba\u663e\u793a\u6709\u8bef in #31573
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u6267\u884c\u4fdd\u5b58\u540e\uff0c\u4e4b\u524d\u8bc4\u8bba\u4e2d\u7684\u56fe\u7247\u4f1a\u88ab\u5220\u9664 in #31582
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5b9e\u65f6\u62a5\u544a\u5206\u4eab\u6709\u6548\u671f\u8ddf\u5e94\u7528\u914d\u7f6e\u4e0d\u5339\u914d in #31602
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u6a21\u677f\u6587\u672c\u63cf\u8ff0\u9ed8\u8ba4\u503c\u672a\u8bbe\u7f6e in #31804
    • fix: \u4fee\u590djenkins\u6267\u884c\u63a5\u53e3\u573a\u666f\u4e0d\u80fd\u6b63\u5e38\u67e5\u770b\u7ed3\u679c\u7684\u95ee\u9898 in #31269
    "},{"location":"about/changelog/#v21015-lts","title":"v2.10.15-lts","text":"

    2024\u5e745\u670830\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u7f16\u8f91\u65f6\u589e\u52a0\u7248\u672c\u7f16\u8f91
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): xmind\u7528\u4f8b\u5bfc\u5165\uff0c\u6ca1\u6709\u5408\u6cd5\u7684\u7528\u4f8b\u63d0\u793a\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f18\u5316\u4e32\u884c\u6d4b\u8bd5\u8ba1\u5212\u961f\u5217\u7684\u50a8\u5b58\u65b9\u6cd5

    \u95ee\u9898\u4fee\u590d

    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590djsonSchema\u53c2\u6570\u4e0d\u7b26\u5408\u9884\u671f\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dmock\u540e\u7f6e\u811a\u672c\u89e3\u6790\u53c2\u6570\u5931\u8d25\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u521b\u5efa\u573a\u666f\u63d0\u793a\u65e0\u64cd\u4f5c\u6743\u9650\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5168\u5c40\u524d\u540e\u7f6e\u6b65\u9aa4\u5185\u4f4d\u7f6e\u4e0d\u5bf9\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u8d85\u7ea7\u7ba1\u7406\u5458\u4f1a\u63d0\u793a\u65e0\u64cd\u4f5c\u6743\u9650\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u9996\u9875\u4e03\u5929\u5185\u66f4\u65b0\u63a5\u53e3\u8df3\u8f6c\u4e0d\u8fc7\u53bb\u7684\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u7279\u6b8a\u7b26\u53f7\u5bfc\u81f4get\u8bf7\u6c42\u62a5\u9519\u7684\u7f3a\u9677
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u7528\u6237\u8d8a\u6743\u8bbf\u95ee\u7684\u90e8\u5206\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u5bfc\u51fa\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u8111\u56fe\u4fdd\u5b58\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8865\u5145\u90e8\u5206\u63a5\u53e3\u6743\u9650\u6821\u9a8c
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u8111\u56fe\u8865\u5145\u6743\u9650\u6821\u9a8c
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u5bfc\u5165\u66f4\u65b0\u6ca1\u6709\u89e6\u53d1\u91cd\u65b0\u63d0\u5ba1
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u4fee\u6539\u7248\u672c\u65f6\u9690\u85cf\u672a\u5f00\u542f\u7684\u7248\u672c
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6279\u91cf\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u521b\u5efa\u4eba\u4e0d\u5bf9\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u5bfc\u5165\u5931\u8d25\u540e\u70b9\u51fb\u7ee7\u7eed\u5bfc\u5165\uff0c\u6ca1\u6709\u5c06\u5408\u89c4\u6570\u636e\u5bfc\u5165
    • fix(\u7f3a\u9677\u7ba1\u7406): \u7f3a\u9677\u8868\u5934\u589e\u52a0\u5b57\u6bb5\u8bf4\u660e
    • fix(\u9879\u76ee\u7ba1\u7406): \u4fee\u590d\u73af\u5883\u4fdd\u5b58\u5168\u5c40\u53c2\u6570\u65e0\u6548\u7684\u7f3a\u9677
    "},{"location":"about/changelog/#v21014-lts","title":"v2.10.14-lts","text":"

    2024\u5e744\u670825\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • feat(\u63a5\u53e3\u6d4b\u8bd5): case\u9875\u9762\u589e\u52a0\u63a5\u53e3id\u5c55\u793a\u5e76\u652f\u6301\u8df3\u8f6c
    • feat(\u7cfb\u7edf\u8bbe\u7f6e): \u8d85\u7ea7\u7ba1\u7406\u5458\u7684\u9879\u76ee\u5217\u8868\u8fdb\u884c\u6392\u5e8f\u5904\u7406
    • feat(\u7cfb\u7edf\u8bbe\u7f6e): \u9879\u76ee\u9009\u62e9\u5668\u4e2d\u7684\u5907\u9009\u9879\u76ee\u66f4\u6362\u6392\u5e8f\u65b9\u6cd5\uff1a\u5f53\u524d\u4f7f\u7528\u9879\u76ee\u6392\u7b2c\u4e00\uff0c\u5176\u4f59\u6309\u7167\u540d\u79f0\u6392\u5e8f

    \u95ee\u9898\u4fee\u590d

    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u67e5\u8be2\u8d8a\u6743\u7684\u7f3a\u9677
    • fix(\u9879\u76ee\u7ba1\u7406): \u4fee\u590d\u73af\u5883\u53c2\u6570\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u4e0d\u5c55\u793a\u529f\u80fd\u7528\u4f8b\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u4e0d\u540c\u72b6\u6001\u7684\u7528\u4f8b\u6ca1\u6709\u5c55\u793a\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5220\u9664\u73af\u5883\u53d8\u91cf\uff0c\u5bfc\u81f4\u73af\u5883\u53d8\u91cf\u4e0d\u663e\u793a\u7684\u7f3a\u9677
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u62a5\u544a\u9875\u9762\u53bb\u6389\u5220\u9664\u6743\u9650\u4e0d\u80fd\u6b63\u5e38\u70b9\u51fb\u91cd\u65b0\u6267\u884c\u3001\u5206\u4eab\u3001\u5bfc\u51fa\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u5173\u8054\u529f\u80fd\u7528\u4f8b\uff0c\u6309\u7167\u81ea\u5b9a\u4e49ID\u7b5b\u9009\u540e\u5173\u8054\u6570\u636e\u4e0e\u7b5b\u9009\u6570\u636e\u5bf9\u4e0d\u4e0a
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u7528\u4f8b\u7f16\u8f91\u5b9e\u9645\u7ed3\u679c\u5bcc\u6587\u672c\u6846\u65f6\u4e0a\u4f20\u56fe\u7247\uff0c\u4e00\u6bb5\u65f6\u95f4\u540e\u56fe\u7247\u65e0\u6cd5\u67e5\u770b
    "},{"location":"about/changelog/#v21013-lts","title":"v2.10.13-lts","text":"

    2024\u5e743\u670828\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • feat(\u63a5\u53e3\u6d4b\u8bd5): case\u9875\u9762\u589e\u52a0\u63a5\u53e3id\u5c55\u793a\u5e76\u652f\u6301\u8df3\u8f6c
    • feat(\u7cfb\u7edf\u8bbe\u7f6e): \u8d85\u7ea7\u7ba1\u7406\u5458\u7684\u9879\u76ee\u5217\u8868\u8fdb\u884c\u6392\u5e8f\u5904\u7406
    • feat(\u7cfb\u7edf\u8bbe\u7f6e): \u9879\u76ee\u9009\u62e9\u5668\u4e2d\u7684\u5907\u9009\u9879\u76ee\u66f4\u6362\u6392\u5e8f\u65b9\u6cd5\uff1a\u5f53\u524d\u4f7f\u7528\u9879\u76ee\u6392\u7b2c\u4e00\uff0c\u5176\u4f59\u6309\u7167\u540d\u79f0\u6392\u5e8f

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u4e2dJenkins\u6267\u884c\u65e0\u6cd5\u8bfb\u53d6\u5df2\u4fdd\u5b58\u8fc7\u7684\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u90e8\u5206\u4fe1\u606f\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6a21\u5757\u6811\u4ea4\u4e92\u6837\u5f0f\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8ba1\u5212\u5de6\u4fa7\u6a21\u5757\u6811\u4ea4\u4e92\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5217\u8868\u6682\u65e0\u6570\u636e\u5c55\u793a\u6837\u5f0f\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8bc4\u5ba1\u8de8\u9879\u76ee\u5173\u8054\u7528\u4f8b\u6a21\u5757\u4e3a\u7a7a
    • fix(\u7528\u4f8b\u8bc4\u5ba1): \u5173\u8054\u8de8\u9879\u76ee\u7528\u4f8b\u6a21\u5757\u5c55\u793a\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u538b\u529b\u914d\u7f6e\u65f6\u56fa\u5b9a\u8282\u70b9\u548c\u81ea\u5b9a\u4e49\u914d\u7f6e\u62a5\u9519\u524d\u7aef\u5361\u4f4f\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u4e2d\u7684\u81ea\u5b9a\u4e49\u8bf7\u6c42\u6b65\u9aa4\u5728\u67d0\u4e9b\u6761\u4ef6\u4e0b\u4fee\u6539\u5730\u5740\uff0c\u4e0d\u4f1a\u8986\u76d6\u5230\u63a5\u53e3\uff0c\u4e5f\u4e0d\u4f1a\u5f71\u54cd\u63a5\u53e3\u8986\u76d6\u7387\u7684\u95ee\u9898
    "},{"location":"about/changelog/#v21012-lts","title":"v2.10.12-lts","text":"

    2024\u5e742\u670829\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u8de8\u9879\u76ee\u8bc1\u4e66\u914d\u7f6e\u9694\u79bb\u5f00
    • refactor(\u6d88\u606f\u901a\u77e5): \u4f18\u5316\u6d88\u606f\u901a\u77e5\u6a21\u7248\u5b57\u6bb5\u542b\u4e49
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u7528\u4f8b\u7f16\u8f91\u9875\u9762\u6837\u5f0f\u4f18\u5316

    \u95ee\u9898\u4fee\u590d

    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u81ea\u5b9a\u4e49sql\u5207\u6362\u73af\u5883\uff0c\u6570\u636e\u6e90\u6ca1\u6709\u5207\u6362\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6587\u6863\u6253\u5f00\u62a5\u9519\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u6d4f\u89c8\u5668\u63d2\u4ef6\u5f55\u5236\u6587\u4ef6\u5bfc\u5165\u5e73\u53f0\u540e\u6267\u884c\u73af\u5883\u62a5\u9519\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u53bb\u9664\u8d44\u6e90\u6c60\u914d\u7f6e\u955c\u50cf\u65f6\u4e24\u8fb9\u7684\u7a7a\u683c
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u6d4b\u8bd5\u8ba1\u5212\u5728\u4fee\u6539\u8fd0\u884c\u914d\u7f6e\u65f6\uff0c\u4e0d\u4f1a\u5f71\u54cd\u5230\u5176\u5b83\u7684\u6d4b\u8bd5\u8ba1\u5212
    "},{"location":"about/changelog/#v21011-lts","title":"v2.10.11-lts","text":"

    2024\u5e741\u670824\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u65b0\u589e\u529f\u80fd

    • feat(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u9ad8\u7ea7\u914d\u7f6e\u589e\u52a0\u9009\u9879
    • feat(\u6027\u80fd\u6d4b\u8bd5): \u62a5\u544a\u91c7\u6837\u652f\u6301\u663e\u793a\u63a5\u53e3\u8fd4\u56de\u6570\u636e\u7c7b\u578b\u4e3a\u56fe\u7247

    \u529f\u80fd\u4f18\u5316

    • refactor(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u4e0b\u8f7dzip\u4f7f\u7528\u6d41\u4e0b\u8f7d
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u6539\u573a\u666f\u8f6c\u6027\u80fd\u65f6\u90e8\u5206csv\u6587\u4ef6\u65e0\u6cd5\u89e3\u6790\u7684\u95ee\u9898
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ddf\u8e2a\u7684\u81ea\u52a8\u6e05\u7406\u62a5\u544a\u6570\u636e\u91c7\u7528\u6279\u91cf\u5904\u7406\uff0c\u540c\u65f6\u589e\u52a0\u670d\u52a1\u542f\u52a8\u9879\uff0c\u9488\u5bf9\u4e4b\u524d\u6ca1\u6709\u5220\u9664\u6210\u529f\u7684\u8d44\u6e90\u62a5\u544a\u8fdb\u884c\u5220\u9664\u5904\u7406

    \u95ee\u9898\u4fee\u590d

    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dv1\u5230v2\u573a\u666f\u6b65\u9aa4\u4e2d\u65ad\u8a00\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u7279\u6b8a\u683c\u5f0f\u7684swagger3\u5bfc\u5165\uff0crest\u53c2\u6570\u4e0d\u663e\u793a\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u5355\u6b65\u9aa4\u8c03\u8bd5\u83b7\u53d6\u4e0d\u5230host\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u5408\u5e76\u5386\u53f2\u9057\u7559\u65ad\u8a00\u6570\u636e
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u5bfc\u5165\uff0c\u539f\u63a5\u53e3\u4e0b\u7684case\u4e0d\u89c1\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5386\u53f2\u6570\u636e\u9020\u6210\u7684\u5f15\u7528\u7684case\u7684\u65ad\u8a00\u663e\u793a\u4e0d\u6b63\u786e\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u70b9\u51fb\u4fdd\u5b58\u5076\u5c14\u62a5\u9519\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\uff0c\u5173\u8054\u4e861.6w\u6761\u7528\u4f8b\uff0c\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u9875\u9762\u5361\u6b7b #28250
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u73af\u5883\u8fc7\u6ee4\u4e0d\u751f\u6548\u7684\u7f3a\u9677
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u6027\u80fd\u6d4b\u8bd5\u4e0d\u663e\u793a\u6587\u672c\u5185\u5bb9\u7684\u7f3a\u9677
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u73af\u5883\u53d8\u91cf\u8fc7\u6ee4\u540e\u7684\u6dfb\u52a0\u6709\u95ee\u9898\u7684\u7f3a\u9677
    • fix(\u9879\u76ee\u7ba1\u7406): \u4fee\u590d\u73af\u5883\u53d8\u91cf\u6309\u5e94\u7528\u573a\u666f\u7b5b\u9009\u70b9\u51fb\u65e0\u54cd\u5e94\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u4fee\u590d\u591a\u4e2a\u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u540c\u4e00\u4e2a\u573a\u666f\u5e76\u53d1\u6267\u884c\u8bc1\u4e66\u5076\u5c14\u83b7\u53d6\u4e0d\u5230\u95ee\u9898
    • fix\uff1a\u4fee\u590d\u63a5\u53e3\u5bfc\u5165required\u53c2\u6570\u7f3a\u5931\u95ee\u9898
    "},{"location":"about/changelog/#v21010-lts","title":"v2.10.10-lts","text":"

    2023\u5e7412\u670828\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u65b0\u589e\u529f\u80fd

    • feat(UI\u6d4b\u8bd5): \u589e\u52a0\u6587\u4ef6\u4e0a\u4f20\u9650\u5236
    • feat(UI\u6d4b\u8bd5): \u5173\u8054\u6587\u4ef6\u8fc7\u6ee4\u5df2\u5173\u8054\u7684
    • feat(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u8bc4\u5ba1\u652f\u6301\u5de6\u4fa7\u6a21\u5757\u6811
    • feat(\u63a5\u53e3\u6d4b\u8bd5): \u53bb\u9664\u63a5\u53e3\u5b9a\u4e49\u8def\u5f84\u7ed3\u5c3e\u7a7a\u683c
    • feat(\u6d4b\u8bd5\u8ddf\u8e2a): \u8868\u5934\u9ed8\u8ba4\u4e0d\u663e\u793a\u6240\u5c5e\u6a21\u5757\u5b57\u6bb5
    • feat(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u81ea\u52a8\u5316\u8868\u5934\u589e\u52a0\u6240\u5c5e\u6a21\u5757\u5b57\u6bb5
    • feat(\u6d4b\u8bd5\u8ddf\u8e2a): \u672c\u5730\u9644\u4ef6\u8f6c\u5b58\u6587\u4ef6\u5e93\u6392\u9664\u6389\u7b2c\u4e09\u65b9\u5b58\u50a8\u5e93\u6a21\u5757

    \u529f\u80fd\u4f18\u5316

    • refactor(UI\u6d4b\u8bd5): UI\u6307\u4ee4\u8868\u5934\u52a0\u4e0a\u6240\u5c5e\u6a21\u5757\u5b57\u6bb5
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u96c6\u6210tapd\u65f6\u6ca1\u6709\u586b\u5199\u9879\u76eeID\uff0c\u540c\u6b65\u7f3a\u9677\u9519\u8bef\u4fe1\u606f\u4f18\u5316
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4e00\u952e\u540c\u6b65\u5f00\u5173\u9ed8\u8ba4\u5173\u95ed
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u6dfb\u52a0\u811a\u672c\u4ea4\u4e92\u65b9\u5f0f
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u589e\u52a0\u63a5\u53e3\u7528\u4f8b\u4fdd\u5b58\u5e76\u7ee7\u7eed\u6dfb\u52a0\u529f\u80fd
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u81ea\u5b9a\u4e49\u811a\u672c\u76f8\u5173\u6837\u5f0f\u8c03\u6574
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u81ea\u5b9a\u4e49\u8bf7\u6c42\u63a8\u8350\u65ad\u8a00\u5f39\u7a97\u95ee\u9898
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u7528\u4f8b\u4fdd\u5b58\u5e76\u7ee7\u7eed\u6dfb\u52a0\u529f\u80fd\u6837\u5f0f\u8c03\u6574

    \u95ee\u9898\u4fee\u590d

    • fix(\u63a5\u53e3\u6d4b\u8bd5): http\u8bf7\u6c42\u53bb\u9664\u7a7a\u683c
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u521b\u5efaAPI\u5b9a\u4e49\u524d\u7aef\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dJSON-SCHEMA\u7a7a\u7c7b\u578b\u53c2\u6570\u5904\u7406\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dcase\u4fdd\u5b58\u4e0d\u6b63\u5e38\u7684json\u6570\u636e\u540e\uff0c\u4e0d\u663e\u793a\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590ddubbo\u534f\u8bae\u548csql\u534f\u8bae\u663e\u793a\u8d44\u6e90\u6c60\u9519\u8bef\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dmock\u4fdd\u5b5830M\u6570\u636e\u62a5\u9519\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u73af\u5883\u914d\u7f6e-\u901a\u7528\u914d\u7f6e\u76f8\u5173\u95ee\u9898\u4fee\u590d
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u4f9d\u8d56\u5173\u7cfb&\u516c\u5171\u7528\u4f8b\u5e93\u9ad8\u7ea7\u641c\u7d22\u5b8c\u6574id\u67e5\u8be2\u5931\u8d25\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5bfc\u5165postman\u8bf7\u6c42\u7f3a\u5931url\u8def\u5f84\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6a21\u677f\u7ba1\u7406\u5207\u6362tab\uff0c\u8868\u683c\u9519\u4f4d
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5bfc\u5165\u7279\u6b8a\u7684swagger\u6587\u4ef6\uff0c\u4e0d\u663e\u793arest\u53c2\u6570\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u89e3\u51b3\u73af\u5883\u914d\u7f6e\u62a5\u9519&\u66f4\u6539scope\u540e\u7c7b\u578b\u5f02\u5e38
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u62a5\u544a\u6743\u9650\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u9996\u9875\u7edf\u8ba1\u8bc4\u5ba1\u7ed3\u679c\u6709\u8bef
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u6700\u5927\u5316\u663e\u793a\u5f02\u5e38
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u7ba1\u7406\u7528\u4f8b\u6570\u8df3\u8f6c\u8be6\u60c5
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u589e\u52a0\u6240\u5c5e\u8d44\u6e90\u6821\u9a8c
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u73af\u5883\u663e\u793a\u53d8\u91cf\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u6d4b\u8bd5\u589e\u52a0\u6240\u5c5e\u8d44\u6e90\u6821\u9a8c
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6a21\u5757\u6811\u524d\u7aef\u63a7\u5236\u53f0\u62a5\u9519\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u9ad8\u7ea7\u641c\u7d22\u6a21\u5757\u7b5b\u9009
    • fix(\u5b89\u5168): \u4fee\u590d\u6a2a\u5411\u6743\u9650\u6f0f\u6d1eCVE-2023-50267
    "},{"location":"about/changelog/#v2109-lts","title":"v2.10.9-lts","text":"

    2023\u5e7411\u670823\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • feat(\u6d4b\u8bd5\u8ddf\u8e2a): \u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u652f\u6301\u70b9\u51fbid\u8df3\u8f6c
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316mock\u540e\u7f6e\u811a\u672c\u8bbe\u7f6e\u53d8\u91cf\u6a21\u7248
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4e0a\u4f20\u6587\u4ef6\u5927\u5c0f\u7edf\u4e00\u9650\u5236\u4e3a\u4e0d\u8d85\u8fc750MB
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u9690\u85cf\u9664\u6b63\u5219\u63d0\u53d6\u5916\u7684\u81ea\u5b9a\u4e49\u6a21\u7248\u9009\u9879
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5bfc\u5165\u906e\u7f69\u5c42\u6837\u5f0f
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u6539\u63a8\u8350\u65ad\u8a00\u7684\u6837\u5f0f\u5c42\u7ea7
    • style(\u6027\u80fd\u6d4b\u8bd5): \u4f01\u4e1a\u7248\u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u4e2d\u9519\u8bef\u8bb0\u5f55\u8868\u683c\u5b57\u6bb5\u547d\u540d\u4f18\u5316

    \u95ee\u9898\u4fee\u590d

    • fix(UI\u6d4b\u8bd5): \u4fee\u590d\u6279\u91cf\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\u4efb\u52a1\u4e2d\u5fc3UI\u7528\u4f8btriggerMode\u663e\u793a\u9519\u8bef\u95ee\u9898
    • fix(\u5de5\u4f5c\u53f0): \u6211\u7684\u5f85\u529e\u7f3a\u9677\u5217\u8868\u72b6\u6001\u8fc7\u6ee4\u6709\u8bef
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u3010\u63a5\u53e3\u6d4b\u8bd5\u3011github#26757\uff0c\u5d4c\u5957\u6b65\u9aa4\u5c55\u5f00\u54cd\u5e94\u5185\u5bb9\u5b57\u6bb5\u805a\u7126
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u3010\u63a5\u53e3\u6d4b\u8bd5\u3011github#27584\uff0c\u63a5\u53e3\u81ea\u5b9a\u4e49\u811a\u672c\uff0c\u70b9\u51fb\u7f16\u8f91\u540d\u79f0\u540e\uff0c\u81ea\u52a8\u8df3\u5230\u811a\u672c\u7f16\u8f91\u6846,\u4e0d\u80fd\u7f16\u8f91\u811a\u672c\u540d\u79f0
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u6b65\u9aa4\u9650\u5236 200 \u6761\u6b65\u9aa4\u5185\u4f7f\u7528\u539f\u751f\u6e32\u67d3\uff0c\u8d85\u8fc7 200 \u6761\u6b65\u9aa4\u4f7f\u7528\u865a\u62df\u6811\u6e32\u67d3
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u540c\u573a\u666f\u52a0\u8f7d\u591a\u8bc1\u4e66\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u3010\u6d4b\u8bd5\u8ba1\u5212\u3011github#27298\uff0c\u6d4b\u8bd5\u8ba1\u5212\u5de6\u4fa7\u51fa\u73b0\u53cc\u6eda\u52a8\u6761
    • fix(\u4efb\u52a1\u4e2d\u5fc3): \u4fee\u590d\u4efb\u52a1\u4e2d\u5fc3\u70b9\u51fb\u518d\u6b21\u573a\u666f\u62a5\u544a\uff0c\u62a5\u544a\u6ca1\u6709\u6536\u56de\u7684\u7f3a\u9677
    "},{"location":"about/changelog/#v2108-lts","title":"v2.10.8-lts","text":"

    2023\u5e7410\u670819\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u65b0\u589e\u529f\u80fd

    • feat(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u652f\u6301\u7ed3\u679c\u62bd\u6837\u5206\u6790\uff08X-Pack\u589e\u5f3a\u5305\uff09
    • feat(\u6d4b\u8bd5\u8ba1\u5212): \u6d4b\u8bd5\u6267\u884c\u673a\u65b0\u589e\u8fd0\u884c\u72b6\u6001\u548cCPU\u76d1\u63a7

    \u529f\u80fd\u4f18\u5316

    • refactor(\u6027\u80fd\u6d4b\u8bd5): \u8c03\u6574\u6027\u80fd\u6d4b\u8bd5\u8d44\u6e90\u6587\u4ef6\u4e0a\u9650\u6570\u4e3a50\u4e2a\u6587\u4ef6
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): JSONPath\u6b63\u5219\u63d0\u53d6\u652f\u6301\u81ea\u5b9a\u4e49\u5339\u914d\u6a21\u7248
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u8be6\u60c5\u652f\u6301\u901a\u8fc7\u7528\u4f8bID\u5feb\u6377\u8df3\u8f6c

    \u95ee\u9898\u4fee\u590d

    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590djsonSchema\u6570\u636e\u8f6cjson\u987a\u5e8f\u53d1\u751f\u6539\u53d8\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u9996\u9875\u5728\u5076\u53d1\u60c5\u51b5\u4e0b\u63a5\u53e3\u8986\u76d6\u7387\u663e\u793a\u4e3a0\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u7f16\u8f91\u73af\u5883\u4fe1\u606f\u672a\u66f4\u65b0\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5217\u8868\u4e0d\u663e\u793a\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u6309\u94ae\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u672c\u8eab\u65e0\u73af\u5883\u4e14\u5173\u8054\u65f6\u4e5f\u4e0d\u6307\u5b9a\u73af\u5883\u7684\u573a\u666f\u4f1a\u62a5\u9519\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u5bfc\u51fahtml\u65f6\u7684\u90e8\u5206\u9519\u8bef
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u6b65\u9aa4\u4e3a\u6587\u672c\u63cf\u8ff0\uff0c\u5bfc\u51faxmind\u4e3a\u6b65\u9aa4\u63cf\u8ff0\u7684\u5185\u5bb9
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u5bcc\u6587\u672c\u7f16\u8f91\u5668\u652f\u6301\u4e00\u4e9b\u7279\u6b8a\u6807\u7b7e
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u529f\u80fd\u7528\u4f8b\u6dfb\u52a0\u8bc4\u5ba1\u7ed3\u679c\u5217
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5bcc\u6587\u672c\u6846\u5220\u9664\u56fe\u7247\u540e\uff0c\u670d\u52a1\u5668\u4e0a\u7684\u56fe\u7247\u672a\u5220\u9664
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6279\u91cf\u548c\u7f16\u8f91\u5355\u4e2a\u7528\u4f8b\u7684\u6807\u7b7e\u65f6\uff0c\u7edf\u4e00\u957f\u5ea6\u9650\u5236
    • fix(\u7f3a\u9677\u7ba1\u7406): \u7f3a\u9677\u5173\u8054\u7528\u4f8b\u5217\u8868\u5c55\u793a\u6709\u8bef
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u73af\u5883\u901a\u7528\u914d\u7f6e\u7b5b\u9009\u540e\u4fdd\u5b58\u6709\u8bef
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u9879\u76ee\u6d88\u606f\u8bbe\u7f6e\uff0c\u4efb\u52a1\u901a\u77e5\u5207\u6362\u4e8b\u4ef6\u7c7b\u578b\u6a21\u677f\u672a\u540c\u6b65\u66f4\u65b0
    "},{"location":"about/changelog/#v2107-lts","title":"v2.10.7-lts","text":"

    2023\u5e749\u670826\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u65b0\u589e\u529f\u80fd

    • feat(UI\u6d4b\u8bd5): UI\u6d4b\u8bd5\u65b0\u589e\u6d88\u606f\u901a\u77e5\u914d\u7f6e
    • feat(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u8868\u683c\u901a\u8fc7\u7387\u4fdd\u7559\u4e24\u4f4d\u5c0f\u6570

    \u529f\u80fd\u4f18\u5316

    • perf(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875\u7edf\u8ba1\u6548\u7387
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u6587\u6863\u652f\u6301\u5bfc\u51fahtml
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u7528\u4f8b\u8bf7\u6c42\u4f53\u6dfb\u52a0\u89d2\u6807\u7edf\u8ba1
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u9650\u5236\u6d4b\u8bd5\u8ba1\u5212\u5b9a\u65f6\u4efb\u52a1\u5355\u4e00\u6267\u884c
    • refactor(\u9879\u76ee\u7ba1\u7406): \u5168\u5c40XPath\u65ad\u8a00\u652f\u6301html\u5185\u5bb9\u65ad\u8a00

    \u95ee\u9898\u4fee\u590d

    • fix(UI\u6d4b\u8bd5): \u4fee\u590d\u9879\u76ee\u8bbe\u7f6e\u6d88\u606f\u7ba1\u7406/\u63a5\u53e3\u6d4b\u8bd5/UI\u6d4b\u8bd5\u7f16\u8f91\u6d88\u606f\u901a\u77e5\u540e\u53d6\u6d88\uff0c\u4ecd\u663e\u793a\u4fee\u6539\u5185\u5bb9\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): CSV\u9694\u79bb\u52a0\u8f7d\u7684\u540c\u65f6\u517c\u5bb9CSVRead\u51fd\u6570\u53d6\u503c
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u7f16\u8f91\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u540d\u79f0\uff0c\u65e0\u6cd5\u9f20\u6807\u9009\u62e9\u6587\u5b57\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dk8s\u8d44\u6e90\u6c60\u5e76\u53d1\u6570\u8bbe\u7f6e\u4e0d\u751f\u6548\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dswagger\u7279\u6b8a\u6570\u636e\u5bfc\u5165\u5931\u8d25\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dtcp mock\u8bf7\u6c42\u5185\u5bb9\u8d85\u8fc71024\u4e2a\u5b57\u8282\u5931\u8d25\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u751f\u6210\u6d4b\u8bd5\u6570\u636e\u65f6\uff0c\u6700\u5927\u6700\u5c0f\u503c\u9650\u5236\u6ca1\u6709\u6548\u679c\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u62a5\u544a-\u63a5\u53e3\u7528\u4f8b-\u6267\u884c\u7ed3\u679cpending\u72b6\u6001\u540e\u591a\u663e\u793a\u4e86.
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u67e5\u770b\u7528\u4f8b\u7f3a\u9677\u5173\u8054TAB\u6743\u9650\u6821\u9a8c\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u62a5\u544a\u7edf\u8ba1\u548c\u8ba1\u5212\u5217\u8868-\u64cd\u4f5c\u67e5\u770b\u62a5\u544a-\u8fd0\u884c\u73af\u5883\u660e\u7ec6\u524d\u7a7a\u767d\u592a\u591a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5173\u8054\u7528\u4f8b\u5f39\u7a97\u5173\u952e\u5b57\u641c\u7d22\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u72b6\u6001\u6309\u94ae\u6837\u5f0f\u4e0d\u4e00\u81f4
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8d85\u7ea7\u7ba1\u7406\u5458\u7528\u6237\u7ec4\u79fb\u9664\u516c\u5171\u7528\u4f8b\u5e93\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7528\u4f8b\u5217\u8868\u7b5b\u9009\u65f6\u91cd\u7f6e\u5f53\u524d\u9875\u7801
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7528\u4f8b\u5217\u8868\u7b5b\u9009\u540e\u672a\u91cd\u7f6e\u5f53\u524d\u9875\u7801
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u7ba1\u7406\u5173\u8054\u529f\u80fd\u7528\u4f8b\u5f39\u7a97\u672a\u8fc7\u6ee4\u6389\u5df2\u5173\u8054\u7684\u7528\u4f8b
    • fix(\u9879\u76ee\u8bbe\u7f6e): UI\u4efb\u52a1\u901a\u77e5\u521b\u5efa\u4e0d\u663e\u793a\u9ed8\u8ba4\u4eba&\u4fdd\u5b58\u4e00\u76f4\u5b58\u5728\u521b\u5efa\u4eba\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u6d88\u606f\u901a\u77e5UI\u6d88\u606f\u6807\u9898\u4f18\u5316
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u9879\u76ee\u5217\u8868\u5206\u9875\u67e5\u8be2\u53c2\u6570\u8bbe\u7f6e\u6709\u8bef
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u67e5\u627e\u9644\u4ef6\u4e0d\u518d\u9650\u5236\u6587\u4ef6\u683c\u5f0f
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u529f\u80fd\u7528\u4f8b\u5bfc\u51fa\u7cfb\u7edf\u5b57\u6bb5\u6ca1\u6709\u56fd\u9645\u5316\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u5207\u6362\u65b0\u7684\u5de5\u4f5c\u7a7a\u95f4\u670d\u52a1\u96c6\u6210\u914d\u7f6e\u4fe1\u606f\u5c55\u793a\u6709\u8bef
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590dCAS\u767b\u5f55\u540e\u64cd\u4f5c\u65e5\u5fd7\u6ca1\u6709\u663e\u793a\u7528\u6237\u540d\u7684\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u67e5\u8be2\u5de5\u4f5c\u7a7a\u95f4-\u9879\u76ee\u5217\u8868\u65f6\u6ca1\u6709\u68c0\u67e5\u5de5\u4f5c\u7a7a\u95f4\u7684\u95ee\u9898
    "},{"location":"about/changelog/#v2106-lts","title":"v2.10.6-lts","text":"

    2023\u5e748\u670822\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u6807\u7b7e\u91cd\u6784
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u652f\u6301\u8de8\u9879\u76ee\u573a\u666f\u6267\u884c\u65f6\u53ef\u4ee5\u4e0d\u9009\u73af\u5883\uff0c\u9ed8\u8ba4\u53d6\u5f53\u524d\u9879\u76ee\u73af\u5883
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u652f\u6301\u5b9a\u65f6\u4efb\u52a1\u6267\u884c\u53d6\u9ed8\u8ba4\u73af\u5883
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a)): \u6d4b\u8bd5\u8ba1\u5212\u4e0d\u518d\u5f3a\u5236\u5173\u8054\u7528\u4f8b\u65f6\u9009\u62e9\u73af\u5883
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u5e73\u53f0\u63d2\u4ef6\u6784\u9020\u5668\u6dfb\u52a0\u4e2a\u4eba\u8d26\u53f7\u4fe1\u606f\u76f8\u5173\u53c2\u6570
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u8bc4\u5ba1\u5173\u8054\u529f\u80fd\u7528\u4f8b\u9875\u9762\uff0c\u67e5\u8be2\u6761\u4ef6\u63d0\u793a\u4f18\u5316
    • refactor(\u9879\u76ee\u8bbe\u7f6e): \u7ec6\u5316\u9879\u76ee\u5185\u67e5\u770b\u7528\u6237\u7ec4\u63a5\u53e3\u6743\u9650\u7684\u9897\u7c92\u5ea6
    • style(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u52a0\u8f7d\u6d4b\u8bd5\u914d\u7f6e\u65f6\u589e\u52a0loading
    • style(\u6027\u80fd\u6d4b\u8bd5): \u4f18\u5316\u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u4e2d\u73af\u5883\u7684\u5c55\u793a\u6548\u679c
    • perf(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f18\u5316\u6d4b\u8bd5\u8ba1\u5212\u63a5\u53e3\u7528\u4f8b\u5207\u6362\u6a21\u5757\u6811\u7684\u54cd\u5e94\u901f\u5ea6
    • refactor: \u7cfb\u7edf\u914d\u7f6e\u652f\u6301\u4e0a\u4f20\u81ea\u5b9a\u4e49css

    \u95ee\u9898\u4fee\u590d

    • fix(\u5de5\u4f5c\u53f0): \u7528\u4f8b\u63cf\u8ff0\u9884\u89c8loading\u5173\u95ed
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dAPI\u591a\u6b21\u4fdd\u5b58\u6570\u636e\u91cd\u590d\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dAPI\u5217\u8868\u6279\u91cf\u590d\u5236\u6570\u636e\u4f1a\u53d1\u51fa\u591a\u4e2a\u8bf7\u6c42\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5f15\u7528\u7684CASE\u6dfb\u52a0\u65ad\u8a00\u65e0\u6cd5\u751f\u6548\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u6b65\u9aa4\u63a5\u53e3\u5bfc\u5165\u53ca\u573a\u666f\u5bfc\u5165\u5f39\u7a97\u62d6\u62fd\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5feb\u6377\u8c03\u8bd5\u53e6\u5b58\u4e3a\u7528\u4f8b\uff0c\u663e\u793a\u7684\u8fd8\u662f\u4e0a\u4e00\u6b21\u7528\u4f8b\u540d\u79f0\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6a21\u5757\u6811\u9876\u90e8\u7f3a\u5931\u641c\u7d22\u6846\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u5bfc\u5165\u7279\u6b8a\u5b57\u7b26\u62a5\u9519\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u590d\u5236\u529f\u80fd\u7528\u4f8b\u8d23\u4efb\u4eba\u53d8\u66f4\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5bcc\u6587\u672c\u6846\u82f1\u6587\u5f15\u53f7\u9884\u89c8\u65f6\u53d8\u6210\u4e2d\u6587\u5f15\u53f7
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u7f16\u8f91\u9875\uff0c\u70b9\u51fb\u7248\u672c\u7f6e\u65b0\uff0c\u4e00\u76f4\u5904\u4e8e\u5237\u65b0\u72b6\u6001
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8111\u56fe\u5c06\u7528\u4f8b\u62d6\u5165\u672a\u52a0\u8f7d\u7528\u4f8b\u7684\u6a21\u5757\uff0c\u4f1a\u4ea7\u751f\u6570\u636e\u4e22\u5931
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u5bfc\u51fa\u652f\u6301\u5355\u5143\u683c\u5185\u5bb9\u6362\u884c
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u81ea\u5b9a\u4e49\u5b57\u6bb5\u4e0b\u62c9\u9009\u9879key\u957f\u5ea6\u9650\u5236\u8fc7\u77ed
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u81ea\u5b9a\u4e49\u76d1\u63a7\u67e5\u8be2\u65f6\uff0c\u8f93\u5165promQL\u4e2d\u5305\u62ec\u7279\u6b8a\u5b57\u7b26\u4e0d\u80fd\u6b63\u5e38\u4f7f\u7528\u7684\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u591a\u8282\u70b9\u914d\u7f6e\u81ea\u5b9a\u4e49\u5360\u6bd4\u65f6\u6d6e\u70b9\u6570\u76f8\u52a0\u7cbe\u5ea6\u95ee\u9898\u4fee\u6539
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u8d44\u6e90\u6c60\u914d\u7f6e\u4fe1\u606f\u8fc7\u957f\u62a5\u9519\u95ee\u9898
    "},{"location":"about/changelog/#v2105-lts","title":"v2.10.5-lts","text":"

    2023\u5e748\u67081\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316JSONPath\u65ad\u8a00\u5339\u914d\u673a\u5236\uff0c\u652f\u6301\u6b63\u5219\u5ffd\u7565\u6570\u5b57\u7cbe\u5ea6\u5339\u914d
    • refactor(\u6027\u80fd\u6d4b\u8bd5): \u5927\u5e45\u4f18\u5316\u6027\u80fd\u6d4b\u8bd5\u7684\u541e\u5410\u91cf\u548c\u7a33\u5b9a\u6027(\u4f01\u4e1a\u7248)
    • refactor(\u6027\u80fd\u6d4b\u8bd5): \u62a5\u544a\u5217\u8868\u9875\u51cf\u5c11\u6d4b\u8bd5\u5217\u663e\u793a
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u53d6\u6d88\u5de6\u4fa7\u6a21\u5757\u68118\u5c42\u9650\u5236
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u5217\u8868\u548c\u8111\u56fe\u5207\u6362\u65f6\uff0c\u643a\u5e26\u7248\u672c\u7b5b\u9009\u6761\u4ef6
    • refactor(\u9879\u76ee\u8bbe\u7f6e): \u6dfb\u52a0\u9879\u76ee\u6210\u5458\u9009\u9879\u8fc7\u6ee4\u6389\u5df2\u7ecf\u6dfb\u52a0\u7684\u6210\u5458
    • refactor: \u8c03\u6574BufferMemory\u9ed8\u8ba4\u5927\u5c0f\u5e76\u652f\u6301\u81ea\u5b9a\u4e49\u914d\u7f6e

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7684case\u66f4\u65b0\u540e\u672a\u540c\u6b65\u66f4\u65b0\u7684\u95ee\u9898\uff08GitHub #25703\uff09
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u529f\u80fd\u7528\u4f8b\u4f7f\u7528\u7248\u672c\u7b5b\u9009\u6761\u4ef6\u540e\u5207\u6362\u81f3\u8111\u56fe\u67e5\u770b\u672a\u751f\u6548\u7684\u95ee\u9898\uff08GitHub #25848\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u201c\u63a8\u8350JSONPATH\u65ad\u8a00\u201d\u4e2d\u5f53\u54cd\u5e94\u5185\u5bb9\u4e3a\u6570\u5b57\u88ab\u5904\u7406\u6210\u5b57\u7b26\u4e32\u7684\u95ee\u9898\uff08GitHub #25109\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u901a\u8fc7\u201cJSON-SCHEMA\u201d\u67e5\u770b\u590d\u6742JSON\u8bf7\u6c42\u4f53\u5bfc\u81f4\u6d4f\u89c8\u5668\u5d29\u6e83\u7684\u95ee\u9898\uff08GitHub #25825\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dJmeter 5.4.1\u7248\u672c\u5bfc\u51fa\u5e26\u6709\u5faa\u73af\u63a7\u5236\u5668\u7684\u6587\u4ef6\u5bfc\u5165\u5230MeterSphere\u5e73\u53f0\u62a5\u9519\u7684\u95ee\u9898\uff08GitHub #25882\uff09
    • fix(UI\u6d4b\u8bd5): \u4fee\u590dUI\u5e76\u53d1\u6267\u884c\u7ebf\u7a0b\u6570\u4fee\u6539\u540e\u4e0d\u751f\u6548\u7684\u95ee\u9898\uff08GitHub #25755\uff09
    • fix(UI\u6d4b\u8bd5): \u4fee\u590dv2\u7248\u672c\u5bf9v1\u7248\u672cUI\u81ea\u52a8\u5316\u573a\u666f\u53d8\u91cf\u4e0d\u517c\u5bb9\u7684\u7684\u95ee\u9898\uff08GitHub #25607\uff09
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u6027\u80fd\u6d4b\u8bd5\u52a0\u8f7d\u5173\u8054jmx\u6587\u4ef6\u65f6\u4f1a\u91cd\u590d\u63d0\u793a\u7684\u95ee\u9898\uff08GitHub #25351\uff09
    "},{"location":"about/changelog/#v2104-lts","title":"v2.10.4-lts","text":"

    2023\u5e747\u670820\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): XPath\u65ad\u8a00\u652f\u6301html\u54cd\u5e94\u5185\u5bb9\u65ad\u8a00
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u672c\u5730\u9644\u4ef6csv\u7684\u6e05\u7406\u903b\u8f91
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u62a5\u544a\u5bfc\u51fa\u573a\u666fcase\u5904\u7406size\u8c03\u6574
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7528\u4f8b\u786e\u8ba4\u5f39\u7a97\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u65b0\u589e\"\u4fdd\u5b58\u4e0b\u4e00\u6761\"\u6309\u94ae\u64cd\u4f5c
    • refactor: Swagger\u53ef\u4ee5\u914d\u7f6e\u662f\u5426\u5f00\u542f

    \u95ee\u9898\u4fee\u590d

    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dSQL\u534f\u8bae\u5bfc\u5165\u8986\u76d6\u8fd0\u884c\u73af\u5883\u53d8\u66f4\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u53d8\u66f4\u8bb0\u5f55\u76f8\u5173\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dChrome\u63d2\u4ef6\u5f55\u5236\u811a\u672c\u5bfc\u5165\u540e\u6b65\u9aa4\u987a\u5e8f\u9519\u4e71\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dTCP\u63a5\u53e3\u88ab\u5220\u9664\u540e\uff0c\u4ecd\u7136\u53ef\u4ee5\u8c03\u7528\u8be5\u63a5\u53e3Mock\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5728\u4f7f\u7528\u5e73\u53f0\u505a\u6d4b\u8bd5\u65f6Chrome\u7ecf\u5e38\u51fa\u73b0\u5d29\u6e83\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u63d0\u793a\u76f8\u5173\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u901a\u7528\u914d\u7f6e\u7b5b\u9009\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u9879\u76ee\u73af\u5883\u521b\u5efa\u5931\u8d25\u7684\u7f3a\u9677
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u5bfc\u822a\u680f\u5de5\u4f5c\u7a7a\u95f4\u641c\u7d22\u8f93\u5165\u65f6\u81ea\u52a8\u5931\u7126\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590djira\u4f7f\u7528\u81ea\u5b9a\u4e49\u6a21\u677f\u521b\u5efa\u7f3a\u9677\u5931\u8d25\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u529f\u80fd\u7528\u4f8b\u521b\u5efa\u7248\u672c\u5206\u652f, \u62a5\u529f\u80fd\u7528\u4f8b\u5df2\u5b58\u5728\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u7528\u4f8b\u8bc4\u5ba1\u5217\u8868\u8868\u5934\u663e\u793a\u540d\u79f0\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u8111\u56fe\u7f16\u8f91\u7528\u6237\u4f1a\u6e05\u7a7a\u5173\u8054\u7684\u9700\u6c42\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u7528\u4f8b\u7f16\u8f91\u9875\uff0c\u7528\u4f8b\u72b6\u6001\u663e\u793a\u6709\u8bef
    • fix(\u65b0\u624b\u5f15\u5bfc): \u4fee\u590d\u65b0\u5efa\u8d85\u7ea7\u7ba1\u7406\u5458\u7528\u6237-\u9996\u6b21\u52a0\u8f7d\u4f1a\u51fa\u73b0\u4e24\u6b21\u65b0\u624b\u5f15\u5bfc\u5f39\u7a97
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u7528\u6237\u5bfc\u5165ID\u548c\u540d\u79f0\u6dfb\u52a0\u6821\u9a8c
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u7cfb\u7edf\u8bbe\u7f6e\u521b\u5efa\u7528\u6237\uff0c\u4e0b\u62c9\u6846option\u6837\u5f0f\u8ddf\u968fselect\u6837\u5f0f
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u63d2\u4ef6\u5220\u9664\u540e\u518d\u6b21\u4e0a\u4f20\u63d2\u4ef6id\u9519\u8bef\u7684\u7f3a\u9677
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u5de5\u4f5c\u7a7a\u95f4\u540d\u79f0\u8d85\u957f\uff0c\u521b\u5efa\u7528\u6237\u9009\u5219\u5de5\u4f5c\u7a7a\u95f4\u65f6\u6837\u5f0f\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u6027\u80fd\u6d4b\u8bd5\u81ea\u5b9a\u4e49\u6267\u884c\u7684\u65f6\u5019\u6570\u5b57\u8f6c\u5316\u7684\u95ee\u9898
    • fix: \u4fee\u590dJenkins\u6267\u884c\u6d4b\u8bd5\u65f6\u7531\u4e8e\u6743\u9650\u4e0d\u591f\u5bfc\u81f4\u4e0d\u80fd\u6b63\u5e38\u6267\u884c\u7684\u95ee\u9898
    • fix: \u8d44\u6e90\u6c60\u955c\u50cf\u957f\u5ea6\u8fdb\u884c\u9650\u5236
    "},{"location":"about/changelog/#v2103-lts","title":"v2.10.3-lts","text":"

    2023\u5e747\u67086\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u53bb\u9664JMeter\u4e0d\u517c\u5bb9\u7684Mock\u51fd\u6570
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u8c03\u8bd5\u53bb\u6389\u901a\u77e5
    • refactor(\u4e2a\u4eba\u4fe1\u606f): \u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u914d\u7f6elabel\u5bbd\u5ea6\u8c03\u6574
    • refactor(\u4e2a\u4eba\u4fe1\u606f): \u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u5b57\u6bb5\u663e\u793a\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ba1\u5212): \u91cd\u5199\u6d4b\u8bd5\u8ba1\u5212\u52a0\u8f7d\u573a\u666f\u62a5\u544a\u7684\u65b9\u5f0f
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7b2c\u4e09\u65b9\u5e73\u53f0\u7f3a\u9677\u5220\u9664\u63d0\u793a\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u521b\u5efa\u7f3a\u9677\u5f39\u6846\u6dfb\u52a0\u5168\u5c4f\u6309\u94ae
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u5217\u8868\u6392\u5e8f\u540e\uff0c\u8111\u56fe\u70b9\u51fb\u4e0a\u4e0b\u79fb\u52a8\uff0c\u63d0\u793a\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u7528\u4f8b\u5173\u8054\u7f3a\u9677\uff0c\u6dfb\u52a0\u6392\u5e8f\u5b57\u6bb5
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u5217\u8868\u4e0d\u5c55\u793a\u6587\u672c\u6846\u548c\u5bcc\u6587\u672c\u6846\u7c7b\u578b\u7684\u81ea\u5b9a\u4e49\u5b57\u6bb5
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u5217\u8868\u4e0d\u5c55\u793a\u6587\u672c\u6846\u7c7b\u578b\u7684\u81ea\u5b9a\u4e49\u5b57\u6bb5\uff0c\u4f18\u5316\u6548\u7387
    • refactor(\u901a\u7528\u529f\u80fd): \u4e2a\u4eba\u4fe1\u606f\u7684\u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u4fe1\u606f\u6539\u4e3a\u975e\u5fc5\u586b
    • refactor(\u901a\u7528\u529f\u80fd): Jackson\u9ed8\u8ba4\u5e8f\u5217\u5316\u5b57\u7b26\u4e32\u957f\u5ea6\u8c03\u6574
    • style(\u6d4b\u8bd5\u8ba1\u5212): \u66f4\u6539\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u4e2d\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a\u7684\u5c55\u793a\u9ad8\u5ea6

    \u95ee\u9898\u4fee\u590d

    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u7279\u6b8a\u6570\u636e\u7684swagger3.0\u6570\u636e\u5bfc\u51fa\u5931\u8d25\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5bfc\u5165\u975e\u6807\u51c6JMX\u6587\u4ef6\u5931\u8d25\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u53c2\u6570\u548c\u7c7b\u578b\u4e0d\u7b26\u5408\u7684json-schema\u6570\u636e\u8f6cjson\u9519\u8bef\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u540c\u6b65\u63a5\u6536\u62a5\u544a\u7ed3\u679c\u6709\u65f6\u95f4\u5dee\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u8bf7\u6c42\u4f53\u542b\u7279\u6b8a\u5b57\u7b26\u8f6c\u6362\u9519\u8bef\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u591a\u5c42\u5d4c\u5957\u5f15\u7528\u573a\u666f\u7981\u7528\u72b6\u6001\u4e0d\u751f\u6548\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): Tapd \u7f16\u8f91\u7f3a\u9677\u5904\u7406\u4eba\u663e\u793a\u5f02\u5e38
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u8bc4\u5ba1\u9ad8\u7ea7\u641c\u7d22\u5f39\u7a97\u51fa\u73b0\u7a7a\u7684\u6eda\u52a8\u6761
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u65e5\u671f\u81ea\u5b9a\u4e49\u5b57\u6bb5\u5217\u8868\u663e\u793a\u5e26\u4e86\u51c6\u786e\u65f6\u95f4
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u516c\u5171\u7528\u4f8b\u5e93\u590d\u5236\u548c\u7f16\u8f91\u6839\u636e\u6743\u9650\u542f\u7528\u7981\u7528
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u7528\u4f8b\u5217\u8868\u81ea\u5b9a\u4e49\u5b57\u6bb5\u7b5b\u9009\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8bbf\u95ee\u6d4b\u8bd5\u8ddf\u8e2a\u9ed8\u8ba4\u8df3\u8f6c\u5230\u7b2c\u4e00\u4e2a\u6709\u6743\u9650\u7684\u83dc\u5355
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6574\u578b\u81ea\u5b9a\u4e49\u5b57\u6bb5\u4e0d\u4fee\u6539\u9ed8\u8ba4\u503c\uff0c\u4f1a\u4fdd\u5b58\u4e3a\u5b57\u7b26\u4e32
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u9009\u4e2d\u7528\u4f8b\u6570\u91cf\u8fc7\u591a\u751f\u6210\u4f9d\u8d56\u5173\u7cfb\u56fe\u9875\u9762\u52a0\u8f7d\u5f02\u5e38
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u65f6\u6267\u884c\u65f6\u68c0\u67e5jmx\u6587\u4ef6
    • fix(\u9879\u76ee\u7ba1\u7406): \u6a21\u677f\u8bbe\u7f6e\u67e5\u8be2\u6743\u9650\u63a7\u5236\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u521b\u5efa\u7f3a\u9677\u6a21\u677f\u4e0d\u6821\u9a8c\u6a21\u677f\u5b57\u6bb5\u6743\u9650
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4f18\u5316\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u7684\u6743\u9650\u5224\u65ad\u65b9\u5f0f
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): ldap\u7528\u6237\u7b2c\u4e00\u6b21\u767b\u5f55\u5de5\u4f5c\u53f0\u6743\u9650\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u5de5\u4f5c\u7a7a\u95f4\u6210\u5458\u4e0e\u73af\u5883\u7ba1\u7406\u5217\u8868\u9009\u4e2d\u6570\u91cf\u5c55\u793a\u9519\u8bef
    "},{"location":"about/changelog/#v2102-lts","title":"v2.10.2-lts","text":"

    2023\u5e746\u670820\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor: \u90e8\u5206\u63a5\u53e3\u6743\u9650\u8865\u5168
    • refactor: \u524d\u7aef\u62c6\u5305\u4f18\u5316

    \u95ee\u9898\u4fee\u590d

    • fix(UI\u6d4b\u8bd5): \u4fee\u590d\u8ffd\u52a0\u8f93\u5165\u63d0\u793a\u4fe1\u606f\u5e26\u7279\u6b8a\u5b57\u7b26\u95ee\u9898
    • fix(\u5de5\u4f5c\u53f0): \u4fee\u590d\u4eea\u8868\u76d8\u8fc7\u6ee4\u5f53\u524d\u7528\u6237\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5f15\u7528\u7684case\u65e0\u6cd5\u6dfb\u52a0\u65ad\u8a00\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5bfc\u5165\u63a5\u53e3\u5217\u8868\u9891\u7e41\u8c03\u63a5\u53e3\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u65ad\u8a00\u54cd\u5e94\u65f6\u95f4\u5f00\u542f\u5173\u95ed\u4e0d\u751f\u6548\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590dqiankun\u7ec4\u4ef6\u52a0\u8f7d\u62a5\u544a\u5207\u6362\u9519\u4e71\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u529f\u80fd\u7528\u4f8b\u7f16\u8f91\u8d23\u4efb\u4ebaID\u4e3a\u7eaf\u6570\u5b57\u663e\u793a\u5f02\u5e38\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u7528\u4f8b\u5217\u8868\u81ea\u5b9a\u4e49\u5217\u9009\u62e9\u540e\u5237\u65b0\u5931\u6548\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u4f7f\u7528\u7b2c\u4e09\u65b9\u7f3a\u9677\u6a21\u677f\uff0c\u5b58\u5728\u540c\u540d\u5b57\u6bb5\uff0c\u65e0\u6cd5\u4fdd\u5b58\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u961f\u5217\u4e0d\u518d\u8bb0\u5f55\u6267\u884c\u5931\u8d25\u7684\u6027\u80fd\u7528\u4f8b\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u7f3a\u9677\u81ea\u5b9a\u4e49\u5b57\u6bb5\u4e0b\u62c9\u9009\u9879\u8fdc\u7a0b\u68c0\u7d22\uff0c\u8f93\u5165\u5173\u952e\u5b57\u540e\u5931\u53bb\u7126\u70b9\uff0c\u9009\u9879\u6ca1\u6709\u91cd\u7f6e
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u5bfc\u5165\u7f3a\u9677\u6587\u4ef6\u5185\u5bb9\u9519\u8bef\u540e\uff0c\u4fee\u6539\u539f\u59cb\u6587\u4ef6\u5e76\u4fdd\u5b58\uff0c\u62a5network_error
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u914d\u7f6e\u90ae\u4ef6Port\u53c2\u6570\u6821\u9a8c\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u6027\u80fd\u6d4b\u8bd5\u573a\u666fCSV\u53d8\u66f4\u540e\u8fdb\u884c\u540c\u6b65\u65f6\u8868\u683c\u5185\u7684CSV\u6587\u4ef6\u4e5f\u540c\u6b65\u66f4\u6539
    • fix(\u6587\u4ef6\u7ba1\u7406): \u4fee\u590d\u6587\u4ef6\u7ba1\u7406\u589e\u52a0\u5bf9\u6a21\u5757id\u4e0d\u5b58\u5728\u7684\u65e7\u6570\u636e\u5904\u7406
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590dTCP\u914d\u7f6e\u5b57\u6bb5\u540d\u79f0\u663e\u793a\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u5220\u9664\u6d88\u606f\u901a\u77e5\u6a21\u677f\u4e2d\u7684\u65e0\u6548\u53d8\u91cf
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u81ea\u5b9a\u4e49\u5f85\u66f4\u65b0\u89c4\u5219\u914d\u7f6e\u63d0\u793a\u95ee\u9898
    "},{"location":"about/changelog/#v2101-lts","title":"v2.10.1-lts","text":"

    2023\u5e746\u67088\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u573a\u666f\u73af\u5883\u6821\u9a8c\u903b\u8f91
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u9009\u62e9\u8d44\u6e90\u6c60\u6267\u884c\u903b\u8f91
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u65b0\u589e\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u7f16\u8f91\u7684\u6743\u9650
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u8bc4\u5ba1\u5173\u8054\u7528\u4f8b\u65b0\u589e\u6392\u5e8f
    • refactor(\u7cfb\u7edf\u8bbe\u7f6e): \u64cd\u4f5c\u65e5\u5fd7\u7684\u64cd\u4f5c\u5bf9\u8c61\u589e\u52a0\u6e05\u7a7a
    • refactor(\u9879\u76ee\u8bbe\u7f6e): \u4f18\u5316\u7cfb\u7edf\u81ea\u5e26\u7684\u73af\u5883\u4e2d\u5e26\u811a\u672c\u65f6\u7684\u901a\u77e5\u903b\u8f91

    \u95ee\u9898\u4fee\u590d

    • fix(\u5de5\u4f5c\u53f0): \u529f\u80fd\u7528\u4f8b\u4eea\u8868\u76d8\u6570\u76ee\u4e0e\u5217\u8868\u4e0d\u4e00\u81f4
    • fix(\u5de5\u4f5c\u53f0)\uff1a\u5de5\u4f5c\u53f0\u67e5\u770bjira\u5e73\u53f0\u7f3a\u9677,\u7f3a\u9677\u5b57\u6bb5\u663e\u793a\u4e0d\u5168
    • fix(\u9879\u76ee\u8bbe\u7f6e): TCP\u914d\u7f6e\u540d\u79f0\u5c55\u793a\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u6dfb\u52a0git\u6587\u4ef6\u5931\u8d25\u65f6\u4e0d\u4f1a\u518d\u5237\u65b0\u8868\u683c\u5185\u5bb9
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590djenkins\u89e6\u53d1\u63a5\u53e3\u7528\u4f8b\uff0c\u4e00\u76f4\u4e0d\u6267\u884c\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u6b65\u9aa4\u8de8\u5de5\u4f5c\u7a7a\u95f4\u8df3\u8f6c\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u96c6\u5408\u62a5\u544a\u505c\u6b62\u4e0d\u751f\u6548\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u6279\u91cf\u751f\u6210\u4f9d\u8d56\u5173\u7cfb\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u81ea\u5b9a\u4e49\u8bf7\u6c42\u63a5\u53e3\u8986\u76d6\u7387\u8ba1\u7b97\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u53ea\u5173\u8054UI\u6267\u884c\u65f6\u8d44\u6e90\u6c60\u63d0\u793a\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5f53\u524d\u9879\u76ee\u8d23\u4efb\u4eba\u5220\u9664\u65f6\u5c55\u793a\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u8111\u56fe\u4fee\u6539\u4e00\u7ea7\u6a21\u5757\uff0c\u91cd\u540d\u6821\u9a8c\u4e0d\u51c6\u786e
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u5220\u9664\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u65f6\u540e\u53f0\u4f1a\u51fa\u73b0\u6d88\u606f\u901a\u77e5\u76f8\u5173\u7684\u62a5\u9519
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u573a\u666fCSV\u53d8\u66f4\u540e\u8fdb\u884c\u540c\u6b65\u65f6\u8868\u683c\u5185\u7684CSV\u6587\u4ef6\u4e5f\u540c\u6b65\u66f4\u6539
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u6027\u80fd\u6d4b\u8bd5\u53d8\u66f4\u8bb0\u5f55\u76f8\u5173\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u5076\u53d1\u7684\u4fdd\u5b58\u540e\u8d44\u6e90\u6c60\u88ab\u7f6e\u7a7a\u7684\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u5de5\u4f5c\u7a7a\u95f4\u914d\u989d\u9650\u5236\u8d44\u6e90\u6c60\u540e\u4efb\u7136\u53ef\u4ee5\u9009\u62e9\u88ab\u7981\u7528\u7684\u8d44\u6e90\u6c60\u6267\u884c\u7684\u7f3a\u9677
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u4f4e\u7248\u672c\u5347\u7ea7\u4e0a\u6765\u7684\u9ed8\u8ba4\u914d\u989d\u663e\u793a\u9519\u8bef\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u901a\u77e5\u8df3\u8f6c\u73af\u5883\u63d0\u793a\u8d44\u6e90\u88ab\u5220\u7684\u7f3a\u9677
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u9879\u76ee\u8bbe\u7f6e\u548c\u7cfb\u7edf\u8bbe\u7f6e\u4e2d\u6dfb\u52a0\u6210\u5458\u641c\u7d22\u7ed3\u679c\u4e0d\u7b26\u95ee\u9898
    • fix(\u901a\u77e5\u4e2d\u5fc3): \u901a\u77e5\u4e2d\u5fc3\u8df3\u8f6c\u5220\u9664\u7684\u8d44\u6e90\u65f6\u8fdb\u884c\u62a5\u9519\u63d0\u793a
    • fix(\u65b0\u624b\u5f15\u5bfc): \u65b0\u624b\u5f15\u5bfc\uff0c\u6b65\u9aa4\u4e3a\u521d\u59cb\u503c\u65f6\uff0c\u589e\u52a0\u8bb0\u5f55\u64cd\u4f5c
    • fix(\u6587\u4ef6\u7ba1\u7406): \u6587\u4ef6\u8be6\u60c5\u4e2d\u632a\u52a8\u6240\u5c5e\u6a21\u5757\u65f6\u4e0d\u518d\u63d0\u4f9b\u6e05\u7a7a\u6309\u94ae
    "},{"location":"about/changelog/#v2100-lts","title":"v2.10.0-lts","text":"

    2023\u5e745\u670825\u65e5

    \ud83d\udca5\ud83d\udca5\u00a0\u91cd\u8981\u63d0\u9192\u00a0\ud83d\udca5\ud83d\udca5 2.10 LTS \u5728\u67b6\u6784\u4e0a\u548c 1.20 LTS \u6709\u5f88\u5927\u53d8\u5316\uff0c\u8bf7\u52a1\u5fc5\u5347\u7ea7\u524d\u8fdb\u884c\u5907\u4efd\uff0c\u5e76\u8be6\u7ec6\u67e5\u9605\u6b64\u6587\u6863\uff1a1.20 lts\u81f32.10 lts\u5347\u7ea7\u6307\u5357

    \u6d4b\u8bd5\u80fd\u529b\u5347\u7ea7

    \u4e00\u7ad9\u5f0f\u6d4b\u8bd5\u80fd\u529b\u589e\u5f3a\uff1a MeterSphere v2.10 LTS\u7248\u672c\u5728\u6d4b\u8bd5\u7ba1\u7406\u4e0e\u6d4b\u8bd5\u6267\u884c\u4e0a\u91c7\u7528\u4e00\u7ad9\u5f0f\u5e73\u53f0\u8bbe\u8ba1\uff0c\u63d0\u4f9b\u529f\u80fd\u6d4b\u8bd5\u3001\u63a5\u53e3\u6d4b\u8bd5\u3001UI\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u7684\u540c\u65f6\uff0c\u89c4\u907f\u4e86\u6d4b\u8bd5\u4eba\u5458\u6267\u884c\u6d4b\u8bd5\u4efb\u52a1\u65f6\u56e0\u5de5\u5177\u7e41\u591a\u3001\u79cd\u7c7b\u5dee\u5f02\u5316\u5bfc\u81f4\u7684\u65e0\u6cd5\u6c89\u6dc0\u548c\u65e0\u6cd5\u8ffd\u6eaf\u7684\u95ee\u9898\u3002\u5168\u9762\u627f\u8f7d\u4e0d\u540c\u7c7b\u578b\u7684\u6d4b\u8bd5\u7528\u4f8b\u3001API\u3001\u6d4b\u8bd5\u6570\u636e\u3001\u6d4b\u8bd5\u73af\u5883\u7b49\u5173\u952e\u8d44\u4ea7\u7684\u96c6\u4e2d\u7ba1\u7406\u3002

    \u6d4b\u8bd5\u7ba1\u7406\u80fd\u529b\u589e\u5f3a\uff1a MeterSphere v2.10 LTS\u7248\u672c\u4e2d\uff0c\u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u8fdb\u884c\u4e86\u589e\u5f3a\uff0c\u8986\u76d6\u529f\u80fd\u7528\u4f8b\u3001\u63a5\u53e3\u7528\u4f8b\u3001UI\u7528\u4f8b\u3001\u6027\u80fd\u7528\u4f8b\u3002

    \u63a5\u53e3\u6d4b\u8bd5\u80fd\u529b\u589e\u5f3a\uff1a MeterSphere v2.10 LTS\u7248\u672c\u4e2d\uff0c\u63a5\u53e3\u6d4b\u8bd5\u91cd\u70b9\u89e3\u51b3\u4e86API\u53d1\u751f\u53d8\u66f4\u4e00\u952e\u66f4\u65b0\u63a5\u53e3\u7528\u4f8b\u7684\u95ee\u9898\u3002

    UI \u6d4b\u8bd5\u80fd\u529b\u589e\u5f3a\u3010X-Pack\u3011\uff1a \u5728MeterSphere v2.10 LTS\u7248\u672c\u4e2d\uff0cUI\u6d4b\u8bd5\u6a21\u5757\u9488\u5bf9Selenium\u539f\u751f\u6307\u4ee4\u8fdb\u884c\u4e86\u8fdb\u4e00\u6b65\u7684\u6269\u5c55\uff0c\u4ee5\u8986\u76d6\u7279\u6b8a\u6d4b\u8bd5\u573a\u666f\u3002

    \u6027\u80fd\u6d4b\u8bd5\u80fd\u529b\u589e\u5f3a\uff1a \u5728MeterSphere v2.10 LTS\u7248\u672c\u4e2d\uff0c\u6027\u80fd\u6d4b\u8bd5\u5b9e\u65f6\u62a5\u544a\u8ba1\u7b97\u80fd\u529b\u589e\u5f3a\u3002\u5c06\u6027\u80fd\u6d4b\u8bd5\u751f\u6210\u7684jtl\u6587\u4ef6\u5206\u6210\u5c0f\u6bb5\uff0c\u5206\u6bb5\u8ba1\u7b97\u7ed3\u679c\uff0c\u8282\u7701\u4e86\u78c1\u76d8\u7a7a\u95f4\u548cIO\u6027\u80fd\u3002

    \u7528\u6237\u4f53\u9a8c\u5347\u7ea7

    \u6d4b\u8bd5\u8ddf\u8e2a\u9996\u9875\u3001\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875UX\u4ea4\u4e92\u5347\u7ea7\uff1a MeterSphere v2.10 LTS\u7248\u672c\u4e2d\uff0c\u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\u9996\u9875\u793a\u4f8b\u56fe\u3002\u5c06\u6838\u5fc3\u6307\u6807\u4e0e\u660e\u7ec6\u6307\u6807\u5206\u5c42\u5c55\u793a\uff0c\u89c6\u89c9\u4e0a\u907f\u514d\u4e86\u56e0\u6570\u636e\u8fc7\u591a\u4ea7\u751f\u7684\u89c6\u89c9\u75b2\u52b3\u3002

    \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\u529f\u80fd\u7528\u4f8bUX\u4ea4\u4e92\u5347\u7ea7\uff1a MeterSphere v2.10 LTS\u7248\u672c\u4e2d\uff0c\u529f\u80fd\u7528\u4f8b\u8fdb\u884c\u4e86\u5168\u65b0\u4ea4\u4e92\u5347\u7ea7\uff0c\u6574\u4e2a\u9875\u9762\u91c7\u7528\u8f7b\u91cf\u5316\u8bbe\u8ba1\u8fdb\u884c\u6574\u4f53\u964d\u566a\uff0c\u9875\u9762\u4fe1\u606f\u66f4\u52a0\u6e05\u6670\u6613\u61c2\uff0c\u64cd\u4f5c\u6d41\u7a0b\u66f4\u987a\u7545\uff0c\u7528\u6237\u4f53\u9a8c\u5f97\u5230\u6574\u4f53\u63d0\u5347\u3002

    \u9664\u6b64\u4e4b\u5916\uff0cMeterSphere v2.10 LTS\u7248\u672c\u8fd8\u8fdb\u884c\u4e86\u4ee5\u4e0b\u9ad8\u9891\u4f7f\u7528\u529f\u80fd\u7684\u4f53\u9a8c\u4f18\u5316\uff1a

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u9ad8\u7ea7\u641c\u7d22\u652f\u6301\u8f93\u5165\u591a\u4e2a\u6807\u7b7e\u641c\u7d22\uff1b
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u8111\u56fe\u7528\u4f8b\u5220\u9664\u65f6\u589e\u52a0\u4e8c\u6b21\u786e\u8ba4\uff1b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u6d4b\u8bd5\u6279\u91cf\u6dfb\u52a0\u8bf7\u6c42\u53c2\u6570\u81ea\u52a8\u53bb\u7a7a\u683c\u5904\u7406\uff1b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u652f\u6301\u901a\u8fc7\u8def\u5f84\u641c\u7d22\uff1b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u6d4b\u8bd5\u5217\u8868\u5c55\u793a\u5b9a\u65f6\u4efb\u52a1\u5217\uff1b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u56fa\u5b9a\u5355\u63a5\u53e3\u7528\u4f8b\u6267\u884c\u6309\u94ae\u4f4d\u7f6e\uff1b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u8fd0\u884c\u73af\u5883\u5217\u8868\u652f\u6301\u6a21\u7cca\u641c\u7d22\uff1b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u5355\u6b65\u8c03\u8bd5\u7528\u4f8b\u6216\u573a\u666f\u6b65\u9aa4\u65f6\u54cd\u5e94\u5185\u5bb9\u81ea\u52a8\u5c55\u5f00\uff1b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3TEST\u652f\u6301\u4fdd\u7559\u6700\u8fd1\u4e00\u6b21\u7684\u6267\u884c\u8bb0\u5f55\uff1b
    • \u6027\u80fd\u6d4b\u8bd5\uff1a\u6d4b\u8bd5\u62a5\u544a\u589e\u52a0\u56fe\u8868\u5355\u4f4d\u5c55\u793a\uff1b
    • \u901a\u7528\u529f\u80fd\uff1a\u6807\u7b7e\u5b57\u6570\u8fc7\u591a\u65f6\u7684\u5c55\u793a\u4f18\u5316\uff1b

    \u7cfb\u7edf\u67b6\u6784\u5347\u7ea7

    \u7cfb\u7edf\u67b6\u6784\u5347\u7ea7\u4e3a\u5fae\u670d\u52a1\u67b6\u6784\uff1a MeterSphere v2.10 LTS\u7248\u672c\u91c7\u7528\u4e86\u5fae\u670d\u52a1\u67b6\u6784\uff0c\u65e2\u80fd\u6ee1\u8db3\u7528\u6237\u6309\u9700\u914d\u7f6e\u3001\u6c34\u5e73\u6269\u5c55\u7684\u9700\u6c42\uff0c\u53c8\u80fd\u89c4\u907f\u5355\u4e2a\u670d\u52a1\u6545\u969c\u5bfc\u81f4\u6574\u4f53\u670d\u52a1\u4e0d\u53ef\u7528\u7684\u73b0\u8c61\u3002

    \u5e73\u53f0\u6269\u5c55\u80fd\u529b\u589e\u5f3a\uff1a MeterSphere\u4f5c\u4e3a\u4e00\u7ad9\u5f0f\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\uff0c\u65e2\u9700\u8981\u4e0e\u5404\u79cd\u5468\u8fb9\u7cfb\u7edf\u8fdb\u884c\u96c6\u6210\u5bf9\u63a5\uff0c\u4e5f\u9700\u8981\u652f\u6301\u5404\u79cd\u4e0d\u540c\u534f\u8bae\u7684\u63a5\u53e3\u6d4b\u8bd5\uff0c\u7075\u6d3b\u7684\u63d2\u4ef6\u4f53\u7cfb\u4fbf\u53ef\u4ee5\u5f88\u597d\u5730\u89e3\u51b3\u5e73\u53f0\u6269\u5c55\u6027\u7684\u95ee\u9898\u3002\u7528\u6237\u53ef\u4ee5\u6309\u9700\u5b89\u88c5\u3001\u5f00\u53d1\u5404\u79cd\u5f62\u5f0f\u5730\u63d2\u4ef6\u6765\u8986\u76d6\u5404\u79cd\u4e0d\u540c\u7684\u6d4b\u8bd5\u53ca\u5bf9\u63a5\u9700\u6c42\u3002

    \u6027\u80fd\u4f18\u5316\uff1a - UI\u6d4b\u8bd5\u6279\u91cf\u6267\u884c\u6027\u80fd\u4f18\u5316 - \u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u6548\u7387\u4f18\u5316 - \u63a5\u53e3\u6d4b\u8bd5\u6267\u884c\u8fc7\u7a0b\u9644\u4ef6\u52a0\u8f7d\u4f18\u5316 - \u52a0\u8f7d\u673a\u5236\u4ece\u5b9e\u65f6\u83b7\u53d6\u4f18\u5316\u4e3a\u672c\u5730\u7f13\u5b58\u52a0\u6587\u4ef6\u670d\u52a1\uff08MinIO\uff09\u4e2d\u6309\u9700\u83b7\u53d6\u3002 - \u5de6\u4fa7\u6a21\u5757\u6811\u6548\u7387\u4f18\u5316 - \u767b\u5f55\u7cfb\u7edf\u52a0\u8f7d\u8017\u65f6\u6027\u80fd\u4f18\u5316 - \u6279\u91cf\u5bfc\u51fa\u5927\u6570\u636e\u91cf\u7528\u4f8b\u6027\u80fd\u4f18\u5316 - \u6d4b\u8bd5\u8ba1\u5212\u6279\u91cf\u5173\u8054\u5927\u6570\u636e\u91cf\u7528\u4f8b\u6027\u80fd\u4f18\u5316

    \u8fd0\u884c\u7a33\u5b9a\u6027\u63d0\u5347\uff1a \u7528\u6237\u5bf9\u4e8e MeterSphere \u5e73\u53f0\u7684\u4f7f\u7528\u89c4\u6a21\u5f88\u591a\u65f6\u5019\u603b\u4f1a\u8d85\u4e4e\u6211\u4eec\u7684\u60f3\u8c61\u3002\u5728 MeterSphere v2.10 LTS \u7248\u672c\u7684\u8fed\u4ee3\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u63a5\u89e6\u4e86\u5f88\u591a\u5927\u89c4\u6a21\u3001\u9ad8\u9891\u6b21\u4f7f\u7528 MeterSphere \u5f00\u5c55\u65e5\u5e38\u6d4b\u8bd5\u5de5\u4f5c\u7684\u6848\u4f8b\uff0c\u5305\u62ec\u8111\u56fe\u6a21\u5f0f\u4e0b\u7f16\u8f91\u5927\u91cf\u529f\u80fd\u7528\u4f8b\uff0c\u5927\u6279\u91cf\u7684\u63a5\u53e3\u6d4b\u8bd5\u3001UI \u6d4b\u8bd5\u6267\u884c\uff0c\u9ad8\u5e76\u53d1\u9ad8TPS\u7684\u6027\u80fd\u6d4b\u8bd5\u7b49\u4f17\u591a\u4f7f\u7528\u573a\u666f\uff0c\u8fd9\u4e9b\u573a\u666f\u7ed9 MeterSphere \u5e26\u6765\u4e86\u5f88\u5927\u7684\u6311\u6218\uff0c\u4f46\u7ecf\u8fc7\u6211\u4eec\u7684\u4e0d\u61c8\u4f18\u5316\u6700\u7ec8\u90fd\u8fbe\u5230\u4e86\u8ba9\u7528\u6237\u6ee1\u610f\u7684\u6548\u679c\u3002

    MeterSphere v2.10 LTS\u7248\u672c\u4e0d\u4ec5\u5305\u542b\u4e86\u4ee5\u4e0a\u6240\u6709\u771f\u5b9e\u4f7f\u7528\u6848\u4f8b\u4e2d\u7684\u7a33\u5b9a\u6027\u4f18\u5316\u6539\u8fdb\uff0c\u8fd8\u7ecf\u8fc7\u4e86\u6211\u4eec\u957f\u8fbe3\u4e2a\u6708\u7684\u5185\u90e8\u6d4b\u8bd5\u548c\u90e8\u5206\u7528\u6237\u7684\u7070\u5ea6\u6d4b\u8bd5\u3002

    \u7cfb\u7edf\u5b89\u5168\u5347\u7ea7\uff1a

    • \u63a5\u53e3\u6d4b\u8bd5\u7981\u7528\u672c\u5730\u6267\u884c\uff1a \u5728\u4e4b\u524d\u7684\u7248\u672c\u4e2d\uff0c\u63a5\u53e3\u6d4b\u8bd5\u63d0\u4f9b\u4e86\u672c\u5730\u6267\u884c\uff08\u5373\u5728\u63a5\u53e3\u6d4b\u8bd5\u670d\u52a1\u4e2d\u76f4\u63a5\u6267\u884c\uff09\u548c\u8d44\u6e90\u6c60\u6267\u884c\u4e24\u79cd\u65b9\u5f0f\u3002MeterSphere v2.10 LTS\u7248\u672c\u7981\u7528\u4e86\u63a5\u53e3\u672c\u5730\u6267\u884c\uff0c\u548c\u6027\u80fd\u6d4b\u8bd5\u4e00\u6837\uff0c\u5f53\u63a5\u53e3\u8c03\u8bd5\u6216\u8fd0\u884c\u65f6\u4f1a\u5728\u6307\u5b9a\u7684\u8d44\u6e90\u6c60\u4e0a\u8fd0\u884c\uff0c\u540c\u65f6\u8d44\u6e90\u6c60\u8282\u70b9\u4e0a\u7684 node-controller \u670d\u52a1\u9ed8\u8ba4\u4ee5\u5bb9\u5668\u65b9\u5f0f\u8fd0\u884c\uff0c\u8fd9\u6837\u5373\u4fbf\u5b58\u5728\u4e0a\u8ff0\u7528\u4f8b\u8bbe\u8ba1\u4e0d\u5f53\u7684\u95ee\u9898\u4e5f\u53ea\u4f1a\u5f71\u54cd\u5230\u5bf9\u5e94\u8d44\u6e90\u6c60\u8282\u70b9\u4e0a\u7684 node-controller \u5bb9\u5668\uff0c\u63a5\u53e3\u6d4b\u8bd5\u4e3b\u4f53\u670d\u52a1\u8fd8\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\uff0cnode-controller \u6240\u5728\u670d\u52a1\u5668\u4e5f\u4e0d\u4f1a\u53d7\u5230\u5f71\u54cd\u3002

    \u6ce8\u610f\uff1a\u5f53\u5b58\u5728\u591a\u4e2a\u53ef\u7528\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\u65f6\uff0c\u53ef\u4ee5\u5728\u3010\u9879\u76ee\u8bbe\u7f6e->\u5e94\u7528\u7ba1->\u63a5\u53e3\u6d4b\u8bd5\u3011\u83dc\u5355\u4e2d\u914d\u7f6e\u63a5\u53e3\u6267\u884c\u7684\u9ed8\u8ba4\u8d44\u6e90\u6c60\u3002

    • \u6d4b\u8bd5\u7528\u4f8b\u811a\u672c\u9884\u8b66\u901a\u77e5\uff1a \u9664\u4e86\u7981\u7528\u672c\u5730\u6267\u884c\uff0c\u4e3a\u63a5\u53e3\u6d4b\u8bd5\u63d0\u4f9b\u6c99\u7bb1\u6267\u884c\u73af\u5883\u5916\uff0cMeterSphere v2.10 LTS \u7248\u672c\u4e2d\u8fd8\u589e\u52a0\u4e86\u4e3b\u52a8\u9884\u8b66\u673a\u5236\uff0c\u5f53\u7528\u6237\u4fdd\u5b58\u6216\u4fee\u6539\u7684\u7528\u4f8b\u4e2d\u5305\u542b\u811a\u672c\u5185\u5bb9\u65f6\u53ef\u4ee5\u914d\u7f6e\u6307\u5b9a\u7528\u6237\u5ba1\u6838\uff0c\u5f53\u7cfb\u7edf\u68c0\u6d4b\u5230\u5305\u542b\u811a\u672c\u7684\u7528\u4f8b\u65f6\u4f1a\u89e6\u53d1\u7cfb\u7edf\u6d88\u606f\u901a\u77e5\u6307\u5b9a\u5ba1\u6838\u4eba\u5bf9\u8be5\u811a\u672c\u8fdb\u884c\u5ba1\u6838\u3002
    "},{"location":"about/changelog/#v291","title":"v2.9.1","text":"

    2023\u5e745\u670810\u65e5

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u6267\u884c\u8fc7\u7a0b\u8d44\u6e90\u6c60\u6821\u9a8c\u53ca\u7ed3\u679c\u5904\u7406
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u6279\u91cf\u4fdd\u5b58\u73af\u5883\uff0c\u7f16\u8f91\u9875\u9762\u663e\u793a\u73af\u5883
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u5217\u8868\u5e73\u53f0\u72b6\u6001\u5b57\u6bb5\u5bbd\u5ea6\u663e\u793a\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u5220\u9664\u6d4b\u8bd5\u8ba1\u5212\u6279\u91cf\u5173\u8054\u529f\u80fd\u7528\u4f8b\uff0c\u65e0\u7528\u4ee3\u7801
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u66f4\u65b0\u7528\u4f8b\u9700\u6c42\u65f6\uff0c\u8c03\u7528\u63d2\u4ef6\u9884\u7559\u7684\u9700\u6c42\u66f4\u65b0\u65b9\u6cd5
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u81ea\u5b9a\u4e49\u5b57\u6bb5\u8868\u5355\u987a\u5e8f\u8ddf\u6a21\u677f\u914d\u7f6e\u4fdd\u6301\u4e00\u81f4
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u529f\u80fd\u7528\u4f8b\u9875\u9762\uff0c\u6253\u5f00\u65f6\u6e05\u9664\u4e0a\u6b21\u6392\u5e8f
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u6b65\u9aa4\u652f\u6301\u63d2\u5165\u6b65\u9aa4
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6279\u91cf\u63d2\u5165\u6570\u636e\u8fc7\u591a\u5bfc\u81f4OOM\u4f18\u5316\uff0c\u65b0\u589e\u6279\u91cfutils
    • refactor(\u7f3a\u9677\u7ba1\u7406): \u7f3a\u9677\u5217\u8868\u5e73\u53f0\u72b6\u6001\u5217\u652f\u6301\u7b5b\u9009\u548c\u6392\u5e8f
    • refactor(\u7cfb\u7edf\u8bbe\u7f6e): \u7981\u7528\u672c\u5730\u8c03\u8bd5\u540e\u7ed9\u9879\u76ee\u521d\u59cb\u5316\u4e00\u4e2a\u9ed8\u8ba4\u8d44\u6e90\u6c60

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): firefox\u6d4f\u89c8\u5668\u67e5\u770b\u529f\u80fd\u7528\u4f8b\u9875\u9762\u663e\u793a\u5f02\u5e38
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4ece1.20\u5347\u7ea7\u52302.8\u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u8bc4\u8bba\u4e0d\u663e\u793a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u9996\u9875-\u6211\u521b\u5efa\u7684\u8bc4\u5ba1\u663e\u793a\u6709\u8bef
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5173\u8054UI\u53ca\u573a\u666f\u7528\u4f8b\u5f39\u7a97\u5de6\u4fa7\u6a21\u5757\u6811\u7b5b\u9009\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212-\u529f\u80fd\u7528\u4f8b\u5217\u8868\u6392\u5e8f\u6709\u8bef
    • fix(\u9879\u76ee\u7ba1\u7406): \u4fee\u590dGit\u6587\u4ef6\u5f15\u5165\u5176\u4ed6\u5206\u652f\u6587\u4ef6\u65f6\u63d0\u793a\u6587\u4ef6\u5df2\u5b58\u5728\u7684bug\uff0c\u5e76\u5728\u8868\u683c\u5c55\u793agit\u6587\u4ef6\u65f6\u589e\u52a0\u5206\u652f\u663e\u793a
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590dgit\u6587\u4ef6\u6dfb\u52a0\u4ee5\u53ca\u62c9\u53d6\u65f6commitId\u5e76\u4e0d\u662f\u6587\u4ef6\u672c\u8eab\u6700\u540e\u4e00\u6b21commitId\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): TCPMock\u540e\u7f6e\u811a\u672c\u652f\u6301\u83b7\u53d6tcp\u8bf7\u6c42\u53c2\u6570
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dV1\u7248\u672c\u65e7\u6570\u636e\u4e2d\u524d\u540e\u7f6eSQL\u7ec4\u4ef6\u53d6\u4e0d\u5230\u73af\u5883\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590djmeter\u4e0d\u586b\u5199\u8def\u5f84\u5bfc\u51fa\u7684jmx\u6587\u4ef6\u5bfc\u5165\u5230ms\u5185\uff0c\u6dfb\u52a0\u8def\u5f84\u65e0\u6cd5\u6d4b\u8bd5\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590djsonschema\u9009\u62e9number\u7c7b\u578b\u6570\u636e\u7cbe\u5ea6\u7f3a\u5931\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dquery\u53c2\u6570\u662fjson\u6570\u636e\u65f6\uff0c\u9009\u62e9\u7f16\u7801\u4e0d\u751f\u6548\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dsql\u81ea\u5b9a\u4e49\u8bf7\u6c42\u6ca1\u6709\u540d\u5b57\uff0c\u751f\u6210\u62a5\u544a\u4e3a\u7a7a\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dswagger\u5bfc\u5165\u6709\u5927\u91cferror\u65e5\u5fd7\u8f93\u51fa\u7684\u7f3a\u9677
    "},{"location":"about/changelog/#v290","title":"v2.9.0","text":"

    2023\u5e744\u670827\u65e5

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6279\u91cf\u5bfc\u51fa\u529f\u80fd\u7528\u4f8b\u6027\u80fd\u4f18\u5316
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7528\u4f8b\u6027\u80fd\u4f18\u5316
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u7528\u4f8b\u8bc4\u5ba1\u5217\u8868\u589e\u52a0\u6807\u7b7e\u5217
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u9ad8\u7ea7\u641c\u7d22\u652f\u6301\u8f93\u5165\u591a\u4e2a\u6807\u7b7e\u641c\u7d22
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u5bfc\u5165\u903b\u8f91\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3CASE\u652f\u6301\u901a\u8fc7\u8def\u5f84\u5feb\u6377\u641c\u7d22
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u573a\u666f\u5217\u8868\u5c55\u793a\u5b9a\u65f6\u4efb\u52a1\u5217
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u81ea\u52a8\u5316\u6587\u6863\u7ed3\u6784\u65ad\u8a00\u589e\u52a0\u590d\u9009\u6846\u64cd\u4f5c
    • UI \u6d4b\u8bd5\uff1aUI\u573a\u666f\u5217\u8868\u5c55\u793a\u5b9a\u65f6\u4efb\u52a1\u5217
    • \u901a\u7528\u529f\u80fd\uff1a\u9996\u6b21\u767b\u5f55\u7cfb\u7edf\u52a0\u8f7d\u8017\u65f6\u4f18\u5316

    \u95ee\u9898\u4fee\u590d

    • fix\uff08\u6d4b\u8bd5\u8ddf\u8e2a\uff09\uff1a\u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u5931\u8d25\u91cd\u8bd5\u65f6\u5bfc\u81f4\u8ba1\u5212\u4e2d\u63a5\u53e3\u811a\u672c\u7684\u5faa\u73af\u6ca1\u6709\u88ab\u6267\u884c\u5b8c\u5168\u7684\u95ee\u9898\uff08GitHub #23509\uff09
    • fix\uff08\u6d4b\u8bd5\u8ddf\u8e2a\uff09\uff1a\u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u65f6\u81ea\u5b9a\u4e49\u5b57\u6bb5\u6587\u672c\u6846\u8f93\u5165{}\u4f1a\u663e\u793a\u4e3a[object Object]\u7684\u95ee\u9898\uff08GitHub #23515\uff09
    • fix\uff08\u6d4b\u8bd5\u8ddf\u8e2a\uff09\uff1a\u4fee\u590d\u4ece1.20LTS\u7248\u672c\u5347\u7ea7\u5230\u6700\u65b0\u7248\u672c\u7528\u4f8b\u6267\u884c\u4e0a\u4f20\u7684\u622a\u56fe\u548c\u8bc4\u8bba\u67e5\u8be2\u4e0d\u5230\u7684\u95ee\u9898\uff08GitHub #23500\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590dJMeter\u4e0d\u586b\u5199\u8def\u5f84\u5bfc\u51fa\u7684jmx\u6587\u4ef6\u5bfc\u5165\u5230ms\u5185\u6dfb\u52a0\u8def\u5f84\u65e0\u6cd5\u6d4b\u8bd5\u7684\u95ee\u9898\uff08GitHub #23416\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590dCASE \u6267\u884c\u5b8c\u8bf7\u6c42\u540e\uff0c\u624b\u52a8\u4fee\u6539\u9884\u89c8\u54cd\u5e94\u4f53\u4e3a json\uff0c\u518d\u6b21\u6267\u884c\u9884\u89c8\u683c\u5f0f\u6709\u8bef\u7684\u95ee\u9898\uff08GitHub #23350\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u63a5\u53e3\u7528\u4f8b\u6267\u884c\u5b8c\u6210\uff0c\u901a\u8fc7\u7387\u6570\u636e\u4e0d\u4f1a\u81ea\u52a8\u66f4\u65b0\u7684\u95ee\u9898\uff08GitHub #23386\uff09
    "},{"location":"about/changelog/#v280","title":"v2.8.0","text":"

    2023\u5e743\u670823\u65e5

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u6027\u80fd\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u6587\u4ef6\u5b58\u5728\u91cd\u590d\u63a5\u53e3\u7684\u5bfc\u5165\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u8bef\u62a5\u673a\u5236\u4e0e\u5931\u8d25\u91cd\u8bd5\u673a\u5236\u4f18\u5316
    • UI \u6d4b\u8bd5\uff1aUI\u573a\u666f\u81ea\u52a8\u5316\u6279\u91cf\u6267\u884c\u6548\u7387\u4f18\u5316
    • \u901a\u7528\u529f\u80fd\uff1a\u7cfb\u7edf\u5de6\u4fa7\u6a21\u5757\u6811\u52a0\u8f7d\u6548\u7387\u4f18\u5316

    \u95ee\u9898\u4fee\u590d

    • fix\uff08\u6d4b\u8bd5\u8ddf\u8e2a\uff09\uff1a\u4fee\u590d\u5728\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u9009\u62e9\u73af\u5883\u65f6\u65e0\u6cd5\u9009\u62e9\u591a\u4e2a\u9879\u76ee\u73af\u5883\uff0c\u5bfc\u81f4\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\u65f6\u4e00\u76f4running\u7684\u95ee\u9898\uff08GitHub #22858\uff09
    • fix\uff08\u6d4b\u8bd5\u8ddf\u8e2a\uff09\uff1a\u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u62a5\u544a\u540e\u5728\u7ebf\u770b\u5355\u6b65\u7ed3\u679c\u662f\u6210\u529f\u7684\uff0c\u4f46\u662f\u5bfc\u51fa\u5c31\u53d8\u6210\u4e86\u5931\u8d25\u7684\u95ee\u9898\uff08GitHub #22067\uff09
    • fix\uff08\u6d4b\u8bd5\u8ddf\u8e2a\uff09\uff1a\u4fee\u590dAzure Devops \u5e73\u53f0\u540c\u6b65\u7f3a\u9677\u62a5\u6570\u7ec4\u8d8a\u754c\u7684\u95ee\u9898\uff08GitHub #22943\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u8fd0\u884c\u73af\u5883Http\u57df\u540d\u914d\u7f6e\u5305\u542b\u7aef\u53e3\u53f7\u4f1a\u5bfc\u81f4\u63a5\u53e3\u8bf7\u6c42URL\u4e2d\u591a\u4e86\"[ ]\"\u7684\u95ee\u9898\uff08GitHub #22857\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590dTCP\u534f\u8bae\u7684\u63a5\u53e3\u5b9a\u4e49\u672a\u6309\u7167\u9009\u53d6\u7684\u7f16\u7801\u683c\u5f0f\u52a8\u6001\u751f\u6210xml\u8868\u5934\u7684\u95ee\u9898\uff08GitHub #22540\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u63a5\u53e3\u5b9a\u4e49\u8bbe\u7f6e\u4e86swagger\uff08\u6709\u6dfb\u52a0\u8bf7\u6c42\u53c2\u6570\uff09\u5b9a\u65f6\u4efb\u52a1\uff0c\u4e0d\u4f1a\u81ea\u52a8\u89e6\u53d1\u7684\u95ee\u9898\uff08GitHub #22044\uff09
    • fix\uff08UI \u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u5143\u7d20\u5e93&UI\u81ea\u52a8\u5316\u5217\u8868\u8bbe\u7f6e\u8868\u5934\u540e\uff0c\u9020\u6210\u6279\u91cf\u64cd\u4f5c\u7684\u70b9\u51fb\u6309\u94ae\u6ca1\u6709\u7684\u95ee\u9898\uff08GitHub #22914\uff09
    • fix\uff08UI \u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u573a\u666f\u5f15\u7528\u540e\u540d\u79f0\u663e\u793a\u4e0d\u6b63\u786e\u7684\u95ee\u9898\uff08GitHub #22914\uff09
    • fix\uff08UI \u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u672c\u5730\u8c03\u8bd5\u65f6\uff0c\u70b9\u51fb\u201c\u505c\u6b62\u201d\u6309\u94ae\uff0c\u6d4f\u89c8\u5668\u6ca1\u6709\u7684\u95ee\u9898\uff08GitHub #22557\uff09
    "},{"location":"about/changelog/#v270","title":"v2.7.0","text":"

    2023\u5e742\u670823\u65e5

    \u65b0\u589e\u529f\u80fd

    • \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757UX\u4ea4\u4e92\u5347\u7ea7
    • \u7528\u4f8b\u8bc4\u5ba1\u652f\u6301\u591a\u4eba\u8bc4\u5ba1
    • \u8fd0\u884c\u914d\u7f6e\u652f\u6301\u5931\u8d25\u91cd\u8bd5\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u63a5\u53e3\u6d4b\u8bd5\u652f\u6301\u4e00\u952e\u5931\u8d25\u91cd\u8dd1\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u6587\u4ef6\u7ba1\u7406\u652f\u6301\u5bf9\u63a5\u7b2c\u4e09\u65b9\u4ed3\u5e93\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u4e00\u7ea7\u529f\u80fd\u6a21\u5757\u542f\u7528/\u7981\u7528\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u652f\u6301\u6dfb\u52a0\u529f\u80fd\u7528\u4f8b\u4f9d\u8d56\u5173\u7cfb\u5e76\u751f\u6210\u62d3\u6251\u56fe\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u67e5\u770b\u5f15\u7528\u5173\u7cfb\u5217\u8868\u65b0\u589e\u201c\u590d\u5236\u201d\u5173\u7cfb\u7684\u6570\u636e
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u652f\u6301\u6dfb\u52a0\u63a5\u53e3\u4f9d\u8d56\u5173\u7cfb\u5e76\u751f\u6210\u62d3\u6251\u56fe\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u652f\u6301\u81ea\u52a8\u751f\u6210\u63a5\u53e3\u7528\u4f8b\u6570\u636e\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u652f\u6301\u914d\u7f6e\u7981\u7528\u672c\u5730\u6267\u884c\u7684\u5b89\u5168\u7b56\u7565\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u901a\u7528\u529f\u80fd\uff1a\u652f\u6301\u914d\u7f6e\u79df\u6237\u4f7f\u7528\u914d\u989d\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09
    • \u901a\u7528\u529f\u80fd\uff1a\u652f\u6301\u53d1\u9001\u9879\u76ee\u5b9a\u65f6\u62a5\u544a\uff08X-Pack\u529f\u80fd\u5f00\u653e\u81f3\u5f00\u6e90\u7248\uff09

    \u95ee\u9898\u4fee\u590d

    • fix\uff08\u5b89\u5168\u6f0f\u6d1e\uff09\uff1a\u4fee\u590d\u6587\u4ef6\u4e0b\u8f7d\u8bbf\u95ee\u6743\u9650\u6821\u9a8c\u63a7\u5236\u4e0d\u5f53\u7684\u7f3a\u9677\uff08CVE-2023-25573\u53caCVE-2023-25814\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590dIDEA\u63d2\u4ef6\u5bfc\u51fa\u90e8\u5206\u63a5\u53e3\u65f6\u62a5\u9519\u7684\u95ee\u9898\uff08GitHub #21213\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u5728\u63a5\u53e3\u5b9a\u4e49\u6a21\u5757\u7f16\u8f91CASE\u65f6\uff0c\u4fee\u6539\u540e\u7f6e\u64cd\u4f5c\u4e2d\u7684\u811a\u672c\u4e0d\u751f\u6548\u7684\u95ee\u9898\uff08GitHub #21425\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u4f7f\u7528\u73af\u5883\u7ec4\u6267\u884c\u573a\u666f\u7528\u4f8b\u65f6\uff0c\u4e0d\u80fd\u4fdd\u5b58\u6570\u636e\u5230\u53e6\u5916\u4e00\u4e2a\u9879\u76ee\u7684\u73af\u5883\u53d8\u91cf\u95ee\u9898\uff08GitHub #21345\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u63a5\u53e3\u4fdd\u5b58\u63d0\u793a\u5bf9\u8bdd\u6846\u6709\u6587\u5b57\u9519\u8bef\u7684\u95ee\u9898\uff08GitHub #21367\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u63a5\u53e3\u62a5\u544a\u5bfc\u51faPDF\u6587\u4ef6\u542b\u6709\u7a7a\u767d\u9875\u7684\u95ee\u9898\uff08GitHub #21515\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u5728\u67e5\u770b\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u4e2d\u7684\u65ad\u8a00\u5931\u8d25\u811a\u672c\u65f6\uff0c\u5f39\u51fa\u7684\u5bf9\u8bdd\u6846\u663e\u793a\u5c42\u7ea7\u9519\u8bef\u7684\u95ee\u9898\uff08GitHub #21266\uff09
    • fix\uff08\u7cfb\u7edf\u8bbe\u7f6e\uff09\uff1a\u4fee\u590d\u5347\u7ea7\u5230v2.4.1\u540e/project/list\u67e5\u8be2\u63a5\u53e3\u4e0d\u652f\u6301\u53c2\u6570\u8fc7\u6ee4\u7684\u95ee\u9898\uff08GitHub #20961\uff09
    "},{"location":"about/changelog/#v261","title":"v2.6.1","text":"

    2023\u5e742\u67087\u65e5

    \u529f\u80fd\u4f18\u5316

    • refactor(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u6539\u67e5\u8be2\u6a21\u7248\u7684\u63a5\u53e3\u8c03\u7528
    • refactor(\u63a5\u53e3\u5b9a\u4e49): \u4f18\u5316\u83b7\u53d6\u5f53\u524d\u7528\u6237\u540d\u79f0\u7684\u65b9\u6cd5
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): log\u4f18\u5316\u53bb\u9664\u4e0d\u5fc5\u8981\u5e72\u6270\u65e5\u5fd7\uff0c\u589e\u52a0jvm\u4fe1\u606f
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u5386\u53f2\u6570\u636e\u517c\u5bb9\uff0c\u9ed8\u8ba4\u4e0d\u5f00\u542f\u53d8\u91cf\u89c4\u5219
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u53d8\u91cf\u5f53\u6240\u6709\u4f18\u5148\u89c4\u5219\u4e0d\u9009\u65f6\uff0c\u9ed8\u8ba4\u8fc7\u7a0b\u53d8\u91cf\u4f18\u5148\u5e76\u517c\u5bb9\u5386\u53f2\u6570\u636e

    \u95ee\u9898\u4fee\u590d

    • fix(\u5de5\u4f5c\u53f0): \u5de5\u4f5c\u53f0\u6211\u7684\u5f85\u529e\u5c55\u793a\u4e86\u5df2\u5173\u95ed\u7684\u7f3a\u9677
    • fix(\u5de5\u4f5c\u53f0): \u4fee\u590d\u63a5\u53e3\u5b9a\u4e49\u4ee5\u53ca\u63a5\u53e3\u7528\u4f8b\u5728\u5207\u6362\u5f85\u5b8c\u6210\u65f6\u8fc7\u6ee4\u6761\u4ef6\u4e0d\u6e05\u7a7a\u95ee\u9898
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590dcase\u6dfb\u52a0\u540e\u7f6e\u811a\u672c\uff0c\u591a\u6b21\u4fdd\u5b58\uff0c\u5185\u5bb9\u8fd8\u662f\u4e0a\u4e00\u6b21\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u63a8\u8350jsonpath\u65ad\u8a00\u7d22\u5f15\u8d85\u8fc710\u65e0\u6cd5\u751f\u6210\u9884\u671f\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u5b9a\u65f6\u4efb\u52a1\u9009\u62e9cron\u8868\u8fbe\u5f0f\u65e0\u6cd5\u9009\u62e9\u5e74\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u73af\u5883\u53d8\u91cf\u663e\u793a\u591a\u9009\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u573a\u666f\u8de8\u9879\u76ee\u6267\u884c\u65e0\u6cd5\u4fdd\u5b58\u522b\u7684\u9879\u76ee\u7684\u73af\u5883\u53d8\u91cf\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u6267\u884c\u5faa\u73af\u63a7\u5236\u5668\u4e0b\u9762\u7684\u6b65\u9aa4\u6ca1\u6709\u7ed3\u679c\u72b6\u6001\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5bfc\u5165\u90e8\u5206postman\u6587\u4ef6\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u6587\u5b57\u7edf\u4e00\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u90e8\u5206\u63a5\u53e3\u5bfc\u51faswagger\u6587\u4ef6\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5bfc\u5165\u9875\u9762\u4fdd\u7559swagger\u4e0a\u6b21\u914d\u7f6e\u53c2\u6570\u8bb0\u5f55\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u6539\u8fdb\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875\u7684\u63a5\u53e3\u7528\u4f8b\u7edf\u8ba1\u65b9\u6cd5
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u7981\u7528\u672c\u5730\u6267\u884c\u540e\u5355\u6b65\u8c03\u8bd5\u63d0\u793a\u9519\u8bef\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u6267\u884c\u8fc7\u7a0b\u5305\u62ecCSV\uff0c\u90e8\u5206\u53c2\u6570\u6ca1\u6709\u521d\u59cb\u5316\u7684\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u67e5\u8be2\u9879\u76ee\u63a5\u53e3\u652f\u6301\u6839\u636eJira\u548cZentao\u7684\u5173\u8054ID\u67e5\u8be2
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u67e5\u770bcase\u65ad\u8a00\u811a\u672c\u4e0d\u663e\u793a\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u5173\u8054\u591a\u5c42\u7ea7\u9700\u6c42\u663e\u793a\u4e3a\u7a7a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8111\u56fe\u590d\u5236\u7c98\u8d34\u540e\u6570\u636e\u5c55\u793a\u9519\u8bef
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u5217\u8868\u5bfc\u5165\u591a\u9009\u8f93\u5165\u5b57\u6bb5\u65f6\uff0c \u89e3\u6790\u503c\u6709\u8bef
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u82f1\u6587\u73af\u5883\u4e0b\uff0c\u7528\u4f8b\u5bfc\u5165\u8d23\u4efb\u4eba\u5931\u8d25
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u82f1\u6587\u8bed\u5883\u4e0b\uff0c\u7528\u4f8b\u5bfc\u5165\u7528\u4f8b\u7b49\u7ea7\u5931\u8d25
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u5927\u6279\u91cf\u6267\u884c\u8d85\u65f6\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u8111\u56fe\u66f4\u65b0\u7528\u4f8b\u540e\u6267\u884c\u4eba\u6ca1\u6709\u66f4\u65b0
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u5bfc\u5165\u591a\u503c\u8f93\u5165\u540e\uff0c\u5217\u8868\u4e0d\u5c55\u793a\u6570\u636e
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8111\u56fe\u63d0\u793a\u9519\u8bef\u4fe1\u606f\u540e\uff0c\u518d\u6b21\u4fdd\u5b58\u4f1a\u5bfc\u81f4\u7528\u4f8b\u4e22\u5931
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u53d6\u6d88\u8bb0\u4f4f\u8de8\u9875\u9009\u62e9\u7684\u8bb0\u5f55\u524d\u4e00\u9875\u7684\u6570\u636e\u4e0d\u80fd\u5220\u9664\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u5bfc\u51fa\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u7528\u4f8b\u8d44\u6e90\u6c60\u73af\u5883\u663e\u793a\u4e0d\u6b63\u786e\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u6279\u91cf\u6267\u884c\u63a5\u53e3\u7528\u4f8b\u6ca1\u6709\u6309\u7167\u8868\u683c\u987a\u5e8f\u6267\u884c\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u53d1\u9001\u901a\u77e5\u65f6\u672a\u6267\u884c\u72b6\u6001\u6ca1\u6709\u7edf\u8ba1\u6570\u7684\u95ee\u9898
    • fix(\u901a\u7528\u529f\u80fd): \u5168\u9009\u6846\u4e0b\u62c9\u5217\u8868\uff0c\u70b9\u51fb\u9009\u62e9\u6240\u6709\u6570\u636e\u6216\u8005\u53ef\u89c1\u6570\u636e\uff0c\u4e0d\u51fa\u73b0\u52fe\u9009\u6548\u679c
    "},{"location":"about/changelog/#v260","title":"v2.6.0","text":"

    2023\u5e741\u670812\u65e5

    \u65b0\u589e\u529f\u80fd

    • UI\u81ea\u52a8\u5316\u6d4b\u8bd5\u6a21\u5757\u4e0e\u73af\u5883\u7ba1\u7406\u5168\u9762\u6253\u901a\uff08X-Pack\uff09
    • \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7528\u4f8b\u652f\u6301\u8bb0\u4f4f\u8de8\u9875\u9009\u62e9\u7684\u8bb0\u5f55
    • \u63a5\u53e3\u5b9a\u4e49\u5217\u8868\u652f\u6301\u6279\u91cf\u590d\u5236\u6307\u5b9a\u7248\u672c\u7684CASE\u548cMOCK\u6570\u636e\uff08X-Pack\uff09
    • \u53d8\u66f4Jenkins Job\u8fd0\u884c\u7ed3\u679c\u4e3a\u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u8fd0\u884c\u7ed3\u679c

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u8c03\u6574\u6d4b\u8bd5\u8ba1\u5212\u5b9e\u9645\u7ed3\u679c\u5b57\u6570\u9650\u5236\uff08\u5c06300\u5b57\u6570\u8c03\u6574\u4e3a500\uff09
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u5b9a\u65f6\u4efb\u52a1\u6267\u884c\u7684\u6d4b\u8bd5\u8ba1\u5212\u751f\u6210\u62a5\u544a\u540e\u652f\u6301\u7f16\u8f91\u62a5\u544a\u603b\u7ed3
    • \u63a5\u53e3\u6d4b\u8bd5\uff1aMOCK\u7684\u540e\u7f6e\u811a\u672c\u652f\u6301\u83b7\u53d6\u4e0d\u540c\u683c\u5f0f\u7684\u8bf7\u6c42\u6570\u636e
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u8fd0\u884c\u73af\u5883\u5217\u8868\u652f\u6301\u6a21\u7cca\u641c\u7d22
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u5355\u6b65\u8c03\u8bd5\u7528\u4f8b\u6216\u573a\u666f\u6b65\u9aa4\u65f6\u54cd\u5e94\u5185\u5bb9\u81ea\u52a8\u5c55\u5f00
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3TEST\u652f\u6301\u4fdd\u7559\u6700\u8fd1\u4e00\u6b21\u6267\u884c\u8bb0\u5f55
    • \u901a\u7528\u529f\u80fd\uff1a\u6807\u7b7e\u5b57\u6570\u8fc7\u591a\u5c55\u793a\u4f18\u5316
    • \u901a\u7528\u529f\u80fd\uff1a\u63a5\u53e3\u573a\u666f\u5b9a\u65f6\u4efb\u52a1\u901a\u77e5\u589e\u52a0\u914d\u7f6e\u6d4b\u8bd5\u62a5\u544a\u514d\u767b\u5f55\u53c2\u6570\uff08X-Pack\uff09

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u901a\u8fc7\u6279\u91cf\u4fee\u6539\u7684\u65b9\u5f0f\u4fee\u6539\u6307\u5b9a\u81ea\u5b9a\u4e49\u5b57\u6bb5\u4f1a\u5bfc\u81f4\u5168\u90e8\u5b57\u6bb5\u88ab\u4fee\u6539\u7684\u95ee\u9898\uff08GitHub #21075\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dAPI\u81ea\u52a8\u5316\u9996\u9875\u7edf\u8ba1\u4fe1\u606f\u5728\u5207\u6362table\u9875\u540e\u76f8\u5173\u7edf\u8ba1\u4fe1\u606f\u4e0d\u5c55\u793a\u7684\u95ee\u9898\uff08GitHub #21120\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u4f7f\u7528\u63a5\u53e3\u81ea\u52a8\u5316\u8f6c\u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u65f6\u83b7\u53d6\u4e0d\u5230\u8fd0\u884c\u73af\u5883\u7684\u73af\u5883\u53d8\u91cf\u7684\u95ee\u9898\uff08GitHub #21150\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u4e2d\u5355\u72ec\u6267\u884c\u7528\u4f8b\u4e0d\u80fd\u8c03\u7528\u73af\u5883\u53d8\u91cf\u7684\u95ee\u9898\uff08GitHub #21116\uff09
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u663e\u793a\u8bbe\u7f6e\u4fee\u6539\u7cfb\u7edf\u540d\u79f0\u4e0d\u751f\u6548\u7684\u95ee\u9898\uff08GitHub #21247\uff09
    "},{"location":"about/changelog/#v251","title":"v2.5.1","text":"

    2022\u5e7412\u670830\u65e5

    \u529f\u80fd\u4f18\u5316

    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u6a21\u5757\u6811\u591a\u6b21\u4fdd\u5b58
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7981\u6b62\u6279\u91cf\u5220\u9664\u8fd0\u884c\u4e2d\u7684\u6d4b\u8bd5\u8ba1\u5212

    \u95ee\u9898\u4fee\u590d

    • fix(\u5b89\u5168\u6f0f\u6d1e): \u4fee\u590d\u672a\u68c0\u67e5\u6587\u4ef6\u540d\u5bfc\u81f4\u6587\u4ef6\u53ef\u80fd\u88ab\u4e0a\u4f20\u5230\u4efb\u610f\u8def\u5f84\u7684\u95ee\u9898 (CVE-2022-46178)
    • fix(\u5de5\u4f5c\u53f0): \u5de5\u4f5c\u53f0\u9996\u9875\u7f3a\u9677\u7edf\u8ba1\u6709\u8bef
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dJson\u6570\u7ec4\u65e0\u6cd5\u4f7f\u7528mock\u6570\u636e\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590djson\u683c\u5f0f\u7684\u8bf7\u6c42\u6570\u636e\u5192\u53f7\u88ab\u66ff\u6362\u6210\u7b49\u53f7\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dswagger3.0\u6587\u4ef6\u5bfc\u5165\u5bf9content\u7684example\u6ca1\u6709\u5904\u7406\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u53c2\u6570\u6dfb\u52a0mock\u6570\u636e\u65f6\u6e05\u7a7a\u5386\u53f2\u51fd\u6570
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u7edf\u4e00\u63a5\u53e3\u6d4b\u8bd5\u8f6c\u6027\u80fd\u6d4b\u8bd5\u65f6storage\u5e26\u7684\u53c2\u6570
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u91cd\u590d\u521b\u5efa\u672a\u89c4\u5212\u63a5\u53e3\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u548c\u573a\u666f\u8f6c\u6027\u80fd\u6d4b\u8bd5\u65f6\u4f1a\u5076\u53d1\u91cd\u590djmx\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u70b9\u51fb\u573a\u666f\u62a5\u544a\u8df3\u8f6c\u94fe\u63a5\u6ca1\u6709\u8df3\u8f6c\u5230\u5bf9\u5e94\u9879\u76ee\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212-\u573a\u666f/\u6027\u80fd\u6d4b\u8bd5\u62a5\u544a \u4e0d\u663e\u793a\u8fd0\u884c\u6a21\u5f0f\u548c\u8d44\u6e90\u6c60
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u7528\u4f8b\u4e0d\u5c55\u793a\u81ea\u5b9a\u4e49\u5b57\u6bb5
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u5bfc\u51fa\u591a\u503c\u8f93\u5165\u81ea\u5b9a\u4e49\u5b57\u6bb5\u4e3a\u7a7a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u4fdd\u5b58\u62a5\u544a\u5185\u5bb9\u65f6\u4e0d\u8d4b\u5f00\u59cb\u65f6\u95f4\u548c\u7ed3\u675f\u65f6\u95f4
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u67e5\u8be2\u62a5\u544a\u65f6\u65e0\u6cd5\u67e5\u51fa\u5df2\u5220\u9664\u4eba\u6267\u884c\u7684\u62a5\u544a
    "},{"location":"about/changelog/#v250","title":"v2.5.0","text":"

    2022\u5e7412\u670827\u65e5

    \u65b0\u589e\u529f\u80fd

    • \u5de5\u4f5c\u53f0UX\u4ea4\u4e92\u5347\u7ea7
    • \u63a5\u53e3\u6d4b\u8bd5\u9996\u9875\u589e\u52a0\u201c\u7248\u672c\u201d\u7edf\u8ba1\u53e3\u5f84\uff08X-Pack\uff09
    • \u63a5\u53e3\u5b9a\u4e49\u8bf7\u6c42\u53c2\u6570\u4ea4\u4e92\u4f18\u5316
    • \u6d4b\u8bd5\u62a5\u544a\u652f\u6301\u5c55\u793a\u8fd0\u884c\u6a21\u5f0f\u4ee5\u53ca\u8fd0\u884c\u7684\u8d44\u6e90\u6c60
    • \u65b0\u589e\u8d85\u7ea7\u7ba1\u7406\u5458\u7528\u6237\u7ec4

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u670d\u52a1\u96c6\u6210\u5bf9\u63a5\u7b2c\u4e09\u65b9\u5e73\u53f0\u5b9e\u73b0\u63d2\u4ef6\u5316\uff08\u76ee\u524d\u652f\u6301\u7985\u9053\u3001Jira\uff09
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ddf\u8e2a\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u652f\u6301\u5173\u8054UI\u6d4b\u8bd5\u7528\u4f8b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1aMQTT\u63d2\u4ef6\u53d6\u6d88\u8fde\u63a5\u540d\u5fc5\u586b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u573a\u666f\u5d4c\u5957\u5f15\u7528\u7684\u53d8\u91cf\u53d6\u503c\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u652f\u6301\u914d\u7f6e\u81ea\u52a8\u91cd\u5b9a\u5411
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u573a\u666f\u53d8\u91cf-\u8ba1\u6570\u5668\u652f\u6301\u53c2\u6570\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1ajson\u7ed3\u6784\u5316\u7684\u65f6\u5019\u4f1a\u63d0\u4f9bnull\u7c7b\u578b\u6765\u652f\u6301\u4f20null\u503c
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u6d4b\u8bd5\u524d\u540e\u7f6e\u811a\u672c\u652f\u6301beanshell\u5904\u7406\u5668
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u5bfc\u5165\u903b\u8f91\u4f18\u5316\uff08\u652f\u6301\u7248\u672c\u5bf9\u6bd4\uff09
    • UI\u6d4b\u8bd5\uff1aUI\u6d4b\u8bd5\u7b2c\u4e00\u6b65\u652f\u6301\u903b\u8f91\u63a7\u5236\u5668\uff08X-Pack\uff09
    • UI\u6d4b\u8bd5\uff1aUI\u6d4b\u8bd5\u8be6\u60c5\u9875\u6279\u91cf\u7f16\u8f91\u589e\u52a0\u65ad\u8a00\u914d\u7f6e\u7684\u9009\u9879\uff08X-Pack\uff09
    • \u901a\u7528\u529f\u80fd\uff1a\u6d88\u606f\u901a\u77e5\u589e\u52a0\u5b9a\u65f6\u6e05\u7406\u673a\u5236
    • \u901a\u7528\u529f\u80fd\uff1aJenkins\u751f\u6210\u7684\u62a5\u544a\u94fe\u63a5\u652f\u6301\u914d\u7f6e\u514d\u767b\u5f55\uff08X-Pack\uff09

    \u95ee\u9898\u4fee\u590d

    • fix\uff08\u5b89\u5168\u6f0f\u6d1e\uff09\uff1a\u4fee\u590dIssueProxyResourceService::getMdImageByUrl \u4e2d\u7684\u670d\u52a1\u5668\u7aef\u8bf7\u6c42\u4f2a\u9020 (CVE-2022-23544)
    • fix\uff08\u5b89\u5168\u6f0f\u6d1e\uff09\uff1a\u4fee\u590dApiTestCaseService::deleteBodyFiles \u4e2d\u7684\u8def\u5f84\u6ce8\u5165 (CVE-2022-23512)
    • fix\uff08\u6d4b\u8bd5\u8ddf\u8e2a\uff09\uff1a\u4fee\u590d\u529f\u80fd\u7528\u4f8b\u5217\u8868\uff0c\u5168\u9009\u518d\u5c06\u90e8\u5206\u7528\u4f8b\u53d6\u6d88\u52fe\u9009\uff0c\u70b9\u51fb\u6279\u91cf\u5220\u9664\u540e\u4ecd\u4f1a\u5220\u9664\u6240\u6709\u7528\u4f8b\u7684\u95ee\u9898\uff08GitHub #20553\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u63a5\u53e3\u7f16\u8f91\uff0c\u5f00\u542f\u540c\u6b65case\u6216\u8005\u53d8\u66f4\u901a\u77e5\u4fdd\u5b58\u540e\u62a5\u9519\u7684\u95ee\u9898\uff08GitHub #20376\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u573a\u666f\u6d4b\u8bd5\u62a5\u544a\u5bfc\u51fa\u7684PDF\u6587\u4ef6\u67e5\u770b\u65f6\u6bd4\u8f83\u6a21\u7cca\u7684\u95ee\u9898\uff08GitHub #20738\uff09
    • fix\uff08\u63a5\u53e3\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u73af\u5883\u914d\u7f6e\u91cc\u9762\u7684\u8bf7\u6c42\u5934Cookie\u548c\u5355\u4e2a\u63a5\u53e3\u91cc\u9762\u8bf7\u6c42\u5934\u51b2\u7a81\u7684\u95ee\u9898\uff08GitHub #20467\uff09
    • fix\uff08UI\u6d4b\u8bd5\uff09\uff1a\u4fee\u590dUI\u8fdb\u884cdiv\u5143\u7d20\u62d6\u62fd\u65f6\u81ea\u52a8\u5168\u5c4f\uff0c\u90e8\u5206\u5143\u7d20\u5b9a\u4f4d\u8def\u5f84\u65e0\u6cd5\u8bc6\u522b\u7684\u95ee\u9898\uff08GitHub #20447\uff09
    • fix\uff08\u6027\u80fd\u6d4b\u8bd5\uff09\uff1a\u4fee\u590d\u6027\u80fd\u6d4b\u8bd5\u8bbe\u7f6e\u5b8c\u8d44\u6e90\u6c60\u4e2d\u538b\u529b\u673a\u7684\u6700\u5927\u5e76\u53d1\u6570\uff0c\u538b\u6d4b\u6267\u884c\u65f6\u6ca1\u9650\u5236\u4f4f\u5355\u4e2a\u538b\u529b\u673a\u7684\u6700\u5927\u5e76\u53d1\u6570\u7684\u95ee\u9898\uff08GitHub - #20103\uff09
    • fix\uff08\u901a\u7528\u529f\u80fd\uff09\uff1a\u4fee\u590d\u4efb\u52a1\u4e2d\u5fc3\u63a5\u53e3\u8bf7\u6c42\u65f6\u95f4\u957f\uff0c\u5bfc\u81f4\u4efb\u52a1\u4e2d\u5fc3\u8bbf\u95ee\u65f6\u7a7a\u767d\u9875\u7ecf\u5e38\u51fa\u73b0\u7684\u95ee\u9898\uff08GitHub #20425\uff09
    "},{"location":"about/changelog/#v241","title":"v2.4.1","text":"

    2022\u5e7412\u67088\u65e5

    \u529f\u80fd\u4f18\u5316

    • feat(\u63a5\u53e3\u6d4b\u8bd5): HTTP\u90e8\u5206\u53c2\u6570\u5217\u652f\u6301\u53ef\u914d\u7f6e
    • refactor(\u63a5\u53e3\u8bbe\u7f6e): \u4f18\u5316\u56fd\u9645\u5316\u663e\u793a
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f18\u5316\u5927\u91cf\u7528\u4f8b\u6267\u884c\u5b58\u50a8\u6548\u7387
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u5217\u8868\u9875\u9762\u6e32\u67d3\u6027\u80fd\u4f18\u5316
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u6b65\u9aa4\u89e3\u6790\u4f18\u5316\u7edf\u4e00\u89e3\u6790\u65b9\u5f0f
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u517c\u5bb9\u5386\u53f2\u6267\u884c\u7ed3\u679c\u5904\u7406\u65e5\u5fd7\u4e2d\u51fa\u73b0\u5f02\u5e38\u95ee\u9898#20236
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u7f16\u8f91\u9875\u9762\u9875\u5934\u90e8\u5206\u6837\u5f0f\u4f18\u5316

    \u95ee\u9898\u4fee\u590d

    • fix(UI\u81ea\u52a8\u5316): \u5173\u8054\u4e00\u4e2aui\u573a\u666f\u7528\u4f8b\uff0c\u6ca1\u6709\u6267\u884c\uff0c\u6d4b\u8bd5\u8ba1\u5212\u7684\u6d4b\u8bd5\u8fdb\u5ea6\u53d8\u6210100%\u4e86
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dcase\u7f16\u8f91\u65f6\u65e5\u5fd7\u4e2d\u51fa\u73b0\u5f02\u5e38\u4fe1\u606f
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u89e3\u51b3har\u6587\u4ef6\u5bfc\u5165\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dswagger\u5bfc\u5165\u5931\u8d25\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5f15\u7528\u7684case\u4ecd\u53ef\u4ee5\u7f16\u8f91\u53c2\u6570\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u5d4c\u5957\u4e8b\u52a1\u62c6\u5206\uff0c\u89e3\u51b3\u5e76\u53d1\u8fc7\u7a0b\u53ef\u80fd\u4ea7\u751f\u6b7b\u9501\u7684\u65b9\u6cd5
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u90e8\u5206tcp\u54cd\u5e94\u4f53\u5185\u4f9d\u7136\u5305\u542burl\u7b49\u975etcp\u4fe1\u606f\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5220\u9664\u590d\u5236\u7684case\uff0c\u522b\u7684\u6b65\u9aa4\u7684\u65ad\u8a00\u548c\u524d\u540e\u7f6e\u64cd\u4f5c\u4e5f\u88ab\u5220\u9664\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u5b9a\u4e49\u6267\u884c\u65f6string\u53d6\u679a\u4e3e\u503c\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5386\u53f2\u573a\u666f\u7684\u590d\u5236\u7684\u63a5\u53e3\u65e0\u6cd5\u53e6\u5b58\u4e3acase\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u4efb\u52a1\u4e2d\u5fc3\u6761\u4ef6\u5207\u6362\u4e0d\u5237\u65b0\u7edf\u8ba1\u72b6\u6001\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u62a5\u544a\u540d\u79f0\u5e26\u7279\u6b8a\u5b57\u7b26\u5bfc\u51fa\u5931\u8d25\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u540c\u540d\u6570\u636e\u6e90\u6267\u884c\u8fc7\u7a0b\u4ea7\u751f\u5927\u91cf\u9519\u8bef\u65e5\u5fd7\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u5f15\u7528\u591a\u4e2a\u4e8b\u52a1\u63a7\u5236\u5668\u72b6\u6001\u663e\u793a\u9519\u8bef\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6587\u6863\u54cd\u5e94\u4f53\u90e8\u5206\u5b57\u6bb5\u6ca1\u6709\u683c\u5f0f\u5316\u89e3\u6790\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u6587\u6863\u6837\u5f0f\u4fee\u6539\u4e2d\u51fa\u73b0\u7684\u90e8\u5206\u6570\u636e\u4e0d\u663e\u793a\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u6d4b\u8bd5\u90e8\u5206\u53c2\u6570\u6837\u5f0f\u6539\u4e3a\u8868\u683c\uff0c\u5e76\u9488\u5bf9\u4e00\u7cfb\u5217\u95ee\u9898\u6c47\u603b\u8fdb\u884c\u4f18\u5316
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u4e2d\u6279\u91cf\u5220\u9664\u590d\u5236\u7684case\u6b65\u9aa4\u65f6\uff0c\u524d\u540e\u7f6e\u64cd\u4f5c\uff0c\u65ad\u8a00\u4e5f\u88ab\u5220\u9664\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u7528\u4f8b\u9644\u4ef6\u88ab\u76f4\u63a5\u5220\u9664\u6f0f\u6d1e
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u8bbe\u7f6e\u5bfc\u5165\u63a5\u53e3\u6216\u7528\u4f8b\u9ed8\u8ba4\u542f\u7528\u72b6\u6001
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u65e0xpack\u6743\u9650\u521b\u5efa\u9879\u76ee\u5931\u8d25\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u64cd\u4f5c\u65e5\u5fd7\u5bf9\u8c61\u4e2d\u6dfb\u52a0\u7528\u6237\u7ec4\u548c\u6743\u9650\u9009\u9879
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): Jira\u540c\u6b65\u5168\u91cf\u7f3a\u9677\u5931\u8d25
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212-\u5173\u8054ui-\u6267\u884c\u8ba1\u5212-\u6d4b\u8bd5\u62a5\u544a\u7684id\u4e3a\u7a7a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u7ba1\u7406\u5bfc\u51faEXCEL\u5355\u5143\u683cTEXT\u957f\u5ea6\u5927\u4e8ePOI\u9650\u5236\u7684\u5355\u5143\u683c\u957f\u5ea6\u65f6\u9519\u8bef
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ddf\u8e2a\u9996\u9875TABLE\u5217\u5bf9\u9f50
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6279\u91cf\u5173\u8054\u9700\u6c42\u5931\u6548
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u7f3a\u9677\u7ba1\u7406\u5173\u8054Azure\u81ea\u5b9a\u4e49\u5b57\u6bb5\u5bfc\u5165\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7981\u7528\u672c\u5730\u6267\u884c\u540e\u53ea\u6709UI\u6d4b\u8bd5\u4e0d\u505a\u6821\u9a8c
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u5bfc\u51fa\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u5bfc\u51fa\u7cfb\u7edf\u72b6\u6001\u5b57\u6bb5\u6709\u8bef
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u7684\u5173\u8054\u9700\u6c42\u663e\u793a\u6709\u8bef
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7985\u9053\u540c\u6b65\u7f3a\u9677\u540e\u56fe\u7247\u65e0\u6cd5\u5c55\u793a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u7ba1\u7406\u81ea\u5b9a\u4e49\u5b57\u6bb5\u7b5b\u9009\u65e0\u6548
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f9d\u8d56\u5173\u7cfb\u56fe\u663e\u793a\u4e86\u4e0b\u5c42\u7684\u5bcc\u6587\u672c\u6846
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5207\u6362\u6d4b\u8bd5\u8ba1\u5212\u65f6\u641c\u7d22\u6846\u5185\u5bb9\u672a\u91cd\u7f6e
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7f3a\u9677\uff0c\u7528\u4f8b\u5217\u8868\u4e0d\u53ef\u89c1
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6570\u636e\u592a\u591a\u65f6\uff0c\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u5217\u8868\u5185\u5b58\u6ea2\u51fa
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u5217\u8868\u7f13\u5b58\u641c\u7d22\u6846\u5185\u5bb9\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7985\u9053\u7f3a\u9677\u4e0a\u4f20\u56fe\u7247\u94fe\u63a5\u540e\u540c\u6b65\uff0c\u56fe\u7247\u4e0d\u663e\u793a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ddf\u8e2a\u9996\u9875\u7a7a\u6570\u636e\u6837\u5f0f\u53ca\u7f3a\u9677\u540c\u6b65\u65f6\u95f4\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u5224\u65ad\u6ca1\u6709\u6267\u884c\u8d44\u6e90\u5219\u4e0d\u8c03\u7528\u8be5\u63a5\u53e3
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u5f15\u7528\u573a\u666f\u81ea\u52a8\u5316\u7ffb\u9875\u4fdd\u7559\u9009\u9879\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u56fa\u5b9a\u8282\u70b9\u6216\u81ea\u5b9a\u4e49\u5206\u914d\u7528\u6237\u6570\u65f6\u6700\u5927\u5e76\u53d1\u6570\u4e0d\u80fd\u9650\u5236\u7684\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u73af\u5883\u8bbe\u7f6e\u5386\u53f2\u6570\u636e\u4e0d\u80fd\u7f16\u8f91\u5907\u6ce8\u7684\u7f3a\u9677
    • fix(\u901a\u7528\u529f\u80fd): \u4fee\u590d\u5b9a\u65f6\u4efb\u52a1\u8f93\u5165\u9519\u8bef\u8868\u8fbe\u5f0f\u53cd\u89e3\u6790\u9875\u9762\u5d29\u6e83\u95ee\u9898
    "},{"location":"about/changelog/#v240","title":"v2.4.0","text":"

    2022\u5e7411\u670824\u65e5

    \u65b0\u589e\u529f\u80fd

    • \u6a21\u5757\u9996\u9875 UX \u4ea4\u4e92\u5347\u7ea7
    • \u7f3a\u9677\u7ba1\u7406\u652f\u6301 Excel \u5bfc\u5165/\u5bfc\u51fa\u7f3a\u9677
    • \u6d4b\u8bd5\u8ba1\u5212\u652f\u6301\u533a\u5206\u73af\u5883\u540c\u6b65\u8fd0\u884c
    • \u63a5\u53e3\u6d4b\u8bd5\u652f\u6301\u7981\u7528\u672c\u5730\u6267\u884c \uff08X-Pack \u589e\u5f3a\u5305\u5185\uff09
    • UI \u81ea\u5b9a\u4e49\u6307\u4ee4\u652f\u6301\u53c2\u6570\u5316\u914d\u7f6e\uff08X-Pack \u589e\u5f3a\u5305\u5185\uff09
    • \u5355\u70b9\u767b\u5f55\u65b0\u589e OAuth 2.0 \u534f\u8bae\uff08X-Pack \u589e\u5f3a\u5305\u5185\uff09

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u670d\u52a1\u96c6\u6210\u5bf9\u63a5\u7b2c\u4e09\u65b9\u5e73\u53f0\u63d2\u4ef6\u5316\uff08\u7528\u6237\u53ef\u4ee5\u81ea\u884c\u5bf9\u63a5\u7b2c\u4e09\u65b9\u9879\u76ee\u7ba1\u7406\u5e73\u53f0\uff09
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u5217\u8868\u9ad8\u7ea7\u641c\u7d22\u589e\u52a0\u7528\u4f8b\u72b6\u6001\u3001\u5173\u8054\u9700\u6c42\u641c\u7d22
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ba1\u5212\u652f\u6301\u6279\u91cf\u5220\u9664\u529f\u80fd
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u573a\u666f\u7528\u4f8b\u4e2d\u590d\u5236\u7684 API \u6b65\u9aa4\u652f\u6301\u53e6\u5b58\u4e3a\u5355\u63a5\u53e3\u7528\u4f8b
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3 CASE \u5f15\u7528\u5173\u7cfb\u67e5\u770b\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a7\u5236\u5668\u5185\u5f15\u7528\u7684\u573a\u666f\u6216\u7528\u4f8b\u652f\u6301\u542f\u7528/\u7981\u7528\u64cd\u4f5c
    • UI\u6d4b\u8bd5\uff1aUI \u6d4b\u8bd5\u652f\u6301\u5173\u8054\u201c\u6587\u4ef6\u7ba1\u7406\u201d\u4e2d\u7684\u6587\u4ef6\uff08X-Pack\uff09
    • UI\u6d4b\u8bd5\uff1aUI \u6d4b\u8bd5\u8be6\u60c5\u9875\u652f\u6301\u6279\u91cf\u7f16\u8f91\u64cd\u4f5c\uff08X-Pack\uff09
    • UI\u6d4b\u8bd5\uff1aUI \u6d4b\u8bd5\u652f\u6301\u914d\u7f6e\u662f\u5426\u5ffd\u7565\u8bc1\u4e66\uff08X-Pack\uff09
    • UI\u6d4b\u8bd5\uff1aUI \u6d4b\u8bd5\u652f\u6301\u83b7\u53d6\u9875\u9762\u5143\u7d20\u7684CSS\u5c5e\u6027\uff08X-Pack\uff09
    • \u6027\u80fd\u6d4b\u8bd5\uff1a\u6027\u80fd\u6d4b\u8bd5\u5217\u8868\u589e\u52a0\u8868\u5934\u5b57\u6bb5\u6392\u5e8f
    • \u6027\u80fd\u6d4b\u8bd5\uff1a\u6027\u80fd\u6d4b\u8bd5 Kubernetes \u8d44\u6e90\u6c60\u652f\u6301\u81ea\u5b9a\u4e49 Job \u6a21\u677f\uff08X-Pack\uff09
    • \u6027\u80fd\u6d4b\u8bd5\uff1a\u5b9e\u65f6\u62a5\u544a\u8ba1\u7b97\u4f18\u5316
    • \u901a\u7528\u529f\u80fd\uff1aJenkins \u63d2\u4ef6\u652f\u6301\u53c2\u6570\u5316
    • \u901a\u7528\u529f\u80fd\uff1aJenkins \u63d2\u4ef6\u652f\u6301\u9009\u62e9UI\u6d4b\u8bd5

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u5728\u6d4b\u8bd5\u8ba1\u5212\u8bbe\u7f6e\u5931\u8d25\u91cd\u8bd5\uff0c\u4f46\u6ca1\u6709\u91cd\u65b0\u6267\u884c\u7684\u95ee\u9898\uff08GitHub #19228\uff09
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u6267\u884c\u7684\u65f6\u5019\u4e0d\u80fd\u5207\u6362\u6b65\u9aa4\u63cf\u8ff0\u7684\u95ee\u9898\uff08GitHub #19851\uff09
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u7528\u4f8b\u81ea\u5b9a\u4e49 ID \u540e\uff0c\u5728\u7528\u4f8b\u8bc4\u5ba1\u5217\u8868\u8fd8\u663e\u793a\u4e3a\u7cfb\u7edf ID \u7684\u95ee\u9898\uff08GitHub #19730\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u591a\u9879\u76ee\u540c\u540d\u73af\u5883\u53d8\u91cf\u5b58\u5728\u8986\u76d6\u7684\u95ee\u9898\uff08GitHub #19931\uff09
    • fix(UI\u6d4b\u8bd5): \u4fee\u590d UI \u573a\u666f\u8f6c\u4e3a\u6307\u4ee4\u65f6\uff0c\u5bf9\u5e94\u7684 UI \u573a\u666f\u53d8\u91cf\u6ca1\u6709\u540c\u6b65\u8fc7\u53bb\uff0c\u9700\u8981\u624b\u52a8\u91cd\u65b0\u6dfb\u52a0\u7684\u95ee\u9898\uff08GitHub #19424\uff09
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u4fdd\u5b58\u6027\u80fd\u6d4b\u8bd5\u63d0\u793a\u9519\u8bef\u7684\u95ee\u9898\uff08GitHub #19734\uff09
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u6d88\u606f\u901a\u77e5\u4e0d\u80fd\u901a\u77e5\u7f3a\u9677\u5904\u7406\u4eba\u7684\u95ee\u9898\uff08GitHub #19855\uff09
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d Minio \u6302\u6389\u540e\uff0c\u9875\u9762\u8fd8\u80fd\u4e0a\u4f20\u6587\u4ef6\u7684\u95ee\u9898\uff08GitHub #19860\uff09
    "},{"location":"about/changelog/#v231","title":"v2.3.1","text":"

    2022\u5e7411\u670810\u65e5

    \u529f\u80fd\u4f18\u5316

    • refactor(\u5de5\u4f5c\u53f0): \u66f4\u6539\u6211\u7684\u5f85\u529e\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u7b5b\u9009\u6761\u4ef6
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u7edf\u4e00\u4efb\u52a1\u4e2d\u5fc3Jenkins\u8c03\u7528\u72b6\u6001
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u8111\u56fe\u7f3a\u9677\u56fd\u9645\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u4ee3\u7801\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u589e\u52a0\u7528\u4f8b\u8bc4\u5ba1\u540d\u79f0\u957f\u5ea6\u9650\u5236
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u529f\u80fd\u7528\u4f8b\u8de8\u9879\u76ee\u8df3\u8f6c\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6ca1\u6709\u63a5\u53e3\u6d4b\u8bd5\u6743\u9650\u7684\u5173\u8054\u8868\u4e0d\u53ef\u4ee5\u70b9\u51fb\u8df3\u8f6c
    • refactor(\u4efb\u52a1\u4e2d\u5fc3): \u4f18\u5316\u4efb\u52a1\u4e2d\u5fc3\u6309\u7167\u4efb\u52a1\u7c7b\u578b\u52a0\u8f7d
    • refactor(\u4efb\u52a1\u4e2d\u5fc3): \u4efb\u52a1\u7edf\u8ba1\u4f18\u5316\u53ea\u7edf\u8ba1\u5df2\u7ecf\u5f00\u59cb\u6267

    \u95ee\u9898\u4fee\u590d

    • fix(\u5de5\u4f5c\u53f0): \u4fee\u590d\u6267\u884c\u5931\u8d25\u5c31\u8fdb\u5165\u5de5\u4f5c\u53f0\u5f85\u66f4\u65b0\u5217\u8868\u95ee\u9898
    • fix(UI\u81ea\u52a8\u5316): jenkins\u6267\u884c-\u6d4b\u8bd5\u62a5\u544a\u5217\u8868\u89e6\u53d1\u65b9\u5f0f\u7f3a\u5c11API\u8c03\u7528
    • fix(UI\u81ea\u52a8\u5316): \u4fee\u590dUI\u64cd\u4f5c\u65e5\u5fd7\u4e0d\u663e\u793a\u95ee\u9898
    • fix(UI\u81ea\u52a8\u5316): \u4fee\u590d\u8bbe\u7f6e\u6a21\u5757\u64cd\u4f5c\u65e5\u5fd7UI\u6620\u5c04\u95ee\u9898
    • fix(UI\u81ea\u52a8\u5316): \u4fee\u590d\u5f00\u6e90\u7248\u4efb\u52a1\u4e2d\u5fc3\u62a5\u9519\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u590d\u5236\u6d4b\u8bd5\u8ba1\u5212\u6ca1\u6709\u64cd\u4f5c\u65e5\u5fd7\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u7f3a\u9677\u72b6\u6001\u7edf\u8ba1\u4e0d\u51c6\u786e
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u9996\u9875\u9057\u7559\u7f3a\u9677\u7edf\u8ba1\u603b\u6570\u548c\u5360\u6bd4\u7edf\u8ba1
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u516c\u5171\u7528\u4f8b\u5e93\u7248\u672c\u5b57\u6bb5\u4e0d\u652f\u6301\u7b5b\u9009\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u67e5\u770b\u63a5\u53e3\u6587\u6863\u9875\u9762\u62a5\u9519\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u6267\u884c\u573a\u666f\uff0c\u901a\u8fc7\u7387\u4e0d\u66f4\u65b0\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u73af\u5883\u914d\u7f6e\u5168\u5c40\u8ba4\u8bc1\u4e0d\u751f\u6548\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5f15\u7528\u573a\u666f\u6b65\u9aa4\u80fd\u6dfb\u52a0\u540c\u7ea7\u6b65\u9aa4\u95ee\u9898
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590dtcp\u6267\u884c\u6ca1\u6709\u63d0\u793a\u9009\u62e9\u73af\u5883\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u81ea\u5b9a\u4e49\u8bf7\u6c42\u6267\u884c\u53d8\u91cf\u503c\u7f3a\u5931\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u63a5\u53e3\u5b9a\u4e49\u65b0\u503c\u548c\u65e7\u503c\u663e\u793a\u4e00\u6837\u7684\u7f3a\u9677
    • fix(\u4efb\u52a1\u4e2d\u5fc3): \u4fee\u590dui\u6d4b\u8bd5\u4efb\u52a1\u6ca1\u6709\u5206\u9875\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u66f4\u6362\u7cfb\u7edfLOGO\u540e\u4e0d\u751f\u6548
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u64cd\u4f5c\u65e5\u5fd7\u64cd\u4f5c\u5bf9\u8c61\u73af\u5883\u8bbe\u7f6e\u66f4\u6539\u540d\u79f0\u4e3a\u73af\u5883\u7ba1\u7406
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u64cd\u4f5c\u65e5\u5fd7\u4e2d\u64cd\u4f5c\u5bf9\u8c61\u7f3a\u5c11\u5de5\u4f5c\u7a7a\u95f4\u7684\u73af\u5883\u7ba1\u7406\u6a21\u5757
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u6d88\u606f\u901a\u77e5\u63a5\u53e3\u5b9a\u4e49API\u66f4\u65b0\u4e8b\u4ef6\u4e00\u4e9b\u6a21\u7248\u5b57\u6bb5\u83b7\u53d6\u4e0d\u5230\u503c\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u7f16\u8f91\u6a21\u677f\u81ea\u5b9a\u4e49\u5b57\u6bb5\u9ed8\u8ba4\u503c\uff0c\u6587\u672c\u8fc7\u5927\u65e0\u6cd5\u7f16\u8f91
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u663e\u793a\u62a5\u544a\u65f6\u6d4b\u8bd5\u8be6\u60c5\u7a7a\u767d\u7684\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u589e\u52a0\u4e86\u81ea\u5b9a\u4e49\u76d1\u63a7\u65f6\u4e0d\u80fd\u6b63\u5e38\u663e\u793a\u76d1\u63a7\u7684\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u7f16\u8f91\u6d4b\u8bd5\u65f6\u5220\u9664\u6587\u4ef6\u540e\u4e0d\u80fd\u7ee7\u7eed\u5bfc\u5165\u540c\u540d\u6587\u4ef6\u7684\u95ee\u9898
    • fix(\u62a5\u544a\u7edf\u8ba1): \u4fee\u590d\u5173\u95ed\u5b9a\u65f6\u4efb\u52a1\u63d0\u793a\u6846\u63d0\u793a\u9519\u8bef\u7684\u95ee\u9898
    • fix(\u62a5\u544a\u7edf\u8ba1): \u6d4b\u8bd5\u7528\u4f8b\u8d8b\u52bf\u62a5\u8868\u67e5\u770b\u9879\u76ee\u4e0d\u518d\u4ee5\u5de5\u4f5c\u7a7a\u95f4\u4e3a\u6761\u4ef6
    "},{"location":"about/changelog/#v230","title":"v2.3.0","text":"

    2022\u5e7410\u670827\u65e5

    \u65b0\u589e\u529f\u80fd

    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u589e\u52a0 XML \u6587\u672c\u81ea\u52a8\u683c\u5f0f\u5316\u529f\u80fd
    • \u63a5\u53e3\u6d4b\u8bd5\uff1aMOCK \u53d8\u66f4\u589e\u52a0\u6d88\u606f\u901a\u77e5
    • \u7f3a\u9677\u7ba1\u7406\uff1a\u652f\u6301\u589e\u91cf\u540c\u6b65\u7b2c\u4e09\u65b9\u5e73\u53f0\u7f3a\u9677

    \u529f\u80fd\u4f18\u5316

    • \u67b6\u6784\u5347\u7ea7\uff1a\u5fae\u670d\u52a1\u6539\u9020
    "},{"location":"about/changelog/#v221","title":"v2.2.1","text":"

    2022\u5e7411\u67082\u65e5

    \u529f\u80fd\u4f18\u5316

    • refactor(\u6027\u80fd\u6d4b\u8bd5): \u6027\u80fd\u6d4b\u8bd5\u53bb\u6389\u6587\u4ef6\u4e0a\u4f20\u6570\u91cf\u7684\u9650\u5236
    • refactor: \u524d\u7aef\u8f93\u5165\u6846Mock\u8865\u5168JMeter\u5185\u7f6e\u51fd\u6570\u7684\u63d0\u793a

    \u95ee\u9898\u4fee\u590d

    • fix(UI\u81ea\u52a8\u5316): \u89e3\u51b3UI\u5e76\u53d1\u62a5\u544a\u90e8\u5206\u672a\u6267\u884c\u95ee\u9898
    • fix(UI\u81ea\u52a8\u5316): \u89e3\u51b3UI\u62a5\u544a\u6267\u884c\u65f6\u95f4\u548c\u672a\u6267\u884c\u5217\u8868\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): Jira\u540c\u6b65\u7ecf\u529e\u4eba\u53ca\u9879\u76ee\u96c6\u5b57\u6bb5\u6709\u8bef (#18282)
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8bc4\u5ba1\u8bc4\u8bba\u663e\u793a\u95ee\u9898 (#18206)
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): Jira\u6ca1\u52fe\u9009\u7b2c\u4e09\u65b9\u6a21\u677f\uff0c\u63d0\u4ea4\u7f3a\u9677\u56fe\u7247\u4e0d\u663e\u793a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u8bc4\u5ba1ID\u6392\u5e8f\u663e\u793a\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f9d\u8d56\u5173\u7cfb\u5217\u8868\u5e03\u5c40\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u5bfc\u51fa\u4e71\u5e8f\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f18\u5316\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u67e5\u770b\u901f\u5ea6
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u8bc4\u5ba1\u72b6\u6001\u7b5b\u9009\u5931\u6548
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8bc4\u5ba1\u7528\u4f8b\u5168\u9009\u6279\u91cf\u7f16\u8f91\u7b5b\u9009\u5931\u6548
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u53ca\u7528\u4f8b\u8bc4\u5ba1\u4f9d\u8d56\u5173\u7cfb\u7684\u663e\u793a\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u573a\u666f\u65f6\u62a5\u544a\u5185\u5bb9\u4e3a\u7a7a\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u81ea\u5b9a\u4e49\u5b57\u6bb5\u9ad8\u7ea7\u641c\u7d22\u7ed3\u679c\u6709\u591a\u6761\u4f1a\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5173\u8054Jira\u5e73\u53f0\u4f7f\u7528\u9ed8\u8ba4\u6a21\u677f\u4fee\u6539\u5e73\u53f0\u72b6\u6001\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u63a5\u53e3\u5b9a\u4e49\u4fdd\u5b58\u62a5\u9519\u7684\u7f3a\u9677 (#18258)
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590dcase\u7f16\u8f91\u9875\u9762\u81ea\u5b9a\u4e49\u5b57\u6bb5\u5bcc\u6587\u672c\u5e93\u906e\u6321\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u5faa\u73af\u63a7\u5236\u5668\u4e0b\u573a\u666f\u53d8\u91cfcsv\u53d6\u503c\u4e0d\u5bf9\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u62a5\u544a\u91cd\u7f6e\u89e6\u53d1\u65b9\u5f0f\u9875\u9762\u62a5\u9519\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u5bfc\u5165\u7684\u63a5\u53e3\u5b9a\u4e49\u65e0\u6cd5\u6dfb\u52a0\u6587\u4ef6\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u6587\u6863\u7b5b\u9009\u4e0d\u751f\u6548\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u573a\u666f\u521b\u5efa\u65b0\u7248\u672c\uff0c\u4e0d\u663e\u793a\u521b\u5efa\u4eba\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u63a5\u53e3\u5b9a\u4e49\u81ea\u5b9a\u4e49\u5b57\u6bb5\u8f93\u5165\u6846\uff0c\u8f93\u5165\u957f\u5b57\u7b26\u4fdd\u5b58\u62a5\u9519\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u6d4b\u8bd5): get\u65b9\u5f0f\u7684mock\u63a5\u53e3\uff0c\u4e0d\u8bbe\u7f6e\u4efb\u4f55\u5339\u914d\u6761\u4ef6\u65f6\uff0c\u54cd\u5e94\u4f53\u4e3a\u7a7a
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u89e3\u51b3\u63a5\u53e3API\u70b9\u51fb\u4fdd\u5b58\u4e00\u952e\u540c\u6b65\u529f\u80fd\u5bfc\u81f4\u63a5\u53e3case\u53c2\u6570\u65e0\u6cd5\u65b0\u589e\u548c\u8986\u76d6\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u89e3\u51b3\u63a5\u53e3swagger\u6587\u4ef6\u5bfc\u5165\u89e3\u6790\u9519\u8bef\u95ee\u9898\u4ee5\u53ca\u975eHTTP\u534f\u8bae\u8986\u76d6\u6a21\u5757\u5bfc\u5165\u62a5\u9519\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u89e3\u51b3\u573a\u666f\u7f16\u8f91-\u63a5\u53e3\u5217\u8868\u5bfc\u5165-\u5207\u6362\u5de5\u4f5c\u7a7a\u95f4\u540e\u70b9\u51fb\u6a21\u5757-\u6a21\u5757\u6811\u53d1\u751f\u53d8\u66f4\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u6b65\u9aa4\u62d6\u62fd\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u6539\u8ba1\u7b97\u63a5\u53e3\u8986\u76d6\u7387\u7684\u903b\u8f91
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5f15\u7528\u573a\u666f\u6b65\u9aa4\u80fd\u6dfb\u52a0\u540c\u7ea7\u6b65\u9aa4\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u5b9a\u4e49\u6587\u6863\u7684\u9ad8\u7ea7\u8bbe\u7f6e\u4e00\u952e\u5c55\u5f00\u529f\u80fd\u589e\u52a0\u5bf9jsonschema\u8282\u70b9\u7684\u5c55\u5f00
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a\u4e2d\u63a5\u53e3\u7528\u4f8b\u89e6\u53d1\u65b9\u5f0f\u8bc6\u522b\u4e0d\u51fajenkins\u6267\u884c\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u7528\u4f8b\u6309\u7167\u6267\u884c\u72b6\u6001\u67e5\u8be2\u65f6\u5bf9\u505c\u6b62\u72b6\u6001\u7684\u6570\u636e\u5f52\u7c7b\u9519\u8bef\u7684\u95ee\u9898
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u6587\u4ef6\u5e93\u8282\u70b9\u7684token\u8f93\u5165\u6846\u6539\u4e3a\u5bc6\u7801\u6846\uff0ctoken\u4e0d\u4f1a\u660e\u6587\u5c55\u793a
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u81ea\u5b9a\u4e49\u5b57\u6bb5\u4f7f\u7528\u573a\u666f\u7b5b\u9009\uff0c\u7f3a\u5c11\u6d4b\u8bd5\u8ba1\u5212\u9009\u9879
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u7cfb\u7edf\u8bbe\u7f6e\u7f16\u8f91\u9879\u76ee\u8bbe\u7f6e\u9009\u62e9\u63a5\u53e3\u6a21\u7248\u4e0d\u751f\u6548\u7684\u7f3a\u9677 (#18253)
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u89e3\u51b3\u53ea\u6388\u4e88\u4e2a\u4eba\u4fe1\u606f-ui\u8bbe\u7f6e\u6743\u9650\u65f6\uff0c\u4e2a\u4eba\u4fe1\u606f\u5f39\u6846\u70b9\u4e0d\u5f00\u7684\u95ee\u9898
    • fix(\u6d88\u606f\u901a\u77e5): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u53d1\u9001\u901a\u77e5\u53d8\u91cf\u83b7\u53d6\u7684\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u5728\u5f39\u6846\u4e2d\u4fee\u6539\u5b9a\u65f6\u4efb\u52a1\u72b6\u6001\u4e0d\u751f\u6548\u7684\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u6279\u91cf\u8f6c\u6210\u6027\u80fd\u6d4b\u8bd5\u65f6\u91cd\u590d\u5bfc\u5165\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ba1\u5212): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u8df3\u8f6c\u573a\u666f\u63d0\u793a\u573a\u666f\u88ab\u5220\u9664\u7684\u7f3a\u9677

    \u6f0f\u6d1e\u4fee\u590d

    • \u672c\u6b21\u5347\u7ea7\u5305\u62ec\u4fee\u590dshiro\u7684\u5b89\u5168\u6f0f\u6d1e\uff0c\u8bf7\u5c3d\u5feb\u5347\u7ea7
    "},{"location":"about/changelog/#v220","title":"v2.2.0","text":"

    2022\u5e749\u670822\u65e5

    \u65b0\u589e\u529f\u80fd

    • \u63a5\u53e3\u6d4b\u8bd5\u652f\u6301\u81ea\u5b9a\u4e49\u6a21\u677f
    • UI \u6d4b\u8bd5\u652f\u6301\u81ea\u5b9a\u4e49\u7ec4\u5408\u6307\u4ee4(X-Pack \u589e\u5f3a\u5305\u5185)
    • \u6587\u4ef6\u7ba1\u7406\u652f\u6301\u5bf9\u63a5\u7b2c\u4e09\u65b9\u4ed3\u5e93(X-Pack\u589e\u5f3a\u5305\u5185)

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a: \u6d4b\u8bd5\u8ba1\u5212/\u7528\u4f8b\u8bc4\u5ba1\u9875\u7528\u4f8b\u6807\u9898\u5c55\u793a\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5: \u63a5\u53e3 CASE \u9ad8\u7ea7\u641c\u7d22\u589e\u52a0\u8def\u5f84\u641c\u7d22
    • \u63a5\u53e3\u6d4b\u8bd5: TCP \u534f\u8bae\u652f\u6301\u4e00\u952e\u5c06 xml \u6587\u672c\u683c\u5f0f\u8f6c\u6362\u6210\u8868\u683c\u683c\u5f0f
    • UI\u6d4b\u8bd5: \u5217\u8868\u6279\u91cf\u6267\u884c\u4e0e\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u65f6\u589e\u52a0\u5931\u8d25\u91cd\u8bd5\u673a\u5236(X-Pack)
    • UI\u6d4b\u8bd5: \u6d4b\u8bd5\u62a5\u544a\u652f\u6301\u4e00\u952e\u5206\u4eab(X-Pack)
    • UI\u6d4b\u8bd5: UI \u573a\u666f\u652f\u6301\u67e5\u770b\u88ab\u5f15\u7528\u5217\u8868(X-Pack)
    • UI\u6d4b\u8bd5: \u652f\u6301\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u914d\u7f6e\u6d4f\u89c8\u5668\u7684\u9ed8\u8ba4\u5206\u8fa8\u7387(X-Pack)
    • \u7cfb\u7edf\u8bbe\u7f6e: \u6d88\u606f\u901a\u77e5\u6a21\u677f\u65b0\u589e\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u76f8\u5173\u5b57\u6bb5(X-Pack)
    • \u901a\u7528\u529f\u80fd: \u7248\u672c\u7b5b\u9009\u652f\u6301\u624b\u52a8\u5f55\u5165\u7248\u672c\u53f7(X-Pack)

    \u95ee\u9898\u4fee\u590d

    • \u6d4b\u8bd5\u8ddf\u8e2a: \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u70b9\u51fb\u540d\u79f0\u94fe\u63a5\u4f1a\u76f4\u63a5\u8df3\u8f6c\u5230\u63a5\u53e3\u7528\u4f8b\u6216\u8005\u573a\u666f\u7528\u4f8b\u8be6\u60c5\u9875\u7684\u95ee\u9898(GitHub #17993)
    • \u6d4b\u8bd5\u8ddf\u8e2a: \u4fee\u590d\u6d4b\u8bd5\u8ddf\u8e2a\u9996\u9875\u672a\u8bc4\u5ba1\u201c\u6570\u91cf\u201d\u3001\u8986\u76d6\u201c\u6570\u91cf\u201d\u4e0e\u8df3\u8f6c\u540e\u5217\u8868\u7528\u4f8b\u6570\u91cf\u4e0d\u4e00\u81f4\u7684\u95ee\u9898(GitHub #17910)
    • \u6d4b\u8bd5\u8ddf\u8e2a: \u4fee\u590d\u9879\u76ee\u81ea\u5b9a\u4e49 ID \u5f00\u542f\u5bfc\u5165\u663e\u793a\u7684\u662f\u7cfb\u7edf\u9ed8\u8ba4 ID \u7684\u95ee\u9898(GitHub #17928)
    • \u63a5\u53e3\u6d4b\u8bd5: \u4fee\u590d\u73af\u5883\u53d8\u91cf\u4f18\u5148\u7ea7\u5927\u4e8e\u573a\u666f\u53d8\u91cf\u7684\u95ee\u9898(GitHub #17873)
    • \u63a5\u53e3\u6d4b\u8bd5: \u4fee\u590d\u63a5\u53e3\u81ea\u52a8\u5316\u7f16\u8f91\u573a\u666f\u4fdd\u5b58\u540e\uff0c\u5217\u8868\u4e2d\u201c\u901a\u8fc7\u7387\u201d\u672a\u66f4\u65b0\u7684\u95ee\u9898(GitHub #17784)
    • UI\u6d4b\u8bd5: \u4fee\u590d UI \u81ea\u52a8\u5316\u573a\u666f\u91cc\u590d\u5236\u5bfc\u5165\u4e86\u5df2\u6709\u573a\u666f\uff0c\u5bfc\u81f4\u573a\u666f\u4ee5\u53ca\u5b50\u573a\u666f\u8c03\u8bd5\u6a21\u5f0f\u548c\u6d4b\u8bd5\u8ba1\u5212\u91cc\u4e0d\u4f1a\u88ab\u6267\u884c\u7684\u95ee\u9898(GitHub #17649)
    • UI\u6d4b\u8bd5: \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u5b9a\u65f6\u6267\u884c\u591a\u4e2a UI \u81ea\u52a8\u5316\u573a\u666f\uff0c\u5b58\u5728\u5df2\u6267\u884c\u5931\u8d25\u7684\u573a\u666f\u88ab\u6807\u6ce8\u4e3a\u201c\u672a\u6267\u884c\u201d\u7684\u95ee\u9898(GitHub #17649)
    "},{"location":"about/changelog/#v210","title":"v2.1.0","text":"

    2022\u5e748\u670825\u65e5

    \u65b0\u589e\u529f\u80fd

    • UI\u6d4b\u8bd5\u8986\u76d6\u7ed8\u56fe\u6838\u5fc3\u573a\u666f
    • \u529f\u80fd\u7528\u4f8b\u652f\u6301\u81ea\u5b9a\u4e49\u5b57\u6bb5\u5bfc\u5165\u3001\u5bfc\u51fa
    • \u6587\u4ef6\u7ba1\u7406\u91cd\u6784

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u6a21\u677f\u5bfc\u5165\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u63a5\u53e3\u5bfc\u5165\u66f4\u65b0\u589e\u52a0\u6d88\u606f\u901a\u77e5
    • \u63a5\u53e3\u6d4b\u8bd5\uff1aAPI\u6587\u6863\u5c55\u793a\u4f18\u5316\u652f\u6301\u5c55\u793a\u9ad8\u7ea7\u8bbe\u7f6e
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u573a\u666f\u53d8\u91cf\u652f\u6301\u67e5\u8be2\u4ee5\u53ca\u5bfc\u5165\u5bfc\u51fa
    • UI\u6d4b\u8bd5\uff1a\u652f\u6301\u4efb\u610f\u4f4d\u7f6e\u6dfb\u52a0\u622a\u56fe\u6b65\u9aa4(X-Pack)
    • UI\u6d4b\u8bd5\uff1a\u8f93\u5165\u6b65\u9aa4\u652f\u6301\u952e\u76d8\u529f\u80fd\u952e(X-Pack)
    • \u9879\u76ee\u8bbe\u7f6e\uff1a\u652f\u6301\u4e8c\u7ea7\u83dc\u5355\u6743\u9650\u7ba1\u63a7
    • \u9879\u76ee\u8bbe\u7f6e\uff1a\u73af\u5883\u914d\u7f6e\u4e2d\u5168\u5c40\u53d8\u91cf\u652f\u6301\u67e5\u8be2\u4ee5\u53ca\u5bfc\u5165\u5bfc\u51fa
    • \u7cfb\u7edf\u8bbe\u7f6e\uff1aOIDC\u548cCAS\u8ba4\u8bc1\u652f\u6301\u914d\u7f6e Callback URL

    \u95ee\u9898\u4fee\u590d

    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u8868\u683c\u7528\u4f8b\u5bfc\u5165\u66f4\u65b0\uff0c\u63d0\u793a\u66f4\u65b0\u6210\u529f\uff0c\u4f46\u662f\u5185\u5bb9\u6ca1\u6709\u66f4\u65b0\u7684\u95ee\u9898\uff08GitHub - #17077\uff09
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u7f3a\u9677\u7ba1\u7406\u7684\u9ad8\u7ea7\u641c\u7d22\u4e2d\u521b\u5efa\u4eba\u65e0\u6cd5\u5217\u51fa\u6240\u6709\u9879\u76ee\u6210\u5458\u7684\u95ee\u9898\uff08GitHub - #16974\uff09
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u4ee3\u7801\u7247\u6bb5\u4e2d\u5bfc\u5165python ssl\u6a21\u5757\u5728\u5347\u7ea7\u52302.0.1\u540e\u6267\u884c\u51fa\u9519\u7684\u95ee\u9898\uff08GitHub - #16945\uff09
    • fix(UI\u6d4b\u8bd5): \u4fee\u590dUI\u81ea\u52a8\u5316\u70b9\u51fb\u540e\u7aef\u8c03\u8bd5\u4e0e\u751f\u6210\u62a5\u544a\u6267\u884c\u7ed3\u679c\u4e0d\u4e00\u81f4\u7684\u95ee\u9898\uff08GitHub #16523\uff09
    • fix(UI\u6d4b\u8bd5): \u4fee\u590dUI\u81ea\u52a8\u5316\u573a\u666f\u65b0\u590d\u5236\u7684\u573a\u666f\u65e0\u521b\u5efa\u4eba\u4fe1\u606f\u7684\u95ee\u9898\uff08GitHub #16732\uff09
    • fix(\u9879\u76ee\u8bbe\u7f6e): \u4fee\u590d\u6d88\u606f\u8bbe\u7f6e\u65b0\u5efa\u7f3a\u9677\u7684\u63a5\u6536\u4eba\u662f\u5904\u7406\u4eba\u4f46\u5728\u6d88\u606f\u901a\u77e5\u65f6\u6ca1\u6709@\u5904\u7406\u4eba\u7684\u95ee\u9898\uff08GitHub #16751\uff09
    "},{"location":"about/changelog/#v201","title":"v2.0.1","text":"

    2022\u5e748\u67084\u65e5

    \u529f\u80fd\u4f18\u5316

    • feat(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u4fdd\u5b58\u7684\u8fd0\u884c\u73af\u5883\u56de\u663e\uff0c\u5e76\u4e14\u4f5c\u4e3a\u5f53\u524d\u8ba1\u5212\u4e0b\u6240\u6709\u7528\u4f8b\u7684\u73af\u5883\u7684\u9ed8\u8ba4\u503c
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u8c03\u6574UI\u548c\u6027\u80fd\u7684\u987a\u5e8f
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u5220\u9664\u529f\u80fd\u4e8c\u6b21\u63d0\u9192\u5f39\u6846\u4fe1\u606f\u4f18\u5316
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u4fdd\u5b58\u7684\u8fd0\u884c\u73af\u5883\u540e\u5237\u65b0\u5217\u8868
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u81ea\u5b9a\u4e49\u5b57\u6bb5\u4e0b\u62c9\u6846\u9009\u9879\u88ab\u5220\u9664\u5219\u7f6e\u7a7a
    • refactor(\u63a5\u53e3\u6d4b\u8bd5): \u6539\u6210\u540c\u6b65\u53d1\u9001\u6267\u884c\u6307\u4ee4\uff0c\u8c03\u6574\u8fde\u63a5\u53c2\u6570
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f18\u5316\u6d4b\u8bd5\u8ba1\u5212\u8fd0\u884c\u68c0\u67e5\u53ef\u6267\u884c\u7528\u4f8b\u7684\u65b9\u6cd5 (#16525)
    • refactor(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u4fdd\u5b58\u7684\u914d\u7f6e\u4fe1\u606f\u7684\u8fd0\u884c\u73af\u5883\u4fe1\u606f\u7528\u4e8e\u9ed8\u8ba4\u503c
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316mock\u671f\u671b\u5220\u9664\u65f6\u7684\u63d0\u793a\u8bed
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875swagger\u8df3\u8f6c\u7684\u95ee\u9898
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u573a\u666f\u5bfc\u5165\u529f\u80fd\uff0c\u9875\u9762\u6837\u5f0f\u8c03\u6574
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875\u7528\u4f8b\u6570\u91cf\u7edf\u8ba1\u9875\u7b7e\u7edf\u8ba1\u8f83\u6162\u7684\u95ee\u9898
    • style(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875\u672a\u8986\u76d6\u63a5\u53e3\u8df3\u8f6c\u65f6\u6570\u636e\u6ca1\u6709\u5237\u65b0\u7684\u95ee\u9898
    • style(\u62a5\u8868\u7edf\u8ba1): \u4f18\u5316\u6d4b\u8bd5\u7528\u4f8b\u7edf\u8ba1\u56fe\u8868\u6700\u5927\u5316\u65f6\u7684\u5c55\u793a

    \u95ee\u9898\u4fee\u590d

    • fix(UI\u81ea\u52a8\u5316): UI \u6d4b\u8bd5\u4e0d\u8d70\u8d44\u6e90\u6c60
    • fix(UI\u81ea\u52a8\u5316): \u6d4b\u8bd5\u8ba1\u5212 UI \u6d4b\u8bd5\u7ed3\u679c\u4e0e\u603b\u62a5\u544a\u7ed3\u679c\u4e0d\u540c\u6b65
    • fix(UI\u81ea\u52a8\u5316): \u5173\u8054\u672a\u6267\u884c\u7684ui\u573a\u666f\u67e5\u770b\u5b9e\u65f6\u62a5\u544a\u4e0d\u5c55\u793a\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e
    • fix(UI\u81ea\u52a8\u5316): \u5bfc\u51fa\u6d4b\u8bd5\u62a5\u544a\uff0c\u65e0\u6cd5\u67e5\u770bui\u7528\u4f8b\u6267\u884c\u7ed3\u679c
    • fix(UI\u81ea\u52a8\u5316): \u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u6210\u529f\u7387\u663e\u793a\u4e0d\u5bf9
    • fix(UI\u81ea\u52a8\u5316): \u4fee\u590d\u975e\u6027\u80fd\u6a21\u5f0f\u4e0b\u62a5\u544a\u622a\u56fe\u8bed\u8a00\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dcsv\u573a\u666f\u53d8\u91cf\u5c5e\u6027\u56de\u663e\u9519\u8bef\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590dxmind\u89e3\u6790\u4e0d\u652f\u6301xmind\u7ecf\u5178\u7248\u672c\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u5305\u542bexcel\u6587\u4ef6\u7684\u8bf7\u6c42\u6267\u884c\u5931\u8d25\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u5bfc\u5165ESB\u6587\u4ef6\u4fdd\u5b58\u6570\u636e\u4e0d\u5168\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u63a5\u53e3\u5bfc\u5165\u7528\u4f8bID\u751f\u6210\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u5bfc\u5165\u7528\u4f8bID\u751f\u6210\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u5b9a\u4e49\u5bfc\u5165jmx\u6587\u4ef6\u9009\u62e9\u7f16\u7801\uff0cms\u4e0d\u663e\u793a\u7f16\u7801\u7684\u7f3a\u9677 (#16573)
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u573a\u666f\u6267\u884c\u7ed3\u679c\u663e\u793a\u4e86unexecute\u7684\u7f3a\u9677 (#16610)
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u89e3\u51b3\u63a5\u53e3\u5bfc\u5165\u8986\u76d6\u6a21\u5f0f\uff0c\u88ab\u8986\u76d6\u63a5\u53e3\u65e0case\uff0c\u65b0case\u5bfc\u5165\u5931\u8d25\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875\u5b9a\u65f6\u4efb\u52a1\u8df3\u8f6c\u4e0d\u5bf9\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4f18\u5316\u63a5\u53e3\u5bfc\u5165\u7cfb\u7edf\u5185\u67d0\u4e2a\u63a5\u53e3\u6709\u91cd\u540d\u7528\u4f8b\u7684\u60c5\u51b5
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u4fee\u590d\u63a5\u53e3\u6d4b\u8bd5\u9996\u9875\u573a\u666f\u901a\u8fc7\u7387\u8ba1\u7b97\u4e0d\u6b63\u786e\u7684\u95ee\u9898
    • fix(\u63a5\u53e3\u6d4b\u8bd5): \u5bfc\u5165\u63a5\u53e3\u540e\uff0c\u624b\u52a8\u6dfb\u52a0\u4e00\u4e2a\u63a5\u53e3\u7528\u4f8b\uff0c\u5220\u9664\u5176\u4ed6\u7528\u4f8b\uff0c\u518d\u6b21\u5bfc\u5165\uff0c\u62a5\u9519
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590dsql\u52a0\u8f7d\u7528\u4f8b\uff0csql\u811a\u672c\u6ca1\u6709\u540c\u6b65\u7684\u7f3a\u9677 (#16483)
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u9664http\u534f\u8baeTEST\u9875\u9762\u52a0\u8f7d\u7528\u4f8b\u663e\u793a\u6210\u4e86\u65b0\u5efa\u7528\u4f8b\u9875\u9762\u7684\u7f3a\u9677
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4fee\u590d\u524d\u7f6esql\u7684\u6837\u5f0f
    • fix(\u63a5\u53e3\u5b9a\u4e49): \u4ece\u56de\u6536\u7ad9\u6062\u590d\u63a5\u53e3\u7528\u4f8b\u589e\u52a0\u91cd\u540d\u6821\u9a8c
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u7528\u6237\u901a\u8fc7api\u8c03\u7528\u63a5\u53e3\u540e\uff0c\u672c\u8eab\u6743\u9650\u6ca1\u6709\u53ca\u65f6\u5237\u65b0\u7684\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u521b\u5efa\u9879\u76ee\u63a5\u53e3\u5de5\u4f5c\u7a7a\u95f4ID\u4e3a\u7a7a\u53ef\u6210\u529f\u521b\u5efa
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u4fee\u590d\u521b\u5efa\u9879\u76ee\u65f6\u6743\u9650\u62e6\u622a\u7684\u95ee\u9898
    • fix(\u7cfb\u7edf\u8bbe\u7f6e): \u7528\u6237\u4ec5\u6709\u9879\u76ee\u6743\u9650\u65f6\u4e0d\u5360\u5de5\u4f5c\u7a7a\u95f4\u914d\u989d
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u591a\u8282\u70b9\u90e8\u7f72\u65f6\u67e5\u8be2\u76d1\u63a7targets\u6570\u636e\u4e0d\u4e00\u81f4\u7684\u95ee\u9898
    • fix(\u6027\u80fd\u6d4b\u8bd5): \u4fee\u590d\u62a5\u544a\u5bf9\u6bd4\u65f6\u663e\u793a\u591a\u4f59\u7684y\u8f74\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): excel\u5bfc\u5165\u5bfc\u51fa\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8111\u56fe\u521b\u5efa\u7528\u4f8b\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u6279\u91cf\u5220\u9664\u7684\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u5bfc\u51fa\u6a21\u677f\u6ca1\u6709\u6807\u6ce8
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u529f\u80fd\u7528\u4f8b\u5bfc\u51fa\u7f3a\u5c11\u6b65\u9aa4\u7b49\u4fe1\u606f
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u5217\u8868\u81ea\u5b9a\u4e49\u591a\u9009\u6846\u7b5b\u9009\u5931\u6548
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8111\u56fe\u4e00\u952e\u5c55\u5f00\u6ca1\u6709\u5c55\u5f00\u4e34\u65f6\u8282\u70b9
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4f01\u4e1a\u7248\u7985\u9053\u540c\u6b65\u7f3a\u9677\u56fe\u7247\u65e0\u6cd5\u663e\u793a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7b2c\u4e09\u65b9\u5e73\u53f0\u7f3a\u9677\u90e8\u5206\u5b57\u6bb5\u540c\u6b65\u51fa\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7f3a\u9677\u5217\u8868\u81ea\u5b9a\u4e49\u5b57\u6bb5\u70b9\u51fb\u6392\u5e8f\u62a5\u9519
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ba1\u5212\u5206\u4eab\u529f\u80fd\u7528\u4f8b\u7edf\u8ba1\u65e0\u6cd5\u5c55\u793a
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u9996\u9875\u7f3a\u9677\u6570\u4e0d\u5e94\u8be5\u7edf\u8ba1\u5df2\u5173\u95ed\u7684\u7f3a\u9677
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u8111\u56fe\u4fdd\u5b58\u4e34\u65f6\u8282\u70b9\u540e\uff0c\u90e8\u5206\u8282\u70b9\u6ca1\u4fdd\u5b58\u6210\u529f
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u7528\u4f8b\u8bc4\u5ba1\u4e2d\u7528\u4f8b\u5217\u8868\u7684\u72b6\u6001\u4e0e\u7f16\u8f91\u7684\u72b6\u6001\u4e0d\u4e00\u81f4
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u6d4b\u8bd5\u8ba1\u5212\u8fd0\u884c\u68c0\u67e5\u662f\u5426\u6709\u53ef\u7528\u884c\u7528\u4f8b\u7684\u7f3a\u9677 (#16497)
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u6d4b\u8bd5\u8ddf\u8e2a\u9996\u9875\u5173\u8054\u7528\u4f8b\u6570\u91cf\u7edf\u8ba1\u5ffd\u7565\u6389\u56de\u6536\u7ad9\u4e2d\u7684\u63a5\u53e3\u548c\u573a\u666f
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u5173\u8054\u7528\u4f8b\u5220\u9664\u65f6\u6d4b\u8bd5\u8ba1\u5212\u8be6\u60c5\u4e2d\u76f8\u5e94\u7528\u4f8b\u5217\u8868\u7684\u6a21\u5757\u6811\u663e\u793a\u95ee\u9898
    • fix(\u6d4b\u8bd5\u8ddf\u8e2a): \u4fee\u590d\u63a5\u53e3\u8c03\u7528\u6ca1\u6709\u5173\u8054\u53ef\u6267\u884c\u7528\u4f8b\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u65f6\u6ca1\u6709\u63d0\u793a\u7684\u7f3a\u9677
    • fix(\u9ad8\u7ea7\u641c\u7d22): \u63a5\u53e3\u81ea\u52a8\u5316\u56de\u6536\u7ad9\u9ad8\u7ea7\u641c\u7d22\u72b6\u6001\u5b57\u6bb5\u548c\u5217\u8868\u72b6\u6001\u4e0d\u4e00\u81f4
    "},{"location":"about/changelog/#v200","title":"v2.0.0","text":"

    2022\u5e747\u670827\u65e5

    \u65b0\u589e\u529f\u80fd

    • \u5bfc\u822a\u680f\u5168\u65b0\u5347\u7ea7
    • \u6d4b\u8bd5\u8ba1\u5212\u652f\u6301\u5173\u8054UI\u6d4b\u8bd5\u7528\u4f8b\u6267\u884c
    • \u6d4b\u8bd5\u8ba1\u5212\u4e2d\u8fd0\u884c\u7684\u63a5\u53e3\u6d4b\u8bd5\u652f\u6301\u5931\u8d25\u91cd\u8bd5
    • UI\u6d4b\u8bd5\u573a\u666f\u652f\u6301\u6279\u91cf\u6267\u884c
    • \u5de5\u4f5c\u53f0-\u63a5\u53e3\u7528\u4f8b\u201c\u5f85\u66f4\u65b0\u201d\u5217\u8868\uff0c\u652f\u6301\u4e00\u952e\u540c\u6b65\u63a5\u53e3\u53d8\u66f4
    • \u9ad8\u7ea7\u641c\u7d22\u652f\u6301\u81ea\u5b9a\u4e49\u5b57\u6bb5\u641c\u7d22

    \u529f\u80fd\u4f18\u5316

    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u9644\u4ef6\u529f\u80fd\u652f\u6301\u4e0a\u4f20\u89c6\u9891\u6587\u4ef6
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u529f\u80fd\u7528\u4f8b\u652f\u6301\u6279\u91cf\u5173\u8054\u9700\u6c42
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ba1\u5212\u3001\u6d4b\u8bd5\u8bc4\u5ba1\u5173\u8054\u7528\u4f8b\u652f\u6301\u6309\u5173\u8054\u9700\u6c42\u7b5b\u9009\u7528\u4f8b
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u589e\u52a0\u8fd0\u884c\u73af\u5883\u5c55\u793a
    • \u6d4b\u8bd5\u8ddf\u8e2a\uff1a\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u652f\u6301\u63a5\u53e3\u5931\u8d25\u7528\u4f8b\u4e00\u952e\u91cd\u8dd1\uff08X-Pack\uff09
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u9996\u9875\u6570\u636e\u7edf\u8ba1\u4f18\u5316
    • \u63a5\u53e3\u6d4b\u8bd5\uff1aAPI\u5bfc\u5165\u903b\u8f91\u91cd\u6784
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u6d4b\u8bd5\u62a5\u544a\u589e\u52a0\u8fd0\u884c\u73af\u5883\u5c55\u793a
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u652f\u6301\u6dfb\u52a0\u573a\u666f\u7ea7\u522b\u65ad\u8a00
    • \u63a5\u53e3\u6d4b\u8bd5\uff1a\u96c6\u5408\u62a5\u544a\u652f\u6301\u5931\u8d25\u7528\u4f8b\u4e00\u952e\u91cd\u8dd1\uff08X-Pack\uff09
    • UI\u6d4b\u8bd5\uff1a\u9875\u9762\u5143\u7d20\u652f\u6301Excel\u5bfc\u5165\u5bfc\u51fa\u7ba1\u7406\uff08X-Pack\uff09
    • UI\u6d4b\u8bd5\uff1aUI\u573a\u666f\u53d8\u91cf\u4f18\u5316\uff08X-Pack\uff09
    • UI\u6d4b\u8bd5\uff1a\u9ad8\u7ea7\u8bbe\u7f6e\u65ad\u8a00\u548c\u6570\u636e\u63d0\u53d6\u5c55\u793a\u4f18\u5316\uff08X-Pack\uff09
    • \u9879\u76ee\u8bbe\u7f6e\uff1a\u6d88\u606f\u901a\u77e5\u652f\u6301\u5bf9\u63a5\u81ea\u5b9a\u4e49webhook\uff08X-Pack\uff09
    "},{"location":"about/contact/","title":"\u8054\u7cfb\u6211\u4eec","text":""},{"location":"about/contact/#1","title":"1 \u5fae\u4fe1\u516c\u4f17\u53f7","text":""},{"location":"about/contact/#2","title":"2 \u5fae\u4fe1\u7fa4","text":"

    \u5982\u60a8\u5728\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u9047\u5230\u95ee\u9898\uff0c\u6b22\u8fce\u60a8\u5728\u7fa4\u91cc\u8fdb\u884c\u53cd\u9988\u4e0e\u54a8\u8be2\uff08\u6dfb\u52a0\u4e0b\u65b9\u5c0f\u52a9\u624b\u5fae\u4fe1\uff0c\u4ed6\u5c06\u4f1a\u5c06\u60a8\u62c9\u8fdb MeterSphere \u4ea4\u6d41\u7fa4\u4e2d\uff09\uff0c\u8bf7\u60a8\u5728\u8be2\u95ee\u524d\u5c3d\u53ef\u80fd\u5168\u9762\u7684\u63cf\u8ff0\u60a8\u7684\u60c5\u51b5\uff0c\u4f8b\u5982\uff1a

    • \u5f53\u524d\u4f7f\u7528\u7684 MeterSphere \u7248\u672c\u3002
    • \u5f53\u524d\u4f7f\u7528\u7684\u6d4f\u89c8\u5668\u7c7b\u578b\u3002
    • \u8be6\u7ec6\u7684\u95ee\u9898\u63cf\u8ff0\u3002
    • \u95ee\u9898\u7684\u622a\u56fe\u8bf4\u660e\u3002

    "},{"location":"about/contact/#3","title":"3 \u5f00\u6e90\u793e\u533a\u8bba\u575b","text":"

    \u60a8\u53ef\u4ee5\u5728\u98de\u81f4\u4e91\u5b98\u65b9\u7684 \u5f00\u6e90\u793e\u533a\u8bba\u575b \u641c\u7d22\u3001\u54a8\u8be2\u3001\u8ba8\u8bba\u4ea4\u6d41\u4ea7\u54c1\u76f8\u5173\u7684\u6280\u672f\u95ee\u9898\u3002

    "},{"location":"about/contact/#4","title":"4 \u5176\u4ed6\u65b9\u5f0f","text":"
    • \u6280\u672f\u54a8\u8be2\uff1ahttps://jinshuju.net/f/qQOZj1
    • \u4f01\u4e1a\u7248\u8bd5\u7528\uff1ahttps://jinshuju.net/f/CzzAOe
    • \u5b98\u7f51\uff1ahttp://www.metersphere.io
    • \u90ae\u7bb1\uff1asupport@fit2cloud.com
    • \u7535\u8bdd\uff1a400-052-0755
    "},{"location":"about/security_bulletins/","title":"\u5b89\u5168\u516c\u544a","text":"
    • \u91cd\u8981\u901a\u77e5\u4e28MeterSphere\u6f0f\u6d1e\u901a\u77e5\u53ca\u4fee\u590d\u65b9\u6848\uff082023.05.26\uff09
    • \u91cd\u8981\u901a\u77e5\u4e28MeterSphere\u6f0f\u6d1e\u901a\u77e5\u53ca\u4fee\u590d\u65b9\u6848\uff082023.03.10\uff09
    • \u91cd\u8981\u901a\u77e5\u4e28MeterSphere\u6f0f\u6d1e\u901a\u77e5\u53ca\u4fee\u590d\u65b9\u6848\uff082023.01.04\uff09
    "},{"location":"case_studies/user_cases/","title":"\u7528\u6237\u6848\u4f8b","text":"
    • \u4e2d\u56fd\u79fb\u52a8\u4e0a\u7814\u9662\u57fa\u4e8e MeterSphere \u6784\u5efa\u89c4\u8303\u5316\u6d4b\u8bd5\u4f53\u7cfb
    • 88 \u5b8c\u7f8e\u90ae\u7bb1\u5168\u9762\u63d0\u5347\u4ea7\u54c1\u8d28\u91cf\u7684\u843d\u5730\u6307\u5357
    • \u851a\u6f9c\u73af\u4fdd\u57fa\u4e8e MeterSphere \u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u5b9e\u8df5
    • \u6613\u76db\u4fe1\u606f MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u4f7f\u7528\u7ecf\u9a8c
    • \u6613\u76db\u4fe1\u606f\u5728 MeterSphere \u4e0a\u5b9e\u73b0\u591a\u7c7b\u578b\u63a5\u53e3\u573a\u666f\u81ea\u52a8\u5316\u6d4b\u8bd5
    • \u6c38\u798f\u4fe1\u606f\u57fa\u4e8e MeterSphere \u4ece\u9879\u76ee\u7ef4\u5ea6\u6301\u7eed\u63a8\u8fdb\u6d4b\u8bd5\u4efb\u52a1
    • \u4e5d\u91cc\u4e91\u57fa\u4e8e MeterSphere \u843d\u5730\u4e00\u7ad9\u5f0f\u81ea\u52a8\u5316\u6d4b\u8bd5\u5e73\u53f0
    • \u6c11\u751f\u79d1\u6280\u57fa\u4e8e MeterSphere \u5e73\u53f0\u5b9e\u73b0\u6d4b\u8bd5\u7528\u4f8b\u590d\u7528
    • 360\u501f\u52a9 MeterSphere \u63d0\u5347\u81ea\u52a8\u5316\u6d4b\u8bd5\u6c34\u5e73
    • \u7528\u53cb\u878d\u8054\u501f\u52a9 MeterSphere \u5f00\u6e90\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\u63d0\u5347\u6d4b\u8bd5\u6548\u7387
    • \u9886\u5148\u672a\u6765\u7684 MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u5b9e\u8df5
    • MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u5728\u4e92\u8054\u7f51\u96f6\u552e\u5e73\u53f0\u6734\u6734\u8d85\u5e02\u7684\u5b9e\u8df5\u5206\u4eab
    • \u5546\u7c73\u79d1\u6280\u57fa\u4e8e MeterSphere \u7684\u5168\u7403\u5316\u4e91\u670d\u52a1\u63a5\u53e3\u6d4b\u8bd5\u5b9e\u8df5
    "},{"location":"faq/api_test/","title":"\u63a5\u53e3\u6d4b\u8bd5\u76f8\u5173","text":""},{"location":"faq/api_test/#1","title":"1 \u5728\u63a5\u53e3\u81ea\u52a8\u5316\u7684\u4e00\u4e2a\u573a\u666f\u91cc\u9762\uff0c\u4e2a\u522b\u63a5\u53e3\u9700\u8981\u4f7f\u7528\u4e0d\u540c\u7684\u73af\u5883\u53bb\u8fd0\u884c\uff0c\u8be5\u600e\u4e48\u5904\u7406\uff1f","text":"

    \u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u81ea\u5b9a\u4e49\u8bf7\u6c42\u7684\u65b9\u5f0f\u5b9e\u73b0\u3002

    "},{"location":"faq/api_test/#2","title":"2 \u63a5\u53e3\u4f20\u53c2\u9700\u8981\u4f7f\u7528\u968f\u673a\u6570\uff0c\u6709\u54ea\u4e9b\u5185\u7f6e\u65b9\u6cd5\uff1f","text":"

    \u53ef\u4ee5\u53c2\u8003\u4f7f\u7528 JMeter \u5185\u7f6e\u51fd\u6570\u6216\u8005 Mock.js \u51fd\u6570\u751f\u6210\u968f\u673a\u503c\u3002\u8bf7\u53c2\u8003\u5185\u7f6e\u51fd\u6570

    "},{"location":"faq/api_test/#3","title":"3 \u63a5\u53e3\u81ea\u52a8\u5316\u591a\u573a\u666f\u5982\u4f55\u8fdb\u884c\u6279\u91cf\u8fd0\u884c\uff1f","text":"

    \u5728\u573a\u666f\u5217\u8868\u9009\u4e2d\u573a\u666f\uff0c\u70b9\u51fb\u3010\u00b7\u00b7\u00b7\u3011\u5f39\u51fa\u4e0b\u62c9\u6846\uff0c\u9009\u62e9\u3010\u6279\u91cf\u8fd0\u884c\u3011\u3002

    "},{"location":"faq/api_test/#4","title":"4 \u63a5\u53e3\u6d4b\u8bd5\u5982\u4f55\u652f\u6301\u4e0a\u4f20\u6587\u4ef6\u7684\u63a5\u53e3\u5417\uff1f","text":"

    \u6839\u636e\u63a5\u53e3\u8981\u6c42\u7684\u8bf7\u6c42\u4f53\u7c7b\u578b\uff0c\u9009\u62e9 form-data\u3001x-www-form-urlencoded \u683c\u5f0f\u7684\u8bf7\u6c42\u4f53\uff0c\u53c2\u6570\u7c7b\u578b\u9009\u62e9 file\uff0c\u9009\u62e9\u8981\u6dfb\u52a0\u7684\u6587\u4ef6\u3002\u4e5f\u53ef\u4ee5\u4f7f\u7528 binary \u683c\u5f0f\u7684\u8bf7\u6c42\u4f53\uff0c\u76f4\u63a5\u9009\u62e9\u8981\u6dfb\u52a0\u7684\u6587\u4ef6\u3002

    "},{"location":"faq/api_test/#5-cookie","title":"5 \u63a5\u53e3\u81ea\u52a8\u5316\u4e2d\u6a21\u5757\u4e4b\u95f4\u662f\u5426\u652f\u6301\u5171\u4eab cookie?","text":"

    \u73af\u5883\u914d\u7f6e-http \u914d\u7f6e\uff0c\u652f\u6301\u6309\u6a21\u5757\u4e0d\u540c\u73af\u5883\u3002\u540c\u4e00\u6a21\u5757\u4e0b\u4e0d\u540c\u573a\u666f\u53ef\u4ee5\u5f00\u542f\u5171\u4eab cookie\uff0c\u4e0d\u540c\u6a21\u5757\u4e0d\u652f\u6301\u5171\u4eab cookie\u3002

    "},{"location":"faq/api_test/#6","title":"6 \u63a5\u53e3\u6d4b\u8bd5\u4e2d\uff0c\u671f\u671b\u7ed3\u679c\u4e0d\u4e3a\u7a7a\uff0c\u5982\u4f55\u5199\u65ad\u8a00\uff1f","text":"

    \u53ef\u4ee5\u5728\u671f\u671b\u503c\u4e2d\u4f7f\u7528\u5339\u914d\u4efb\u610f\u975e\u7a7a\u5b57\u7b26\u7684\u6b63\u5219\u8868\u8fbe\u5f0f \\S+ \u8fdb\u884c\u5224\u65ad\u3002

    "},{"location":"faq/api_test/#7-sql","title":"7 \u5bf9SQL\u8bf7\u6c42\uff0c\u5982\u4f55\u65ad\u8a00\uff1f","text":"

    SQL\u8bf7\u6c42\u7684\u65ad\u8a00\u53ef\u901a\u8fc7\u5982\u4e0b\u6b65\u9aa4\u8fdb\u884c\uff1a

    • \u914d\u7f6e\u201c\u5b58\u50a8\u7ed3\u679c\u201d\u548c\u201c\u6309\u5217\u5b58\u50a8\u201d\uff0c\u5b58\u50a8\u6570\u636e\u3002
    • \u914d\u7f6eSQL\u811a\u672c\uff0c\u53d6\u51fa\u9700\u8981\u65ad\u8a00\u7684\u53c2\u6570\u3002
    • \u6dfb\u52a0\u811a\u672c\u65ad\u8a00\uff0c\u5224\u65ad\u5b58\u50a8 SQL \u7ed3\u679c\u6570\u636e\u7684\u53d8\u91cf\u7684\u53d8\u91cf\u503c\u3002
    • \u53ef\u53c2\u8003MeterSphere \u6570\u636e\u5e93\u63d0\u53d6\u53c2\u6570\u548c\u65ad\u8a00
    "},{"location":"faq/api_test/#8","title":"8 \u5168\u5c40\u53d8\u91cf\u548c\u573a\u666f\u53d8\u91cf\u91cc\uff0c\u5305\u542b\u76f8\u540c\u53d8\u91cf\u540d\u7684\u53d8\u91cf\uff0c\u4f18\u5148\u7ea7\u5982\u4f55\u5224\u65ad\uff1f","text":"

    \u5f53\u5168\u5c40\u53d8\u91cf\u548c\u573a\u666f\u53d8\u91cf\u53d8\u91cf\u540d\u76f8\u540c\u65f6\uff0c\u4f18\u5148\u4f7f\u7528\u573a\u666f\u53d8\u91cf\u3002

    "},{"location":"faq/api_test/#9","title":"9 \u573a\u666f\u4e2d\u4f7f\u7528\u5f15\u7528\u65b9\u5f0f\u5bfc\u5165\u63a5\u53e3\uff0c\u4f46\u53c2\u6570\u53c8\u9700\u8981\u91cd\u5199\uff0c\u5e94\u8be5\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u63a5\u53e3\u5bfc\u5165\u573a\u666f\u6709\u4e24\u79cd\u65b9\u5f0f\uff0c\u7b2c\u4e00\u79cd\u65b9\u5f0f\u662f\u590d\u5236\uff0c\u590d\u5236\u7684\u63a5\u53e3\u53ef\u4ee5\u5728\u573a\u666f\u4e2d\u4fee\u6539\u53c2\u6570\uff1b\u7b2c\u4e8c\u79cd\u65b9\u5f0f\u662f\u5f15\u7528\uff0c\u5f15\u7528\u7684\u63a5\u53e3\u53ea\u80fd\u5728\u63a5\u53e3\u5b9a\u4e49\u4e2d\u8fdb\u884c\u4fee\u6539\uff0c\u4fee\u6539\u5b8c\u6210\u540e\u4f1a\u81ea\u52a8\u540c\u6b65\u5230\u573a\u666f\u91cc\u3002

    "},{"location":"faq/api_test/#10","title":"10 \u573a\u666f\u4e2d\u6dfb\u52a0\u4e86\u6761\u4ef6\u63a7\u5236\u5668\uff0c\u4e14\u5339\u914d\u5931\u8d25\u4e86\uff0c\u4e3a\u4ec0\u4e48\u540e\u7eed\u7684\u63a5\u53e3\u8fd8\u4f1a\u6267\u884c\uff1f","text":"

    \u540e\u7eed\u7684\u5c06\u63a5\u53e3\u62d6\u5165\u5230\u6761\u4ef6\u63a7\u5236\u5668\u4e0b\u6210\u4e3a\u5b50\u6b65\u9aa4\u624d\u6709\u6548\u3002

    "},{"location":"faq/api_test/#11","title":"11 \u63a5\u53e3\u6d4b\u8bd5\u4e2d\uff0c\u5982\u4f55\u83b7\u53d6\u5f53\u524d\u7684\u65f6\u95f4\u6765\u505a\u4e3a\u53d8\u91cf\uff1f","text":"

    \u53ef\u4ee5\u4f7f\u7528 ${__time()} \u5185\u7f6e\u51fd\u6570\u3002

    "},{"location":"faq/api_test/#12-sql","title":"12 \u5982\u4f55\u521b\u5efa SQL \u534f\u8bae\u7684\u63a5\u53e3\u6d4b\u8bd5\uff1f","text":"

    \u5177\u4f53\u64cd\u4f5c\u8bf7\u53c2\u8003\uff1ahttps://brucelong.blog.csdn.net/article/details/110133647 \u3002

    "},{"location":"faq/api_test/#13","title":"13 \u63a5\u53e3\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u4e00\u4e2a\u9879\u76ee\u4e0b\u7684\u4e0d\u540c\u63a5\u53e3\u573a\u666f\uff0c\u662f\u5426\u53ef\u4ee5\u5f15\u7528\u540c\u4e00\u4e2a\u811a\u672c\uff1f","text":"

    \u53ef\u4ee5\u4f7f\u7528\u516c\u5171\u4ee3\u7801\u7247\u6bb5\u3002\u53ef\u4ee5\u5728\u201c\u7cfb\u7edf\u8bbe\u7f6e\u201d - \u201c\u9879\u76ee\u7ba1\u7406\u201d\uff0c\u7ed9\u6307\u5b9a\u7684\u9879\u76ee\u4e0a\u4f20jar\u5305\uff0c\u7136\u540e\u5728\u9879\u76ee\u8bbe\u7f6e-\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u4e0b\u7f16\u5199\u811a\u672c\uff0c\u4e4b\u540e\u6b64\u9879\u76ee\u4e0b\u7684\u4e0d\u540c\u573a\u666f\u5c31\u53ef\u4ee5\u5f15\u7528\u3002

    "},{"location":"faq/api_test/#14","title":"14 \u573a\u666f\u53d8\u91cf\u7684\u7c7b\u578b\u4e3a\u968f\u673a\u6570\uff0c\u4f46\u6267\u884c\u8fc7\u7a0b\u4e2d\u4e3a\u4ec0\u4e48\u6ca1\u6709\u5b9e\u9645\u751f\u6210\uff1f","text":"

    \u8bf7\u68c0\u67e5\u914d\u7f6e\u7684\u968f\u673a\u6570\u957f\u5ea6\uff0c\u968f\u673a\u6570\u957f\u5ea6\u9700\u8981\u5728 MeterSphere \u9650\u5b9a\u8303\u56f4\u5185\u3002

    "},{"location":"faq/api_test/#15-csv","title":"15 \u5982\u4f55\u901a\u8fc7\u53d8\u91cf\u5f15\u7528 CSV \u6570\u636e\uff1f","text":"

    \u5728\u573a\u666f\u7f16\u8f91\u9875\u9762\uff0c\u70b9\u51fb\u573a\u666f\u53d8\u91cf\u6dfb\u52a0 CSV \u7c7b\u578b\u7684\u573a\u666f\u53d8\u91cf\u3002\u5177\u4f53\u64cd\u4f5c\u53c2\u8003 \u573a\u666f\u53d8\u91cf\u914d\u7f6e \u3002

    "},{"location":"faq/api_test/#16","title":"16 \u63a5\u53e3\u81ea\u52a8\u5316\u91cc\uff0c\u540c\u4e00\u573a\u666f\u4e0b\u662f\u5426\u652f\u6301\u914d\u7f6e\u591a\u4e2a\u63a5\u53e3\u57df\u540d\uff1f","text":"

    \u5728\u73af\u5883\u914d\u7f6e\u91cc\u9762\uff0c\u53ef\u4ee5\u5206\u522b\u6309\u63a5\u53e3\u6240\u5c5e\u6a21\u5757\uff0c\u6216\u8005\u63a5\u53e3\u8def\u5f84\u8fd9\u4e24\u79cd\u65b9\u5f0f\uff0c\u6765\u8bbe\u8ba1\u548c\u5339\u914d\u4e0d\u540c\u63a5\u53e3\u5bf9\u5e94\u7684\u57df\u540d\u3002

    "},{"location":"faq/api_test/#17-code","title":"17 \u8bf7\u6c42\u91cc\u9762\u6d89\u53ca\u5230\u4e86\u8f6c\u53d1\u91cd\u5b9a\u5411\uff0c\u5982\u4f55\u83b7\u53d6\u63a5\u53e3\u8fd4\u56de\u7684code\uff1f","text":"

    \u5728\u63a5\u53e3\u7684\u3010\u8bf7\u6c42\u53c2\u6570\u3011\u533a\u57df\u7684\u3010\u5176\u4ed6\u8bbe\u7f6e\u3011\u9875\u9762\u4e2d\uff0c\u53d6\u6d88\u52fe\u9009 \u3010\u8ddf\u968f\u91cd\u5b9a\u5411\u3011\u9009\u9879\u3002

    "},{"location":"faq/api_test/#18","title":"18 \u63a5\u53e3\u81ea\u52a8\u5316\u6279\u91cf\u6267\u884c\uff0c\u662f\u5e76\u884c\u8fd8\u662f\u4e32\u884c\uff1f","text":"

    \u63a5\u53e3\u81ea\u52a8\u5316\u6279\u91cf\u6267\u884c\u540c\u65f6\u652f\u6301\u4e32\u884c\u548c\u5e76\u884c\u4e24\u79cd\u65b9\u5f0f\uff0c\u53ef\u4ee5\u5728\u9009\u62e9\u8fd0\u884c\u573a\u666f\u540e\uff0c\u5728 \u8fd0\u884c\u914d\u7f6e \u5f39\u7a97\u8fdb\u884c\u9009\u62e9\u3002

    "},{"location":"faq/api_test/#19","title":"19 \u6279\u91cf\u6267\u884c\u63a5\u53e3\u81ea\u52a8\u5316\uff0c\u662f\u5426\u53ef\u4ee5\u6309\u573a\u666f\u5355\u72ec\u663e\u793a\u6d4b\u8bd5\u62a5\u544a\uff1f","text":"

    \u5728 \u8fd0\u884c\u914d\u7f6e \u5f39\u7a97\u7684 \u5176\u4ed6\u914d\u7f6e \u9009\u9879\u4e2d\u9009\u62e9\u751f\u6210 \u72ec\u7acb\u62a5\u544a\u3002

    "},{"location":"faq/api_test/#20","title":"20 \u63a5\u53e3\u81ea\u52a8\u5316\u9009\u62e9\u591a\u573a\u666f\u540c\u65f6\u8fd0\u884c\u65f6\uff0c\u53ef\u4ee5\u628a\u6267\u884c\u7ed3\u679c\u6574\u5408\u6210\u4e00\u4e2a\u6d4b\u8bd5\u62a5\u544a\u5417\uff1f","text":"

    \u5728\u3010\u8fd0\u884c\u914d\u7f6e\u3011\u5f39\u7a97\u7684 \u3010\u5176\u4ed6\u914d\u7f6e\u3011\u9009\u9879\u4e2d\u9009\u62e9\u751f\u6210\u3010\u96c6\u5408\u62a5\u544a\u3011\u3002

    "},{"location":"faq/api_test/#21","title":"21 \u63a5\u53e3\u5b9a\u4e49\u6a21\u5757\uff0c\u7f16\u8f91\u63a5\u53e3\u7684\u9875\u9762\uff0c\u5982\u4f55\u4fdd\u5b58\uff1f","text":"

    \u5728\u7f16\u8f91\u63a5\u53e3\u9875\u9762\u201c\u57fa\u7840\u4fe1\u606f\u201d\u533a\u57df\uff0c\u70b9\u51fb\u6d4b\u8bd5\u6309\u94ae\u540e\u9762\u7684\u5411\u4e0b\u6309\u94ae\uff0c\u70b9\u51fb\u3010\u66f4\u65b0\u63a5\u53e3\u3011\u9009\u9879\u5373\u53ef\u3002

    "},{"location":"faq/api_test/#22-non-http-response-code-javanetsockettimeoutexception","title":"22 \u6267\u884c\u63a5\u53e3\u62a5\u9519\uff1aNon HTTP response code: java.net.SocketTimeoutException","text":"

    \u5728\u63a5\u53e3\u3010\u5176\u4ed6\u8bbe\u7f6e\u3011\u4e2d\u589e\u52a0\u7684\u8fde\u63a5\u8d85\u65f6\u65f6\u95f4\u3002

    "},{"location":"faq/api_test/#23","title":"23 \u63a5\u53e3\u5b9a\u4e49\u91cc\u7684\u5355\u63a5\u53e3\uff0c\u53ef\u4ee5\u6279\u91cf\u6267\u884c\u5417\uff1f","text":"

    \u76ee\u524d\u53ef\u4ee5\u901a\u8fc7\u63a5\u53e3\u5b9a\u4e49\u6a21\u5757\u7684CASE\u5217\u8868\u6765\u6279\u91cf\u6267\u884c\u7528\u4f8b\u3002

    "},{"location":"faq/api_test/#24-httptcpsqldubbo","title":"24 \u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\u91cc\uff0c\u76ee\u524d\u9664\u4e86\u73b0\u6709\u7684HTTP\u3001TCP\u3001SQL\u3001DUBBO\uff0c\u8fd8\u652f\u6301\u5176\u4ed6\u534f\u8bae\u5417\uff1f","text":"

    1.13 \u7248\u672c\u5df2\u7ecf\u901a\u8fc7\u63d2\u4ef6\u7684\u65b9\u5f0f\u5b9e\u73b0\u4e86\u5bf9 MQTT \u534f\u8bae\u7684\u652f\u6301\uff0c\u8be5\u63d2\u4ef6\u662f\u4f01\u4e1a\u7248\u7684\u529f\u80fd\uff0c\u5728 MeterSphere \u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf-\u63d2\u4ef6\u7ba1\u7406\u3011\u4e2d\u4e0a\u4f20\u3002

    "},{"location":"faq/api_test/#25-metersphere-ide-api","title":"25 MeterSphere \u53ef\u4ee5\u76f4\u63a5\u5728 IDE \u4e2d\u540c\u6b65 API \u5417\uff1f","text":"

    MeterSphere \u5df2\u652f\u6301 IDEA API\u540c\u6b65\u63d2\u4ef6\uff0c\u8be6\u7ec6\u4f7f\u7528\u65b9\u6cd5\u89c1metersphere-idea\u63d2\u4ef6\u3002

    "},{"location":"faq/api_test/#26","title":"26 \u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u91cc\u53ef\u4ee5\u8de8\u9879\u76ee\u5f15\u7528\u63a5\u53e3/\u7528\u4f8b\u5417\uff1f","text":"

    \u652f\u6301\u8de8\u9879\u76ee\u5f15\u7528\u63a5\u53e3\u3001\u7528\u4f8b\u3001\u573a\u666f\u3002

    "},{"location":"faq/api_test/#27","title":"27 \u5feb\u6377\u8c03\u8bd5\u7684\u65f6\u5019\uff0c\u4e00\u76f4\u8f6c\u5708\u7b49\u5f85\u662f\u4ec0\u4e48\u539f\u56e0?","text":"

    MeterSphere \u7684\u670d\u52a1\u5668\u5230\u88ab\u6d4b\u670d\u52a1\u7684\u5730\u5740\u7f51\u7edc\u4e0d\u901a\uff0c\u53ef\u5728 MeterSphere \u4e0a telnet \u88ab\u6d4b\u670d\u52a1\u7aef\u53e3\u68c0\u67e5\u7f51\u7edc\u3002

    "},{"location":"faq/api_test/#28-case","title":"28 \u8fdb\u884c\u63a5\u53e3 case \u8c03\u8bd5\u65f6\uff0c\u8c03\u7528\u4e0d\u540c\u63a7\u5236\u53f0\u4fe1\u606f\u663e\u793a\u8fde\u63a5\u67d0\u5730\u5740\u8d85\u65f6\uff0c\u5982\u4f55\u6392\u67e5\uff1f","text":"

    \u8fd9\u79cd\u60c5\u51b5\u5927\u6982\u7387\u662f\u7f51\u7edc\u4e0d\u901a\u9020\u6210\u7684\uff0c\u53ef\u4ee5\u4f7f\u7528 curl \u547d\u4ee4\u5728 ms-node-controller \u5bb9\u5668\u548c\u670d\u52a1\u5668\u4e0a\u8fdb\u884c\u6d4b\u8bd5\uff1b

    "},{"location":"faq/api_test/#29-linuxhost","title":"29 \u5728\u63a5\u53e3\u8c03\u8bd5\u65f6\u4f7f\u7528\u65b0\u7684\u57df\u540d\uff0c\u5728Linux\u7684host\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4e86\u57df\u540d\u89e3\u6790\uff0c\u4f46\u4f9d\u7136\u8c03\u8bd5\u4e0d\u901a\uff0c\u5982\u4f55\u6392\u67e5\uff1f","text":"

    \u56e0\u4e3a node-controller \u5bb9\u5668\u4e2d\u65e0\u6cd5\u89e3\u6790\u51fa\u57df\u540d\uff0c\u56e0\u6b64\u9700\u8981\u8fdb\u5165\u5230 node-controller \u5bb9\u5668\u4e2dhost\u6587\u4ef6\u4e2d\u8fdb\u884c\u914d\u7f6e\uff0c\u7136\u540e\u91cd\u542f node-controller \u5bb9\u5668\u3002

    "},{"location":"faq/api_test/#30","title":"30 \u5982\u4f55\u5faa\u73af\u53d6\u51fa\u5217\u8868\u53d8\u91cf\u7684\u6bcf\u4e00\u4e2a\u503c\uff1f","text":"

    \u7ed3\u5408\u5faa\u73af\u63a7\u5236\u5668\u548c\u8ba1\u6570\u5668\u53d6\u503c\u3002\u53c2\u8003\u65b9\u6cd5\u63a5\u53e3\u6d4b\u8bd5\u5982\u4f55\u4f7f\u7528\u591a\u4e2aList\u8fdb\u5165ForEach\u5faa\u73af\u63a7\u5236\u5668

    "},{"location":"faq/api_test/#31-unicode","title":"31 \u63a5\u53e3\u54cd\u5e94\u5185\u5bb9\u4e3a Unicode \u5b57\u7b26\u5bfc\u81f4\u4e2d\u6587\u663e\u793a\u4e3a\u4e71\u7801\uff0c\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u65b9\u6cd51\uff1a \u5728\u540e\u7f6e\u811a\u672c\u4e2d\u9009\u62e9BeanShell\u8bed\u8a00\u5904\u7406\u7f16\u7801\uff0c\u7136\u540e\u5199\u5165prev.setDataEncoding(\"UTF-8\"); \u65b9\u6cd52\uff1a \u5728\u540e\u7f6e\u811a\u672c\u4e2d\u9009\u62e9BeanShell\uff0c\u7136\u540e\u5199\u5165\u5982\u4e0b\u4ee3\u7801\uff1a

    String response_value=new String(prev.getResponseData(),\"UTF-8\");\nchar aChar;\nint num= response_value.length();\nStringBuffer outBuffer=new StringBuffer(num);\nfor(int x =0; x <num;){\n    aChar= response_value.charAt(x++);\n    if(aChar=='\\\\'){\n        aChar= response_value.charAt(x++);\n        if(aChar=='u'){\n            int value =0;\n            for(int i=0;i<4;i++){\n                aChar= response_value.charAt(x++);\n                switch(aChar){\n                    case'0':\n                    case'1':\n                    case'2':\n                    case'3':\n                    case'4':\n                    case'5':\n                    case'6':\n                    case'7':\n                    case'8':\n                    case'9':\n                        value=(value <<4)+aChar-'0';\n                        break;\n                    case'a':\n                    case'b':\n                    case'c':\n                    case'd':\n                    case'e':\n                    case'f':\n                        value=(value <<4)+10+aChar-'a';\n                        break;\n                    case'A':\n                    case'B':\n                    case'C':\n                    case'D':\n                    case'E':\n                    case'F':\n                        value=(value <<4)+10+aChar-'A';\n                        break;\n                    default:\n                        throw new IllegalArgumentException(\n                                \"Malformed   \\\\uxxxx  encoding.\");}}\n            outBuffer.append((char) value);}else{\n            if(aChar=='t')\n                aChar='\\t';\n            else if(aChar=='r')\n            aChar='\\r';\n            else if(aChar=='n')\n            aChar='\\n';\n            else if(aChar=='f')\n            aChar='\\f';\n            outBuffer.append(aChar);}}else\n        outBuffer.append(aChar);}\nprev.setResponseData(outBuffer.toString());\n

    "},{"location":"faq/api_test/#32","title":"32 \u63a7\u5236\u53f0\u4e2d\u6587\u8f93\u51fa\u4e71\u7801\uff0c\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u4f7f\u7528UTF\u7f16\u7801\uff0clog.info(u\"MeterSphere \u4e00\u7ad9\u5f0f\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\")\u3002

    "},{"location":"faq/api_test/#33-jmeter","title":"33 \u63a5\u53e3\u6d4b\u8bd5\u662f\u5426\u53ef\u4ee5\u5bfc\u51fa\u5230 JMeter\uff1f","text":"

    \u53ef\u4ee5\u52fe\u9009\u5bf9\u5e94\u7684\u573a\u666f\u6216\u63a5\u53e3\uff0c\u5bfc\u51fa\u4e3a JMX \u683c\u5f0f\uff0c\u7136\u540e\u518d\u7528 JMeter \u6253\u5f00 JMX \u6587\u4ef6

    "},{"location":"faq/api_test/#34-metersphere-csv","title":"34 MeterSphere \u4e2d CSV \u6587\u4ef6\u7684\u4e3b\u8981\u5e94\u7528\u573a\u666f\u6709\u54ea\u4e9b\uff1f","text":"
    • \u5728\u63a5\u53e3\u81ea\u52a8\u5316\u4e2d\u53ef\u4ee5\u5c06 CSV \u6587\u4ef6\u4f5c\u4e3a\u6279\u91cf\u4f20\u53c2\u6587\u4ef6\u53ef\u4ee5\u7528\u4f5c\u573a\u666f\u53d8\u91cf\u4f7f\u7528\uff0c\u914d\u5408\u5faa\u73af\u63a7\u5236\u5668\u4f7f\u7528\u3002
    • \u5728\u6027\u80fd\u6d4b\u8bd5\u4e2d\u4f5c\u4e3a\u53c2\u6570\u88ab\u5f15\u7528\u3002
    "},{"location":"faq/api_test/#35-csv","title":"35 \u573a\u666f\u4e2d\u5982\u4f55\u4f7f\u7528 CSV \u6587\u4ef6\u53c2\u6570\uff1f","text":"

    \u5728\u573a\u666f\u53d8\u91cf\u4e2d\u6dfb\u52a0 CSV \u6587\u4ef6\uff0c\u5728\u8bf7\u6c42\u4e2d\u901a\u8fc7 ${CSV\u7684\u6587\u4ef6\u5217\u540d} \u8fdb\u884c\u5f15\u7528\u3002

    "},{"location":"faq/api_test/#36-jar","title":"36 \u524d\u7f6e/\u540e\u7f6e\u811a\u672c\u5982\u4f55\u5f15\u7528\u5916\u90e8 jar \u5305\uff1f","text":"

    \u5728\u9879\u76ee\u8bbe\u7f6e-\u6587\u4ef6\u7ba1\u7406\u4e2d\u4e0a\u4f20 jar \u5305\u4e4b\u540e\uff0c\u5728\u524d\u7f6e/\u540e\u7f6e\u811a\u672c\u4e2d\u4f7f\u7528 import \u5373\u53ef\u5f15\u7528\u3002

    "},{"location":"faq/api_test/#37-js","title":"37 \u540e\u7f6e\u811a\u672c\u4e2d\u5982\u4f55\u5f15\u7528 js \u6587\u4ef6\uff1f","text":"

    \u5c06 js \u6587\u4ef6\u4e0a\u4f20\u5230\u670d\u52a1\u5668 /opt/metersphere/data/\u76ee\u5f55\u4e0b\uff0c\u5728\u540e\u7f6e\u811a\u672c\u4e2d\u9009\u62e9 JavaScript\uff0c\u901a\u8fc7 load \u5f15\u7528 js\u6587\u4ef6\uff1aload(\u201c/opt/metersphere/data/xx.js\u201d)\u3002

    "},{"location":"faq/api_test/#38-http","title":"38 HTTP \u534f\u8bae\u63a5\u53e3\u652f\u6301\u54ea\u4e9b\u6587\u4ef6\u683c\u5f0f\u5bfc\u5165\uff1f","text":"

    HTTP \u534f\u8bae\u652f\u6301\u4e94\u79cd\u6587\u4ef6\u683c\u5f0f\uff1aMeterSphere\u683c\u5f0f\u3001Postman\u683c\u5f0f\u3001Swagger\u683c\u5f0f\u3001HAR\u683c\u5f0f\u3001JMeter\u683c\u5f0f\uff1a

    • MeterSphere \u683c\u5f0f\uff1a\u901a\u8fc7 MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u6216\u8005\u6d4f\u89c8\u5668\u63d2\u4ef6\u5bfc\u51fa\u7684 json \u683c\u5f0f\u6587\u4ef6\u3002
    • Postman \u683c\u5f0f\uff1a\u652f\u6301 Postman Collection v2.1 \u683c\u5f0f\u7684 json \u6587\u4ef6\uff0c\u901a\u8fc7 Postman \u5bfc\u51fa\u6d4b\u8bd5\u96c6\u5408\u3002
    • Swagger \u683c\u5f0f\uff1a\u652f\u6301 Swagger 2.0 \u4e0e 3.0 \u7248\u672c\u7684 json \u6587\u4ef6\uff0c\u901a\u8fc7 Swagger \u9875\u9762\u5bfc\u51fa\u6216\u8005URL\u76f4\u63a5\u5bfc\u5165\u3002
    • HAR \u683c\u5f0f\uff1a\u901a\u8fc7\u6d4f\u89c8\u5668\u7684\u5f00\u53d1\u8005\u5de5\u5177\u5bfc\u51fa HAR \u683c\u5f0f\u6587\u4ef6\u3002
    • JMeter \u683c\u5f0f\uff1a\u652f\u6301 JMeter5.2-5.4 \u7248\u672c\u7684 JMX \u6587\u4ef6\uff0c\u901a\u8fc7 JMeter \u751f\u6210 JMX \u6587\u4ef6\u3002

    "},{"location":"faq/api_test/#39-tcp","title":"39 TCP \u534f\u8bae\u63a5\u53e3\u652f\u6301\u54ea\u4e9b\u6587\u4ef6\u683c\u5f0f\u5bfc\u5165\uff1f","text":"

    TCP \u534f\u8bae\u652f\u6301\u4e09\u79cd\u6587\u4ef6\u683c\u5f0f\uff1a MeterSphere\u683c\u5f0f\u3001JMeter\u683c\u5f0f\u3001ESB\u683c\u5f0f\uff1a

    • MeterSphere \u683c\u5f0f\uff1a\u901a\u8fc7 MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u6216\u8005\u6d4f\u89c8\u5668\u63d2\u4ef6\u5bfc\u51fa\u7684 json \u683c\u5f0f\u6587\u4ef6
    • JMeter \u683c\u5f0f\uff1a\u652f\u6301 JMeter5.2-5.4\u7248\u672c\u7684 JMX \u6587\u4ef6\uff0c\u901a\u8fc7 JMeter \u751f\u6210 JMX \u6587\u4ef6
    • ESB \u683c\u5f0f\uff1a\u652f\u6301 ESB \u6a21\u7248\u7684 xlsx \u6587\u4ef6\uff08\u652f\u6301\u6a21\u7248\u4e0b\u8f7d/\u4e0a\u4f20\uff09

    "},{"location":"faq/api_test/#40-sql","title":"40 SQL \u534f\u8bae\u63a5\u53e3\u652f\u6301\u54ea\u4e9b\u6587\u4ef6\u683c\u5f0f\u5bfc\u5165\uff1f","text":"

    SQL \u534f\u8bae\u652f\u6301\u4e24\u79cd\u6587\u4ef6\u683c\u5f0f\uff1aMeterSphere\u683c\u5f0f\u3001JMeter\u683c\u5f0f\uff1a

    • MeterSphere \u683c\u5f0f\uff1a\u901a\u8fc7 MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u6216\u8005\u6d4f\u89c8\u5668\u63d2\u4ef6\u5bfc\u51fa\u7684 json \u683c\u5f0f\u6587\u4ef6
    • JMeter \u683c\u5f0f\uff1a\u652f\u6301 JMeter5.2-5.4 \u7248\u672c\u7684 JMX \u6587\u4ef6\uff0c\u901a\u8fc7 JMeter \u751f\u6210 JMX \u6587\u4ef6

    "},{"location":"faq/api_test/#41-dubbo","title":"41 DUBBO \u534f\u8bae\u63a5\u53e3\u652f\u6301\u54ea\u4e9b\u6587\u4ef6\u683c\u5f0f\u5bfc\u5165\uff1f","text":"

    DUBBO \u534f\u8bae\u63a5\u53e3\u652f\u6301\u4e24\u79cd\u6587\u4ef6\u683c\u5f0f\uff1aMeterSphere\u683c\u5f0f\u3001JMeter\u683c\u5f0f\uff1a

    • MeterSphere \u683c\u5f0f\uff1a\u901a\u8fc7 MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u6216\u8005\u6d4f\u89c8\u5668\u63d2\u4ef6\u5bfc\u51fa\u7684 json \u683c\u5f0f\u6587\u4ef6\u3002
    • JMeter \u683c\u5f0f\uff1a\u652f\u6301 JMeter5.2-5.4 \u7248\u672c\u7684 JMX \u6587\u4ef6\uff0c\u901a\u8fc7 JMeter \u751f\u6210 JMX \u6587\u4ef6\u3002

    "},{"location":"faq/api_test/#42-metersphere-url","title":"42 MeterSphere \u6839\u636e\u4ec0\u4e48\u89c4\u5219\u5224\u65ad\u540d\u79f0\u76f8\u540c\u6216 URL \u76f8\u540c\u7684\u63a5\u53e3\u662f\u5426\u4e3a\u540c\u4e00\u63a5\u53e3\uff1f","text":"
    • TCP\u3001SQL\u3001DUBBO \u8bf7\u6c42\uff0c\u540c\u9879\u76ee\u540c\u6a21\u5757\u540c\u7248\u672c\u4e0b\uff0c\u63a5\u53e3\u540d\u79f0\u76f8\u540c\u5c31\u662f\u540c\u4e00\u63a5\u53e3
    • \u9488\u5bf9HTTP\u8bf7\u6c42\uff0c\u540c\u9879\u76ee\u540c\u6a21\u5757\u540c\u7248\u672c\u4e0b\uff0c\u5206\u4e3a\u63a5\u53e3\u5b9a\u4e49\u672a\u5f00\u542f url \u53ef\u91cd\u590d\u548c\u5df2\u5f00\u542f url \u53ef\u91cd\u590d\u4e24\u79cd\u60c5\u51b5
    • \u672a\u5f00\u542f URL \u91cd\u590d\uff1a\u8bf7\u6c42\u7c7b\u578b+\u8def\u5f84\u76f8\u540c\u5219\u4e3a\u540c\u4e00\u63a5\u53e3\uff0c\u5982\uff1a
    • \u5f00\u542f URL \u91cd\u590d\uff1a\u63a5\u53e3\u540d\u79f0+\u8bf7\u6c42\u7c7b\u578b+\u8def\u5f84\u76f8\u540c\u5219\u4e3a\u540c\u4e00\u63a5\u53e3\uff0c\u5982\uff1a
    "},{"location":"faq/api_test/#43","title":"43 \u63a5\u53e3\u5bfc\u5165\u7684\u8be6\u7ec6\u903b\u8f91\u662f\u4ec0\u4e48\uff1f","text":"

    \u63a5\u53e3\u5bfc\u5165\u4e3b\u8981\u6d89\u53ca\u5404\u7c7b\u6761\u4ef6\u7684\u5224\u65ad\uff0c\u8be6\u7ec6\u903b\u8f91\u89c1\u4e0b\u56fe\uff1a

    "},{"location":"faq/api_test/#44","title":"44 \u914d\u7f6e\u4e86\u5b9a\u65f6\u4efb\u52a1\uff0c\u6ca1\u6709\u5728\u9489\u9489\u7fa4\u53d1\u6d88\u606f\uff1f","text":"
    • \u786e\u8ba4\u6d88\u606f\u901a\u77e5\u662f\u5426\u6b63\u786e\u586b\u5199\u3002
    • \u5b9a\u65f6\u4efb\u52a1\u662f\u624b\u52a8\u6267\u884c\uff0c\u4e0d\u4f1a\u53d1\u9001\u6d88\u606f\u3002
    "},{"location":"faq/api_test/#45-httpip","title":"45 \u9009\u62e9\u73af\u5883\u540d\u79f0\u540e\uff0c\u8bf7\u6c42\u5185\u5bb9\u91cc\u53ea\u6709http://\u63a5\u53e3\uff0c\u6ca1\u6709\u4f7f\u7528\u5230\u5728\u73af\u5883\u914d\u7f6e\u7684ip\u548c\u7aef\u53e3\uff0c\u5e94\u8be5\u5982\u4f55\u8fdb\u884c\uff1f","text":"

    \u5728\u73af\u5883\u914d\u7f6e\u5904\uff0c\u4e0d\u9009\u62e9\u201c\u6a21\u5757\u201d\u6216\u8005\u201c\u8def\u5f84\u201d\uff0c\u9009\u62e9\u201c\u65e0\u201d\u5373\u53ef

    "},{"location":"faq/api_test/#46","title":"46 \u63a5\u53e3\u6d4b\u8bd5\u65ad\u8a00\u6210\u529f\uff0c\u4e3a\u4ec0\u4e48\u7528\u4f8b\u663e\u793a\u672a\u901a\u8fc7\uff1f","text":"

    \u5982\u679c\u54cd\u5e94\u7801\u4e0d\u662f200\uff0c\u9700\u8981\u52fe\u9009\"\u5ffd\u7565\u72b6\u6001\"\u5ffd\u7565\u72b6\u6001\u7801\u7684\u5224\u65ad\u3002

    "},{"location":"faq/api_test/#47","title":"47 \u5728\u540e\u7f6e\u811a\u672c\u4e2d\u5982\u4f55\u83b7\u53d6\u54cd\u5e94\u7ed3\u679c\uff1f","text":"

    prev.getResponseDataAsString()

    "},{"location":"faq/api_test/#48-jmeter","title":"48 \u63a5\u53e3\u6d4b\u8bd5\u4e2d\u5bfc\u5165 JMeter \u811a\u672c\u540e\uff0c\u6ca1\u6709\u4efb\u4f55\u8bf7\u6c42\u5185\u5bb9\uff1f","text":"

    \u4f7f\u7528 JMeter \u6253\u5f00 jmx \u6587\u4ef6\uff0c\u786e\u8ba4\u63a5\u53e3\u662f\u5426\u88ab\u7981\u7528\uff0c \u5982\u7981\u7528\u624b\u52a8\u5f00\u542f\u4fdd\u5b58\u540e\u518d\u5bfc\u5165\u3002

    "},{"location":"faq/api_test/#49-error-standardjmeterengine-jdbc-data-source-already-defined-for-mysql","title":"49 \u540e\u53f0\u65e5\u5fd7\u62a5\u9519\uff1aERROR StandardJMeterEngine JDBC data source already defined for: mysql","text":"

    \u67e5\u770b\u6570\u636e\u5e93-\u6570\u636e\u6e90\uff0c\u4fee\u6539\u6700\u5927\u8fde\u63a5\u6570\u3002

    "},{"location":"faq/api_test/#50-4m","title":"50 \u63a5\u53e3\u54cd\u5e94\u5185\u5bb9\u8fc7\u5927\uff08\u7ea64M\uff09\u5bfc\u81f4\u8bf7\u6c42\u5361\u4f4f\u4e0d\u52a8\uff0c\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u5f53\u54cd\u5e94\u5185\u5bb9\u8fc7\u5927\u65f6\uff0c\u5728 gateway \u65e5\u5fd7\u4e2d\u53ef\u4ee5\u53d1\u73b0\u5bf9\u5e94\u63d0\u793a\u65e5\u5fd7\uff1a Max frame length of 10485760 has been exceeded\u3002 \u5728 /opt/metersphere/conf/metersphere.properties \u6dfb\u52a0\u5c5e\u6027\uff1aspring.cloud.gateway.httpclient.websocket.max-frame-payload-length=\u81ea\u5b9a\u4e49\u5927\u5c0f\uff0c\u4fee\u6539\u5b8c\u540e msctl reload \u91cd\u65b0\u52a0\u8f7d\u5728\u914d\u7f6e\u6587\u4ef6\u5373\u53ef\u3002

    "},{"location":"faq/api_test/#51-geturlnon-http-response-code-iavaneturisyntaxexception","title":"51 \u63a5\u53e3\u6d4b\u8bd5get\u8bf7\u6c42\u5728URL\u540e\u9762\u4f20\u4e2d\u6587\u3001\u7279\u6b8a\u5b57\u7b26\u53c2\u6570\uff0c\u63a5\u53e3\u8fd4\u56deNon HTTP response code: iava.net.URISyntaxException\u62a5\u9519","text":"

    \u9700\u8981\u5148\u5728\u524d\u7f6e\u811a\u672c\u4e2d\uff0c\u5bf9\u4e2d\u6587\u3001\u7279\u6b8a\u5b57\u7b26\u7b49\u5148\u8fdb\u884c\u7f16\u7801\u5e76\u5b58\u50a8\u4e3a\u53d8\u91cf\uff0c\u7136\u540e\u5728\u4f20\u53c2\u5904\u5f15\u7528\u5bf9\u5e94\u7684\u53d8\u91cf\u5373\u53ef\uff0c\u5bf9\u5e94\u7684\u524d\u7f6e\u811a\u672c\u6837\u4f8b\u5982\u4e0b\uff1a

    import java.net.URLDecoder;\nimport java.net.URLEncoder;\n\nString strTest = \"?=abc?\u4e2d%1&2<3,4>\";\nstrTest = URLEncoder.encode(strTest, \"UTF-8\");//\u8f6c\u7801\nvars.put(\"str\",strTest );\n
    "},{"location":"faq/api_test/#52-finishconnect-failed-connection-refused-1723010148003","title":"52 \u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u5f39\u51fa\u7ea2\u8272\u62a5\u9519finishConnect(.) failed: Connection refused: /172.30.10.14:8003","text":"

    \u51fa\u73b0\u539f\u56e0\uff1a\u5e38\u89c1\u4e3a\u63a5\u53e3\u6d4b\u8bd5 api-test \u5bb9\u5668\u5185\u5b58\u6ea2\u51fa\u5bfc\u81f4\u5fae\u670d\u52a1\u8fde\u63a5\u5931\u8d25\u3002 \u5904\u7406\u65b9\u6cd5\uff1a\u53ef\u4ee5\u589e\u5927 api-test \u5bb9\u5668\u5185\u5b58\u5e76\u91cd\u542f\u8be5\u5bb9\u5668\u3002 vi /opt/metersphere/docker-compose-api-test.yml \u8c03\u5927mem_limit: \u53ef\u4ee5\u4e3a2g\uff0c\u4fee\u6539\u4fdd\u5b58\u540e msctl reload \u751f\u6548\u3002

    "},{"location":"faq/enterprise/","title":"\u4f01\u4e1a\u7248\u76f8\u5173","text":""},{"location":"faq/enterprise/#1","title":"1 \u5f00\u6e90\u7248\u548c\u4f01\u4e1a\u7248\u7684\u533a\u522b\u662f\u4ec0\u4e48\uff1f","text":"

    MeterSphere \u6838\u5fc3\u529f\u80fd\u5168\u90e8\u5f00\u6e90\uff0c\u575a\u6301\u6309\u6708\u53d1\u5e03\u65b0\u7248\u672c\uff0c\u6c38\u4e45\u514d\u8d39\u4f7f\u7528\u3002 \u76f8\u6bd4 MeterSphere \u5f00\u6e90\u7248\uff0cMeterSphere \u4f01\u4e1a\u7248\u5728\u529f\u80fd\u4e0a\u63d0\u4f9b\u9762\u5411\u4f01\u4e1a\u7ea7\u5e94\u7528\u573a\u666f\u7684 X-Pack \u589e\u5f3a\u5305\uff0c\u5305\u542bUI\u6d4b\u8bd5\u3001\u7248\u672c\u7ba1\u7406\u3001\u7f3a\u9677\u53cc\u5411\u540c\u6b65\u3001\u5355\u70b9\u767b\u5f55\u7b49\u589e\u5f3a\u529f\u80fd\uff0c\u5e76\u968f\u4ea7\u54c1\u8fed\u4ee3\u6301\u7eed\u589e\u52a0\u3002\u540c\u65f6\u4f01\u4e1a\u7248\u672c\u63d0\u4f9b\u539f\u5382\u6280\u672f\u652f\u6301\u670d\u52a1\uff0c\u670d\u52a1\u5185\u5bb9\u5305\u62ec\u90e8\u7f72\u5347\u7ea7\u3001\u4f7f\u7528\u57f9\u8bad\u3001\u6700\u4f73\u5b9e\u8df5\u8d4b\u80fd\u3001\u95ee\u9898\u6392\u67e5\u7b49\u3002

    \u66f4\u591a\u4f01\u4e1a\u7248\u8be6\u60c5\u8bf7\u67e5\u770b\uff1aMeterSphere \u4f01\u4e1a\u7248\u3002

    "},{"location":"faq/enterprise/#2","title":"2 \u5982\u4f55\u7533\u8bf7\u4f01\u4e1a\u7248\u8bd5\u7528\uff1f","text":"

    \u7533\u8bf7 MeterSphere \u4f01\u4e1a\u7248\u8bd5\u7528\uff0c\u8bf7\u70b9\u51fb\uff1aMeterSphere \u4f01\u4e1a\u7248\u8bd5\u7528\u7533\u8bf7\u3002

    "},{"location":"faq/enterprise/#3-metersphere","title":"3 \u5728\u54ea\u91cc\u53ef\u4ee5\u770b\u5230MeterSphere\u540e\u7eed\u7248\u672c\u66f4\u65b0\u7684\u91cd\u70b9\uff1f","text":"

    \u5728 GitHub \u7684\u7f6e\u9876 Issue \u4e2d\u53ef\u4ee5\u67e5\u770b\u540e\u7eed\u7248\u672c\u7684\u89c4\u5212\uff1aMeterSphere \u540e\u7eed\u89c4\u5212 \u3002

    "},{"location":"faq/installation/","title":"\u5b89\u88c5\u90e8\u7f72\u76f8\u5173","text":""},{"location":"faq/installation/#1-metersphere","title":"1 \u5982\u4f55\u8bbe\u7f6e MeterSphere \u5f00\u673a\u540e\u81ea\u52a8\u542f\u52a8\uff1f","text":"

    MeterSphere \u5728\u5b89\u88c5\u811a\u672c\u4e2d\u6ca1\u6709\u914d\u7f6e docker \u670d\u52a1\u53ca\u4ee5\u53ca MeterSphere \u670d\u52a1\u81ea\u542f\u52a8\uff0c\u53ef\u53c2\u8003MeterSphere\u4e4b\u8bbe\u7f6e\u670d\u52a1\u5f00\u673a\u81ea\u542f\u52a8 \u8fdb\u884c\u914d\u7f6e\u3002

    "},{"location":"faq/installation/#2","title":"2 \u5982\u4f55\u4fee\u6539\u5e94\u7528\u7684\u9ed8\u8ba4\u7aef\u53e3\uff1f","text":"

    MeterSphere \u9ed8\u8ba4\u7684 HTTP \u670d\u52a1\u76d1\u542c\u7aef\u53e3\u4e3a8081\uff0c\u5b89\u88c5\u4e4b\u524d\u53ef\u4ee5\u5728\u914d\u7f6e\u6587\u4ef6 install.conf \u4e2d\u4fee\u6539 MS_SERVER_PORT \u5b57\u6bb5\uff0c\u7136\u540e\u518d\u8fdb\u884c\u5b89\u88c5\u3002 \u5b89\u88c5\u5b8c\u6210\u540e\u5982\u679c\u9700\u8981\u4fee\u6539\u9ed8\u8ba4\u7684\u5e94\u7528\u7aef\u53e3\uff0c\u5219\u9700\u8981\u4fee\u6539 /opt/metersphere/.env \u6587\u4ef6\u4e2d\u7684 MS_SERVER_PORT \u5b57\u6bb5\uff0c\u7136\u540e\u6267\u884c msctl reload \u547d\u4ee4\u91cd\u65b0\u52a0\u8f7d\u5e94\u7528\u3002

    "},{"location":"faq/installation/#3-kubernetes-metersphere","title":"3 \u5982\u4f55\u5728 Kubernetes \u4e2d\u642d\u5efa MeterSphere\uff1f","text":"

    MeterSphere Kubernetes \u90e8\u7f72\u64cd\u4f5c\u89c1 MeterSphere Kubernetes \u90e8\u7f72

    "},{"location":"faq/installation/#4-docker-compose-docker-compose","title":"4 docker-compose \u7248\u672c\u4e0e\u914d\u7f6e\u6587\u4ef6\u4e0d\u517c\u5bb9\u6216\u914d\u7f6e\u6587\u4ef6\u5b58\u5728\u95ee\u9898\uff0c\u8bf7\u91cd\u65b0\u5b89\u88c5\u6700\u65b0\u7248\u672c\u7684 docker-compose \u6216\u68c0\u67e5\u914d\u7f6e\u6587\u4ef6?","text":"

    \u5982\u679c\u670d\u52a1\u5668\u5df2\u7ecf\u5b89\u88c5\u4e86 docker-compose\uff0c MeterSphere \u5b89\u88c5\u811a\u672c\u68c0\u6d4b\u5230 docker-compose \u5df2\u5b89\u88c5\uff0c\u5c31\u4f1a\u8df3\u8fc7\u81ea\u52a8\u5b89\u88c5 docker-compose \u7684\u6b65\u9aa4\uff0c\u800c\u5df2\u5b89\u88c5\u7684\u7248\u672c\u4e0e MeterSphere \u8981\u6c42\u7684\u7248\u672c\u4e0d\u5339\u914d\u5c31\u4f1a\u5bfc\u81f4\u8fd9\u4e2a\u95ee\u9898\u3002\u9700\u8981\u624b\u52a8\u5347\u7ea7\u670d\u52a1\u5668\u4e0a\u7684 docker-compose \u7248\u672c\u4e3a /opt/metersphere/docker-compose_*.yml \u4e2d\u6307\u5b9a\u7684\u7248\u672c\uff0c\u6216\u8005\u628a\u79bb\u7ebf\u5b89\u88c5\u5305\u91cc\u7684 docker-compose \u6587\u4ef6\u62f7\u8d1d\u5230\u7cfb\u7edf\u76ee\u5f55\u5e76\u4fee\u6539\u6743\u9650\u5373\u53ef\uff1a

    cp docker/bin/docker-compose /usr/bin/\nchmod +x /usr/bin/docker-compose\n
    "},{"location":"faq/installation/#5","title":"5 \u5982\u4f55\u5347\u7ea7\u5230\u6307\u5b9a\u7248\u672c\uff1f","text":"

    msctl upgrade \u540e\u8fb9\u8ddf\u7248\u672c\u53f7\uff0c\u4f8b\u5982\uff1amsctl upgrade v2.10.1-lts \u3002

    "},{"location":"faq/installation/#6","title":"6 \u5982\u4f55\u5378\u8f7d\uff1f","text":"

    \u5148\u505c\u6b62\u6b63\u5728\u8fd0\u884c\u7684 MeterSphere \u5bb9\u5668\uff0c\u7136\u540e\u518d\u5220\u9664\u5bb9\u5668\uff0c\u6700\u540e\u5220\u9664\u5e94\u7528\u6570\u636e\u76ee\u5f55\u4ee5\u53ca docker \u73af\u5883\u7b49\uff0c\u5177\u4f53\u64cd\u4f5c\u89c1\u5982\u4e0b\u547d\u4ee4\uff1a

    #1\u3001\u5148\u505c\u6b62\u6b63\u5728\u8fd0\u884c\u7684 MeterSphere \u5bb9\u5668\uff0c\u7136\u540e\u518d\u5220\u9664\u5bb9\u5668\nmsctl uninstall\n\n#\u5378\u8f7d\u5e94\u7528\u6570\u636e\nrm -rf /opt/metersphere\nrm -rf /usr/local/bin/msctl\nrm -rf ~/.msrc\n\n#\u5378\u8f7d docker \u548c docker-compose\nsystemctl stop docker\nrm -rf /usr/bin/docker*\nrm -rf /usr/bin/containerd*\nrm -rf /usr/bin/ctr\nrm -rf /usr/bin/runc\nrm -rf /etc/systemd/system/docker.service\nsystemctl daemon-reload\n
    "},{"location":"faq/installation/#7","title":"7 \u5378\u8f7d\u4f1a\u5bfc\u81f4\u6570\u636e\u6e05\u7a7a\u4e48\uff1f","text":"

    MerterSphere \u5e94\u7528\u6570\u636e\u8fdb\u884c\u4e86\u672c\u5730\u7684\u6301\u4e45\u5316\u5b58\u50a8\uff0c\u6240\u4ee5 msctl uninstall \u5378\u8f7d\u4e0d\u4f1a\u5f71\u54cd\u6570\u636e\u3002

    "},{"location":"faq/installation/#8-usrlocalbinmsctl-line-115","title":"8 \u5347\u7ea7\u8fc7\u7a0b\u4e2d\u62a5\u9519\uff1a/usr/local/bin/msctl: line 115 ....","text":"

    \u4e3b\u8981\u539f\u56e0\u662f msctl \u7684 shell \u517c\u5bb9\u6027\u5bfc\u81f4\uff0ccat /usr/local/bin/msctl \u67e5\u770b\u8fd9\u4e2a\u6587\u4ef6\u5bf9\u5e94\u884c\u6570\u7684\u4ee3\u7801\uff0c\u5e76\u8fdb\u884c\u517c\u5bb9\u6027\u5904\u7406\u3002

    "},{"location":"faq/installation/#9-schema-metersphere-contains-a-failed-migration-to-version-86","title":"9 \u5347\u7ea7\u62a5\u9519\uff1aSchema metersphere contains a failed migration to version 86 !","text":"

    sql \u521d\u59cb\u5316\u5931\u8d25\u5bfc\u81f4\uff0c\u9700\u8981\u8fde\u63a5 metersphere \u6570\u636e\u5e93\u624b\u52a8\u6267\u884csql\u3002

    • \u5230 github \u6e90\u7801\u4e0a https://github.com/metersphere/metersphere/tree/v2.3.1/system-setting/backend/src/main/resources/db/migration \u4e0b\u8f7d\u5bf9\u5e94\u6587\u4ef6\u540d\u5e26 86 \u7684 flyway sql\u3002\u6b64\u5904\u94fe\u63a5v2.3.1\u4e3a\u5b89\u88c5\u7684\u7248\u672c\u53f7\uff0c\u5982\u679c\u4e0d\u662f\u8be5\u7248\u672c\uff0c\u53ef\u5207\u6362\u5230\u76ee\u6807\u7248\u672c\u518d\u4e0b\u8f7dsql\u6587\u4ef6.
    • \u5c06\u6587\u4ef6\u4e0a\u4f20\u5230 MeterSphere \u670d\u52a1\u5668\uff0c\u5e76\u5c06sql\u6587\u4ef6 copy \u5230\u5bb9\u5668\u4e2d
          #\u5c06\u5907\u4efd\u7684sql\u6570\u636e\u590d\u5236\u81f3mysql\u5bb9\u5668\n    docker cp V86__v1.10.1_release.sql mysql:/\n    #\u4f7f\u7528 metersphere \u5e76\u6267\u884csql\n    docker exec -it mysql bash\n    mysql -uroot -pPassword123@mysql\n    use metersphere;\n    #\u5bfc\u5165\u6570\u636e\u5e93\u6587\u4ef6\n    source /V86__v1.10.1_release.sql\n
    • \u5168\u90e8\u6267\u884c\u6210\u529f\u540e\uff0c\u4fee\u6539 metersphere_version \u8868\u5bf9\u5e94\u7248\u672c 86 \u7684 success \u503c\u4e3a1\uff0c\u9000\u51famysql\u5bb9\u5668\u7136\u540e msctl reload \u91cd\u542f\u670d\u52a1\u5373\u53ef\u3002 update metersphere_version set success=1 where version=86;
    "},{"location":"faq/installation/#10","title":"10 \u5982\u4f55\u5907\u4efd\u6570\u636e\u5e93?","text":"

    \u5177\u4f53\u64cd\u4f5c\u8be6\u7ec6\u89c1 MeterSphere \u6570\u636e\u5907\u4efd\u3002

    "},{"location":"faq/installation/#11-mysqldump-error-2020-got-packet-bigger-than-max_allowed_packet-bytes-when-dumping-table-api_scenario_report_detail-at-row-94","title":"11 mysqldump \u5bfc\u51fa\u6570\u636e\u5e93\u65f6\u62a5\u9519\uff1a Error 2020: Got packet bigger than 'max_allowed_packet' bytes when dumping table `api_scenario_report_detail` at row: 94","text":"

    mysqldump \u6267\u884c\u65f6\u6dfb\u52a0 max_allowed_packet \u53c2\u6570\uff1a

    docker exec -i mysql mysqldump -uroot -pPassword123@mysql metersphere --max_allowed_packet=2G > metersphere.sql\n

    "},{"location":"faq/installation/#12-non-http-response-code-javanetsockettimeoutexception","title":"12 \u6027\u80fd\u6d4b\u8bd5\u65f6\u5e76\u53d1\u91cf\u52a0\u5927\u7684\u65f6\u5019\u62a5\u9519\uff1aNon HTTP response code: java.net.SocketTimeoutException","text":"

    \u591a\u662f\u56e0\u4e3a\u670d\u52a1\u7aef\u6709\u8f83\u591a\u8bf7\u6c42\u6b63\u5728\u5904\u7406\uff08\u4e14\u5904\u7406\u65f6\u95f4\u8f83\u957f\uff09\uff0c\u5bfc\u81f4 MeterSphere \u5728\u6709\u6548\u65f6\u95f4\u5185\u65e0\u6cd5\u8fde\u63a5\u4e0a\u670d\u52a1\u5668\u800c\u51fa\u73b0\uff0c\u53ef\u901a\u8fc7\u4fee\u6539\u5355\u4e2a\u63a5\u53e3\u7684\u8fde\u63a5\u8d85\u65f6\u65f6\u95f4\u89e3\u51b3\u3002

    "},{"location":"faq/installation/#13-mysql-lower_case_table_names1","title":"13 MySQL \u6570\u636e\u5e93\u8bbe\u7f6e\u4e86\u5ffd\u7565\u5927\u5c0f\u4f46\u672a\u751f\u6548\uff0clower_case_table_names=1","text":"

    \u53ef\u80fd\u662f\u56e0\u4e3a my.cnf \u6587\u4ef6\u6743\u9650\u4e0d\u5bf9\u5bfc\u81f4\uff0c\u4fee\u6539\u6743\u9650\u540e\u91cd\u542f\u6570\u636e\u5e93\u3002

    # chmod 655 /opt/metersphere/conf/my.cnf \n# docker restart mysql\n

    "},{"location":"faq/installation/#14-kafka","title":"14 \u5982\u4f55\u5220\u9664kafka\u4e2d\u7684\u4e34\u65f6\u6570\u636e\uff0c\u51cf\u4f4e\u78c1\u76d8\u4f7f\u7528\u7387\uff1f","text":"

    v1.20.x-lts\uff0c\u9700\u8981\u540c\u65f6\u5220\u9664 Kafka \u548c Zookeeper \u7684\u4e34\u65f6\u6587\u4ef6

    msctl uninstall\nrm -rf /opt/metersphere/data/kafka/kafka   \nrm -rf  /opt/metersphere/data/zookeeper/zookeeper\nmsctl reload   #\u91cd\u65b0\u521b\u5efa\u76ee\u5f55\u548c\u57fa\u7840\u6587\u4ef6  \n

    v2.x \u5fae\u670d\u52a1\u67b6\u6784\uff0c Kafka \u4f7f\u7528\u7248\u672c\u5347\u7ea7\uff0c\u53ea\u9700\u5220\u9664 Kafka \u7684\u4e34\u65f6\u6587\u4ef6

    msctl uninstall\nrm -rf /opt/metersphere/data/kafka/kafka   \nmsctl reload   #\u91cd\u65b0\u521b\u5efa\u76ee\u5f55\u548c\u57fa\u7840\u6587\u4ef6 \n
    "},{"location":"faq/installation/#15-terminating-due-to-javalangoutofmemoryerror-gc-overhead-limit-exceeded","title":"15 \u6267\u884c\u673a\u7ecf\u5e38\u62a5\u5185\u5b58\u6ea2\u51fa\uff1aTerminating due to java.lang.OutOfMemoryError: GC overhead limit exceeded","text":"

    \u589e\u5927\u5806\u5185\u5b58\uff1a

    set JAVA_OPTS=-server -Xms512m -Xmx1024m -XX:MaxNewSize=1024m -XX:MaxPermSize=1024m;\n

    "},{"location":"faq/installation/#16-metersphere-jenkins","title":"16 MeterSphere jenkins \u63d2\u4ef6\u9a8c\u8bc1\u901a\u8fc7\u540e\u627e\u4e0d\u5230\u5de5\u4f5c\u7a7a\u95f4","text":"

    \u68c0\u67e5\u914d\u7f6e\u7684 MeterSphere URL \u5730\u5740\uff0c\u5982\u679c\u5730\u5740\u91cc\u591a\u4e86/login\u8def\u5f84\u4f1a\u51fa\u73b0\u8fd9\u4e2a\u73b0\u8c61\u3002

    "},{"location":"faq/installation/#17-jenkins-metersphere-jenkins-metersphere-meterspherejavalangruntimeexceptionhttpclient","title":"17 Jenkins \u63d2\u4ef6\u4e0e MeterSphere \u7248\u672c\u4e00\u81f4\uff0c\u5e76\u4e14\u5df2\u786e\u8ba4 Jenkins \u4e3b\u673a\u4e0e MeterSphere \u670d\u52a1\u5668\u4e4b\u95f4\u7f51\u7edc\u901a\u7545\uff0c\u4f46\u9a8c\u8bc1\u8d26\u6237\u65f6\u63d0\u793a:\u201c\u9a8c\u8bc1MeterSphere\u8d26\u53f7\u5931\u8d25\uff01java.lang.RuntimeException:HttpClient\u67e5\u8be2\u5931\u8d25\u201d\uff0c\u539f\u56e0\u662f\u4ec0\u4e48\uff1f\u5982\u4f55\u89e3\u51b3\uff1f","text":"

    \u67e5\u770b\u5e76\u786e\u8ba4 MeterSphere \u670d\u52a1\u5668\u4e0e Jenkins \u670d\u52a1\u5668\u65f6\u95f4\u662f\u5426\u4e00\u81f4\uff0c\u5982\u679c\u4e0d\u4e00\u81f4\u5c06\u4f1a\u56e0\u4e3a\u7b7e\u540d\u5931\u6548\u5bfc\u81f4\u9a8c\u8bc1\u8d26\u6237\u65f6\u5f02\u5e38\u3002

    "},{"location":"faq/installation/#18-image-not-found-xxxxxx","title":"18 \u5347\u7ea7\u6216\u5b89\u88c5\u65f6\u540e\u53f0\u62a5\u9519:image not found : xxxxxx","text":"

    \u955c\u50cf\u88ab\u8bef\u5220\u9664\u4e86\uff0c\u9700\u8981\u5728 MeterSphere \u4e3b\u673a\u4e0a\u91cd\u65b0docker pull\u8be5\u955c\u50cf\uff0c\u6216\u4e0b\u8f7d\u5b8c\u6574\u79bb\u7ebf\u5b89\u88c5\u5305\u8fdb\u884c\u79bb\u7ebf\u5347\u7ea7\u6216\u5b89\u88c5\u3002

    "},{"location":"faq/installation/#19-url","title":"19 \u524d\u7aef\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u6216\u63a5\u53e3\u573a\u666f\u62a5\u9519\uff1a\u8bf7\u68c0\u67e5\u5f53\u524d\u7ad9\u70b9url\u914d\u7f6e\uff1b","text":"

    \u672c\u5730\u642d\u5efa\u7684\u9700\u8981\u8981\u628alocalhost `\u6539\u4e3a\u5177\u4f53 IP\u3002

    "},{"location":"faq/installation/#20","title":"20 \u5982\u4f55\u76d1\u63a7\u88ab\u538b\u6d4b\u7684\u673a\u5668\uff1f","text":"

    \u5728\u88ab\u6d4b\u670d\u52a1\u5668\u4e0a\u5b89\u88c5 node-exporter \u670d\u52a1\uff0c\u7136\u540e\u5728 \u6027\u80fd\u6d4b\u8bd5-\u9ad8\u7ea7\u914d\u7f6e \u91cc\u6dfb\u52a0\u76d1\u63a7\uff0c\u586b\u5199\u88ab\u6d4b\u670d\u52a1\u5668\u4e0a node-exporter \u670d\u52a1\u7684 ip \u548c\u7aef\u53e3\u4ee5\u53ca\u76d1\u63a7\u9879\u3002\u8be6\u7ec6\u64cd\u4f5c\u89c1\u6027\u80fd\u6d4b\u8bd5-\u76d1\u63a7

    "},{"location":"faq/installation/#21","title":"21 \u5fd8\u8bb0 \u5bc6\u7801\u5982\u4f55\u5904\u7406\uff1f","text":"

    MeterSphere \u666e\u901a\u7528\u6237\u5fd8\u8bb0\u5bc6\u7801\uff0c\u7ba1\u7406\u5458\u53ef\u4ee5\u5728\u7cfb\u7edf\u8bbe\u7f6e-\u7528\u6237\u9875\u9762\u4e2d\u8fdb\u884c\u4fee\u6539\u3002

    "},{"location":"faq/installation/#22","title":"22 \u7cfb\u7edf\u8fd0\u884c\u4e00\u6bb5\u65f6\u95f4\u540e\u78c1\u76d8\u53ef\u4ee5\u6e05\u7406\u54ea\u4e9b\u65e0\u7528\u7684\u6587\u4ef6\u6765\u91ca\u653e\u78c1\u76d8","text":"
    • \u5220\u9664\u4e4b\u524d\u7248\u672c\u591a\u4f59\u7684\u955c\u50cf\u3002 docker rmi 'docker images -q' docker images # \u68c0\u67e5\u5269\u4f59\u955c\u50cf
    • \u5220\u9664\u4e4b\u524d\u7684MeterSphere \u5b89\u88c5\u5305\u548c\u89e3\u538b\u5305\u3002
    • \u51cf\u5c11\u7cfb\u7edf\u65e5\u5fd7\u4fdd\u7559\u5929\u6570\uff1a vi /opt/metersphere/conf/metersphere.properties \u589e\u52a0\u914d\u7f6e\u9879\u8bbe\u7f6e\u65e5\u5fd7\u4fdd\u5b58\u5929\u6570\uff0c\u5982\uff1a logger.max.history=3\u3002
    • \u505c\u6b62\u5b9a\u65f6\u4efb\u52a1\uff0c\u5e76\u505c\u6b62 MeterSphere \u670d\u52a1\uff0c\u5220\u9664/opt/metersphere/data/kafka/kafka\u548c/opt/metersphere/data/zookeeper/zookeeper\uff08v2.3\u4e4b\u524d\uff09\u76ee\u5f55\uff0c\u7136\u540e\u518d\u91cd\u542f MeterSphere \u670d\u52a1\u3002
    "},{"location":"faq/installation/#23-metersphere-prometheus-restarting","title":"23 MeterSphere \u90e8\u7f72\u4e2d\u9047\u5230 Prometheus \u542f\u52a8\u4e0d\u8d77\u6765\uff0c\u4e00\u76f4\u5904\u4e8e Restarting \u7684\u95ee\u9898","text":"

    \u53ef\u80fd\u662f\u56e0\u4e3a\u6587\u4ef6\u6743\u9650\u4e0d\u5bf9\u5bfc\u81f4\uff0c\u4fee\u6539\u6743\u9650\u540e\u5220\u9664\u4e4b\u524d\u7684 prometheus \u5bb9\u5668\u5e76 reload\u3002

    chmod -R 755 /opt/metersphere/conf/prometheus\ndocker stop ms-prometheus\ndocker rm ms-prometheus\nmsctl reload\n

    "},{"location":"faq/installation/#24-redis-restarting","title":"24 \u9047\u5230 redis \u542f\u52a8\u4e0d\u8d77\u6765\uff0c\u4e00\u76f4\u5904\u4e8e Restarting \u7684\u95ee\u9898","text":"

    \u53ef\u80fd\u662f\u56e0\u4e3a redis.conf \u6587\u4ef6\u6743\u9650\u4e0d\u5bf9\u5bfc\u81f4\uff0c\u4fee\u6539\u6743\u9650\u540e\u5220\u9664\u4e4b\u524d\u7684 redis \u5bb9\u5668\u5e76 reload\u3002

    chmod -R 755 /opt/metersphere/conf/redis.conf\ndocker stop redis\ndocker rm redis\nmsctl reload\n

    "},{"location":"faq/installation/#25-redis","title":"25 Redis \u65e0\u6cd5\u8fde\u63a5","text":"
    • \u68c0\u67e5\u9632\u706b\u5899\u662f\u5426\u5f00\u542f\u3002
    • \u68c0\u67e5 6379\u7aef\u53e3\u662f\u5426\u5f00\u653e\u3002
    • \u68c0\u67e5 /opt/metersphere/.env \u6587\u4ef6\u4e2d\u914d\u7f6e\u7684 Redis \u5730\u5740\u662f\u5426\u662f\u5bf9\u4e8e\u7684\u670d\u52a1\u5668\u7684IP\u5730\u5740\u3002\u5982\u5730\u5740\u6b63\u786e\u4efb\u65e0\u6cd5\u8fde\u63a5\u53ef\u4fee\u6539 /opt/metersphere/.env \u6587\u4ef6\u628aMS_REDIS_HOST=redis
    "},{"location":"faq/installation/#26-docker-docker-error-response-from-daemon-oci-runtime-create-failed-systemd-cgroup-flag-passed-but-systemd-support-for-managing-cgroups-is-not-available","title":"26 docker \u8fd0\u884c\u9519\u8bef\uff1adocker: Error response from daemon: OCI runtime create failed: systemd cgroup flag passed, but systemd support for managing cgroups is not available:\u2026\u2026","text":"
    • \u6253\u5f00 daemon.json \u6587\u4ef6\uff0c \u5c06 \"exec-opts\": [\"native.cgroupdriver=systemd\"] \u5220\u9664\u3002
    • \u91cd\u542f docker\uff1aservice docker restart\u3002
    • \u91cd\u542f\u670d\u52a1: msctl reload\u3002
    "},{"location":"faq/installation/#27-javasqlsqlnontransientconnectionexception-data-source-rejected-establishment-of-connection-message-from-server-too-many-connection","title":"27 \u540e\u53f0\u65e5\u5fd7\u63d0\u793a\u6570\u636e\u5e93\u8fde\u63a5\u6570\u5f02\u5e38\uff1ajava.sql.SQLNonTransientConnectionException: Data source rejected establishment of connection, message from server, too many connection","text":"

    \u53ef\u80fd\u662f\u56e0\u4e3a my.cnf \u6587\u4ef6\u6743\u9650\u4e0d\u5bf9\u5bfc\u81f4\u914d\u7f6e\u6587\u4ef6\u6ca1\u6709\u751f\u6548\uff0c\u4fee\u6539\u6743\u9650\u540e\u5220\u9664\u4e4b\u524d\u7684 mysql \u5bb9\u5668\u5e76 reload\u3002

    chmod -R 655 /opt/metersphere/conf/my.cnf\ndocker stop mysql\ndocker rm mysql\nmsctl reload\n

    "},{"location":"faq/installation/#28-sqlsyntaxerrorexceptionexpression-3-of-select-list-is-not-in-group-by-clause-and-contains-nonaggregated-column-metersphere-_devapi_definition_exec_resultstart_time","title":"28 \u540e\u53f0\u65e5\u5fd7\u63d0\u793a\u6570\u636e\u5e93\u8bed\u6cd5\u5f02\u5e38\uff1aSQLSyntaxErrorException\uff1aExpression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column \u201cmetersphere\u201d _dev.api_definition_exec_result.start_time\u2019","text":"

    \u4fee\u6539\u6570\u636e\u5e93\u914d\u7f6e\u6587\u4ef6 my.cnf\uff0c\u589e\u52a0\u914d\u7f6e\u8bed\u6cd5\u6821\u9a8c\u89c4\u5219\uff1asql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE

    "},{"location":"faq/installation/#29-sqljavaxnetsslsslhandshakeexception-no-appropriate-protocol","title":"29 \u524d\u540e\u7f6eSQL\u811a\u672c\u6267\u884c\u62a5\u9519\uff1ajavax.net.ssl.SSLHandshakeException: No appropriate protocol\u2026\u2026","text":"

    \u5728\u73af\u5883\u7ba1\u7406-\u6570\u636e\u5e93\u914d\u7f6e\u4e2d\u7684\"\u6570\u636e\u5e93\u8fde\u63a5URL\"\u540e\u9762\u6dfb\u52a0 '?createDatabaseIfNotExist=true&useSSL=false'\u3002

    "},{"location":"faq/installation/#30-msctl-status","title":"30 msctl status\u663e\u793a\u670d\u52a1\u6b63\u5e38\uff0c\u4f46\u662f\u5b9e\u9645\u670d\u52a1\u5374\u8bbf\u95ee\u4e0d\u4e86\u600e\u4e48\u529e\uff1f","text":"

    \u5982\u679c MeterSphere \u4e3b\u673a\u7f51\u7edc\u914d\u7f6e\uff08IP\u3001firewalld\u3001iptables\u7b49\uff09\u53d1\u751f\u4e86\u53d8\u5316\uff0c\u4f1a\u5bfc\u81f4\u4e4b\u524d\u7684\u5bb9\u5668\u7f51\u7edc\u5931\u6548\uff0c\u51fa\u73b0\u6d4f\u89c8\u5668\u65e0\u6cd5\u8bbf\u4f46\u4f7f\u7528 msctl status \u547d\u4ee4\u67e5\u770b\u5982MeterSphere \u5404\u670d\u52a1\u7ec4\u4ef6\u8fd0\u884c\u90fd\u6b63\u5e38\u5f97\u73b0\u8c61\u3002\u9700\u8981\u5148\u91cd\u542f docker\uff0c\u518d\u91cd\u542f MeterSphere \u670d\u52a1\u3002

    "},{"location":"faq/installation/#31-session","title":"31 \u5982\u4f55\u4fee\u6539 session \u8fc7\u671f\u65f6\u95f4\uff1f","text":"

    \u5728 /opt/metersphere/conf/metersphere.properties \u4e2d\u6dfb\u52a0\u5b57\u6bb5 session.timeout\uff0c\u5355\u4f4d\u79d2\u3002

    "},{"location":"faq/installation/#32-k8s-metersphere-413-request-entity-too-large","title":"32 K8S \u90e8\u7f72 metersphere \u5728\u4e0a\u4f20\u6587\u4ef6\u65f6\u63d0\u793a\uff1a413 request entity too large","text":"

    \u914d\u7f6e ngnix \u8bf7\u6c42\u89e3\u9664\u9ed8\u8ba4\u7684 1M \u9650\u5236\uff1a

    kubectl edit ingress metersphere\napiVersion: extensions/v1beta1\nkind: Ingress\nmetadata:\nannotations:\nmeta.helm.sh/release-name: metersphere\nmeta.helm.sh/release-namespace: default\nnginx.ingress.kubernetes.io/proxy-body-size: 50m\n

    "},{"location":"faq/installation/#33-metersphere-413-request-entity-too-large","title":"33 \u4e3b\u673a\u90e8\u7f72 metersphere \u5728\u4e0a\u4f20\u6587\u4ef6\u65f6\u63d0\u793a\uff1a413 request entity too large","text":"

    \u5728 nginx \u670d\u52a1\u7684\u914d\u7f6e\u6587\u4ef6 nginx.conf \u7684 http \u6bb5\u4e2d\u52a0\u5165 client_max_body_size xxm\uff0c xx\u6839\u636e\u9700\u6c42\u6539\u52a8\uff0c\u4fdd\u5b58\u540e\u91cd\u542f nginx\u3002

    "},{"location":"faq/installation/#34-nginx-f12-websocket","title":"34 \u4f7f\u7528Nginx\u914d\u7f6e\u53cd\u5411\u4ee3\u7406\u540e\uff0c\u5728\u8fdb\u884c\u63a5\u53e3\u6d4b\u8bd5\u65f6\uff0c\u9875\u9762\u5361\u5728\u52a0\u8f7d\u72b6\u6001\uff0c\u6309 F12 \u53ef\u4ee5\u770b\u5230 websocket \u8fde\u63a5\u5931\u8d25","text":"

    \u9700\u8981\u52a0\u4e0a Nginx websocket \u914d\u7f6e:

    server{\n  ...\n  location / {\n    proxy_pass http://jumpserver_nginx;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header Host $host;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\n    #\u52a0\u4e0a\u8fd9\u6bb5\n    proxy_http_version 1.1;\n    proxy_set_header Upgrade $http_upgrade;\n    proxy_set_header Connection \"upgrade\";\n  }\n}\n
    "},{"location":"faq/installation/#35-the-connection-is-abnormal-please-check-the-environment-configuration","title":"35 \u63a5\u53e3\u8fd0\u884c\u65f6\uff0c\u9875\u9762\u62a5\u9519:The connection is abnormal\uff0c please check the environment configuration","text":"
    • \u5982\u679c\u4f7f\u7528\u4e86Nginx\uff0c \u8bf7\u53c2\u8003 \u914d\u7f6e\u53cd\u5411\u4ee3\u7406\u3002
    • \u5982\u679c\u4f7f\u7528\u4e86fidder\u3001charles\u7b49\u4ee3\u7406\u4ee3\u5de5\u5177\uff0c\u5148\u5173\u95ed\u3002
    • \u5982\u679c https://ip:8081 \u88ab\u62e6\u622a\u4e86\uff0c\u8bf7\u4f7f\u7528 http://ip:8081 \u3002
    "},{"location":"faq/installation/#36-http-error-500-javaxservletservletexception-filtered-request-failed","title":"36 \u5347\u7ea7\u540e\u670d\u52a1\u6b63\u5e38\uff0c\u4f46\u662f\u8bbf\u95ee\u9875\u9762\u63d0\u793a\uff1aHTTP ERROR 500 javax.servlet.ServletException: Filtered request failed.","text":"
    • \u6e05\u6d4f\u89c8\u5668\u7f13\u5b58\uff0c\u91cd\u65b0\u6253\u5f00\u6d4f\u89c8\u5668\u8fdb\u884c\u8bbf\u95ee\u3002
    • \u6e05\u9664 redis \u6570\u636e\uff1a
    docker exec -it redis sh\nredis-cli   \nauth Password123@redis\nflushall\n
    "},{"location":"faq/installation/#37-javaiofilenotfoundexceptionoptmeterspherelogsmeterspherems-jmeter-run-loglogno-such-file-or-directory","title":"37 \u65e5\u5fd7\u4e2d\u63d0\u793a\uff1ajava.io.FileNotFoundException\uff1a/opt/metersphere/logs/metersphere/ms-jmeter-run-log.log(no such file or directory)","text":"

    \u68c0\u67e5 selinux \u72b6\u6001\uff0c\u5982\u679c\u662f\u5f00\u542f\u72b6\u6001\uff0c\u5c1d\u8bd5\u5173\u95ed\u540e\u518d\u91cd\u542f docker\uff0c\u91cd\u65b0\u52a0\u8f7d MeterSphere\u3002

    "},{"location":"faq/installation/#38-metersphere-k8s","title":"38 MeterSphere k8s\u90e8\u7f72\u540e\u5982\u4f55\u63a7\u5236\u6570\u636e\u5e93\u7684\u8fde\u63a5\u6570","text":"
    • \u5728 metersphere-config \u7684 ConfigMap \u6587\u4ef6\u91cc\uff0cDATABASE \u5904\u65b0\u589e\u5982\u4e0b\u4e24\u884c\u53c2\u6570\u3002
    • \u5728 values.yml \u6587\u4ef6\u91cc\uff0cDATABASE \u5904\u65b0\u589e\u5982\u4e0b\u4e24\u884c\u53c2\u6570\u3002
      spring.datasource.hikari.maximum-pool-size=\u4f60\u60f3\u8981\u7684\u6570\u503c\nspring.datasource.quartz.hikari.maximum-pool-size=\u4f60\u60f3\u8981\u7684\u6570\u503c\n
    "},{"location":"faq/installation/#39-encountered-error-while-bringing-up-the-project-msctl-status-mysql-restarting","title":"39 \u5b89\u88c5\u65f6\u51fa\u73b0\uff1aEncountered error while bringing up the project\uff0c msctl status \u65f6\u770b\u5230 mysql \u5bb9\u5668\u4e00\u76f4 Restarting","text":"

    \u5728 /opt/metersphere/docker-compose-mysql.yml \u6587\u4ef6 restart: always \u540e\u9762\u4e00\u884c\u52a0 privileged: true \u8fd9\u4e2a\u53c2\u6570\uff0c\u7136\u540e\u518d\u6267\u884c msctl reload \u5373\u53ef\u3002

    "},{"location":"faq/installation/#40-creating-network-metersphere_ms-network-with-driver-brige-pool-overlaps-with-other-one-on-this-address-space","title":"40 \u5b89\u88c5\u90e8\u7f72\u65f6\u62a5\u9519\uff1aCreating network \"metersphere_ms-network\" with driver \"brige\" Pool overlaps with other one on this address space","text":"

    \u4e3b\u8981\u539f\u56e0\u662f MeterSphere \u9ed8\u8ba4\u7684\u5bb9\u5668\u7f51\u7edc\u5730\u5740\u7a7a\u95f4\u5176\u5b83\u5730\u5740\u51b2\u7a81\uff0c\u9700\u8981\u91cd\u65b0\u624b\u52a8\u4fee\u6539\u5e76\u91cd\u65b0\u521b\u5efa\u3002

    • \u6e05\u9664\u5b50\u7f51\u7f51\u6bb5\uff1adocker network prune
    • \u5c06 /opt/metersphere/.env \u91cc MS_DOCKER_SUBNET \u6539\u6210\u5176\u5b83\u7f51\u7edc\u6bb5
    • \u624b\u52a8\u521b\u5efa\u5bb9\u5668\u7f51\u7edc\uff1adocker network create metersphere_ms-network
    • \u91cd\u542f\u670d\u52a1\u5668\uff1amsctl reload
    "},{"location":"faq/installation/#41","title":"41 \u6570\u636e\u5e93\u91c7\u7528\u5b89\u88c5\u5305\u5185\u7f6e\u6570\u636e\uff0c\u672a\u5f00\u542f\u5668\u9632\u706b\u5899\u7684\u60c5\u51b5\u4e0b\uff0c\u4e3a\u4f55\u670d\u52a1\u8fde\u4e0d\u4e0a\u6570\u636e\u5e93\uff1f","text":"

    \u68c0\u67e5 /opt/metersphere/.env \u4e2d\u7684 MS_DOCKER_SUBNET \u4e0e\u670d\u52a1\u5668\u7f51\u5361\u662f\u5426\u5728\u540c\u4e00\u7f51\u6bb5\uff0c\u5982\u679c\u662f\u540c\u4e00\u7f51\u6bb5\u5c06\u5f71\u54cd\u8def\u7531\u8f6c\u53d1\uff0c\u5bfc\u81f4\u670d\u52a1\u8fde\u4e0d\u4e0a\u6570\u636e\u5e93\u3002

    • \u4fee\u6539env\u6587\u4ef6\u4e2d\u7684 MS_DOCKER_SUBNET \u7684\u7f51\u6bb5\u914d\u7f6e\uff0c\u4e0e\u4e3b\u673a\u4e0d\u5728\u540c\u4e00\u7f51\u6bb5\u3002
    • \u6267\u884c msctl uninstall -v \u5148\u8fdb\u884c\u5378\u8f7d\uff0c\u518d\u6267\u884c msctl reload \u91cd\u65b0\u521b\u5efa\u5bb9\u5668\u3002
    "},{"location":"faq/load_test/","title":"\u6027\u80fd\u6d4b\u8bd5\u76f8\u5173","text":""},{"location":"faq/load_test/#1","title":"1 \u662f\u5426\u652f\u6301/\u5982\u4f55\u652f\u6301\u5206\u5e03\u5f0f\u7684\u6027\u80fd\u6d4b\u8bd5\uff1f","text":"

    MeterSphere \u901a\u8fc7\u5728\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u6dfb\u52a0\u591a\u4e2a\u6d4b\u8bd5\u6267\u884c\u8282\u70b9\u7684\u65b9\u5f0f\u6765\u652f\u6301\u5206\u5e03\u5f0f\u7684\u6027\u80fd\u6d4b\u8bd5\u3002\u5728\u6211\u4eec\u5411\u4e00\u4e2a\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u6dfb\u52a0\u8282\u70b9\u65f6\uff0c\u9664\u4e86\u8282\u70b9\u7684 IP\u3001\u7aef\u53e3\u4fe1\u606f\u5916\uff0c\u8fd8\u9700\u8981\u6839\u636e\u8be5\u8282\u70b9\u7684\u673a\u5668\u89c4\u683c\uff0c\u914d\u7f6e\u8be5\u8282\u70b9\u53ef\u4ee5\u652f\u6301\u7684\u6700\u5927\u5e76\u53d1\u6570\u3002\u5f53\u6211\u4eec\u5728\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u7684\u8fc7\u7a0b\u4e2d\u9009\u62e9\u4e86\u67d0\u4e2a\u6d4b\u8bd5\u8d44\u6e90\u6c60\u65f6\uff0cMeterSphere \u4f1a\u5c06\u672c\u6b21\u6027\u80fd\u6d4b\u8bd5\u5b9a\u4e49\u7684\u5e76\u53d1\u7528\u6237\u6570\uff0c\u6309\u7167\u6240\u9009\u6d4b\u8bd5\u8d44\u6e90\u6c60\u7684\u8282\u70b9\u652f\u6301\u7684\u6700\u5927\u5e76\u53d1\u6570\u8fdb\u884c\u6309\u6bd4\u4f8b\u62c6\u5206\uff0c\u5728\u6d4b\u8bd5\u5f00\u59cb\u6267\u884c\u540e\uff0c\u6bcf\u4e2a\u6d4b\u8bd5\u6267\u884c\u8282\u70b9\u4f1a\u5c06\u6d4b\u8bd5\u7ed3\u679c\u3001\u6d4b\u8bd5\u65e5\u5fd7\u7b49\u4fe1\u606f\u8f93\u9001\u5230\u6267\u884c\u7684 Kafka \u961f\u5217\u4e2d\uff0cMeterSphere \u4e2d\u7684 data-streaming \u7ec4\u4ef6\u4f1a\u4ece Kafka \u4e2d\u6536\u96c6\u8fd9\u4e9b\u4fe1\u606f\u5e76\u8fdb\u884c\u6c47\u603b\u5904\u7406\u3002

    \u4f8b\u5982\u5f53\u6211\u4eec\u5728\u7cfb\u7edf\u4e2d\u5b58\u5728\u4e00\u4e2a\u5982\u4e0b\u914d\u7f6e\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\uff0c\u5e76\u9009\u62e9\u8be5\u6d4b\u8bd5\u8d44\u6e90\u6c60\u6267\u884c\u4e00\u4e2a 10000 \u5e76\u53d1\u7528\u6237\u7684\u6027\u80fd\u6d4b\u8bd5\u65f6\uff0cnode1 \u53ca node2 \u5c06\u5404\u5206\u914d 4000 \u4e2a\u5e76\u53d1\u7528\u6237\uff0cnode3 \u5c06\u5206\u914d 2000 \u4e2a\u5e76\u53d1\u7528\u6237\u3002

    "},{"location":"faq/load_test/#2","title":"2 \u5982\u4f55\u5411\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u6dfb\u52a0\u8282\u70b9\uff1f","text":"

    \u9996\u5148\u9700\u8981\u5728\u8981\u6dfb\u52a0\u7684\u8282\u70b9\u4e0a\u90e8\u7f72 MeterSphere \u7684 node-controller \u7ec4\u4ef6\uff0c\u5b89\u88c5\u65b9\u5f0f\u53c2\u8003\u672c\u6587\u6863\u300c\u5728\u7ebf\u5b89\u88c5\u300d\u6216\u300c\u79bb\u7ebf\u5b89\u88c5\u300d\u7ae0\u8282\u5185\u5bb9\uff0c\u5728\u6267\u884c\u5b89\u88c5\u811a\u672c\u524d\uff0c\u4fee\u6539 install.conf \u6587\u4ef6\u4e2d\u7684 MS_INSTALL_MODE \u5b57\u6bb5\u7684\u503c\u4e3a node-controller \u540e\u6267\u884c\u5b89\u88c5\u811a\u672c\u3002\u5b89\u88c5\u5b8c\u6210\u901a\u8fc7 msctl status \u67e5\u770b\u7ec4\u4ef6\u72b6\u6001\u662f\u5426\u6b63\u5e38\u3002 \u8282\u70b9\u6dfb\u52a0\u5b8c\u6210\u70b9\u51fb\u786e\u5b9a\u540e\u7cfb\u7edf\u5c06\u5bf9\u8282\u70b9\u72b6\u6001\u8fdb\u884c\u68c0\u67e5\uff0c\u82e5\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e3a\u53ef\u7528\u72b6\u6001\u5219\u8bf4\u660e\u8be5\u6d4b\u8bd5\u8d44\u6e90\u6c60\u53ca\u5176\u4e2d\u7684\u8282\u70b9\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\u3002

    "},{"location":"faq/load_test/#3-metersphere-jmeter","title":"3 \u91c7\u7528 MeterSphere \u538b\u6d4b\u548c\u624b\u52a8\u4f7f\u7528 JMeter \u547d\u4ee4\u884c\u538b\u6d4b\u5f97\u5230\u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u5dee\u8ddd\u5f88\u5927\u8be5\u5982\u4f55\u4f18\u5316\uff1f","text":"
    • \u793e\u533a\u7248 \u793e\u533a\u7248\u9ed8\u8ba4\u91c7\u7528\u540e\u7f6e\u76d1\u542c\u7684\u65b9\u5f0f\u5b9e\u65f6\u5904\u7406\u62a5\u544a\uff0c\u5373\u5728 JMX \u811a\u672c\u6587\u4ef6\u4e2d\u589e\u52a0 Kafka BackendListener \u914d\u7f6e\uff0c\u5404\u4e2a NodeController \u8282\u70b9\u5728\u672c\u5730\u542f\u52a8 JMeter \u5bb9\u5668\u6267\u884c\u8be5 JMX \u811a\u672c\uff0c\u8fc7\u7a0b\u4e2d\u901a\u8fc7 Kafka BackendListener \u5c06\u539f\u59cb\u7684 JTL \u7ed3\u679c\u6570\u636e\u4e0a\u4f20\u5230\u6307\u5b9a\u7684 Kafka Topic \u4e2d\uff0cDataStreaming \u4f5c\u4e3a\u8be5 Kafka Topic \u7684\u6d88\u8d39\u8005\u5bf9\u5404\u4e2a\u8282\u70b9\u7684\u6570\u636e\u8fdb\u884c\u6c47\u603b\uff0c\u5e76\u8ba1\u7b97\u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u4e2d\u7684\u5404\u9879\u6307\u6807\u3002 \u56e0\u6b64\u5728\u9ad8\u5e76\u53d1\u65f6 Kafka \u548c DataStreaming \u5f88\u5bb9\u6613\u6210\u4e3a\u74f6\u9888\uff0c\u53ef\u4ee5\u90e8\u7f72 Kafka \u548c DataStreaming \u96c6\u7fa4\u4ee5\u53ca\u589e\u52a0 Partition \u7684\u6570\u91cf\u6765\u589e\u52a0 Kafka \u7684\u541e\u5410\u91cf\u548c\u5904\u7406\u80fd\u529b\u3002\u4f18\u5316\u540e\u6b63\u5e38\u53ef\u4ee5\u8fbe\u5230\u2154\u5de6\u53f3\u7684\u5dee\u8ddd\u3002
    • \u4f01\u4e1a\u7248 \u9488\u5bf9\u793e\u533a\u7248 Kafka BackendListener \u65b9\u5f0f\uff0c\u9700\u8981\u4e0a\u4f20\u548c\u5904\u7406\u539f\u59cb\u7684 JTL \u7ed3\u679c\uff0c\u8fc7\u7a0b\u4e2d\u9700\u8981\u5904\u7406\u5927\u91cf\u7684\u6570\u636e\uff0c\u4f01\u4e1a\u7248\u4e2d\u505a\u4e86\u76f8\u5173\u4f18\u5316\uff0c\u5373\u5728\u6267\u884c\u6d4b\u8bd5\u8fc7\u7a0b\u4e2d\u4e0d\u518d\u4f7f\u7528 BackendListener\uff0c\u5404\u4e2a NodeController \u542f\u52a8 JMeter \u5bb9\u5668\u65f6\u9644\u5e26\u542f\u52a8\u4e00\u4e2a Java \u7a0b\u5e8f\uff0c\u8be5 Java \u7a0b\u5e8f\u8d1f\u8d23\u5b9e\u65f6\u5904\u7406\u672c\u5730 JMeter \u4ea7\u751f\u7684 JTL \u7ed3\u679c\u6570\u636e\uff0c\u751f\u6210\u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u4e2d\u7684\u5404\u9879\u6307\u6807\u540e\u4e0a\u4f20\u5230\u6307\u5b9a\u7684 Kafka Topic \u4e2d\uff0cDataStreaming \u4f5c\u4e3a\u8be5 Kafka Topic \u7684\u6d88\u8d39\u8005\u5bf9\u5404\u4e2a\u8282\u70b9\u7684\u6570\u636e\u8fdb\u884c\u6c47\u603b\u3002 \u4e0e\u4f18\u5316\u524d\u65b9\u6848\u76f8\u6bd4\uff0cKafka \u548c DataStreaming \u9700\u8981\u5904\u7406\u7684\u6570\u636e\u5927\u5927\u964d\u4f4e\uff0c\u6574\u4f53\u4e0a\u5bf9\u4e8e\u5e76\u53d1\u91cf\u8f83\u5927\u60c5\u51b5\u4e0b\u7684\u7ed3\u679c\u5904\u7406\u80fd\u529b\u5927\u5927\u63d0\u5347\u3002 \u540c\u65f6\u53ef\u4ee5\u91c7\u7528 \u90e8\u7f72 Kafka \u548c DataStreaming \u96c6\u7fa4\u4ee5\u53ca\u589e\u52a0 Partition \u6570\u91cf\u7684\u6765\u589e\u52a0 Kafka \u7684\u541e\u5410\u91cf\u548c\u5904\u7406\u80fd\u529b\uff0c\u53ef\u66f4\u52a0\u63a5\u8fd1 JMeter \u7684\u771f\u5b9e\u503c\u3002
    "},{"location":"faq/load_test/#4-kafka","title":"4 \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u65f6\u63d0\u793aKafka \u4e0d\u53ef\u7528\uff0c\u8bf7\u68c0\u67e5\u914d\u7f6e\uff0c\u5982\u4f55\u89e3\u51b3\uff1f","text":"

    \u7cfb\u7edf\u5728\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u4e4b\u524d\uff0c\u4f1a\u5148\u68c0\u67e5\u5b89\u88c5\u7cfb\u7edf\u65f6\u914d\u7f6e\u7684 Kafka \u5730\u5740\u662f\u5426\u53ef\u7528\u3002\u5f53\u63d0\u793a\u8be5\u4fe1\u606f\u65f6\uff0c\u8868\u660e MeterSphere \u65e0\u6cd5\u6b63\u5e38\u8fde\u63a5\u5230 Kafka\uff0c\u53ef\u4ee5\u6309\u7167\u4ee5\u4e0b\u6392\u67e5\u601d\u8def\u8fdb\u884c\u5206\u6790\u548c\u5b9a\u4f4d\uff1a

    \uff081\uff09\u68c0\u67e5 Kafka \u662f\u5426\u6b63\u5e38\u8fd0\u884c \u5982\u679c\u5728\u5b89\u88c5\u65f6\u4f7f\u7528\u7684\u5916\u90e8\u7684 Kafka\uff0c\u8bf7\u8054\u7cfb\u76f8\u5173\u4eba\u5458\u8fdb\u884c\u6392\u67e5\uff0c\u68c0\u67e5 Kafka \u670d\u52a1\u662f\u5426\u6b63\u5e38\uff1b\u5982\u679c\u5b89\u88c5\u65f6\u4f7f\u7528 MeterSphere \u9ed8\u8ba4\u914d\u7f6e\u8fdb\u884c\u5b89\u88c5\uff0c\u4f7f\u7528\u4e86\u81ea\u5e26\u7684 Kafka \u670d\u52a1\uff0c\u8bf7\u901a\u8fc7\u5982\u4e0b\u547d\u4ee4\u8fdb\u884c\u6392\u67e5\u3002

    # \u68c0\u67e5\u5404\u7ec4\u4ef6\u7684\u8fd0\u884c\u72b6\u6001\nmsctl status\n# \u82e5 Kafka \u5bb9\u5668\u4e0d\u5904\u4e8e `healthy` \u72b6\u6001\uff0c\u67e5\u770b Kafka \u65e5\u5fd7\u8fdb\u884c\u8fdb\u4e00\u6b65\u6392\u67e5\ndocker logs kafka\n

    \uff082\uff09\u68c0\u67e5 MeterSphere \u5230 Kafka \u670d\u52a1\u7684\u7f51\u7edc\u8fde\u63a5 \u5982\u679c Kafka \u670d\u52a1\u72b6\u6001\u6b63\u5e38\uff0c\u8bf7\u901a\u8fc7\u5982\u4e0b\u547d\u4ee4\u68c0\u67e5 ms-node-controller \u5bb9\u5668\u662f\u5426\u80fd\u6b63\u5e38\u8fde\u63a5\u5230 Kafka \u670d\u52a1\u3002

    # \u68c0\u67e5 ms-node-controller \u662f\u5426\u80fd\u6b63\u5e38\u8bbf\u95ee Kafka \u670d\u52a1\n[root@meter-prototype ~]# docker exec ms-node-controller nc -zv ${kafka \u670d\u52a1 IP} ${kafka \u670d\u52a1\u7aef\u53e3}\nkafka (172.23.0.5:19092) open\n
    \u5982\u679c ms-node-controller \u4e0d\u80fd\u6b63\u5e38\u8bbf\u95ee Kafka \u670d\u52a1\uff0c\u63d0\u793ahost is unreachable\uff0c\u6267\u884c ifconfig \u5c06 br-XXX \u548c docker-XX \u7684\u7f51\u6bb5\uff0c\u52a0\u5165\u5230\u9632\u706b\u5899\u7b56\u7565\u4e2d
    firewall-cmd --zone=trusted --add-source=172.18.0.1/16 --permanent\uff1b\nfirewall-cmd --zone=trusted --add-source=172.19.0.1/16 --permanent\uff1b\nfirewall-cmd --reload\n

    (3) \u5982\u679c\u5728\u5b89\u88c5\u65f6\u4f7f\u7528\u7684\u5916\u90e8\u7684 Kafka\uff0c\u8bf7\u8054\u7cfb\u76f8\u5173\u4eba\u5458\u8fdb\u884c\u6392\u67e5\uff0c\u68c0\u67e5 MeterSphere \u90e8\u7f72\u670d\u52a1\u5668\u5230 Kafka \u670d\u52a1\u4e4b\u95f4\u7684\u7f51\u7edc\u8fde\u63a5\u662f\u5426\u6b63\u5e38\uff0c\u662f\u5426\u6709\u9632\u706b\u5899\u3001\u5b89\u5168\u7ec4\u7b49\u5b89\u5168\u7b56\u7565\u7684\u5f71\u54cd\uff1b\u5982\u679c\u5b89\u88c5\u65f6\u4f7f\u7528 MeterSphere \u9ed8\u8ba4\u914d\u7f6e\u8fdb\u884c\u5b89\u88c5\uff0c\u4f7f\u7528\u4e86\u81ea\u5e26\u7684 Kafka \u670d\u52a1\uff0c\u8bf7\u68c0\u67e5 MeterSphere \u90e8\u7f72\u670d\u52a1\u5668\u4e0a\u7684\u9632\u706b\u5899\u914d\u7f6e\uff0c\u662f\u5426\u653e\u901a\u4e86 Kafka \u7684\u670d\u52a1\u7aef\u53e3\uff08\u9ed8\u8ba4 19092\uff09\uff0c\u4e5f\u53ef\u4ee5\u9009\u62e9\u76f4\u63a5\u7981\u7528\u9632\u706b\u5899\u540e\uff0c\u91cd\u542f docker \u670d\u52a1\u548c MeterSphere \u7ec4\u4ef6\u8fdb\u884c\u91cd\u8bd5\u3002

    # \u4ee5 CentOS 7 \u64cd\u4f5c\u7cfb\u7edf\u4e3a\u4f8b\uff0c\u7981\u7528\u9632\u706b\u5899\u53ca\u91cd\u542f\u670d\u52a1\u547d\u4ee4\nsystemctl stop firewalld\nsystemctl restart docker\nmsctl start\n
    \u82e5\u68c0\u67e5\u53d1\u73b0\u7f51\u7edc\u8fde\u63a5\u72b6\u6001\u6b63\u5e38\uff0c\u5728\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u65f6\u4ecd\u65e7\u63d0\u793a\u8be5\u9519\u8bef\uff0c\u8bf7\u8054\u7cfb\u6211\u4eec\u7684\u56e2\u961f\u8fdb\u884c\u8fdb\u4e00\u6b65\u5b9a\u4f4d\u3002

    "},{"location":"faq/load_test/#5","title":"5 \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u65f6\u63d0\u793a \u65e0\u6cd5\u8fd0\u884c\u6d4b\u8bd5\uff0c\u8bf7\u68c0\u67e5\u5f53\u524d\u7ad9\u70b9\u914d\u7f6e \u5982\u4f55\u89e3\u51b3\uff1f","text":"

    \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u8fc7\u7a0b\u4e2d\uff0cnode-controller \u8282\u70b9\u9700\u8981\u901a\u8fc7 \u7cfb\u7edf-\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e \u4e2d\u914d\u7f6e\u7684 \u5f53\u524d\u7ad9\u70b9 URL \u4e0b\u8f7d\u76f8\u5173\u6587\u4ef6\u3002\u51fa\u73b0\u8be5\u95ee\u9898\u65f6\u7528\u6237\u9700\u8981\u68c0\u67e5\u8be5\u914d\u7f6e\u53c2\u6570\uff0c\u786e\u4fdd node-controller \u8282\u70b9\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u5230\u8be5 URL\u3002 URL \u5730\u5740\u4e00\u822c\u4e3a\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee MeterSphere \u7684\u5730\u5740\uff0c\u4f8b\u5982 https://demo.metersphere.com\u3002

    "},{"location":"faq/load_test/#6-url","title":"6 \u7ad9\u70b9\u914d\u7f6e\u7684 URL \u662f\u4ec0\u4e48\uff1f","text":"

    \u7ad9\u70b9\u914d\u7f6e\u4e3a\u90e8\u7f72MeterSphere Sever\u7684\u5730\u5740\uff0c\u53ef\u4ee5\u662f\u57df\u540d\u6216\u8005\u662fIP\u5730\u5740\u3002

    "},{"location":"faq/load_test/#7-jmeter","title":"7 \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u65f6 JMeter \u5bb9\u5668\u5185\u5b58\u6ea2\u51fa\u5982\u4f55\u89e3\u51b3?","text":"

    \u4fee\u6539\u7cfb\u7edf\u8bbe\u7f6e\u4e2d\u6240\u4f7f\u7528\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\u914d\u7f6e\u4e2d\u7684 HEAP \u914d\u7f6e\u6765\u8c03\u6574 JMeter \u5bb9\u5668\u7684\u5185\u5b58\u53c2\u6570\u3002

    -Xms2g -Xmx2g -XX:MaxMetaspaceSize=256m\n

    "},{"location":"faq/load_test/#8-jmxjar","title":"8 \u5982\u679c\u6027\u80fd\u6d4b\u8bd5jmx\u6709\u4f9d\u8d56\u7684jar\u5305\uff0c\u9700\u8981\u600e\u4e48\u5904\u7406\uff1f","text":"

    \u5728\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u65f6\uff0c\u53ef\u4ee5\u5c06\u4f9d\u8d56\u7684 jar \u5305\u4e0e jmx \u6587\u4ef6\u4e00\u8d77\u4e0a\u4f20\u3002

    "},{"location":"faq/load_test/#9","title":"9 \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u65f6\uff0c\u63d0\u793a\u5e76\u53d1\u6570\u8d85\u989d\uff0c\u8be5\u600e\u4e48\u89e3\u51b3\uff1f","text":"

    \u4fee\u6539\u7cfb\u7edf\u8bbe\u7f6e-\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u7684\u6700\u5927\u5e76\u53d1\u6570\u540e\u518d\u6b21\u6267\u884c\u6d4b\u8bd5\u3002

    "},{"location":"faq/load_test/#10-image-not-found","title":"10 \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u65f6\uff0c\u663e\u793aimage not found\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u6240\u9700\u7684 JMeter \u5bb9\u5668\u9700\u8981\u4e8b\u5148\u5b58\u5728\u4e8e\u6240\u9009\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\u7684\u8282\u70b9\u4e0a\uff0c\u8bf7\u68c0\u67e5\u786e\u4fdd\u5bb9\u5668\u955c\u50cf\u5b58\u5728\u540e\uff0c\u66f4\u65b0\u6d4b\u8bd5\u8d44\u6e90\u6c60\u7684\u955c\u50cf\u914d\u7f6e\u4e3a\u6b63\u786e\u7684\u955c\u50cf\u6807\u7b7e\u3002

    "},{"location":"faq/load_test/#11-error-check-node-controller-etchosts127001-hostnamemust-be-contained-please-delete-the-report-and-rerun","title":"11 \u538b\u6d4b\u6267\u884c\u65f6\u62a5\u9519\uff1aError: Check node-controller /etc/hosts,127.0.0.1 ${hostname}must be contained. Please delete the report and rerun.","text":"

    \u5728\u90e8\u7f72 node-controller \u7684\u673a\u5668\u4e0a\uff0c\u4f7f\u7528hostname\u547d\u4ee4\u83b7\u53d6\u4e3b\u673a\u540d\u3002

    [root@nginx metersphere-release-v1.8.0]# hostname\nnginx.novalocal\n
    \u5c06\u83b7\u53d6\u5230\u7684\u4e3b\u673a\u540d nginx.novalocal \u914d\u7f6e\u5230 /etc/hosts \u6587\u4ef6\u4e2d\uff0c\u914d\u7f6e\u5b8c\u6210\u6548\u679c\u5982\u4e0b\u3002 \u914d\u7f6e\u524d
    127.0.0.1       localhost\n::1         localhost localhost.localdomain localhost6 localhost6.localdomain6\n10.110.149.133 nginx111\n
    \u914d\u7f6e\u540e
    127.0.0.1       localhost\n127.0.0.1       nginx.novalocal\n::1         localhost localhost.localdomain localhost6 localhost6.localdomain6\n10.110.149.133 nginx111\n

    "},{"location":"faq/load_test/#12","title":"12 \u540c\u4e00\u811a\u672c\u6267\u884c\u591a\u6b21\uff0c\u53ef\u4ee5\u5c06\u591a\u6b21\u7684\u62a5\u544a\u7ed3\u679c\u8fdb\u884c\u5bf9\u6bd4\u5417\uff1f","text":"

    \u5728\u62a5\u544a\u5217\u8868\uff0c\u540c\u4e2a\u4efb\u52a1\u4e0b\uff0c\u5df2\u5b8c\u6210\u72b6\u6001\u7684\u62a5\u544a\u53ef\u4ee5\u8fdb\u884c\u5bf9\u6bd4\u3002

    "},{"location":"faq/load_test/#13","title":"13 \u6267\u884c\u538b\u6d4b\u65f6\uff0c\u591a\u53f0\u53d1\u538b\u673a\u7684\u60c5\u51b5\u4e0b\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u53d8\u91cf\u4e0d\u91cd\u590d\u6267\u884c\u5417\uff1f","text":"

    \u53ef\u4ee5\u5728\u6027\u80fd\u6d4b\u8bd5\u7684\u9ad8\u7ea7\u914d\u7f6e\u9875\u9762\uff0c\u4f7f\u7528CSV\u5206\u5272\u529f\u80fd\uff0c\u7cfb\u7edf\u4f1a\u628a\u53d8\u91cf\u5e73\u5747\u5206\u914d\u7ed9\u538b\u529b\u673a\uff0c\u4fdd\u8bc1\u6570\u503c\u7684\u552f\u4e00\u6027\u3002

    "},{"location":"faq/load_test/#14-metersphere","title":"14 MeterSphere\u53ef\u4ee5\u76d1\u63a7\u88ab\u6d4b\u7cfb\u7edf\u670d\u52a1\u5668\u6307\u6807\u5417\uff1f","text":"

    MeterSphere \u4f7f\u7528 Prometheus \u8fdb\u884c\u53d1\u538b\u673a\u4ee5\u53ca\u88ab\u6d4b\u7cfb\u7edf\u670d\u52a1\u5668\u7684\u76d1\u63a7\uff0c\u53ef\u4ee5\u5728\u6027\u80fd\u6d4b\u8bd5-\u9ad8\u7ea7\u914d\u7f6e\u91cc\u9762\uff0c\u6dfb\u52a0\u88ab\u6d4b\u7cfb\u7edf\u670d\u52a1\u5668\u7684 node_exporter \u7684\u5730\u5740\u3002\u4e3b\u670d\u52a1\u4f1a\u5728\u5b89\u88c5 MeterSphere \u7cfb\u7edf\u65f6\u9ed8\u8ba4\u5b89\u88c5\uff0c\u800c\u5176\u4ed6\u670d\u52a1\u5668\uff0c\u5219\u9700\u8981\u5355\u72ec\u5b89\u88c5 node_exporter\uff0c\u5373\u53ef\u5728\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u7684\u65f6\u5019\u5b8c\u6210\u76f8\u5173\u6307\u6807\u7684\u76d1\u63a7\u3002

    "},{"location":"faq/load_test/#15-node_exporter","title":"15 \u5982\u4f55\u5b89\u88c5 node_exporter \u63d2\u4ef6\uff1f","text":"
    • \u65b9\u6cd51\uff1a docker pull prom/node-exporter \u62c9\u53d6 node_export \u955c\u50cf\uff0c\u4e4b\u540e\u8fd0\u884c\u5bb9\u5668

      docker pull prom/node-exporter # \u62c9\u53d6\u955c\u50cf\ndocker run -d -p 9100:9100 -v \"/proc:/host/proc:ro\" -v \"/sys:/host/sys:ro\" -v \"/:/rootfs:ro\" --net=\"host\" prom/node-exporter # \u542f\u52a8\u5bb9\u5668\n\nhttp://\u670d\u52a1\u5668IP:9100/metrics # \u8bbf\u95ee\u67e5\u770b node_export \u662f\u5426\u6b63\u5e38\u542f\u52a8\n

    • \u65b9\u6cd52\uff1a\u4e0b\u8f7d node_exporter \u79bb\u7ebf\u5305\uff0c\u89e3\u538b\u4e4b\u540e\u53ef\u6267\u884c\u547d\u4ee4\u8fdb\u884c\u542f\u52a8

      wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz\ntar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz\ncd node_exporter-1.3.1-amd64\n./node_exporter  # \u542f\u52a8 (nohup ./node_exporter & \u540e\u53f0\u542f\u52a8)\n\nhttp://\u670d\u52a1\u5668IP:9100/metrics # \u8bbf\u95ee\u67e5\u770b node_export \u662f\u5426\u6b63\u5e38\u542f\u52a8\n

    "},{"location":"faq/load_test/#16","title":"16 \u538b\u529b\u914d\u7f6e\u4e2d\uff0c\u6bcf\u4e2a\u7ebf\u7a0b\u7ec4\u662f\u5426\u80fd\u5206\u522b\u9009\u62e9\u538b\u529b\u673a\uff1f","text":"

    \u5728\u538b\u529b\u914d\u7f6e\u91cc\uff0c\u63d0\u4f9b\u4e863\u79cd\u5206\u914d\u7b56\u7565\uff0c\u5206\u522b\u4e3a\u201c\u81ea\u52a8\u5206\u914d\u3001\u56fa\u5b9a\u8282\u70b9\u3001\u81ea\u5b9a\u4e49\u201d\uff0c\u53ef\u4ee5\u4e3a\u6bcf\u4e2a\u7ebf\u7a0b\u7ec4\u6307\u5b9a\u4e00\u4e2a\u8282\u70b9\uff0c\u6216\u8005\u6309\u6bd4\u4f8b\u5206\u914d\u591a\u4e2a\u8282\u70b9\u3002

    "},{"location":"faq/load_test/#17-non-http-response-code-javanetsockettimeoutexception","title":"17 \u6027\u80fd\u6d4b\u8bd5\u5e76\u53d1\u91cf\u52a0\u5927\u7684\u65f6\u5019\u62a5\u9519\uff1aNon HTTP response code: java.net.SocketTimeoutException","text":"

    \u5728\u9ad8\u7ea7\u914d\u7f6e\u589e\u52a0\u8d85\u65f6\u65f6\u95f4\u3002

    "},{"location":"faq/load_test/#18-50100","title":"18 \u8fdb\u884c\u538b\u6d4b\u65f6\uff0c\u6700\u5927\u7528\u6237\u52a0\u5230 50/100 \u5c31\u4e0d\u80fd\u7ee7\u7eed\u52a0\u5417\uff1f","text":"

    \u53ef\u5728\u7cfb\u7edf\u8bbe\u7f6e-\u6d4b\u8bd5\u8d44\u6e90\u6c60-\u4fee\u6539\u8d44\u6e90\u6c60\u91cc\u201c\u6700\u5927\u5e76\u53d1\u6570\u201d\u4e2d\u914d\u7f6e\u3002

    "},{"location":"faq/load_test/#19-jmeter","title":"19 \u6027\u80fd\u6d4b\u8bd5\u76f8\u5173\u6587\u4ef6\u5b58\u50a8\u5728 JMeter \u5bb9\u5668\u4e2d\u7684\u54ea\u4e2a\u76ee\u5f55\uff1f","text":"

    \u5728\u5bb9\u5668\u91cc\u7684/test\u76ee\u5f55\u4e0b\u3002

    "},{"location":"faq/load_test/#20-starting","title":"20 \u6027\u80fd\u6d4b\u8bd5\u72b6\u6001\u4e00\u76f4\u662f starting \u4e14\u65e0\u6570\u636e\uff0c\u5982\u4f55\u6392\u67e5\uff1f","text":"
    • \u68c0\u67e5\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf-\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e\u3011\uff0c\u5f53\u524d\u7ad9\u70b9\u914d\u7f6e\u662f\u4e0d\u662f\u6b63\u786e\u7684
    • \u5230\u670d\u52a1\u5668\u6216\u8005\u538b\u529b\u673a\u7684\u67e5\u770b /opt/metersphere/logs/node-controler/ \u4e0b\u7684 ms-jmeter-run-log.log \u548c info.log\uff0c\u770b\u65e5\u5fd7\u4e2d\u662f\u5426\u6709\u62a5\u9519\u4fe1\u606f\u3002
    "},{"location":"faq/load_test/#21-k8s-node-controller","title":"21 k8s\u8d44\u6e90\u6c60\u662f\u5426\u9700\u8981\u5b89\u88c5 node-controller \uff1f","text":"
    • \u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u4e0d\u9700\u8981 \u6027\u80fd\u6d4b\u8bd5\u53ea\u9700\u8981\u5728\u4ed3\u5e93\u4e2d\u914d\u7f6e\u597d JMeter \u955c\u50cf\u7684\u5730\u5740\uff0c\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u7684\u65f6\u5019\u4f1a\u81ea\u52a8\u521b\u5efa JMeter POD \u8fdb\u884c\u538b\u6d4b\uff0c\u6267\u884c\u5b8c\u4e4b\u540e\u81ea\u52a8\u9500\u6bc1\u3002
    • \u6267\u884c\u63a5\u53e3\u6d4b\u8bd5\u9700\u8981 \u6267\u884c\u63a5\u53e3\u6d4b\u8bd5\u9700\u8981\u90e8\u7f72 DaemonSet \u6216 Deployment\uff0c\u53ef\u4e0b\u8f7d\u793a\u4f8b yaml \u6587\u4ef6\u8fdb\u884c\u90e8\u7f72\uff0c\u90e8\u7f72\u597d\u4e4b\u540e\u53ef\u4ee5\u8bbe\u7f6e\u5f39\u6027\u4f38\u7f29\u53c2\u6570\uff0c\u4ece\u800c\u5b9e\u73b0\u8d44\u6e90\u6c60\u7684\u5f39\u6027\u4f38\u7f29\u3002
    "},{"location":"faq/load_test/#22-check-node-controller-status","title":"22 \u64cd\u4f5c\u65f6\u63d0\u793a\uff1acheck node-controller status","text":"
    • \u68c0\u67e5\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e-\u5f53\u524d\u7ad9\u70b9URL\u3011\u662f\u5426\u6b63\u786e\uff0c\u662f\u4e0d\u662f\u591a\u4e86\"/\"
    • docker exec -it performance-test nc zv ms-node-controller 8082 \u6216\u8005\u53bb performance-test \u5bb9\u5668\u91cc curl localhost:8082/status \u786e\u4fdd\u7f51\u7edc\u901a\u7545\uff0c\u8fd8\u53ef\u91cd\u542fdocker\u3001\u91cd\u542f\u670d\u52a1\u5668\u8bd5\u8bd5
    • \u68c0\u67e5 JMeter \u7684\u955c\u50cf\u7248\u672c\u662f\u4e0d\u662f\u5bf9\u7684\uff0c\u68c0\u67e5 JMeter \u955c\u50cf\u6709\u6ca1\u6709\u52a0\u8f7d\u5230 docker \u4e2d\uff0c\u6267\u884cdocker load -i jmeter-master.tar\uff0c\u770b\u80fd\u5426\u52a0\u8f7d\u5230docker\u4e2d\uff0c\u82e5\u4e0d\u80fd\u5219\u91cd\u65b0\u4e0a\u4f20JMeter\u955c\u50cf\uff0c\u6267\u884cdocker load -i jmeter-master.tar\uff0c\u4fee\u6539.env\u73af\u5883\u91cc\u7684JMeter\u955c\u50cf\uff0c\u91cd\u65b0\u52a0\u8f7d\u9879\u76eemsctl reload\u3002
    "},{"location":"faq/load_test/#23-error","title":"23 \u64cd\u4f5c\u63d0\u793a\uff1aError:\u6ca1\u6709\u8db3\u591f\u7684\u8d44\u6e90\u542f\u52a8\u6d4b\u8bd5","text":"

    \u5c06\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u6d4b\u8bd5\u8d44\u6e90\u6c60-JMeter HEAP\u3011\u8c03\u5927\u3002

    "},{"location":"faq/load_test/#24","title":"24 \u6027\u80fd\u6d4b\u8bd5\u4e2d\u600e\u4e48\u8de8\u7ebf\u7a0b\u4f20\u9012\u53d8\u91cf\uff1f","text":"

    \u6027\u80fd\u6d4b\u8bd5\u91cc\u52a8\u6001\u8bbe\u7f6e\u53d8\u91cf\u53ef\u4ee5\u7528\u5c5e\u6027\u7684\u65b9\u5f0f\uff0c{__setProperty(var,value,)} \u8bbe\u7f6e\u5c5e\u6027\uff0c \u5f15\u7528\u5c5e\u6027\u3002\u7528\u5c5e\u6027\u65b9\u6cd5\u5728\u6027\u80fd\u6d4b\u8bd5\u4e2d\u53ef\u4ee5\u52a8\u6001\u4f20\u9012\u5e76\u4e14\u53ef\u4ee5\u8de8\u7ebf\u7a0b\u4f20\u9012

    "},{"location":"faq/load_test/#25","title":"25 \u6027\u80fd\u6d4b\u8bd5\u65e0\u6cd5\u6b63\u5e38\u6267\u884c\uff0c\u63d0\u793a\u8d44\u6e90\u4e0d\u591f\uff1f","text":"

    \u53ef\u80fd\u7684\u539f\u56e0\u6709:

    • \u6027\u80fd\u6d4b\u8bd5\u91cc\u6709\u6dfb\u52a0\u524d\u540e\u7f6e\u811a\u672c\uff0c\u5c24\u5176\u662fpython\uff0c\u6d88\u8017\u6027\u80fd\u6bd4\u8f83\u5927\u3002
    • \u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e3b\u673a\u8d44\u6e90\uff08\u5c24\u5176\u662f\u5185\u5b58\uff09\u4e0d\u8db3\u3002

    \u89e3\u51b3\u65b9\u6cd5:

    • \u5c3d\u91cf\u4e0d\u8981\u4f7f\u7528\u524d\u540e\u7f6e\u811a\u672c\uff0c\u6216\u8005\u6362\u7528\u8d44\u6e90\u6d88\u8017\u5c0f\u7684\u811a\u672c\uff0c\u5982 groovy\u3002
    • \u6362\u7528\u5355\u72ec\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\uff0c\u4f7f\u7528 node-controller \u6a21\u5f0f\u5b89\u88c5\u3002
    "},{"location":"faq/load_test/#26","title":"26 \u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u4e2d\uff0c\u5e76\u53d1\u7528\u6237\u6570\u663e\u793a\u548c\u8bbe\u7f6e\u4e0d\u4e00\u81f4","text":"

    \u53ef\u80fd\u7684\u539f\u56e0\u6709:

    • \u5e76\u53d1\u7528\u6237\u6570\u592a\u5c11\uff0cramp-up\u8bbe\u7f6e\u7684\u65f6\u95f4\u957f\uff0c\u5bfc\u81f4\u52a0\u538b\u540e\u7b2c\u4e00\u4e2a\u7528\u6237\u5df2\u7ecf\u6267\u884c\u5b8c\u6d4b\u8bd5\u4e86\uff0c\u7b2c\u4e8c\u4e2a\u7528\u6237\u624d\u521b\u5efa\u51fa\u6765\uff0c\u770b\u8d77\u6765\u5e76\u53d1\u7528\u6237\u6570\u5c31\u4e00\u76f4\u662f1\u3002
    • \u62a5\u544a\u5de6\u4e0a\u89d2\u7684\u5e76\u53d1\u7528\u6237\u6570\u5728\u62a5\u544a\u91cc\u663e\u793a\u7684\u662f\u5e73\u5747\u503c\uff0c\u4e0d\u662f\u5b9e\u65f6\u53d8\u5316\u7684\u3002

    \u89e3\u51b3\u65b9\u6cd5\uff1a\u51cf\u5c11ramp-up\u65f6\u95f4\uff0c\u53ef\u4ee5\u770b\u5230\u5e76\u53d1\u7528\u6237\u6570\u4e0e\u8bbe\u7f6e\u4e00\u81f4\u3002

    "},{"location":"faq/load_test/#27-kafka","title":"27 \u5982\u4f55\u4fee\u6539 kafka \u7684\u65e5\u5fd7\u4fdd\u7559\u65f6\u95f4\uff1f","text":"

    \u4fee\u6539 /opt/metersphere/docker-compose-kafka.yml \u914d\u7f6e\u6587\u6863\u91cc\u7684 KAFKA_CFG_LOG_RETENTION_HOURS \u53c2\u6570\u3002

    "},{"location":"faq/load_test/#28-csv","title":"28 \u6027\u80fd\u6d4b\u8bd5\u65f6\u63a5\u53e3\u8bfb\u53d6 csv \u4e0d\u80fd\u6309\u987a\u5e8f\u8bfb\u53d6","text":"

    \u6240\u9009\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\u6709\u591a\u4e2a\u8282\u70b9\uff0c\u591a\u4e2a\u8282\u70b9\u5171\u7528\u4e00\u5957 CSV \u5bfc\u81f4\u53d6\u503c\u91cd\u590d\uff0c\u5728\u6027\u80fd\u6d4b\u8bd5\u7684\u9ad8\u7ea7\u914d\u7f6e\u91cc\uff0c\u5f00\u542f CSV \u5206\u5272\uff0c\u591a\u51c6\u5907\u70b9\u6d4b\u8bd5\u6570\u636e\u3002CSV \u5206\u5272\u662f: \u5047\u8bbe\u67092\u4e2a\u8282\u70b9\uff0cCSV \u91cc\u6709100\u6761\u6570\u636e\uff0c\u5c31\u4f1a\u628a CSV \u91cc\u7684\u6570\u636e\u5747\u5206\u62102\u4efd\uff0c\u7136\u540e\u8282\u70b91 \u4f7f\u7528 1-50 \u6761\u6570\u636e\uff0c\u8282\u70b92 \u4f7f\u7528 51-100 \u6761\u6570\u636e\u3002

    "},{"location":"faq/load_test/#29-csv","title":"29 \u6027\u80fd\u6d4b\u8bd5\u914d\u7f6e\u91cc\u9762\u4e0a\u4f20 CSV \u6587\u4ef6\uff0c\u5728\u9ad8\u7ea7\u914d\u7f6e\u91cc\u9762\u770b\u4e0d\u5230","text":"

    csv \u6587\u4ef6\u6ca1\u6709\u88ab\u6027\u80fd jmx \u811a\u672c\u5f15\u7528\uff0cjmx \u5f15\u7528\u4e86\u624d\u80fd\u770b\u89c1\u3002\u4fee\u6539 jmx \u6587\u4ef6\uff0c\u5f15\u7528\u4e0a\u4f20\u7684 CSV \u6587\u4ef6\uff0c\u6216\u8005\u5728\u573a\u666f\u91cc\u6dfb\u52a0 CSV \u6587\u4ef6\u540e\u8f6c\u6027\u80fd\u6d4b\u8bd5\u3002

    "},{"location":"faq/load_test/#30-windows","title":"30 \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\uff0c\u81ea\u5b9a\u4e49\u76d1\u63a7\u9879\u4e0d\u652f\u6301 windows \u670d\u52a1\u5668","text":"

    \u9ed8\u8ba4\u63d0\u4f9b\u7684 promQL \u662f\u4e0e linux \u64cd\u4f5c\u7cfb\u7edf\u9002\u914d\uff0cwindows \u64cd\u4f5c\u7cfb\u7edf\u7684\u76d1\u63a7\u9879\u9700\u8981\u81ea\u884c\u7f16\u5199\uff0c\u4f8b\u5982\uff1a\u67e5\u8be2 windows \u7684 cpu \u4f7f\u7528\u7387: 100 - (avg by (instance) (irate(windows_cpu_time_total{mode=\"idle\", instance=\"%1$s\"}[1m])) * 100)

    \u5176\u4e2d %1$s \u662f\u88ab\u76d1\u63a7\u8282\u70b9\u7684ip\u548c\u7aef\u53e3\uff0c\u4e0a\u9762\u8fd9\u6761\u8bed\u53e5\u5728\u6267\u884c\u65f6\u4f1a\u53d8\u6210 100 - (avg by (instance) (irate(windows_cpu_time_total{mode=\"idle\", instance=\"172.16.10.54:9182\"}[1m])) * 100) \u5176\u4ed6\u76d1\u63a7\u9879\u53ef\u4ee5\u81ea\u884c\u67e5\u8be2\u6765\u5199\uff0c\u5185\u5b58\u3001\u78c1\u76d8\u7b49\uff0c\u8fd8\u53ef\u4ee5\u81ea\u884c\u76d1\u63a7\u4e0d\u540c\u7684 exporter\uff0c\u53ea\u8981\u662f\u7b26\u5408 exporter\u89c4\u8303\u7684\u90fd\u53ef\u4ee5\u5728\u81ea\u5b9a\u4e49\u76d1\u63a7\u4e2d\u914d\u7f6e

    "},{"location":"faq/load_test/#31-k8s-ms","title":"31 \u90e8\u7f72\u5728 K8S \u4e0b\u7684 MS \u81ea\u5b9a\u4e49\u76d1\u63a7\u914d\u7f6e\u65b9\u6cd5\uff0c\u9ed8\u8ba4\u65b9\u6cd5\u65e0\u6cd5\u751f\u6548\uff0c\u5e76\u4e14\u76d1\u63a7\u8be6\u60c5\u6ca1\u6709\u6570\u636e","text":"

    \u5728 prometheus.yml \u4e2d\u914d\u7f6e

    consul_sd_configs:\n- server: 'k8s\u4e2dms\u7684ip:port'\nservices: []\n
    \u81ea\u5b9a\u4e49\u76d1\u63a7\u4e2d\u52a0\u4e0a\u9700\u8981\u7684\u8282\u70b9\uff0c\u7cfb\u7edf\u53c2\u6570\u6d4b\u8bd5\u4e2d\u8bbe\u7f6e prometheus \u7684\u5b9e\u9645\u5730\u5740\uff0c\u6267\u884c\u6d4b\u8bd5\u53ef\u4ee5\u663e\u793a\u76d1\u63a7\u3002

    "},{"location":"faq/load_test/#32","title":"32 \u63a5\u53e3\u81ea\u52a8\u5316\u521b\u5efa\u7684\u6027\u80fd\u6d4b\u8bd5\uff0c\u811a\u672c\u53ca\u6587\u4ef6\u5185\u5bb9\u66f4\u65b0\u540e\uff0c\u5df2\u8f6c\u6027\u80fd\u6d4b\u8bd5\u7684\u7528\u4f8b\u6ca1\u6709\u540c\u6b65\u66f4\u65b0","text":"

    \u8f6c\u6027\u80fd\u6d4b\u8bd5\u7684\u65f6\u5019\u751f\u6210\u7684 jmx \u6587\u4ef6\u5c31\u662f\u5f53\u524d\u7684\u914d\u7f6e\uff0c\u4e4b\u540e\u518d\u4fee\u6539\u63a5\u53e3\u5bf9\u6027\u80fd\u6d4b\u8bd5\u65e0\u6548\uff0c\u70b9\u51fb\u6027\u80fd\u6d4b\u8bd5\u53f3\u4e0a\u89d2\u201c\u540c\u6b65\u573a\u666f\u6d4b\u8bd5\u6700\u65b0\u53d8\u66f4\u201d\u6309\u94ae\u624b\u52a8\u540c\u6b65\u5373\u53ef\u3002

    "},{"location":"faq/load_test/#33-image-not-found-registrycn-qingdaoaliyuncscommeterspherejmeter-master543-ms5-jdk11","title":"33 \u8fd0\u884c\u6027\u80fd\u6d4b\u8bd5\u7684\u65f6\u5019\u62a5\u9519Image Not Found: registry.cn-qingdao.aliyuncs.com/metersphere/jmeter-master:5.4.3-ms5-jdk11","text":"

    \u670d\u52a1\u5668\u672c\u5730\u7684 jmeter-master \u955c\u50cf\u88ab\u5220\u9664\u4e86\uff0c\u9700\u8981\u624b\u52a8\u6267\u884c\u547d\u4ee4\u624b\u52a8\u62c9\u53d6\u955c\u50cf docker pull registry.cn-qingdao.aliyuncs.com/metersphere/jmeter-master:5.4.3-ms5-jdk11\u3002

    "},{"location":"faq/load_test/#34-k8s-sa-token","title":"34 \u5982\u679c\u91c7\u7528 K8S \u96c6\u7fa4\u538b\u6d4b\uff0c\u5982\u4f55\u83b7\u53d6 SA \u548c Token\uff1f","text":"
    // \u521b\u5efa namespaces\nkubectl create namespace metersphere\n\n// \u521b\u5efa SA\nkubectl create serviceaccount ms -n metersphere\n\n// \u521b\u5efa namespace \u6388\u6743 SA\nkubectl create clusterrolebinding ms --clusterrole=admin --serviceaccount=metersphere:ms -n metersphere\n\n// \u67e5\u8be2 SA token\nkubectl describe sa/ms -n metersphere\nkubectl describe secrets -n metersphere ms-token-xxxx\n
    "},{"location":"faq/report_statistics/","title":"\u62a5\u8868\u7edf\u8ba1\u76f8\u5173","text":""},{"location":"faq/report_statistics/#1-metersphere","title":"1 MeterSphere \u63d0\u4f9b\u8d28\u91cf\u5927\u5c4f\u5417\uff1f","text":"

    \u76ee\u524d\uff0cMeterSphere \u7684\u3010\u62a5\u8868\u7edf\u8ba1\u3011\u6a21\u5757\u63d0\u4f9b\u4e86\u6d4b\u8bd5\u7528\u4f8b\u5206\u6790\u62a5\u8868\u3002\u5982\u9700\u66f4\u591a\u7ef4\u5ea6\u7684\u5927\u5c4f\u5c55\u793a\uff0c\u53ef\u4ee5\u4f7f\u7528\u53ef\u89c6\u5316\u5206\u6790\u5de5\u5177 DataEase\uff0c\u901a\u8fc7\u8fde\u63a5 MeterSphere \u6570\u636e\u5e93\u83b7\u53d6\u6570\u636e\u8be6\u60c5\uff0c\u521b\u5efa\u6ee1\u8db3\u4e1a\u52a1\u9700\u6c42\u7684\u81ea\u5b9a\u4e49\u8d28\u91cf\u5927\u5c4f\u3002 \u53c2\u7167 \u7528DataEase\u5f00\u6e90\u5de5\u5177\u6784\u5efaMeterSphere\u4eea\u8868\u677f\u3002

    "},{"location":"faq/service_integration/","title":"\u670d\u52a1\u96c6\u6210\u76f8\u5173","text":""},{"location":"faq/service_integration/#1-metersphere","title":"1 MeterSphere \u5982\u4f55\u5bf9\u63a5\u7b2c\u4e09\u65b9\u5e73\u53f0\uff1f","text":"

    TAPD\uff1a \u8bf7\u53c2\u8003MeterSphere \u670d\u52a1\u96c6\u6210\u4e4b TAPD \u5bf9\u63a5 JIRA\uff1a \u8bf7\u53c2\u8003 MeterSphere \u670d\u52a1\u96c6\u6210\u4e4b JIRA \u5bf9\u63a5 \u7985\u9053\uff1a \u8bf7\u53c2\u8003MeterSphere \u670d\u52a1\u96c6\u6210\u4e4b \u7985\u9053 \u5bf9\u63a5 Azure Devops\uff1a \u8bf7\u53c2\u8003MeterSphere \u670d\u52a1\u96c6\u6210\u4e4b Azure Devops \u5bf9\u63a5

    "},{"location":"faq/service_integration/#2-ms","title":"2 \u5728\u7985\u9053\u4e0a\u5df2\u521b\u5efa\u7684\u7f3a\u9677\uff0cMS \u4e0a\u70b9\u51fb\u3010\u540c\u6b65\u7f3a\u9677\u3011\uff0c\u4e3a\u4ec0\u4e48\u672a\u6210\u529f\u540c\u6b65\uff1f","text":"

    \u7985\u9053\u7f3a\u9677\u540c\u6b65\u5230 MS \u662f\u4f01\u4e1a\u7248\u529f\u80fd\uff0c\u5f00\u6e90\u7248\u53ea\u652f\u6301\u5355\u5411\u540c\u6b65\uff0c\u53ea\u80fd\u5c06 MS \u7f3a\u9677\u540c\u6b65\u5230\u7985\u9053\u4e0a\u3002

    "},{"location":"faq/service_integration/#3-path_info","title":"3 \u7985\u9053\u5728 PATH_INFO \u4e0b\uff0c\u9879\u76ee\u96c6\u6210\u63d0\u793a\u5931\u8d25\u600e\u4e48\u5904\u7406?","text":"

    \u4fee\u6539\u7985\u9053\u914d\u7f6e\u6216 MS \u5e73\u53f0\u8bbe\u7f6e\uff0c\u786e\u4fdd\u4e24\u4e2a\u7cfb\u7edf\u4e2d\u7684\u8bf7\u6c42\u65b9\u5f0f\u4fdd\u6301\u4e00\u81f4\uff1a \uff081\uff09\u3010\u4fee\u6539\u7985\u9053\u914d\u7f6e\u3011\u914d\u7f6e\u6587\u4ef6\u8def\u5f84\uff1a/opt/zbox/app/zentao/config/my.php\uff0c\u4fee\u6539 $config->requestType = 'PATH_INFO' \u6216 'GET'\uff0c\u7136\u540e\u91cd\u542f\u7985\u9053/opt/zbox/zbox restart\u3002 \uff082\uff09\u3010\u4fee\u6539MS\u914d\u7f6e\u3011\u5728\u201c\u7cfb\u7edf\u8bbe\u7f6e-\u5de5\u4f5c\u7a7a\u95f4-\u670d\u52a1\u96c6\u6210-\u7985\u9053\u201d\u914d\u7f6e\u9875\u9762\uff0c\u9009\u62e9\u8bf7\u6c42\u65b9\u5f0f\u4e3aPATH_INFO\u6216 GET\u3002

    "},{"location":"faq/service_integration/#4-ms-tapd-ms-tapd","title":"4 MS \u96c6\u6210 TAPD\uff0c\u5728 MS \u5e73\u53f0\u4e0a\u63d0\u4ea4\u7f3a\u9677\u65f6\u4e0a\u4f20\u56fe\u7247\uff0c\u4f46\u5728 TAPD \u4e2d\u65e0\u6cd5\u6b63\u786e\u663e\u793a\u56fe\u7247\uff0c\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u6d4f\u89c8\u5668\u7684\u9ed8\u8ba4\u5b89\u5168\u7b56\u7565\u5bfc\u81f4\uff0c\u9700\u8981\u5728MS\u5e73\u53f0\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf-\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e-\u57fa\u672c\u914d\u7f6e-\u5f53\u524d\u7ad9\u70b9URL\u3011\u4e2d\u914d\u7f6e\u4e3a https \u7684\u5730\u5740\u3002

    "},{"location":"faq/service_integration/#5-ms-metersphere-id-id","title":"5 MS \u96c6\u6210\u7985\u9053\uff0c\u5728 MeterSphere \u5e73\u53f0\u4e0a\u9879\u76ee ID \u586b\u5199\u6b63\u786e\uff0c\u68c0\u67e5\u65f6\u63d0\u793aID\u4e0d\u5b58\u5728\u6216\u8005\u5176\u4ed6\u9519\u8bef\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u53ef\u80fd\u539f\u56e0\u5305\u62ec\uff1a

    • v2.4 \u7248\u672c\u4e4b\u540e\uff0c\u670d\u52a1\u96c6\u6210\u4fee\u6539\u4e3a\u63d2\u4ef6\u65b9\u5f0f\uff0c\u7985\u9053\u63d2\u4ef6\u7248\u672c\u548c\u5f53\u524d MeterSphere \u7248\u672c\u4e0d\u4e00\u81f4\u3002
    • \u6ca1\u6709\u5bf9\u5e94\u4ea7\u54c1\u6216\u8005\u9879\u76ee\u7684\u6743\u9650\uff0c\u6216\u8005\u6709\u6743\u9650\u4f46\u662f\u9700\u8981\u586b\u4ea7\u54c1 ID\uff0c\u5b9e\u9645\u586b\u4e86\u9879\u76ee ID\u3002
    • \u7985\u9053\u670d\u52a1\u6ca1\u6709\u542f\u7528api\u8c03\u7528\u6743\u9650\uff1a\u7f3a\u5c11\u914d\u7f6e $config->features->apiGetModel\u3002
    • \u670d\u52a1\u96c6\u6210\u5904\u5bf9\u63a5\u7684\u7985\u9053\u7528\u6237\uff0c\u6ca1\u6709\u52fe\u9009\u8d4b\u4e88\"\u8d85\u7ea7model\u8c03\u7528\u63a5\u53e3\"\u6743\u9650\u3002

    \u89e3\u51b3\u65b9\u6cd5\uff1a

    • \u5728 github\u4e0a\u4e0b\u8f7d\u548c MeterSphere \u7248\u672c\u4e00\u81f4\u7684\u63d2\u4ef6metersphere-platform-plugin \u5e76\u4e0a\u4f20\u5230\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u63d2\u4ef6\u7ba1\u7406\u3011\uff0c\u7528\u6cd5\u53c2\u8003\u670d\u52a1\u96c6\u6210\u63d2\u4ef6\u3002
    • \u5728 MeterSphere \u9879\u76ee\u7f16\u8f91\u6846-\u9879\u76eeID \u5904\u6709\u201ci\u201d\u63d0\u793a\u8bf4\u660e\uff0c\u6309\u7167\u914d\u7f6e\u8bf4\u660e\u586b\u5199\u5bf9\u5e94 \u4ea7\u54c1ID \u6216\u8005 \u9879\u76eeID\u3002
    • \u5728\u7985\u9053\u5b89\u88c5\u8def\u5f84\u4e2d\uff1a${\u5b89\u88c5\u8def\u5f84}/zentao/config/ \u76ee\u5f55\u4e0b my.php (\u5982\u679c\u6ca1\u6709\uff0c\u65b0\u5efa my.php \u6587\u4ef6)\u4e2d\u6dfb\u52a0\u5982\u4e0b\u5185\u5bb9\uff1a$config->features->apiGetModel = true;\u7136\u540e\u91cd\u542f\u7985\u9053\u670d\u52a1\u5668\uff1a/opt/zbox/zbox restart\u3002
    • \u7528\u4e8e\u5bf9\u63a5\u7684\u7985\u9053\u7528\u6237\uff0c\u786e\u8ba4\u5728\u7985\u9053 web \u7aef\u3010\u7ec4\u7ec7-\u6743\u9650-\u6743\u9650\u7ef4\u62a4-API \u63a5\u53e3\u3011\u52fe\u9009\u4e86\u201c\u8d85\u7ea7model\u8c03\u7528\u63a5\u53e3\u201d\u3002
    "},{"location":"faq/service_integration/#6-ms-jira-jirakey-id","title":"6 MS \u96c6\u6210 JIRA \u5e73\u53f0\uff0c\u586b\u5199\u3010JIRA\u9879\u76eekey\u3011\u540e\u8fdb\u884c\u4fdd\u5b58\u65f6\uff0c\u9875\u9762\u63d0\u793a \"ID\u4e0d\u5b58\u5728\u6216\u5176\u4ed6\u9519\u8bef\"\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u4e00\u822c\u4e3a\u7528\u6237\u6ca1\u6709\u6743\u9650\u8bbf\u95ee\u6b64\u9879\u76ee\uff0c\u68c0\u67e5 JIRA \u5bf9\u5e94\u9879\u76ee\u7684\u7ba1\u7406\u5458\u7528\u6237\u662f\u5426\u548c MS \u7cfb\u7edf\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u670d\u52a1\u96c6\u6210-JIRA\u3011\u5904\u914d\u7f6e\u7684\u8d26\u53f7\u4e00\u81f4\uff0c\u53ef\u914d\u5408\u540e\u53f0\u65e5\u5fd7/opt/metersphere/logs/system-setting/info.log\u67e5\u770b\u62a5\u9519\u539f\u56e0\u3002

    "},{"location":"faq/service_integration/#7-jira","title":"7 \u540c\u6b65\u7f3a\u9677\u5230JIRA\uff0c\u5982\u4f55\u5b9e\u73b0\u81ea\u5b9a\u4e49\u5b57\u6bb5\uff1f","text":"

    \u53ef\u4ee5\u5728\u3010\u9879\u76ee\u8bbe\u7f6e-\u66f4\u591a\u9009\u9879-\u6a21\u7248\u7ba1\u7406\u3011\uff0c\u521b\u5efa\u6a21\u677f\u5b57\u6bb5\uff1b\u7136\u540e\u6253\u5f00\u7f3a\u9677\u6a21\u677f-JIRA\u9ed8\u8ba4\u6a21\u7248\uff0c\u6dfb\u52a0\u521b\u5efa\u597d\u7684\u81ea\u5b9a\u4e49\u5b57\u6bb5\uff0c\u5728 MeterSphere \u4e0a\u63d0\u4ea4\u7f3a\u9677\u65f6\u5c31\u4f1a\u51fa\u73b0\u8be5\u5b57\u6bb5\u3002

    "},{"location":"faq/service_integration/#8-jira","title":"8 \u96c6\u6210JIRA\u65f6\uff0c\u5982\u4f55\u5b9e\u73b0\u7ed1\u5b9a\u6307\u5b9a\u8d26\u53f7\uff1f","text":"

    \u53ef\u4ee5\u5728\u3010\u4e2a\u4eba\u8d26\u53f7-\u4e2a\u4eba\u4fe1\u606f-\u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u3011\u5f39\u7a97\uff0c\u914d\u7f6e JIRA \u8d26\u53f7\u548c\u5bc6\u7801\uff0c\u5c31\u53ef\u4ee5\u7ed1\u5b9a\u8d26\u53f7\u5173\u8054\u9700\u6c42\u4ee5\u53ca\u540c\u6b65\u7f3a\u9677\u4e86\u3002

    "},{"location":"faq/system_management/","title":"\u7cfb\u7edf\u8bbe\u7f6e\u76f8\u5173","text":""},{"location":"faq/system_management/#1-metersphere","title":"1 \u5982\u4f55\u7406\u89e3 MeterSphere \u6d4b\u8bd5\u8d44\u6e90\u6c60\uff1f","text":"

    \u6d4b\u8bd5\u8d44\u6e90\u6c60\u662f MeterSphere \u4e2d\u7684\u6267\u884c\u673a\u96c6\u5408\uff0c\u7528\u4e8e\u6267\u884c\u6307\u5b9a\u7684\u63a5\u53e3\u6216\u6027\u80fd\u6d4b\u8bd5\u3002\u76ee\u524d\u652f\u6301\u6dfb\u52a0 Node \u8d44\u6e90\u6c60\u548c K8S \u8d44\u6e90\u6c60\uff0c\u8be6\u7ec6\u8bf4\u660e\u8bf7\u53c2\u8003\u8d44\u6e90\u6c60\u914d\u7f6e\u3002

    "},{"location":"faq/system_management/#2-ldap","title":"2 LDAP\u6d4b\u8bd5\u8fde\u63a5\uff0c\u63d0\u793a\u7528\u6237\u4e0d\u5b58\u5728\u6216\u8005\u4e0d\u552f\u4e00\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e-LDAP \u8bbe\u7f6e\u3011\u66f4\u6539\u7528\u6237\u8fc7\u6ee4\u5668\u4e3a(cn={0})\uff1bLDAP\u5c5e\u6027\u6620\u5c04\u4e3a\uff5b\"username\": \"cn\"\uff5d\u3002

    "},{"location":"faq/system_management/#3","title":"3 \u9879\u76ee\u5982\u4f55\u914d\u7f6e\u901a\u7528\u7684\u57df\u540d\uff1f","text":"

    \u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u5de5\u4f5c\u7a7a\u95f4-\u73af\u5883\u914d\u7f6e\u3011\u9875\u9762\uff0c\u3010\u901a\u7528\u8bbe\u7f6e\u3011\u542f\u7528 Hosts\uff0c\u53ef\u4ee5\u4e3a\u9879\u76ee\u914d\u7f6e\u901a\u7528\u7684\u57df\u540d\u3002

    "},{"location":"faq/system_management/#4","title":"4 \u90ae\u4ef6\u670d\u52a1\u5668\u8fde\u63a5\u4e0d\u6210\u529f\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u5bfc\u81f4\u90ae\u7bb1\u94fe\u63a5\u4e0d\u6210\u529f\u7684\u539f\u56e0\u53ef\u80fd\u662f 465 \u7aef\u53e3\u672a\u5f00\u653e\uff0c \u53ef\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e-\u90ae\u4ef6\u8bbe\u7f6e\u8bbe\u7f6e\u3011\u5c06\u90ae\u4ef6\u8bbe\u7f6e\u4e2d\u7684 465 \u7aef\u53e3\u6539\u6210 25 \u7aef\u53e3\u5e76\u53bb\u6389 ssl \u9009\u9879.

    "},{"location":"faq/system_management/#5-warn-establishing-ssl-connection-without-servers-identity-verification-is-not-recommended","title":"5 \u73af\u5883\u914d\u7f6e\u6570\u636e\u5e93\u8fde\u63a5\u4e0d\u901a\uff0c \u63d0\u793a\uff1aWARN: Establishing SSL connection without server's identity verification is not recommended.","text":"

    \u6570\u636e\u5e93\u9ed8\u8ba4\u5f00\u542f\u4e86 SSL \u9a8c\u8bc1\u76f8\u5e94\u7684\u914d\u7f6e\u5bfc\u81f4\uff0c\u53ef\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u73af\u5883\u7ba1\u7406\u3011\u6570\u636e\u5e93\u7684 URL \u589e\u52a0\uff1fuseSSL=false \u6765\u89e3\u51b3\u3002

    "},{"location":"faq/system_management/#6-sqlsql","title":"6 \u5728\u4e00\u4e2aSQL\u8bf7\u6c42\u4e0b\u5982\u4f55\u6267\u884c\u591a\u6761SQL\uff1f","text":"

    \u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u73af\u5883\u7ba1\u7406\u3011\u7f16\u8f91\u73af\u5883\u6570\u636e\u6e90\u914d\u7f6e\u7684 URL \u540e\u9762\u52a0\u4e0a allowMultiQueries=true\u3002

    "},{"location":"faq/system_management/#7-no-database-selected","title":"7 \u73af\u5883\u914d\u7f6e\u6570\u636e\u5e93\u914d\u7f6e\u63d0\u793a\uff1ano database selected\uff0c\u5982\u4f55\u89e3\u51b3\uff1f","text":"

    \u9700\u8981\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u73af\u5883\u7ba1\u7406\u3011\u7f16\u8f91\u73af\u5883\u6570\u636e\u6e90\u8fde\u63a5 URL \u4e2d\u589e\u52a0\u6570\u636e\u5e93\u5e93\u540d\u4fe1\u606f\u3002\u4f8b\u5982\uff1ajdbc:mysql://127.0.0.1:3306/database\u3002

    "},{"location":"faq/test_track/","title":"\u6d4b\u8bd5\u8ddf\u8e2a\u76f8\u5173","text":""},{"location":"faq/test_track/#1-metersphere","title":"1 MeterSphere \u4e2d\u6d4b\u8bd5\u8ba1\u5212\u5177\u4f53\u7684\u573a\u666f\u662f\u4ec0\u4e48\uff1f","text":"

    \u53c2\u8003\u6587\u7ae0\uff1a \u4ea7\u54c1\u89e3\u8bfb\u4e28MeterSphere\u4e2d\u6d4b\u8bd5\u8ba1\u5212\u7684\u573a\u666f\u8bbe\u8ba1\u4e0e\u5b9e\u73b0\u3002

    "},{"location":"faq/test_track/#2","title":"2 \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\uff0c\u7528\u4f8b\u8bc4\u5ba1\u5982\u4f55\u8fdb\u884c\u6279\u91cf\u5904\u7406\uff1f","text":"

    \u9009\u4e2d\u6d4b\u8bd5\u8bc4\u5ba1\u7528\u4f8b\u5217\u8868\u4e2d\u9700\u8981\u6279\u91cf\u5904\u7406\u7684\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u00b7\u00b7\u00b7\u3011\u5f39\u51fa\u4e0b\u62c9\u6846\uff0c\u9009\u62e9\u6279\u91cf\u7f16\u8f91\uff0c\u53ef\u4ee5\u6279\u91cf\u8bbe\u7f6e\u8bc4\u5ba1\u7ed3\u679c\u3002

    "},{"location":"faq/test_track/#3","title":"3 \u6d4b\u8bd5\u8ba1\u5212\u91cc\uff0c\u5982\u4f55\u6279\u91cf\u5206\u914d\u6267\u884c\u4eba\uff1f","text":"

    \u9009\u4e2d\u6d4b\u8bd5\u8ba1\u5212\u7528\u4f8b\u5217\u8868\u4e2d\u9700\u8981\u6279\u91cf\u5904\u7406\u7684\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u00b7\u00b7\u00b7\u3011\u5f39\u51fa\u4e0b\u62c9\u6846\uff0c\u9009\u62e9\u6279\u91cf\u7f16\u8f91\uff0c\u53ef\u4ee5\u5206\u914d\u6267\u884c\u4eba\u3002

    "},{"location":"faq/test_track/#4","title":"4 \u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u5b9a\u65f6\u4efb\u52a1\uff0c\u662f\u5426\u4f1a\u81ea\u52a8\u89e6\u53d1\u63a5\u53e3\u6d4b\u8bd5\u548c\u6027\u80fd\u6d4b\u8bd5\uff1f\u5b9a\u65f6\u4efb\u52a1\u6dfb\u52a0\u540e\u5982\u4f55\u5220\u9664\uff1f","text":"

    \u6d4b\u8bd5\u8ba1\u5212\u7684\u5b9a\u65f6\u4efb\u52a1\u652f\u6301\u5173\u8054\u7ba1\u7406\u63a5\u53e3\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u5e76\u5b9a\u65f6\u89e6\u53d1\uff1b\u914d\u7f6e\u5b9a\u65f6\u4efb\u52a1\u540e\uff0c\u5173\u95ed SCHEDULER \u5f00\u5173\u5373\u53ef\u53d6\u6d88\u5b9a\u65f6\u4efb\u52a1\u3002

    "},{"location":"faq/test_track/#5","title":"5 \u6d4b\u8bd5\u7528\u4f8b\u53ef\u4ee5\u81ea\u5b9a\u4e49\u663e\u793a\u5b57\u6bb5\u5417\uff1f","text":"

    \u5728\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\uff0c\u70b9\u51fb\u3010\u64cd\u4f5c\u3011\u5217\u4e2d\u7684\u9f7f\u8f6e\u6309\u94ae\u8fdb\u884c\u914d\u7f6e\u3002

    "},{"location":"faq/test_track/#6-jira-metersphere","title":"6 \u5982\u679c\u96c6\u6210\u4e86 JIRA\uff0c\u7f3a\u9677\u72b6\u6001\u53ef\u4ee5\u540c\u6b65\u66f4\u65b0 MeterSphere \u5417\uff1f","text":"

    \u5f00\u6e90\u7248\u4ec5\u652f\u6301\u5355\u5411\u540c\u6b65\uff0c\u5373 MeterSphere \u7f3a\u9677\u540c\u6b65\u5230\u7b2c\u4e09\u65b9\u5e73\u53f0\u3002\u4f01\u4e1a\u7248\u652f\u6301\u53cc\u5411\u540c\u6b65\uff0c\u5373 MeterSphere \u7f3a\u9677\u540c\u6b65\u5230\u7b2c\u4e09\u65b9\u5e73\u53f0\uff0c\u7b2c\u4e09\u65b9\u5e73\u53f0\u4e0a\u7684\u7f3a\u9677\u540c\u6b65\u5230 MeterSphere

    "},{"location":"faq/test_track/#7-jira","title":"7 \u7f3a\u9677\u7ba1\u7406\u81ea\u5b9a\u4e49\u5b57\u6bb5\uff0c\u5982\u4f55\u8ddf JIRA \u7aef\u7684\u5b57\u6bb5\u5173\u8054\uff1f","text":"

    \u5728 Jira \u91cc\u67e5\u770b network\uff0c\u627e\u5230\u5bf9\u5e94\u7684\u81ea\u5b9a\u4e49\u5b57\u6bb5\u7684\u5b57\u6bb5\u540d\u79f0\uff0c\u7136\u540e\u5230 MeterSphere \u7f3a\u9677\u6a21\u7248\u91cc\u8bbe\u7f6e\u4e0a\u5bf9\u5e94\u7684 api \u5b57\u6bb5\u540d\u3002

    "},{"location":"faq/test_track/#8","title":"8 \u6d4b\u8bd5\u7528\u4f8b\u53ef\u4ee5\u81ea\u5b9a\u4e49\u6dfb\u52a0\u5b57\u6bb5\u5417\uff1f","text":"

    \u5728\u3010\u9879\u76ee\u8bbe\u7f6e-\u66f4\u591a\u9009\u9879-\u6a21\u7248\u7ba1\u7406-\u6a21\u677f\u5b57\u6bb5\u3011\uff0c\u53ef\u4ee5\u521b\u5efa\u6a21\u677f\u5b57\u6bb5\uff0c\u521b\u5efa\u65f6\u9009\u62e9\u7528\u4f8b\u6a21\u7248\uff0c\u4fdd\u5b58\u6210\u529f\u540e\u6253\u5f00\u7528\u4f8b\u6a21\u7248\uff0c\u6dfb\u52a0\u521b\u5efa\u7684\u6a21\u677f\u5b57\u6bb5\u3002\u7136\u540e\u5728\u7f16\u5199\u7528\u4f8b\u7684\u9875\u9762\u5c31\u4f1a\u51fa\u73b0\u6a21\u677f\u5b57\u6bb5\u3002

    "},{"location":"faq/test_track/#9","title":"9 \u5982\u4f55\u627e\u56de\u8bef\u5220\u9664\u7684\u6d4b\u8bd5\u7528\u4f8b\uff1f","text":"

    \u5220\u9664\u7684\u6d4b\u8bd5\u7528\u4f8b\u5e76\u4e0d\u4f1a\u7acb\u5373\u5220\u9664\uff0c\u800c\u662f\u79fb\u52a8\u5230\u3010\u56de\u6536\u7ad9\u3011\u4e2d\uff0c\u53ef\u4ee5\u5728\u3010\u6d4b\u8bd5\u8ddf\u8e2a-\u6d4b\u8bd5\u7528\u4f8b\u3011\u6a21\u5757\uff0c\u70b9\u51fb\u3010\u56de\u6536\u7ad9\u3011\u627e\u56de\u3002

    "},{"location":"faq/test_track/#10","title":"10 \u6d4b\u8bd5\u7528\u4f8b\u9875\u9762\u7684\u5b57\u6bb5\u5982\u4f55\u589e\u52a0\u81ea\u5b9a\u4e49\u5b57\u6bb5\uff1f","text":"
    • \u5728\u3010\u9879\u76ee\u8bbe\u7f6e-\u6a21\u7248\u7ba1\u7406-\u7528\u4f8b\u6a21\u7248\u3011\u9875\u9762\u4e2d\uff0c\u9009\u62e9\u8981\u6dfb\u52a0\u5b57\u6bb5\u7684\u7528\u4f8b\u6a21\u7248\uff0c\u6253\u5f00\u3010\u7f16\u8f91\u7528\u4f8b\u6a21\u7248\u3011\u9875\u9762\u3002
    • \u5728\u3010\u7f16\u8f91\u7528\u4f8b\u6a21\u7248\u3011\u9875\u9762\uff0c\u70b9\u51fb\u3010\u8bbe\u7f6e\u81ea\u5b9a\u4e49\u5b57\u6bb5\u3011\u6309\u94ae\u6253\u5f00\u3010\u521b\u5efa\u5b57\u6bb5\u3011\u5bf9\u8bdd\u6846\uff0c\u5728\u5bf9\u8bdd\u6846\u4e2d\u586b\u5199\u5b57\u6bb5\u540d\u79f0\u3001\u5907\u6ce8\uff0c\u9009\u62e9\u3010\u5b57\u6bb5\u7c7b\u578b\u3011\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u4fdd\u5b58\u3002
    "},{"location":"faq/test_track/#11","title":"11 \u63d0\u4ea4\u7f3a\u9677\u9875\u9762\u7684\u5b57\u6bb5\u5982\u4f55\u8fdb\u884c\u81ea\u5b9a\u4e49\u914d\u7f6e\uff1f","text":"

    \u91c7\u7528\u7528\u4f8b\u6a21\u7248\u5b9e\u73b0\u81ea\u5b9a\u4e49\u5b57\u6bb5\u3002

    • \u5728\u3010\u9879\u76ee\u8bbe\u7f6e-\u6a21\u7248\u7ba1\u7406-\u7f3a\u9677\u6a21\u7248\u3011\u9875\u9762\u4e2d\uff0c\u9009\u62e9\u8981\u6dfb\u52a0\u5b57\u6bb5\u7684\u7f3a\u9677\u6a21\u7248\uff0c\u6253\u5f00\u3010\u7f16\u8f91\u7f3a\u9677\u6a21\u7248\u3011\u9875\u9762\u3002
    • \u5728\u3010\u7f16\u8f91\u7f3a\u9677\u6a21\u7248\u3011\u9875\u9762\uff0c\u70b9\u51fb\u3010\u8bbe\u7f6e\u81ea\u5b9a\u4e49\u5b57\u6bb5\u3011\u6309\u94ae\u6253\u5f00\u3010\u521b\u5efa\u5b57\u6bb5\u3011\u5bf9\u8bdd\u6846\uff0c\u5728\u5bf9\u8bdd\u6846\u4e2d\u586b\u5199\u5b57\u6bb5\u540d\u79f0\u3001\u5907\u6ce8\uff0c\u9009\u62e9\u3010\u5b57\u6bb5\u7c7b\u578b\u3011\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u4fdd\u5b58\u3002
    "},{"location":"faq/test_track/#12-jiratapdms","title":"12 \u5728 JIRA\u3001TAPD\u3001\u7985\u9053\u4e0a\u5df2\u521b\u5efa\u7684\u7f3a\u9677\uff0cMS\u4e0a\u70b9\u51fb\u201c\u540c\u6b65\u7f3a\u9677\u201d\uff0c\u672a\u6210\u529f\u540c\u6b65","text":"

    \u9879\u76ee\u4e0e\u8fd9\u4e9b\u5de5\u5177\u8bbe\u7f6e\u4e86\u96c6\u6210\u540e\uff0c\u5f00\u6e90\u7248\u4ec5\u652f\u6301\u5355\u5411\u540c\u6b65\uff0c\u5373 MeterSphere \u7f3a\u9677\u540c\u6b65\u5230\u7b2c\u4e09\u65b9\u5e73\u53f0\u3002\u4f01\u4e1a\u7248\u652f\u6301\u53cc\u5411\u540c\u6b65\uff0c\u5373 MeterSphere \u7f3a\u9677\u540c\u6b65\u5230\u7b2c\u4e09\u65b9\u5e73\u53f0\uff0c\u540c\u65f6\u4e5f\u652f\u6301\u7b2c\u4e09\u65b9\u5e73\u53f0\u4e0a\u7684\u7f3a\u9677\u540c\u6b65\u5230 MeterSphere\u3002

    "},{"location":"faq/test_track/#13","title":"13 \u6d4b\u8bd5\u7528\u4f8b\u6a21\u7248\u6dfb\u52a0\u7684\u81ea\u5b9a\u4e49\u5b57\u6bb5\u5982\u4f55\u5728\u5217\u8868\u5c55\u793a\uff1f","text":"

    \u5728\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u4e2d\uff0c\u70b9\u51fb\u3010\u64cd\u4f5c\u3011\u5217\u4e2d\u7684\u9f7f\u8f6e\u6309\u94ae\u8fdb\u884c\u914d\u7f6e\u3002

    "},{"location":"faq/test_track/#14","title":"14 \u540c\u4e00\u4e2a\u6d4b\u8bd5\u8ba1\u5212\uff0c\u65e2\u5305\u542b\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\uff0c\u4e5f\u5305\u542b\u573a\u666f\u7528\u4f8b\u65f6\uff0c\u6267\u884c\u987a\u5e8f\u662f\u600e\u6837\u7684\uff1f","text":"
    • \u4e0d\u540c\u7c7b\u578b\u7684\u7528\u4f8b\u4e4b\u95f4\uff08\u63a5\u53e3\u7528\u4f8b\u3001\u573a\u666f\u7528\u4f8b\u548c\u6027\u80fd\u7528\u4f8b\u7b49\uff09\u6ca1\u6709\u5148\u540e\u5173\u7cfb\uff0c\u662f\u5e76\u884c\u6267\u884c\u3002
    • \u540c\u7c7b\u578b\u7684\u591a\u4e2a\u6d4b\u8bd5\u6839\u636e\u8fd0\u884c\u65f6\u914d\u7f6e\u6267\u884c\uff08\u4e32\u884c\u6216\u8005\u5e76\u884c\uff09\u3002
    "},{"location":"faq/test_track/#15-xmind-metersphere","title":"15 \u4ece\u672c\u5730 xmind \u590d\u5236\u6570\u636e\u7c98\u8d34\u5230 MeterSphere \u7528\u4f8b\u8111\u56fe\u76f4\u63a5\u4fdd\u5b58\u540e\u6ca1\u6709\u6570\u636e","text":"

    \u9700\u8981\u5c06\u76f8\u5e94\u7684\u6570\u636e\u6807\u8bb0\u4e3a\u6a21\u5757\u6216\u8005\u7528\u4f8b\u624d\u80fd\u4fdd\u5b58\u3002

    "},{"location":"faq/test_track/#16-ms-tapd-ms-tapd","title":"16 MS \u96c6\u6210 TAPD\uff0c\u5728 MS \u5e73\u53f0\u63d0\u4ea4\u7f3a\u9677\u65f6\u4e0a\u4f20\u56fe\u7247\u6587\u4ef6\uff0c\u4f46 TAPD \u4e2d\u65e0\u6cd5\u6b63\u786e\u663e\u793a\u56fe\u7247","text":"

    \u95ee\u9898\u539f\u56e0\uff1a \u6d4f\u89c8\u5668\u7684\u9ed8\u8ba4\u5b89\u5168\u7b56\u7565\u5bfc\u81f4\u7684\uff0c\u56e0\u4e3a\u56fe\u7247\u5b9e\u9645\u4e0a\u662f\u653e\u5728\u7985\u9053\u7684\uff0cMS \u662fhttps\u7684\uff0cTAPD \u7684\u5730\u5740\u662fhttp\uff0c\u8bbf\u95ee http \u7684\u7985\u9053\u4f1a\u81ea\u52a8\u8f6c\u6210 https\u3002

    \u89e3\u51b3\u65b9\u6cd5\uff1a MS\u5e73\u53f0\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf-\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e-\u57fa\u672c\u914d\u7f6e-\u5f53\u524d\u7ad9\u70b9URL\u3011\uff0c\u9700\u8981\u914d\u7f6e\u6210 https \u7684\u5730\u5740

    "},{"location":"faq/test_track/#17-ms-ms-id-id","title":"17 MS\u96c6\u6210\u7985\u9053\uff0c\u5728 MS\u5e73\u53f0\u4e0a \u9879\u76eeID \u586b\u5199\u6b63\u786e\uff0c\u68c0\u67e5\u65f6\u63d0\u793aID\u4e0d\u5b58\u5728\u6216\u8005\u5176\u4ed6\u9519\u8bef\uff0c\u5982\u4f55\u89e3\u51b3\uff1f","text":"

    \u53ef\u80fd\u539f\u56e0\u5305\u62ec\uff1a

    • v2.4 \u7248\u672c\u4e4b\u540e\uff0c\u670d\u52a1\u96c6\u6210\u4fee\u6539\u4e3a\u63d2\u4ef6\u65b9\u5f0f\uff0c\u7985\u9053\u63d2\u4ef6\u7248\u672c\u548c\u5f53\u524d MeterSphere \u7248\u672c\u4e0d\u4e00\u81f4\u3002
    • \u6ca1\u6709\u5bf9\u5e94\u4ea7\u54c1\u6216\u8005\u9879\u76ee\u7684\u6743\u9650\uff0c\u6216\u8005\u6709\u6743\u9650\u4f46\u662f\u9700\u8981\u586b\u4ea7\u54c1 ID\uff0c\u5b9e\u9645\u586b\u4e86\u9879\u76ee ID\u3002
    • \u7985\u9053\u670d\u52a1\u6ca1\u6709\u542f\u7528api\u8c03\u7528\u6743\u9650\uff1a\u7f3a\u5c11\u914d\u7f6e $config->features->apiGetModel\u3002
    • \u670d\u52a1\u96c6\u6210\u5904\u5bf9\u63a5\u7684\u7985\u9053\u7528\u6237\uff0c\u6ca1\u6709\u52fe\u9009\u8d4b\u4e88\"\u8d85\u7ea7model\u8c03\u7528\u63a5\u53e3\"\u6743\u9650\u3002

    \u89e3\u51b3\u65b9\u6cd5\uff1a

    • \u5728 github\u4e0a\u4e0b\u8f7d\u548c MeterSphere \u7248\u672c\u4e00\u81f4\u7684\u63d2\u4ef6metersphere-platform-plugin \u5e76\u4e0a\u4f20\u5230\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u63d2\u4ef6\u7ba1\u7406\u3011\uff0c\u7528\u6cd5\u53c2\u8003\u670d\u52a1\u96c6\u6210\u63d2\u4ef6\u3002
    • \u5728 MeterSphere \u9879\u76ee\u7f16\u8f91\u6846-\u9879\u76eeID \u5904\u6709\u201ci\u201d\u63d0\u793a\u8bf4\u660e\uff0c\u6309\u7167\u914d\u7f6e\u8bf4\u660e\u586b\u5199\u5bf9\u5e94 \u4ea7\u54c1ID \u6216\u8005 \u9879\u76eeID\u3002
    • \u5728\u7985\u9053\u5b89\u88c5\u8def\u5f84\u4e2d\uff1a${\u5b89\u88c5\u8def\u5f84}/zentao/config/ \u76ee\u5f55\u4e0b my.php (\u5982\u679c\u6ca1\u6709\uff0c\u65b0\u5efa my.php \u6587\u4ef6)\u4e2d\u6dfb\u52a0\u5982\u4e0b\u5185\u5bb9\uff1a$config->features->apiGetModel = true;\u7136\u540e\u91cd\u542f\u7985\u9053\u670d\u52a1\u5668\uff1a/opt/zbox/zbox restart\u3002
    • \u7528\u4e8e\u5bf9\u63a5\u7684\u7985\u9053\u7528\u6237\uff0c\u786e\u8ba4\u5728\u7985\u9053 web \u7aef\u3010\u7ec4\u7ec7-\u6743\u9650-\u6743\u9650\u7ef4\u62a4-API \u63a5\u53e3\u3011\u52fe\u9009\u4e86\u201c\u8d85\u7ea7model\u8c03\u7528\u63a5\u53e3\u201d\u3002
    "},{"location":"faq/ui_test/","title":"UI \u6d4b\u8bd5\u76f8\u5173","text":""},{"location":"faq/ui_test/#1-chromedriver","title":"1.\u672c\u5730\u8c03\u8bd5\u65f6\uff0c\u542f\u52a8\u65e5\u5fd7\u4e2d\u51fa\u73b0\u4e24\u4e2a ChromeDriver \u7248\u672c\u53f7\uff0c\u539f\u56e0\u662f\uff1f","text":"

    \u672c\u5730\u6d4f\u89c8\u5668\u7684\u7248\u672c\u53f7\u4e0e\u4e0b\u8f7d\u7684\u9a71\u52a8\u7248\u672c\u4e0d\u5339\u914d\uff0c\u53ef\u67e5\u770b\u6d4f\u89c8\u5668\u7248\u672c\u540e\uff0c\u91cd\u65b0\u4e0b\u8f7d\u5bf9\u5e94\u7248\u672c\u7684\u9a71\u52a8\u3002

    "},{"location":"faq/ui_test/#2cannot-find-chrome-binary","title":"2.\u672c\u5730\u8c03\u8bd5\uff0c\u542f\u52a8\u65e5\u5fd7\u4e2d\u62a5\u9519\uff1acannot find Chrome binary\uff0c\u5982\u4f55\u89e3\u51b3\uff1f","text":"

    \u5c06 chrome.exe \u7684\u8def\u5f84\u914d\u7f6e\u5230\u73af\u5883\u53d8\u91cf PATH \u91cc\u3002

    "},{"location":"faq/ui_test/#3","title":"3.\u672c\u5730\u8c03\u8bd5\uff0c\u65e5\u5fd7\u6ca1\u6709\u4efb\u4f55\u62a5\u9519\u60c5\u51b5\uff0c\u4f46\u662f\u9875\u9762\u6d4f\u89c8\u5668\u6ca1\u6709\u88ab\u8c03\u7528\u8d77\u6765\uff0c\u5982\u4f55\u5904\u7406\uff1f","text":"

    \u5728UI\u573a\u666f\u4e2d\uff0c\u4e0d\u52fe\u9009\u3010\u6027\u80fd\u6a21\u5f0f\u3011\uff0c\u5373\u53ef\u770b\u5230\u6d4f\u89c8\u5668\u88ab\u8c03\u7528\u7684\u8fc7\u7a0b\u3002

    "},{"location":"installation/backup_data/","title":"\u6570\u636e\u5907\u4efd\u4e0e\u8fd8\u539f","text":"

    \u6982\u8ff0

    \u672c\u6587\u4ecb\u7ecd\u4e86\u624b\u52a8\u548c\u81ea\u52a8\u4e24\u79cd\u5907\u4efd\u65b9\u5f0f\uff0c\u5907\u4efd\u5b8c\u6210\u540e\u6253\u5305\u63a8\u9001\u5230\u6307\u5b9a\u670d\u52a1\u5668\u76ee\u5f55\u3002 \u5907\u4efd\u811a\u672c\u4e2d\u6709\u591a\u4e2a\u53d8\u91cf\u53ef\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\uff0c\u7528\u4e8e\u6ee1\u8db3\u4e0d\u540c\u7684\u4f7f\u7528\u573a\u666f\u3002

    \u6ce8\u610f

    1. \u5907\u4efd\u811a\u672c\u4e2d\uff0c\u9ed8\u8ba4\u4fdd\u7559\u6700\u8fd1\u76847\u4efd\u5907\u4efd\u6587\u4ef6\u3002\uff08\u5982\u6bcf\u5929\u5907\u4efd\u4e00\u6b21\uff0c\u5219\u4fdd\u7559\u6700\u8fd17\u5929\u7684\u5907\u4efd\u6587\u4ef6\u3002\uff09
    2. \u4e3a\u52a0\u5f3a\u6570\u636e\u7684\u5b89\u5168\u6027\uff0c\u5907\u4efd\u811a\u672c\u4e2d\u91c7\u53d6\u7684\u672c\u5730\u52a0\u5f02\u5730\u5907\u4efd\u3002
    "},{"location":"installation/backup_data/#1","title":"1 \u6570\u636e\u5907\u4efd","text":""},{"location":"installation/backup_data/#11","title":"1.1 \u624b\u52a8\u5907\u4efd","text":"
    # \u6570\u636e\u5e93\u5907\u4efd\uff1a\ndocker exec -i mysql mysqldump -uroot -pPassword123@mysql metersphere > metersphere.sql\n\n# data \u76ee\u5f55\u5907\u4efd \uff08\u4ee5\u5b9e\u9645\u5b89\u88c5\u76ee\u5f55\u4e3a\u51c6\uff0c\u9ed8\u8ba4 /opt \u76ee\u5f55\uff09\ntar -cvf ms_data_backup.tar /opt/metersphere/data --exclude=/opt/metersphere/data/kafka --exclude=/opt/metersphere/data/mysql --exclude=/opt/metersphere/data/redis --exclude=/opt/metersphere/data/prometheus\n
    "},{"location":"installation/backup_data/#12","title":"1.2 \u81ea\u52a8\u5907\u4efd","text":"
    1. \u81ea\u52a8\u5907\u4efd\u524d\u9700\u5148\u751f\u6210 SSH \u5bc6\u94a5\u5bf9\uff0c\u5e76\u5c06\u516c\u94a5\u590d\u5236\u5230\u5907\u4efd\u670d\u52a1\u5668\u3002

      ssh-keygen -t rsa\n

    2. \u5c06\u516c\u94a5\u590d\u5236\u5230\u8fdc\u7a0b\u670d\u52a1\u5668\u3002

      ssh-copy-id remote_user@remote_host\n

    3. \u521b\u5efa\u7528\u4e8e\u6570\u636e\u5907\u4efd\u7684\u811a\u672c\u6587\u4ef6

      vi ms_backup.sh\n

    4. \u628a\u4ee5\u4e0b\u5185\u5bb9\u590d\u5236\u5230\u521a\u624d\u521b\u5efa\u7684 ms_backup.sh \u811a\u672c\u4e2d\uff08\u67e5\u770b\u811a\u672c\u4e2d\u7684\u53c2\u6570\uff0c\u4e0e\u5b9e\u9645\u573a\u666f\u662f\u5426\u76f8\u7b26\uff09

      #!/bin/bash\n\n#\u5386\u53f2\u5907\u4efd\u6570\u636e\u4fdd\u7559\u5929\u6570\nkeepBackupNum=7\n#\u5907\u4efd\u6587\u4ef6\u8f93\u51fa\u76ee\u5f55\nbackupDir=/opt/db_bak\n#\u6570\u636e\u5e93\u7528\u6237\u540d\nusername=root\n#\u6570\u636e\u5e93\u5bc6\u7801\npassword=Password123@mysql\n#\u9700\u8981\u5907\u4efd\u7684\u5e93\u540d\ndbName=metersphere\n#\u5907\u4efd\u6587\u4ef6\u7684\u540e\u7f00\u540d\u79f0\ncurrentTime=`date \"+%Y-%m-%d-%H-%M-%S\"`\n#\u5907\u4efd\u6587\u4ef6\u7684\u5b8c\u6574\u540d\u79f0\nbackupTarFileName=ms_db_$currentTime.tar.gz\n#\u5bfc\u51fasql\u6587\u4ef6\u7684\u5b8c\u6574\u540d\u79f0\ndumpSqlFile=ms_db_$currentTime.sql\n#data\u6570\u636e\u9ed8\u8ba4\u76ee\u5f55 /opt/metersphere/data\uff0c\u4ee5\u5b9e\u9645\u5b89\u88c5\u76ee\u5f55\u4e3a\u51c6\nmsDataDir=/opt/metersphere/data\n#\u63a8\u9001\u8fdc\u7a0b\u670d\u52a1\u5668ip\u5730\u5740\nremoteIp=10.1.11.12\n#\u63a8\u9001\u8fdc\u7a0b\u670d\u52a1\u5668\u7528\u6237\u540d\nremoteUser=root\n#\u63a8\u9001\u8fdc\u7a0b\u670d\u52a1\u5668\u76ee\u5f55\nremotePath=/opt\n#\u6570\u636e\u5e93\u662f\u5426\u5185\u7f6e\nisBuiltIn=true\n\n\necho dumpSqlFilePath=$backupDir/$backupTarFileName\n\n#\u6ca1\u6709\u5907\u4efd\u6587\u4ef6\u5939\u5219\u521b\u5efa\nif [  ! -d  \"$backupDir\" ];then\n    mkdir -p \"$backupDir\"\nelse\n    echo \"--------------\u5f00\u59cb\u8fdb\u884c\u5907\u4efd-----------------\"\nfi\n\ncd $backupDir\n\nif [ \"${isBuiltIn}\" = \"true\" ]; then\n    docker exec -i mysql mysqldump -u${username} -p${password} ${dbName} --max_allowed_packet=2G > $dumpSqlFile\nelse\n    mysqldump -u${username} -p${password} ${dbName} --max_allowed_packet=2G > $dumpSqlFile\nfi\n\ntar -cvf ms_data_backup.tar ${msDataDir} --exclude=${msDataDir}/kafka --exclude=${msDataDir}/mysql --exclude=${msDataDir}/redis --exclude=${msDataDir}/prometheus\n\ntar -zcvf  $backupTarFileName $dumpSqlFile ms_data_backup.tar\n#\u53d1\u9001\u5907\u4efd\u6587\u4ef6\u5230\u8fdc\u7a0b\u673a\u5668\nscp $backupTarFileName $remoteUser@$remoteIp:$remotePath  2>> \"error.log\"\n\nif [ $? -eq 0 ]; then\n    echo \"---------------\u8fdc\u7a0b\u5907\u4efd\u5b8c\u6210----------------\"\nelse\n    echo \"---------------\u8fdc\u7a0b\u5907\u4efd\u5931\u8d25----------------\"\nfi\n\nrm -rf $dumpSqlFile ms_data_backup.tar\n\n#remove outdated backup files\n\noutput=`ls -lt $backupDir/*.tar.gz | awk '{print $9}'`\nstep=0\necho \"---------------\u5f00\u59cb\u6e05\u7406$keepBackupNum\u5929\u524d\u5907\u4efd\u6570\u636e----------------\"\nfor backupFile in $output ;do\n    step=$((step+1))\n    echo step=$step\n    echo $backupFile\n    if [ $step -gt $keepBackupNum ];then\n        echo Remove outdated backup $backupFile\n        rm -rf  $backupFile\n    fi\ndone\necho \"---------------\u7ed3\u675f\u6e05\u7406$keepBackupNum\u5929\u524d\u5907\u4efd\u6570\u636e----------------\"\n

    5. \u521b\u5efa\u7528\u4e8e\u5b9a\u65f6\u4efb\u52a1\u811a\u672c\u6587\u4ef6

      vi install_ms_backup.sh\n

    6. \u628a\u4ee5\u4e0b\u5185\u5bb9\u590d\u5236\u5230\u521a\u624d\u521b\u5efa\u7684 install_ms_backup.sh \u811a\u672c\u4e2d\uff08\u67e5\u770b\u811a\u672c\u4e2d\u7684\u53c2\u6570\uff0c\u4e0e\u5b9e\u9645\u573a\u666f\u662f\u5426\u76f8\u7b26\uff09

      #!/bin/bash\n\ntimedate_fields=\"0 1 * * *\"  #\u6bcf\u5929\u51cc\u66681:00\u6267\u884c\u5907\u4efd\u7a0b\u5e8f\ncmd=\"bash /opt/db_bak/ms_backup.sh\"  #\u66ff\u6362 ms_backup.sh \u6240\u5728\u8def\u5f84\ncrontab -l | grep \"$cmd \" > /dev/null 2>&1\nif test $? -ne 0; then\n    crontab -l > crontab.tmp\n    echo \"$timedate_fields $cmd\" >> crontab.tmp\n    crontab crontab.tmp\nfi\n

    7. \u6267\u884c install_ms_backup.sh \u6587\u4ef6\uff08\u5982\u679c\u9047\u5230\u6587\u4ef6\u6743\u9650\u95ee\u9898\uff0c\u53ef\u4ee5\u4f7f\u7528 chmod \u547d\u4ee4\u589e\u52a0\u6743\u9650\uff09\uff0c\u7136\u540e\u4f7f\u7528 crontab -l \u547d\u4ee4\u5373\u53ef\u67e5\u770b\u5b9a\u65f6\u4efb\u52a1

    "},{"location":"installation/backup_data/#2","title":"2 \u6570\u636e\u8fd8\u539f","text":"

    \u8fd8\u539f sql \u6570\u636e\uff0c\u8fdb\u5165\u5907\u4efd sql \u76ee\u5f55\uff0c\u5c06 sql \u590d\u5236\u5230 mysql \u5bb9\u5668\u7684\u6302\u8f7d\u76ee\u5f55 /opt/metersphere/data/mysql \u4e0b

    cp metersphere.sql /opt/metersphere/data/mysql\n

    \u8fdb\u5165 mysql \u5bb9\u5668\uff0c\u767b\u5f55\u6570\u636e\u5e93

    docker exec -it mysql sh\nmysql -uroot -pPassword123@mysql\n

    \u4f7f\u7528 metersphere \u5e93\uff0c\u5e76\u5c06\u6570\u636e\u5bfc\u5165\u5230\u5e93\u91cc

    use metersphere;\nsource /var/lib/mysql/metersphere.sql\n

    \u8fd8\u539f data \u76ee\u5f55\u6570\u636e\uff0c\u8fdb\u5165 ms_data_backup.tar \u6240\u5728\u76ee\u5f55

    mv ms_data_backup.tar /\ntar -xvf ms_data_backup.tar\n

    "},{"location":"installation/build_data_streaming/","title":"\u90e8\u7f72Data-Streaming\u96c6\u7fa4","text":"

    \u51c6\u5907\u597d\u73af\u5883\u53d8\u91cf\u6587\u4ef6\u3001compose \u6587\u4ef6\uff0c\u4e09\u53f0\u673a\u5668\u90e8\u7f72\u4e00\u6837

    \u73af\u5883\u53d8\u91cf\u6587\u4ef6 .env

    vim .env   #\u53c2\u8003ms\u7684.env\u6587\u4ef6\u8fdb\u884c\u4fee\u6539\n\nMS_KAFKA_TOPIC=JMETER_METRICS\nMS_MYSQL_HOST=10.1.240.110 #\u4fee\u6539MS\u7684\u6570\u636e\u5e93\nMS_KAFKA_LOG_TOPIC=JMETER_LOGS\nMS_TAG=v1.9.3\nMS_JMETER_DATA_PATH=metersphere/data/jmeter\nMS_BASE=/opt\nMS_KAFKA_TEST_TOPIC=LOAD_TESTS\nMS_MYSQL_USER=root\nMS_EXTERNAL_MYSQL=true\nMS_PREFIX=registry.cn-qingdao.aliyuncs.com/metersphere\nMS_MYSQL_DB=metersphere\nMS_MYSQL_PASSWORD=Password123@mysql\nMS_JMETER_TAG=5.4.1-ms3-jdk8\nMS_MYSQL_PORT=3307\n\nMS_KAFKA_BOOTSTRAP_SERVERS=10.1.240.154:9092,10.1.240.155:9092,10.1.240.156:9092  #\u65b0\u52a0\n

    docker-compose-base.yml

    vim docker-compose-base.yml #\u62f7\u8d1dms\u670d\u52a1\u5668\u7684docker-compose-base.yml \n\nversion: \"2.1\"\nvolumes:\n  ms-conf:\n    driver_opts:\n      type: none\n      device: ${MS_BASE}/metersphere/conf\n      o: bind\n  ms-logs:\n    driver_opts:\n      type: none\n      device: ${MS_BASE}/metersphere/logs\n      o: bind\n  ms-data:\n    driver_opts:\n      type: none\n      device: ${MS_BASE}/metersphere/data\n      o: bind\n\nnetworks:\n  ms-network:\n    driver: bridge\n    ipam:\n      driver: default\n      config:\n        - subnet: ${MS_DOCKER_SUBNET}\n

    docker-compose-ds.yml

    vim docker-compose-ds.yml #\u65b0\u52a0ds yaml\u6587\u4ef6\n\nversion: \"2.1\"\nservices:\n  ms-data-streaming:\n    image: ${MS_IMAGE_PREFIX}/ms-data-streaming:${MS_IMAGE_TAG}\n    container_name: ms-data-streaming\n    environment:\n      HOST_HOSTNAME: $HOSTNAME\n      SPRING_DATASOURCE_URL: jdbc:mysql://${MS_MYSQL_HOST}:${MS_MYSQL_PORT}/${MS_MYSQL_DB}?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false\n      SPRING_DATASOURCE_USERNAME: ${MS_MYSQL_USER}\n      SPRING_DATASOURCE_PASSWORD: ${MS_MYSQL_PASSWORD}\n      KAFKA_PARTITIONS: 4\n      KAFKA_REPLICAS: 1\n      KAFKA_TOPIC: ${MS_KAFKA_TOPIC}\n      KAFKA_LOG_TOPIC: ${MS_KAFKA_LOG_TOPIC}\n      KAFKA_TEST_TOPIC: ${MS_KAFKA_TEST_TOPIC}\n      KAFKA_REPORT_TOPIC: ${MS_KAFKA_REPORT_TOPIC}\n      KAFKA_BOOTSTRAP-SERVERS: ${MS_KAFKA_HOST}:${MS_KAFKA_PORT}\n      FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS: 'true'\n    healthcheck:\n      test: [\"CMD\", \"nc\", \"-zv\", \"localhost\", \"8084\"]\n      interval: 6s\n      timeout: 10s\n      retries: 20\n    restart: always\n    volumes:\n      - ./conf/metersphere.properties:/opt/metersphere/conf/metersphere.properties\n      - ${MS_BASE}/metersphere/logs/data-streaming:/opt/metersphere/logs/data-streaming\n    networks:\n      - ms-network\n

    \u542f\u52a8 Data-Streaming\uff0c\u6267\u884c\u547d\u4ee4:

    source .env \ndocker-compose -f docker-compose-base.yml -f docker-compose-ds.yml up -d\n

    "},{"location":"installation/build_kafka/","title":"\u90e8\u7f72Kafka\u96c6\u7fa4","text":"

    MeterSphere \u914d\u7f6e kafka \u96c6\u7fa4\u65b9\u6848\u91c7\u7528\u5b89\u88c5\u5305\u81ea\u5e26\u7684 kafka3.4 \u914d\u7f6e\u96c6\u7fa4\u3002\u672c\u65b9\u6848\u5206\u522b\u90e8\u7f72\u4e86\u4e09\u4e2a\u72ec\u7acb\u7684 MeterSphere \u670d\u52a1\uff0c\u7136\u540e\u628a\u8fd9\u4e09\u4e2a\u72ec\u7acb\u7684 MeterSphere \u7684 kafka \u5173\u8054\u6210\u96c6\u7fa4\u3002\u5982\u9700\u505a\u6d41\u91cf\u8f6c\u53d1\u53ef\u4ee5\u5c06\u4e09\u4e2a\u670d\u52a1\u914d\u7f6e\u5230 NGINX \u505a\u6d41\u91cf\u8f6c\u53d1\u3002 Kafka 3.0 \u4e4b\u524d\u7684\u67b6\u6784: \u5143\u6570\u636e\u5728 zookeeper \u4e2d\uff0c\u8fd0\u884c\u65f6\u52a8\u6001\u9009\u4e3e controller\uff0c\u7531 controller \u8fdb\u884c Kafka \u96c6\u7fa4\u7ba1\u7406\u3002kraft \u6a21\u5f0f\u67b6\u6784: \u4e0d\u518d\u4f9d\u8d56 zookeeper \u96c6\u7fa4\uff0c\u800c\u662f\u7528\u4e09\u53f0 controller \u8282\u70b9\u4ee3\u66ff zookeeper\uff0c\u5143\u6570\u636e\u4fdd\u5b58\u5728 controller \u4e2d\uff0c\u7531 controller \u76f4\u63a5\u8fdb\u884c Kafka \u96c6\u7fa4\u7ba1\u7406\u3002 Kafka \u96c6\u7fa4\u63d0\u4f9b\u4e86\u9ad8\u53ef\u9760\u6027\u3001\u9ad8\u541e\u5410\u91cf\u3001\u6c34\u5e73\u6269\u5c55\u6027\u3001\u5bb9\u9519\u6027\u3001\u5b9e\u65f6\u5904\u7406\u548c\u6301\u4e45\u6027\u5b58\u50a8\u7b49\u4f18\u52bf\uff0c\u4f7f\u5176\u6210\u4e3a\u5353\u8d8a\u7684\u5206\u5e03\u5f0f\u6d88\u606f\u961f\u5217\u548c\u6570\u636e\u6d41\u5e73\u53f0\uff0c\u5728\u5927\u89c4\u6a21\u6570\u636e\u5904\u7406\u3001\u5b9e\u65f6\u6570\u636e\u7ba1\u9053\u548c\u6d41\u5f0f\u5904\u7406\u7b49\u65b9\u9762\u53d1\u6325\u7740\u5173\u952e\u4f5c\u7528\u3002

    "},{"location":"installation/build_kafka/#1-kraft","title":"1 kraft \u67b6\u6784\u7684\u597d\u5904","text":"
    • Kafka \u4e0d\u518d\u4f9d\u8d56\u5916\u90e8\u6846\u67b6\uff0c\u800c\u662f\u80fd\u591f\u72ec\u7acb\u8fd0\u884c\u3002
    • controller \u7ba1\u7406\u96c6\u7fa4\u65f6\uff0c\u4e0d\u518d\u9700\u8981\u4ece zookeeper \u4e2d\u5148\u8bfb\u53d6\u6570\u636e\uff0c\u96c6\u7fa4\u6027\u80fd\u4e0a\u5347\u3002
    • \u7531\u4e8e\u4e0d\u4f9d\u8d56 zookeeper\uff0c\u96c6\u7fa4\u6269\u5c55\u65f6\u4e0d\u518d\u53d7\u5230 zookeeper \u8bfb\u5199\u80fd\u529b\u9650\u5236 controller \u4e0d\u518d\u52a8\u6001\u9009\u4e3e\uff0c\u800c\u662f\u7531\u914d\u7f6e\u6587\u4ef6\u89c4\u5b9a\uff0c\u8fd9\u6837\u6211\u4eec\u53ef\u4ee5\u6709\u9488\u5bf9\u6027\u7684\u52a0\u5f3a controller \u8282\u70b9\u7684\u914d\u7f6e\u3002
    • \u540e\u7eed\u7248\u672c\u5347\u7ea7\u65b9\u4fbf\uff0c\u4e0d\u7528\u548c zookeeper \u4e00\u8d77\u7ef4\u62a4\u3002
    "},{"location":"installation/build_kafka/#2-metersphere","title":"2 \u90e8\u7f72 MeterSphere \u670d\u52a1","text":"

    \u7533\u8bf7\u4e09\u53f0\u670d\u52a1\u5668\u5206\u522b\u90e8\u7f72 MeterSphere \u670d\u52a1\uff0c\u90e8\u7f72\u6b65\u9aa4\u8bf7\u53c2\u8003 Linux\u5355\u673a\u90e8\u7f72\u79bb\u7ebf\u5b89\u88c5\u3002

    "},{"location":"installation/build_kafka/#3-docker-compose-kafkayml","title":"3 \u670d\u52a1\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u4e09\u53f0\u670d\u52a1\u5206\u522b\u4fee\u6539docker-compose-kafka.yml \u914d\u7f6e\u6587\u4ef6\u4e3a\u96c6\u7fa4\u6a21\u5f0f\u3002","text":"

    vi /opt/metersphere/docker-compose-kafka.yml \u914d\u7f6e

        version: \"2.1\"\n  services:\n    kafka:\n      image: '${MS_IMAGE_PREFIX}/kafka:3.4.0'\n      container_name: kafka\n      ports:\n        - '${MS_KAFKA_PORT}:9092'\n        - '9093:9093'     #\u5f00\u653e9093\u7aef\u53e3\n      healthcheck:\n        test: [\"CMD\", \"bash\", \"-c\", \"< /dev/tcp/localhost/9093\"]\n        interval: 6s\n        timeout: 10s\n        retries: 50\n      restart: always\n      environment:\n        KAFKA_ENABLE_KRAFT: 'yes'\n        KAFKA_BROKER_ID: 3        #\u6807\u8bc6 Kafka \u96c6\u7fa4\u4e2d\u7684\u6bcf\u4e2a Broker\uff08\u4ee3\u7406\uff09\u7684\u552f\u4e00ID\u4e09\u4e2a\u670d\u52a1\u5668\u4e0a\u914d\u7f6e\u5206\u522b\u4e3a 1 2 3 \n        KAFKA_KRAFT_CLUSTER_ID: LelM2dIFQkiUFVXCECqRWA  #\u96c6\u7fa4\u914d\u7f6e\u4e00\u4e2a\u96c6\u7fa4ID\n        ALLOW_PLAINTEXT_LISTENER: 'yes'\n        KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://10.1.11.58:9092  #roker \u5bf9\u5916\u66b4\u9732\u7684\u5730\u5740\uff0c\u9700\u8981\u586b\u5199\u6bcf\u4e2a\u8282\u70b9\u771f\u5b9e\u7684 ip \u548c\u7aef\u53e3\n        KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@10.1.11.53:9093,2@10.1.11.54:9093,3@10.1.11.58:9093  #\u6240\u6709\u7684 controller \u5217\u8868\uff0c\u4e09\u4e2a\u914d\u7f6e\u6587\u4ef6\u90fd\u586b\u4e00\u6837\u3002\u683c\u5f0f\uff1a1@ip1:9093\uff0c2@ip2:9093\uff0c3@ip3:9093\n        KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT\n        KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER\n        KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093\n        KAFKA_CFG_PROCESS_ROLES: broker,controller\n        KAFKA_CFG_LOG_RETENTION_HOURS: 64\n        KAFKA_CFG_MAX_REQUEST_SIZE: 52428800\n        KAFKA_CFG_MESSAGE_MAX_BYTES: 52428800\n        KAFKA_CFG_REPLICA_FETCH_MAX_BYTES: 52428800\n        KAFKA_CFG_FETCH_MESSAGE_MAX_BYTES: 52428800\n        KAFKA_CFG_PARTITION_FETCH_BYTES: 52428800\n        KAFKA_HEAP_OPTS: '-Xmx512m -Xms256m'\n        FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS: 'true'\n      networks:\n        - ms-network\n    data-streaming:\n      depends_on:\n        kafka:\n          condition: service_healthy\n
    \u4ee5 v2.10.0 \u7248\u672c\u4e3a\u4f8b\uff0cKAFKA_ENABLE_KRAFT: 'yes'\uff0c\u9ed8\u8ba4\u5141\u8bb8 kraft \u96c6\u7fa4\u6a21\u5f0f\uff0c\u6211\u4eec\u53ea\u9700\u8981\u628a\u5176\u4ed6\u8282\u70b9\u52a0\u5165\u5230\u96c6\u7fa4\u4e2d\u5373\u53ef\u3002\u9700\u8981\u4fee\u6539\u7684\u914d\u7f6e\u9879\u5305\u62ec KAFKA_CFG_ADVERTISED_LISTENERS\u3001KAFKA_CFG_CONTROLLER_QUORUM_VOTERS\u3001KAFKA_BROKER_ID\u9700\u8981\u6dfb\u52a0\u7684\u914d\u7f6e\u9879\u5305\u62ec KAFKA_KRAFT_CLUSTER_ID\u3001ports 9093\u7aef\u53e3\uff1b\u5177\u4f53\u5185\u5bb9\u89c1\u4e0a\u8ff0\u914d\u7f6e\u6587\u4ef6\u6ce8\u91ca\u8bf4\u660e\u3002

    "},{"location":"installation/build_kafka/#4-metersphere-docker-kafka-kafka_bootstrap-serversip19092ip29092ip39092","title":"4 \u5206\u522b\u4fee\u6539\u4e09\u53f0 MeterSphere \u670d\u52a1docker\u914d\u7f6e\u6587\u4ef6\uff0c\u5c06\u4f7f\u7528\u5230 kafka \u96c6\u7fa4\u7684\u914d\u7f6e\u9879\u6539\u4e3a KAFKA_BOOTSTRAP-SERVERS\uff1aip1:9092,ip2:9092,ip3:9092\u3002","text":"

    cd /opt/metersphere \u9700\u4fee\u6539\u6587\u4ef6:

    • vi docker-compose-project-management.yml
    • vi docker-compose-ui-test.yml
    • vi docker-compose-gateway.yml
    • vi docker-compose-workstation.yml
    • vi docker-compose-report-stat.yml
    • vi docker-compose-api-test.yml
    • vi docker-compose-seleniarm.yml
    • vi docker-compose-system-setting.yml
    • vi docker-compose-data-streaming.yml
    • vi docker-compose-performance-test.yml
    • vi docker-compose-test-track.yml

    "},{"location":"installation/build_kafka/#5-msctl-reload-kraft","title":"5 \u6240\u6709\u914d\u7f6e\u4fee\u6539\u5b8c\u6210\uff0cmsctl reload \u751f\u6548\u5373\u53ef\u521b\u5efa kraft \u96c6\u7fa4\u3002","text":"

    \u4ee5\u4e0a\u5185\u5bb9\u914d\u7f6e\u597d\u4e4b\u540e\uff0c\u4f7f\u7528 msctl reload \u547d\u4ee4\u91cd\u65b0\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\uff0c\u5373\u53ef\u521b\u5efa kraft \u96c6\u7fa4\u3002

    "},{"location":"installation/build_node_controller/","title":"\u90e8\u7f72Node-Controller\u96c6\u7fa4","text":"

    \u5982\u91c7\u7528\u72ec\u7acb\u4e3b\u673a\u538b\u6d4b\uff0c\u9700\u8981\u90e8\u7f72 Node-Controller\uff0c\u90e8\u7f72\u8fc7\u7a0b\u53ef\u4ee5\u53c2\u8003 https://metersphere.io/docs/v2.x/installation/online_installation/ \u3002 \u8fdb\u5165\u5b89\u88c5\u5305\u6240\u5728\u76ee\u5f55\uff0c\u5c06 install.conf \u4e2d\u4fee\u6539\u5b89\u88c5\u6a21\u5f0f MS_INSTALL_MODE \u7684\u503c(\u7531\u539f\u5148\u7684 allinone \u6539\u4e3a node-controller)\uff0c\u5b89\u88c5\u5305\u8def\u5f84\u4e0b\u6267\u884c /bin/bash install.sh \u5373\u53ef\u3002

    • \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u6d4b\u8bd5\u8d44\u6e90\u6c60\u3011\u6dfb\u52a0\u8d44\u6e90\u6c60\uff0c\u586b\u5199\u5b8c\u6574\u8d44\u6e90\u6c60 ip\u3001\u7aef\u53e3\u4fe1\u606f\u5373\u53ef\u3002
    • \u5982\u679c\u6d4b\u8bd5\u8d44\u6e90\u5e76\u53d1\u8981\u6c42\u8f83\u5927\uff0c\u53ef\u4ee5\u5c06\u8d44\u6e90\u6c60\u4e2d JMeter \u7684\u5185\u5b58\u914d\u7f6e\uff0c\u5efa\u8bae\u8c03\u6574\u5230 4G \u4ee5\u4e0a\u3002-Xms4g -Xmx4g -XX:MaxMetaspaceSize=256m
    • \u6700\u540e\uff0c\u8d44\u6e90\u6c60\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u9700\u8981\u5728\u8d44\u6e90\u6c60\u5217\u8868\u542f\u7528\u8d44\u6e90\u6c60\uff0c\u6821\u9a8c\u901a\u8fc7\u5373\u53ef\u4f7f\u7528\u3002

    "},{"location":"installation/cli/","title":"\u547d\u4ee4\u884c\u5de5\u5177","text":"

    MeterSphere \u9ed8\u8ba4\u5185\u7f6e\u4e86\u547d\u4ee4\u884c\u8fd0\u7ef4\u5de5\u5177\u3010msctl\u3011\uff0c\u901a\u8fc7\u6267\u884c\u3010msctl help\u3011\u547d\u4ee4\uff0c\u53ef\u4ee5\u67e5\u770b\u76f8\u5173\u7684\u5e2e\u52a9\u6587\u6863\u3002

    MeterSphere \u63a7\u5236\u811a\u672c\n\nUsage: \n  ./msctl.sh [COMMAND] [ARGS...]\n  ./msctl.sh --help\n\nCommands: \n  status    \u67e5\u770b MeterSphere \u670d\u52a1\u8fd0\u884c\u72b6\u6001\n  start     \u542f\u52a8 MeterSphere \u670d\u52a1\n  stop      \u505c\u6b62 MeterSphere \u670d\u52a1\n  restart   \u91cd\u542f MeterSphere \u670d\u52a1\n  reload    \u91cd\u65b0\u52a0\u8f7d MeterSphere \u670d\u52a1\uff08\u4fee\u6539\u914d\u7f6e\u6587\u4ef6 /opt/metersphere/.env \u65f6\uff0c\u8fd0\u884c\u6b64\u547d\u4ee4\u4f7f\u914d\u7f6e\u751f\u6548\uff09\n  upgrade   \u5347\u7ea7 MeterSphere \u81f3\u6700\u65b0\u7248\u672c\n  upgrade [RELEASE]  \u6839\u636e\u7248\u672c\u53f7\u641c\u7d22\u79bb\u7ebf\u5305\uff0c\u5347\u7ea7 MeterSphere \u81f3\u5bf9\u5e94\u7248\u672c\n  uninstall \u5378\u8f7d MeterSphere \u670d\u52a1\n  version   \u67e5\u770b MeterSphere \u7248\u672c\u4fe1\u606f\n
    "},{"location":"installation/kubernetes_installation/","title":"Kubernetes \u90e8\u7f72","text":""},{"location":"installation/kubernetes_installation/#1-helm-charts","title":"1 Helm Charts \u5728\u7ebf\u90e8\u7f72","text":"
    kubectl create ns ms\nhelm repo add bitnami https://charts.bitnami.com/bitnami\nhelm repo add metersphere https://metersphere.github.io/helm-chart/\n# \u4ece chart \u4ed3\u5e93\u4e2d\u66f4\u65b0\u672c\u5730\u53ef\u7528chart\u7684\u4fe1\u606f\nhelm repo update  \nhelm install metersphere metersphere/metersphere -n ms\n
    "},{"location":"installation/kubernetes_installation/#2-helm-charts","title":"2 Helm Charts \u79bb\u7ebf\u90e8\u7f72","text":"
    • \u5bfc\u5165\u955c\u50cf \u4e0b\u8f7d MeterSphere \u6700\u65b0\u7248\u672c\u7684\u79bb\u7ebf\u5b89\u88c5\u5305\u5e76\u4e14\u89e3\u538b\uff0c\u5c06\u5b89\u88c5\u5305\u91cc image \u76ee\u5f55\u4e0b\u7684\u955c\u50cf tar \u5305\u4e0a\u4f20\u5230 kubernetes \u7684\u955c\u50cf\u5e93\u91cc\u6216\u8005\u624b\u52a8 load \u5230 kubernetes \u5404\u4e2a\u5bbf\u4e3b\u673a\u8282\u70b9\u4e0a\u3002 MeterSphere \u79bb\u7ebf\u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://community.fit2cloud.com/#/products/metersphere/downloads

    • \u4e0b\u8f7d\u79bb\u7ebf Chart \u5305 helm-chart \u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://github.com/metersphere/helm-chart/releases\u5982\uff1ahttps://github.com/metersphere/helm-chart/releases/download/metersphere-2.3.0/metersphere-2.3.0.tgz

    • \u8fdb\u884c\u5b89\u88c5

      helm install metersphere metersphere-2.3.0.tgz -n ms\n\n# \u6839\u636e\u9700\u8981\u4fee\u6539 values.yml \u6587\u4ef6\u914d\u7f6e\u540e\u5b89\u88c5\nhelm install metersphere metersphere-2.3.0.tgz -f metersphere/values.yml -n ms\n

    "},{"location":"installation/kubernetes_installation/#3-helm-charts","title":"3 Helm Charts \u5728\u7ebf\u5347\u7ea7","text":"
    helm repo update  # \u4ece chart \u4ed3\u5e93\u4e2d\u66f4\u65b0\u672c\u5730\u53ef\u7528chart\u7684\u4fe1\u606f\nhelm upgrade metersphere metersphere/metersphere -n ms\n
    "},{"location":"installation/kubernetes_installation/#4-helm-charts","title":"4 Helm Charts \u79bb\u7ebf\u5347\u7ea7","text":"
    • \u5bfc\u5165\u65b0\u7248\u672c\u955c\u50cf \u4e0b\u8f7d MeterSphere \u6700\u65b0\u7248\u672c\u7684\u79bb\u7ebf\u5b89\u88c5\u5305\u5e76\u4e14\u89e3\u538b\uff0c\u5c06\u5b89\u88c5\u5305\u91cc image \u76ee\u5f55\u4e0b\u7684\u955c\u50cf tar \u5305\u4e0a\u4f20\u5230 kubernetes \u7684\u955c\u50cf\u5e93\u91cc\u6216\u8005\u624b\u52a8 load \u5230 kubernetes \u5404\u4e2a\u5bbf\u4e3b\u673a\u8282\u70b9\u4e0a\u3002 MeterSphere \u79bb\u7ebf\u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://community.fit2cloud.com/#/products/metersphere/downloads

    • \u4e0b\u8f7d\u6700\u65b0\u79bb\u7ebf Chart \u5305 helm-chart \u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://github.com/metersphere/helm-chart/releases \u5982\uff1ahttps://github.com/metersphere/helm-chart/releases/download/metersphere-2.3.0/metersphere-2.3.0.tgz

    • \u8fdb\u884c\u5347\u7ea7

      helm upgrade metersphere metersphere-2.3.0.tgz -n ms\n\n# \u6839\u636e\u9700\u8981\u4fee\u6539 values.yml \u6587\u4ef6\u914d\u7f6e\u540e\u5347\u7ea7\nhelm upgrade metersphere metersphere-2.3.0.tgz -f metersphere/values.yml -n ms\n

    "},{"location":"installation/kubernetes_installation/#5-valuesyaml","title":"5 values.yaml","text":"

    \u4ee5\u4e0b values.yaml \u5185\u5bb9\u5bf9\u5e94\u7248\u672c\u4e3a v2.3.0\uff0c\u6700\u65b0\u7684 values.yaml \u53ef\u5230 github \u4e0a metersphere helm-chart \u4ed3\u5e93\u4e2d\u67e5\u627e\u5bf9\u5e94\u7248\u672c\u7684 values.yaml\uff0c\u4f8b\u5982\uff1av2.9.1 \u7248\u672c value.yaml \u6587\u4ef6\u4e3a https://github.com/metersphere/helm-chart/blob/metersphere-2.9.1/charts/metersphere/values.yaml

    ingress: # \u4e0d\u4f7f\u7528 ingress \u53ef\u4ee5\u5173\u95ed\n  enabled: true\n  host: ms-dev.apps.metersphere.com\n  annotations: {}\n    ## example for ingress annotions.\n    # kubernetes.io/ingress.class: nginx\n    # kubernetes.io/tls-acme: \"true\"      \n  https:\n    enabled: false\n    secretName: \"\"\n\ncommon:\n  imagePrefix: \"registry.cn-qingdao.aliyuncs.com/metersphere/\"\n  imagePullSecrets: nil\n  storageClass: default\n  imageTag: v2.3.0     # \u5b89\u88c5\u7684\u7248\u672c\u53f7\n  imagePullPolicy: Always  # \u955c\u50cf\u62c9\u53d6\u7b56\u7565\n  properties: |-\n    ## DATABASE\n    spring.datasource.url=jdbc:mysql://{{.Values.mysql.host}}:{{.Values.mysql.port}}/metersphere?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true\n    spring.datasource.username={{.Values.mysql.username}}\n    spring.datasource.password={{.Values.mysql.password}}\n    ## redis\n    spring.session.store-type=redis\n    spring.redis.host={{.Values.redis.host}}\n    spring.redis.port={{.Values.redis.port}}\n    spring.redis.database={{.Values.redis.database}}\n    spring.redis.password={{.Values.redis.password}}\n    ## KAFKA\n    kafka.partitions=1\n    kafka.replicas=1\n    kafka.topic={{.Values.kafka.metricTopic}}\n    kafka.bootstrap-servers={{.Values.kafka.host}}.{{.Release.Namespace}}:{{.Values.kafka.port}}\n    kafka.log.topic={{.Values.kafka.logTopic}}\n    kafka.test.topic={{.Values.kafka.testTopic}}\n    kafka.report.topic={{.Values.kafka.reportTopic}}\n    tcp.mock.port=10000\n    ## minio\n    minio.endpoint=http://{{.Values.minio.host}}:{{.Values.minio.port}}\n    minio.access-key={{.Values.minio.username}}\n    minio.secret-key={{.Values.minio.password}}\n    ## JMETER\n    jmeter.image={{ .Values.common.imagePrefix }}{{.Values.jmeter.image}}:{{.Values.jmeter.imageTag}}\n    jmeter.pod.threads.limit=500\n    ## K8S\n    k8s.node-controller-image={{ .Values.common.imagePrefix }}{{.Values.nodeController.image}}:{{.Values.common.imageTag}}\n    ## spring cloud\n    eureka.client.service-url.defaultZone=http://{{.Values.eureka.host}}:{{.Values.eureka.port}}/eureka/\n    logger.sql.level=info\napiTest:  # \u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\n  enabled: true\n  image: api-test\n  replicas: 1\n\nperformanceTest: # \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\n  enabled: true\n  image: performance-test\n  replicas: 1\n\nsystemSetting: # \u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\n  enabled: true\n  image: system-setting\n  replicas: 1\n\nprojectManagement: # \u9879\u76ee\u7ba1\u7406\u6a21\u5757,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\u9879\u76ee\u7ba1\u7406\u6a21\u5757\n  enabled: true\n  image: project-management\n  replicas: 1\n\nreportStat:  # \u62a5\u544a\u7ba1\u7406\u6a21\u5757,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\u62a5\u544a\u7ba1\u7406\u6a21\u5757\n  enabled: true\n  image: report-stat\n  replicas: 1\n\ntestTrack: # \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\n  enabled: true\n  image: test-track\n  replicas: 1\n\ngateway: # \u7f51\u5173,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\n  enabled: true\n  image: gateway\n  replicas: 1\n\neureka: # \u670d\u52a1\u6ce8\u518c\u4e2d\u5fc3,\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5\n  enabled: true\n  image: eureka\n  host: metersphere-eureka\n  port: 8761\n  replicas: 1\n\ndataStreaming: \n  enabled: true\n  image: data-streaming\n  replicas: 1\n  properties: |-\n    ## DATABASE\n    spring.datasource.url=jdbc:mysql://{{.Values.mysql.host}}:{{.Values.mysql.port}}/metersphere?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true\n    spring.datasource.username={{.Values.mysql.username}}\n    spring.datasource.password={{.Values.mysql.password}}\n    ## KAFKA\n    kafka.partitions=1\n    kafka.replicas=1\n    kafka.topic={{.Values.kafka.metricTopic}}\n    kafka.bootstrap-servers={{.Values.kafka.host}}:{{.Values.kafka.port}}\n    kafka.log.topic={{.Values.kafka.logTopic}}\n    kafka.test.topic={{.Values.kafka.testTopic}}\n    kafka.report.topic={{.Values.kafka.reportTopic}}\n    jmeter.report.granularity=5000\n    ## minio\n    minio.endpoint=http://{{.Values.minio.host}}:{{.Values.minio.port}}\n    minio.access-key={{.Values.minio.username}}\n    minio.secret-key={{.Values.minio.password}}\nnodeController:\n  enabled: true\n  image: node-controller\n  replicas: 1\n  properties: |-\n    ## TBD\njmeter:\n  image: jmeter-master\n  imageTag: 5.4.3-ms5-jdk11\n\nlogPersistence:\n  enabled: true\n  accessModes: ReadWriteOnce\n  size: 10Gi\n\ndataPersistence:\n  enabled: true\n  accessModes: ReadWriteOnce\n  size: 10Gi\n\nmysql:  # \u5f15\u7528\u5916\u90e8\u6570\u636e\u5e93\u65f6\uff0c\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5mysql\n  enabled: true\n  image: mysql\n  imageTag: \"8.0.30\"\n  host: metersphere-mysql\n  port: 3306\n  username: root\n  password: Password123@mysql\n  persistence:\n    enabled: true\n    accessModes: ReadWriteOnce\n    size: 20Gi\nminio:\n  enabled: true\n  image: minio\n  imageTag: \"latest\"\n  username: admin\n  password: Password123@minio\n  host: metersphere-minio\n  port: 9000\n  persistence:\n    enabled: true\n    accessModes: ReadWriteOnce\n    size: 20Gi\nredis:   # \u5f15\u7528\u5916\u90e8redis\u65f6\uff0c\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5redis\n  enabled: true\n  image: redis\n  imageTag: \"6.2.6\"\n  password: Password123@redis\n  host: metersphere-redis\n  port: 6379\n  database: 1\n  persistence:\n    enabled: true\n    accessModes: ReadWriteOnce\n    size: 10Gi\nkafka:   # \u5f15\u7528\u5916\u90e8kafka\u65f6\uff0c\u53ef\u4ee5\u4fee\u6539\u4e3afalse,\u542f\u52a8\u65f6\u4e0d\u518d\u5b89\u88c5kafka\n  enabled: true\n  fullnameOverride: metersphere-kafka\n  host: metersphere-kafka\n  port: 9092\n  metricTopic: JMETER_METRICS\n  logTopic: JMETER_LOGS\n  testTopic: LOAD_TESTS\n  reportTopic: JMETER_REPORTS\n  persistence:\n    enabled: false\n  logPersistence:\n    enabled: false\n  logFlushIntervalMessages: _10000\n  logFlushIntervalMs: 1000\n  logRetentionBytes: _1073741824\n  logRetentionCheckIntervalMs: 300000\n  logRetentionHours: 168\n  logSegmentBytes: _1073741824\n  maxMessageBytes: _1000012\n  livenessProbe:\n    initialDelaySeconds: 20\n    periodSeconds: 15\n    timeoutSeconds: 15\n  readinessProbe:\n    initialDelaySeconds: 20\n    periodSeconds: 15\n    timeoutSeconds: 15\n  externalAccess:\n    enabled: true\n    service:\n      type: NodePort\n      useHostIPs: true\n    autoDiscovery:\n      enabled: true\n  serviceAccount:\n    create: true\n  rbac:\n    create: true\n  zookeeper:\n    enabled: true\n    logLevel: ERROR\n    persistence:\n      enabled: false\n    fullnameOverride: metersphere-zookeeper\n  extraEnvVars:\n    - name: FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS\n      value: \"true\"\nzookeeper:\n  enabled: true\n
    "},{"location":"installation/kubernetes_installation/#51-kafka","title":"5.1 \u5f15\u7528\u5916\u90e8 Kafka","text":"
    vim values.yaml\n\u5c06 values.yaml \u4e2d zookeeper.enabled \u548c kafka.enabled \u6539\u4e3a false\ncommon.kafka.host\u3001common.kafka.port \u6539\u4e3a\u5916\u90e8 kafka \u7684\u5730\u5740\u548c\u7aef\u53e3\n
    "},{"location":"installation/kubernetes_installation/#52-mysql","title":"5.2 \u5f15\u7528\u5916\u90e8 MySQL","text":"
    vim values.yaml\n\u5c06 values.yaml \u4e2d mysql.enabled \u6539\u4e3a false\ncommon.host.host\u3001common.host.port\u3001common.host.username\u3001common.host.password \u6539\u4e3a\u5916\u90e8 mysql \u7684\u5730\u5740\u3001\u7aef\u53e3\u53ca\u7528\u6237\u540d\u3001\u5bc6\u7801\n
    "},{"location":"installation/kubernetes_installation/#53-redis","title":"5.3 \u5f15\u7528\u5916\u90e8 Redis","text":"
    vim values.yaml\n\u5c06 values.yaml \u4e2d redis.enabled \u6539\u4e3a false\ncommon.redis.host\u3001common.redis.port\u3001common.redis.password \u6539\u4e3a\u5916\u90e8 redis \u7684\u5730\u5740\u3001\u7aef\u53e3\u548c\u5bc6\u7801\n
    "},{"location":"installation/kubernetes_installation/#54-valueyaml","title":"5.4 \u4f7f\u7528\u4fee\u6539\u540e\u7684 value.yaml \u90e8\u7f72","text":"
    helm -n ms install metersphere ./metersphere-2.3.0.tgz -f values.yaml\n
    "},{"location":"installation/kubernetes_installation/#55-node-port","title":"5.5 \u521b\u5efa Node Port \u8bbf\u95ee\u65b9\u5f0f","text":"

    \u4f7f\u7528\u547d\u4ee4 kubectl get svc -n ms \u53ef\u67e5\u770b metersphere-gateway \u6240\u5360\u7528\u7684\u7aef\u53e3\u53f7\u3002\u5982\u679c\u4e0d\u4f7f\u7528 ingress \u7684\u8bbf\u95ee\u65b9\u5f0f\uff0c\u53ef\u4ee5\u521b\u5efa\u4e00\u4e2a nodeport\u3002

    vi ms-gateway-nodeport.yaml\n\napiVersion: v1\nkind: Service\nmetadata:\n  name: metersphere-gateway-nodeport\n  namespace: ms\nspec:\n  ports:\n    - name: metersphere-gateway\n      protocol: TCP\n      port: 8000\n      targetPort: 8000\n      nodePort: 30801\n  type: NodePort\n  selector:\n    app: metersphere-gateway\n\nkubectl create -f ms-gateway-nodeport.yaml \n

    \u8bbf\u95ee MeterSphere \u9875\u9762: http://nodeIP:30801

    "},{"location":"installation/network_port/","title":"\u7f51\u7edc\u7aef\u53e3\u8981\u6c42","text":"

    MeterSphere \u4f5c\u4e3a\u4e00\u7ad9\u5f0f\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\uff0c\u5176\u6b63\u5e38\u8fd0\u884c\u9700\u8981\u5f00\u653e\u5982\u4e0b\u7f51\u7edc\u7aef\u53e3\uff0c\u7ba1\u7406\u5458\u53ef\u6839\u636e\u5b9e\u9645\u73af\u5883\u4e2d MeterSphere \u7ec4\u4ef6\u90e8\u7f72\u7684\u65b9\u6848\uff0c\u5728\u7f51\u7edc\u4fa7\u548c\u4e3b\u673a\u4fa7\u5f00\u653e\u76f8\u5173\u7aef\u53e3\u3002

    \u7ec4\u4ef6 \u9ed8\u8ba4\u7aef\u53e3 \u8bf4\u660e GateWay 8081 API \u7f51\u5173\u9879\u76ee\uff0c\u6d4f\u89c8\u5668\u8bbf\u95ee\u7aef\u53e3 Node Controller 8082 \u4e3a\u63a5\u53e3\u6216\u8005\u6027\u80fd\u6d4b\u8bd5\u63d0\u4f9b\u72ec\u7acb\u8282\u70b9\u7c7b\u578b\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60 Prometheus 9090 \u6536\u96c6\u538b\u529b\u673a\u53ca\u88ab\u6d4b\u7cfb\u7edf\u7684\u76d1\u63a7\u6570\u636e Node Exporter 9100 \u7528\u4e8e\u91c7\u96c6 Node \u7684\u8fd0\u884c\u6307\u6807 Selenium Grid 4444 \u4e3a UI\u81ea\u52a8\u5316\u6d4b\u8bd5\u63d0\u4f9b\u8fd0\u884c\u73af\u5883\uff0c\u652f\u6301\u5206\u5e03\u5f0f\u62d3\u5c55 TCP Mock 10000-10010 TCP Mock \u5bf9\u5916\u63d0\u4f9b\u670d\u52a1\u9700\u8981\u5f00\u653e\u7684\u7aef\u53e3\u8303\u56f4 MySQL 3306 MeterSphere \u9ed8\u8ba4\u5b89\u88c5\u7684\u6570\u636e\u5e93\u5bf9\u5916\u63d0\u4f9b\u7684\u7aef\u53e3 Redis 6379 MeterSphere \u9ed8\u8ba4\u5b89\u88c5\u7684 Redis \u5bf9\u5916\u63d0\u4f9b\u7684\u7aef\u53e3 Minio 9000 MeterSphere \u9ed8\u8ba4\u5b89\u88c5\u7684\u5206\u5e03\u5f0f\u5bf9\u8c61\u5b58\u50a8\u5bf9\u5916\u63d0\u4f9b\u7684\u7aef\u53e3 Kafka 9092 MeterSphere \u9ed8\u8ba4\u5b89\u88c5\u7684\u6d88\u606f\u4e2d\u95f4\u4ef6\u5bf9\u5916\u63d0\u4f9b\u7684\u7aef\u53e3"},{"location":"installation/offline_installation/","title":"\u79bb\u7ebf\u5b89\u88c5","text":""},{"location":"installation/offline_installation/#1","title":"1 \u73af\u5883\u8981\u6c42","text":"

    \u90e8\u7f72\u670d\u52a1\u5668\u8981\u6c42

    • \u64cd\u4f5c\u7cfb\u7edf: CentOS 7.x / Redhat 7.x
    • CPU/\u5185\u5b58: \u6700\u4f4e\u8981\u6c42 4C8G \uff0c\u63a8\u8350 8C16G(\u4f01\u4e1a\u7248\u6700\u4f4e\u914d\u7f6e 8C16G)
    • \u78c1\u76d8\u7a7a\u95f4: 50G
    "},{"location":"installation/offline_installation/#2","title":"2 \u4e0b\u8f7d\u5b89\u88c5\u5305","text":"

    \u8bf7\u81ea\u884c\u4e0b\u8f7d MeterSphere \u6700\u65b0\u7248\u672c\u7684\u79bb\u7ebf\u5b89\u88c5\u5305\uff0c\u5e76\u590d\u5236\u5230\u76ee\u6807\u673a\u5668\u7684 /tmp \u76ee\u5f55\u4e0b\u3002 \u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://community.fit2cloud.com/#/products/metersphere/downloads

    "},{"location":"installation/offline_installation/#3","title":"3 \u89e3\u538b\u5b89\u88c5\u5305","text":"

    \u4ee5 root \u7528\u6237 ssh \u767b\u5f55\u5230\u76ee\u6807\u673a\u5668\uff0c \u5e76\u6267\u884c\u5982\u4e0b\u547d\u4ee4\u3002

    cd /tmp\n# \u89e3\u538b\u5b89\u88c5\u5305\ntar zxvf metersphere-offline-installer-v2.3.0.tar.gz\n

    "},{"location":"installation/offline_installation/#4","title":"4 \u4fee\u6539\u5b89\u88c5\u914d\u7f6e","text":""},{"location":"installation/offline_installation/#41","title":"4.1 \u4fee\u6539\u914d\u7f6e","text":"

    \u5728\u5b89\u88c5\u5305\u89e3\u538b\u540e\u7684\u76ee\u5f55\uff0c\u7f16\u8f91\u4fee\u6539\u5b89\u88c5\u53c2\u6570\u3002

    cd metersphere-offline-installer-v2.3.0\nvi install.conf\n

    "},{"location":"installation/offline_installation/#42","title":"4.2 \u5b89\u88c5\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e","text":"

    \u5b89\u88c5\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e

    \u5982\u679c\u65e0\u7279\u6b8a\u9700\u6c42\u53ef\u4ee5\u4e0d\u8fdb\u884c\u4fee\u6539\u91c7\u7528\u9ed8\u8ba4\u53c2\u6570\u5b89\u88c5\uff08\u9996\u6b21\u5b89\u88c5\u53ef\u4fee\u6539\u914d\u7f6e install.conf \u6587\u4ef6\u4e2d\u76f8\u5173\u914d\u7f6e\uff0c\u4fee\u6539\u5b8c\u540e\u6267\u884c /bin/bash install.sh \u547d\u4ee4\u8fdb\u884c\u5b89\u88c5\uff0c\u5df2\u5b89\u88c5\u6210\u529f\u5982\u9700\u518d\u4fee\u6539\u914d\u7f6e\u53c2\u6570\uff0c\u9700\u8981\u5230 ${MS_BASE}/metersphere/.env \u91cc\u4fee\u6539\uff0c\u4fee\u6539\u5b8c\u540e\u6267\u884c msctl reload \u5373\u53ef\u91cd\u65b0\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\uff09\u3002

    # \u57fa\u7840\u914d\u7f6e\n## \u5b89\u88c5\u8def\u5f84\uff0c MeterSphere \u914d\u7f6e\u53ca\u6570\u636e\u6587\u4ef6\u9ed8\u8ba4\u5c06\u5b89\u88c5\u5728 ${MS_BASE}/metersphere \u76ee\u5f55\u4e0b\nMS_BASE=/opt\n## MeterSphere \u4f7f\u7528\u7684 docker \u7f51\u7edc\u7f51\u6bb5\u4fe1\u606f\nMS_DOCKER_SUBNET=172.30.10.0/24\n## \u955c\u50cf\u524d\u7f00\uff0c MeterSphere \u76f8\u5173\u7ec4\u4ef6\u4f7f\u7528\u7684 Docker \u955c\u50cf\u524d\u7f00\uff0c \u4f8b\u5982 registry.cn-qingdao.aliyuncs.com/metersphere\nMS_IMAGE_PREFIX=registry.cn-qingdao.aliyuncs.com/metersphere\n## \u955c\u50cf\u6807\u7b7e\uff0c MeterSphere \u76f8\u5173\u7ec4\u4ef6\u4f7f\u7528\u7684 Docker \u955c\u50cf\u6807\u7b7e\nMS_IMAGE_TAG=v2.3.0\n## \u6027\u80fd\u6d4b\u8bd5\u4f7f\u7528\u7684 JMeter \u955c\u50cf\nMS_JMETER_IMAGE=${MS_IMAGE_PREFIX}/jmeter-master:5.5-ms2-jdk11\n## \u5b89\u88c5\u6a21\u5f0f allinone | server | node-controller | selenium-hub\uff0c \u5176\u4e2d selenium-hub \u548c node-controller \u53ef\u4ee5\u5355\u72ec\u5728\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u4f5c\u4e3a\u6267\u884c\u673a\u4f7f\u7528\nMS_INSTALL_MODE=allinone\n## MeterSphere \u4e3b\u7a0b\u5e8f\u7684 HTTP \u670d\u52a1\u76d1\u542c\u7aef\u53e3\nMS_SERVER_PORT=8081\n## MeterSphere Node-Controller \u7ec4\u4ef6\u7684 HTTP \u670d\u52a1\u76d1\u542c\u7aef\u53e3\nMS_NODE_CONTROLLER_PORT=8082\nMS_NODEEXPORTER_PORT=9100\n\n# \u6570\u636e\u5e93\u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8\u6570\u636e\u5e93\nMS_EXTERNAL_MYSQL=false\n## \u6570\u636e\u5e93\u5730\u5740\nMS_MYSQL_HOST=mysql\n## \u6570\u636e\u5e93\u7aef\u53e3\nMS_MYSQL_PORT=3306\n## \u6570\u636e\u5e93\u5e93\u540d\nMS_MYSQL_DB=metersphere\n## \u6570\u636e\u5e93\u7528\u6237\u540d\nMS_MYSQL_USER=root\n## \u6570\u636e\u5e93\u5bc6\u7801\nMS_MYSQL_PASSWORD=Password123@mysql\n\n# Prometheus \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8Prometheus\nMS_EXTERNAL_PROM=false\nMS_PROMETHEUS_PORT=9090\n\n# Redis \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8Redis\nMS_EXTERNAL_REDIS=false\n## Redis \u7aef\u53e3\nMS_REDIS_PORT=6379\n## Redis \u5bc6\u7801\nMS_REDIS_PASSWORD=Password123@redis\n## Redis\u5730\u5740\nMS_REDIS_HOST=$(hostname -I|cut -d\" \" -f 1)\n\n# Kafka \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8 Kafka\nMS_EXTERNAL_KAFKA=false\n## Kafka \u5730\u5740\nMS_KAFKA_HOST=10.1.*.*\n## Kafka \u7aef\u53e3\nMS_KAFKA_PORT=9092\n## \u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_TOPIC=JMETER_METRICS\n## \u6027\u80fd\u6d4b\u8bd5\u65e5\u5fd7\u6570\u636e\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_LOG_TOPIC=JMETER_LOGS\n## \u6027\u80fd\u6d4b\u8bd5\u5b9a\u65f6\u4efb\u52a1\u901a\u77e5\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_TEST_TOPIC=LOAD_TESTS\n## \u91cd\u6784\u540e\u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_REPORT_TOPIC=JMETER_REPORTS\n\n# UI\u5bb9\u5668\u914d\u7f6e\n## \u662f\u5426\u542f\u52a8UI\u6a21\u5757\nMS_UI_ENABLED=false\n## \u662f\u5426\u542f\u52a8\u5de5\u4f5c\u53f0\u5bb9\u5668\nMS_WORKSTATION_ENABLED=false\n\n# minio \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8minio\nMS_EXTERNAL_MINIO=false\n## minio \u5730\u5740\nMS_MINIO_ENDPOINT=http://minio:9000\n## minio access\nMS_MINIO_ACCESS_KEY=admin\n## minio \u5bc6\u7801\nMS_MINIO_SECRET_KEY=Password123@minio\n\n# \u4fee\u6539\u7ec4\u4ef6\u6700\u5927\u5185\u5b58\u9650\u5236\uff08v2.7\u4ee5\u4e0a\u53ef\u4ee5\u5728 /opt/metersphere/.env \u91cc\u4fee\u6539\u67d0\u5bb9\u5668\u670d\u52a1\u7684\u6700\u5927\u5185\u5b58\u9650\u5236\uff0c\u5728/opt/metersphere/ \u76ee\u5f55\u4e0b\u7684docker-compose\u5206\u522b\u5b9a\u4e49\u5404\u81ea\u670d\u52a1\u7684\u6700\u5927\u5c5e\u6027\u503c\uff0c\u5982 api-test \u7684\u5c5e\u6027\u5728 docker-compose-api-test.yml \u4e2d\u5b9a\u4e49\uff0c\u4e3a MS_API_MEM_LIMIT\uff09\nMS_API_MEM_LIMIT=1073741824\uff08\u9ed8\u8ba4\u4e3a 1g\uff09\n

    "},{"location":"installation/offline_installation/#43","title":"4.3 \u6570\u636e\u5e93\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e","text":"

    \u6ce8\u610f

    MeterSphere \u4f7f\u2f64 MySQL 8.0 \u5bf9\u7cfb\u7edf\u6570\u636e\u8fdb\u2f8f\u5b58\u50a8\u3002\u540c\u65f6 MeterSphere \u5bf9\u6570\u636e\u5e93\u90e8\u5206\u914d\u7f6e\u9879\u6709\u8981\u6c42\uff0c\u8bf7\u53c2\u8003\u4e0b\u9644\u7684\u6570\u636e\u5e93\u914d\u7f6e\uff0c\u4fee\u6539\u73af\u5883\u4e2d\u7684\u6570\u636e\u5e93\u914d\u7f6e\u6587\u4ef6\u3002

    [mysqld]\ndatadir=/var/lib/mysql\n\ndefault-storage-engine=INNODB\ncharacter_set_server=utf8mb4\nlower_case_table_names=1\nperformance_schema=off\ntable_open_cache=128\ntransaction_isolation=READ-COMMITTED\nmax_connections=1000\nmax_connect_errors=6000\nmax_allowed_packet=64M\ninnodb_file_per_table=1\ninnodb_buffer_pool_size=512M\ninnodb_flush_method=O_DIRECT\ninnodb_lock_wait_timeout=1800\n\nserver-id=1\nlog-bin=mysql-bin\nexpire_logs_days = 2\nbinlog_format=mixed\n\ncharacter-set-client-handshake = FALSE\ncharacter-set-server=utf8mb4\ncollation-server=utf8mb4_general_ci\ninit_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci'\n\nsql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\n\nskip-name-resolve\n\n[mysql]\ndefault-character-set=utf8mb4\n\n[mysql.server]\ndefault-character-set=utf8mb4\n

    \u8bf7\u53c2\u8003\u6587\u6863\u4e2d\u7684\u5efa\u5e93\u8bed\u53e5\u521b\u5efa MeterSphere \u4f7f\u7528\u7684\u6570\u636e\u5e93\uff0cmetersphere-server \u670d\u52a1\u542f\u52a8\u65f6\u4f1a\u81ea\u52a8\u5728\u914d\u7f6e\u7684\u5e93\u4e2d\u521b\u5efa\u6240\u9700\u7684\u8868\u7ed3\u6784\u53ca\u521d\u59cb\u5316\u6570\u636e\u3002

    CREATE DATABASE `metersphere` /*!40100 DEFAULT CHARACTER SET utf8mb4 */\n

    \u5b89\u88c5\u811a\u672c\u9ed8\u8ba4\u4f7f\u7528 /opt/metersphere \u76ee\u5f55\u4f5c\u4e3a\u5b89\u88c5\u76ee\u5f55\uff0cMeterSphere \u7684\u914d\u7f6e\u6587\u4ef6\u3001\u6570\u636e\u53ca\u65e5\u5fd7\u7b49\u5747\u5b58\u653e\u5728\u8be5\u5b89\u88c5\u76ee\u5f55\u3002

    "},{"location":"installation/offline_installation/#44","title":"4.4 \u5b89\u88c5\u76ee\u5f55\u7ed3\u6784\u8bf4\u660e","text":"

    \u5b89\u88c5\u76ee\u5f55\u7ed3\u6784\u8bf4\u660e

    /opt/metersphere/\n\u251c\u2500\u2500 bin                                         #-- \u5b89\u88c5\u8fc7\u7a0b\u4e2d\u9700\u8981\u52a0\u8f7d\u5230\u5bb9\u5668\u4e2d\u7684\u811a\u672c\n\u251c\u2500\u2500 compose_files                               #-- \u6839\u636e\u4e0d\u540c\u7684\u5b89\u88c5\u6a21\u5f0f\uff0c\u4fdd\u5b58\u9700\u8981\u4f7f\u7528\u5230\u7684 compose \u6587\u4ef6\u4fe1\u606f\n\u251c\u2500\u2500 conf                                        #-- MeterSphere \u5404\u7ec4\u4ef6\u53ca\u6570\u636e\u5e93\u7b49\u4e2d\u95f4\u4ef6\u7684\u914d\u7f6e\u6587\u4ef6\n\u251c\u2500\u2500 data                                        #-- MeterSphere \u5404\u7ec4\u4ef6\u53ca\u6570\u636e\u5e93\u7b49\u4e2d\u95f4\u4ef6\u7684\u6570\u636e\u6301\u4e45\u5316\u76ee\u5f55\n\u251c\u2500\u2500 docker-compose-gateway.yml                  #-- MeterSphere \u7684 API \u7f51\u5173\n\u251c\u2500\u2500 docker-compose-eureka.yml                   #-- MeterSphere \u7684\u670d\u52a1\u6ce8\u518c\u4e2d\u5fc3\n\u251c\u2500\u2500 docker-compose-base.yml                     #-- MeterSphere \u57fa\u7840 Docker Compose \u6587\u4ef6\uff0c\u5b9a\u4e49\u4e86\u7f51\u7edc\u7b49\u57fa\u7840\u4fe1\u606f \n\u251c\u2500\u2500 docker-compose-workstation.yml              #-- MeterSphere \u5de5\u4f5c\u53f0\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-test-track.yml               #-- MeterSphere \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-api-test.yml                 #-- MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-ui-test.yml                  #-- MeterSphere UI \u6d4b\u8bd5\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-performance-test.yml         #-- MeterSphere \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-report-stat.yml              #-- MeterSphere \u62a5\u8868\u7edf\u8ba1\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-project-management.yml       #-- MeterSphere \u9879\u76ee\u7ba1\u7406\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-system-setting.yml           #-- MeterSphere \u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-kafka.yml                    #-- MeterSphere \u81ea\u5e26\u7684 Kafka \u6240\u9700\u7684 Docker Compose \u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-mysql.yml                    #-- MeterSphere \u81ea\u5e26\u7684 MySQL \u6240\u9700\u7684 Docker Compose \u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-node-controller.yml          #-- MeterSphere Node-Controller \u7ec4\u4ef6\u6240\u9700\u7684 Docker Compose\u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-redis.yml                    #-- MeterSphere Redis \u7ec4\u4ef6\u6240\u9700\u7684 Docker Compose\u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-minio.yml                    #-- MeterSphere \u81ea\u5e26\u7684\u5206\u5e03\u5f0f\u5bf9\u8c61\u5b58\u50a8\u670d\u52a1\n\u251c\u2500\u2500 docker-compose-prometheus.yml               #-- MeterSphere Prometheus \u7ec4\u4ef6\u6240\u9700\u7684Docker Compose \u6587\u4ef6\n\u251c\u2500\u2500 install.conf -> /opt/metersphere/.env       #-- MeterSphere \u7684\u914d\u7f6e\u6587\u4ef6 /opt/metersphere/.env \u7684\u8f6f\u94fe\u63a5\n\u251c\u2500\u2500 logs                                        #-- MeterSphere \u5404\u7ec4\u4ef6\u7684\u65e5\u5fd7\u6587\u4ef6\u6301\u4e45\u5316\u76ee\u5f55\n\u2514\u2500\u2500 version                                     #-- \u5b89\u88c5\u5305\u5bf9\u5e94\u7684 MeterSphere \u7248\u672c\u4fe1\u606f\n
    "},{"location":"installation/offline_installation/#5","title":"5 \u6267\u884c\u5b89\u88c5\u811a\u672c","text":"
    # \u8fdb\u5165\u5b89\u88c5\u5305\u76ee\u5f55\ncd metersphere-offline-installer-v2.3.0\n# \u8fd0\u884c\u5b89\u88c5\u811a\u672c\n/bin/bash install.sh\n

    \u6267\u884c\u5b8c\u5b89\u88c5\u811a\u672c\u540e\uff0c\u4f1a\u5b89\u88c5\u955c\u50cf\uff0c\u7b49\u63d0\u793a\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u4f7f\u7528 msctl status \u67e5\u770b\u670d\u52a1\u5404\u4e2a\u7ec4\u4ef6\u72b6\u6001\u3002

    \u7b49\u5f85\u51e0\u5206\u949f\u540e\uff0c\u4f7f\u7528\u547d\u4ee4 msctl status \u68c0\u67e5\u670d\u52a1\u8fd0\u884c\u60c5\u51b5\uff0c\u82e5\u5404\u4e2a\u7ec4\u4ef6\u90fd\u662f healthy \u72b6\u6001\uff0c\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u5982\u4e0b\u9875\u9762\u767b\u5f55 MeterSphere\u3002

    \u8bf7\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u8bbf\u95ee:\n\n URL: http://\u670d\u52a1\u5668IP:8081\n \u7528\u6237\u540d: admin\n \u521d\u59cb\u5bc6\u7801: metersphere\n
    \u4f01\u4e1a\u7528\u6237\u5347\u7ea7\u540e\u9700\u624b\u52a8\u8bbe\u7f6e ${MS_BASE}/metersphere/install.conf \u4e2d\u7684 MS_UI_ENABLED=true \u5e76\u6267\u884c msctl reload \u6765\u5f00\u542f UI \u529f\u80fd

    "},{"location":"installation/offline_installation/#6","title":"6 \u914d\u7f6e\u53cd\u5411\u4ee3\u7406","text":"

    \u6ce8\u610f

    \u5982\u679c\u4f7f\u7528\u4e86 Nginx\u3001HAProxy \u8fdb\u884c\u53cd\u5411\u4ee3\u7406\u914d\u7f6e\uff0c\u9700\u8981\u589e\u52a0\u5bf9 websocket \u7684\u652f\u6301\u3002\u4ee5 Nginx \u4e3a\u4f8b\uff0c\u53c2\u8003\u914d\u7f6e\u5982\u4e0b:

    server {\n    listen 80;\n    server_name demo.metersphere.com;\n    server_tokens off;\n    return 301 https://$host$request_uri;\n}\nserver {\n    listen 443 ssl;\n    # RSA certificate\n    ssl_certificate /etc/nginx/ssl/metersphere.com/fullchain.cer; # managed by Certbot\n    ssl_certificate_key /etc/nginx/ssl/metersphere.com/metersphere.com.key; # managed by Certbot\n    server_name  demo.metersphere.com;\n    proxy_connect_timeout       300;\n    proxy_send_timeout          300;\n    proxy_read_timeout          300;\n    send_timeout                300;\n    proxy_set_header Host $host;\n    proxy_set_header X-Forwarded-For $remote_addr;\n    proxy_set_header X-Forwarded-Host $server_name;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-Proto $scheme;\n    proxy_redirect http:// $scheme://;\n\n    location / {\n        proxy_pass http://ip:8081;\n        client_max_body_size 1000m;\n        #access_log off;\n\n        # \u914d\u7f6e websocket \u652f\u6301\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n    }\n}\n

    "},{"location":"installation/offline_installation_mac/","title":"MacOS \u5355\u673a\u90e8\u7f72","text":""},{"location":"installation/offline_installation_mac/#1","title":"1 \u73af\u5883\u8981\u6c42","text":"

    \u90e8\u7f72\u670d\u52a1\u5668\u8981\u6c42

    • \u64cd\u4f5c\u7cfb\u7edf: \u53ef\u8fd0\u884c Docker \u7684 Mac \u64cd\u4f5c\u7cfb\u7edf
    • CPU/\u5185\u5b58: \u6700\u4f4e\u8981\u6c42 4C8G\uff0c\u63a8\u8350 8C16G (\u4f01\u4e1a\u7248\u6700\u4f4e\u914d\u7f6e 8C16G)
    • \u78c1\u76d8\u7a7a\u95f4: 50G
    "},{"location":"installation/offline_installation_mac/#2","title":"2 \u5b89\u88c5\u90e8\u7f72","text":""},{"location":"installation/offline_installation_mac/#21-docker","title":"2.1 \u5b89\u88c5 Docker","text":"

    \u5728\u5e94\u7528\u5546\u5e97\u4e0b\u8f7d Docker \u8fdb\u884c\u5b89\u88c5\uff0c\u5b89\u88c5\u540e\u5e76\u542f\u52a8 Docker

    "},{"location":"installation/offline_installation_mac/#22-docker","title":"2.2 Docker \u8bbe\u7f6e","text":"

    \u8fdb\u884c Docker \u8bbe\u7f6e\uff0c\u9700\u8981\u6dfb\u52a0 /opt/metersphere \u8def\u5f84

    "},{"location":"installation/offline_installation_mac/#23-metersphere","title":"2.3 \u5b89\u88c5 MeterSphere","text":"

    \u4e0b\u8f7d\u5b89\u88c5\u5305\uff0c\u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://community.fit2cloud.com/#/products/metersphere/downloads

    \u89e3\u538b\u5b89\u88c5\u5305

    \u8fdb\u5165\u89e3\u538b\u597d\u7684\u5b89\u88c5\u5305\u76ee\u5f55

    \u6267\u884c\u5b89\u88c5\u547d\u4ee4 sh install.sh\uff0c\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u7684\u63d0\u793a\uff0c\u8f93\u5165 y

    \u5b89\u88c5\u5b8c\u6210\uff0c\u4f7f\u7528 docker ps \u67e5\u770b\u540e\u53f0\u670d\u52a1\u90fd\u4e3a healthy \u72b6\u6001\uff0c\u5219\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u5982\u4e0b\u5730\u5740\u8bbf\u95ee MeterSphere

    \u5730\u5740: http://\u76ee\u6807\u670d\u52a1\u5668IP\u5730\u5740:\u670d\u52a1\u8fd0\u884c\u7aef\u53e3\n\u7528\u6237\u540d: admin\n\u5bc6\u7801: metersphere\n

    "},{"location":"installation/offline_installation_windows/","title":"Windows \u5355\u673a\u90e8\u7f72","text":""},{"location":"installation/offline_installation_windows/#1","title":"1 \u73af\u5883\u8981\u6c42","text":"

    \u5f97\u76ca\u4e8e Docker \u8de8\u5e73\u53f0\u5e94\u7528\uff0cMeterSphere \u7406\u8bba\u4e0a\u53ef\u4ee5\u90e8\u7f72\u5728\u4efb\u4f55\u53ef\u4ee5\u8fd0\u884c Docker \u7684\u5bbf\u4e3b\u673a\uff0c\u5305\u62ec Windows \u64cd\u4f5c\u7cfb\u7edf\u7684\u4e3b\u673a\u3002\u5c06\u4ee5 Windows 10 \u4e3a\u4f8b\uff0c\u4ecb\u7ecd\u5982\u4f55\u5728 Windows \u64cd\u4f5c\u7cfb\u7edf\u901a\u8fc7 WSL \u4e0a\u5b89\u88c5 MeterSphere\u3002

    \u90e8\u7f72\u670d\u52a1\u5668\u8981\u6c42\uff1a

    • \u64cd\u4f5c\u7cfb\u7edf: \u53ef\u8fd0\u884c Docker \u7684 Windows \u64cd\u4f5c\u7cfb\u7edf
    • CPU/\u5185\u5b58: \u6700\u4f4e\u8981\u6c42 4C8G\uff0c\u63a8\u8350 8C16G (\u4f01\u4e1a\u7248\u6700\u4f4e\u914d\u7f6e 8C16G)
    • \u78c1\u76d8\u7a7a\u95f4: 200G

    \u6ce8\u610f\uff1a

    • WSL \u9700\u8981\u652f\u6301\u5d4c\u5957\u865a\u62df\u5316\uff0c\u4e91\u865a\u62df\u673a(Windows)\u53ef\u80fd\u4e0d\u652f\u6301\u800c\u5bfc\u81f4\u65e0\u6cd5\u5b89\u88c5 MeterSphere
    "},{"location":"installation/offline_installation_windows/#2","title":"2 \u5b89\u88c5\u90e8\u7f72","text":""},{"location":"installation/offline_installation_windows/#21-wsl","title":"2.1 \u5b89\u88c5 WSL","text":"

    \u53c2\u8003\u5728 Windows 10 \u4e0a\u5b89\u88c5 WSL | Microsoft Docs\u8fdb\u884c Windows \u5bbf\u4e3b\u673a WSL \u7684\u5b89\u88c5\u548c\u914d\u7f6e\u3002

    \u4f7f\u7528\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u7136\u540e\u91cd\u542f\u64cd\u4f5c\u7cfb\u7edf\u3002

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart\ndism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart\n

    \u4e0b\u8f7d\u5e76\u5b89\u88c5 \u9002\u7528\u4e8e x64 \u8ba1\u7b97\u673a\u7684 WSL2 Linux \u5185\u6838\u66f4\u65b0\u5305

    \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u8bbe\u7f6e WSL \u9ed8\u8ba4\u7248\u672c\uff1a

    wsl --set-default-version 2\n

    "},{"location":"installation/offline_installation_windows/#22-ubuntu","title":"2.2 \u5b89\u88c5 Ubuntu","text":"

    \u5728 Windows 10 \u7684\u5e94\u7528\u5546\u5e97\u91cc\u641c\u7d22\"Ubuntu\"\u5e76\u5b89\u88c5\uff1a

    "},{"location":"installation/offline_installation_windows/#23-ubuntu-wsl","title":"2.3 \u68c0\u6d4b Ubuntu WSL \u7248\u672c","text":"

    \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u6267\u884c\uff1a

    wsl.exe -l -v\n

    \u793a\u4f8b\u4e2d\u5b89\u88c5\u7684 Ubuntu Name \u4e3a \"Ubuntu\"\uff0c \u5982\u50cf\u4e0a\u56fe\u51fa\u73b0 Ubuntu \u7248\u672c\u4e3a 1\uff0c \u5219\u7ee7\u7eed\u6267\u884c\u547d\u4ee4\uff1a

    wsl.exe --set-version Ubuntu 2\n

    \u51fa\u73b0\u4e0b\u56fe\u7ed3\u679c\u5373\u4e3a\u6210\u529f\uff1a

    "},{"location":"installation/offline_installation_windows/#24-docker","title":"2.4 Docker \u5b89\u88c5\u4e0e\u914d\u7f6e","text":"

    \u4e0b\u8f7dDocker Desktop for Windows\uff0c\u53cc\u51fb Docker Desktop Installer.exe \u5b8c\u6210docker \u7684\u5b89\u88c5\u3002

    Docker Desktop \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u8fdb\u5165 Settings \u754c\u9762\uff0c\u9009\u62e9 Resources \u83dc\u5355\u4e0b\u7684 WSL INTEGRATION\uff0c\u6309\u4e0b\u56fe\u8bbe\u7f6e\u540e\uff0c\u70b9\u51fb\u53f3\u4e0b\u89d2\u7684Apply & Restart\u3002

    "},{"location":"installation/offline_installation_windows/#25-ubuntu","title":"2.5 \u542f\u52a8 Ubuntu","text":"

    \u5728\u5e94\u7528\u5546\u5e97\u91cc\uff0c\u9009\u62e9 Ubuntu\uff0c\u70b9\u51fb\"\u542f\u52a8\"\u6309\u94ae\u542f\u52a8 Ubuntu\uff0c\u5e76\u6267\u884c sudo su \u547d\u4ee4\u5207\u6362\u5230 root \u7528\u6237\uff1a

    `

    "},{"location":"installation/offline_installation_windows/#26-docker","title":"2.6 \u68c0\u67e5 Docker \u73af\u5883","text":"

    \u5728 Ubuntu \u547d\u4ee4\u884c\u4e2d\u6267\u884c\u547d\u4ee4docker version\uff0c\u5982\u80fd\u50cf\u4e0b\u56fe\u4e00\u6837\u6b63\u5e38\u663e\u793a docker \u7248\u672c\u4fe1\u606f\uff0c\u5219\u80fd\u6b63\u5e38\u6267\u884c MeterSphere \u540e\u7eed\u7684\u5b89\u88c5\u64cd\u4f5c\uff0c\u5982\u51fa\u73b0\u5f02\u5e38\uff0c\u5219\u9700\u8981\u6839\u636e\u63d0\u793a\u4fe1\u606f\u89e3\u51b3\u3002

    "},{"location":"installation/offline_installation_windows/#27","title":"2.7 \u4e0b\u8f7d\u5b89\u88c5\u5305","text":"

    \u5728 \u98de\u81f4\u4e91\u5f00\u6e90\u793e\u533a \u6216 MeterSphere Github Release \u4e0b\u8f7d MeterSphere \u6700\u65b0\u7248\u672c\u7684\u79bb\u7ebf\u5b89\u88c5\u5305\u3002

    "},{"location":"installation/offline_installation_windows/#28","title":"2.8 \u89e3\u538b\u5b89\u88c5\u5305","text":"

    \u5728 Ubuntu \u4e2d\uff0c\u4ee5 root \u7528\u6237\u6267\u884c\u5982\u4e0b\u547d\u4ee4\uff1a

    # \u5047\u8bbe\u5b89\u88c5\u5305\u5b58\u653e\u8def\u5f84\u4e3a c:\\metersphere-offline-installer-v2.10.0.tar.gz\ncd /mnt/c\n# \u89e3\u538b\u5b89\u88c5\u5305\ntar zxvf metersphere-offline-installer-v2.10.0.tar.gz\n

    "},{"location":"installation/offline_installation_windows/#29","title":"2.9 \u914d\u7f6e\u5b89\u88c5\u53c2\u6570\uff08\u53ef\u9009\uff09","text":"

    MeterSphere \u652f\u6301\u4ee5\u914d\u7f6e\u6587\u4ef6\u7684\u5f62\u5f0f\u6765\u8bbe\u7f6e\u5b89\u88c5\u53c2\u6570\uff0c\u5982\u5b89\u88c5\u76ee\u5f55\u3001\u670d\u52a1\u8fd0\u884c\u7aef\u53e3\u3001\u6570\u636e\u5e93\u914d\u7f6e\u53c2\u6570\u7b49\uff0c\u5b89\u88c5\u524d\u4fee\u6539\u5b89\u88c5\u5305\u4e2d\u7684 install.conf \u6587\u4ef6\u53ef\u5b8c\u6210\u914d\u7f6e\u3002\u5177\u4f53\u8bf4\u660e\u89c1\uff1a\u5b89\u88c5\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e\u3002

    "},{"location":"installation/offline_installation_windows/#210","title":"2.10 \u6267\u884c\u5b89\u88c5\u811a\u672c","text":"
    # \u8fdb\u5165\u5b89\u88c5\u5305\u76ee\u5f55\ncd metersphere-offline-installer-v2.10.0\n# \u8fd0\u884c\u5b89\u88c5\u811a\u672c\n/bin/bash install.sh\n

    \u5b89\u88c5\u6210\u529f\u540e\uff0c\u4f7f\u7528 msctl status \u67e5\u770b\u540e\u53f0\u670d\u52a1\u72b6\u6001\uff0c\u5f85\u6240\u6709\u670d\u52a1\u8fd0\u884c\u72b6\u6001\u90fd\u4e3a healthy \u540e\uff0c\u5219\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee MeterSphere\u3002

    \u5730\u5740: http://\u76ee\u6807\u670d\u52a1\u5668IP\u5730\u5740:\u670d\u52a1\u8fd0\u884c\u7aef\u53e3\n\u7528\u6237\u540d: admin\n\u5bc6\u7801: metersphere\n

    "},{"location":"installation/offline_upgrade/","title":"\u79bb\u7ebf\u5347\u7ea7","text":"

    \u6ce8\u610f

    \u5347\u7ea7\u524d\u4e00\u5b9a\u8981\u8fdb\u884c\u6570\u636e\u5e93\u5907\u4efd\uff0c\u8be6\u7ec6\u64cd\u4f5c\u8bf7\u53c2\u8003 MeterSphere \u6570\u636e\u5907\u4efd\u3002

    "},{"location":"installation/offline_upgrade/#1","title":"1 \u4e0b\u8f7d\u5e76\u89e3\u538b\u5b89\u88c5\u5305","text":"

    \u6309\u7167\u672c\u6587\u6863 \u79bb\u7ebf\u5b89\u88c5 \u6b65\u9aa4\uff0c \u4e0b\u8f7d\u65b0\u7248\u672c\u5b89\u88c5\u5305\u5e76\u4e0a\u4f20\u89e3\u538b\u540e, \u91cd\u65b0\u6267\u884c\u5b89\u88c5\u547d\u4ee4\u8fdb\u884c\u5347\u7ea7\u3002 \u3010\u6ce8\u610f\u3011\u5982\u679c\u5347\u7ea7\u7248\u672c\u8de8\u5ea6\u8f83\u5927\uff1a\u5982 V1.x \u5347\u7ea7\u81f3 V2.x \u6700\u65b0\u7248\u672c\uff0c\u7531\u4e8e\u8de8\u591a\u7248\u672c\u65b0\u589e\u529f\u80fd\u8f83\u591a\uff0c\u4e14 v2.8.1 \u4e4b\u540edocker \u4f7f\u7528\u7248\u672c\u5347\u7ea7\uff0c\u8bf7\u6309\u7167\u5347\u7ea7\u6307\u5357\u64cd\u4f5c\uff1a MeterSphere 1.20 LTS \u81f32.10 LTS \u5347\u7ea7\u6307\u5357\u3002\u5982\u679c\u5347\u7ea7\u7248\u672c\u8de8\u5ea6\u4e0d\u5927\uff0c\u5219\u6309\u7167\u4e0b\u9762\u8bf4\u660e\u5347\u7ea7\u5373\u53ef\u3002

    "},{"location":"installation/offline_upgrade/#2","title":"2 \u6267\u884c\u5b89\u88c5\u547d\u4ee4","text":"
    #\u5347\u7ea7\u524d\u505c\u6b62\u670d\u52a1\nmsctl stop\n\nMeterSphere \u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://github.com/metersphere/metersphere/releases\n\n# \u4e0b\u8f7d\u79bb\u7ebf\u5b89\u88c5\u5305\nwget https://github.com/metersphere/metersphere/releases/download/v2.x.y/metersphere-offline-installer-v2.x.y.tar.gz\n\n# \u89e3\u538b\u5b89\u88c5\u5305\ntar -zxvf metersphere-offline-installer-v2.x.y.tar.gz\n\n# \u8fdb\u5165\u79bb\u7ebf\u90e8\u7f72\u5305\u89e3\u538b\u7f29\u76ee\u5f55\ncd metersphere-offline-installer-v2.x.y\n\n# \u8fd0\u884c\u5b89\u88c5\u811a\u672c\n/bin/bash install.sh\n\n# \u67e5\u770b MeterSphere \u72b6\u6001\nmsctl status\n
    "},{"location":"installation/online_installation/","title":"\u5728\u7ebf\u5b89\u88c5","text":""},{"location":"installation/online_installation/#1","title":"1 \u73af\u5883\u8981\u6c42","text":"

    \u90e8\u7f72\u670d\u52a1\u5668\u8981\u6c42

    • \u64cd\u4f5c\u7cfb\u7edf: CentOS 7.x / Redhat 7.x
    • CPU/\u5185\u5b58: \u6700\u4f4e\u8981\u6c42 4C8G\uff0c\u63a8\u8350 8C16G (\u4f01\u4e1a\u7248\u6700\u4f4e\u914d\u7f6e 8C16G)
    • \u78c1\u76d8\u7a7a\u95f4: 50G
    • \u7f51\u7edc\u8981\u6c42\uff1a\u53ef\u8bbf\u95ee\u4e92\u8054\u7f51
    • \u6ce8\uff1a\u5982\u7528\u4e8e\u751f\u4ea7\u73af\u5883\uff0c\u63a8\u8350\u4f7f\u7528 \u79bb\u7ebf\u5b89\u88c5\u5305 \u8fdb\u884c\u90e8\u7f72
    "},{"location":"installation/online_installation/#2","title":"2 \u4e00\u952e\u5b89\u88c5","text":"

    \u5728\u670d\u52a1\u5668\u4e0a\u4ee5 root \u7528\u6237\u6267\u884c\u5982\u4e0b\u547d\u4ee4\u4e00\u952e\u5b89\u88c5 MeterSphere\u3002

    curl -sSL https://resource.fit2cloud.com/metersphere/metersphere/releases/latest/download/quick_start.sh | bash\n

    \u5b89\u88c5\u6210\u529f\u540e\uff0c\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u5982\u4e0b\u9875\u9762\u767b\u5f55 MeterSphere\u3002

    \u5730\u5740: http://\u76ee\u6807\u670d\u52a1\u5668IP\u5730\u5740:8081\n\u7528\u6237\u540d: admin\n\u5bc6\u7801: metersphere\n

    \u5b89\u88c5\u811a\u672c\u9ed8\u8ba4\u4f7f\u7528 /opt/metersphere \u76ee\u5f55\u4f5c\u4e3a\u5b89\u88c5\u76ee\u5f55\uff0cMeterSphere \u7684\u914d\u7f6e\u6587\u4ef6\u3001\u6570\u636e\u53ca\u65e5\u5fd7\u7b49\u5747\u5b58\u653e\u5728\u8be5\u5b89\u88c5\u76ee\u5f55\u3002

    \u5b89\u88c5\u76ee\u5f55\u76ee\u5f55\u7ed3\u6784\u8bf4\u660e

    /opt/metersphere/\n\u251c\u2500\u2500 bin                                         #-- \u5b89\u88c5\u8fc7\u7a0b\u4e2d\u9700\u8981\u52a0\u8f7d\u5230\u5bb9\u5668\u4e2d\u7684\u811a\u672c\n\u251c\u2500\u2500 compose_files                               #-- \u6839\u636e\u4e0d\u540c\u7684\u5b89\u88c5\u6a21\u5f0f\uff0c\u4fdd\u5b58\u9700\u8981\u4f7f\u7528\u5230\u7684 compose \u6587\u4ef6\u4fe1\u606f\n\u251c\u2500\u2500 conf                                        #-- MeterSphere \u5404\u7ec4\u4ef6\u53ca\u6570\u636e\u5e93\u7b49\u4e2d\u95f4\u4ef6\u7684\u914d\u7f6e\u6587\u4ef6\n\u251c\u2500\u2500 data                                        #-- MeterSphere \u5404\u7ec4\u4ef6\u53ca\u6570\u636e\u5e93\u7b49\u4e2d\u95f4\u4ef6\u7684\u6570\u636e\u6301\u4e45\u5316\u76ee\u5f55\n\u251c\u2500\u2500 docker-compose-gateway.yml                  #-- MeterSphere \u7684 API \u7f51\u5173\n\u251c\u2500\u2500 docker-compose-eureka.yml                   #-- MeterSphere \u7684\u670d\u52a1\u6ce8\u518c\u4e2d\u5fc3\n\u251c\u2500\u2500 docker-compose-base.yml                     #-- MeterSphere \u57fa\u7840 Docker Compose \u6587\u4ef6\uff0c\u5b9a\u4e49\u4e86\u7f51\u7edc\u7b49\u57fa\u7840\u4fe1\u606f \n\u251c\u2500\u2500 docker-compose-workstation.yml              #-- MeterSphere \u5de5\u4f5c\u53f0\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-test-track.yml               #-- MeterSphere \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-api-test.yml                 #-- MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-ui-test.yml                  #-- MeterSphere UI \u6d4b\u8bd5\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6 \n\u251c\u2500\u2500 docker-compose-performance-test.yml         #-- MeterSphere \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-report-stat.yml              #-- MeterSphere \u62a5\u8868\u7edf\u8ba1\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-project-management.yml       #-- MeterSphere \u9879\u76ee\u7ba1\u7406\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-system-setting.yml           #-- MeterSphere \u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\u7684 Docker Compose \u6587\u4ef6  \n\u251c\u2500\u2500 docker-compose-kafka.yml                    #-- MeterSphere \u81ea\u5e26\u7684 Kafka \u6240\u9700\u7684 Docker Compose \u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-mysql.yml                    #-- MeterSphere \u81ea\u5e26\u7684 MySQL \u6240\u9700\u7684 Docker Compose \u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-node-controller.yml          #-- MeterSphere Node-Controller \u7ec4\u4ef6\u6240\u9700\u7684 Docker Compose\u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-redis.yml                    #-- MeterSphere Redis \u7ec4\u4ef6\u6240\u9700\u7684 Docker Compose\u6587\u4ef6\n\u251c\u2500\u2500 docker-compose-minio.yml                    #-- MeterSphere \u81ea\u5e26\u7684\u5206\u5e03\u5f0f\u5bf9\u8c61\u5b58\u50a8\u670d\u52a1\n\u251c\u2500\u2500 docker-compose-prometheus.yml               #-- MeterSphere Prometheus \u7ec4\u4ef6\u6240\u9700\u7684Docker Compose \u6587\u4ef6\n\u251c\u2500\u2500 install.conf -> /opt/metersphere/.env       #-- MeterSphere \u7684\u914d\u7f6e\u6587\u4ef6 /opt/metersphere/.env \u7684\u8f6f\u94fe\u63a5\n\u251c\u2500\u2500 logs                                        #-- MeterSphere \u5404\u7ec4\u4ef6\u7684\u65e5\u5fd7\u6587\u4ef6\u6301\u4e45\u5316\u76ee\u5f55\n\u2514\u2500\u2500 version                                     #-- \u5b89\u88c5\u5305\u5bf9\u5e94\u7684 MeterSphere \u7248\u672c\u4fe1\u606f\n
    "},{"location":"installation/online_installation/#3","title":"3 \u624b\u52a8\u5b89\u88c5","text":""},{"location":"installation/online_installation/#31","title":"3.1 \u624b\u52a8\u5b89\u88c5","text":"

    MeterSphere \u5b89\u88c5\u5305\u4e0b\u8f7d\u94fe\u63a5: https://github.com/metersphere/metersphere/releases

    # \u4e0b\u8f7d\u5728\u7ebf\u5b89\u88c5\u5305\nwget https://github.com/metersphere/metersphere/releases/download/v2.x.y/metersphere-online-installer-v2.x.y.tar.gz\n\n# \u89e3\u538b\u5728\u7ebf\u5b89\u88c5\u5305\ntar -zxvf metersphere-online-installer-v2.x.y.tar.gz\n\n# \u8fdb\u5165\u89e3\u538b\u76ee\u5f55\ncd metersphere-online-installer-v2.x.y\n\n# \u914d\u7f6e\u5b89\u88c5\u53c2\u6570\uff0c\u53c2\u6570\u8bf4\u660e\u89c1\u4e0b\u6587\n# vi install.conf\n\n# \u6267\u884cinstall.sh\u5b89\u88c5\u811a\u672c\n/bin/bash install.sh\n

    \u6267\u884c\u5b8c\u5b89\u88c5\u811a\u672c\u540e\uff0c\u4f1a\u5728\u7ebf\u62c9\u53d6\u955c\u50cf\uff0c\u7b49\u63d0\u793a\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u4f7f\u7528 msctl status \u67e5\u770b\u670d\u52a1\u5404\u4e2a\u7ec4\u4ef6\u72b6\u6001

    \u7b49\u5f85\u51e0\u5206\u949f\u540e\uff0c\u4f7f\u7528\u547d\u4ee4 msctl status \u68c0\u67e5\u670d\u52a1\u8fd0\u884c\u60c5\u51b5\uff0c\u82e5\u5404\u4e2a\u7ec4\u4ef6\u90fd\u662f healthy \u72b6\u6001\uff0c\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u5982\u4e0b\u9875\u9762\u767b\u5f55 MeterSphere\u3002

     \u8bf7\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u8bbf\u95ee:\n\n URL: http://\u670d\u52a1\u5668IP:8081\n \u7528\u6237\u540d: admin\n \u521d\u59cb\u5bc6\u7801: metersphere\n

    "},{"location":"installation/online_installation/#32","title":"3.2 \u5b89\u88c5\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e","text":"

    \u5b89\u88c5\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e

    \u5982\u679c\u65e0\u7279\u6b8a\u9700\u6c42\u53ef\u4ee5\u4e0d\u8fdb\u884c\u4fee\u6539\u91c7\u7528\u9ed8\u8ba4\u53c2\u6570\u5b89\u88c5\uff08\u9996\u6b21\u5b89\u88c5\u53ef\u4fee\u6539\u914d\u7f6e install.conf \u6587\u4ef6\u4e2d\u76f8\u5173\u914d\u7f6e\uff0c\u4fee\u6539\u5b8c\u540e\u6267\u884c /bin/bash install.sh \u547d\u4ee4\u8fdb\u884c\u5b89\u88c5\uff0c\u5df2\u5b89\u88c5\u6210\u529f\u5982\u9700\u518d\u4fee\u6539\u914d\u7f6e\u53c2\u6570\uff0c\u9700\u8981\u5230 ${MS_BASE}/metersphere/.env \u91cc\u4fee\u6539\uff0c\u4fee\u6539\u5b8c\u540e\u6267\u884c msctl reload \u5373\u53ef\u91cd\u65b0\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\uff09\u3002

    # \u57fa\u7840\u914d\u7f6e\n## \u5b89\u88c5\u8def\u5f84\uff0c MeterSphere \u914d\u7f6e\u53ca\u6570\u636e\u6587\u4ef6\u9ed8\u8ba4\u5c06\u5b89\u88c5\u5728 ${MS_BASE}/metersphere \u76ee\u5f55\u4e0b\nMS_BASE=/opt\n## MeterSphere \u4f7f\u7528\u7684 docker \u7f51\u7edc\u7f51\u6bb5\u4fe1\u606f\nMS_DOCKER_SUBNET=172.30.10.0/24\n## \u955c\u50cf\u524d\u7f00\uff0c MeterSphere \u76f8\u5173\u7ec4\u4ef6\u4f7f\u7528\u7684 Docker \u955c\u50cf\u524d\u7f00\uff0c \u4f8b\u5982 registry.cn-qingdao.aliyuncs.com/metersphere\nMS_IMAGE_PREFIX=registry.cn-qingdao.aliyuncs.com/metersphere\n## \u955c\u50cf\u6807\u7b7e\uff0c MeterSphere \u76f8\u5173\u7ec4\u4ef6\u4f7f\u7528\u7684 Docker \u955c\u50cf\u6807\u7b7e\nMS_IMAGE_TAG=v2.3.0\n## \u6027\u80fd\u6d4b\u8bd5\u4f7f\u7528\u7684 JMeter \u955c\u50cf\nMS_JMETER_IMAGE=${MS_IMAGE_PREFIX}/jmeter-master:5.5-ms2-jdk11\n## \u5b89\u88c5\u6a21\u5f0f allinone | server | node-controller | selenium-hub\uff0c \u5176\u4e2d selenium-hub \u548c node-controller \u53ef\u4ee5\u5355\u72ec\u5728\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u4f5c\u4e3a\u6267\u884c\u673a\u4f7f\u7528\nMS_INSTALL_MODE=allinone\n## MeterSphere \u4e3b\u7a0b\u5e8f\u7684 HTTP \u670d\u52a1\u76d1\u542c\u7aef\u53e3\nMS_SERVER_PORT=8081\n## MeterSphere Node-Controller \u7ec4\u4ef6\u7684 HTTP \u670d\u52a1\u76d1\u542c\u7aef\u53e3\nMS_NODE_CONTROLLER_PORT=8082\nMS_NODEEXPORTER_PORT=9100\n\n# \u6570\u636e\u5e93\u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8\u6570\u636e\u5e93\nMS_EXTERNAL_MYSQL=false\n## \u6570\u636e\u5e93\u5730\u5740\nMS_MYSQL_HOST=mysql\n## \u6570\u636e\u5e93\u7aef\u53e3\nMS_MYSQL_PORT=3306\n## \u6570\u636e\u5e93\u5e93\u540d\nMS_MYSQL_DB=metersphere\n## \u6570\u636e\u5e93\u7528\u6237\u540d\nMS_MYSQL_USER=root\n## \u6570\u636e\u5e93\u5bc6\u7801\nMS_MYSQL_PASSWORD=Password123@mysql\n\n# Prometheus \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8Prometheus\nMS_EXTERNAL_PROM=false\nMS_PROMETHEUS_PORT=9090\n\n# Redis \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8Redis\nMS_EXTERNAL_REDIS=false\n## Redis \u7aef\u53e3\nMS_REDIS_PORT=6379\n## Redis \u5bc6\u7801\nMS_REDIS_PASSWORD=Password123@redis\n## Redis\u5730\u5740\nMS_REDIS_HOST=$(hostname -I|cut -d\" \" -f 1)\n\n# Kafka \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8 Kafka\nMS_EXTERNAL_KAFKA=false\n## Kafka \u5730\u5740\nMS_KAFKA_HOST=10.1.*.*\n## Kafka \u7aef\u53e3\nMS_KAFKA_PORT=9092\n## \u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_TOPIC=JMETER_METRICS\n## \u6027\u80fd\u6d4b\u8bd5\u65e5\u5fd7\u6570\u636e\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_LOG_TOPIC=JMETER_LOGS\n## \u6027\u80fd\u6d4b\u8bd5\u5b9a\u65f6\u4efb\u52a1\u901a\u77e5\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_TEST_TOPIC=LOAD_TESTS\n## \u91cd\u6784\u540e\u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u4f7f\u7528\u7684 Kafka Topic\nMS_KAFKA_REPORT_TOPIC=JMETER_REPORTS\n\n# UI\u5bb9\u5668\u914d\u7f6e\n## \u662f\u5426\u542f\u52a8UI\u6a21\u5757\nMS_UI_ENABLED=false\n## \u662f\u5426\u542f\u52a8\u5de5\u4f5c\u53f0\u5bb9\u5668\nMS_WORKSTATION_ENABLED=false\n\n# minio \u914d\u7f6e\n## \u662f\u5426\u4f7f\u7528\u5916\u90e8minio\nMS_EXTERNAL_MINIO=false\n## minio \u5730\u5740\nMS_MINIO_ENDPOINT=http://minio:9000\n## minio access\nMS_MINIO_ACCESS_KEY=admin\n## minio \u5bc6\u7801\nMS_MINIO_SECRET_KEY=Password123@minio\n\n# \u4fee\u6539\u7ec4\u4ef6\u6700\u5927\u5185\u5b58\u9650\u5236\uff08v2.7\u4ee5\u4e0a\u53ef\u4ee5\u5728 /opt/metersphere/.env \u91cc\u4fee\u6539\u67d0\u5bb9\u5668\u670d\u52a1\u7684\u6700\u5927\u5185\u5b58\u9650\u5236\uff0c\u5728/opt/metersphere/ \u76ee\u5f55\u4e0b\u7684docker-compose\u5206\u522b\u5b9a\u4e49\u5404\u81ea\u670d\u52a1\u7684\u6700\u5927\u5c5e\u6027\u503c\uff0c\u5982 api-test \u7684\u5c5e\u6027\u5728 docker-compose-api-test.yml \u4e2d\u5b9a\u4e49\uff0c\u4e3a MS_API_MEM_LIMIT\uff09\nMS_API_MEM_LIMIT=1073741824\uff08\u9ed8\u8ba4\u4e3a 1g\uff09\n

    "},{"location":"installation/online_installation/#33","title":"3.3 \u6570\u636e\u5e93\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e","text":"

    \u6ce8\u610f

    MeterSphere \u4f7f\u2f64 MySQL 8.0 \u5bf9\u7cfb\u7edf\u6570\u636e\u8fdb\u2f8f\u5b58\u50a8\u3002\u540c\u65f6 MeterSphere \u5bf9\u6570\u636e\u5e93\u90e8\u5206\u914d\u7f6e\u9879\u6709\u8981\u6c42\uff0c\u8bf7\u53c2\u8003\u4e0b\u9644\u7684\u6570\u636e\u5e93\u914d\u7f6e\uff0c\u4fee\u6539\u73af\u5883\u4e2d\u7684\u6570\u636e\u5e93\u914d\u7f6e\u6587\u4ef6\u3002

    [mysqld]\ndatadir=/var/lib/mysql\n\ndefault-storage-engine=INNODB\ncharacter_set_server=utf8mb4\nlower_case_table_names=1\nperformance_schema=off\ntable_open_cache=128\ntransaction_isolation=READ-COMMITTED\nmax_connections=1000\nmax_connect_errors=6000\nmax_allowed_packet=64M\ninnodb_file_per_table=1\ninnodb_buffer_pool_size=512M\ninnodb_flush_method=O_DIRECT\ninnodb_lock_wait_timeout=1800\n\nserver-id=1\nlog-bin=mysql-bin\nexpire_logs_days = 2\nbinlog_format=mixed\n\ncharacter-set-client-handshake = FALSE\ncharacter-set-server=utf8mb4\ncollation-server=utf8mb4_general_ci\ninit_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci'\n\nsql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\n\nskip-name-resolve\n\n[mysql]\ndefault-character-set=utf8mb4\n\n[mysql.server]\ndefault-character-set=utf8mb4\n

    \u8bf7\u53c2\u8003\u6587\u6863\u4e2d\u7684\u5efa\u5e93\u8bed\u53e5\u521b\u5efa MeterSphere \u4f7f\u7528\u7684\u6570\u636e\u5e93\uff0cmetersphere-server \u670d\u52a1\u542f\u52a8\u65f6\u4f1a\u81ea\u52a8\u5728\u914d\u7f6e\u7684\u5e93\u4e2d\u521b\u5efa\u6240\u9700\u7684\u8868\u7ed3\u6784\u53ca\u521d\u59cb\u5316\u6570\u636e\u3002

    CREATE DATABASE `metersphere` /*!40100 DEFAULT CHARACTER SET utf8mb4 */\n

    "},{"location":"installation/online_installation/#4","title":"4 \u914d\u7f6e\u53cd\u5411\u4ee3\u7406","text":"

    \u5982\u679c\u4f7f\u7528\u4e86 Nginx\u3001HAProxy \u8fdb\u884c\u53cd\u5411\u4ee3\u7406\u914d\u7f6e\uff0c\u9700\u8981\u589e\u52a0\u5bf9 websocket \u7684\u652f\u6301\u3002\u4ee5 Nginx \u4e3a\u4f8b\uff0c\u53c2\u8003\u914d\u7f6e\u5982\u4e0b:

    server {\n    listen 80;\n    server_name demo.metersphere.com;\n    server_tokens off;\n    return 301 https://$host$request_uri;\n}\nserver {\n    listen 443 ssl;\n    # RSA certificate\n    ssl_certificate /etc/nginx/ssl/metersphere.com/fullchain.cer; # managed by Certbot\n    ssl_certificate_key /etc/nginx/ssl/metersphere.com/metersphere.com.key; # managed by Certbot\n    server_name  demo.metersphere.com;\n    proxy_connect_timeout       300;\n    proxy_send_timeout          300;\n    proxy_read_timeout          300;\n    send_timeout                300;\n    proxy_set_header Host $host;\n    proxy_set_header X-Forwarded-For $remote_addr;\n    proxy_set_header X-Forwarded-Host $server_name;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-Proto $scheme;\n    proxy_redirect http:// $scheme://;\n\n    location / {\n        proxy_pass http://ip:8081;\n        client_max_body_size 1000m;\n        #access_log off;\n\n        #\u914d\u7f6e websocket \u652f\u6301\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n    }\n}\n

    "},{"location":"installation/online_upgrade/","title":"\u5728\u7ebf\u5347\u7ea7","text":"

    \u5347\u7ea7\u524d\u4e00\u5b9a\u8981\u8fdb\u884c\u6570\u636e\u5e93\u5907\u4efd\uff0c\u8bf7\u53c2\u8003 MeterSphere \u6570\u636e\u5907\u4efd\u3002 - \u5982\u679c MeterSphere \u670d\u52a1\u5668\u53ef\u4ee5\u8bbf\u95ee\u4e92\u8054\u7f51\uff0c\u4e14\u5728\u7ebf\u5347\u7ea7\u7248\u672c\u8de8\u5ea6\u4e0d\u5927\uff0c\u53ef\u5728\u7ebf\u5347\u7ea7\u5230\u6700\u65b0\u6216\u6307\u5b9a\u7248\u672c\u3002 - \u5982\u679c\u5347\u7ea7\u7248\u672c\u8de8\u5ea6\u8f83\u5927\uff0c\u5982 V1.x \u5347\u7ea7\u81f3 V2.x \u7248\u672c\uff0c\u7531\u4e8e\u7248\u672c\u65b0\u589e\u53d8\u66f4\u529f\u80fd\u8f83\u591a\uff0c\u4e14 v2.8.1 \u4e4b\u540edocker \u4f7f\u7528\u7248\u672c\u5347\u7ea7\uff0c\u907f\u514d\u7f51\u7edc\u56e0\u7d20\u5f71\u54cd\u5efa\u8bae\u91c7\u7528\u79bb\u7ebf\u5347\u7ea7\u65b9\u5f0f\u3002\u8be6\u7ec6\u6b65\u9aa4\u53ef\u53c2\u8003\uff1a MeterSphere 1.20 LTS \u81f32.10 LTS \u5347\u7ea7\u6307\u5357

    "},{"location":"installation/online_upgrade/#1","title":"1 \u4e00\u952e\u5347\u7ea7\u81f3\u6700\u65b0\u7248\u672c","text":"
    #\u5347\u7ea7\u524d\u505c\u6b62\u670d\u52a1\nmsctl stop\n\n# \u5347\u7ea7\u81f3\u6700\u65b0\u7248\u672c\nmsctl upgrade\n\n# \u67e5\u770b MeterSphere \u72b6\u6001\nmsctl status\n
    "},{"location":"installation/online_upgrade/#2","title":"2 \u4e00\u952e\u5347\u7ea7\u81f3\u6307\u5b9a\u7248\u672c","text":"
    #\u5347\u7ea7\u524d\u505c\u6b62\u670d\u52a1\nmsctl stop\n\n# \u5347\u7ea7\u81f3\u6307\u5b9a\u7248\u672c\nmsctl upgrade v2.x.y\n\n# \u67e5\u770b MeterSphere \u72b6\u6001\nmsctl status\n
    "},{"location":"installation/pre_work/","title":"\u6574\u4f53\u90e8\u7f72\u89c4\u5212","text":"

    MeterSphere \u5927\u89c4\u6a21\u7684\u6027\u80fd\u538b\u6d4b\u4e3b\u8981\u53d6\u51b3\u4e8e\u4e09\u4e2a\u7ec4\u4ef6

    \u25a0 Node Controller: \u4e3a\u6027\u80fd\u6d4b\u8bd5\u63d0\u4f9b\u72ec\u7acb\u8282\u70b9\u7c7b\u578b\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\uff0c \u63a5\u6536\u6765\u81ea\u7cfb\u7edf\u7684\u6027\u80fd\u6d4b\u8bd5\u4efb\u52a1\uff0c \u52a8\u6001\u7684\u542f\u52a8 JMeter \u5bb9\u5668\u5b8c\u6210\u6027\u80fd\u6d4b\u8bd5 \u25a0 Data Streaming: \u4ece Kafka \u4e2d\u83b7\u53d6\u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u8fdb\u884c\u5904\u7406\u540e\u5b58\u5165 MySQL \u6570\u636e\u5e93 \u25a0 Kafka: \u63a5\u6536 JMeter \u4ea7\u751f\u7684\u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e

    \u6240\u4ee5\u5982\u679c\u9700\u8981\u8fdb\u884c\u5927\u89c4\u6a21\uff085000 VU\u4ee5\u4e0a\uff09\u7684\u6027\u80fd\u6d4b\u8bd5\uff0c\u9700\u8981\u5bf9\u4e0a\u8ff0\u4e09\u4e2a\u7ec4\u4ef6\u8fdb\u884c\u6c34\u5e73\u6269\u5bb9\u3002\u5177\u4f53\u67b6\u6784\u5982\u4e0b\uff1a

    \u4f9d\u636e\u67b6\u6784\u6240\u793a\uff0c\u9700\u8981\u72ec\u7acb\u90e8\u7f72 Kafka \u96c6\u7fa4\u548c Data-Streaming \u96c6\u7fa4\uff08Kafka\u548cData-Streaming\u53ef\u4ee5\u90e8\u7f72\u5728\u4e00\u8d77\uff09\uff0c\u5982\u679c\u91c7\u7528\u72ec\u7acb\u4e3b\u673a\u538b\u6d4b\uff0c\u8fd8\u9700\u8981\u90e8\u7f72 Node-Controller \u96c6\u7fa4\u3002\u90e8\u7f72\u6b65\u9aa4:

    \u25a0 \u90e8\u7f72 Kafka \u96c6\u7fa4 \u25a0 \u90e8\u7f72 Data-Streaming \u96c6\u7fa4 \u25a0 \u90e8\u7f72 Node-Controller \u96c6\u7fa4

    "},{"location":"quick_start/api_test/","title":"\u4f7f\u7528\u63a5\u53e3\u6d4b\u8bd5","text":"

    MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u6a21\u5757\u63d0\u4f9b\u4e86\u63a5\u53e3\u5b9a\u4e49\u3001\u63a5\u53e3\u81ea\u52a8\u5316\u7b49\u63a5\u53e3\u6d4b\u8bd5\u76f8\u5173\u529f\u80fd\u3002 \u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u6811\u72b6\u591a\u7ea7\u6a21\u5757\u6765\u5206\u7ea7\u5206\u7ec4\u7ba1\u7406\u9879\u76ee\u4e0b\u7684\u63a5\u53e3\u5217\u8868\uff0c\u521b\u5efa\u6267\u884c\u63a5\u53e3\u7528\u4f8b\u6d4b\u8bd5\u63a5\u53e3\uff0c\u7ec4\u5408\u7f16\u6392\u591a\u4e2a\u63a5\u53e3\u7528\u4f8b\u8fdb\u884c\u573a\u666f\u81ea\u52a8\u5316\u6d4b\u8bd5\u3002

    "},{"location":"quick_start/api_test/#1","title":"1 \u63a5\u53e3\u5b9a\u4e49\u7ba1\u7406","text":"

    \u8fdb\u5165\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011->\u3010\u63a5\u53e3\u5b9a\u4e49\u3011 \u9875\u9762\u3002

    "},{"location":"quick_start/api_test/#11-swagger","title":"1.1 \u5bfc\u5165 Swagger \u63a5\u53e3\u6587\u6863","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u66f4\u591a\u64cd\u4f5c\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u5bfc\u5165\u3011\u6309\u94ae\u3002

    \u9009\u62e9 Swagger \u6570\u636e\u683c\u5f0f\uff0c\u9009\u62e9 MeterSphere \u6a21\u5757\uff0c\u9009\u62e9\u3010\u5bfc\u5165\u6a21\u5f0f\u3011\u4e3a\u4e0d\u8986\u76d6\uff0c\u9009\u62e9\u3010\u5bfc\u5165\u7248\u672c\u3011\uff0c\u9009\u62e9\u4f7f\u7528 URL \u5bfc\u5165\uff0c\u5e76\u586b\u5165 Swagger \u5bf9\u5e94\u7684 JSON \u5730\u5740 http://xxx.fit2cloud.com/v3/api-docs\uff0c\u5bfc\u5165 API \u63a5\u53e3\u3002

    \u3010\u7248\u672c\u7ba1\u7406\u3011\u4e3a\u4f01\u4e1a\u7248 X-Pack \u529f\u80fd\uff0c\u5982\u679c\u662f\u793e\u533a\u7248\uff0c\u6ca1\u6709 \u3010\u5bfc\u5165\u7248\u672c\u3011\u9009\u9879\u3002

    "},{"location":"quick_start/api_test/#12","title":"1.2 \u67e5\u770b\u63a5\u53e3\u5b9a\u4e49","text":"

    \u5bfc\u5165 Swagger \u6587\u4ef6\u4e4b\u540e\uff0c\u5728\u63a5\u53e3\u5217\u8868\u4e2d\u627e\u9700\u8981\u7f16\u8f91\u7684\u76ee\u6807\u63a5\u53e3 \uff0c\u70b9\u51fb\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u67e5\u770b\u63a5\u53e3\u8be6\u60c5\u3002

    "},{"location":"quick_start/api_test/#13","title":"1.3 \u6dfb\u52a0\u6d4b\u8bd5\u73af\u5883","text":"

    \u63a5\u53e3\u5217\u8868\u4e2d\u4ec5\u8bb0\u5f55\u4e86\u63a5\u53e3\u7684\u76f8\u5bf9 URL\uff0c\u5f53\u6211\u4eec\u9700\u8981\u5bf9\u67d0\u4e2a\u63a5\u53e3\u8fdb\u884c\u6d4b\u8bd5\u65f6\uff0c\u9700\u8981\u5148\u5728\u8be5\u9879\u76ee\u4e2d\u6dfb\u52a0\u9488\u5bf9\u8be5\u9879\u76ee\u7684\u6d4b\u8bd5\u73af\u5883\u4fe1\u606f\u3002 \u70b9\u51fb\u5de6\u4fa7\u83dc\u5355\u680f\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011->\u3010\u9879\u76ee\u7ba1\u7406\u3011 \u9875\u9762\u3002\u70b9\u51fb\u3010\u521b\u5efa\u73af\u5883\u3011 \u6309\u94ae\uff0c\u586b\u5199\u73af\u5883\u540d\u79f0\u53ca\u73af\u5883\u57df\u540d\uff0c\u70b9\u51fb\u786e\u5b9a\u4fdd\u5b58\u6d4b\u8bd5\u73af\u5883\u4fe1\u606f\u3002

    "},{"location":"quick_start/api_test/#14","title":"1.4 \u8c03\u8bd5\u5355\u4e2a\u63a5\u53e3","text":"

    \u5982 /signin \u767b\u5f55\u63a5\u53e3\u8c03\u8bd5\uff0c\u70b9\u51fb\u64cd\u4f5c\u5217\u4e2d\u7684 \u3010\u7f16\u8f91\u3011 \u6309\u94ae\uff0c\u8fdb\u5165\u63a5\u53e3\u8be6\u60c5\u9875\u9762\u3002

    \u70b9\u51fb\u754c\u9762\u4e0a\u65b9\u7684\u3010TEST\u3011\u6309\u94ae\uff0c\u8fdb\u5165\u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u3002\u5728\u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u9009\u62e9\u63a5\u53e3\u6267\u884c\u73af\u5883\uff0c\u5e76\u586b\u5199\u63a5\u53e3\u6240\u9700\u7684\u53c2\u6570\u540e\uff0c\u70b9\u51fb\u3010\u6d4b\u8bd5\u3011\u6309\u94ae\u53d1\u9001\u8be5\u63a5\u53e3\u8bf7\u6c42\u3002

    \u5f53\u63a5\u53e3\u8bf7\u6c42\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u5728\u4e0b\u65b9\u7684\u54cd\u5e94\u5185\u5bb9\u4e2d\u67e5\u770b\u5230\u672c\u6b21\u63a5\u53e3\u8bf7\u6c42\u7684\u54cd\u5e94\u4fe1\u606f\u3002

    "},{"location":"quick_start/api_test/#2","title":"2 \u521b\u5efa\u5355\u63a5\u53e3\u7528\u4f8b","text":"

    \u8fdb\u5165\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011->\u3010\u63a5\u53e3\u5b9a\u4e49\u3011\u9875\u9762\u3002

    "},{"location":"quick_start/api_test/#21","title":"2.1 \u65b0\u5efa\u5355\u63a5\u53e3\u7528\u4f8b","text":"

    \u5982\u7ed9 /signin \u767b\u5f55\u63a5\u53e3\u6dfb\u52a0\u7528\u4f8b\uff0c\u70b9\u51fb\u64cd\u4f5c\u5217\u4e2d\u7684\u3010CASE\u3011\u6309\u94ae\uff0c\u6253\u5f00\u8be5\u63a5\u53e3\u7684\u7528\u4f8b\u5217\u8868\u9875\u9762\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u3011\u6309\u94ae\uff0c\u6dfb\u52a0\u7528\u4f8b\u3002

    \u8f93\u5165\u63a5\u53e3\u7528\u4f8b\u7684\u540d\u79f0\u53ca\u8bf7\u6c42\u63a5\u53e3\u6240\u9700\u7684\u5176\u4ed6\u53c2\u6570\u540e\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u3010\u4fdd\u5b58\u3011\u6309\u94ae\u4fdd\u5b58\u8be5\u63a5\u53e3\u7528\u4f8b\u3002

    "},{"location":"quick_start/api_test/#22","title":"2.2 \u6d4b\u8bd5\u5355\u63a5\u53e3\u7528\u4f8b","text":"

    \u5728\u5355\u63a5\u53e3\u7528\u4f8b\u53f3\u4e0a\u65b9\u9009\u62e9\u3010\u6267\u884c\u73af\u5883\u3011\uff0c\u70b9\u51fb\u3010\u6267\u884c\u3011\u6309\u94ae\u8c03\u8bd5\u5355\u63a5\u53e3\u7528\u4f8b\uff0c\u6267\u884c\u7ed3\u675f\u540e\uff0c\u5c55\u5f00\u7528\u4f8b\u8be6\u60c5\u67e5\u770b\u54cd\u5e94\u5185\u5bb9\u3002

    "},{"location":"quick_start/api_test/#3","title":"3 \u521b\u5efa\u573a\u666f\u7528\u4f8b","text":"

    \u8fdb\u5165\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011->\u3010\u63a5\u53e3\u81ea\u52a8\u5316\u3011\u9875\u9762\u3002

    "},{"location":"quick_start/api_test/#31","title":"3.1 \u65b0\u5efa\u573a\u666f\u7528\u4f8b","text":"

    \u5728\u573a\u666f\u7528\u4f8b\u5217\u8868\u9875\u9762\uff0c\u70b9\u51fb\u5de6\u4fa7\u7684\u6a21\u5757\u6811\u65b0\u5efa MeterSphere \u6a21\u5757\u3002

    \u70b9\u51fb\u3010\u521b\u5efa\u573a\u666f\u3011\u6309\u94ae\u65b0\u5efa\u4e00\u4e2a \u83b7\u53d6\u7528\u6237\u5217\u8868 \u7684\u573a\u666f\uff0c\u8be5\u573a\u666f\u7684\u76ee\u7684\u662f\u83b7\u53d6\u5f53\u524d MeterSphere \u7cfb\u7edf\u6240\u6709\u7684\u7528\u6237\u5217\u8868\u4fe1\u606f\uff0c\u56e0\u4e3a\u83b7\u53d6\u7528\u6237\u5217\u8868\u63a5\u53e3\u9700\u8981\u767b\u5f55\u72b6\u6001\u6216\u8005\u63a5\u53e3\u7b7e\u540d\u8ba4\u8bc1\u624d\u53ef\u4ee5\u6b63\u5e38\u8bf7\u6c42\uff0c\u8fd9\u91cc\u91c7\u7528\u7c7b\u4f3c Swagger \u8c03\u8bd5\u7684\u65b9\u5f0f\uff0c\u5148\u83b7\u53d6\u767b\u5f55\u6001\uff0c\u518d\u6267\u884c\u83b7\u53d6\u7528\u6237\u5217\u8868\u63a5\u53e3\uff0c\u8fd9\u91cc\u9700\u8981\u5206\u522b\u5bfc\u5165\u767b\u5f55\u548c\u83b7\u53d6\u7528\u6237\u5217\u8868\u4e24\u4e2a\u63a5\u53e3\uff0c\u540c\u65f6\u9700\u8981\u52fe\u9009\u4e0a\u3010\u5171\u4eabcookie\u3011\uff0c\u586b\u5199\u5b8c\u573a\u666f\u57fa\u672c\u4fe1\u606f\u540e\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u6309\u94ae\u4fdd\u5b58\u8be5\u573a\u666f\u3002

    "},{"location":"quick_start/api_test/#32","title":"3.2 \u6dfb\u52a0\u573a\u666f\u6b65\u9aa4","text":"

    \u9996\u5148\u52fe\u9009\u3010\u5171\u4eabcookie\u3011\u6309\u94ae\uff0c\u7136\u540e\u70b9\u51fb\u573a\u666f\u8be6\u60c5\u4e2d\u53f3\u4e0b\u89d2\u7684\u3010+\u3011\u6dfb\u52a0\u573a\u666f\u6b65\u9aa4\u6309\u94ae\uff0c\u5728\u573a\u666f\u4e2d\u4e00\u6b21\u6dfb\u52a0\u5982\u4e0b\u51e0\u4e2a\u6b65\u9aa4\u3002

    \u9009\u62e9\u3010\u63a5\u53e3\u5217\u8868\u5bfc\u5165\u3011\u6b65\u9aa4\uff0c\u5728\u5f39\u51fa\u7684\u63a5\u53e3\u5217\u8868\u4e2d\u627e\u5230 \u767b\u5f55 \u63a5\u53e3\u8fdb\u884c\u6dfb\u52a0\u3002

    \u5728\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u53ef\u4ee5\u76f4\u63a5\u4fee\u6539\u590d\u5236\u8fc7\u6765\u7684\u63a5\u53e3\u505a\u53c2\u6570\u4fee\u6539\u3002\u5982\u6b64\u5904\u7684 /signin \u76f8\u5173\u53c2\u6570\u53ef\u76f4\u63a5\u7f16\u8f91\u3002

    \u5c55\u5f00 /signin \u767b\u5f55\u63a5\u53e3\u7684\u8bf7\u6c42\u53c2\u6570\uff0c\u5207\u6362\u5230\u3010\u540e\u7f6e\u64cd\u4f5c\u3011\uff0c\u5728\u8be5\u9875\u9762\u6dfb\u52a0\u4e00\u4e2a\u540d\u79f0\u4e3a \u83b7\u53d6CSRF-TOKEN\u7684\u63d0\u53d6\u6b65\u9aa4\uff0c\u91c7\u7528\u3010\u63a8\u8350 JSONPath \u63d0\u53d6\u3011\u65b9\u5f0f\u6dfb\u52a0\u4e00\u4e2a\u63d0\u53d6\uff0c\u5728\u5f39\u51fa\u7684\u54cd\u5e94\u7ed3\u679c Json \u9875\u9762\u4e2d\uff0c\u4e0b\u62c9\u5230\u6700\u5e95\u5c42\uff0c\u52fe\u9009\u540d\u79f0\u4e3acsrfToken\u548csessionId\u7684\u5c5e\u6027\uff0cJSONPath \u8868\u8fbe\u5f0f\u5206\u522b\u4e3a $.data.csrfToken\u548c$.data.sessionId\u3002

    \u6ce8\u610f

    \u5f53\u524d\u6b65\u9aa4\u9700\u5148\u624b\u52a8\u6267\u884c\u6210\u529f\uff0c\u624d\u53ef\u4ee5\u4f7f\u7528\u63a8\u8350 JSONPath \u63d0\u53d6\u65b9\u5f0f\u3002

    \u518d\u6b21\u6dfb\u52a0\u4e00\u4e2a \u3010\u63a5\u53e3\u5217\u8868\u5bfc\u5165\u3011 \u6b65\u9aa4\uff0c\u9009\u62e9 getUserList \u63a5\u53e3\u3002\u4fee\u6539\u8bf7\u6c42\u5934\u91cc\u7684CSRF-TOKEN\u53c2\u6570\uff0c\u8bbe\u7f6e\u4e3a${csrfToken}\uff0cX-AUTH-TOKEN\u53c2\u6570\u503c\u8bbe\u7f6e\u4e3a${sessionId}\uff0c\u4fee\u6539\u8be5\u63a5\u53e3\u8bf7\u6c42\u4e2d\u7684REST\u53c2\u6570 goPage \u4e3a1\uff0cpageSize \u4e3a10\u3002

    "},{"location":"quick_start/api_test/#3_1","title":"3 \u573a\u666f\u8c03\u8bd5","text":"

    \u573a\u666f\u6b65\u9aa4\u6dfb\u52a0\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u573a\u666f\u6b65\u4e0a\u65b9\u7684\u7684\u3010\u8c03\u8bd5\u3011\u6309\u94ae\uff0c\u53ef\u5728\u5217\u8868\u67e5\u770b\u5404\u4e2a\u6b65\u9aa4\u6267\u884c\u72b6\u6001\uff0c\u5c55\u5f00\u53ef\u67e5\u770b\u63a5\u53e3\u6267\u884c\u7684\u8be6\u7ec6\u4fe1\u606f\u3002

    \u70b9\u51fb\u3010\u8c03\u8bd5\u5386\u53f2\u3011\u4e5f\u53ef\u4ee5\u76f4\u63a5\u67e5\u770b\u8be6\u7ec6\u7684\u62a5\u544a\u4fe1\u606f\u3002

    "},{"location":"quick_start/api_test/#4","title":"4 \u6d4b\u8bd5\u62a5\u544a\u751f\u6210\u548c\u67e5\u770b","text":"

    \u70b9\u51fb\u573a\u666f\u6b65\u4e0a\u65b9\u7684\u3010\u8c03\u8bd5\u3011 \u6309\u94ae\u65c1\u8fb9\u7684\u3010V\u3011\uff0c\u9009\u62e9\u3010\u751f\u6210\u62a5\u544a\u3011\uff0c\u751f\u6210\u62a5\u544a\u548c\u67e5\u770b\u573a\u666f\u62a5\u544a\u7684\u6b65\u9aa4\u8be6\u7ec6\u4fe1\u606f\u3002

    \u4e5f\u53ef\u4ee5\u76f4\u63a5\u5728\u3010\u6d4b\u8bd5\u62a5\u544a\u3011\u5217\u8868\u70b9\u51fb\u53f3\u4fa7\u3010\u62a5\u544a\u8be6\u60c5\u3011\u67e5\u770b\u62a5\u544a\u8be6\u7ec6\u4fe1\u606f\u3002

    \u5728\u62a5\u544a\u5217\u8868\u4e2d\u9009\u62e9\u62a5\u544a\u3010\u8be6\u60c5\u3011\u6309\u94ae\u6253\u5f00\u3010\u6d4b\u8bd5\u62a5\u544a\u3011\u9875\u9762\uff0c\u5728\u9875\u9762\u4e2d\u53ef\u4ee5\u67e5\u770b\u62a5\u544a\u8be6\u60c5\uff0c\u5206\u4eab\u548c\u5bfc\u51fa\u62a5\u544a\u3002

    "},{"location":"quick_start/create_project/","title":"\u521b\u5efa\u9879\u76ee","text":"

    \u5728 MeterSphere \u4e2d\uff0c\u6d4b\u8bd5\u7528\u4f8b\u3001\u6d4b\u8bd5\u8ba1\u5212\u3001\u63a5\u53e3\u6d4b\u8bd5\u3001UI \u6d4b\u8bd5\u53ca\u6027\u80fd\u6d4b\u8bd5\u7b49\u7684\u7ba1\u7406\u5747\u901a\u8fc7\u9879\u76ee\u8fdb\u884c\u5206\u6743\u5206\u57df\u67e5\u770b\u548c\u7ba1\u7406\uff0c\u4f7f\u7528MeterSphere \u8fdb\u884c\u6d4b\u8bd5\uff0c\u767b\u5f55\u8fdb\u5165\u5de5\u4f5c\u7a7a\u95f4\u540e\uff0c\u9996\u5148\u9700\u8981\u521b\u5efa\u9879\u76ee\uff0c\u5728\u9879\u76ee\u4e0b\u521b\u5efa\u7ba1\u7406\u64cd\u4f5c\u529f\u80fd\u7528\u4f8b\u3001\u6d4b\u8bd5\u8ba1\u5212\u3001\u63a5\u53e3\u6d4b\u8bd5\u3001UI \u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u7b49\u3002\u8fdb\u4e00\u6b65\u7684\u7ba1\u7406\u6a21\u578b\u8bf4\u660e\u8bf7\u53c2\u8003\u7ba1\u7406\u6a21\u578b\u3002

    \u5728\u5de6\u4fa7\u83dc\u5355\u4e2d\u70b9\u51fb\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011\uff0c\u5728\u6253\u5f00\u7684\u9875\u9762\u5de6\u4fa7\u4e8c\u7ea7\u83dc\u5355\u4e2d\uff0c\u9009\u62e9\u3010\u5de5\u4f5c\u7a7a\u95f4\u3011\u4e0b\u3010\u9879\u76ee\u7ba1\u7406\u3011\u83dc\u5355\uff0c\u6253\u5f00\u3010\u9879\u76ee\u7ba1\u7406\u3011\u9875\u9762\u3002

    \u5728\u3010\u9879\u76ee\u7ba1\u7406\u3011\u9875\u9762\uff0c\u70b9\u51fb\u3010\u521b\u5efa\u9879\u76ee\u3011 \u6309\u94ae\uff0c\u6253\u5f00\u3010\u521b\u5efa\u9879\u76ee\u3011\u5bf9\u8bdd\u6846\uff0c\u5728\u5bf9\u8bdd\u6846\u4e2d\u8f93\u5165\u9879\u76ee\u7684\u57fa\u672c\u4fe1\u606f\u540e\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u521b\u5efa\u4e00\u4e2a\u65b0\u9879\u76ee\u3002

    "},{"location":"quick_start/load_test/","title":"\u4f7f\u7528\u6027\u80fd\u6d4b\u8bd5","text":"

    MeterSphere \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\u652f\u6301\u901a\u8fc7\u5df2\u6709\u7684\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3001\u573a\u666f\u6d4b\u8bd5\u521b\u5efa\u3001\u4e0a\u4f20 JMeter JMX \u505a\u6027\u80fd\u6d4b\u8bd5\uff0c\u5e76\u6309\u9700\u8bbe\u7f6e\u5e76\u53d1\u7528\u6237\u6570\u7b49\u6d4b\u8bd5\u53c2\u6570\uff0c\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u5e76\u5b9e\u65f6\u67e5\u770b\u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u3002

    "},{"location":"quick_start/load_test/#1","title":"1 \u521b\u5efa\u6d4b\u8bd5\u8d44\u6e90\u6c60","text":"

    \u901a\u8fc7\u5b89\u88c5\u5305\u5b89\u88c5 MeterSphere \u540e\uff0c\u7cfb\u7edf\u9ed8\u8ba4\u4f7f\u7528\u5f53\u524d\u8282\u70b9\u521b\u5efa\u4e86\u540d\u4e3a\u3010LOCAL\u3011\u6d4b\u8bd5\u8d44\u6e90\u6c60\u3002\u5173\u4e8e\u6d4b\u8bd5\u8d44\u6e90\u6c60\u7684\u4f5c\u7528\u8bf7\u53c2\u8003 FAQ\u3002

    \u5982\u679c\u9700\u8981\u521b\u5efa\u65b0\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\uff0c\u6216\u5411\u5df2\u6709\u8d44\u6e90\u6c60\u4e2d\u6dfb\u52a0\u8282\u70b9\uff0c\u8bf7\u53c2\u8003 \u5982\u4f55\u5411\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u6dfb\u52a0\u8282\u70b9\uff1f

    "},{"location":"quick_start/load_test/#2-url","title":"2 \u4fee\u6539\u5f53\u524d\u7ad9\u70b9 URL","text":"

    \u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u8fc7\u7a0b\u4e2d node-controller \u8282\u70b9\u9700\u8981\u901a\u8fc7\u914d\u7f6e\u7684\u3010\u5f53\u524d\u7ad9\u70b9URL\u3011 \u4e0b\u8f7d JMX \u7b49\u6d4b\u8bd5\u8d44\u6e90\u6587\u4ef6\u3002\u5728\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u524d\u9700\u8981\u914d\u7f6e\u5e76\u68c0\u67e5\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u7684\u8282\u70b9\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u5230\u8be5 URL\uff0cURL \u503c\u4e00\u822c\u4e3a\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee MeterSphere \u7684\u5730\u5740\u3002

    "},{"location":"quick_start/load_test/#3","title":"3 \u521b\u5efa\u6027\u80fd\u6d4b\u8bd5","text":"

    \u8fdb\u5165\u3010\u6027\u80fd\u6d4b\u8bd5\u3011-\u3010\u6d4b\u8bd5\u3011\u9875\u9762\u3002

    \u5728\u6027\u80fd\u6d4b\u8bd5\u5217\u8868\u4e2d\u70b9\u51fb\u3010\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u3011\uff0c\u5728\u3010\u573a\u666f\u914d\u7f6e\u3011\u70b9\u51fb\u3010\u5f15\u7528\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u3011\uff0c\u5c06\u5df2\u6709\u7684\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u6dfb\u52a0\u5230\u6027\u80fd\u6d4b\u8bd5\u4e2d\u3002

    "},{"location":"quick_start/load_test/#4","title":"4 \u8c03\u6574\u538b\u529b\u914d\u7f6e","text":"

    \u5728\u538b\u529b\u914d\u7f6e\u9875\u9762\u9009\u62e9\u7cfb\u7edf\u914d\u7f6e\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\u3002 \u70b9\u51fb\u5c55\u5f00\u7b2c\u4e00\u4e2a\u7ebf\u7a0b\u7ec4\u7684\u914d\u7f6e\u9875\u9762\uff0c\u586b\u5165\u5e76\u53d1\u53c2\u6570\u3002 \u5177\u4f53\u7684\u5e76\u53d1\u914d\u7f6e\u5982\u4e0b\uff1a

    • \u5e76\u53d1\u7528\u6237\u6570\uff1a10
    • \u9009\u62e9\u3010\u6309\u6301\u7eed\u65f6\u95f4\u3011\u6a21\u5f0f
    • \u538b\u6d4b\u65f6\u957f\uff1a5\u5206\u949f
    • RPS \u4e0a\u9650\u4e0d\u8bbe\u7f6e
    • \u5728\u573a\u666f\u914d\u7f6e\u4e2d\u9009\u62e9\u3010ConcurrencyThreadGroup\u3011\u52a0\u538b\u6a21\u578b\uff0c\u8bbe\u7f6e10\u79d2\u5185\u52065\u6b65\u589e\u52a0\u5e76\u53d1\u7528\u6237

    "},{"location":"quick_start/load_test/#5","title":"5 \u6267\u884c\u5e76\u67e5\u770b\u62a5\u544a","text":"

    \u70b9\u51fb\u6027\u80fd\u6d4b\u8bd5\u914d\u7f6e\u9875\u9762\u7684\u3010\u4fdd\u5b58\u5e76\u6267\u884c\u3011\u6309\u94ae\uff0c\u7cfb\u7edf\u81ea\u52a8\u8fdb\u5165\u6027\u80fd\u6d4b\u8bd5\u6d4b\u8bd5\u62a5\u544a\u9875\u9762\u3002\u5f53\u6536\u5230\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u540e\uff0c\u62a5\u544a\u9875\u9762\u5c06\u81ea\u52a8\u66f4\u65b0\u3002

    "},{"location":"quick_start/quick_start/","title":"\u4e00\u952e\u90e8\u7f72","text":""},{"location":"quick_start/quick_start/#1","title":"1 \u4e00\u952e\u90e8\u7f72","text":"

    \u51c6\u5907\u597d\u90e8\u7f72\u670d\u52a1\u5668\u540e\uff0c\u53ef\u901a\u8fc7 MeterSphere \u5feb\u901f\u5b89\u88c5\u811a\u672c\u4e00\u952e\u5feb\u901f\u90e8\u7f72\u3002\u4e00\u952e\u5b89\u88c5\u91c7\u7528\u9ed8\u8ba4\u5b89\u88c5\u53c2\u6570\uff0c\u66f4\u591a\u6709\u5173\u79bb\u7ebf\u90e8\u7f72\u3001\u5bb9\u5668\u90e8\u7f72\u3001\u5206\u5e03\u5f0f\u90e8\u7f72\u7b49\u65b9\u5f0f\u53ef\u67e5\u770b\u3010\u5b89\u88c5\u90e8\u7f72\u3011\u7ae0\u8282\u5185\u5bb9\u3002

    \u90e8\u7f72\u670d\u52a1\u5668\u8981\u6c42\uff1a

    • \u64cd\u4f5c\u7cfb\u7edf\u8981\u6c42\uff1aCentOS 7.x
    • CPU\u5185\u5b58\u8981\u6c42\uff1a\u6700\u4f4e\u8981\u6c42 4C8G\uff0c\u63a8\u8350 8C16G (\u4f01\u4e1a\u7248\u6700\u4f4e\u914d\u7f6e 8C16G)
    • \u90e8\u7f72\u76ee\u5f55\u7a7a\u95f4\uff08\u9ed8\u8ba4/opt\u76ee\u5f55\uff09\u8981\u6c42\uff1a50G
    • \u7f51\u7edc\u8981\u6c42\uff1a\u53ef\u8bbf\u95ee\u4e92\u8054\u7f51
    • \u5982\u7528\u4e8e\u751f\u4ea7\u73af\u5883\uff0c\u63a8\u8350\u4f7f\u7528 \u79bb\u7ebf\u5b89\u88c5\u5305 \u8fdb\u884c\u90e8\u7f72

    \u4ee5 root \u7528\u6237 ssh \u767b\u5f55\u90e8\u7f72\u76ee\u6807\u670d\u52a1\u5668\uff0c\u6267\u884c\u4ee5\u4e0b\u811a\u672c\u8fdb\u884c\u4e00\u952e\u5b89\u88c5:

    curl -sSL https://resource.fit2cloud.com/metersphere/metersphere/releases/latest/download/quick_start.sh | bash\n

    \u5b89\u88c5\u6210\u529f\u540e\uff0c\u5ba2\u6237\u7aef\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u4ee5\u4e0b\u5730\u5740\uff0c\u8f93\u5165\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u5373\u53ef\u5f00\u59cb\u4f7f\u7528 MeterSphere\u3002

    \u5730\u5740: http://\u76ee\u6807\u670d\u52a1\u5668IP\u5730\u5740:8081\n\u9ed8\u8ba4\u7528\u6237\u540d: admin\n\u9ed8\u8ba4\u5bc6\u7801: metersphere\n

    "},{"location":"quick_start/quick_start/#2","title":"2 \u754c\u9762\u8bf4\u660e","text":"

    \u8fdb\u5165 MeterSphere \u4e3b\u754c\u9762\u540e\u53ef\u4ee5\u770b\u5230\u754c\u9762\u5de6\u8fb9\u662f\u5bfc\u822a\u680f\uff0c\u5305\u62ec\u3010\u5de5\u4f5c\u53f0\u3011\u3010\u6d4b\u8bd5\u8ddf\u8e2a\u3011\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011\u3010UI \u6d4b\u8bd5\u3011\u3010\u6027\u80fd\u6d4b\u8bd5\u3011\u3010\u62a5\u8868\u7edf\u8ba1\u3011\u3010\u9879\u76ee\u8bbe\u7f6e\u3011\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011\u516b\u4e2a\u6a21\u5757\uff0c\u5176\u4e2d UI \u6d4b\u8bd5\u662f\u4f01\u4e1a\u7248\u672c X-Pack\u7684\u529f\u80fd\uff0c\u754c\u9762\u4e0a\u65b9\u4ee5 Tab \u9875\u65b9\u5f0f\u5c55\u793a\u5f53\u524d\u6a21\u5757\u7684\u5177\u4f53\u529f\u80fd\u3002

    "},{"location":"quick_start/test_track/","title":"\u4f7f\u7528\u6d4b\u8bd5\u8ddf\u8e2a","text":"

    MeterSphere \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\u652f\u6301\u6d4b\u8bd5\u7528\u4f8b\u7ba1\u7406\u3001\u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\u3001\u6d4b\u8bd5\u8ba1\u5212\u8ddf\u8e2a\u7b49\u3002

    \u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u6811\u72b6\u591a\u7ea7\u6a21\u5757\u6765\u5206\u7ea7\u5206\u7ec4\u7ba1\u7406\u9879\u76ee\u4e0b\u7684\u6d4b\u8bd5\u7528\u4f8b\uff0c\u5bf9\u5df2\u6dfb\u52a0\u7684\u6d4b\u8bd5\u7528\u4f8b\u8fdb\u884c\u8bc4\u5ba1\uff0c\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\uff0c\u5c06\u5f85\u6d4b\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3001\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3001UI \u6d4b\u8bd5\u7528\u4f8b\u53ca\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u6dfb\u52a0\u5230\u6d4b\u8bd5\u8ba1\u5212\uff0c\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\uff0c\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3002

    "},{"location":"quick_start/test_track/#1","title":"1 \u6dfb\u52a0\u6d4b\u8bd5\u7528\u4f8b","text":"

    \u5728\u5de6\u4fa7\u83dc\u5355\u680f\u4e2d\u9009\u62e9\u3010\u6d4b\u8bd5\u8ddf\u8e2a\u3011\uff0c\u5728\u6253\u5f00\u7684\u9875\u9762\u9876\u90e8\u83dc\u5355\u4e2d\u9009\u62e9\u3010\u529f\u80fd\u7528\u4f8b\u3011\u6253\u5f00\u3010\u7528\u4f8b\u5217\u8868\u3011\u9875\u9762\u3002

    "},{"location":"quick_start/test_track/#11","title":"1.1 \u521b\u5efa\u6a21\u5757","text":"

    MeterSphere \u901a\u8fc7\u6a21\u5757\u6811\u7684\u65b9\u5f0f\u7ec4\u7ec7\u7ba1\u7406\u6d4b\u8bd5\u7528\u4f8b\uff0c\u7528\u6237\u53ef\u4ee5\u5728\u5de6\u4fa7\u67e5\u770b\u5230\u5f53\u524d\u9879\u76ee\u6d4b\u8bd5\u7528\u4f8b\u7684\u6a21\u5757\u6811\u3002\u70b9\u51fb\u5de6\u4fa7\u7684\u6a21\u5757\u6811\u4e2d\u7684\u3010\u6dfb\u52a0\u5b50\u6a21\u5757\u3011\u6309\u94ae\uff0c\u53ef\u4e3a\u8be5\u9879\u76ee\u6dfb\u52a0\u6a21\u5757\u3002

    "},{"location":"quick_start/test_track/#12","title":"1.2 \u8868\u5355\u65b9\u5f0f\u521b\u5efa\u7528\u4f8b","text":"

    \u521b\u5efa\u597d\u6a21\u5757\u540e\uff0c\u5373\u53ef\u5728\u5404\u4e2a\u6a21\u5757\u4e2d\u6dfb\u52a0\u6d4b\u8bd5\u7528\u4f8b\u3002\u5728\u3010\u7528\u4f8b\u5217\u8868\u3011\u9875\u9762\u4e2d\uff0c\u70b9\u51fb\u3010\u7528\u4f8b\u5217\u8868\u3011\u6807\u7b7e\u65c1\u7684\u3010+\u3011\u6309\u94ae\uff0c\u5728\u4e0b\u62c9\u83dc\u5355\u4e2d\u9009\u62e9\u3010\u65b0\u5efa\u7528\u4f8b\u3011 \u6309\u94ae\u6253\u5f00\u3010\u65b0\u5efa\u7528\u4f8b\u3011\u9875\u9762\u3002

    \u5728\u6253\u5f00\u7684\u3010\u65b0\u5efa\u7528\u4f8b\u3011\u9875\u9762\u4e2d\uff0c\u586b\u5199\u7528\u4f8b\u540d\u79f0\u3001\u524d\u7f6e\u6761\u4ef6\u3001\u6d4b\u8bd5\u6b65\u9aa4\u7b49\u8be6\u7ec6\u4fe1\u606f\uff0c\u4e4b\u540e\u70b9\u51fb\u3010\u4fdd\u5b58\u3011 \u6309\u94ae\u5b8c\u6210\u7528\u4f8b\u521b\u5efa\u3002

    "},{"location":"quick_start/test_track/#13","title":"1.3 \u8868\u5355\u65b9\u5f0f\u67e5\u770b\u7528\u4f8b","text":"

    \u5728\u3010\u7528\u4f8b\u5217\u8868\u3011\u9875\u9762\u4e2d\uff0c\u70b9\u51fb\u3010\u67e5\u770b\u3011\u6309\u94ae\uff0c\u5373\u53ef\u67e5\u770b\u8be5\u7528\u4f8b\u3002

    "},{"location":"quick_start/test_track/#14","title":"1.4 \u8111\u56fe\u65b9\u5f0f\u521b\u5efa\u7528\u4f8b","text":"

    \u9664\u4e86\u901a\u8fc7\u586b\u5199\u8868\u5355\u7684\u65b9\u5f0f\u7f16\u8f91\u3001\u5c55\u793a\u7528\u4f8b\uff0c\u8fd8\u53ef\u4ee5\u901a\u8fc7\u8111\u56fe\u7684\u65b9\u5f0f\u5b9e\u73b0\u6b64\u529f\u80fd\u3002\u5728\u3010\u7528\u4f8b\u5217\u8868\u3011\u9875\u9762\u70b9\u51fb\u3010\u8111\u56fe\u3011\u6807\u7b7e\u5207\u6362\u5230\u8111\u56fe\u5c55\u793a\u6a21\u5f0f\uff0c\u901a\u8fc7\u5728\u6a21\u5757\u4e0b\u6dfb\u52a0\u5b50\u8282\u70b9\u5e76\u6dfb\u52a0\u6807\u7b7e\u7684\u65b9\u5f0f\u521b\u5efa\u7528\u4f8b\u3002

    "},{"location":"quick_start/test_track/#2","title":"2 \u53d1\u8d77\u7528\u4f8b\u8bc4\u5ba1","text":"

    \u5728\u9876\u90e8\u83dc\u5355\u680f\u4e2d\uff0c\u9009\u62e9\u3010\u7528\u4f8b\u8bc4\u5ba1\u3011\u6253\u5f00\u3010\u7528\u4f8b\u8bc4\u5ba1\u3011\u9875\u9762\u3002

    "},{"location":"quick_start/test_track/#21","title":"2.1 \u521b\u5efa\u7528\u4f8b\u8bc4\u5ba1","text":"

    \u5728\u3010\u7528\u4f8b\u8bc4\u5ba1\u3011\u5217\u8868\u9875\u9762\u4e2d\uff0c\u70b9\u51fb\u5217\u8868\u4e0a\u65b9\u7684\u3010\u521b\u5efa\u7528\u4f8b\u8bc4\u5ba1\u3011\u6309\u94ae\uff0c\u5728\u6253\u5f00\u7684\u9875\u9762\u4e2d\u8f93\u5165\u7528\u4f8b\u8bc4\u5ba1\u4efb\u52a1\u540d\u79f0\u3001\u8bc4\u5ba1\u4eba\u7b49\u4fe1\u606f\u540e\uff0c\u70b9\u51fb\u4e0b\u65b9\u7684\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5b8c\u6210\u7528\u4f8b\u8bc4\u5ba1\u7684\u521b\u5efa\u3002

    "},{"location":"quick_start/test_track/#22","title":"2.2 \u7528\u4f8b\u8bc4\u5ba1\u5173\u8054\u7528\u4f8b","text":"

    \u5728\u3010\u7528\u4f8b\u8bc4\u5ba1\u3011\u5217\u8868\u9875\u9762\uff0c\u627e\u5230\u8981\u6dfb\u52a0\u7528\u4f8b\u7684\u8bc4\u5ba1\uff0c\u70b9\u51fb\u6253\u5f00\u3010\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3011\u5217\u8868\u9875\u9762\u3002 \u5728\u3010\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3011\u5217\u8868\u9875\u9762\uff0c\u70b9\u51fb\u3010\u5173\u8054\u7528\u4f8b\u3011 \u6309\u94ae\uff0c\u6253\u5f00\u3010\u5173\u8054\u7528\u4f8b\u3011\u5bf9\u8bdd\u6846\uff0c\u5728\u5bf9\u8bdd\u6846\u4e2d\u7684\u7528\u4f8b\u5217\u8868\u4e2d\u9009\u62e9\u8981\u6dfb\u52a0\u5230\u7528\u4f8b\u8bc4\u5ba1\u4efb\u52a1\u4e2d\u7684\u6d4b\u8bd5\u7528\u4f8b\uff0c\u9009\u62e9\u540e\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u4fdd\u5b58\u3002

    "},{"location":"quick_start/test_track/#23","title":"2.3 \u8bc4\u5ba1\u6d4b\u8bd5\u7528\u4f8b","text":"

    \u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u540e\uff0c\u5373\u53ef\u5728\u7528\u4f8b\u8bc4\u5ba1\u9875\u9762\u53f3\u4fa7\u7684\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u4e2d\u67e5\u770b\u5230\u5df2\u5173\u8054\u7684\u6d4b\u8bd5\u7528\u4f8b\u3002\u70b9\u51fb\u67d0\u4e2a\u6d4b\u8bd5\u7528\u4f8b\u64cd\u4f5c\u5217\u4e2d\u7684\u7f16\u8f91\u6309\u94ae\uff0c\u8fdb\u5165\u3010\u7528\u4f8b\u8be6\u60c5\u3011\u9875\u9762\u3002

    \u5728\u3010\u7528\u4f8b\u8be6\u60c5\u3011\u9875\u9762\u53f3\u4fa7\u8f93\u5165\u5e76\u53d1\u9001\u9488\u5bf9\u6b64\u6761\u6d4b\u8bd5\u7528\u4f8b\u7684\u8bc4\u8bba\u3002\u57fa\u4e8e\u8bc4\u5ba1\u7ed3\u679c\uff0c\u70b9\u51fb \u3010\u901a\u8fc7\u3011 \u6216 \u3010\u672a\u901a\u8fc7\u3011 \u7684\u72b6\u6001\u6309\u94ae\u4e3a\u672c\u6761\u7528\u4f8b\u6807\u8bb0\u8bc4\u5ba1\u72b6\u6001\u3002

    "},{"location":"quick_start/test_track/#24","title":"2.4 \u8111\u56fe\u65b9\u5f0f\u8bc4\u5ba1\u7528\u4f8b","text":"

    \u9664\u4e86\u901a\u8fc7\u5217\u8868\u53ca\u8868\u5355\u65b9\u5f0f\u8bc4\u5ba1\u7528\u4f8b\u5916\uff0c\u8fd8\u53ef\u4ee5\u901a\u8fc7\u8111\u56fe\u65b9\u5f0f\u5b9e\u73b0\u6b64\u529f\u80fd\u3002\u5728\u3010\u7528\u4f8b\u5217\u8868\u3011\u9875\u9762\u70b9\u51fb \u3010\u8111\u56fe\u3011 \u6807\u7b7e\u5207\u6362\u5230\u8111\u56fe\u5c55\u793a\u6a21\u5f0f\uff0c\u9009\u4e2d\u5f85\u8bc4\u5ba1\u7528\u4f8b\uff0c\u901a\u8fc7\u6dfb\u52a0\u6807\u7b7e\u7684\u65b9\u5f0f\u6765\u6807\u8bb0\u7528\u4f8b\u8bc4\u5ba1\u7ed3\u679c\u3002

    "},{"location":"quick_start/test_track/#3","title":"3 \u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212","text":"

    \u5728\u9876\u90e8\u83dc\u5355\u680f\u4e2d\uff0c\u9009\u62e9\u3010\u6d4b\u8bd5\u8ba1\u5212\u3011\u6253\u5f00\u3010\u6d4b\u8bd5\u8ba1\u5212\u3011\u9875\u9762\u3002

    "},{"location":"quick_start/test_track/#31","title":"3.1 \u65b0\u5efa\u6d4b\u8bd5\u8ba1\u5212","text":"

    \u5728\u3010\u6d4b\u8bd5\u8ba1\u5212\u3011\u9875\u9762\uff0c\u70b9\u51fb\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u4e0a\u65b9\u7684\u3010\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\u3011\u6309\u94ae\uff0c\u6253\u5f00\u3010\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\u3011\u5bf9\u8bdd\u6846\uff0c\u5728\u5bf9\u8bdd\u6846\u4e2d\u8f93\u5165\u6b64\u6b21\u6d4b\u8bd5\u8ba1\u5212\u7684\u540d\u79f0\u3001\u8d1f\u8d23\u4eba\u7b49\u4fe1\u606f\u540e\uff0c\u70b9\u51fb \u3010\u786e\u5b9a\u3011 \u6309\u94ae\u5b8c\u6210\u6d4b\u8bd5\u8ba1\u5212\u521b\u5efa\u3002

    "},{"location":"quick_start/test_track/#32","title":"3.2 \u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u7528\u4f8b","text":"

    \u70b9\u51fb\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u4e2d\u65b0\u521b\u5efa\u7684\u6d4b\u8bd5\u8ba1\u5212\uff0c\u8fdb\u5165\u6d4b\u8bd5\u8ba1\u5212\u8be6\u60c5\u9875\u9762\u3002 \u5207\u6362\u8981\u5173\u8054\u7684\u6d4b\u8bd5\u7528\u4f8b\u7c7b\u578b\u83dc\u5355\uff0c\u70b9\u51fb\u53f3\u4fa7\u5217\u8868\u4e0a\u65b9\u7684 \u3010\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u3011 \u6309\u94ae\uff0c\u5728\u5f39\u51fa\u7684\u7528\u4f8b\u9009\u62e9\u5217\u8868\u4e2d\u9009\u62e9\u8981\u6dfb\u52a0\u5230\u6b64\u6b21\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u7684\u6d4b\u8bd5\u7528\u4f8b\u3002\u53ef\u4ee5\u901a\u8fc7\u641c\u7d22\u6846\u53ca\u9ad8\u7ea7\u641c\u7d22\u529f\u80fd\u8fdb\u4e00\u6b65\u7b5b\u9009\u7279\u5b9a\u7684\u6d4b\u8bd5\u7528\u4f8b\u8fdb\u884c\u6dfb\u52a0\u3002

    \u8bb0\u5f55\u7528\u4f8b\u6267\u884c\u7ed3\u679c \u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u540e\uff0c\u5373\u53ef\u5728\u6d4b\u8bd5\u8ba1\u5212\u9875\u9762\u53f3\u4fa7\u7684\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u4e2d\u67e5\u770b\u5230\u5df2\u5173\u8054\u7684\u6d4b\u8bd5\u7528\u4f8b\u3002\u70b9\u51fb\u67d0\u4e2a\u6d4b\u8bd5\u7528\u4f8b\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u8fdb\u5165\u3010\u7528\u4f8b\u8be6\u60c5\u3011\u9875\u9762\u3002 \u5728\u6267\u884c\u6b65\u9aa4\u4e2d\uff0c\u586b\u5199\u6bcf\u4e00\u6b65\u7684\u5b9e\u9645\u7ed3\u679c\u53ca\u8be5\u6b65\u7684\u6267\u884c\u7ed3\u679c\uff0c\u57fa\u4e8e\u5404\u6b65\u9aa4\u6267\u884c\u60c5\u51b5\u53ca\u8bc4\u5b9a\u6807\u51c6\uff0c\u70b9\u51fb\u4e0a\u65b9\u7684\u72b6\u6001\u6309\u94ae\u4e3a\u6b64\u6761\u7528\u4f8b\u6807\u8bb0\u6267\u884c\u72b6\u6001\u3002 Tips:\u5728\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u4fee\u6539\u529f\u80fd\u7528\u4f8b\u7684\u72b6\u6001\uff0c\u4f1a\u540c\u6b65\u66f4\u65b0\u3010\u7528\u4f8b\u5217\u8868\u3011\u7684\u5bf9\u5e94\u7528\u4f8b\u7684\u72b6\u6001\u3002

    \u540c\u65f6\u5728\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u53ef\u76f4\u63a5\u5728\u66f4\u65b0\u7528\u4f8b\u72b6\u6001\u3002

    \u5173\u8054 \u3010\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3011\u3001\u3010UI \u6d4b\u8bd5\u7528\u4f8b\u3011\u3001\u3010\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3011\u65e0\u9700\u624b\u52a8\u4fee\u6539\u72b6\u6001\uff0c\u5173\u8054\u65b9\u5f0f\u548c\u3010\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3011\u76f8\u540c\u3002

    "},{"location":"quick_start/test_track/#33","title":"3.3 \u8111\u56fe\u65b9\u5f0f\u8bb0\u5f55\u7528\u4f8b\u6267\u884c\u7ed3\u679c","text":"

    \u4e0e\u7528\u4f8b\u7684\u521b\u5efa\u548c\u8bc4\u5ba1\u7c7b\u4f3c\uff0c\u7528\u4f8b\u6267\u884c\u7ed3\u679c\u540c\u6837\u53ef\u4ee5\u901a\u8fc7\u8111\u56fe\u65b9\u5f0f\u8bb0\u5f55\u3002\u5728\u3010\u7528\u4f8b\u5217\u8868\u3011\u9875\u9762\u70b9\u51fb\u3010\u8111\u56fe\u3011\u6807\u7b7e\u5207\u6362\u5230\u8111\u56fe\u5c55\u793a\u9875\u9762\uff0c\u9009\u4e2d\u5f85\u6267\u884c\u7528\u4f8b\uff0c\u901a\u8fc7\u6dfb\u52a0\u6807\u7b7e\u7684\u65b9\u5f0f\u6765\u6807\u8bb0\u7528\u4f8b\u6267\u884c\u7ed3\u679c\u3002

    "},{"location":"quick_start/test_track/#4","title":"4 \u6d4b\u8bd5\u8ba1\u5212\u6267\u884c","text":"

    \u70b9\u51fb\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u53f3\u4fa7\u3010\u6267\u884c\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\uff0c\u540c\u65f6\u6267\u884c\u65f6\u53ef\u9009\u62e9\u8fd0\u884c\u73af\u5883\u3001\u6267\u884c\u6a21\u5f0f\u3001\u8fd0\u884c\u8d44\u6e90\u6c60\u3001\u5931\u8d25\u91cd\u8bd5\u7b49\u5176\u4ed6\u914d\u7f6e\u3002

    "},{"location":"quick_start/test_track/#5","title":"5 \u67e5\u770b\u6d4b\u8bd5\u62a5\u544a","text":"

    \u5f53\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u7684\u6d4b\u8bd5\u7528\u4f8b\u6267\u884c\u5b8c\u6210\u540e\uff0c\u3010\u62a5\u544a\u3011\u9875\u7b7e\u83dc\u5355\u4e0b\u4f1a\u81ea\u52a8\u751f\u6210\u4e00\u4efd\u6d4b\u8bd5\u62a5\u544a\u3002\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u5c55\u793a\u6d4b\u8bd5\u6267\u884c\u7ed3\u679c\u7684\u8be6\u7ec6\u4fe1\u606f\u5e76\u7edf\u8ba1\u6d4b\u8bd5\u6267\u884c\u7387\u3001\u901a\u8fc7\u7387\u7b49\u6570\u636e\u3002\u6d4b\u8bd5\u62a5\u544a\u8be6\u60c5\u53f3\u4e0a\u89d2\u652f\u6301\u5206\u4eab\u3001\u5bfc\u51fa\u64cd\u4f5c\u3002

    "},{"location":"quick_start/ui_test/","title":"\u4f7f\u7528 UI \u6d4b\u8bd5","text":"

    MeterSphere UI \u6d4b\u8bd5\u63d0\u4f9b\u4e86\u5143\u7d20\u5e93\u3001UI \u81ea\u52a8\u5316\u3001\u6d4b\u8bd5\u62a5\u544a\u7b49UI\u6d4b\u8bd5\u76f8\u5173\u529f\u80fd\u3002 \u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u591a\u7ea7\u6a21\u5757\u6765\u7ec4\u7ec7\u7ba1\u7406\u9879\u76ee\u4e0b\u7684 UI \u81ea\u52a8\u5316\u573a\u666f\uff0c\u6267\u884c\u573a\u666f\uff0c\u751f\u6210\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3002UI \u6d4b\u8bd5\u6a21\u5757\u662f\u4f01\u4e1a\u7248 X-Pack \u529f\u80fd\u589e\u5f3a\u5305\u529f\u80fd\uff0c\u5982\u9700\u4f7f\u7528\uff0c\u8bf7\u70b9\u51fb\uff1a\u7533\u8bf7\u4f01\u4e1a\u7248\u8bd5\u7528\u3002

    \u6ce8\u610f\u4e8b\u9879

    1. \u4fee\u6539 /opt/metersphere/.env \u6587\u4ef6\uff0cMS_UI_ENABLED=true \u4fee\u6539\u914d\u7f6e\u540e\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\u6267\u884c msctl reload\u3002
    2. docker ps \u68c0\u67e5 selenium-hub \u5bb9\u5668\u662f\u5426\u6210\u529f\u542f\u52a8\u3002
    3. v2.8.1\u4e4b\u540e\u7248\u672c\u5728 MeterSphere \u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e\u4e2d\u4fee\u6539 selenium-docker \u5730\u5740\u4e3ahttp://selenium-hub:4444\u3002\u8be6\u60c5\u53c2\u8003https://bbs.fit2cloud.com/t/topic/127
    4. \u5728UI\u81ea\u52a8\u5316\u4e2d\uff0c\u4f7f\u7528\u672c\u5730\u8c03\u8bd5\u65f6\uff0c\u6ce8\u610f\u53d6\u6d88\u52fe\u9009\u201c\u6027\u80fd\u6a21\u5f0f\u201d\uff0c\u624d\u53ef\u6b63\u5e38\u62c9\u8d77\u672c\u5730\u6d4f\u89c8\u5668\u6267\u884c\u3002
    5. \u5982\u679c\u5bfc\u5165 License \u6210\u529f\u540e\uff0c\u4f9d\u7136\u6ca1\u6709 UI \u6d4b\u8bd5\u6a21\u5757\uff0c\u8bf7\u5230\u3010\u7528\u6237\u7ec4\u4e0e\u6743\u9650\u3011\u5904\u914d\u7f6e UI \u6a21\u5757\u6743\u9650\u3002
    "},{"location":"quick_start/ui_test/#1","title":"1 \u521b\u5efa\u6a21\u5757","text":"

    MeterSphere \u901a\u8fc7\u6a21\u5757\u6811\u7684\u65b9\u5f0f\u7ec4\u7ec7\u7ba1\u7406\u573a\u666f\uff0c\u7528\u6237\u53ef\u4ee5\u5728\u5de6\u4fa7\u521b\u5efa\u5e76\u7ba1\u7406\u6a21\u5757\u6811\u3002\u5143\u7d20\u5e93\u3001UI\u81ea\u52a8\u5316\u6a21\u5757\u5747\u652f\u6301\u521b\u5efa\u6a21\u5757\u6811\uff0c \u70b9\u51fb\u5de6\u4fa7\u7684\u6a21\u5757\u6811\u4e2d\u7684\u3010\u6dfb\u52a0\u5b50\u6a21\u5757\u3011\u6309\u94ae\uff0c\u4e3a\u8be5\u9879\u76ee\u6dfb\u52a0\u6a21\u5757\u3002

    "},{"location":"quick_start/ui_test/#2","title":"2 \u521b\u5efa\u5143\u7d20","text":"

    \u70b9\u51fb\u5de6\u4fa7\u7684\u6a21\u5757\u6811\u4e2d\u7684\u3010\u6dfb\u52a0\u5b50\u6a21\u5757\u3011 \u6309\u94ae\uff0c\u6dfb\u52a0\u6a21\u5757\uff0c\u7136\u540e\u521b\u5efa\u5143\u7d20\u3002\u5143\u7d20\u5e93\u53ef\u7528\u4e8e\u573a\u666f\u6b65\u9aa4\u4e2d\u5143\u7d20\u7684\u9009\u62e9\u3002

    "},{"location":"quick_start/ui_test/#3","title":"3 \u521b\u5efa\u573a\u666f","text":"

    \u7528\u6237\u53ef\u5728\u5404\u4e2a\u6a21\u5757\u4e2d\u6dfb\u52a0\u573a\u666f\uff0c\u53ef\u4ee5\u624b\u52a8\u521b\u5efa\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u5bfc\u5165\u7684\u65b9\u5f0f\u521b\u5efa UI \u81ea\u52a8\u5316\u573a\u666f\u3002

    "},{"location":"quick_start/ui_test/#31-selenium-ide","title":"3.1 \u5bfc\u5165 Selenium IDE \u811a\u672c","text":""},{"location":"quick_start/ui_test/#32","title":"3.2 \u624b\u52a8\u521b\u5efa\u573a\u666f","text":"

    \u70b9\u51fb\u53f3\u4fa7\u573a\u666f\u5217\u8868\u4e2d\u7684\u3010+\u3011\u53f7\u6309\u94ae\uff0c\u521b\u5efa\u573a\u666f\u3002

    \u5728\u6253\u5f00\u7684\u3010\u7528\u4f8b\u7f16\u8f91\u3011\u9875\u9762\u4e2d\u586b\u5199\u540d\u79f0\u3001\u6a21\u5757\u3001\u72b6\u6001\u3001\u8d23\u4efb\u4eba\u7b49\u8be6\u7ec6\u4fe1\u606f\u3002

    \u70b9\u51fb\u9875\u9762\u53f3\u4e0b\u89d2\u3010+\u3011\u53f7\uff0c\u53ef\u4ee5\u6dfb\u52a0\u573a\u666f\u6b65\u9aa4\uff0c\u573a\u666f\u6b65\u9aa4\u4e2d\u7684\u64cd\u4f5c\u5bf9\u8c61\u53ef\u4ee5\u9009\u62e9\u3010\u5143\u7d20\u5bf9\u8c61\u3011\u6216\u8005\u3010\u5143\u7d20\u5b9a\u4f4d\u3011\uff0c\u3010\u5143\u7d20\u5bf9\u8c61\u3011\u662f\u4ece\u5143\u7d20\u5e93\u4e2d\u9009\u53d6\u914d\u7f6e\u597d\u7684\u5143\u7d20\uff0c\u3010\u5143\u7d20\u5b9a\u4f4d\u3011\u9700\u8981\u7528\u5143\u7d20\u5b9a\u4f4d\u7684\u65b9\u5f0f\u53bb\u5b9a\u4f4d\u5143\u7d20\u3002 \u4ee5\u767b\u5f55 MeterSphere \u7cfb\u7edf\u4e3a\u4f8b\uff0c\u6dfb\u52a0\u5982\u4e0b\u51e0\u4e2a\u6b65\u9aa4\uff1a

    • \u6dfb\u52a0\u3010\u6d4f\u89c8\u5668\u64cd\u4f5c\u3011\u6b65\u9aa4\uff0c\u8f93\u5165 MeterSphere \u767b\u5f55\u9875\u9762\u5730\u5740\u3002

    • \u6dfb\u52a0\u3010\u8f93\u5165\u7528\u6237\u540d\u3011\u6b65\u9aa4: \u64cd\u4f5c\u5bf9\u8c61\u9009\u62e9\u3010\u5143\u7d20\u5b9a\u4f4d\u3011\uff0c\u5b9a\u4f4d\u65b9\u5f0f\u9009\u62e9\u3010xpath\u3011\uff0cxpath \u8def\u5f84\u8f93\u5165 //input[@placeholder=\"ID \u6216 \u90ae\u7bb1\"]\u3002

    • \u83b7\u53d6 xpath \u8def\u5f84\u65b9\u5f0f\u5982\u4e0b\uff08\u4ee5\u8c37\u6b4c\u6d4f\u89c8\u5668\u4e3a\u4f8b\uff09\uff1a\u6309\u4e0b F12 \u6253\u5f00\u5f53\u524d\u9875\u7684\u3010\u5143\u7d20\u3011\u754c\u9762\uff0c\u9009\u4e2d\u5de6\u4e0a\u65b9\u7684\u3010\u9f20\u6807\u3011\u6309\u94ae\uff0c\u62d6\u5230\u767b\u5f55\u754c\u9762\u7684\u3010\u7528\u6237\u540d\u8f93\u5165\u6846\u3011\u4e0a\uff0c\u70b9\u51fb\u9f20\u6807\u53ef\u5feb\u901f\u5b9a\u4f4d\u5230\u3010\u7528\u6237\u540d\u3011\u7684 html \u5143\u7d20\u5185\u5bb9\uff0c\u8f93\u5165\u3010Ctrl+F\u3011\uff0c\u6839\u636e\u5143\u7d20\u5185\u5bb9\u7684\u5173\u952e\u5c5e\u6027\uff0c\u5728\u6587\u672c\u6846\u4e2d\u8f93\u5165 xpath \u8def\u5f84\uff0c\u5373\u53ef\u5feb\u901f\u5b9a\u4f4d\u5230\u5143\u7d20\uff0c\u5982\u679c\u5143\u7d20\u5185\u5bb9\u53d8\u9ec4\uff0c\u5219\u8868\u793a xpath \u6210\u529f\u5b9a\u4f4d\u5230\u5143\u7d20\u3002

    • \u6dfb\u52a0\u3010\u8f93\u5165\u5bc6\u7801\u3011\u6b65\u9aa4\uff0c\u65b9\u5f0f\u540c\u4e0a\uff0cxpath \u8def\u5f84\u8f93\u5165 //input[@placeholder=\"\u5bc6\u7801\"]\u3002

    • \u6dfb\u52a0\u3010\u70b9\u51fb\u767b\u5f55\u3011\u6b65\u9aa4\uff0c\u70b9\u51fb\u9875\u9762\u53f3\u4e0b\u89d2\u3010+\u3011\u53f7\uff0c\u9009\u62e9\u3010\u9f20\u6807\u64cd\u4f5c\u3011\uff0c\u3010\u6b65\u9aa4\u7c7b\u578b\u3011\u9009\u62e9\u9f20\u6807\u70b9\u51fb\uff0c\u3010\u70b9\u51fb\u65b9\u5f0f\u3011\u9009\u62e9\u5355\u673a\uff0c\u5143\u7d20\u4f4d\u7f6e\u9009\u62e9\u3010\u5143\u7d20\u5b9a\u4f4d\u3011\uff0c\u5b9a\u4f4d\u65b9\u5f0f\u9009\u62e9\u3010xpath\u3011\uff0cxpath \u8def\u5f84\u4e3a //button[@type=\"button\"]\u3002

    "},{"location":"quick_start/ui_test/#4","title":"4 \u5728\u573a\u666f\u6b65\u9aa4\u4e2d\u6dfb\u52a0\u9ad8\u7ea7\u8bbe\u7f6e","text":"

    \u5728\u9ad8\u7ea7\u8bbe\u7f6e\u4e2d\uff0c\u4ee5\u540e\u7f6e\u64cd\u4f5c\u4e3a\u4f8b\uff0c\u9009\u62e9 \u540e\u7f6e\u64cd\u4f5c \uff0c\u70b9\u51fb\u4e0b\u62c9\u6846\uff0c\u9009\u62e9\u9700\u8981\u7684\u65b9\u5f0f\uff0c\u70b9\u51fb\u6dfb\u52a0\u3002\u53ef\u4ee5\u6dfb\u52a0\u540e\u7f6e\u811a\u672c\uff0c\u7b49\u5f85\u65f6\u95f4\uff0c\u65ad\u8a00\u548c\u540e\u7f6e\u63d0\u53d6\u3002

    "},{"location":"quick_start/ui_test/#5-ui","title":"5 \u8c03\u8bd5 UI \u81ea\u52a8\u5316\u573a\u666f","text":"

    \u53ef\u5728\u7f16\u8f91\u573a\u666f\u9875\u9762\u8c03\u8bd5 UI \u573a\u666f\uff0c\u4e5f\u53ef\u4ee5\u5728 UI \u81ea\u52a8\u5316\u573a\u666f\u5217\u8868\u9875\u9762\u6267\u884cUI\u573a\u666f\u3002\u5982\u56fe\u70b9\u51fb\u573a\u666f\u7f16\u8f91\u9875\u9762\u7684\u3010\u751f\u6210\u62a5\u544a\u3011\u6309\u94ae\uff0c\u53ef\u751f\u6210\u5e76\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3002 \u52fe\u9009\u6027\u80fd\u6a21\u5f0f\uff0c\u6d4b\u8bd5\u62a5\u544a\u4e2d\u9ed8\u8ba4\u65e0\u622a\u56fe\u4fe1\u606f\uff1b\u4e0d\u52fe\u9009\u6027\u80fd\u6a21\u5f0f\uff0c\u6d4b\u8bd5\u62a5\u544a\u51fa\u9519\u6b65\u9aa4\u4e2d\u6709\u622a\u56fe\u4fe1\u606f\u3002 \u5982\u679c\u9700\u8981\u6d4b\u8bd5\u62a5\u544a\u53ef\u4ee5\u67e5\u770b\u811a\u672c\u4e2d\u6bcf\u4e2a\u6b65\u9aa4\u7684\u622a\u56fe\uff0c\u53ef\u4ee5\u6279\u91cf\u591a\u9009\u811a\u672c\u6b65\u9aa4\u914d\u7f6e\u201c\u5f53\u524d\u6b65\u9aa4\u622a\u56fe\u201d\u7b56\u7565\u3002

    "},{"location":"quick_start/ui_test/#6","title":"6 \u751f\u6210\u6d4b\u8bd5\u62a5\u544a","text":"

    \u70b9\u51fb\u573a\u666f\u5217\u8868\u4e2d\u6267\u884c\u6309\u94ae\uff0c\u4f1a\u5f39\u51fa\u9875\u9762\u663e\u793a\u672c\u6b21\u573a\u666f\u7684\u6267\u884c\u7ed3\u679c\u3002

    \u67e5\u770b\u62a5\u544a\u4e2d\u6b65\u9aa4\u622a\u56fe\u4fe1\u606f

    \u4e5f\u53ef\u5728\u6d4b\u8bd5\u62a5\u544a\u9875\u9762\u4e2d\uff0c\u627e\u5230\u8981\u67e5\u770b\u7684\u62a5\u544a\uff0c\u70b9\u51fb\u5176\u3010\u62a5\u544a\u8be6\u60c5\u3011\u6309\u94ae\u6253\u5f00\u3010\u6d4b\u8bd5\u62a5\u544a\u3011\u9875\u9762\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3002

    "},{"location":"teach_video/video_index/","title":"\u6559\u5b66\u89c6\u9891","text":""},{"location":"teach_video/video_index/#1","title":"1 \u8bfe\u7a0b\u7b80\u4ecb\u548c\u7ebf\u4e0a\u73af\u5883\u4ecb\u7ecd","text":""},{"location":"teach_video/video_index/#2","title":"2 \u6d4b\u8bd5\u8ddf\u8e2a","text":""},{"location":"teach_video/video_index/#3","title":"3 \u63a5\u53e3\u6d4b\u8bd5","text":""},{"location":"teach_video/video_index/#4","title":"4 \u6027\u80fd\u6d4b\u8bd5","text":""},{"location":"teach_video/video_index/#5-ui","title":"5 UI \u6d4b\u8bd5","text":""},{"location":"teach_video/video_index/#6-devops","title":"6 \u878d\u5165 DevOps","text":""},{"location":"teach_video/video_index/#7","title":"7 \u5176\u5b83\u89c6\u9891","text":"
    • MeterSphere \u5982\u4f55\u4e0e TAPD\u548c Jira \u5bf9\u63a5
    • MeterSphere \u5982\u4f55\u5bf9\u63a5\u90ae\u4ef6\u3001\u9489\u9489\u3001\u4f01\u4e1a\u5fae\u4fe1
    • \u5982\u4f55\u5728 MeterSphere \u4e2d\u505a\u573a\u666f\u5316\u7684\u63a5\u53e3\u6d4b\u8bd5
    • \u5982\u4f55\u5728 MeterSphere \u4e2d\u5bfc\u5165 Postman \u811a\u672c\u505a\u63a5\u53e3\u6d4b\u8bd5
    • \u5982\u4f55\u5728 MeterSphere \u4e2d\u5bfc\u5165 Swagger UI \u811a\u672c\u505a\u63a5\u53e3\u6d4b\u8bd5
    "},{"location":"tutorial/use_tutorial/","title":"\u4f7f\u7528\u6559\u7a0b","text":""},{"location":"tutorial/use_tutorial/#1","title":"1 \u63a5\u53e3\u6d4b\u8bd5","text":"
    • \u5982\u4f55\u4f7f\u7528 MeterSphere \u8fdb\u884c Dubbo \u534f\u8bae\u63a5\u53e3\u6d4b\u8bd5
    • \u5982\u4f55\u4f7f\u7528 MeterSphere \u8fdb\u884c\u573a\u666f\u5316\u63a5\u53e3\u6d4b\u8bd5
    • \u5982\u4f55\u5728 MeterSphere \u4e2d\u4f7f\u7528 BeanShell \u524d\u7f6e\u811a\u672c\u751f\u6210\u63a5\u53e3\u8ba4\u8bc1\u7b7e\u540d
    • MeterSphere \u4e2d\u5404\u7c7b\u53d8\u91cf\u7684\u8bbe\u7f6e\u548c\u4f7f\u7528\u5168\u6559\u7a0b
    • MeterSphere \u4e2d JMeter \u51fd\u6570\u3001MockJS \u51fd\u6570\u4f7f\u7528\u6559\u7a0b
    • \u57fa\u4e8e MeterSphere \u63a5\u53e3\u81ea\u52a8\u5316\u505a\u6570\u636e\u9a71\u52a8\uff08ddt\uff09\u6d4b\u8bd5
    • MeterSphere Mock \u670d\u52a1\u529f\u80fd\u7684\u521b\u5efa\u548c\u8c03\u7528
    • \u4f7f\u7528 Python \u8c03\u7528 MeterSphere API \u89e6\u53d1\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c
    • MeterSphere \u4e2d\u5e38\u7528 Jmeter \u51fd\u6570\u4f7f\u7528\u8be6\u7ec6
    • MeterSphere \u5feb\u901f\u751f\u6210\u6d4b\u8bd5\u6570\u636e(\u679a\u4e3e\u3001\u6b63\u5219\u3001\u51fd\u6570)
    • MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u73af\u5883\u53ca\u73af\u5883\u7ec4+\u52a8\u6001\u6570\u636e\u6e90\u4f7f\u7528
    • MeterSphere \u6570\u636e\u5e93\u63d0\u53d6\u53c2\u6570\u548c\u65ad\u8a00
    "},{"location":"tutorial/use_tutorial/#2-ui","title":"2 UI \u6d4b\u8bd5","text":"
    • MeterSphere \u7684 UI \u6d4b\u8bd5\u6a21\u5757\u5982\u4f55\u8fdc\u7a0b\u8c03\u7528\u6d4f\u89c8\u5668
    • MeterSphere \u7684 UI \u81ea\u52a8\u5316\u5982\u4f55\u5b9e\u73b0\u6587\u4ef6\u4e0a\u4f20\u7684\u573a\u666f
    • MeterSphere \u7684 UI \u6d4b\u8bd5\u6ed1\u5757\u9a8c\u8bc1\u53ca\u9875\u9762\u6eda\u52a8\u6761\u95ee\u9898\u5904\u7406
    "},{"location":"tutorial/use_tutorial/#3","title":"3 \u670d\u52a1\u96c6\u6210","text":"
    • MeterSphere \u670d\u52a1\u96c6\u6210\u4e4b\u7985\u9053\u5bf9\u63a5
    • MeterSphere \u670d\u52a1\u96c6\u6210\u4e4b JIRA \u5bf9\u63a5
    • MeterSphere \u670d\u52a1\u96c6\u6210\u4e4b TAPD \u5bf9\u63a5
    • MeterSphere \u670d\u52a1\u96c6\u6210 Azure Devops \u5bf9\u63a5
    • \u5728 MeterSphere \u5e73\u53f0\u6dfb\u52a0\u5e76\u4f7f\u7528 Kubernetes \u8d44\u6e90\u6c60
    • MeterSphere\u5f00\u6e90\u6301\u7eed\u6d4b\u8bd5\u5e73\u53f0\u4e0e\u817e\u8baf\u4e91CODING DevOps\u7684\u96c6\u6210
    "},{"location":"tutorial/use_tutorial/#4","title":"4 \u63d2\u4ef6\u4f7f\u7528","text":"
    • MeterSphere \u548c Jenkins \u5b9e\u73b0\u6d41\u6c34\u7ebf\u96c6\u6210
    • MeterSphere\u4e4b\u6d4f\u89c8\u5668\u5f55\u5236\u63d2\u4ef6\uff1achrome-extensions
    • MeterSphere \u63a5\u53e3\u81ea\u52a8\u5316\u63d2\u4ef6\u57fa\u7840\u5f00\u53d1\u6559\u7a0b
    • MeterSphere \u4e4b IDEA \u63a5\u53e3\u540c\u6b65\u63d2\u4ef6
    • Metersphere Selenium IDE\u63d2\u4ef6\u5f55\u5236UI\u811a\u672c
    "},{"location":"tutorial/use_tutorial/#5","title":"5 \u811a\u672c\u5f15\u7528","text":"
    • MeterSphere Python \u524d\u540e\u7f6e\u811a\u672c\u5982\u4f55\u5f15\u7528\u7b2c\u4e09\u65b9\u5e93
    • MeterSphere BeanShell \u524d\u540e\u7f6e\u811a\u672c\u5982\u4f55\u5f15\u7528\u5916\u90e8 Jar \u5305
    • MeterSphere JavaScript \u524d\u540e\u7f6e\u811a\u672c\u5982\u4f55\u5f15\u7528\u5916\u90e8\u5305
    "},{"location":"tutorial/use_tutorial/#6","title":"6 \u9879\u76ee\u8bbe\u7f6e","text":"
    • MeterSphere \u6d88\u606f\u901a\u77e5\u4e4b\u5bf9\u63a5\u90ae\u4ef6\u3001\u9489\u9489\u3001\u4f01\u4e1a\u5fae\u4fe1\u3001\u98de\u4e66
    "},{"location":"user_manual/access_matrix/","title":"\u6743\u9650\u77e9\u9635","text":"\u4e00\u7ea7\u529f\u80fd \u4e8c\u7ea7\u529f\u80fd \u4e09\u7ea7\u529f\u80fd \u5177\u4f53\u7528\u4f8b \u7cfb\u7edf\u7ba1\u7406\u5458 \u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406\u5458 \u5de5\u4f5c\u7a7a\u95f4\u6210\u5458 \u9879\u76ee\u7ba1\u7406\u5458 \u9879\u76ee\u6210\u5458 \u53ea\u8bfb\u7528\u6237 \u81ea\u5b9a\u4e49\u89d2\u8272 \u7cfb\u7edf\u7ba1\u7406 \u7cfb\u7edf \u7528\u6237\u7ba1\u7406 \u5217\u51fa\u7cfb\u7edf\u4e2d\u7684\u6240\u6709\u7528\u6237 Y * \u6307\u5b9a\u7528\u6237\u00a0ID\u3001\u7528\u6237\u540d\u3001\u90ae\u7bb1\u3001\u7535\u8bdd\u3001\u5bc6\u7801\u7b49\u4fe1\u606f\u521b\u5efa\u65b0\u7528\u6237 Y * \u4fee\u6539\u6307\u5b9a\u7528\u6237\u7684\u7528\u6237\u540d\u3001\u90ae\u7bb1\u3001\u7535\u8bdd\u3001\u5bc6\u7801\u7b49\u4fe1\u606f Y * \u6dfb\u52a0\u3001\u4fee\u6539\u6307\u5b9a\u7528\u6237\u7684\u89d2\u8272 Y * \u5220\u9664\u6307\u5b9a\u7528\u6237 Y * \u542f\u7528\u3001\u7981\u7528\u6307\u5b9a\u7528\u6237\uff0c\u7528\u6237\u7981\u7528\u540e\u65e0\u6cd5\u767b\u5f55\u7cfb\u7edf Y * \u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406 \u5217\u51fa\u7cfb\u7edf\u4e2d\u7684\u6240\u6709\u5de5\u4f5c\u7a7a\u95f4 Y * \u6307\u5b9a\u5de5\u4f5c\u7a7a\u95f4\u540d\u79f0\u3001\u63cf\u8ff0\u53ca\u6240\u5c5e\u7ec4\u7ec7\u7b49\u4fe1\u606f\u521b\u5efa\u65b0\u5de5\u4f5c\u7a7a\u95f4 Y * \u4fee\u6539\u6307\u5b9a\u5de5\u4f5c\u7a7a\u95f4\u7684\u540d\u79f0\u3001\u63cf\u8ff0\u53ca\u6240\u5c5e\u7ec4\u7ec7\u7b49\u4fe1\u606f Y * \u5220\u9664\u6307\u5b9a\u5de5\u4f5c\u7a7a\u95f4 Y * \u7528\u6237\u7ec4\u4e0e\u6743\u9650\u7ba1\u7406 \u5217\u51fa\u7cfb\u7edf\u6240\u6709\u89d2\u8272\u4fe1\u606f Y * \u521b\u5efa\u3001\u4fee\u6539\u7528\u6237\u7ec4\u57fa\u672c\u4fe1\u606f Y * \u4fee\u6539\u7528\u6237\u7ec4\u6743\u9650 Y * \u7ed9\u7528\u6237\u7ec4\u6dfb\u52a0\u3001\u5220\u9664\u6210\u5458 Y * \u5220\u9664\u7528\u6237\u7ec4 Y * \u6d4b\u8bd5\u8d44\u6e90\u6c60\u7ba1\u7406 \u5217\u51fa\u7cfb\u7edf\u4e2d\u7684\u6240\u6709\u6d4b\u8bd5\u8d44\u6e90\u6c60 Y * \u8bbe\u7f6e\u6d4b\u8bd5\u8d44\u6e90\u6c60\u540d\u79f0\u3001\u5177\u4f53\u914d\u7f6e\u7b49\u4fe1\u606f\u521b\u5efa\u65b0\u6d4b\u8bd5\u8d44\u6e90\u6c60 Y * \u4fee\u6539\u6307\u5b9a\u6d4b\u8bd5\u8d44\u6e90\u6c60\u7684\u540d\u79f0\u3001\u5177\u4f53\u7b49\u4fe1\u606f Y * \u5220\u9664\u6307\u5b9a\u6d4b\u8bd5\u8d44\u6e90\u6c60 Y * \u542f\u7528\u3001\u7981\u7528\u6307\u5b9a\u6d4b\u8bd5\u8d44\u6e90\u6c60 Y * \u7ed9\u6307\u5b9a\u8d44\u6e90\u6c60\u6dfb\u52a0\u3001\u5220\u9664\u538b\u529b\u8282\u70b9 Y * \u7cfb\u7edf\u8bbe\u7f6e \u57fa\u672c\u4fe1\u606f\u914d\u7f6e Y * \u90ae\u4ef6\u8bbe\u7f6e Y * LDAP\u8bbe\u7f6e Y * \u5de5\u4f5c\u7a7a\u95f4 \u5de5\u4f5c\u7a7a\u95f4\u6210\u5458\u7ba1\u7406 \u5217\u51fa\u8be5\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u6240\u6709\u6210\u5458\u53ca\u5176\u89d2\u8272\u4fe1\u606f Y * \u9009\u62e9\u7cfb\u7edf\u4e2d\u5df2\u6709\u7528\u6237\u5e76\u6307\u5b9a\u5de5\u4f5c\u7a7a\u95f4\u7ea7\u89d2\u8272\u6dfb\u52a0\u81f3\u5de5\u4f5c\u7a7a\u95f4\u6210\u5458 Y * \u4fee\u6539\u6307\u5b9a\u6210\u5458\u5728\u8be5\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u89d2\u8272 Y * \u4ece\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u5220\u9664\u6307\u5b9a\u6210\u5458\uff08\u53bb\u9664\u89d2\u8272\u4fe1\u606f\uff09 Y * \u670d\u52a1\u96c6\u6210 \u914d\u7f6eTapd\u3001Jira\u3001\u7985\u9053\u7b49\u670d\u52a1\u96c6\u6210\u4fe1\u606f Y Y Y * \u4e2a\u4eba\u4fe1\u606f \u4e2a\u4eba\u8bbe\u7f6e \u4fee\u6539\u81ea\u5df1\u7684\u7528\u6237\u540d\u3001\u90ae\u7bb1\u3001\u7535\u8bdd\u3001\u5bc6\u7801\u7b49\u4fe1\u606f Y Y Y Y Y Y * \u6d4b\u8bd5\u8ddf\u8e2a \u9996\u9875 Y Y Y \u9879\u76ee \u9879\u76ee \u5217\u51fa\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u6240\u6709\u9879\u76ee Y Y Y \u6307\u5b9a\u9879\u76ee\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u4fe1\u606f\uff0c\u5728\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u521b\u5efa\u65b0\u9879\u76ee Y Y \u4fee\u6539\u6307\u5b9a\u9879\u76ee\u7684\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u4fe1\u606f Y Y \u5220\u9664\u6307\u5b9a\u9879\u76ee Y Y \u5728\u9879\u76ee\u5217\u8868\u4e2d\u70b9\u51fb\u9879\u76ee\u540d\u79f0\uff0c\u8fdb\u5165\u8be5\u9879\u76ee\u4e0b\u7684\u6d4b\u8bd5\u7528\u4f8b\u9875\u9762 Y Y Y \u6d4b\u8bd5\u7528\u4f8b \u6d4b\u8bd5\u7528\u4f8b\u6811 \u4ee5\u6811\u72b6\u5f62\u5f0f\u5c55\u793a\u9879\u76ee\u7684\u6a21\u5757\u53ca\u5b50\u6a21\u5757 Y Y Y \u5728\u7528\u4f8b\u6811\u4e2d\u7684\u4efb\u4e00\u8282\u70b9\u5747\u53ef\u521b\u5efa\u8be5\u8282\u70b9\u7684\u5b50\u8282\u70b9\uff0c\u7528\u4f8b\u6811\u6700\u591a\u652f\u6301\u00a05\u00a0\u7ea7\u5b50\u8282\u70b9 Y Y \u901a\u8fc7\u524d\u7aef\u62d6\u62fd\u7684\u65b9\u5f0f\u79fb\u52a8\u7528\u4f8b\u6811\u7684\u67d0\u4e2a\u8282\u70b9\u5230\u6307\u5b9a\u4f4d\u7f6e Y Y \u4ece\u7528\u4f8b\u6811\u4e2d\u5220\u9664\u67d0\u4e2a\u8282\u70b9\uff0c\u8be5\u8282\u70b9\u53ca\u5176\u5b50\u8282\u70b9\u4e0b\u4e0b\u7684\u6240\u6709\u7528\u4f8b\uff0c\u79fb\u52a8\u5230\u540d\u4e3a\u2018\u672a\u5f52\u7c7b\u7528\u4f8b\u00a0\u2019\u7684\u865a\u62df1\u00a0\u7ea7\u8282\u70b9 Y Y \u6d4b\u8bd5\u7528\u4f8b\u7ba1\u7406 \u4ee5\u5217\u8868\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u9009\u4e2d\u7684\u7528\u4f8b\u6811\u67d0\u8282\u70b9\u4e0b\u7684\u6240\u6709\u7528\u4f8b Y Y Y \u5728\u5f53\u524d\u9009\u4e2d\u7684\u7528\u4f8b\u6811\u8282\u70b9\u4e0b\uff0c\u65b0\u5efa\u6d4b\u8bd5\u7528\u4f8b\uff1b\u6d4b\u8bd5\u7528\u4f8b\u4fe1\u606f\u5305\u542b\u7528\u4f8b\u540d\u79f0\u3001\u6240\u5c5e\u6a21\u5757\u3001\u4f18\u5148\u7ea7\u3001\u6267\u884c\u6b65\u9aa4\u7b49\u4fe1\u606f Y Y \u5220\u9664\u6307\u5b9a\u7684\u6d4b\u8bd5\u7528\u4f8b Y Y \u9009\u62e9\u67d0\u4e2a\u6d4b\u8bd5\u7528\u4f8b\uff0c\u7f16\u8f91\u4fee\u6539\u6d4b\u8bd5\u7528\u4f8b\u76f8\u5173\u4fe1\u606f Y Y \u9009\u62e9\u67d0\u4e2a\u6d4b\u8bd5\u7528\u4f8b\uff0c\u7f16\u8f91\u4fee\u6539\u6d4b\u8bd5\u7528\u4f8b\u7ef4\u62a4\u4eba\u4fe1\u606f Y Y \u6d4b\u8bd5\u8ba1\u5212 \u6d4b\u8bd5\u8ba1\u5212\u5217\u8868 \u4ee5\u5217\u8868\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u6240\u6709\u9879\u76ee\u4e0b\u7684\u6240\u6709\u6d4b\u8bd5\u8ba1\u5212 Y Y Y \u6307\u5b9a\u6d4b\u8bd5\u8ba1\u5212\u7684\u540d\u79f0\u3001\u63cf\u8ff0\u3001\u6240\u5c5e\u9879\u76ee\u7b49\u4fe1\u606f\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212 Y Y \u9009\u62e9\u67d0\u4e2a\u6d4b\u8bd5\u8ba1\u5212\uff0c\u7f16\u8f91\u4fee\u6539\u6d4b\u8bd5\u8ba1\u5212\u76f8\u5173\u4fe1\u606f Y Y \u6d4b\u8bd5\u8ba1\u5212\u4e2d\u7684\u7528\u4f8b\u7ba1\u7406 \u4ece\u8be5\u6d4b\u8bd5\u8ba1\u5212\u6240\u5c5e\u9879\u76ee\u4e2d\uff0c\u9009\u62e9\u7528\u4f8b\u6811\u8282\u70b9\u6216\u5177\u4f53\u7528\u4f8b\uff0c\u6dfb\u52a0\u5230\u8be5\u6d4b\u8bd5\u8ba1\u5212\uff0c\u5e76\u6307\u5b9a\u8be5\u7528\u4f8b\u7684\u6267\u884c\u4eba\u7b49\u4fe1\u606f Y Y \u4ee5\u53ea\u8bfb\u7684\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u5df2\u6dfb\u52a0\u5230\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u7684\u7528\u4f8b\u6811 Y Y Y \u4ee5\u5217\u8868\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u9009\u4e2d\u7684\u7528\u4f8b\u6811\u67d0\u8282\u70b9\u4e0b\u7684\u6240\u6709\u7528\u4f8b Y Y Y \u9009\u62e9\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u7684\u67d0\u4e2a\u6d4b\u8bd5\u7528\u4f8b\uff0c\u7f16\u8f91\u4fee\u6539\u6267\u884c\u4eba\u7b49\u76f8\u5173\u4fe1\u606f Y Y \u9009\u62e9\u6d4b\u8bd5\u8ba1\u5212\u4e2d\u7684\u67d0\u4e2a\u6d4b\u8bd5\u7528\u4f8b\uff0c\u7f16\u8f91\u4fee\u6539\u6267\u884c\u7ed3\u679c\u7b49\u76f8\u5173\u4fe1\u606f Y Y \u63a5\u53e3\u6d4b\u8bd5 \u9879\u76ee \u5217\u51fa\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u6240\u6709\u9879\u76ee Y Y Y \u6307\u5b9a\u9879\u76ee\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u4fe1\u606f\uff0c\u5728\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u521b\u5efa\u65b0\u9879\u76ee Y Y \u4fee\u6539\u6307\u5b9a\u9879\u76ee\u7684\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u4fe1\u606f Y Y \u5220\u9664\u6307\u5b9a\u9879\u76ee Y Y \u5728\u9879\u76ee\u5217\u8868\u4e2d\u70b9\u51fb\u9879\u76ee\u540d\u79f0\uff0c\u8fdb\u5165\u8be5\u9879\u76ee\u4e0b\u7684\u63a5\u53e3\u7ba1\u7406\u9875\u9762 Y Y Y \u63a5\u53e3 TBD Y Y Y \u6d4b\u8bd5 \u4ee5\u5217\u8868\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u6240\u6709\u9879\u76ee\u4e0b\u7684\u6240\u6709\u63a5\u53e3\u6d4b\u8bd5 Y Y Y \u70b9\u51fb\u521b\u5efa\u6d4b\u8bd5\u6309\u94ae\uff0c\u9009\u62e9\u6d4b\u8bd5\u6240\u5c5e\u9879\u76ee\uff0c\u586b\u5199\u6d4b\u8bd5\u7684\u5177\u4f53\u914d\u7f6e\u4fe1\u606f\u5e76\u4fdd\u5b58\u6d4b\u8bd5 Y Y \u5220\u9664\u6307\u5b9a\u7684\u63a5\u53e3\u6d4b\u8bd5 Y Y \u9009\u62e9\u67d0\u4e2a\u63a5\u53e3\u6d4b\u8bd5\uff0c\u67e5\u770b\u5e76\u7f16\u8f91\u4fee\u6539\u8be5\u63a5\u53e3\u6d4b\u8bd5\u5177\u4f53\u4fe1\u606f Y Y \u4ec5\u67e5\u770b \u9009\u62e9\u67d0\u4e2a\u63a5\u53e3\u6d4b\u8bd5\u6267\u884c\u8be5\u6d4b\u8bd5\uff0c\u6d4b\u8bd5\u5f00\u59cb\u6267\u884c\u540e\u81ea\u52a8\u8df3\u8f6c\u5230\u8be5\u6b21\u6267\u884c\u4ea7\u751f\u7684\u6d4b\u8bd5\u62a5\u544a Y Y \u62a5\u544a \u4ee5\u5217\u8868\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u6240\u6709\u9879\u76ee\u4e0b\u7684\u6240\u6709\u6d4b\u8bd5\u62a5\u544a Y Y Y \u5220\u9664\u6307\u5b9a\u7684\u6d4b\u8bd5\u62a5\u544a Y Y \u9009\u62e9\u67d0\u4e2a\u6d4b\u8bd5\u62a5\u544a\uff0c\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u8be6\u7ec6\u5185\u5bb9 Y Y Y \u9009\u62e9\u591a\u4e2a\u6d4b\u8bd5\u62a5\u544a\u5bf9\u6bd4\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u5185\u5bb9 Y Y Y \u6027\u80fd\u6d4b\u8bd5 \u9879\u76ee \u5217\u51fa\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u6240\u6709\u9879\u76ee Y Y Y \u6307\u5b9a\u9879\u76ee\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u4fe1\u606f\uff0c\u5728\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u521b\u5efa\u65b0\u9879\u76ee Y Y \u4fee\u6539\u6307\u5b9a\u9879\u76ee\u7684\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u4fe1\u606f Y Y \u5220\u9664\u6307\u5b9a\u9879\u76ee Y Y \u6d4b\u8bd5 \u4ee5\u5217\u8868\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u6240\u6709\u9879\u76ee\u4e0b\u7684\u6240\u6709\u6027\u80fd\u6d4b\u8bd5 Y Y Y \u70b9\u51fb\u521b\u5efa\u6d4b\u8bd5\u6309\u94ae\uff0c\u9009\u62e9\u6d4b\u8bd5\u6240\u5c5e\u9879\u76ee\uff0c\u586b\u5199\u6d4b\u8bd5\u7684\u5177\u4f53\u914d\u7f6e\u4fe1\u606f\u5e76\u4fdd\u5b58\u6d4b\u8bd5 Y Y \u5220\u9664\u6307\u5b9a\u7684\u6027\u80fd\u6d4b\u8bd5 Y Y \u9009\u62e9\u67d0\u4e2a\u6027\u80fd\u6d4b\u8bd5\uff0c\u67e5\u770b\u5e76\u7f16\u8f91\u4fee\u6539\u8be5\u6027\u80fd\u6d4b\u8bd5\u5177\u4f53\u4fe1\u606f Y Y \u4ec5\u67e5\u770b \u9009\u62e9\u67d0\u4e2a\u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u8be5\u6d4b\u8bd5\uff0c\u6d4b\u8bd5\u5f00\u59cb\u6267\u884c\u540e\u81ea\u52a8\u8df3\u8f6c\u5230\u8be5\u6b21\u6267\u884c\u4ea7\u751f\u7684\u6d4b\u8bd5\u62a5\u544a Y Y \u62a5\u544a \u4ee5\u5217\u8868\u5f62\u5f0f\u5c55\u793a\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u6240\u6709\u9879\u76ee\u4e0b\u7684\u6240\u6709\u6d4b\u8bd5\u62a5\u544a Y Y Y \u5220\u9664\u6307\u5b9a\u7684\u6d4b\u8bd5\u62a5\u544a Y Y \u9009\u62e9\u67d0\u4e2a\u6d4b\u8bd5\u62a5\u544a\uff0c\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u8be6\u7ec6\u5185\u5bb9 Y Y Y \u9009\u62e9\u591a\u4e2a\u6d4b\u8bd5\u62a5\u544a\u5bf9\u6bd4\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u5185\u5bb9 Y Y Y"},{"location":"user_manual/api_test/","title":"Api test","text":"

    \u4f20\u7edf\u7684\u63a5\u53e3\u81ea\u52a8\u5316\u6d4b\u8bd5\u5927\u591a\u501f\u52a9\u7b2c\u4e09\u65b9\u6d4b\u8bd5\u6846\u67b6\uff0c\u4ee5\u4ee3\u7801\u5de5\u7a0b\u9879\u76ee\u7684\u5f62\u5f0f\u5b9e\u73b0\uff0c\u4e0d\u5229\u4e8e\u7ba1\u7406\u548c\u7ef4\u62a4\uff1b MeterSphere \u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u5f00\u53d1\u4e86\u53ef\u89c6\u5316\u63a5\u53e3\u81ea\u52a8\u5316\u6d4b\u8bd5\u529f\u80fd\uff0c\u53ea\u9700\u8981\u914d\u7f6e\u6bcf\u4e2a\u63a5\u53e3\u7684\u5165\u53c2\u548c \u65ad\u8a00\uff0c\u5373\u53ef\u5b9e\u73b0\u5bf9\u63a5\u53e3\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u540c\u65f6\u8fd8\u5f00\u53d1\u4e86\u57fa\u4e8echrome\u6d4f\u89c8\u5668\u7684MeterSphere Recorder\u63d2\u4ef6\uff0c\u65b9\u4fbf\u5f55\u5236\u573a\u666f\u4ee5\u53ca\u5feb\u901f\u5bfc\u5165\u573a\u666f\uff0c\u5927\u5927\u63d0\u5347\u4e86\u63a5\u53e3\u6d4b\u8bd5\u7684\u6548\u7387\u3002

    "},{"location":"user_manual/api_test/#_1","title":"\u9996\u9875","text":"

    \u7531\u6d4b\u8bd5\u3001\u62a5\u544a\u3001\u6d4b\u8bd5\u65e5\u5386\u4e09\u4e2a\u90e8\u5206\u7ec4\u6210\uff0c\u53ef\u5feb\u901f\u4e86\u89e3\u5230\u6700\u8fd1\u6267\u884c\u7684\u6d4b\u8bd5\u5185\u5bb9\u4ee5\u53ca\u6574\u4f53\u7684\u63a5\u53e3\u6d4b\u8bd5\u9891\u6b21\u3002

    • \u6d4b\u8bd5\uff1a\u5c55\u793a\u6700\u8fd1 5 \u6b21\u6267\u884c\u7684\u63a5\u53e3\u6d4b\u8bd5

    • \u62a5\u544a\uff1a\u5c55\u793a\u6700\u8fd1 5 \u6b21\u6267\u884c\u7684\u63a5\u53e3\u6d4b\u8bd5\u6240\u751f\u6210\u7684\u62a5\u544a

    • \u6d4b\u8bd5\u65e5\u5386\uff1a\u6309\u65f6\u95f4\u7ef4\u5ea6\u5c55\u793a\u63a5\u53e3\u6d4b\u8bd5\u6267\u884c\u7684\u9891\u6b21\uff0c\u989c\u8272\u8d8a\u6df1\uff0c\u4ee3\u8868\u4f7f\u7528\u9891\u6b21\u8d8a\u9ad8

    "},{"location":"user_manual/api_test/#_2","title":"\u9879\u76ee","text":"

    \u5bf9\u9879\u76ee\u8fdb\u884c\u65b0\u589e\u3001\u4fee\u6539\u3001\u5220\u9664\u3001\u67e5\u8be2\u64cd\u4f5c

    "},{"location":"user_manual/api_test/#_3","title":"\u65b0\u589e\u9879\u76ee","text":"

    \u70b9\u51fb\u201c\u521b\u5efa\u9879\u76ee\u201d\uff0c\u5f55\u5165\u9879\u76ee\u540d\u79f0\u548c\u63cf\u8ff0

    "},{"location":"user_manual/api_test/#_4","title":"\u4fee\u6539\u9879\u76ee","text":"

    \u9009\u62e9\u8981\u4fee\u6539\u7684\u9879\u76ee\uff0c\u70b9\u51fb\u7f16\u8f91\u6309\u94ae

    "},{"location":"user_manual/api_test/#_5","title":"\u5220\u9664\u9879\u76ee","text":"

    \u9009\u62e9\u8981\u5220\u9664\u7684\u9879\u76ee\uff0c\u70b9\u51fb\u5220\u9664\u6309\u94ae

    "},{"location":"user_manual/api_test/#_6","title":"\u67e5\u8be2\u9879\u76ee","text":"

    \u67e5\u8be2\u5168\u90e8\u9879\u76ee\u9009\u62e9\u201c\u663e\u793a\u5168\u90e8\u201d\uff0c\u67e5\u8be2\u5355\u4e2a\u9879\u76ee\u53ef\u4ee5\u6839\u636e\u540d\u79f0\u641c\u7d22

    "},{"location":"user_manual/api_test/#_7","title":"\u73af\u5883\u914d\u7f6e","text":"

    \u53ef\u4ee5\u6dfb\u52a0\u8be5\u9879\u76ee\u4e0b\u63a5\u53e3\u7684\u5b9e\u9645\u73af\u5883\uff0c\u589e\u52a0\u4e86\u5168\u5c40 header\uff0c\u53ef\u4ee5\u5728\u9879\u76ee\u4e2d\u8bbe\u7f6e\u5168\u5c40 header \u503c\u3002\u5728\u63a5\u53e3\u8fd0\u884c\u9875\u9762\u7684\u573a\u666f\u4e2d\u4e5f\u589e\u52a0\u73af\u5883\u914d\u7f6e\u5f39\u5c42\u3002

    \u65b0\u589e\u5168\u5c40\u53d8\u91cf\uff0c\u53ef\u4ee5\u5728\u73af\u5883\u5217\u8868\u4e2d\u5b9a\u4e49\u5168\u5c40\u53d8\u91cf\u7684\u540d\u79f0\u548c\u503c\uff0c\u63a5\u53e3\u6d4b\u8bd5\u91cc\u9762\u53ef\u4ee5\u901a\u8fc7$(xx)\u6765\u8bbf\u95ee\u5f53\u524d\u73af\u5883\u53d8\u91cf\u4e0b\u5b9a\u4e49\u7684\u5168\u5c40\u53d8\u91cf

    "},{"location":"user_manual/api_test/#_8","title":"\u6d4b\u8bd5","text":"

    \u5bf9\u6d4b\u8bd5\u63a5\u53e3\u6216\u63a5\u53e3\u96c6\u5408\u8fdb\u884c\u65b0\u589e\u3001\u4fee\u6539\u3001\u5220\u9664\u3001\u67e5\u8be2\u64cd\u4f5c

    "},{"location":"user_manual/api_test/#_9","title":"\u521b\u5efa\u6d4b\u8bd5","text":"

    \u70b9\u51fb\u521b\u5efa\u6d4b\u8bd5\uff0c\u5982\u56fe 5 \u6b65\u5373\u53ef\u6210\u529f\u521b\u5efa\u63a5\u53e3\u6d4b\u8bd5

    \u76ee\u524d\u652f\u6301HTTP\u3001DUBBO \u4e24\u79cd\u534f\u8bae\u7684\u63a5\u53e3\u6d4b\u8bd5

    "},{"location":"user_manual/api_test/#_10","title":"\u573a\u666f\u914d\u7f6e","text":"

    \u573a\u666f\u5185\u7684\u5168\u5c40\u53d8\u91cf\u548c\u8bf7\u6c42\u5934\u914d\u7f6e\uff0c\u4f5c\u7528\u57df\u4e3a\u573a\u666f\u5185

    "},{"location":"user_manual/api_test/#_11","title":"\u73af\u5883\u914d\u7f6e","text":"

    \u573a\u666f\u4e2d\u53ef\u4ee5\u914d\u7f6e\u73af\u5883

    "},{"location":"user_manual/api_test/#_12","title":"\u81ea\u5b9a\u4e49\u53d8\u91cf","text":"

    \u5728\u573a\u666f\u914d\u7f6e\u4e2d\u81ea\u5b9a\u4e49\u53d8\u91cf\u7684\u540d\u79f0\u548c\u503c\uff0c \u63a5\u53e3\u8fd0\u884c\u6216\u8005\u6d4b\u8bd5\u96c6\u5408\u91cc\u9762\u53ef\u4ee5\u901a\u8fc7 ${BASE} \u6765\u8bbf\u95ee\u5f53\u524d\u573a\u666f\u4e0b\u5b9a\u4e49\u7684\u5168\u5c40\u53d8\u91cf

    "},{"location":"user_manual/api_test/#_13","title":"\u8bf7\u6c42\u5934","text":"

    \u8fd9\u91cc\u589e\u52a0\u5168\u5c40 header\uff0c\u53ef\u4ee5\u5728\u9879\u76ee\u4e2d\u8bbe\u7f6e\u5168\u5c40 header \u503c

    "},{"location":"user_manual/api_test/#dubbo","title":"Dubbo\u914d\u7f6e","text":"

    \u4e3b\u8981\u7528\u4e8eDubbo RPC\u63a5\u53e3\u6d4b\u8bd5

    \u534f\u8bae\u652f\u6301\uff1azookeeper\u3001nacos\u3001Apollo

    dubbo\u53c2\u6570\u652f\u6301\uff1aconnections\u3001loadbalance\u3001async

    "},{"location":"user_manual/api_test/#_14","title":"\u8bf7\u6c42\u914d\u7f6e","text":""},{"location":"user_manual/api_test/#http","title":"HTTP\u8bf7\u6c42","text":""},{"location":"user_manual/api_test/#_15","title":"\u5f15\u7528\u73af\u5883","text":"

    \u5f15\u7528\u73af\u5883\u5f00\u542f\u540e\uff0c\u53ef\u4ee5\u5f15\u7528\u73af\u5883\u4e2d\u7684\u57df\u540d\u3001\u8bf7\u6c42\u5934\u548c\u53d8\u91cf

    "},{"location":"user_manual/api_test/#_16","title":"\u8bf7\u6c42\u53c2\u6570","text":"

    \u63a5\u53e3 url \u7684\u67e5\u8be2\u5b57\u7b26\u4e32

    "},{"location":"user_manual/api_test/#_17","title":"\u8bf7\u6c42\u5934","text":"

    http\u8bf7\u6c42\u7684header\uff0c\u4f5c\u7528\u57df\u4e3a\u8bf7\u6c42\u5185

    "},{"location":"user_manual/api_test/#_18","title":"\u8bf7\u6c42\u5185\u5bb9","text":"

    http \u8bf7\u6c42\u7684 body \u90e8\u5206\uff0c\u5982\u679c http \u8bf7\u6c42\u65b9\u5f0f\u662f post\uff0c put \u7b49\u8bf7\u6c42\u65b9\u5f0f\u65f6\u4f1a\u6709 \u8bf7\u6c42\u5185\u5bb9 \u90e8\u5206\uff0c\u5f62\u5f0f\u67092\u79cd\uff0c\u5206\u522b\u662f \u952e\u503c\u5bf9\uff08form\uff09\u3001\u6587\u672c\uff08json\uff09

    "},{"location":"user_manual/api_test/#dubbo_1","title":"DUBBO\u8bf7\u6c42","text":"

    Dubbo \u8bf7\u6c42\u7531\u534f\u8bae\u3001\u914d\u7f6e\u4e2d\u5fc3\u3001\u8bf7\u6c42\u53c2\u6570\u4e09\u90e8\u5206\u7ec4\u5408\u800c\u6210

    "},{"location":"user_manual/api_test/#dubbo_2","title":"Dubbo \u534f\u8bae","text":"

    \u76ee\u524d\u4ec5\u652f\u6301dubbo\u534f\u8bae

    "},{"location":"user_manual/api_test/#_19","title":"\u914d\u7f6e\u4e2d\u5fc3","text":"

    Interface

    Config Center \u914d\u7f6e\u4e2d\u5fc3\uff0c\u534f\u8bae\u652f\u6301 Zookeeper\u3001Nacos\u3001Apollo

    Registry Center \u6ce8\u518c\u4e2d\u5fc3\uff0c\u652f\u6301 Zookeeper\u3001Redis\u3001Multicast\u3001simple

    Consumer & Service

    "},{"location":"user_manual/api_test/#_20","title":"\u8bf7\u6c42\u53c2\u6570","text":"

    Args

    "},{"location":"user_manual/api_test/#_21","title":"\u65ad\u8a00","text":"

    \u65ad\u8a00\u652f\u6301\u6587\u672c\u3001\u6b63\u5219\u548c\u54cd\u5e94\u65f6\u95f4\u4e09\u79cd\u65b9\u5f0f\uff0c\u9009\u62e9\u65ad\u8a00\u65b9\u5f0f\u540e\uff0c\u70b9\u51fb\u201c+\u201d\u751f\u6210\u89c4\u5219\u5373\u53ef\u751f\u6548

    "},{"location":"user_manual/api_test/#_22","title":"\u63d0\u53d6","text":"

    \u652f\u6301\u4ece\u54cd\u5e94\u4e2d\u63d0\u53d6\u8fd4\u56de\u503c\u4f5c\u4e3a\u53d8\u91cf\u5b58\u50a8\uff0c\u4f5c\u7528\u57df\u4e3a\u573a\u666f\u5185\uff0c\u63d0\u53d6\u65b9\u5f0f\u4e3a\u6b63\u5219\u3001JSONPath\u3001XPath\u4e09\u79cd

    "},{"location":"user_manual/api_test/#_23","title":"\u4fee\u6539\u6d4b\u8bd5","text":"

    \u8bf7\u6c42\u6267\u884c\u987a\u5e8f\u548c\u573a\u666f\u6267\u884c\u987a\u5e8f\u652f\u6301\u62d6\u62fd\u8c03\u6574\uff1b\u53d8\u66f4\u7ed3\u675f\u70b9\u51fb\u4fdd\u5b58

    "},{"location":"user_manual/api_test/#_24","title":"\u5220\u9664\u6d4b\u8bd5","text":"

    \u70b9\u51fb\u6d4b\u8bd5-\u663e\u793a\u5168\u90e8\uff0c\u9009\u62e9\u8981\u5220\u9664\u7684\u6d4b\u8bd5\uff0c\u70b9\u51fb\u5220\u9664\u6309\u94ae

    "},{"location":"user_manual/api_test/#_25","title":"\u67e5\u8be2\u6d4b\u8bd5","text":"

    \u67e5\u8be2\u5168\u90e8\u6d4b\u8bd5\uff0c\u70b9\u51fb\u663e\u793a\u5168\u90e8\uff0c\u67e5\u8be2\u5355\u4e2a\u6d4b\u8bd5\u53ef\u4ee5\u6839\u636e\u540d\u79f0\u641c\u7d22

    "},{"location":"user_manual/api_test/#_26","title":"\u6267\u884c\u6d4b\u8bd5","text":"

    \u4fdd\u5b58\u6210\u529f\u7684\u6d4b\u8bd5\u70b9\u51fb\u201c\u6267\u884c\u201d\u6309\u94ae\uff0c\u7f16\u8f91\u5b8c\u6210\u7684\u6d4b\u8bd5\u4e5f\u53ef\u4ee5\u70b9\u51fb\u201c\u4fdd\u5b58\u5e76\u6267\u884c\u201d\u6309\u94ae\uff0c\u9875\u9762\u5c06\u4f1a\u8df3\u8f6c\u5230\u5f53\u524d\u6d4b\u8bd5\u7684\u6d4b\u8bd5\u62a5\u544a\u4e2d\u3002

    "},{"location":"user_manual/api_test/#_27","title":"\u5b9a\u65f6\u4efb\u52a1","text":"

    \u4fdd\u5b58\u6210\u529f\u7684\u6d4b\u8bd5\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u5b9a\u65f6\u4efb\u52a1\uff0c\u6d4b\u8bd5\u5c06\u4f1a\u5728\u6307\u5b9a\u65f6\u95f4\u8fd0\u884c\u5e76\u4ea7\u751f\u6d4b\u8bd5\u62a5\u544a

    "},{"location":"user_manual/api_test/#_28","title":"\u521b\u5efa\u5b9a\u65f6\u4efb\u52a1","text":"

    \u70b9\u51fbSCHEDULER\u53ef\u4ee5\u7f16\u8f91\u5b9a\u65f6\u4efb\u52a1\uff0c\u70b9\u51fb\u201c\u751f\u6210\u8868\u8fbe\u5f0f\u201d\u53ef\u5feb\u901f\u751f\u6210cron\u8868\u8fbe\u5f0f

    "},{"location":"user_manual/api_test/#_29","title":"\u5b9a\u65f6\u4efb\u52a1\u6267\u884c","text":"

    \u5b9a\u65f6\u4efb\u52a1\u4e3a\u5f00\u5173\u63a7\u5236\uff0c\u5e76\u5c55\u793a\u6700\u8fd1\u4e00\u6b21\u7684\u8ba1\u5212\u6267\u884c\u65f6\u95f4\uff0c\u751f\u6210\u7684\u6d4b\u8bd5\u62a5\u544a\u89e6\u53d1\u65b9\u5f0f\u4e3a\u201c\u5b9a\u65f6\u4efb\u52a1\u201d

    "},{"location":"user_manual/api_test/#_30","title":"\u66f4\u591a\u64cd\u4f5c","text":""},{"location":"user_manual/api_test/#_31","title":"\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5","text":"

    \u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\uff0c\u63a5\u53e3\u6d4b\u8bd5\u4fdd\u5b58\u540e\u53ef\u4ee5\u76f4\u63a5\u521b\u5efa\u8be5\u573a\u666f\u5bf9\u5e94\u7684\u6027\u80fd\u6d4b\u8bd5\uff0c\u914d\u7f6e\u538b\u529b\u6d4b\u8bd5\u53c2\u6570\u540e\uff0c\u53ef\u4e00\u952e\u6267\u884c

    "},{"location":"user_manual/api_test/#_32","title":"\u5bfc\u51fa","text":"

    \u5728\u66f4\u591a\u64cd\u4f5c\u4e2d\u9009\u62e9\u5bfc\u51fa\uff0c\u53ef\u4ee5\u5c06\u5f53\u524d\u6d4b\u8bd5\u5bfc\u51fa\u4e3ajson\u6587\u4ef6

    "},{"location":"user_manual/api_test/#_33","title":"\u5bfc\u5165","text":"

    \u652f\u6301\u5feb\u901f\u5bfc\u5165MeterSphere Record \uff0cpostman\uff0c swagger\u6570\u636e

    "},{"location":"user_manual/api_test/#metersphere-record","title":"MeterSphere Record","text":"

    \u4e3a MeterSphere \u914d\u5957\u7684\u6d4f\u89c8\u5668\u63d2\u4ef6\uff0c\u8be5\u63d2\u4ef6\u53ef\u5c06\u7528\u6237\u5728\u6d4f\u89c8\u5668\u64cd\u4f5c\u65f6\u7684 HTTP \u8bf7\u6c42\u8bb0\u5f55\u4e0b\u6765\u5e76\u751f\u6210 JMX \u6587\u4ef6\uff08JMeter \u811a\u672c\u6587\u4ef6\uff09\u6216 JSON \u6587\u4ef6\uff0c\u7528\u4e8e\u5728 MeterSphere \u4e2d\u8fdb\u884c\u63a5\u53e3\u6d4b\u8bd5\u6216\u6027\u80fd\u6d4b\u8bd5\u3002

    \u8be6\u7ec6\u4ecb\u7ecd\u4e0e\u5b89\u88c5\uff1ahttps://github.com/metersphere/chrome-extensions

    \u5f55\u5236\u811a\u672c\uff1a

    \u7f16\u8f91\u811a\u672c\uff1a\u53ef\u4ee5\u9488\u5bf9\u5f55\u5236\u7684\u8bf7\u6c42\u8fdb\u884c\u7f16\u8f91\u8c03\u6574\uff0c\u5bfc\u51fa\u683c\u5f0f\u652f\u6301JMX\u548cJSON\u4e24\u79cd

    \u5bfc\u5165\u811a\u672c\uff1aJSON\u811a\u672c\u53ef\u4ee5\u5bfc\u5165\u5230\u5e73\u53f0\u8fdb\u884c\u63a5\u53e3\u6d4b\u8bd5\uff0cJMX\u811a\u672c\u53ef\u4ee5\u5bfc\u5165\u5230\u5e73\u53f0\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5

    "},{"location":"user_manual/api_test/#postman","title":"postman","text":"

    \u5bfc\u51fapostman\u6d4b\u8bd5

    \u5bfc\u5165\u5230MeterSphere

    "},{"location":"user_manual/api_test/#swagger","title":"swagger","text":"

    swagger\u5bfc\u5165\uff1a\u5c06swagger\u6587\u4ef6\u5bfc\u5165\u5e73\u53f0

    "},{"location":"user_manual/api_test/#_34","title":"\u62a5\u544a","text":"

    \u5bf9\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a\u7684\u67e5\u8be2\u548c\u5220\u9664\u64cd\u4f5c

    "},{"location":"user_manual/api_test/#_35","title":"\u67e5\u8be2\u62a5\u544a","text":"

    \u67e5\u8be2\u5168\u90e8\u62a5\u544a\uff0c\u70b9\u51fb\u663e\u793a\u5168\u90e8\uff0c\u67e5\u8be2\u5355\u4e2a\u62a5\u544a\u53ef\u4ee5\u6839\u636e\u540d\u79f0\u641c\u7d22

    "},{"location":"user_manual/api_test/#_36","title":"\u62a5\u544a\u8be6\u60c5","text":"

    \u5c55\u793a\u63a5\u53e3\u6d4b\u8bd5\u7684\u6267\u884c\u7ed3\u679c\uff0c\u5305\u542b\u54cd\u5e94\u65f6\u95f4\u3001\u9519\u8bef\u3001\u65ad\u8a00\u4ee5\u53ca\u8bf7\u6c42\u7684\u5177\u4f53\u54cd\u5e94\u62a5\u6587\u7b49

    "},{"location":"user_manual/api_test/#_37","title":"\u5220\u9664\u62a5\u544a","text":"

    \u70b9\u51fb\u62a5\u544a-\u663e\u793a\u5168\u90e8\uff0c\u9009\u62e9\u8981\u5220\u9664\u7684\u62a5\u544a\uff0c\u70b9\u51fb\u5220\u9664\u6309\u94ae

    "},{"location":"user_manual/general/","title":"\u901a\u7528\u529f\u80fd","text":""},{"location":"user_manual/general/#1","title":"1 \u5207\u6362\u8bed\u8a00","text":"

    \u70b9\u51fb\u9875\u9762\u53f3\u4e0a\u65b9\u7684\u8bed\u8a00\u4e0b\u62c9\u83dc\u5355\uff0c\u8fdb\u884c\u6307\u5b9a\u8bed\u8a00\u7684\u5207\u6362\u3002

    "},{"location":"user_manual/general/#2","title":"2 \u5207\u6362\u5de5\u4f5c\u7a7a\u95f4","text":"

    \u5de5\u4f5c\u7a7a\u95f4\u7684\u6982\u5ff5\u8bf4\u660e\u53ca\u5173\u7cfb\u8bf7\u53c2\u8003 \u6982\u5ff5\u8bf4\u660e\u3002 \u9875\u9762\u53f3\u4e0a\u65b9\u5c55\u793a\u4e86\u7528\u6237\u5f53\u524d\u6240\u5904\u7684\u5de5\u4f5c\u7a7a\u95f4\u3002\u70b9\u51fb\u5de5\u4f5c\u7a7a\u95f4\u4e0b\u62c9\u83dc\u5355\uff0c\u83dc\u5355\u4e2d\u5217\u51fa\u4e86\u5f53\u524d\u7528\u6237\u5177\u6709\u6743\u9650\u7684\u5de5\u4f5c\u7a7a\u95f4\u5217\u8868\uff0c\u70b9\u51fb\u67d0\u4e2a\u5de5\u4f5c\u7a7a\u95f4\u8fdb\u884c\u5207\u6362\u3002

    "},{"location":"user_manual/general/#3","title":"3 \u5207\u6362\u9879\u76ee","text":"

    MeterSphere \u4e2d\u7684\u6d4b\u8bd5\u7528\u4f8b\u3001\u63a5\u53e3\u5b9a\u4e49\u3001\u6027\u80fd\u6d4b\u8bd5\u7b49\u8d44\u6e90\u5747\u4f7f\u7528\u9879\u76ee\u8fdb\u884c\u9694\u79bb\uff0c\u7528\u6237\u9700\u8981\u64cd\u4f5c\u53e6\u4e00\u4e2a\u9879\u76ee\u4e2d\u7684\u8d44\u6e90\u65f6\u9700\u8981\u5148\u8fdb\u884c\u9879\u76ee\u5207\u6362\u3002 \u70b9\u51fb\u5de6\u4e0a\u65b9\u7684\u9879\u76ee\u4e0b\u62c9\u83dc\u5355\uff0c\u83dc\u5355\u4e2d\u5217\u51fa\u4e86\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e0b\u7684\u9879\u76ee\u5217\u8868\uff0c\u70b9\u51fb\u67d0\u4e2a\u9879\u76ee\u8fdb\u884c\u5207\u6362\u3002

    "},{"location":"user_manual/general/#4","title":"4 \u6279\u91cf\u64cd\u4f5c","text":"

    \u7cfb\u7edf\u4e2d\u7684\u5927\u90e8\u5206\u5217\u8868\u5747\u63d0\u4f9b\u4e86\u591a\u9009\u53ca\u5168\u9009\u529f\u80fd\uff0c\u5f53\u9009\u4e2d\u591a\u4e2a\u6570\u636e\u540e\u53ef\u4ee5\u70b9\u51fb\u3010\u6279\u91cf\u5904\u7406\u3011\u6309\u94ae\u8fdb\u884c\u6279\u91cf\u64cd\u4f5c\u3002

    \u4e3a\u4e86\u66f4\u65b9\u4fbf\u7684\u8fdb\u884c\u5168\u9009\u64cd\u4f5c\uff0c\u7cfb\u7edf\u63d0\u4f9b\u4e86\u4e24\u79cd\u5168\u9009\u6a21\u5f0f\u3002\u70b9\u51fb\u5217\u8868\u5de6\u4e0a\u65b9\u5168\u9009\u6846\u65c1\u8fb9\u7684\u4e0b\u62c9\u6309\u94ae\uff0c\u9009\u62e9\u3010\u9009\u62e9\u53ef\u89c1\u6570\u636e\u3011\u9009\u9879\uff0c\u8be5\u65b9\u5f0f\u53ea\u9009\u4e2d\u5f53\u524d\u5206\u9875\u4e2d\u53ef\u89c1\u7684\u6570\u636e\u6761\u76ee\u3002\u9009\u62e9\u3010\u9009\u62e9\u6240\u6709\u6570\u636e\u3011\u9879\uff0c\u8be5\u65b9\u5f0f\u9009\u4e2d\u5f53\u524d\u5217\u8868\u6240\u6709\u5206\u9875\u4e2d\u7684\u6570\u636e\u6761\u76ee\u3002

    \u8bf4\u660e

    \u76f4\u63a5\u70b9\u51fb\u5168\u9009\u6846\u4e0d\u4e0b\u62c9\u9009\u62e9\u65f6\u9ed8\u8ba4\u4f7f\u7528\u3010\u9009\u62e9\u53ef\u89c1\u6570\u636e\u3011\u65b9\u5f0f\u3002

    "},{"location":"user_manual/general/#5","title":"5 \u67e5\u8be2\u7ba1\u7406","text":"

    \u5728\u6240\u6709\u5217\u8868\u4fe1\u606f\u9875\u9762\uff0c\u7cfb\u7edf\u90fd\u4f1a\u63d0\u4f9b\u67e5\u8be2\u529f\u80fd\uff0c\u67e5\u8be2\u529f\u80fd\u4e00\u822c\u6709\u5355\u4e00\u67e5\u8be2\uff0c\u6216\u540c\u65f6\u63d0\u4f9b\u5355\u4e00\u67e5\u8be2\u548c\u9ad8\u7ea7\u67e5\u8be2\u3002

    "},{"location":"user_manual/general/#51","title":"5.1 \u5355\u4e00\u67e5\u8be2","text":"

    \u5355\u4e00\u67e5\u8be2\uff1a\u4e00\u822c\u6309ID\u3001\u540d\u79f0\u7b49\u4fe1\u606f\u6a21\u7cca\u67e5\u8be2\uff0c\u5e76\u4e14\u5728\u67e5\u8be2\u8f93\u5165\u6846\u5185\u6709\u76f8\u5e94\u6761\u4ef6\u7684\u8bf4\u660e\uff0c\u5982\u4e0b\u56fe

    "},{"location":"user_manual/general/#52","title":"5.2 \u9ad8\u7ea7\u67e5\u8be2","text":"

    \u5728\u90e8\u5206\u5217\u8868\u4fe1\u606f\u9875\u9762\u7684\u53f3\u4e0a\u89d2\u4f1a\u63d0\u4f9b\u9ad8\u7ea7\u67e5\u8be2\u529f\u80fd\u3002 \u70b9\u51fb\u3010\u9ad8\u7ea7\u67e5\u8be2\u3011\u53ef\u770b\u5230\u63d0\u4f9b\u7684\u591a\u79cd\u6761\u4ef6\u7684\u7ec4\u5408\u67e5\u8be2\u3002\u4e0d\u540c\u9875\u9762\u7684\u9ad8\u7ea7\u67e5\u8be2\u6761\u4ef6\u4e0d\u4e00\u6837\uff0c\u4e0b\u9762\u4e3e\u4f8b\u7684\u662f\u529f\u80fd\u7528\u4f8b\u5217\u8868\u4e2d\u7684\u9ad8\u7ea7\u67e5\u8be2\u9875\u9762\u3002

    "},{"location":"user_manual/general/#6","title":"6 \u8868\u5934\u529f\u80fd","text":"

    \u5217\u8868\u6a21\u5f0f\u4e0b\uff0c\u5728\u4fe1\u606f\u5217\u8868\u5934\u4e0a\u63d0\u4f9b\u4e86\u5176\u4ed6\u76f8\u5173\u529f\u80fd\uff1a\u6bd4\u5982\u67e5\u8be2\u3001\u5217\u8868\u4fe1\u606f\u663e\u793a\u8bbe\u7f6e\u7b49\u3002

    "},{"location":"user_manual/general/#61","title":"6.1 \u590d\u9009\u6846\u529f\u80fd","text":"

    \u5728\u5217\u8868\u4fe1\u606f\u9875\u7684\u7b2c\u4e00\u5217\u590d\u9009\u6846\u5934\u90e8\uff0c\u6709\u4e2a\u5411\u4e0b\u7bad\u5934\u3010V\u3011\uff0c\u70b9\u51fb\u5411\u4e0b\u7bad\u5934\u3010V\u3011\u53ef\u4ee5\u770b\u5230\u5bf9\u4e8e\u8bb0\u5f55\u7684\u9009\u4e2d\u63d0\u4f9b\u4e24\u79cd\u9009\u62e9\u6570\u636e\u8303\u56f4\uff0c\u5373\u5bf9\u5f53\u524d\u9875\uff0c\u6216\u5bf9\u67e5\u8be2\u5230\u7684\u6240\u6709\u8bb0\u5f55\u3002

    "},{"location":"user_manual/general/#62","title":"6.2 \u5217\u8868\u5185\u67e5\u8be2","text":"

    \u5728\u5217\u8868\u4fe1\u606f\u5934\u4e2d\uff0c\u5982\u679c\u8868\u5934\u4fe1\u606f\u6709\u5411\u4e0b\u7bad\u5934\u3010V\u3011\uff0c\u5219\u8868\u793a\u5728\u5f53\u524d\u7684\u5217\u8868\u4fe1\u606f\u96c6\u4e2d\uff0c\u53ef\u4ee5\u6839\u636e\u6b64\u4fe1\u606f\u8fdb\u884c\u5feb\u901f\u7b5b\u9009\u67e5\u8be2\u3002

    "},{"location":"user_manual/general/#63","title":"6.3 \u6392\u5e8f\u529f\u80fd","text":"

    \u5728\u5217\u8868\u4fe1\u606f\u5934\u4e2d\uff0c\u5982\u679c\u8868\u5934\u4fe1\u606f\u6709\u5411\u4e0a\u4e0b\u7bad\u5934\uff0c\u5219\u8868\u793a\u6839\u636e\u6b64\u5b57\u6bb5\u5bf9\u5f53\u524d\u7684\u5217\u8868\u4fe1\u606f\u96c6\u8fdb\u884c\u5012\u5e8f\u548c\u6b63\u5e8f\u6392\u5217\u3002\u7cfb\u7edf\u4e00\u822c\u63d0\u4f9b\u591a\u79cd\u4fe1\u606f\u7684\u6b63\u5e8f\u6216\u5012\u5e8f\u7684\u6392\u5217\u3002

    "},{"location":"user_manual/general/#64","title":"6.4 \u81ea\u5b9a\u4e49\u5217\u8868\u663e\u793a","text":"

    \u7cfb\u7edf\u5bf9\u4e8e\u90e8\u5206\u5217\u8868\u4fe1\u606f\u9875\u9762\uff0c\u90fd\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u5217\u8868\u663e\u793a\u4fe1\u606f\u7684\u8bbe\u7f6e\u3002 \u5728\u4fe1\u606f\u5217\u8868\u7684\u64cd\u4f5c\u5217\uff0c\u5934\u90e8\u6709\u3010\u8bbe\u7f6e\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u81ea\u5b9a\u4e49\u5217\u8868\u663e\u793a\u6570\u636e\u7684\u5b57\u6bb5\u3002

    \u4e0b\u9762\u4ee5\u6d4b\u8bd5\u8ba1\u5212\u9875\u9762\u7684\u8bbe\u7f6e\u4e3a\u4f8b\uff0c\u70b9\u51fb\u3010\u8bbe\u7f6e\u3011\u6309\u94ae\uff0c\u5f39\u51fa\u8868\u5934\u663e\u793a\u5b57\u6bb5\u8bbe\u7f6e\uff0c\u7cfb\u7edf\u9ed8\u8ba4\u663e\u793a\u6240\u6709\u5b57\u6bb5\u3002 \u9700\u8981\u663e\u793a\u7684\u5b57\u6bb5\u79fb\u5230\u53f3\u8fb9\u5df2\u9009\u5b57\u6bb5\u6846\u4e2d\uff1b\u4e0d\u9700\u8981\u663e\u793a\u7684\u5b57\u6bb5\u79fb\u5230\u5de6\u8fb9\u5f85\u9009\u5b57\u6bb5\u6846\u4e2d\u3002

    \u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5b8c\u6210\u8bbe\u7f6e\uff0c\u7cfb\u7edf\u4f1a\u8fd4\u56de\u4fe1\u606f\u5217\u8868\u9875\u9762\uff0c\u6b64\u65f6\u7cfb\u7edf\u4f1a\u81ea\u52a8\u5237\u65b0\u4fe1\u606f\u5217\u8868\u9875\uff0c\u6b64\u65f6\u6309\u8bbe\u7f6e\u7684\u4fe1\u606f\u8fdb\u884c\u663e\u793a\u3002

    "},{"location":"user_manual/general/#65","title":"6.5 \u8c03\u6574\u5217\u8868\u5bbd\u5ea6","text":"

    \u70b9\u51fb\u5217\u8868\u8868\u5934\u5217\u4e2d\u95f4\u7684\u3010|\u3011\uff0c\u53ef\u5de6\u53f3\u62d6\u52a8\u81ea\u5b9a\u4e49\u8c03\u6574\u5217\u8868\u7684\u5bbd\u5ea6\u3002

    "},{"location":"user_manual/general/#7","title":"7 \u4e2a\u4eba\u4fe1\u606f","text":"

    \u5728\u53f3\u4e0a\u89d2\u7528\u6237\u540d\u5904\u7684\u4e0b\u62c9\u83dc\u5355\u4e2d\uff0c\u9009\u62e9\u3010\u4e2a\u4eba\u4fe1\u606f\u3011\u9009\u9879\uff0c\u53ef\u770b\u5f53\u524d\u4e2a\u4eba\u76f8\u5173\u7684\u914d\u7f6e\u4fe1\u606f\u3002

    "},{"location":"user_manual/general/#8","title":"8 \u67e5\u770b\u7248\u672c\u4fe1\u606f","text":"

    \u5728\u53f3\u4e0a\u89d2\u7528\u6237\u540d\u5904\u7684\u4e0b\u62c9\u83dc\u5355\u4e2d\uff0c\u9009\u62e9\u3010\u5173\u4e8e\u3011\u9009\u9879\uff0c\u5728\u5f39\u51fa\u7684\u9875\u9762\u4e2d\u53ef\u4ee5\u67e5\u770b\u5f53\u524d\u7248\u672c\u4fe1\u606f\u3002

    "},{"location":"user_manual/general/#9","title":"9 \u67e5\u770b\u5e2e\u52a9\u6587\u6863","text":"

    \u5728\u53f3\u4e0a\u89d2\u7528\u6237\u540d\u5904\u7684\u4e0b\u62c9\u83dc\u5355\u4e2d\uff0c\u9009\u62e9\u3010\u5e2e\u52a9\u6587\u6863\u3011\u9009\u9879\uff0c\u6d4f\u89c8\u5668\u5c06\u5728\u65b0\u9875\u9762\u6253\u5f00\u5728\u7ebf\u6587\u6863\u9875\u9762\u3002

    "},{"location":"user_manual/general/#10-api","title":"10 \u67e5\u770b API \u6587\u6863","text":"

    \u5728\u53f3\u4e0a\u89d2\u7528\u6237\u540d\u5904\u7684\u4e0b\u62c9\u83dc\u5355\u4e2d\uff0c\u9009\u62e9\u3010API\u6587\u6863\u3011\u9009\u9879\uff0c\u6d4f\u89c8\u5668\u5c06\u5728\u65b0\u9875\u9762\u6253\u5f00\u5185\u7f6e\u7684 API \u6587\u6863\u9875\u9762\u3002

    "},{"location":"user_manual/general/#11","title":"11 \u9000\u51fa\u7cfb\u7edf","text":"

    \u5728\u53f3\u4e0a\u89d2\u7528\u6237\u540d\u5904\u7684\u4e0b\u62c9\u83dc\u5355\u4e2d\uff0c\u9009\u62e9\u3010\u9000\u51fa\u7cfb\u7edf\u3011\u9009\u9879\uff0c\u9875\u9762\u5c06\u4f1a\u8df3\u5230\u767b\u5f55\u9875\u9762\u3002

    "},{"location":"user_manual/api_test/api_automation/","title":"\u63a5\u53e3\u81ea\u52a8\u5316","text":"

    \u573a\u666f\u662f\u63a5\u53e3\u81ea\u52a8\u5316\u4e2d\u7684\u57fa\u672c\u7ba1\u7406\u5355\u5143\uff0c\u7531\u4e00\u7ec4\u7528\u4f8b\u548c\u63a5\u53e3\u7ec4\u88c5\u800c\u6210\u3002\u5982\u7528\u6237\u7ba1\u7406\u573a\u666f\uff0c\u5305\u542b\u7528\u6237\u6ce8\u518c\u3001\u7528\u6237\u767b\u9646\u3001\u7528\u6237\u4fee\u6539\u3001\u7528\u6237\u6ce8\u9500\u3001\u7528\u6237\u9500\u6237\u7b49\u7528\u4f8b\u6216\u8005\u63a5\u53e3\u3002 MeterSphere \u652f\u6301\u5bfc\u5165\u63a5\u53e3\u901a\u8fc7\u62d6\u62fd\u7684\u65b9\u5f0f\u5bf9\u4e0a\u8ff0\u573a\u666f\u8fdb\u884c\u7528\u4f8b/\u63a5\u53e3\u7684\u7f16\u6392\u8bbe\u8ba1\u3002\u5728\u63a5\u53e3\u81ea\u52a8\u5316\u811a\u672c\u4e2d\u652f\u6301\u6dfb\u52a0\u5404\u79cd\u534f\u8bae\u7684\u8bf7\u6c42\u3001\u65ad\u8a00\u3001\u81ea\u5b9a\u4e49\u811a\u672c\u3001\u903b\u8f91\u63a7\u5236\u5668\u7b49\u7ec4\u4ef6\u5b8c\u6210\u4e00\u4e2a\u63a5\u53e3\u6d4b\u8bd5\u573a\u666f\uff0c\u5e76\u4e14\u652f\u6301\u5b9a\u65f6\u3001API\u8c03\u7528\u3001Jenkins\u8c03\u7528\u65b9\u5f0f\u89e6\u53d1\u81ea\u52a8\u5316\u6267\u884c\u4efb\u52a1\u3002

    "},{"location":"user_manual/api_test/api_automation/#1","title":"1 \u6a21\u5757\u6811\u7ba1\u7406","text":"

    \u6bcf\u4e2a\u573a\u666f\u90fd\u9700\u8981\u5c5e\u4e8e\u4e00\u4e2a\u7279\u5b9a\u7684\u6a21\u5757\uff0c\u5728\u521b\u5efa\u573a\u666f\u524d\u9700\u8981\u5148\u89c4\u5212\u5e76\u521b\u5efa\u6a21\u5757\u6811\u3002\u63a5\u53e3\u81ea\u52a8\u5316\u4e0e\u63a5\u53e3\u5b9a\u4e49\u4e2d\u7684\u6a21\u5757\u6811\u76f8\u4e92\u72ec\u7acb\uff0c\u63a5\u53e3\u5b9a\u4e49\u4e2d\u521b\u5efa\u7684\u6a21\u5757\u4e0d\u4f1a\u51fa\u73b0\u5728\u63a5\u53e3\u81ea\u52a8\u5316\u7684\u6a21\u5757\u6811\u4e2d\u3002 \u5177\u4f53\u7684\u6a21\u5757\u7ba1\u7406\u64cd\u4f5c\u4e0e\u63a5\u53e3\u5b9a\u4e49\u4e2d\u7684\u6a21\u5757\u6811\u7c7b\u4f3c\uff0c\u8bf7\u53c2\u8003\u63a5\u53e3\u5b9a\u4e49\u4e2d\u7684 \u6a21\u5757\u6811\u7ba1\u7406\u3002

    "},{"location":"user_manual/api_test/api_automation/#2","title":"2 \u573a\u666f\u7ba1\u7406","text":""},{"location":"user_manual/api_test/api_automation/#21","title":"2.1 \u5feb\u6377\u529f\u80fd","text":"

    \u573a\u666f\u5217\u8868\u7684\u5feb\u6377\u6309\u94ae\u6709\u3010\u6267\u884c\u3011\u3010\u7f16\u8f91\u3011\u3010\u590d\u5236\u3011\u3010\u5220\u9664\u3011\u70b9\u51fb\u66f4\u591a\u53ef\u64cd\u4f5c\u3010\u67e5\u770b\u5f15\u7528\u3011\u3010\u5b9a\u65f6\u4efb\u52a1\u3011\u3010\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u3011\u3002

    "},{"location":"user_manual/api_test/api_automation/#22","title":"2.2 \u5feb\u901f\u521b\u5efa","text":"

    \u9009\u62e9\u4e00\u4e2a\u6a21\u5757\uff0c\u70b9\u51fb\u3010\u66f4\u591a\u64cd\u4f5c-\u521b\u5efa\u573a\u666f\u3011\u6309\u94ae\uff0c\u53ef\u4ec5\u586b\u5199\u63a5\u53e3\u57fa\u672c\u4fe1\u606f\uff0c\u5728\u8be5\u6a21\u5757\u4e0b\u5feb\u901f\u521b\u5efa\u63a5\u53e3\u3002

    "},{"location":"user_manual/api_test/api_automation/#23","title":"2.3 \u7f16\u8f91\u8be6\u60c5","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u70b9\u51fb\u6307\u5b9a\u573a\u666f\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u8fdb\u5165\u573a\u666f\u8be6\u60c5\u7f16\u8f91\u9875\u9762\u3002\u5728\u8be5\u9875\u9762\u4e2d\u53ef\u5bf9\u573a\u666f\u7684\u57fa\u7840\u4fe1\u606f\uff0c\u573a\u666f\u7684\u5177\u4f53\u6b65\u9aa4\u7b49\u8fdb\u884c\u8fdb\u4e00\u6b65\u7f16\u8f91\uff0c\u7f16\u8f91\u5b8c\u6210\u540e\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u4fdd\u5b58\u6309\u94ae\u8fdb\u884c\u4fdd\u5b58\u3002

    "},{"location":"user_manual/api_test/api_automation/#24","title":"2.4 \u573a\u666f\u53d8\u91cf\u914d\u7f6e","text":"

    \u5728\u6dfb\u52a0\u573a\u666f\u6b65\u9aa4\u524d\u53ef\u4ee5\u6dfb\u52a0\u6574\u4e2a\u573a\u666f\u516c\u7528\u7684\u53d8\u91cf\u53c2\u6570\uff0c\u652f\u6301\u591a\u79cd\u4e0d\u540c\u7c7b\u578b\uff0c\u5728\u573a\u666f\u4e2d\u7684\u6b65\u9aa4\u5747\u53ef\u5f15\u7528\u8fd9\u4e9b\u53c2\u6570\u3002

    \u53c2\u6570\u8bf4\u660e

    • \u3010\u5e38\u91cf\u3011

      • \u53d8\u91cf\u540d: \u8be5\u53d8\u91cf\u7684\u53d8\u91cf\u540d\uff0c\u53ef\u4ee5\u5728\u573a\u666f\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${varName} \u7684\u5f62\u5f0f\u5f15\u7528\u8be5\u53d8\u91cf\u3002
      • \u63cf\u8ff0\uff1a\u9488\u5bf9\u8be5\u53d8\u91cf\u7684\u8be6\u7ec6\u8bf4\u660e\u3002
      • \u503c\uff1a\u8be5\u53d8\u91cf\u7684\u503c\uff0c\u53ef\u4ee5\u4f7f\u7528 JMeter \u4e2d\u7684\u5185\u7f6e\u51fd\u6570\u3002
      • \u4e3e\u4f8b\u8bf4\u660e\uff1a\u5b9a\u4e49\u53d8\u91cf\u540d\u4e3a varName\uff0c\u53d8\u91cf\u503c\u4e3a varValue \u7684\u53d8\u91cf\uff0c\u5728\u540e\u7eed\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${varName} \u5f15\u7528\u5f97\u5230 varValue\u3002
    • \u3010\u5217\u8868\u3011

      • \u53d8\u91cf\u540d: \u8be5\u53d8\u91cf\u7684\u53d8\u91cf\u540d\uff0c\u53ef\u4ee5\u5728\u573a\u666f\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${varName} \u7684\u5f62\u5f0f\u5f15\u7528\u8be5\u53d8\u91cf\u3002
      • \u63cf\u8ff0\uff1a\u9488\u5bf9\u8be5\u53d8\u91cf\u7684\u8be6\u7ec6\u8bf4\u660e\u3002
      • \u503c\uff1a\u4ee5\u9017\u53f7 , \u5206\u9694\u7684\u503c\u5217\u8868\uff0c\u53ef\u4ee5\u5728\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${varName_n} \u7684\u5f62\u5f0f\u5f15\u7528\u6307\u5b9a\u4f4d\u7f6e\u7684\u503c\uff0c\u5176\u4e2d n \u4ee3\u8868\u8981\u5f15\u7528\u7684\u503c\u7684\u4f4d\u7f6e\uff0c\u4ece 1 \u5f00\u59cb\u3002
      • \u4e3e\u4f8b\u8bf4\u660e\uff1a\u5b9a\u4e49\u53d8\u91cf\u540d\u4e3a listVar\uff0c\u53d8\u91cf\u503c\u4e3a value1,value2,value3 \u7684\u53d8\u91cf\uff0c\u5728\u540e\u7eed\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${listVar_1} \u5f15\u7528\u5f97\u5230 value1\uff0c\u901a\u8fc7 ${listVar_2} \u5f15\u7528\u5f97\u5230 value2\u3002
    • \u3010CSV\u3011

      • \u53d8\u91cf\u540d: CSV \u6587\u4ef6\u7684\u540d\u79f0\uff0c\u4ec5\u8d77\u5230\u6807\u8bb0\u4f5c\u7528\uff0c\u65e0\u6cd5\u5728\u573a\u666f\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${varName} \u7684\u5f62\u5f0f\u5f15\u7528\u8be5\u53d8\u91cf\u3002
      • \u63cf\u8ff0\uff1a\u9488\u5bf9\u8be5\u53d8\u91cf\u7684\u8be6\u7ec6\u8bf4\u660e\u3002
      • \u6dfb\u52a0\u6587\u4ef6\uff1aCSV \u6587\u4ef6\u9009\u62e9\uff0c\u4ece\u672c\u5730\u4e0a\u4f20 CSV \u6587\u4ef6\u3002
      • Encoding\uff1aCSV \u6587\u4ef6\u7684\u7f16\u7801\u683c\u5f0f\u3002
      • \u5206\u9694\u7b26\uff1aCSV \u6587\u4ef6\u4e2d\u7684\u6570\u636e\u5206\u9694\u7b26\uff0c\u9ed8\u8ba4\u4e3a ,\u3002
      • \u4e3e\u4f8b\u8bf4\u660e\uff1a\u4e0a\u4f20 CSV \u4e2d\u7684\u5185\u5bb9\u5982\u4e0b\u6240\u793a\uff0c\u7b2c\u4e00\u5217\u4e3a\u53d8\u91cf\u540d\u5217\uff0c\u53ef\u4ee5\u5728\u573a\u666f\u7684\u540e\u7eed\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${name}\uff0c${age} \u5206\u522b\u5f15\u7528\u7b2c\u4e00\u5217\u548c\u7b2c\u4e8c\u5217\u7684\u503c\u3002\u5f53\u5728\u5faa\u73af\u63a7\u5236\u5668\u5916\u5f15\u7528\u53d8\u91cf\u65f6\uff0c\u53d8\u91cf\u503c\u4e3a\u7b2c\u4e00\u4e2a\u6570\u636e\u503c\uff0c${name}=Andy\uff0c${age}=20\uff1b\u5f53\u5728\u5faa\u73af\u63a7\u5236\u5668\u5185\u5f15\u7528\u53d8\u91cf\u65f6\uff0c\u6bcf\u8fed\u4ee3\u4e00\u6b21\u90fd\u4f1a\u53d6\u4e0b\u4e00\u884c\u7684\u6570\u636e\u503c\u3002

        name,age\nAndy,20\nTom,22\n
    • \u3010\u8ba1\u6570\u5668\u3011

      • \u53d8\u91cf\u540d: \u8be5\u53d8\u91cf\u7684\u53d8\u91cf\u540d\uff0c\u53ef\u4ee5\u5728\u573a\u666f\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${varName} \u7684\u5f62\u5f0f\u5f15\u7528\u8be5\u53d8\u91cf\u3002
      • \u63cf\u8ff0\uff1a\u9488\u5bf9\u8be5\u53d8\u91cf\u7684\u8be6\u7ec6\u8bf4\u660e\u3002
      • \u5f00\u59cb\uff1a\u8ba1\u6570\u5668\u53d8\u91cf\u7684\u8d77\u59cb\u503c\uff0c\u5373\u6700\u5c0f\u503c\u3002
      • \u7ed3\u675f\uff1a\u8ba1\u6570\u5668\u53d8\u91cf\u7684\u7ed3\u675f\u503c\uff0c\u5373\u6700\u5927\u503c\u3002
      • \u589e\u91cf\uff1a\u8ba1\u6570\u5668\u53d8\u91cf\u6bcf\u6b21\u589e\u52a0\u7684\u589e\u91cf\u503c\uff0c\u9ed8\u8ba4\u4e3a 1\u3002
      • \u4e3e\u4f8b\u8bf4\u660e\uff1a\u5b9a\u4e49\u53d8\u91cf\u540d\u4e3a counter1 \u7684\u8ba1\u6570\u5668\u53d8\u91cf\uff0c\u5f00\u59cb\u503c\u4e3a 1\uff0c\u7ed3\u675f\u503c\u4e3a 100\uff0c\u589e\u91cf\u4e3a 1\u3002\u5f53\u5728\u5faa\u73af\u63a7\u5236\u5668\u5916\u5f15\u7528\u53d8\u91cf\u65f6\uff0c\u53d8\u91cf\u503c\u4e0d\u4f1a\u9012\u589e\uff0c\u4e00\u76f4\u4e3a\u5f53\u524d\u503c\uff1b\u5f53\u5728\u5faa\u73af\u63a7\u5236\u5668\u5185\u5f15\u7528\u53d8\u91cf\u65f6\uff0c\u6bcf\u8fed\u4ee3\u4e00\u6b21\u53d8\u91cf\u503c\u90fd\u4f1a\u589e\u52a0\u4e00\u6b21\u3002
    • \u3010\u968f\u673a\u6570\u3011

      • \u53d8\u91cf\u540d: \u8be5\u53d8\u91cf\u7684\u53d8\u91cf\u540d\uff0c\u53ef\u4ee5\u5728\u573a\u666f\u6b65\u9aa4\u4e2d\u901a\u8fc7 ${varName} \u7684\u5f62\u5f0f\u5f15\u7528\u8be5\u53d8\u91cf\u3002
      • \u63cf\u8ff0\uff1a\u9488\u5bf9\u8be5\u53d8\u91cf\u7684\u8be6\u7ec6\u8bf4\u660e\u3002
      • \u6700\u5c0f\u503c\uff1a\u968f\u673a\u8303\u56f4\u7684\u6700\u5c0f\u503c\u3002
      • \u6700\u5927\u503c\uff1a\u968f\u673a\u8303\u56f4\u7684\u6700\u5927\u503c\u3002
      • \u8f93\u51fa\u683c\u5f0f\uff1a\u968f\u673a\u6570\u7684\u8f93\u51fa\u683c\u5f0f\uff0c\u4f8b\u5982\u8bbe\u5b9a\u6700\u5c0f\u503c 1\uff0c\u6700\u5927\u503c 100\uff0c\u8f93\u51fa\u683c\u5f0f\u4e3a 000\uff0c\u5219\u53d8\u91cf\u503c\u4e3a 013\uff0c074 \u8fd9\u6837\u7684\u683c\u5f0f\u3002
      • \u4e3e\u4f8b\u8bf4\u660e\uff1a\u5b9a\u4e49\u53d8\u91cf\u540d\u4e3a random1\uff0c\u6700\u5c0f\u503c 1\uff0c\u6700\u5927\u503c 100\uff0c\u8f93\u51fa\u683c\u5f0f\u4e3a 000 \u7684\u53d8\u91cf\u3002\u5f53\u5728\u5faa\u73af\u63a7\u5236\u5668\u5916\u5f15\u7528\u53d8\u91cf\u65f6\uff0c\u591a\u6b21\u5f15\u7528\u53d8\u91cf\u503c\u4e0d\u4f1a\u91cd\u65b0\u968f\u673a\uff0c\u4e00\u76f4\u4e3a\u5f53\u524d\u503c\uff1b\u5f53\u5728\u5faa\u73af\u63a7\u5236\u5668\u5185\u5f15\u7528\u53d8\u91cf\u65f6\uff0c\u6bcf\u8fed\u4ee3\u4e00\u6b21\u53d8\u91cf\u503c\u90fd\u4f1a\u91cd\u65b0\u968f\u673a\u4e00\u6b21\u3002
    "},{"location":"user_manual/api_test/api_automation/#25","title":"2.5 \u573a\u666f\u6b65\u9aa4\u7f16\u6392","text":"

    \u6dfb\u52a0\u4e00\u7ea7\u6b65\u9aa4 \u5728\u573a\u666f\u8be6\u60c5\u7f16\u8f91\u9875\u9762\uff0c\u70b9\u51fb\u9875\u9762\u53f3\u4e0b\u65b9\u7684\u3010+\u3011\u6309\u94ae\uff0c\u53ef\u5728\u5f53\u524d\u573a\u666f\u4e2d\u6dfb\u52a0\u6b65\u9aa4\u3002

    \u70b9\u51fb\u6b65\u9aa4\u6761\u76ee\u7684\u7a7a\u767d\u5904\uff0c\u53ef\u4ee5\u5c55\u5f00\u67e5\u770b\u6b65\u9aa4\u8be6\u60c5\u3002

    \u6dfb\u52a0\u5b50\u6b65\u9aa4 \u5728\u6b65\u9aa4\u7684\u8bf7\u6c42\u53c2\u6570\u8be6\u60c5\u754c\u9762\uff0c\u53ef\u9009\u62e9\u6dfb\u52a0\u3010\u524d\u7f6e\u64cd\u4f5c\u3011\u3001\u3010\u540e\u7f6e\u64cd\u4f5c\u3011\u3001\u3010\u65ad\u8a00\u89c4\u5219\u3011\u5b50\u6b65\u9aa4\u3002

    • \u3010\u524d\u7f6e\u64cd\u4f5c\u3011\u53ef\u6dfb\u52a0\u3010\u524d\u7f6e\u811a\u672c\u3011\u3001\u3010\u524d\u7f6eSQL\u3011\u3001\u3010\u7b49\u5f85\u63a7\u5236\u5668\u3011\u3002
    • \u3010\u540e\u7f6e\u64cd\u4f5c\u3011\u53ef\u6dfb\u52a0\u3010\u63d0\u53d6\u53c2\u6570\u3011\u3001\u3010\u540e\u7f6eSQL\u3011\u3001\u3010\u540e\u7f6e\u811a\u672c\u3011\u3002
    • \u3010\u65ad\u8a00\u89c4\u5219\u3011\u53ef\u6dfb\u52a0\u591a\u79cd\u7c7b\u578b\u7684\u3010\u65ad\u8a00\u3011\u3002\u5177\u4f53\u6b65\u9aa4\u53ef\u53c2\u8003\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u4e2d\u7684 \u64cd\u4f5c\u6b65\u9aa4\u3002

    \u8c03\u6574\u6b65\u9aa4\u987a\u5e8f\u53ca\u5c42\u7ea7 \u9009\u4e2d\u67d0\u4e2a\u6b65\u9aa4\u540e\u957f\u6309\u9f20\u6807\u5de6\u952e\u53ef\u4ee5\u5bf9\u6b65\u9aa4\u8fdb\u884c\u62d6\u62fd\uff0c\u62d6\u62fd\u652f\u6301\u8c03\u6574\u6b65\u9aa4\u987a\u5e8f\u53ca\u5c42\u7ea7\uff0c\u901a\u8fc7\u62d6\u62fd\u53ef\u5c06\u5176\u53d8\u4e3a\u4e00\u7ea7\u6b65\u9aa4\u6216\u67d0\u4e2a\u6b65\u9aa4\u7684\u5b50\u6b65\u9aa4\u3002

    \u9488\u5bf9\u6b65\u9aa4\u7684\u5176\u4ed6\u64cd\u4f5c

    • \u3010\u7f16\u8f91\u540d\u79f0\u3011\uff1a\u5bf9\u4e8e\u652f\u6301\u914d\u7f6e\u540d\u79f0\u7684\u6b65\u9aa4\uff0c\u70b9\u51fb\u8be5\u6309\u94ae\u53ef\u4ee5\u4fee\u6539\u8be5\u6b65\u9aa4\u7684\u540d\u79f0\u3002
    • \u3010\u542f\u7528/\u7981\u7528\u3011\uff1a\u70b9\u51fb\u8be5\u6309\u94ae\u542f\u7528/\u7981\u7528\u8be5\u6b65\u9aa4\u3002
    • \u3010\u8c03\u8bd5\u3011\uff1a\u5bf9\u4e8e\u652f\u6301\u5355\u72ec\u6267\u884c\u7684\u6b65\u9aa4\uff0c\u70b9\u51fb\u8be5\u6309\u94ae\u53ef\u4ee5\u5355\u72ec\u6267\u884c\u6b65\u9aa4\uff0c\u6267\u884c\u540e\u70b9\u51fb\u6b65\u9aa4\u7a7a\u767d\u5904\u53ef\u4ee5\u5728\u5176\u8be6\u60c5\u4e2d\u67e5\u770b\u6267\u884c\u7ed3\u679c\u3002
    • \u3010\u590d\u5236\u3011\uff1a\u590d\u5236\u8be5\u6b65\u9aa4\u3002
    • \u3010\u5220\u9664\u3011\uff1a\u5220\u9664\u8be5\u6b65\u9aa4\u3002

    \u8c03\u9488\u5bf9\u573a\u666f\u7684\u5176\u4ed6\u64cd\u4f5c

    • \u3010\u573a\u666f\u53d8\u91cf\u3011\uff1a\u81ea\u5b9a\u4e49\u573a\u666f\u53d8\u91cf\uff0c\u5305\u62ec\u5e38\u91cf\u3001\u5217\u8868\u53d8\u91cf\u3001csv\u3001\u8ba1\u6570\u5668\u3001\u968f\u673a\u6570\u7b49\u3002
    • \u3010\u5171\u4eabcookie\u3011\uff1a\u573a\u666f\u91cc\u7684\u6240\u6709\u6b65\u9aa4\u5171\u4eabcookie\u3002
    • \u3010\u5931\u8d25\u7ee7\u7eed\u3011\uff1a\u573a\u666f\u4e2d\u6709\u6b65\u9aa4\u5931\u8d25\u4e0d\u5f71\u54cd\u540e\u9762\u6b65\u9aa4\u6267\u884c\u3002
    • \u3010\u8fd0\u884c\u73af\u5883\u3011\uff1a\u573a\u666f\u8fd0\u884c\u73af\u5883\u914d\u7f6e\uff0c\u53ef\u9009\u9879\u76ee\u73af\u5883\u6216\u8005\u73af\u5883\u7ec4\u4e24\u79cd\u7c7b\u578b\u3002
    • \u3010\u8c03\u8bd5\u3011\uff1a\u8c03\u6574\u573a\u666f\u548c\u751f\u6210\u62a5\u544a\u3002
    • \u3010\u4fdd\u5b58\u3011\uff1a\u4fdd\u5b58\u573a\u666f\u3002
    • \u3010\u5237\u65b0\u3011\uff1a\u573a\u666f\u5185\u5237\u65b0\u6b65\u9aa4\u3002
    • \u3010\u8c03\u8bd5\u5386\u53f2\u3011\uff1a\u67e5\u770b\u573a\u666f\u7684\u8c03\u8bd5\u5386\u53f2\u548c\u62a5\u544a\u8be6\u60c5\u3002
    • \u3010\u53d8\u66f4\u8bb0\u5f55\u3011\uff1a\u67e5\u770b\u573a\u666f\u53d8\u66f4\u8bb0\u5f55\u3002
    • \u3010\u7248\u672c\uff08X-Pack\uff09\u3011\uff1a\u5c55\u793a\u5f53\u524d\u573a\u666f\u6240\u5c5e\u7248\u672c\u4fe1\u606f\u3002
    • \u3010\u6279\u91cf\u64cd\u4f5c\u3011\uff1a\u573a\u666f\u5185\u90e8\u7684\u6279\u91cf\u64cd\u4f5c\uff0c\u5305\u542b \u6279\u91cf\u542f\u7528\u6b65\u9aa4\u3001\u6279\u91cf\u7981\u7528\u6b65\u9aa4\u3001\u6279\u91cf\u5c55\u5f00\u6b65\u9aa4\uff0c\u6279\u91cf\u6298\u53e0\u6b65\u9aa4\u3001\u6279\u91cf\u5220\u9664\u6b65\u9aa4\u3002

    "},{"location":"user_manual/api_test/api_automation/#26","title":"2.6 \u8c03\u8bd5\u6307\u5b9a\u573a\u666f","text":"

    \u573a\u666f\u53ca\u573a\u666f\u4e2d\u7684\u6b65\u9aa4\u521b\u5efa\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u3010\u8c03\u8bd5\u3011\u53ef\u5b9e\u65f6\u67e5\u770b\u573a\u666f\u5185\u5404\u4e2a\u6b65\u9aa4\u6267\u884c\u72b6\u6001\u53ca\u54cd\u5e94\u7ed3\u679c\u4fe1\u606f\uff0c\u53ea\u70b9\u51fb\u3010\u8c03\u8bd5\u3011\u4ea7\u751f\u7684\u7ed3\u679c\u4ec5\u4e34\u65f6\u5b58\u5728\uff0c\u65e0\u6cd5\u4fdd\u5b58\u4e3a\u6d4b\u8bd5\u62a5\u544a\u4f9b\u540e\u7eed\u67e5\u770b\u3002

    \u70b9\u51fb\u3010\u8c03\u8bd5\u3011\u6309\u94ae\u4e0b\u62c9\u56fe\u6807\uff0c\u518d\u70b9\u51fb\u751f\u6210\u6d4b\u8bd5\u62a5\u544a\u3002\u5f39\u51fa\u6267\u884c\u7ed3\u679c\u9875\u9762\uff0c\u5f53\u573a\u666f\u6267\u884c\u5b8c\u6210\u540e\u53ef\u67e5\u770b\u5230\u8be6\u7ec6\u7684\u6267\u884c\u62a5\u544a\u3002

    "},{"location":"user_manual/api_test/api_automation/#27","title":"2.7 \u6267\u884c\u6307\u5b9a\u573a\u666f","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u70b9\u51fb\u6307\u5b9a\u573a\u666f\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u6267\u884c\u3011\u6309\u94ae\uff0c\u5f39\u51fa\u6267\u884c\u7ed3\u679c\u9875\u9762\uff0c\u5f53\u573a\u666f\u6267\u884c\u5b8c\u6210\u540e\u53ef\u67e5\u770b\u5230\u8be6\u7ec6\u7684\u6267\u884c\u7ed3\u679c\u3002

    "},{"location":"user_manual/api_test/api_automation/#28","title":"2.8 \u6279\u91cf\u6267\u884c\u573a\u666f","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u6279\u91cf\u6267\u884c\u3011\uff0c\u6240\u6709\u7528\u4f8b\u6267\u884c\u5b8c\u6210\u540e\u53ef\u8fdb\u5165\u3010\u6d4b\u8bd5\u62a5\u544a\u3011\u9875\u9762\u67e5\u770b\u6267\u884c\u7ed3\u679c\u3002

    • \u3010\u8fd0\u884c\u73af\u5883\u3011\uff1a\u6279\u91cf\u6267\u884c\u573a\u666f\u9009\u62e9\u7684\u73af\u5883\uff0c\u652f\u6301\u9879\u76ee\u73af\u5883\u548c\u73af\u5883\u7ec4\u4e24\u79cd\u65b9\u5f0f\u3002
    • \u3010\u6a21\u5f0f\u3011\uff1a\u4e32\u884c\u8868\u793a\u591a\u573a\u666f\u4f9d\u6b21\u6267\u884c\uff1b\u5e76\u884c\u8868\u793a\u591a\u573a\u666f\u540c\u65f6\u6267\u884c\u3002
    • \u3010\u5176\u4ed6\u914d\u7f6e\u3011\uff1a\u72ec\u7acb\u62a5\u544a\u8868\u793a\u6bcf\u4e2a\u573a\u666f\u90fd\u751f\u6210\u4e00\u4efd\u62a5\u544a\uff1b\u96c6\u5408\u62a5\u544a\u8868\u793a\u6240\u6709\u573a\u666f\u53ea\u751f\u6210\u4e00\u4efd\u62a5\u544a\u3002
    • \u3010\u8d44\u6e90\u6c60\u3011\uff1a\u652f\u6301\u9009\u62e9\u4e0d\u540c\u8282\u70b9\u6267\u884c\u573a\u666f\uff0c\u53ef\u4ee5\u9009\u62e9\u666e\u901a\u8d44\u6e90\u6c60\u548c K8S \u8d44\u6e90\u6c60\uff0cK8S \u8d44\u6e90\u6c60\u662f\u4f01\u4e1a\u7248\u529f\u80fd\u3002

    "},{"location":"user_manual/api_test/api_automation/#29","title":"2.9 \u6279\u91cf\u7f16\u8f91\u573a\u666f","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u6279\u91cf\u7f16\u8f91\u3011\uff0c\u652f\u6301\u6279\u91cf\u7f16\u8f91\u3010\u7528\u4f8b\u7b49\u7ea7\u3001\u72b6\u6001\u3001\u8d23\u4efb\u4eba\u3001\u8fd0\u884c\u73af\u5883\u3001\u6807\u7b7e\u3011\u56db\u4e2a\u5c5e\u6027\u3002

    "},{"location":"user_manual/api_test/api_automation/#210","title":"2.10 \u6279\u91cf\u79fb\u52a8\u573a\u666f","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u6279\u91cf\u79fb\u52a8\u3011\uff0c\u652f\u6301\u5c06\u573a\u666f\u5230\u79fb\u52a8\u5176\u4ed6\u6a21\u5757\u4f4d\u7f6e\u3002

    "},{"location":"user_manual/api_test/api_automation/#211","title":"2.11 \u6279\u91cf\u590d\u5236\u573a\u666f","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u6279\u91cf\u590d\u5236\u3011\uff0c\u652f\u6301\u590d\u5236\u591a\u4e2a\u573a\u666f\u3002

    "},{"location":"user_manual/api_test/api_automation/#212","title":"2.12 \u6279\u91cf\u5220\u9664\u573a\u666f","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u6279\u91cf\u5220\u9664\u3011\uff0c\u652f\u6301\u5220\u9664\u591a\u4e2a\u573a\u666f\u3002

    "},{"location":"user_manual/api_test/api_automation/#213","title":"2.13 \u751f\u6210\u4f9d\u8d56\u5173\u7cfb","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u751f\u6210\u4f9d\u8d56\u5173\u7cfb\u3011\u3002 \u3010\u4f9d\u8d56\u5173\u7cfb\u56fe\u3011\u53ef\u4ee5\u5bfc\u51fa\u3010JPG\u3011\u548c\u3010PNG\u3011\u56fe\u7247\u683c\u5f0f\u3002

    "},{"location":"user_manual/api_test/api_automation/#214","title":"2.14 \u6279\u91cf\u6dfb\u52a0\u6d4b\u8bd5\u8ba1\u5212","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u6279\u91cf\u6dfb\u52a0\u6d4b\u8bd5\u8ba1\u5212\u3011\uff0c\u652f\u6301\u5c06\u591a\u4e2a\u573a\u666f\u6dfb\u52a0\u5230\u6d4b\u8bd5\u8ba1\u5212\u3002

    \u52fe\u9009\u8981\u6dfb\u52a0\u7684\u6d4b\u8bd5\u8ba1\u5212\uff0c\u70b9\u51fb\u786e\u5b9a\u5373\u53ef\u6dfb\u52a0\u6210\u529f\u3002

    "},{"location":"user_manual/api_test/api_automation/#215","title":"2.15 \u6279\u91cf\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u9009\u4e2d\u591a\u4e2a\u573a\u666f\u540e\u70b9\u51fb\u6279\u91cf\u64cd\u4f5c\u6309\u94ae\u4e2d\u7684\u3010\u6279\u91cf\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u3011\uff0c\u652f\u6301\u5c06\u591a\u4e2a\u573a\u666f\u5bfc\u5165\u6027\u80fd\u6d4b\u8bd5\u3002

    "},{"location":"user_manual/api_test/api_automation/#216","title":"2.16 \u573a\u666f\u5b9a\u65f6\u4efb\u52a1","text":"

    \u573a\u666f\u5217\u8868\u9875\u70b9\u51fb\u53f3\u4fa7\u3010...\u3011\uff0c \u9009\u62e9\u5b9a\u65f6\u4efb\u52a1\u3002\u5f39\u51fa\u5b9a\u65f6\u4efb\u52a1\u914d\u7f6e\u9875\u9762\uff0c\u5b9a\u65f6\u4efb\u52a1\u53ef\u4ee5\u914d\u7f6e\u81ea\u52a8\u751f\u6210\uff0c\u80fd\u770b\u5230\u8fd1 5 \u6b21\u8fd0\u884c\u7ed3\u679c\uff0c\u652f\u6301\u9009\u62e9\u8fd0\u884c\u8d44\u6e90\u6c60\u3002

    "},{"location":"user_manual/api_test/api_automation/#217","title":"2.17 \u573a\u666f\u5bfc\u51fa \u5bfc\u5165","text":"

    \u573a\u666f\u5217\u8868\u652f\u6301\u5bfc\u51fa\u3010MeterSphere \u683c\u5f0f\u3011\u548c\u3010JMETER \u683c\u5f0f\u3011 \u4e24\u79cd\u683c\u5f0f\u3002

    \u573a\u666f\u5217\u8868\u652f\u6301\u5bfc\u5165\u3010MeterSphere\u3011\u3001\u3010Postman\u3011\u3001\u3010JMeter\u3011\u3001\u3010HAR\u3011\u56db\u79cd\u683c\u5f0f\uff0c\u573a\u666f\u5bfc\u5165\u652f\u6301\u3010\u8986\u76d6\u3011\u548c\u3010\u4e0d\u8986\u76d6\u3011\u4e24\u79cd\u6a21\u5f0f\u3002

    \u573a\u666f\u5728\u8de8\u9879\u76ee\u3001\u8de8\u5de5\u4f5c\u7a7a\u95f4\u751a\u81f3\u662f\u8de8\u670d\u52a1\u8fc1\u79fb\u6570\u636e\u5bfc\u5165\u3001\u5bfc\u51fa\u65f6\uff0c\u80fd\u591f\u4fdd\u7559\u81ea\u8eab\u6b65\u9aa4\u7684\u5f15\u7528\u5173\u7cfb\uff0c\u4fdd\u8bc1\u6570\u636e\u7684\u5b8c\u6574\u6027\u548c\u4e00\u81f4\u6027\u3002\u540c\u4e00\u5de5\u4f5c\u7a7a\u95f4\u4e0b\uff0c\u652f\u6301\u5bfc\u5165\u4e0d\u540c\u5de5\u4f5c\u7a7a\u95f4\u4e0b\u7684\u6570\u636e\u5bfc\u5165\u3002

    "},{"location":"user_manual/api_test/api_automation/#218","title":"2.18 \u573a\u666f\u67e5\u770b\u5f15\u7528","text":"

    \u652f\u6301\u67e5\u770b\u573a\u666f\u5728\u53e6\u5916\u573a\u666f\u548c\u6d4b\u8bd5\u8ba1\u5212\u7684\u5f15\u7528\u60c5\u51b5\u3002

    "},{"location":"user_manual/api_test/api_automation/#219","title":"2.19 \u5c06\u573a\u666f\u79fb\u5165\u56de\u6536\u7ad9","text":"

    \u5728\u573a\u666f\u5217\u8868\u4e2d\u70b9\u51fb\u6307\u5b9a\u573a\u666f\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u8be5\u573a\u666f\u5c06\u88ab\u79fb\u5165\u56de\u6536\u7ad9\uff0c\u540c\u65f6\u573a\u666f\u53d8\u4e3a\u3010\u5e9f\u5f03\u3011\u72b6\u6001\u3002\u7528\u6237\u53ef\u4ee5\u70b9\u51fb\u5de6\u4fa7\u6a21\u5757\u6811\u4e2d\u7684\u3010\u56de\u6536\u7ad9\u3011\u67e5\u770b\u5df2\u5e9f\u5f03\u7684\u573a\u666f\u3002

    "},{"location":"user_manual/api_test/api_automation/#220","title":"2.20 \u56de\u6536\u7ad9\u64cd\u4f5c","text":"

    \u70b9\u51fb\u5de6\u4fa7\u6a21\u5757\u6811\u4e2d\u7684\u3010\u56de\u6536\u7ad9\u3011\uff0c\u8fdb\u5165\u56de\u6536\u7ad9\u9875\u9762\uff0c\u652f\u6301\u5bf9\u5df2\u7ecf\u5220\u9664\u7684\u573a\u666f\u8fdb\u884c\u3010\u6062\u590d\u3011\u3010\u5220\u9664\u3011\u64cd\u4f5c\u3002\u9009\u62e9\u8981\u6062\u590d\u7684\u573a\u666f\u70b9\u51fb\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u6062\u590d\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u5c06\u6570\u636e\u6062\u590d\u5230\u63a5\u53e3\u81ea\u52a8\u5316\u5217\u8868\uff1b\u70b9\u51fb\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u5220\u9664\u3011\u6309\u94ae\u3002 \u4ece\u56de\u6536\u7ad9\u4e2d\u5220\u9664\u67d0\u4e2a\u573a\u666f\u65f6\uff0c\u8be5\u573a\u666f\u5c06\u4ece\u6570\u636e\u5e93\u4e2d\u5220\u9664\u4e14\u65e0\u6cd5\u6062\u590d\uff0c\u8bf7\u8c28\u614e\u4f7f\u7528\u8be5\u529f\u80fd\u3002

    "},{"location":"user_manual/api_test/api_automation/#221-mqtt-x-pack","title":"2.21 MQTT\u534f\u8bae (X-Pack)","text":"

    \u70b9\u51fb\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf-\u63d2\u4ef6\u7ba1\u7406\u3011\uff0c\u70b9\u51fb\u3010\u70b9\u51fb\u4e0a\u4f20\u3011\uff0c\u5c06 MQTT \u534f\u8bae\u7684 Jar \u5305\u4e0a\u4f20\u4e0a\u53bb\u3002

    \u70b9\u51fb\u3010\u63a5\u53e3\u81ea\u52a8\u5316-\u521b\u5efa\u573a\u666f\u3011\uff0c\u53f3\u4fa7\u4f1a\u51fa\u73b0 MQTT \u8bf7\u6c42\u76f8\u5173\u5185\u5bb9\u3002

    \u6839\u636e\u9700\u8981\uff0c\u9009\u62e9 MQTT \u8bf7\u6c42\u7684\u7ec4\u4ef6

    "},{"location":"user_manual/api_test/api_automation/#222-websocket-x-pack","title":"2.22 Websocket\u534f\u8bae (X-Pack)","text":"

    \u70b9\u51fb\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u7cfb\u7edf-\u63d2\u4ef6\u7ba1\u7406\u3011\uff0c\u70b9\u51fb\u3010\u70b9\u51fb\u4e0a\u4f20\u3011\uff0c\u5c06 Websocket \u534f\u8bae\u7684 Jar \u5305\u4e0a\u4f20\u4e0a\u53bb\u3002

    \u70b9\u51fb\u3010\u63a5\u53e3\u81ea\u52a8\u5316-\u521b\u5efa\u573a\u666f\u3011\uff0c\u53f3\u4fa7\u4f1a\u51fa\u73b0 Websocket \u8bf7\u6c42\u76f8\u5173\u5185\u5bb9\uff0c\u6839\u636e\u9700\u8981\uff0c\u9009\u62e9 Websocket \u8bf7\u6c42\u7684\u7ec4\u4ef6\u3002

    "},{"location":"user_manual/api_test/api_automation/#223-thrift-x-pack","title":"2.23 Thrift\u534f\u8bae (X-Pack)","text":"

    \u4e0e\u4e0a\u9762 MQTT\u534f\u8bae (X-Pack) \u548c Websocket\u534f\u8bae (X-Pack) \u64cd\u4f5c\u6b65\u9aa4\u76f8\u540c

    "},{"location":"user_manual/api_test/api_definition/","title":"\u63a5\u53e3\u5b9a\u4e49","text":""},{"location":"user_manual/api_test/api_definition/#1","title":"1 \u6982\u8ff0","text":"

    \u63a5\u53e3\u5b9a\u4e49\u5c55\u793a\u5f53\u524d\u9879\u76ee\u7684\u6240\u6709\u63a5\u53e3\u6570\u636e\uff0c\u5305\u542b\u5de6\u4fa7\u63a5\u53e3\u6a21\u5757\u6811\u3001API \u63a5\u53e3\u5217\u8868\u3001\u63a5\u53e3 CASE \u5217\u8868\u3001\u6587\u6863\u56db\u4e2a\u90e8\u5206\u3002

    "},{"location":"user_manual/api_test/api_definition/#2","title":"2 \u63a5\u53e3\u7ba1\u7406","text":""},{"location":"user_manual/api_test/api_definition/#21","title":"2.1 \u63a5\u53e3\u534f\u8bae","text":"

    \u70b9\u51fb\u5de6\u4e0a\u89d2\u3010HTTP\u3011\u4e0b\u62c9\u6846\uff0c\u53ef\u5207\u6362\u63a5\u53e3\u534f\u8bae\uff0c\u76ee\u524d\u652f\u6301 HTTP\u3001TCP \u3001SQL \u548c DUBBO \u56db\u79cd\u534f\u8bae\u3002

    "},{"location":"user_manual/api_test/api_definition/#22","title":"2.2 \u6a21\u5757\u6811\u7ba1\u7406","text":"

    \u63a5\u53e3\u6570\u636e\u53ef\u4ee5\u5206\u6a21\u5757\u7ba1\u7406\uff0c\u53ef\u6309\u7167\u4f01\u4e1a\u5b9e\u9645\u6d4b\u8bd5\u9879\u76ee\u5212\u5206\u4e3a\u591a\u7ea7\u6a21\u5757\u8fdb\u884c\u7ba1\u7406\uff0c\u6700\u591a\u53ef\u5206\u516b\u7ea7\u3002\u9f20\u6807\u60ac\u6d6e\u5728\u6a21\u5757\u4e0a\u70b9\u51fb\u3010+\u3011\u521b\u5efa\u4e00\u7ea7\u6a21\u5757\u3002\u6a21\u5757\u652f\u6301\u6dfb\u52a0\u5b50\u6a21\u5757\u3001\u6a21\u7cca\u641c\u7d22\u3001\u5220\u9664\u3001\u91cd\u547d\u540d\u64cd\u4f5c\uff0c\u9009\u4e2d\u76ee\u5f55\u53ef\u8fdb\u884c\u62d6\u62fd\u8c03\u6574\u3002

    "},{"location":"user_manual/api_test/api_definition/#23","title":"2.3 \u63a5\u53e3\u5feb\u6377\u8c03\u8bd5","text":"

    \u9f20\u6807\u60ac\u6d6e\u5728\u3010+\u3011\u53ef\u4ee5\u5b8c\u6210\u3010\u5feb\u901f\u8c03\u8bd5\u3011\u3010\u521b\u5efa\u63a5\u53e3\u3011\u3010\u5173\u95ed\u6240\u6709\u9875\u7b7e\u3011\u64cd\u4f5c\u3002\u70b9\u51fb\u3010\u5feb\u6377\u8c03\u8bd5\u3011\u8fdb\u5165\u5feb\u6377\u8c03\u8bd5\u9875\u9762\u3002\u586b\u5199\u5b8c\u6574\u7684\u6d4b\u8bd5\u5730\u5740\u548c\u57fa\u672c\u8bf7\u6c42\u53c2\u6570\uff0c\u70b9\u51fb\u3010\u6d4b\u8bd5\u3011\u6309\u94ae\u5373\u53ef\u8fdb\u884c\u63a5\u53e3\u8c03\u8bd5\u3002\u6d4b\u8bd5\u5b8c\u6210\u70b9\u51fb\u3010\u53e6\u5b58\u4e3a\u65b0\u7528\u4f8b\u3011\uff0c\u586b\u5199\u63a5\u53e3\u7528\u4f8b\u540d\u79f0\u53ef\u4fdd\u5b58\u4e3a\u4e00\u4e2a\u65b0\u7684\u63a5\u53e3\u7528\u4f8b\u3002

    "},{"location":"user_manual/api_test/api_definition/#24","title":"2.4 \u5feb\u901f\u521b\u5efa\u63a5\u53e3","text":"

    \u9f20\u6807\u60ac\u6d6e\u5728\u3010+\u3011\uff0c\u70b9\u51fb\u5982\u4e0a\u56fe\u3010\u521b\u5efa\u63a5\u53e3\u3011\u5f39\u51fa\u521b\u5efa\u63a5\u53e3\u8be6\u60c5\u9875\u9762\u3002\u521b\u5efa\u63a5\u53e3\u9875\u9762\u586b\u5199\u63a5\u53e3\u57fa\u7840\u4fe1\u606f\u3001\u8bf7\u6c42\u65b9\u5f0f\u3001\u8bf7\u6c42\u53c2\u6570\u3001\u54cd\u5e94\u5185\u5bb9\u5373\u53ef\u3002

    • \u8bf7\u6c42\u65b9\u5f0f\uff1a\u652f\u6301GET\u3001POST\u3001PUT\u3001PATCH\u3001DELETE\u3001OPTIONS\u3001HEAD\u3001CONNECT\u3002
    • \u8bf7\u6c42\u53c2\u6570\uff1a\u5305\u542b\u9ed8\u8ba4\u8bf7\u6c42\u5934\u53d8\u91cf\uff1b\u5e38\u7528query\u3001rest\u53c2\u6570\uff0c\u9f20\u6807\u60ac\u6d6e\u4f1a\u6709\u63d0\u793a\u3002
    • \u8bf7\u6c42\u4f53\uff1a\u652f\u6301\u591a\u79cd\u5f62\u5f0f\uff1aform-data\uff0cx-www-form-urlencoded\uff0cjson\uff0cxml\uff0craw\uff0cbinary\u3002

    \u53c2\u6570\u586b\u5199\u5b8c\u6210\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5373\u53ef\u5b8c\u6210\u63a5\u53e3\u5b9a\u4e49\u521b\u5efa\uff0c\u5e76\u8df3\u8f6c\u5230\u63a5\u53e3\u5c55\u793a\u3010\u7f16\u8f91\u8be6\u60c5\u3011\u9875\u9762\uff0c\u53ef\u5728\u3010API\u3011\u3010TEST\u3011\u3010CASE\u3011\u3010MOCK\u3011\u83dc\u5355\u4e0b\u5bf9\u63a5\u53e3\u505a\u8fdb\u4e00\u6b65\u8c03\u6574\u3002

    "},{"location":"user_manual/api_test/api_definition/#3-api","title":"3 API","text":""},{"location":"user_manual/api_test/api_definition/#31-api","title":"3.1 \u7f16\u8f91 API","text":"

    \u5728\u7f16\u8f91\u63a5\u53e3\u3010API\u3011\u9875\u9762\u4e2d\u53ef\u4ee5\u5bf9\u63a5\u53e3\u7684\u57fa\u7840\u4fe1\u606f\u3001\u8bf7\u6c42\u53ca\u54cd\u5e94\u5b9a\u4e49\u3001\u524d\u540e\u7f6e\u4f9d\u8d56\u5173\u7cfb\u8fdb\u884c\u8be6\u7ec6\u7f16\u8f91\u3002 \u5728\u4f01\u4e1a\u7248\u3010Xpack\u3011\u529f\u80fd\u5305\u4e2d\uff1a\u5bf9\u5df2\u6709 CASE \u7684\u63a5\u53e3\uff0c\u66f4\u6539\u63a5\u53e3\u5730\u5740\u3001\u8bf7\u6c42\u5934\u3001\u8bf7\u6c42\u53c2\u6570\u7b49\u5185\u5bb9\u3002\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\uff0c\u4f1a\u5f39\u51fa\u540c\u6b65\u66f4\u65b0\u8bbe\u7f6e\u786e\u8ba4\u6846\uff0c\u53ef\u4e00\u952e\u540c\u6b65\u88ab\u4f7f\u7528\u7684 CASE \u53c2\u6570\uff0c\u4fbf\u4e8e\u7ef4\u62a4\u811a\u672c\u3002

    "},{"location":"user_manual/api_test/api_definition/#32","title":"3.2 \u5173\u6ce8\u63a5\u53e3","text":"

    \u70b9\u51fb\u9875\u9762\u53f3\u4e0a\u89d2\u7684\u3010\u4e94\u89d2\u661f\u56fe\u6807\u3011\uff0c\u53ef\u5173\u6ce8/\u53d6\u6d88\u5173\u6ce8\u8be5\u63a5\u53e3\u5b9a\u4e49\u3002\u82e5\u63a5\u53e3\u6709\u53d8\u66f4\u4f1a\u53ca\u65f6\u63d0\u9192\u5173\u6ce8\u8005\u3002

    "},{"location":"user_manual/api_test/api_definition/#33","title":"3.3 \u63a5\u53e3\u53d8\u66f4\u8bb0\u5f55","text":"

    \u70b9\u51fb\u9875\u9762\u53f3\u4e0a\u89d2\u7684\u3010\u53d8\u66f4\u8bb0\u5f55\u3011\u53ef\u67e5\u770b\u6b64\u63a5\u53e3\u6240\u6709\u7684\u53d8\u66f4\u8bb0\u5f55\u3002\u53ef\u67e5\u770b\u5177\u4f53\u7684\u53d8\u66f4\u5b57\u6bb5\u3001\u53d8\u66f4\u524d\u3001\u53d8\u66f4\u540e\u7684\u4fe1\u606f\u3002

    "},{"location":"user_manual/api_test/api_definition/#34-x-pack","title":"3.4 \u7248\u672c\u7ba1\u7406 (X-Pack)","text":"

    \u70b9\u51fb\u9875\u9762\u53f3\u4e0a\u89d2\u7684\u3010\u7248\u672c: v1.1.0\u3011\u53ef\u67e5\u770b\u6240\u6709\u7684\u7248\u672c\u53f7\uff0c\u9009\u62e9\u5f53\u524d\u7248\u672c\u53f7\uff0c\u521b\u5efa\u63a5\u53e3\u3002\u5728\u63a5\u53e3\u5217\u8868\u9ed8\u8ba4\u5c55\u793a\u6240\u6709\u63a5\u53e3\u7684\u6700\u65b0\u7248\u672c\u6570\u636e\uff0c\u5e76\u652f\u6301\u6279\u91cf\u64cd\u4f5c\u590d\u5236\u6307\u5b9a\u7248\u672c\u7684 CASE \u548c Mock \u6570\u636e\uff0c\u53ef\u5feb\u901f\u5207\u6362\u7248\u672c\u53ca\u5386\u53f2\u6570\u636e\u5bf9\u6bd4\uff0c\u4f18\u5316\u5bf9\u63a5\u53e3\u7684\u7ba1\u7406\u65b9\u6cd5\u3002

    "},{"location":"user_manual/api_test/api_definition/#35-http","title":"3.5 HTTP \u8bf7\u6c42","text":"

    \u8bf7\u6c42\u5934 \u8bf7\u6c42\u5934\uff1a\u63d0\u4f9b\u8bf7\u6c42\u5934\u53d8\u91cf\uff0c\u70b9\u51fb\u5373\u53ef\u5f39\u51fa\u65b9\u6cd5\u5217\u8868\u3002\u70b9\u51fb\u53c2\u6570\u3010\u94c5\u7b14\u56fe\u6807\u3011\u8fd8\u53ef\u6dfb\u52a0 Mock \u6570\u636e\u548c JMeter \u65b9\u6cd5\u5185\u7f6e\u51fd\u6570\u3002

    • \u51fd\u6570 Tab \u9875\u7b7e\u9ed8\u8ba4\u9009\u4e2d\u3010Mock\u65b9\u6cd5\u3011\uff0c\u9009\u62e9\u6570\u636e\u7c7b\u578b\u53ef\u6dfb\u52a0\u51fd\u6570\u4f7f\u7528\uff0c\u6570\u636e\u7c7b\u578b\u5217\u8868\u4e0b\u65b9\u4f1a\u5c55\u793a\u51fd\u6570\u9884\u89c8\u6548\u679c\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u6309\u94ae\u751f\u6548\u3002
    • \u51fd\u6570 Tab \u9875\u7b7e\u9009\u62e9\u9009\u62e9\u3010JMeter\u65b9\u6cd5\u3011\uff0c\u5373\u53ef\u9009\u62e9\u4f7f\u7528\u5185\u7f6e\u7684 Jmeter \u51fd\u6570\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u6309\u94ae\u751f\u6548\u3002 \u5185\u7f6e\u51fd\u6570\u7684\u8be6\u7ec6\u8bf4\u660e\u8bf7\u53c2\u8003 \u5185\u7f6e\u51fd\u6570

    QUERY\u53c2\u6570 QUERY \u53c2\u6570\u662f\u5728\u63a5\u53e3\u5730\u5740\u680f\u4e2d\u8ddf\u5728\uff1f\u540e\u9762\u7684\u53c2\u6570\uff0c\u5982 updateapi?id=11\uff1b\u53ef\u76f4\u63a5\u5728\u4e0b\u65b9\u5217\u8868\u8f93\u5165 QUERY \u53c2\u6570\u952e\u503c\u5bf9\u3002\u70b9\u51fb\u53c2\u6570\u4e0a\u9762\u7684 \u3010\u8bbe\u7f6e\u56fe\u6807\u3011\uff0c\u53ef\u6dfb\u52a0\u53c2\u6570\u7684\u5176\u4ed6\u5c5e\u6027\u5982\u7f16\u7801\u3001\u6700\u5927\u957f\u5ea6\u3001\u63cf\u8ff0\u7b49\u3002\u70b9\u51fb\u3010\u6279\u91cf\u6dfb\u52a0\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u6279\u91cf\u6dfb\u52a0\u53c2\u6570\uff1a\u586b\u5199\u53c2\u6570\u952e\u503c\u5bf9\u70b9\u51fb\u786e\u5b9a\u5373\u53ef\u89e3\u6790\u5230\u53c2\u6570\u5217\u8868\u3002

    REST\u53c2\u6570 REST\u53c2\u6570\u662f\u5728\u63a5\u53e3\u5730\u5740\u680f\u4e2d\u88ab\u3010/\u3011\u5206\u9694\u7684\u53c2\u6570\uff0c\u5982 updateapi/{id}\u3002\u4f7f\u7528\u65b9\u6cd5\u540c\u4e0a\u3002

    \u8bf7\u6c42\u4f53 \u8bf7\u6c42\u4f53\u53c2\u6570\u652f\u6301\u591a\u79cd\u5f62\u5f0f\uff1aform-data\uff0cx-www-form-urlencoded\uff0cjson\uff0cxml\uff0craw\uff0cbinary\u3002 \u8bf7\u6c42\u4f53\u662f form-data \u548c x-www-form-urlencoded \u683c\u5f0f\u65f6\uff0c\u53ef\u4ee5\u9009\u62e9\u53c2\u6570\u7c7b\u578b\u3002\u4e0d\u540c\u7684\u53c2\u6570\u7c7b\u578b\uff0c\u7cfb\u7edf\u4f1a\u63d0\u4f9b \u9ed8\u8ba4\u5c5e\u6027\u3002

    \u8bf7\u6c42\u4f53\u662f json \u683c\u5f0f\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528 Json-schema \u7528\u4e8e\u9a8c\u8bc1json\u6570\u636e\u683c\u5f0f\u3002

    \u8ba4\u8bc1\u914d\u7f6e \u652f\u6301 Basic Auth \u7684\u8ba4\u8bc1\u65b9\u5f0f\u548c\u5bf9\u6570\u636e\u52a0\u5bc6\uff0c\u6b64\u5904\u53ef\u4ee5\u914d\u7f6e\u8ba4\u8bc1\u4fe1\u606f\u53ca\u52a0\u5bc6\u65b9\u5f0f\u3002

    \u5176\u4ed6\u8bbe\u7f6e \u53ef\u8bbe\u7f6e\u8bc1\u4e66\u3001\u8ddf\u968f\u91cd\u5b9a\u5411\u3001\u8fde\u63a5\u8d85\u65f6\u3001\u54cd\u5e94\u8d85\u65f6\u65f6\u95f4\u7b49\u3002

    "},{"location":"user_manual/api_test/api_definition/#36-tcp","title":"3.6 TCP \u8bf7\u6c42","text":"

    \u8bf7\u6c42\u53c2\u6570 \u8bf7\u6c42\u53c2\u6570\u53ef\u4ee5\u5728\u8bf7\u6c42\u6a21\u677f\u901a\u8fc7 ${xxx} \u5f15\u7528\u3002

    \u8bf7\u6c42\u4f53 \u8bf7\u6c42\u4f53\u53c2\u6570\u652f\u6301 json\u3001xml\u3001raw \u4e09\u79cd\u6570\u636e\u683c\u5f0f\u3002\u5176\u4e2d\u5728 xml \u53c2\u6570\u4e2d\u70b9\u51fb\u3010\u6dfb\u52a0\u3011\u6309\u94ae\uff0c\u652f\u6301\u4ee5\u8868\u683c\u5f62\u5f0f\u6dfb\u52a0\u53c2\u6570\u3002xml \u53ef\u6dfb\u52a0 object\u3001string\u3001array \u4e09\u79cd\u6570\u636e\u7c7b\u578b\u7684\u53c2\u6570\u3002\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u6309\u94ae\u4fdd\u5b58\u6dfb\u52a0\u7684 xml \u53c2\u6570\u3002

    \u5176\u4ed6\u8bbe\u7f6e \u5728\u5176\u4ed6\u8bbe\u7f6e\u4e2d\u53ef\u8bbe\u7f6e TCP \u5ba2\u6237\u7aef\u3001\u8fde\u63a5\u65f6\u95f4\u3001\u54cd\u5e94\u65f6\u95f4\u7b49\u53c2\u6570\u3002TCPClient \u9ed8\u8ba4\u63d0\u4f9b\u4e09\u79cd\u8fde\u63a5\u65b9\u5f0f\u3002

    "},{"location":"user_manual/api_test/api_definition/#37-sql","title":"3.7 SQL \u8bf7\u6c42","text":"

    SQL \u8bf7\u6c42\u652f\u6301\u914d\u7f6e\u591a\u4e2a\u6570\u636e\u6e90\uff0c\u9009\u62e9\u8fd0\u884c\u73af\u5883\u3001\u6570\u636e\u6e90\uff0c\u7f16\u5199sql\u811a\u672c\uff08sql\u811a\u672c\u652f\u6301\u4f20\u9012\u53d8\u91cf${\u53d8\u91cf\u540d}\uff09\uff0c\u67e5\u8be2\u7ed3\u679c\u53ef\u4ee5\u3010\u6309\u7ed3\u679c\u5b58\u50a8\u3011\u3010\u6309\u5217\u5b58\u50a8\u3011\u4e24\u79cd\u65b9\u5f0f\u3002 \u6309\u7ed3\u679c\u5b58\u50a8\uff1a\u662f\u5c06\u8fd4\u56de\u7ed3\u679c\u6240\u6709\u7684\u5b57\u6bb5\u5b58\u50a8\u5230\u4e00\u4e2a\u53d8\u91cf\u4e2d\u53bb\uff0c\u5982\u679c\u9700\u8981\u4f7f\u7528\u5176\u4e2d\u7684\u67d0\u4e2a\u5b57\u6bb5\u5219\u9700\u8981\u5bf9\u53d8\u91cf\u8fdb\u884c\u89e3\u6790\uff0c\u91cc\u9762\u7684\u5b9e\u9645\u6570\u636e\u662f\u96c6\u5408\u5d4c\u5957\u96c6\u5408\u3002\u6bcf\u4e00\u884c\u6570\u636e\u90fd\u662f\u4ee5 <\u5b57\u6bb5\u540d>\uff1a<\u5b57\u6bb5\u503c>( \u5373key :value)\u7684\u683c\u5f0f\u5b58\u5230map\u4e2d\u7684\uff0c\u800c\u6574\u4e2a\u8fd4\u56de\u6570\u636e\u5c31\u662f\u4ee5\u4e00\u4e2a\u5927\u7684map\u53bb\u5b58\u50a8\u6bcf\u4e00\u884c\u7684\u6570\u636e\u7684map \uff0c\u6700\u540e\u5f97\u5230\u4e00\u4e2a\u7ed3\u679c\u96c6\u5408\uff0c\u5982\u679c\u9700\u8981\u5176\u4e2d\u7684\u6570\u636e\uff0c\u9700\u8981\u901a\u8fc7 beanshell \u6216 python \u811a\u672c\u53bb\u89e3\u6790\u3002 \u6309\u5217\u5b58\u50a8\uff1a\u76f4\u63a5\u6307\u5b9a\u8fd4\u56de\u5b57\u6bb5\u7684\u7ed3\u679c\u503c\uff0c\u5217\u6570\u8981\u548c SQL \u8bed\u53e5\u4e2d\u67e5\u8be2\u5b57\u6bb5\u8fd4\u56de\u7ed3\u679c\u7684\u5217\u6570\u76f8\u540c\u3002\u540c\u65f6\u53ef\u4ee5\u7528\u9017\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u4ee3\u66ff\u5217\u540d\uff0c\u53ea\u5199\u51fa \u8981\u63d0\u53d6\u7684\u5217\u540d\u5373\u53ef\uff0c\u5f15\u7528\u65f6 ${\u5217\u540d\u53d8\u91cf_n}

    "},{"location":"user_manual/api_test/api_definition/#38-dubbo","title":"3.8 DUBBO \u8bf7\u6c42","text":"

    Interface \u70b9\u51fb\u3010Get Providers List\u3011\u6309\u94ae\uff0c\u53ef\u4ece\u3010Registry Center\u3011\u4e2d\u83b7\u53d6\u670d\u52a1\u5217\u8868\u3002\u53ef\u5728\u5b57\u6bb5 Interfaces \u4e0b\u62c9\u5217\u8868\u4e2d\u9009\u62e9\u9700\u8981\u6d4b\u8bd5\u7684\u63a5\u53e3\u53ca\u65b9\u6cd5\uff0c\u6839\u636e\u8be5\u65b9\u6cd5\u7684\u5b9a\u4e49\u4f20\u5165\u6240\u9700\u7684\u53c2\u6570\u3002

    Config Center \u53ef\u5728\u3010Config Center\u3011\u4e2d\u586b\u5199\u914d\u7f6e\u8d85\u65f6\u65f6\u95f4\u3001\u7528\u6237\u540d\u3001\u5bc6\u7801\u7b49\u76f8\u5173\u57fa\u7840\u4fe1\u606f\u3002

    Registry Center \u53ef\u5728\u3010Registry Center\u3011\u9875\u9762\u4e2d\u9009\u62e9\u534f\u8bae\u3001\u586b\u5199\u8fde\u63a5\u4fe1\u606f\u7b49\u3002

    Consumer & Service \u53ef\u5728\u3010Consumer & Service\u3011\u586b\u5199 Consumer \u548c Service \u4fe1\u606f\u3002

    Args \u53ef\u5728\u3010Args\u3011\u4e2d\u6dfb\u52a0\u8bf7\u6c42\u76f8\u5173\u53c2\u6570\u3002

    Attachment Args \u53ef\u5728\u3010Attachment Args\u3011\u4e2d\u8bbe\u7f6e\u5176\u4ed6\u952e\u503c\u5bf9\u53c2\u6570\u3002

    "},{"location":"user_manual/api_test/api_definition/#39","title":"3.9 \u4f9d\u8d56\u5173\u7cfb\u8bbe\u7f6e","text":"

    \u63a5\u53e3\u5b9a\u4e49\u652f\u6301\u8bbe\u7f6e\u63a5\u53e3\u7684\u524d\u540e\u7f6e\u4f9d\u8d56\u5173\u7cfb\u3002\u70b9\u51fb\u3010\u6dfb\u52a0\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u6dfb\u52a0\u524d\u7f6e\u63a5\u53e3\u3001\u540e\u7f6e\u63a5\u53e3\u4f9d\u8d56\u3002

    "},{"location":"user_manual/api_test/api_definition/#310-api","title":"3.10 API \u5217\u8868\u529f\u80fd","text":"

    \u652f\u6301\u5bf9\u63a5\u53e3\u5b9a\u4e49\u7684\u6267\u884c\u3001\u7f16\u8f91\u3001\u5220\u9664\u3001\u590d\u5236\u64cd\u4f5c\u70b9\u51fb\u66f4\u591a\u64cd\u4f5c\u3010...\u3011\u53ef\u4ee5 \u67e5\u770b\u5f15\u7528\u3001\u67e5\u770bCASE\u3002

    • \u6267\u884c\uff1a\u8fdb\u5165\u3010\u7f16\u8f91\u63a5\u53e3\u8be6\u60c5-TEST\u3011\u9875\u9762
    • \u7f16\u8f91\uff1a\u8fdb\u5165\u3010\u7f16\u8f91\u63a5\u53e3\u8be6\u60c5-API\u3011\u9875\u9762
    • \u5220\u9664\uff1a\u5220\u9664\u8be5\u63a5\u53e3\u5230\u3010\u56de\u6536\u7ad9\u3011
    • \u590d\u5236\uff1a\u590d\u5236\u8be5\u63a5\u53e3\u5b9a\u4e49\u4fe1\u606f
    • \u67e5\u770b\u5f15\u7528\uff1a\u53ef\u4ee5\u67e5\u770b\u63a5\u53e3\u5177\u4f53\u54ea\u4e2a\u573a\u666f\u5f15\u7528
    • \u67e5\u770b CASE :\u53ef\u4ee5\u67e5\u770b\u63a5\u53e3\u4e0b\u5199\u597d\u7684 CASE \u7528\u4f8b

    "},{"location":"user_manual/api_test/api_definition/#4-test","title":"4 TEST","text":"

    \u5728\u3010TEST\u3011\u9875\u9762\u4e2d\u53ef\u4ee5\u9009\u62e9\u8fd0\u884c\u73af\u5883\u8c03\u8bd5\u63a5\u53e3\uff0c\u540c\u65f6\u53ef\u4ee5\u6dfb\u52a0\u524d\u540e\u7f6e\u811a\u672c\u3001\u524d\u540e\u7f6eSQL\u3001\u65ad\u8a00\u3001\u63d0\u53d6\u53c2\u6570\u7b49\u5b50\u6b65\u9aa4\u3002

    "},{"location":"user_manual/api_test/api_definition/#41","title":"4.1 \u81ea\u52a8\u751f\u6210\u6d4b\u8bd5\u6570\u636e","text":"

    \u63a5\u53e3\u8bf7\u6c42\u4f53\u4e3a json \u683c\u5f0f\u53ef\u5f00\u542f \u3010JSON-SCHEMA\u3011\u6a21\u5f0f\uff0c\u70b9\u51fb\u3010\u751f\u6210\u6d4b\u8bd5\u6570\u636e\u3011\u4f1a\u751f\u6210\u968f\u673a\u53c2\u6570\u503c \uff0c\u7528\u4e8e\u5feb\u901f\u4f20\u53c2\u6d4b\u8bd5\u3002 \u5982\u9700\u5b9a\u5236\u751f\u6210\u89c4\u5219\u53ef\u70b9\u51fb\u3010\u8bbe\u7f6e\u3011\u56fe\u6807\uff0c\u5bf9\u679a\u4e3e\u503c\u751f\u6210\u89c4\u5219\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u5feb\u901f\u751f\u6210\u6570\u636e\u89c4\u5219\u5728\u3010\u9ad8\u7ea7\u8bbe\u7f6e\u3011\u9875\u9762\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u9ed8\u8ba4\u503c\u3001\u679a\u4e3e\u503c\u3001\u6700\u5927\u6700\u5c0f\u957f\u5ea6\u3001\u6b63\u5219\u8868\u8fbe\u3001\u63cf\u8ff0\u76f8\u5173\u4fe1\u606f\uff0c\u89c4\u5219\u8bbe\u7f6e\u597d\u540e\u70b9\u51fb\u3010\u751f\u6210\u6d4b\u8bd5\u6570\u636e\u3011\u751f\u6548\u3002\u5982\u6709\u8bbe\u7f6e\u4e86\u9ed8\u8ba4\u503c\uff0c\u5219\u751f\u6210\u6d4b\u8bd5\u6570\u636e\u662f\u9ed8\u8ba4\u503c\uff1b\u5982\u8bbe\u7f6e\u679a\u4e3e\u503c\uff0c\u751f\u6210\u7684\u6570\u636e\u662f\u679a\u4e3e\u503c\u5176\u4e2d\u4e00\u4e2a\uff0c\u679a\u4e3e\u503c\u53ef\u4ee5\u6362\u884c\u8bbe\u7f6e\u591a\u4e2a\u3002

    "},{"location":"user_manual/api_test/api_definition/#42","title":"4.2 \u9488\u5bf9\u5355\u4e2a\u63a5\u53e3\u53d1\u8d77\u6d4b\u8bd5","text":"

    \u9009\u62e9\u8fd0\u884c\u73af\u5883\uff0c\u70b9\u51fb \u3010\u6d4b\u8bd5\u3011\u6309\u94ae\u5373\u53ef\u8c03\u8bd5\u63a5\u53e3\u3002\u5728\u54cd\u5e94\u5185\u5bb9\u53ef\u4ee5\u770b\u5230\u63a5\u53e3\u7684\u8bf7\u6c42\u54cd\u5e94\u4f53\u3001\u54cd\u5e94\u5934\u3001\u63a7\u5236\u53f0\u3001\u65ad\u8a00\u3001\u63d0\u53d6\u3001\u8bf7\u6c42\u5185\u5bb9\u4fe1\u606f\u3002 \u524d\u540e\u7f6e\u811a\u672c\u3001\u524d\u540e\u7f6eSQL\u3001\u65ad\u8a00\u53ca\u53c2\u6570\u63d0\u53d6\u7b49\u5b50\u6b65\u9aa4\u7684\u8be6\u60c5\u8bf4\u660e\u8bf7\u53c2\u8003\u3002 \u7528\u4f8b\u6b65\u9aa4\u8bf4\u660e

    "},{"location":"user_manual/api_test/api_definition/#43","title":"4.3 \u5176\u4ed6\u529f\u80fd","text":"

    \u70b9\u51fb\u3010\u6d4b\u8bd5\u3011\u6309\u94ae\u65c1\u8fb9\u7684\u5411\u4e0b\u7bad\u5934\u3010V\u3011\uff0c\u8fd8\u63d0\u4f9b\u4e86\u52a0\u8f7d\u7528\u4f8b\u3001\u53e6\u5b58\u4e3a\u65b0\u7528\u4f8b\u3001\u66f4\u65b0\u63a5\u53e3\u3001\u53e6\u5b58\u4e3a\u65b0\u63a5\u53e3\u5feb\u6377\u529f\u80fd\u3002

    \u3010\u52a0\u8f7d\u7528\u4f8b\u3011\u52a0\u8f7d\u8be5\u63a5\u53e3\u4e0b\u7684\u6240\u6709\u7528\u4f8b\u3002

    \u3010\u53e6\u5b58\u4e3a\u65b0\u7528\u4f8b\u3011\u53ef\u4f7f\u7528\u8be5\u63a5\u53e3\u9875\u9762\u586b\u5199\u7684\u53c2\u6570\u4fe1\u606f\u53ca\u6dfb\u52a0\u7684\u5b50\u6b65\u9aa4\uff0c\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u63a5\u53e3\u7528\u4f8b\u3002\u8f93\u5165\u7528\u4f8b\u540d\u79f0\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u6309\u94ae\uff0c\u5373\u53ef\u4fdd\u5b58\u4e3a\u4e00\u4e2a\u65b0\u7684\u63a5\u53e3\u7528\u4f8b\u3002

    \u3010\u66f4\u65b0\u63a5\u53e3\u3011\u53ef\u5c06\u5f53\u524d\u9875\u9762\u586b\u5199\u7684\u53c2\u6570\u4fe1\u606f\u66f4\u65b0\u5230\u5bf9\u5e94\u7684\u63a5\u53e3\u5b9a\u4e49\u4e2d\u3002

    \u3010\u53e6\u5b58\u4e3a\u65b0\u63a5\u53e3\u3011\u5373\u53ef\u4f7f\u7528\u5f53\u524d\u9875\u9762\u63a5\u53e3\u4fe1\u606f\u6765\u521b\u5efa\u65b0\u7684\u63a5\u53e3\u5b9a\u4e49\u3002

    "},{"location":"user_manual/api_test/api_definition/#5-case","title":"5 CASE","text":"

    \u5728 CASE \u9875\u9762\u4e2d\u5c55\u793a\u5f53\u524d\u63a5\u53e3\u4e0b\u7684\u6240\u6709\u63a5\u53e3\u7528\u4f8b\u5217\u8868\u3002

    "},{"location":"user_manual/api_test/api_definition/#51","title":"5.1 \u5217\u8868\u529f\u80fd","text":"

    \u652f\u6301\u5bf9\u63a5\u53e3\u7528\u4f8b\u7684 \u7f16\u8f91 \u6267\u884c \u590d\u5236 \u5220\u9664\u9f20\u6807\u60ac\u6d6e\u3010\u2026\u3011\u53ef\u5c55\u793a\u66f4\u591a\u529f\u80fd\u3001\u67e5\u770b\u5f15\u7528\u3001\u6267\u884c\u5386\u53f2\u3001\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u64cd\u4f5c\u3002

    • \u7f16\u8f91\uff1a\u7f16\u8f91\u8be5\u63a5\u53e3\u7528\u4f8b
    • \u6267\u884c\uff1a\u8c03\u8bd5\u8be5\u63a5\u53e3
    • \u590d\u5236\uff1a\u590d\u5236\u8be5\u63a5\u53e3\u7528\u4f8b\u4fe1\u606f
    • \u5220\u9664\uff1a\u5220\u9664\u8be5\u63a5\u53e3\u7528\u4f8b\u5230\u56de\u6536\u7ad9
    • \u67e5\u770b\u5f15\u7528\uff1a\u67e5\u770b\u8be5\u63a5\u53e3\u7528\u4f8b\u88ab\u573a\u666f\u5f15\u7528\u548c\u6d4b\u8bd5\u8ba1\u5212\u5f15\u7528\u60c5\u51b5
    • \u6267\u884c\u5386\u53f2\uff1a\u53ef\u67e5\u770b\u8be5\u63a5\u53e3\u7528\u4f8b\u6267\u884c\u5386\u53f2\u5217\u8868\u53ca\u6267\u884c\u7ed3\u679c\u8be6\u60c5
    • \u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\uff1a\u53ef\u4f7f\u7528\u5f53\u524d\u63a5\u53e3\u7528\u4f8b\u5feb\u901f\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5

    "},{"location":"user_manual/api_test/api_definition/#52","title":"5.2 \u6279\u91cf\u64cd\u4f5c","text":"

    \u9009\u62e9\u591a\u6761\u63a5\u53e3\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u2026\u3011\uff0c\u53ef\u5bf9\u591a\u4e2a\u63a5\u53e3\u7528\u4f8b\u8fdb\u884c\u6279\u91cf\u5220\u9664\u3001\u6279\u91cf\u7f16\u8f91\u3001\u6279\u91cf\u6267\u884c\u3001\u6279\u91cf\u540c\u6b65\u64cd\u4f5c\u3002

    • \u6279\u91cf\u5220\u9664\uff1a\u6279\u91cf\u5220\u9664\u63a5\u53e3\u7528\u4f8b\u5230\u56de\u6536\u7ad9
    • \u6279\u91cf\u7f16\u8f91\uff1a\u6279\u91cf\u7f16\u8f91\u63a5\u53e3\u7528\u4f8b\u7b49\u7ea7\u3001\u6807\u7b7e\u5c5e\u6027
    • \u6279\u91cf\u6267\u884c\uff1a\u6279\u91cf\u8c03\u8bd5\u63a5\u53e3\u7528\u4f8b\uff0c\u8fd0\u884c\u6a21\u5f0f\u53ef\u9009\u62e9\u4e32\u884c\u6216\u5e76\u884c\uff0c\u751f\u6210\u62a5\u544a\u53ef\u9009\u751f\u6210\u72ec\u7acb\u62a5\u544a\u3001\u96c6\u5408\u62a5\u544a\u3002
    • \u6279\u91cf\u540c\u6b65\uff1a\u6279\u91cf\u540c\u6b65\u63a5\u53e3\u7528\u4f8b\uff0c\u53ef\u5bf9\u540c\u6b65\u7528\u4f8b\u8fdb\u884c\u57fa\u672c\u4fe1\u606f\u3001\u8bf7\u6c42\u53c2\u6570\u3001\u5176\u4ed6\u8bbe\u7f6e\u76f8\u5173\u5185\u5bb9\u8fdb\u884c\u914d\u7f6e\u3002

    "},{"location":"user_manual/api_test/api_definition/#53","title":"5.3 \u65b0\u5efa\u63a5\u53e3\u7528\u4f8b","text":"

    \u70b9\u51fb \u3010+\u6dfb\u52a0\u3011\u6309\u94ae\uff0c\u53ef\u4f7f\u7528\u5f53\u524d\u63a5\u53e3\u5b9a\u4e49\u7684\u53c2\u6570\u4fe1\u606f\u521b\u5efa\u65b0\u7684\u63a5\u53e3\u7528\u4f8b\u3002

    "},{"location":"user_manual/api_test/api_definition/#54","title":"5.4 \u641c\u7d22","text":"

    \u666e\u901a\u641c\u7d22\u652f\u6301\u901a\u8fc7\u63a5\u53e3\u7528\u4f8b\u7684 ID \u3001\u540d\u79f0\u3001\u6807\u7b7e\u8fdb\u884c\u6a21\u7cca\u641c\u7d22\u3002\u9ad8\u7ea7\u641c\u7d22\u652f\u6301\u6309 ID \u3001\u540d\u79f0\u3001\u7528\u4f8b\u7b49\u7ea7\u3001\u6807\u7b7e\u3001\u6267\u884c\u7ed3\u679c\u3001\u66f4\u65b0\u65f6\u95f4\u3001\u521b\u5efa\u65f6\u95f4\u3001\u521b\u5efa\u4eba\u3001\u5173\u6ce8\u4eba\u3001\u8def\u5f84\u641c\u7d22\u3002

    "},{"location":"user_manual/api_test/api_definition/#6-mock","title":"6 MOCK","text":"

    \u5728 MOCK \u9875\u9762\u4e2d\u5c55\u793a\u5f53\u524d\u63a5\u53e3\u5b9a\u4e49\u4e0b\u7684 MOCK \u670d\u52a1\u3002\u5728\u63a5\u53e3\u7f16\u8f91\u9875\u9762\u53ef\u5c55\u793a\u6b64\u63a5\u53e3\u7684 Mock \u4fe1\u606f\uff0cMock \u9ed8\u8ba4\u5730\u5740\u662f MeterSphere \u7cfb\u7edf\u5730\u5740+\u6a21\u5757 ID + \u63a5\u53e3\u5730\u5740\uff0c\u4e00\u4e2a\u63a5\u53e3\u5b9a\u4e49\u53ef\u4ee5\u8bbe\u7f6e\u591a\u4e2a Mock \u670d\u52a1\u3002

    "},{"location":"user_manual/api_test/api_definition/#61-http-mock","title":"6.1 HTTP Mock\u670d\u52a1\u8bbe\u7f6e","text":"

    MeterSphere \u63d0\u4f9b\u7684 Mock \u529f\u80fd\u53ef\u4ee5\u6839\u636e\u7528\u6237\u8f93\u5165\u7684\u8bf7\u6c42\u53c2\u6570\u3001\u8fd4\u56de\u6570\u636e\u751f\u6210Mock\u63a5\u53e3\uff0c\u8fd9\u4e9b\u63a5\u53e3\u4f1a\u81ea\u52a8\u751f\u6210\u6a21\u62df\u6570\u636e\uff0c\u4ee5\u8986\u76d6\u7528\u6237\u7684\u6a21\u62df\u6d4b\u8bd5\u9700\u6c42\u3002Mock \u671f\u671b\u662f\u6839\u636e\u8bbe\u7f6e\u7684\u8bf7\u6c42\u89e6\u53d1\u6761\u4ef6\u6765\u8fdb\u884c\u8fc7\u6ee4\uff0c\u7136\u540e\u8fd4\u56de\u671f\u671b\u7684\u6570\u636e\u3002\u5728\u3010MOCK\u3011\u9875\u9762\u70b9\u51fb\u3010+\u6dfb\u52a0\u3011\u6309\u94ae\u6dfb\u52a0 Mock \u670d\u52a1\u3002

    \u8bbe\u7f6e Mock \u670d\u52a1\u89e6\u53d1\u6761\u4ef6\u3002\u53ef\u4ee5\u5728\u8bf7\u6c42\u5934\u3001QUERY\u53c2\u6570\u3001REST\u53c2\u6570\u3001\u8bf7\u6c42\u4f53\u8bbe\u7f6e\u89e6\u53d1\u6761\u4ef6\uff1b\u5728\u54cd\u5e94\u5185\u5bb9\u4e2d\u8bbe\u7f6e\u81ea\u5b9a\u4e49\u54cd\u5e94\u5934\u3001\u54cd\u5e94\u4f53\u3001\u72b6\u6001\u7801\u3001\u54cd\u5e94\u5ef6\u8fdf\u65f6\u95f4\u76f8\u5173\u4fe1\u606f

    Mock \u670d\u52a1\u89e6\u53d1\u6761\u4ef6\u8bbe\u7f6e\u89c4\u5219\u5339\u914d\u53ca\u903b\u8f91\u5224\u65ad: \u8bf7\u6c42\u53c2\u6570\u8bbe\u7f6e\u89c4\u5219\u5339\u914d\uff0c\u53ef\u4ee5\u6839\u636e\u53c2\u6570\u8bbe\u5b9a\u7684\u503c\u3001\u957f\u5ea6\u3001\u6b63\u5219\u8868\u8fbe\u5f0f Mock \u51fa\u76f8\u5e94\u7684\u8bf7\u6c42\u53c2\u6570\uff0c\u540c\u65f6\u53c2\u6570\u4e0e\u53c2\u6570\u4e4b\u95f4\u65b0\u589e\u4e86\u903b\u8f91\u5224\u65ad\uff08AND/OR\uff09\uff0c\u4ee5\u63d0\u5347\u89e6\u53d1\u6761\u4ef6\u7684\u7075\u6d3b\u6027\u3002

    \u9488\u5bf9\u4e00\u4e9b\u7279\u5b9a\u6d4b\u8bd5\u573a\u666f\u9700\u8981\u5bf9\u8fd4\u56de\u4fe1\u606f\u8fdb\u4e00\u6b65\u5904\u7406\u7684\u60c5\u51b5\uff0c\u6bd4\u5982\u52a0\u89e3\u5bc6\u64cd\u4f5c\u3001\u8c03\u7528\u7b2c\u4e09\u65b9 JAR \u5305\u7b49\u64cd\u4f5c\u3002MeterSphere \u5728 Mock \u670d\u52a1\u4e2d\u6dfb\u52a0 \u540e\u7f6e\u811a\u672c\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u7f16\u5199\u811a\u672c\u6216\u6dfb\u52a0\u7cfb\u7edf\u5df2\u6709\u7684 \u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u6765\u5b9e\u73b0\u5bf9\u8fd4\u56de\u4fe1\u606f\u7684\u5904\u7406\u3002

    \u5728\u3010MOCK\u3011\u6570\u636e\u5217\u8868\uff0c\u9009\u62e9\u4e00\u6761\u6570\u636e\u70b9\u51fb\u6267\u884c\uff0c\u9009\u62e9 MOCK \u73af\u5883\uff0c\u5f53\u8bf7\u6c42\u53c2\u6570\u4e0e\u8bbe\u7f6e\u7684\u89e6\u53d1\u6761\u4ef6\u5339\u914d\u65f6\u5019\uff0c\u5219\u8fd4\u56de\u8bbe\u7f6e\u7684\u54cd\u5e94\u5185\u5bb9\u3002

    "},{"location":"user_manual/api_test/api_definition/#62-tcp-mock","title":"6.2 TCP Mock\u8bbe\u7f6e","text":"

    TCP Mock \u670d\u52a1\u9700\u5728\u3010\u9879\u76ee\u8bbe\u7f6e-\u5e94\u7528\u7ba1\u7406-\u63a5\u53e3\u6d4b\u8bd5\u3011\u4e2d\u5f00\u542f TCP Mock \u670d\u52a1\u3002\u5176\u529f\u80fd\u8bbe\u7f6e\u540c HTTP MOCK\u3002

    "},{"location":"user_manual/api_test/api_definition/#63-mock","title":"6.3 MOCK \u5217\u8868\u529f\u80fd","text":"

    \u652f\u6301\u5bf9 Mock \u6570\u636e\u8fdb\u884c\u6267\u884c\u3001\u7f16\u8f91\u3001\u590d\u5236 \u3001\u5220\u9664\u64cd\u4f5c\u3002

    "},{"location":"user_manual/api_test/api_definition/#7","title":"7 \u5b9a\u65f6\u540c\u6b65","text":"

    \u63a5\u53e3\u5b9a\u4e49\u5217\u8868\uff0c\u70b9\u51fb\u3010\u66f4\u591a\u64cd\u4f5c-\u5b9a\u65f6\u540c\u6b65\u3011\u53ef\u8bbe\u7f6e Swagger \u5728\u7ebf\u63a5\u53e3\u6587\u6863\u5b9a\u65f6\u540c\u6b65\u3002

    \u5b9a\u65f6\u540c\u6b65\u9875\u9762\u9700\u8bbe\u7f6e\u540c\u6b65\u7684\u8def\u5f84\uff08\u4ee5/api-docs\u7ed3\u5c3e\uff09\u3001\u5b9a\u65f6Cron\u8868\u8fbe\u5f0f\uff08\u652f\u6301\u81ea\u52a8\u751f\u6210\u53ef\u4ee5\u9884\u89c8\u8fd15\u6b21\u8fd0\u884c\u65f6\u95f4\uff09\u3001\u5bfc\u5165\u6a21\u5757\u3001\u5bfc\u5165\u6a21\u5f0f\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u3011\u6309\u94ae\u5b8c\u6210\u63a5\u53e3\u5b9a\u65f6\u540c\u6b65\u8bbe\u7f6e\u3002

    \u63a5\u53e3\u5b9a\u65f6\u540c\u6b65\u4efb\u52a1\u652f\u6301\u8bbe\u7f6e\u4efb\u52a1\u901a\u77e5\u65b9\u5f0f\uff0c\u70b9\u51fb\u4efb\u52a1\u901a\u77e5\u6309\u94ae\uff0c\u5f39\u51fa\u4efb\u52a1\u901a\u77e5\u8bbe\u7f6e\u9875\u9762\uff0c\u6d88\u606f\u901a\u77e5\u65b9\u5f0f\uff1a\u90ae\u4ef6\u3001\u9489\u9489\u673a\u5668\u4eba\u3001\u4f01\u4e1a\u5fae\u4fe1\u673a\u5668\u4eba\u3001\u98de\u4e66\u673a\u5668\u4eba\u3001\u81ea\u5b9a\u4e49 Webhook \u3002

    \u5b9a\u65f6\u540c\u6b65\u4efb\u52a1\u652f\u6301\u5b9a\u65f6\u540c\u6b65\u4efb\u52a1\u67e5\u770b\u3001\u5f00\u542f\u3001\u5173\u95ed\u3001\u5220\u9664\u64cd\u4f5c\u3002

    "},{"location":"user_manual/api_test/api_definition/#8","title":"8 \u5bfc\u5165\u63a5\u53e3","text":"

    \u63a5\u53e3\u5b9a\u4e49\u5217\u8868\u3010\u66f4\u591a\u64cd\u4f5c-\u5bfc\u5165\u3011\uff0c\u652f\u6301\u591a\u79cd\u7c7b\u578b\u63a5\u53e3\u6587\u6863\u7684\u5bfc\u5165\uff0c\u5305\u62ec\uff1aMeterSphere\u3001Postman\u3001Swagger\u3001HAR\u3001JMX\u7c7b\u578b\u6570\u636e\u3002

    \u652f\u6301 Swagger Json \u6587\u4ef6\u7684\u79bb\u7ebf\u5bfc\u5165\uff0c\u540c\u65f6\u4e5f\u652f\u6301\u4f7f\u7528 Swagger URL \u8fdb\u884c\u5728\u7ebf\u540c\u6b65\uff0c\u5bfc\u5165\u89c4\u5219\u8bf7\u770b\u5bfc\u5165\u9875\u9762\u4e0b\u65b9\u7684\u63d0\u793a\u3002\u6ce8\u610f: \u82e5\u5bfc\u5165\u7684\u63a5\u53e3\u4e3a\u65b0\u5efa\u63a5\u53e3\u4e14\u6ca1\u6709\u7528\u4f8b\uff0c\u5219\u9ed8\u8ba4\u4e3a\u63a5\u53e3\u521b\u5efa\u4e00\u4e2a\u7528\u4f8b\u3002

    "},{"location":"user_manual/api_test/api_definition/#9","title":"9 \u5bfc\u51fa\u63a5\u53e3\u5b9a\u4e49","text":"

    \u63a5\u53e3\u5b9a\u4e49\u5217\u8868\u3010\u66f4\u591a\u64cd\u4f5c-\u5bfc\u51fa\u3011\u652f\u6301\u5bfc\u51fa MeterSphere \u548c Swagger3.0 \u683c\u5f0f\u7684\u63a5\u53e3\u6587\u4ef6\u5bfc\u51fa\u3002\u9009\u62e9\u8981\u5bfc\u51fa\u7684\u63a5\u53e3\uff0c\u70b9\u51fb \u3010\u66f4\u591a\u64cd\u4f5c-\u5bfc\u51fa\u3011\u9009\u62e9\u8981\u5bfc\u51fa\u7684\u6587\u4ef6\u683c\u5f0f\uff0c\u7cfb\u7edf\u81ea\u52a8\u5b8c\u6210\u63a5\u53e3\u5bfc\u51fa\u3002

    "},{"location":"user_manual/api_test/api_definition/#10","title":"10 \u6279\u91cf\u64cd\u4f5c","text":"

    \u9009\u62e9\u591a\u6761 API \u6570\u636e\u70b9\u51fb\u3010\u2026\u3011\uff0c\u53ef\u5bf9\u591a\u4e2a\u63a5\u53e3\u8fdb\u884c\u6279\u91cf\u64cd\u4f5c\u3002\u6279\u91cf\u5220\u9664\u3001\u6279\u91cf\u7f16\u8f91\u3001\u6279\u91cf\u79fb\u52a8\u3001\u6279\u91cf\u590d\u5236\u3001\u590d\u5236\u7248\u672c\u6570\u636e\u3001\u751f\u6210\u4f9d\u8d56\u5173\u7cfb

    • \u6279\u91cf\u5220\u9664\uff1a\u6279\u91cf\u5220\u9664\u63a5\u53e3\u5230\u56de\u6536\u7ad9
    • \u6279\u91cf\u7f16\u8f91\uff1a\u6279\u91cf\u7f16\u8f91\u63a5\u53e3\u5c5e\u6027
    • \u6279\u91cf\u79fb\u52a8\uff1a\u6279\u91cf\u5c06\u63a5\u53e3\u79fb\u52a8\u5230\u5176\u4ed6\u6a21\u5757
    • \u6279\u91cf\u590d\u5236\uff1a\u6279\u91cf\u5c06\u63a5\u53e3\u590d\u5236\u5230\u5176\u4ed6\u6a21\u5757
    • \u590d\u5236\u7248\u672c\u6570\u636e(X-Pack)\uff1a\u968f\u7740\u7248\u672c\u7684\u8fed\u4ee3\uff0c\u540c\u4e00\u63a5\u53e3\uff0c\u5f53\u65b0\u7248\u63a5\u53e3\u53c2\u6570\u53d8\u66f4\u9700\u8981\u521b\u5efa\u5bf9\u5e94\u65b0\u7248\u672c\u7684\u63a5\u53e3 CASE \u548c Mock \u6570\u636e\u3002\u4f7f\u7528\u6b64\u529f\u80fd\u53ef\u6279\u91cf\u5c06\u5386\u53f2\u7248\u672c\u7684 CASE \u548c Mock \u6570\u636e\u5feb\u901f\u590d\u5236\u5230\u65b0\u7248\u672c\uff0c\u65b9\u4fbf\u5feb\u901f\u7ef4\u62a4\u63a5\u53e3\u7684\u7528\u4f8b\u6570\u636e\u3002
    • \u751f\u6210\u4f9d\u8d56\u5173\u7cfb\uff1a\u6279\u91cf\u63a5\u53e3\u4e4b\u95f4\u7684\u8054\u7cfb\u751f\u6210\u4f9d\u8d56\u5173\u7cfb\u62d3\u6251\u56fe

    "},{"location":"user_manual/api_test/api_definition/#11","title":"11 \u641c\u7d22","text":"

    \u63a5\u53e3\u5b9a\u4e49\u5217\u8868\u652f\u6301\u666e\u901a\u641c\u7d22\u63a5\u53e3\u5b9a\u4e49\u7684 ID\u3001\u540d\u79f0\u3001\u6807\u7b7e\u3001\u8def\u5f84 \u8fdb\u884c\u6a21\u7cca\u641c\u7d22\u3002\u9ad8\u7ea7\u641c\u7d22\u652f\u6301 ID \u3001\u540d\u79f0\u3001\u8bf7\u6c42\u7c7b\u578b\u3001\u8def\u5f84\u3001\u72b6\u6001\u3001\u6807\u7b7e\u3001\u66f4\u65b0\u4e8b\u4ef6\u3001\u521b\u5efa\u4e8b\u4ef6\u3001\u8d23\u4efb\u4eba\u3001\u6240\u5c5e\u6a21\u5757\u3001\u5173\u6ce8\u4eba\u8fdb\u884c\u641c\u7d22\u3002

    "},{"location":"user_manual/api_test/api_definition/#12","title":"12 \u56de\u6536\u7ad9","text":"

    \u56de\u6536\u7ad9\u5c55\u793a\u5df2\u5220\u9664\u7684\u63a5\u53e3 API\u3001CASE \u5217\u8868\u3002\u652f\u6301\u628a\u56de\u6536\u7ad9\u7684\u6570\u636e\u6062\u590d\u5230\u63a5\u53e3\u5217\u8868\u548c\u5f7b\u5e95\u5220\u9664\u64cd\u4f5c\u3002

    \u56de\u6536\u7ad9\u5217\u8868\u6279\u91cf\u9009\u62e9\u6570\u636e\uff0c\u70b9\u51fb\u3010...\u3011\u6309\u94ae\u5f39\u51fa\u64cd\u4f5c\u83dc\u5355\uff0c\u652f\u6301\u6279\u91cf\u5220\u9664\u3001\u6279\u91cf\u6062\u590d\u64cd\u4f5c\u3002

    "},{"location":"user_manual/api_test/api_definition/#13","title":"13 \u6587\u6863\u7ba1\u7406","text":"

    API \u63a5\u53e3\u652f\u6301\u4ee5\u6587\u6863\u5f62\u5f0f\u5c55\u793a\u63a5\u53e3\u5b9a\u4e49\u8be6\u7ec6\u4fe1\u606f\uff0c\u9875\u9762\u53f3\u4fa7\u5c55\u793a\u63a5\u53e3\u5217\u8868\uff0c\u70b9\u51fb\u63a5\u53e3\u540d\u79f0\u53ef\u5feb\u901f\u5b9a\u4f4d\u5230\u8be5\u63a5\u53e3\u8be6\u60c5\u6240\u5728\u4f4d\u7f6e\u3002 \u70b9\u51fb\u3010\u5206\u4eab\u3011\u56fe\u6807\uff0c\u7cfb\u7edf\u4f1a\u751f\u6210\u63a5\u53e3\u7684 URL \u5730\u5740\u3002 \u70b9\u51fb\u3010\u590d\u5236\u3011\u6309\u94ae\u5373\u53ef\u5c06\u63a5\u53e3\u7684 URL \u5730\u5740\u5206\u4eab\u7ed9\u4ed6\u4eba\u3002

    "},{"location":"user_manual/api_test/api_definition/#14-x-pack","title":"14 \u7248\u672c\u7ba1\u7406 (X-Pack)","text":"

    \u63a5\u53e3\u5b9a\u4e49\u5217\u8868\u53ef\u5207\u6362\u67e5\u770b\u5f53\u524d\u5b9a\u4e49\u63a5\u53e3\u7684\u7248\u672c\u4fe1\u606f\uff0c\u5217\u8868\u9ed8\u8ba4\u5c55\u793a\u6700\u65b0\u7248\u6570\u636e\uff0c\u53ef\u5207\u6362\u67e5\u770b\u5404\u7248\u672c\u7684\u63a5\u53e3\u5b9a\u4e49\u4fe1\u606f\u3002

    "},{"location":"user_manual/api_test/api_scenario/","title":"\u63a5\u53e3\u573a\u666f\u7f16\u6392","text":""},{"location":"user_manual/api_test/api_scenario/#1","title":"1 \u63a5\u53e3\u5217\u8868\u5bfc\u5165","text":"

    \u901a\u8fc7\u63a5\u53e3\u5217\u8868\u5bfc\u5165\u529f\u80fd\uff0c\u53ef\u4ee5\u76f4\u63a5\u6dfb\u52a0\u63a5\u53e3\u5b9a\u4e49\u4e2d\u5df2\u7ef4\u62a4\u597d\u7684\u63a5\u53e3\u6216\u7528\u4f8b\uff0c\u51cf\u5c11\u91cd\u590d\u5de5\u4f5c\u3002

    "},{"location":"user_manual/api_test/api_scenario/#11","title":"1.1 \u5bfc\u5165\u63a5\u53e3","text":"

    \u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u53f3\u4e0b\u89d2\u83dc\u5355\u3010+\u3011\u9009\u62e9 \u3010\u63a5\u53e3\u5217\u8868\u5bfc\u5165\u3011\uff0c\u4ece\u63a5\u53e3\u5217\u8868\u53ef\u4ee5\u9009\u62e9 API \u91cc\u9762\u7684\u6570\u636e\uff0c\u4f7f\u7528\u65b9\u5f0f\u652f\u6301 \u3010\u590d\u5236\u3011\u6a21\u5f0f\u3002 \u3010\u590d\u5236\u3011\u65b9\u5f0f\u5bfc\u5165\u7684\u7528\u4f8b\uff0c\u5f53\u539f\u7528\u4f8b\u53d1\u751f\u53d8\u5316\u65f6\uff0c\u573a\u666f\u4e2d\u5bfc\u5165\u7684\u7528\u4f8b\u4e0d\u4f1a\u6539\u53d8\u3002

    "},{"location":"user_manual/api_test/api_scenario/#12","title":"1.2 \u5bfc\u5165\u7528\u4f8b","text":"

    \u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u53f3\u4e0b\u89d2\u83dc\u5355\u3010+\u3011\u9009\u62e9\u3010\u63a5\u53e3\u5217\u8868\u5bfc\u5165\u3011\uff0c\u4ece\u63a5\u53e3\u5217\u8868\u53ef\u4ee5\u9009\u62e9 CASE \u91cc\u9762\u7684\u6570\u636e\uff0c\u4f7f\u7528\u65b9\u5f0f\u652f\u6301 \u3010\u590d\u5236\u3011\u3001\u3010\u5f15\u7528\u3011\u4e24\u79cd\u6a21\u5f0f\u3002

    • \u3010\u590d\u5236\u3011\u65b9\u5f0f\u5bfc\u5165\u7684\u7528\u4f8b\uff0c\u5f53\u539f\u7528\u4f8b\u53d1\u751f\u53d8\u5316\u65f6\uff0c\u573a\u666f\u4e2d\u5bfc\u5165\u7684\u7528\u4f8b\u4e0d\u4f1a\u6539\u53d8\uff1b
    • \u3010\u5f15\u7528\u3011\u65b9\u5f0f\u5bfc\u5165\u7684\u7528\u4f8b\uff0c\u5f53\u539f\u7528\u4f8b\u53d1\u751f\u53d8\u5316\u65f6\uff0c\u573a\u666f\u4e2d\u5bfc\u5165\u7684\u7528\u4f8b\u4e5f\u4f1a\u968f\u4e4b\u6539\u53d8\u3002

    "},{"location":"user_manual/api_test/api_scenario/#2","title":"2 \u81ea\u5b9a\u4e49\u8bf7\u6c42","text":"

    \u9664\u4e86\u5bfc\u5165\u5df2\u6709\u5b9a\u4e49\u7684\u63a5\u53e3\u6216\u7528\u4f8b\uff0c\u8fd8\u53ef\u4ee5\u901a\u8fc7\u81ea\u5b9a\u4e49\u8bf7\u6c42\u7684\u65b9\u5f0f\u589e\u52a0\u8bf7\u6c42\uff0c\u76ee\u524d\u652f\u6301 HTTP\u3001TCP\u3001DUBBO\u3001SQL \u7b49\u4e0d\u540c\u7c7b\u578b\u3002

    "},{"location":"user_manual/api_test/api_scenario/#3","title":"3 \u81ea\u5b9a\u4e49\u811a\u672c","text":"

    \u81ea\u5b9a\u4e49\u811a\u672c\u4e0e\u524d\u540e\u7f6e\u811a\u672c\u4f7f\u7528\u65b9\u5f0f\u7c7b\u4f3c\uff0c\u4f46\u662f\u53ef\u4ee5\u72ec\u7acb\u6dfb\u52a0\uff0c\u4e0d\u9700\u8981\u4f9d\u8d56\u4e8e\u67d0\u4e2a\u5df2\u6709\u8bf7\u6c42\u4f5c\u4e3a\u5176\u5b50\u6b65\u9aa4\u3002\u76ee\u524d\u652f\u6301\u7684\u811a\u672c\u8bed\u8a00\u53ca\u5185\u7f6e\u53d8\u91cf\u8bf7\u53c2\u8003 \u524d\u7f6e\u811a\u672c\u3002

    "},{"location":"user_manual/api_test/api_scenario/#4","title":"4 \u573a\u666f\u5bfc\u5165","text":"

    \u7528\u6237\u53ef\u4ee5\u7ef4\u62a4\u4e00\u4e9b\u57fa\u7840\u3001\u901a\u7528\u573a\u666f\uff0c\u901a\u8fc7\u573a\u666f\u5bfc\u5165\u529f\u80fd\uff0c\u53ef\u4ee5\u76f4\u63a5\u5c06\u5df2\u6709\u7684\u573a\u666f\u6dfb\u52a0\u5230\u5f53\u524d\u573a\u666f\u4e2d\uff0c\u51cf\u5c11\u91cd\u590d\u5de5\u4f5c\uff0c\u63d0\u9ad8\u573a\u666f\u7684\u590d\u7528\u6027\u3002

    • \u3010\u590d\u5236\u3011\u65b9\u5f0f\u5bfc\u5165\u7684\u573a\u666f\uff0c\u5f53\u539f\u573a\u666f\u53d1\u751f\u53d8\u5316\u65f6\uff0c\u573a\u666f\u4e2d\u5bfc\u5165\u7684\u573a\u666f\u4e0d\u4f1a\u6539\u53d8\u3002
    • \u3010\u5f15\u7528\u3011\u65b9\u5f0f\u5bfc\u5165\u7684\u573a\u666f\uff0c\u5f53\u539f\u573a\u666f\u53d1\u751f\u53d8\u5316\u65f6\uff0c\u573a\u666f\u4e2d\u5bfc\u5165\u7684\u573a\u666f\u4e5f\u4f1a\u968f\u4e4b\u6539\u53d8\u3002

    "},{"location":"user_manual/api_test/api_scenario/#5","title":"5 \u6761\u4ef6\u63a7\u5236\u5668","text":"

    \u5f53\u6761\u4ef6\u63a7\u5236\u5668\u4e2d\u914d\u7f6e\u7684\u6761\u4ef6\u6ee1\u8db3\u65f6\uff0c\u6761\u4ef6\u63a7\u5236\u5668\u4e0b\u7684\u5b50\u6b65\u9aa4\u624d\u4f1a\u6267\u884c\uff0c\u5426\u5219\u5b50\u6b65\u9aa4\u4f1a\u88ab\u8df3\u8fc7\u3002

    "},{"location":"user_manual/api_test/api_scenario/#6","title":"6 \u5faa\u73af\u63a7\u5236\u5668","text":"

    \u901a\u8fc7\u4f7f\u7528\u5faa\u73af\u63a7\u5236\u5668\uff0c\u53ef\u4ee5\u91cd\u590d\u6267\u884c\u5faa\u73af\u63a7\u5236\u5668\u4e0b\u7684\u5b50\u6b65\u9aa4\u3002

    "},{"location":"user_manual/api_test/api_scenario/#61","title":"6.1 \u6b21\u6570\u5faa\u73af","text":"

    \u6b21\u6570\u5faa\u73af\u652f\u6301\u81ea\u5b9a\u4e49\u8bbe\u7f6e\u6b21\u6570\u3001\u95f4\u9694\u7b49\u65b9\u5f0f\u8fdb\u884c\u5faa\u73af\u63a7\u5236\u3002

    • \u3010\u5faa\u73af\u6b21\u6570\u3011\uff1a\u8be5\u5faa\u73af\u63a7\u5236\u5668\u4e0b\u7684\u5b50\u6b65\u9aa4\u603b\u5171\u6267\u884c\u7684\u6b21\u6570\u3002
    • \u3010\u5faa\u73af\u95f4\u9694\u3011\uff1a\u6bcf\u6b21\u6267\u884c\u95f4\u7684\u65f6\u95f4\u95f4\u9694\uff0c\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d\u3002
    • \u3010\u6210\u529f\u540e\u662f\u5426\u7ee7\u7eed\u5faa\u73af\u3011\uff1a\u4ec5\u5faa\u73af\u63a7\u5236\u5668\u4e0b\u5b58\u5728\u4e00\u4e2a\u8bf7\u6c42\u65f6\u53ef\u4ee5\u5173\u95ed\u3002\u5f53\u5173\u95ed\u65f6\uff0c\u82e5\u5faa\u73af\u63a7\u5236\u5668\u4e0b\u7684\u8bf7\u6c42\u662f\u6210\u529f\u72b6\u6001\uff0c\u5219\u7acb\u5373\u7ec8\u6b62\u5faa\u73af\uff0c\u65e0\u8bba\u6709\u6ca1\u6709\u8fbe\u5230\u5faa\u73af\u6b21\u6570\u3002\u53ef\u4ee5\u7528\u5728\u5f02\u6b65\u8bf7\u6c42\u540e\u8f6e\u8be2\u67e5\u8be2\u6267\u884c\u7ed3\u679c\u7684\u573a\u666f\uff0c\u5f53\u67e5\u8be2\u7ed3\u679c\u7b26\u5408\u9884\u671f\u65f6\u7ec8\u6b62\u5faa\u73af\uff0c\u907f\u514d\u591a\u4f59\u7684\u67e5\u8be2\u64cd\u4f5c\u3002

    \u793a\u4f8b

    \u5f00\u542f\u3010\u6210\u529f\u540e\u7ee7\u7eed\u5faa\u73af\u3011\uff0c\u5faa\u73af\u603b\u5171\u6267\u884c\u4e86 5 \u6b21\u3002

    \u5173\u95ed\u3010\u6210\u529f\u540e\u7ee7\u7eed\u5faa\u73af\u3011\uff0c\u7531\u4e8e\u5faa\u73af\u4e0b\u7684\u8bf7\u6c42\u7b2c\u4e00\u6b21\u4fbf\u6267\u884c\u6210\u529f\uff0c\u5faa\u73af\u4ec5\u6267\u884c\u4e86 1 \u6b21\u3002

    "},{"location":"user_manual/api_test/api_scenario/#62-foreach","title":"6.2 ForEach \u5faa\u73af","text":"

    ForEach \u5faa\u73af\u4e00\u822c\u914d\u5408\u5217\u8868\u53d8\u91cf\u4f7f\u7528\uff0c\u4f8b\u5982\u5b58\u5728 ID_1\uff0cID_2\uff0cID_3 \u5f62\u5f0f\u7684\u4e00\u7ec4\u53d8\u91cf\u65f6\uff0c\u53ef\u4ee5\u901a\u8fc7 ForEach \u5faa\u73af\u4f7f\u7528\u5176\u4e2d\u6bcf\u4e2a ID \u53d1\u9001\u7279\u5b9a\u8bf7\u6c42\u3002

    • \u3010\u8f93\u51fa\u53d8\u91cf\u540d\u79f0\u3011\uff1a\u5728\u5faa\u73af\u4e2d\u53ef\u4ee5\u901a\u8fc7\u8be5\u53d8\u91cf\u5f15\u7528\u5230\u5217\u8868\u53d8\u91cf\u4e2d\u5f53\u524d\u8fed\u4ee3\u7684\u53d8\u91cf\u503c\u3002
    • \u3010\u8f93\u5165\u53d8\u91cf\u524d\u7f00\u3011\uff1a\u5217\u8868\u53d8\u91cf\u7684\u53d8\u91cf\u524d\u7f00\u3002
    • \u3010\u5faa\u73af\u95f4\u9694\u3011\uff1a\u6bcf\u6b21\u6267\u884c\u95f4\u7684\u65f6\u95f4\u95f4\u9694\uff0c\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d\u3002

    \u793a\u4f8b

    \u5728\u573a\u666f\u53d8\u91cf\u4e2d\u8bbe\u7f6e\u5217\u8868\u53d8\u91cf id\uff0c\u5217\u8868\u503c\u4e3a1\uff0c2\uff0c3\u3002

    \u904d\u5386\u573a\u666f\u53d8\u91cf\u4e2d\u7684\u5217\u8868\u53d8\u91cf\uff0c\u5728\u3010\u524d\u7f6e\u811a\u672c\u3011\u4e2d\u6253\u5370\u5217\u8868\u53d8\u91cf\u4e2d\u7684\u6bcf\u4e2a\u503c\u3002

    \u5faa\u73af\u6b21\u6570\u4e0e\u5217\u8868\u957f\u5ea6\u76f8\u540c\uff0c\u4e14\u8f93\u51fa\u5217\u8868\u53d8\u91cf\u4e2d\u7684\u6bcf\u4e2a\u503c\u3002

    "},{"location":"user_manual/api_test/api_scenario/#63-while","title":"6.3 While \u5faa\u73af","text":"

    While \u5faa\u73af\u66f4\u4e3a\u7075\u6d3b\uff0c\u5f53\u914d\u7f6e\u7684\u6761\u4ef6\u6ee1\u8db3\u65f6\u5faa\u73af\u4f1a\u4e00\u76f4\u8fdb\u884c\u3002

    • \u3010\u53d8\u91cf\u3011\uff1a\u8981\u8fdb\u884c\u5224\u65ad\u7684\u53d8\u91cf\u3002
    • \u3010\u5224\u65ad\u6761\u4ef6\u3011\uff1a\u53d8\u91cf\u4e0e\u671f\u671b\u503c\u7684\u6bd4\u8f83\u65b9\u5f0f\u3002
    • \u3010\u503c\u3011\uff1a\u8981\u5bf9\u53d8\u91cf\u8fdb\u884c\u5224\u65ad\u7684\u503c\u3002
    • \u3010\u5faa\u73af\u8d85\u65f6\u65f6\u95f4\u3011\uff1a\u7531\u4e8e while \u5faa\u73af\u7684\u7279\u6b8a\u6027\uff0c\u5f53\u6761\u4ef6\u6ee1\u8db3\u65f6\u5c06\u4f1a\u4e00\u76f4\u5faa\u73af\uff0c\u4e3a\u4e86\u907f\u514d\u6b7b\u5faa\u73af\u7684\u60c5\u51b5\u51fa\u73b0\uff0c\u7528\u6237\u53ef\u4ee5\u914d\u7f6e\u5faa\u73af\u8d85\u65f6\u65f6\u95f4\uff0c\u5230\u8d85\u8fc7\u8be5\u65f6\u95f4\u540e\uff0c\u4e0d\u7ba1\u5faa\u73af\u6761\u4ef6\u662f\u5426\u6ee1\u8db3\uff0c\u5faa\u73af\u90fd\u5c06\u88ab\u7ec8\u6b62\u3002

    \u793a\u4f8b

    \u5728\u573a\u666f\u53d8\u91cf\u4e2d\u8bbe\u7f6e\u5e38\u91cf\u53d8\u91cf NUM\uff0c\u503c\u4e3a5\u3002

    \u8bbe\u7f6e While\u5faa\u73af\u7684\u6761\u4ef6\uff0c\u5728\u524d\u7f6e\u811a\u672c\u83b7\u53d6\u53d8\u91cf\u503c\u5e76\u66f4\u6539\u53d8\u91cf\u503c

    \u6bcf\u6b21\u5faa\u73af\u4fee\u6539\u7684\u503c\u5728\u63a7\u5236\u53f0\u8fdb\u884c\u6253\u5370

    "},{"location":"user_manual/api_test/api_scenario/#7","title":"7 \u7b49\u5f85\u63a7\u5236\u5668","text":"

    \u5f53\u67d0\u4e2a\u6b65\u9aa4\u6267\u884c\u540e\u9700\u8981\u7b49\u5f85\u4e00\u6bb5\u65f6\u95f4\u65f6\uff0c\u53ef\u4f7f\u7528\u7b49\u5f85\u63a7\u5236\u5668\u8fdb\u884c\u63a7\u5236\u3002\u5f53\u4f5c\u4e3a\u6b65\u9aa4\u6dfb\u52a0\u65f6\uff0c\u4e0e\u4e4b\u540c\u7ea7\u7684\u6240\u6709\u6b65\u9aa4\u5747\u4f1a\u7b49\u5f85\u82e5\u5e72\u65f6\u95f4\uff1b\u4f5c\u4e3a\u67d0\u4e2a\u6b65\u9aa4\u7684\u5b50\u6b65\u9aa4\u6dfb\u52a0\u65f6\uff0c\u8be5\u6b65\u9aa4\u5c06\u7b49\u5f85\u82e5\u5e72\u65f6\u95f4\u540e\u518d\u6267\u884c\u3002

    "},{"location":"user_manual/api_test/api_scenario/#8","title":"8 \u4e8b\u52a1\u63a7\u5236\u5668","text":"

    \u4e8b\u52a1\u63a7\u5236\u5668\u5c06\u4e00\u7ec4\u8bf7\u6c42\u5f53\u6210\u4e00\u4e2a\u4e8b\u52a1\u8fdb\u884c\u5904\u7406\uff0c\u6bd4\u5982\u7528\u6237\u4e00\u4e2a\u52a8\u4f5c\u5305\u542b\u5f88\u591a\u4e2a\u8bf7\u6c42\uff0c\u8fd9\u90e8\u5206\u8bf7\u6c42\u5c31\u90fd\u53ef\u4ee5\u653e\u5728\u4e00\u4e2a\u4e8b\u52a1\u63a7\u5236\u5668\u4e0b\uff0c\u5f53\u6210\u4e00\u4e2a\u4e8b\u52a1\uff0c\u5e38\u7528\u4e8e\u6027\u80fd\u6d4b\u8bd5\u3002

    "},{"location":"user_manual/api_test/api_scenario/#9","title":"9 \u524d\u7f6e\u811a\u672c","text":"

    \u4e0e\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u4e2d\u7684\u524d\u7f6e\u811a\u672c\u7c7b\u4f3c\uff0c\u8bf7\u53c2\u8003 \u524d\u7f6e\u811a\u672c\u3002

    "},{"location":"user_manual/api_test/api_scenario/#10","title":"10 \u540e\u7f6e\u811a\u672c","text":"

    \u4e0e\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u4e2d\u7684\u540e\u7f6e\u811a\u672c\u7c7b\u4f3c\uff0c\u8bf7\u53c2\u8003 \u540e\u7f6e\u811a\u672c\u3002

    "},{"location":"user_manual/api_test/api_scenario/#11-sql","title":"11 \u524d\u7f6eSQL","text":"

    \u4e0e\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u4e2d\u7684\u524d\u7f6eSQL\u7c7b\u4f3c\uff0c\u8bf7\u53c2\u8003 \u524d\u7f6eSQL\u3002

    "},{"location":"user_manual/api_test/api_scenario/#12-sql","title":"12 \u540e\u7f6eSQL","text":"

    \u4e0e\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u4e2d\u7684\u540e\u7f6eSQL\u7c7b\u4f3c\uff0c\u8bf7\u53c2\u8003 \u540e\u7f6eSQL\u3002

    "},{"location":"user_manual/api_test/api_scenario/#13","title":"13 \u65ad\u8a00\u89c4\u5219","text":"

    \u4e0e\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u4e2d\u7684\u65ad\u8a00\u89c4\u5219\u7c7b\u4f3c\uff0c\u8bf7\u53c2\u8003 \u65ad\u8a00\u89c4\u5219\u3002

    "},{"location":"user_manual/api_test/api_scenario/#14","title":"14 \u63d0\u53d6\u53c2\u6570","text":"

    \u4e0e\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u4e2d\u7684\u63d0\u53d6\u53c2\u6570\u7c7b\u4f3c\uff0c\u8bf7\u53c2\u8003 \u63d0\u53d6\u53c2\u6570\u3002

    "},{"location":"user_manual/api_test/api_step/","title":"\u63a5\u53e3\u7528\u4f8b\u64cd\u4f5c\u6b65\u9aa4","text":""},{"location":"user_manual/api_test/api_step/#1","title":"1 \u524d\u7f6e\u811a\u672c","text":"

    \u524d\u7f6e\u811a\u672c\u53ef\u4ee5\u6dfb\u52a0\u4e3a\u8bf7\u6c42\u7684\u5b50\u6b65\u9aa4\uff0c\u5728\u8bf7\u6c42\u53d1\u9001\u524d\u6267\u884c\uff0c\u53ef\u4ee5\u7528\u5728\u4fee\u6539\u8bf7\u6c42\u5185\u5bb9\u3001\u521d\u59cb\u5316\u8bf7\u6c42\u9700\u8981\u7684\u53c2\u6570\u503c\u7b49\u573a\u666f\u3002 \u76ee\u524d MeterSphere \u652f\u6301\u4ee5\u4e0b\u51e0\u79cd\u8bed\u8a00\u7684\u524d\u7f6e\u811a\u672c\uff1a

    • BeanShell
    • Python2
    • Groovy
    • NashornScript
    • RhinoScript

    \u5728\u524d\u7f6e\u811a\u672c\u4e2d\u53ef\u4ee5\u76f4\u63a5\u5f15\u7528JMeter \u9884\u5b9a\u4e49\u5bf9\u8c61\uff0c\u4f8b\u5982\uff1a - log\uff1a\u7528\u4e8e\u5728\u811a\u672c\u6267\u884c\u8fc7\u7a0b\u4e2d\u6253\u5370\u65e5\u5fd7

    //\u6253\u5370 `Hello World!` \u5230 info \u65e5\u5fd7\u4e2d\nlog.info(\"Hello World!\");\n
    - Label\uff1a\u524d\u7f6e\u811a\u672c\u6240\u5c5e\u8bf7\u6c42\u7684\u8bf7\u6c42\u540d\u79f0 - SampleResult\uff1a\u5f53\u524d\u8bf7\u6c42\u8bf7\u6c42\u7ed3\u679c SamplerResult \u7684\u6307\u9488
    //\u8bbe\u7f6e\u8bf7\u6c42\u7ed3\u679c\u6210\u529f\u6216\u5931\u8d25\nSampleResult.setSuccessful(true/false);\n//\u8bbe\u7f6e\u8bf7\u6c42\u8fd4\u56de\u7801\nSampleResult.setResponseCode(\"code\");\n//\u8bbe\u7f6e\u8bf7\u6c42\u8fd4\u56de\u6d88\u606f\nSampleResult.setResponseMessage(\"message\");\n
    - sampler\uff1a\u5f53\u524d\u8bf7\u6c42 sampler \u7684\u6307\u9488
    //\u83b7\u53d6\u5f53\u524d\u8bf7\u6c42\u540d\u79f0\nsampler.getName();\n
    - vars\uff1aJMeterVariables\uff0c\u7528\u4e8e\u64cd\u4f5c\u53d8\u91cf
    //\u83b7\u53d6\u53d8\u91cf VAR1 \u7684\u503c\nvars.get(\"VAR1\");\n//\u8bbe\u7f6e\u53d8\u91cf VAR2 \u7684\u503c\u4e3a value\nvars.put(\"VAR2\",\"value\");\n//\u79fb\u9664\u53d8\u91cf VAR3\nvars.remove(\"VAR3\");\n

    \u3010\u6ce8\u610f\u3011 \u4e0d\u540c\u811a\u672c\u8bed\u8a00\u8bed\u6cd5\u4e0d\u540c\uff0c\u4ee5\u4e0a\u793a\u4f8b\u4ec5\u9488\u5bf9 BeanShell \u6216 Groovy\u3002

    \u5728\u63a5\u53e3 CASE \u7f16\u8f91\u9875\u9762\uff0c\u64cd\u4f5c Tab \u9875\u524d\u7f6e\u64cd\u4f5c\u83dc\u5355\uff1a\u63d0\u4f9b\u4e86\u591a\u79cd\u4e0d\u540c\u7c7b\u578b\u548c\u8303\u56f4\u7684\u6807\u51c6\u4ee3\u7801\u6a21\u677f\uff0c\u540c\u65f6\u8fd8\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u4ee3\u7801\u6a21\u677f\u3002\u4ee3\u7801\u6a21\u7248\u5206\u4e3a\uff1aAPI\u6d4b\u8bd5\u3001\u81ea\u5b9a\u4e49\u53d8\u91cf\u3001\u9879\u76ee\u73af\u5883\u3001\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u3001\u5f02\u5e38\u5904\u7406\u3002

    "},{"location":"user_manual/api_test/api_step/#11-api","title":"1.1 API\u6d4b\u8bd5","text":"

    \u3010\u4eceAPI\u5b9a\u4e49\u5bfc\u5165\u3011\uff1aAPI\u5b9a\u4e49\u5bfc\u5165\u53ef\u4ee5\u76f4\u63a5\u5bfc\u5165 API / CASE \u81ea\u52a8\u751f\u6210\u811a\u672c\u3002\u70b9\u51fb\u3010API\u5b9a\u4e49\u5bfc\u5165\u3011\u6309\u94ae\uff0c\u4ece\u63a5\u53e3\u5217\u8868 API/ CASE \u9009\u62e9\u76ee\u6807\u6570\u636e\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u4f1a\u5728\u524d\u7f6e\u811a\u672c\u4e2d\u9ed8\u8ba4\u751f\u6210 beanshell \u811a\u672c\u3002\u811a\u672c\u8bed\u8a00\u53ef\u5207\u6362\uff0c\u9ed8\u8ba4\u652f\u6301 beanshell \u3001python2 \u3001groovy \u3001javascript \u8bed\u8a00\u3002

    \u70b9\u51fb\u3010\u65b0API\u6d4b\u8bd5[json]\u3011\u53ef\u4ee5\u81ea\u52a8\u751f\u6210 json \u8bf7\u6c42\u65b9\u5f0f\u7684 API \u8bf7\u6c42\u6a21\u677f\u3002

    "},{"location":"user_manual/api_test/api_step/#12","title":"1.2 \u81ea\u5b9a\u4e49\u53d8\u91cf","text":"

    \u5728\u3010\u81ea\u5b9a\u4e49\u53d8\u91cf\u3011\u65b9\u6cd5\u5217\u8868\uff0c\u9009\u62e9\u9700\u8981\u7684\u81ea\u5b9a\u4e49\u53d8\u91cf\u65b9\u6cd5\u53ef\u81ea\u52a8\u751f\u6210\u83b7\u53d6\u53d8\u91cf\u7684\u811a\u672c\u3002\u5305\u62ec\u83b7\u53d6\u54cd\u5e94\u5934\u3001\u83b7\u53d6\u54cd\u5e94\u7801\u3001\u83b7\u53d6\u54cd\u5e94\u7b49\u811a\u672c\uff0c\u4ee5\u83b7\u53d6\u63a5\u53e3\u8c03\u8bd5\u7ed3\u679c\u4e2d\u7684\u54cd\u5e94\u5934\u3001\u54cd\u5e94\u7801\u3001\u54cd\u5e94\u7ed3\u679c\u7b49\u4fe1\u606f\u3002

    "},{"location":"user_manual/api_test/api_step/#13","title":"1.3 \u9879\u76ee\u73af\u5883","text":"

    \u9009\u62e9\u3010\u9879\u76ee\u73af\u5883\u3011\u8bbe\u7f6e\u73af\u5883\u53c2\u6570\uff0c\u81ea\u52a8\u751f\u6210\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\u65b9\u6cd5\u586b\u5199\u5bf9\u5e94\u65b9\u6cd5\u952e\u503c\u5bf9\u5373\u53ef\u8bd5\u7528\u3002 vars.put(${__metersphere_env_id}+\"key\",\"value\"); // \u5c06\u503c\u5b58\u50a8\u4e3a\u73af\u5883\u53d8\u91cf\uff0c\u53ef\u5728\u3010\u73af\u5883-\u901a\u7528\u8bbe\u7f6e\u3011\u5904\u770b\u5230\u503c\u3002\u5f53\u524d\u73af\u5883\u4e0b\u7684\u6240\u6709\u63a5\u53e3\u4f7f\u7528\u3002 vars.put(\"key\",\"value\") // \u5c06\u503c\u5b58\u50a8\u4e3a\u573a\u666f\u53d8\u91cf

    "},{"location":"user_manual/api_test/api_step/#14","title":"1.4 \u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5","text":"

    \u9009\u62e9\u3010\u81ea\u5b9a\u4e49\u4ee3\u7801\u3011\u63d2\u5165\u4ee3\u7801\u7247\u6bb5\uff0c\u9009\u62e9\u5728\u3010\u9879\u76ee\u7ba1\u7406-\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u3011\u5b9a\u4e49\u597d\u7684\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\uff0c\u53ef\u5b9e\u73b0\u590d\u7528\u811a\u672c\u4f18\u5316\u6d4b\u8bd5\u7ba1\u7406\u529e\u6cd5\u3002

    "},{"location":"user_manual/api_test/api_step/#15","title":"1.5 \u5f02\u5e38\u5904\u7406","text":"

    \u9009\u62e9\u3010\u5f02\u5e38\u5904\u7406\u3011\u7ec8\u6b62\u6d4b\u8bd5\uff0c\u53ef\u81ea\u52a8\u751f\u6210 \u7ec8\u6b62\u6d4b\u8bd5\u7ebf\u7a0b\u7684\u811a\u672c\u3002\u8bbe\u7f6e\u7ec8\u6b62\u6d4b\u8bd5\u5f02\u5e38\u6761\u4ef6\uff0c\u63a5\u53e3\u6216\u573a\u666f\u6267\u884c\u8fc7\u7a0b\u4e2d\u5339\u914d\u5230\u7ec8\u6b62\u6761\u4ef6\u5219\u7ec8\u6b62\u8be5\u8fdb\u7a0b\u3002

    "},{"location":"user_manual/api_test/api_step/#2","title":"2 \u540e\u7f6e\u811a\u672c","text":"

    \u540e\u7f6e\u811a\u672c\u4e0e\u524d\u7f6e\u811a\u672c\u7c7b\u4f3c\uff0c\u53ef\u4ee5\u6dfb\u52a0\u4e3a\u8bf7\u6c42\u7684\u5b50\u6b65\u9aa4\uff0c\u5728\u8bf7\u6c42\u53d1\u9001\u540e\u6267\u884c\uff0c\u53ef\u4ee5\u7528\u4e8e\u5904\u7406\u54cd\u5e94\u7ed3\u679c\uff0c\u4ece\u4e2d\u63d0\u53d6\u53d8\u91cf\u7b49\u573a\u666f\u3002

    "},{"location":"user_manual/api_test/api_step/#3-sql","title":"3 \u524d\u7f6e SQL","text":"

    \u5728\u8bf7\u6c42\u53d1\u9001\u4e4b\u524d\u6267\u884c SQL \u811a\u672c\u3002\u524d\u7f6e\u64cd\u4f5c\u4e0b\u62c9\u9009\u62e9 \u524d\u7f6eSQL\uff0c\u914d\u7f6e \u8fd0\u884c\u73af\u5883\u53ca \u76ee\u6807\u6570\u636e\u6e90\uff0c\u53ef\u76f4\u63a5\u5728 SQL\u811a\u672c\u4e2d\u7f16\u5199 SQL \u8bed\u53e5\uff0c\u8fd4\u56de\u7684\u63a5\u53e3\u652f\u6301\u5b58\u50a8\u7ed3\u679c\u3001\u6309\u5217\u5b58\u50a8\uff0c\u652f\u6301\u5728 SQL\u811a\u672c\u4e2d\u8bbe\u7f6e\u53d8\u91cf\u4f20\u53c2\u3002

    • \u5b58\u50a8\u7ed3\u679c\uff1a\u8fd4\u56de\u7ed3\u679c\u7684\u6240\u6709\u5b57\u6bb5\u5b58\u50a8\u5230\u4e00\u4e2a\u53d8\u91cf\u4e2d\u3002\u53ef\u914d\u5408\u811a\u672c\u5904\u7406\u83b7\u8fd4\u56de\u7ed3\u679c\u4e2d\u7684\u67d0\u4e00\u90e8\u5206\u503c\u3002
    • \u6309\u5217\u5b58\u50a8\uff1a\u76f4\u63a5\u6307\u5b9a\u53d6\u51fa\u8fd4\u56de\u7ed3\u679c\u5b57\u6bb5\u7684\u503c\uff0c\u5217\u540d\u8981\u548cSQL\u8bed\u53e5\u4e2d\u67e5\u8be2\u8fd4\u56de\u7ed3\u679c\u5217\u540d\u5bf9\u5e94\u3002\u53ef\u4ee5\u7528\u9017\u53f7\u4f5c\u4e3a\u5360\u4f4d\u7b26\u4ee3\u66ff\u5217\u540d\uff0c\u53ea\u5199\u51fa\u8981\u63d0\u53d6\u7684\u5217\u540d\u5373\u53ef\u3002

    \u5982\u56fe\u6240\u793a\u67e5\u8be2\uff0c\u7528\u6237\u3010\u6309\u5217\u5b58\u50a8\u3011\u67e5\u8be2 id \u548c name\uff0c\u901a\u8fc7${name_n}\u8fdb\u884c\u5f15\u7528\uff0cn\u4e3a\u884c\u6570\uff0c${name_1} \u4e3a name \u5217\u7684\u7b2c\u4e00\u884c\u503c\u3002

    "},{"location":"user_manual/api_test/api_step/#4-sql","title":"4 \u540e\u7f6e SQL","text":"

    \u540e\u7f6eSQL\u4e0e\u524d\u7f6eSQL\u7c7b\u4f3c\uff0c\u5728\u8bf7\u6c42\u6267\u884c\u5b8c\u6210\u540e\u518d\u8fdb\u884cSQL\u5904\u7406\u3002

    "},{"location":"user_manual/api_test/api_step/#5","title":"5 \u65ad\u8a00\u89c4\u5219","text":"

    \u65ad\u8a00\u7684\u4e3b\u8981\u529f\u80fd\u662f\u901a\u8fc7\u9a8c\u8bc1\u54cd\u5e94\u62a5\u6587\u662f\u5426\u6ee1\u8db3\u9700\u6c42\u89c4\u7ea6\u6765\u786e\u8ba4\u63a5\u53e3\u8fd0\u884c\u662f\u5426\u6b63\u786e\u3002 \u76ee\u524d MeterSphere \u652f\u6301\u4ee5\u4e0b\u51e0\u79cd\u5f62\u5f0f\u7684\u65ad\u8a00\u89c4\u5219\uff1a

    • \u6587\u672c
    • \u6b63\u5219
    • JSONPath
    • XPath
    • \u54cd\u5e94\u65f6\u95f4
    • \u811a\u672c
    • \u6587\u6863\u7ed3\u6784\u6821\u9a8c

    "},{"location":"user_manual/api_test/api_step/#51","title":"5.1 \u6587\u672c\u65ad\u8a00","text":"

    \u6587\u672c\u65ad\u8a00\u5373\u5bf9\u54cd\u5e94\u5bf9\u8c61\u6309\u6587\u672c\u65b9\u5f0f\u8ddf\u8fdb\u6307\u5b9a\u5224\u65ad\u6761\u4ef6\u8fdb\u884c\u5224\u65ad\u3002

    • \u5bf9\u8c61\u5305\u62ec\uff1a Response Code\uff0cResponse Headers\uff0cResponse Data \u3002
    • \u6761\u4ef6\u652f\u6301\uff1a \u5305\u542b\uff0c\u4e0d\u5305\u542b\uff0c\u7b49\u4e8e\uff0c\u4ee5...\u5f00\u59cb\uff0c\u4ee5...\u7ed3\u675f \u3002
    • \u503c\uff1a\u65ad\u8a00\u5bf9\u8c61\u9700\u8981\u5339\u914d\u7684\u503c\uff0c\u5339\u914d\u6210\u529f\u5219\u65ad\u8a00\u6210\u529f\uff0c\u5426\u5219\u65ad\u8a00\u5931\u8d25\u3002

    "},{"location":"user_manual/api_test/api_step/#52","title":"5.2 \u6b63\u5219\u65ad\u8a00","text":"

    \u6b63\u5219\u65ad\u8a00\u9002\u7528\u4e8e\u54cd\u5e94\u5185\u5bb9\u4e0d\u662f JSON\u3001XML\u3001HTML \u7b49\u8fd9\u6837\u7684\u6807\u51c6\u4e14\u5e38\u89c1\u7684\u7ed3\u6784\u5316\u6587\u672c\u7684\u8bf7\u6c42\u8fdb\u884c\u65ad\u8a00\u64cd\u4f5c\u3002

    • \u5bf9\u8c61\u5305\u62ec\uff1aResponse Code\uff0cResponse Headers\uff0cResponse Data\u3002
    • Perl\u578b\u6b63\u5219\u8868\u8fbe\u5f0f\uff1a\u65ad\u8a00\u5bf9\u8c61\u9700\u8981\u5339\u914d\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\uff0c\u5339\u914d\u6210\u529f\u5219\u65ad\u8a00\u6210\u529f\uff0c\u5426\u5219\u65ad\u8a00\u5931\u8d25\u3002

    \u793a\u4f8b

    \u8bf7\u6c42\u7684\u54cd\u5e94\u4f53\uff1a

    id=\"ddc86657-d402-4c10-b458-2ba2e4604cef\"&name=\"myorg\"&description=\"test org\"\n
    \u65ad\u8a00\u9700\u6c42\uff1a\u5224\u65ad\u54cd\u5e94\u4f53\u4e2d\u5305\u542b name=\"\u4efb\u610f\u6587\u672c\"\u3002

    \u65ad\u8a00\u914d\u7f6e\uff1a

    • \u5bf9\u8c61\uff1aResponse Data
    • Perl\u578b\u6b63\u5219\u8868\u8fbe\u5f0f\uff1aname=\".*?\"
    "},{"location":"user_manual/api_test/api_step/#53-jsonpath","title":"5.3 JSONPath \u65ad\u8a00","text":"

    JSONPath \u65ad\u8a00\u9002\u7528\u4e8e\u54cd\u5e94\u5185\u5bb9\u662f JSON \u683c\u5f0f\u8fdb\u884c\u65ad\u8a00\u3002

    • JSONPath\u8868\u8fbe\u5f0f\uff1aJSONPath \u8868\u8fbe\u5f0f\uff0c\u901a\u8fc7\u8be5\u8868\u8fbe\u5f0f\u5b9a\u4f4d\u5230\u7279\u5b9a\u5b57\u6bb5\u3002
    • \u671f\u671b\u503c\uff1a\u901a\u8fc7 JSONPath \u8868\u8fbe\u5f0f\u5b9a\u4f4d\u7684\u5b57\u6bb5\u7684\u671f\u671b\u503c\uff0c\u652f\u6301\u6b63\u5219\u8868\u8fbe\u5f0f\u3002

    "},{"location":"user_manual/api_test/api_step/#54-xpath","title":"5.4 XPath \u65ad\u8a00","text":"

    XPath \u65ad\u8a00\u9002\u7528\u4e8e\u5bf9\u54cd\u5e94\u5185\u5bb9\u662f XML\u3001HTML \u7b49\u683c\u5f0f\u7684\u8bf7\u6c42\u8fdb\u884c\u65ad\u8a00\u3002

    • XPath\u8868\u8fbe\u5f0f\uff1a\u9700\u8981\u8fdb\u884c\u5339\u914d\u7684 XPath \u8868\u8fbe\u5f0f\u3002

    \u793a\u4f8b

    \u8bf7\u6c42\u7684\u54cd\u5e94\u4f53\uff1a

    <root xmlns:foo=\"http://www.foo.org/\" xmlns:bar=\"http://www.bar.org\">\n    <employees>\n        <employee id=\"1\">Johnny Dapp</employee>\n        <employee id=\"2\">Al Pacino</employee>\n        <employee id=\"3\">Robert De Niro</employee>\n        <employee id=\"4\">Kevin Spacey</employee>\n        <employee id=\"5\">Denzel Washington</employee>\n    </employees>\n    <foo:companies>\n        <foo:company id=\"6\">Tata Consultancy Services</foo:company>\n        <foo:company id=\"7\">Wipro</foo:company>\n        <foo:company id=\"8\">Infosys</foo:company>\n        <foo:company id=\"9\">Microsoft</foo:company>\n        <foo:company id=\"10\">IBM</foo:company>\n        <foo:company id=\"11\">Apple</foo:company>\n        <foo:company id=\"12\">Oracle</foo:company>\n    </foo:companies>\n</root>\n
    \u65ad\u8a00\u9700\u6c42\uff1a\u5224\u65ad\u54cd\u5e94\u4f53\u4e2d\u7684 id \u4e3a 10 \u7684\u516c\u53f8\u540d\u79f0\u4e3a IBM

    \u65ad\u8a00\u914d\u7f6e\uff1a

    - XPath \u8868\u8fbe\u5f0f\uff1a//*[local-name()='company' and @id=\"10\"]/text()=\"IBM\"\n
    "},{"location":"user_manual/api_test/api_step/#55","title":"5.5 \u54cd\u5e94\u65f6\u95f4\u65ad\u8a00","text":"

    \u54cd\u5e94\u65f6\u95f4\u65ad\u8a00\u9002\u7528\u4e8e\u5bf9\u54cd\u5e94\u65f6\u95f4\u6709\u7279\u5b9a\u8981\u6c42\u65f6\u7684\u8bf7\u6c42\u8fdb\u884c\u65ad\u8a00\u64cd\u4f5c\u3002

    • \u54cd\u5e94\u65f6\u95f4\u5728...\u6beb\u79d2\u4ee5\u5185\uff1a\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d\u7684\u54cd\u5e94\u65f6\u95f4\u671f\u671b\uff0c\u5f53\u5b9e\u9645\u54cd\u5e94\u65f6\u95f4\u5c0f\u4e8e\u7b49\u4e8e\u8be5\u503c\u65f6\u65ad\u8a00\u6210\u529f\u3002

    "},{"location":"user_manual/api_test/api_step/#56","title":"5.6 \u6587\u6863\u7ed3\u6784\u6821\u9a8c","text":"

    \u6587\u6863\u7ed3\u6784\u6821\u9a8c\u65ad\u8a00\u9002\u7528\u4e8e\u54cd\u5e94\u7ed3\u679c\u4e3aXML/JSON\u683c\u5f0f\u7684\u8bf7\u6c42\u8fdb\u884c\u65ad\u8a00\u64cd\u4f5c\u3002

    \u5bfc\u5165\u6587\u6863\u6821\u9a8c\uff1a \u70b9\u51fb\u3010\u5bfc\u5165\u3011\u53ef\u5bfc\u5165\u9700\u65ad\u8a00 Json/xml \u6570\u636e\uff0c\u81ea\u52a8\u751f\u6210\u6587\u6863\u7ed3\u6784\u6821\u9a8c\u5143\u7d20\u8868\u683c\u3002\u53ef\u4ee5\u81ea\u5b9a\u4e49\u8bbe\u7f6e \u6821\u9a8c\u89c4\u5219\u3002 \u8ddf\u968f API \u5b9a\u4e49\uff1a\u662f API \u54cd\u5e94\u4f53\u8bbe\u7f6e\u8fd4\u56de\u503c\u4e00\u81f4\uff0c\u52fe\u9009\u3010\u8ddf\u968fAPI\u5b9a\u4e49\u3011\u53ef\u4ee5\u81ea\u52a8\u751f\u6210\u5185\u5bb9\u6821\u9a8c\u3002

    "},{"location":"user_manual/api_test/api_step/#57","title":"5.7 \u811a\u672c\u65ad\u8a00","text":"

    \u5f53\u5e38\u89c4\u65ad\u8a00\u65e0\u6cd5\u6ee1\u8db3\u9700\u6c42\u65f6\uff0c\u53ef\u4ee5\u9009\u62e9\u811a\u672c\u65ad\u8a00\uff0c\u5373\u9009\u62e9\u5408\u9002\u7684\u8bed\u8a00\u7f16\u5199\u811a\u672c\u6765\u5bf9\u7ed3\u679c\u8fdb\u884c\u5224\u65ad\u3002

    • \u4e0e\u524d\u540e\u7f6e\u811a\u672c\u4e00\u6837\uff0c\u811a\u672c\u5728\u52a0\u8f7d\u524d\u5df2\u7ecf\u5185\u7f6e\u4e86\u90e8\u5206\u53d8\u91cf\uff0c\u76ee\u524d\u652f\u6301 BeanShell\u3001Groovy\u3001Python \u3001javascript \u811a\u672c\u8bed\u8a00\u3002\u9664\u4e86\u5728\u4e4b\u524d\u5df2\u7ecf\u4ecb\u7ecd\u8fc7\u7684\u53d8\u91cf\u5916\uff0c\u811a\u672c\u65ad\u8a00\u4e2d\u7684\u811a\u672c\u8fd8\u989d\u5916\u63d0\u4f9b\u4e86\u65ad\u8a00\u7ed3\u679c\u5bf9\u8c61AssertionResult\uff0c\u901a\u8fc7 AssertionResult.setFailure(true) \u65b9\u6cd5\u8bbe\u7f6e\u65ad\u8a00\u662f\u5426\u6210\u529f\uff0c\u901a\u8fc7 AssertionResult.setFailureMessage(\"message\") \u65b9\u6cd5\u8bbe\u7f6e\u65ad\u8a00\u5931\u8d25\u63d0\u793a\u4fe1\u606f\u3002

    "},{"location":"user_manual/api_test/api_step/#6","title":"6 \u63d0\u53d6\u53c2\u6570","text":"

    \u63d0\u53d6\u53c2\u6570\u4e3b\u8981\u7528\u4e8e\u4ece\u8bf7\u6c42\u54cd\u5e94\u4e2d\u63d0\u53d6\u7279\u5b9a\u8fd4\u56de\u503c\u5e76\u5b58\u50a8\u5230\u53d8\u91cf\u4e2d\uff0c\u4fbf\u4e8e\u5728\u540e\u7eed\u7684\u6b65\u9aa4\u4e2d\u5f15\u7528\u8be5\u8fd4\u56de\u503c\u3002 MeterSphere\u5df2\u652f\u6301\u7684\u63d0\u53d6\u53c2\u6570\u65b9\u5f0f\u5305\u62ec\uff1a

    • \u6b63\u5219
    • JSONPath
    • XPath

    "},{"location":"user_manual/api_test/api_step/#61","title":"6.1 \u6b63\u5219\u63d0\u53d6","text":"

    \u6b63\u5219\u63d0\u53d6\u9002\u7528\u4e8e\u8bf7\u6c42\u975e JSON\u3001XML\u3001HTML \u6807\u51c6\u4e14\u5e38\u89c1\u7684\u7ed3\u6784\u5316\u6587\u672c\u7684\u54cd\u5e94\u5185\u5bb9\u3002

    • \u5bf9\u8c61\uff1a\u652f\u6301 Body\uff0cRequest Headers\uff0cResponse Headers\uff0cURL\uff0cResponse Code\uff0cResponse Message
    • \u53d8\u91cf\u540d\uff1a\u4fdd\u5b58\u63d0\u53d6\u503c\u7684\u53d8\u91cf\u540d\uff0c\u540e\u7eed\u53ef\u4ee5\u901a\u8fc7 ${varName} \u5f62\u5f0f\u5f15\u7528\u5230\uff0c\u5982\u679c\u9009\u62e9\u4e86 \u3010\u5339\u914d\u591a\u4e2a\u3011\u53ef\u4ee5\u901a\u8fc7 ${varName_matchNr} \u83b7\u53d6\u5230\u5339\u914d\u7684\u603b\u4e2a\u6570\uff0c\u901a\u8fc7 ${varName_n} \u4f9d\u6b21\u83b7\u53d6\u5230\u6bcf\u4e2a\u5339\u914d\u503c\u3002
    • Perl\u578b\u6b63\u5219\u8868\u8fbe\u5f0f\uff1a\u63d0\u53d6\u7279\u5b9a\u503c\u4f7f\u7528\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\uff0c\u5c06\u63d0\u53d6\u6b63\u5219\u8868\u8fbe\u5f0f\u4e2d\u7684\u7b2c\u4e00\u4e2a\u7ec4\u3002

    \u8bf7\u6c42\u7684\u54cd\u5e94\u4f53\uff1a

    id=\"ddc86657-d402-4c10-b458-2ba2e4604cef\"&name=\"myorg\"&description=\"test org\"\n
    \u63d0\u53d6\u9700\u6c421\uff1a\u54cd\u5e94\u4f53\u4e2d name \u5b57\u6bb5\u7684\u503c\u3002

    \u63d0\u53d6\u914d\u7f6e\uff1a

    • \u5bf9\u8c61\uff1aBody
    • \u53d8\u91cf\u540d\uff1aname
    • Perl\u578b\u6b63\u5219\u8868\u8fbe\u5f0f\uff1aname=\"(.*?)\"
    "},{"location":"user_manual/api_test/api_step/#62-jsonpath","title":"6.2 JSONPath \u63d0\u53d6","text":"

    JSONPath \u63d0\u53d6\u9002\u7528\u4e8e\u54cd\u5e94\u5185\u5bb9\u662f JSON \u683c\u5f0f\u7684\u54cd\u5e94\u5185\u5bb9\u7684\u5904\u7406\uff0c\u53ef\u4ee5\u65b9\u4fbf\u5730\u901a\u8fc7 JSONPath \u8868\u8fbe\u5f0f\u5b9a\u4f4d\u5230\u7279\u5b9a\u5b57\u6bb5\u8fdb\u884c\u63d0\u53d6\u3002

    • \u53d8\u91cf\u540d\uff1a\u4fdd\u5b58\u63d0\u53d6\u503c\u7684\u53d8\u91cf\u540d\uff0c\u540e\u7eed\u53ef\u4ee5\u901a\u8fc7 ${varName} \u5f62\u5f0f\u5f15\u7528\u5230\uff0c\u5982\u679c\u9009\u62e9\u4e86\u3010\u5339\u914d\u591a\u4e2a\u3011\uff0c\u53ef\u4ee5\u901a\u8fc7 ${varName_matchNr} \u83b7\u53d6\u5230\u5339\u914d\u7684\u603b\u4e2a\u6570\uff0c\u901a\u8fc7 ${varName_n} \u4f9d\u6b21\u83b7\u53d6\u5230\u6bcf\u4e2a\u5339\u914d\u503c\u3002
    • JSONPath\u8868\u8fbe\u5f0f\uff1aJSONPath \u8868\u8fbe\u5f0f\uff0c\u901a\u8fc7\u8be5\u8868\u8fbe\u5f0f\u5b9a\u4f4d\u5230\u8981\u63d0\u53d6\u7684\u5b57\u6bb5\u3002

    \u8bf7\u6c42\u7684\u54cd\u5e94\u4f53\uff1a

    {\n    \"success\": true,\n    \"message\": null,\n    \"data\": {\n        \"id\": \"ddc86657-d402-4c10-b458-2ba2e4604cef\",\n        \"name\": \"myorg\",\n        \"description\": \"form api\",\n        \"createTime\": 1611154807818,\n        \"updateTime\": 1611154807818\n    }\n}\n
    \u63d0\u53d6\u9700\u6c42\uff1a\u63d0\u53d6\u54cd\u5e94\u4f53 data \u4e2d\u7684 name \u5b57\u6bb5\u5e76\u5b58\u50a8\u5728 name \u53d8\u91cf\u4e2d\u3002 \u63d0\u53d6\u914d\u7f6e\uff1a

    • \u53d8\u91cf\u540d\uff1aname
    • JSONPath \u8868\u8fbe\u5f0f\uff1a$.data.name
    "},{"location":"user_manual/api_test/api_step/#63-xpath","title":"6.3 XPath \u63d0\u53d6","text":"

    XPath \u63d0\u53d6\u9002\u7528\u4e8e\u5904\u7406 XML\u3001HTML \u7b49\u683c\u5f0f\u7684\u54cd\u5e94\u5185\u5bb9\uff0c\u53ef\u4ee5\u65b9\u4fbf\u5730\u901a\u8fc7 XPath \u8868\u8fbe\u5f0f\u5b9a\u4f4d\u5230\u7279\u5b9a\u5b57\u6bb5\u8fdb\u884c\u63d0\u53d6\u3002

    • \u53d8\u91cf\u540d\uff1a\u4fdd\u5b58\u63d0\u53d6\u503c\u7684\u53d8\u91cf\u540d\uff0c\u540e\u7eed\u53ef\u4ee5\u901a\u8fc7 ${varName} \u5f62\u5f0f\u5f15\u7528\u5230\uff0c\u5982\u679c\u9009\u62e9\u4e86\u3010\u5339\u914d\u591a\u4e2a\u3011\uff0c\u53ef\u4ee5\u901a\u8fc7 ${varName_matchNr} \u83b7\u53d6\u5230\u5339\u914d\u7684\u603b\u4e2a\u6570\uff0c\u901a\u8fc7 ${varName_n} \u4f9d\u6b21\u83b7\u53d6\u5230\u6bcf\u4e2a\u5339\u914d\u503c\u3002
    • XPath\u8868\u8fbe\u5f0f\uff1a\u9700\u8981\u8fdb\u884c\u5339\u914d\u7684 XPath \u8868\u8fbe\u5f0f\u3002

    \u793a\u4f8b

    \u8bf7\u6c42\u7684\u54cd\u5e94\u4f53\uff1a

    <root xmlns:foo=\"http://www.foo.org/\" xmlns:bar=\"http://www.bar.org\">\n    <employees>\n        <employee id=\"1\">Johnny Dapp</employee>\n        <employee id=\"2\">Al Pacino</employee>\n        <employee id=\"3\">Robert De Niro</employee>\n        <employee id=\"4\">Kevin Spacey</employee>\n        <employee id=\"5\">Denzel Washington</employee>\n    </employees>\n    <foo:companies>\n        <foo:company id=\"6\">Tata Consultancy Services</foo:company>\n        <foo:company id=\"7\">Wipro</foo:company>\n        <foo:company id=\"8\">Infosys</foo:company>\n        <foo:company id=\"9\">Microsoft</foo:company>\n        <foo:company id=\"10\">IBM</foo:company>\n        <foo:company id=\"11\">Apple</foo:company>\n        <foo:company id=\"12\">Oracle</foo:company>\n    </foo:companies>\n</root>\n
    \u63d0\u53d6\u9700\u6c42\uff1a\u63d0\u53d6\u54cd\u5e94\u4f53\u4e2d\u7684 id \u4e3a 3 \u7684\u5458\u5de5\u7684\u59d3\u540d\uff0c\u5373\u4e0a\u8ff0\u54cd\u5e94\u4e2d\u7684 Robert De Niro\uff0c\u5e76\u5b58\u50a8\u5728 employeeName \u53d8\u91cf\u4e2d\u3002

    \u63d0\u53d6\u914d\u7f6e\uff1a

    • \u53d8\u91cf\u540d\uff1aemployeeName
    • XPath \u8868\u8fbe\u5f0f\uff1astring(//employee[@id='3'])
    "},{"location":"user_manual/api_test/functions/","title":"\u5185\u7f6e\u51fd\u6570","text":""},{"location":"user_manual/api_test/functions/#1","title":"1 \u5185\u7f6e\u51fd\u6570\u6982\u8ff0","text":"

    MeterSphere \u63a5\u53e3\u6d4b\u8bd5\u57fa\u4e8e JMeter \u5b9e\u73b0\uff0c\u56e0\u6b64 JMeter \u4e2d\u7684\u5185\u7f6e\u51fd\u6570\u53ca\u53d8\u91cf\u5728 MeterSphere \u4e2d\u90fd\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\u3002\u5185\u7f6e\u51fd\u6570\u53ca\u53d8\u91cf\u53ef\u5e94\u7528\u4e8eQUERY \u53c2\u6570\u3001REST \u53c2\u6570\u3001\u8bf7\u6c42\u4f53\u3001\u524d\u540e\u7f6e\u811a\u672c\u7b49\u3002 \u5185\u7f6e\u51fd\u6570\u4e00\u822c\u4ee5\u4e24\u4e2a\u4e0b\u5212\u7ebf\u5f00\u5934\uff0c\u5e76\u4f7f\u7528\u7c7b\u4f3c ${__functionName(var1,var2,var3)} \u7684\u5f62\u5f0f\u8c03\u7528\u3002\u5176\u4e2d __functionName \u4ee3\u8868\u51fd\u6570\u540d\uff0cvar1\uff0cvar2 \u548c var3 \u5206\u522b\u662f\u4f20\u7ed9\u8be5\u51fd\u6570\u7684\u4e09\u4e2a\u53c2\u6570\u3002 \u53d8\u91cf\u53ef\u4ee5\u901a\u8fc7\u7c7b\u4f3c ${varName} \u7684\u5f62\u5f0f\u5f15\u7528\uff0c\u5176\u4e2d varName \u4ee3\u8868\u53d8\u91cf\u540d\u3002\u4f8b\u5982\uff1a\u751f\u62101\u5230100\u7684\u968f\u673a\u6570\u4f7f\u7528\u8868\u8fbe\u5f0f\uff1a${__Random(1,100)}\u3002

    "},{"location":"user_manual/api_test/functions/#2","title":"2 \u5185\u7f6e\u51fd\u6570\u5217\u8868","text":"\u51fd\u6570\u7c7b\u578b \u51fd\u6570\u540d\u79f0 \u51fd\u6570\u8bf4\u660e Information threadNum get thread number Information threadGroupName get thread group name Information samplerName get the sampler name (label) Information machineIP get the local machine IP address Information machineName get the local machine name Information time return current time in various formats Information timeShift return a date in various formats with the specified amount of seconds/minutes/hours/days added Information log log (or display) a message (and return the value) Information logn log (or display) a message (empty return value) Input StringFromFile read a line from a file Input FileToString read an entire file Input CSVRead read from CSV delimited file Input XPath Use an XPath expression to read from a file Input StringToFile write a string to a file Calculation counter generate an incrementing number Formatting dateTimeConvert Convert a date or time from source to target format Calculation digest Generate a digest (SHA-1, SHA-256, MD5...) Calculation intSum add int numbers Calculation longSum add long numbers Calculation Random generate a random number Calculation RandomDate generate random date within a specific date range Calculation RandomFromMultipleVars extracts an element from the values of a set of variables separated by | Calculation RandomString generate a random string Calculation UUID generate a random type 4 UUID Scripting groovy run an Apache Groovy script Scripting BeanShell run a BeanShell script Scripting javaScript process JavaScript (Nashorn) Scripting jexl2 evaluate a Commons Jexl2 expression Scripting jexl3 evaluate a Commons Jexl3 expression Properties isPropDefined Test if a property exists Properties property read a property Properties P read a property (shorthand method) Properties setProperty set a JMeter property Variables split Split a string into variables Variables eval evaluate a variable expression Variables evalVar evaluate an expression stored in a variable Properties isVarDefined Test if a variable exists Variables V evaluate a variable name String char generate Unicode char values from a list of numbers String changeCase Change case following different modes String escapeHtml Encode strings using HTML encoding String escapeOroRegexpChars quote meta chars used by ORO regular expression String escapeXml Encode strings using XMl encoding String regexFunction parse previous response using a regular expression String unescape Process strings containing Java escapes (e.g. \\n & \\t) String unescapeHtml Decode HTML-encoded strings String urldecode Decode a application/x-www-form-urlencoded string String urlencode Encode a string to a application/x-www-form-urlencoded string String TestPlanName Return name of current test plan"},{"location":"user_manual/api_test/home/","title":"\u9996\u9875","text":"

    \u63a5\u53e3\u6d4b\u8bd5\u3010\u9996\u9875\u3011\u7528\u4e8e\u5c55\u793a\u73b0\u6709\u9879\u76ee\u7684\u63a5\u53e3\u6570\u91cf\u3001\u63a5\u53e3\u7528\u4f8b\u6570\u91cf\u3001\u573a\u666f\u7528\u4f8b\u6570\u91cf\u3001\u573a\u666f\u5b9a\u65f6\u4efb\u52a1\u6570\u91cf\u3001\u8fc7\u53bb7\u5929\u6709\u66f4\u65b0\u63a5\u53e3\u3001\u8fd0\u884c\u4e2d\u7684\u5b9a\u65f6\u4efb\u52a1\u4fe1\u606f\uff0c\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u4e86\u89e3\u5f53\u524d\u9879\u76ee\u63a5\u53e3\u6d4b\u8bd5\u60c5\u51b5\u3002

    "},{"location":"user_manual/api_test/intro/","title":"\u6982\u8ff0","text":"

    \u4ece\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011\u83dc\u5355\u8fdb\u5165\u63a5\u53e3\u6d4b\u8bd5\u529f\u80fd\u6a21\u5757\uff0c\u8be5\u6a21\u5757\u7531\u9996\u9875\u3001\u63a5\u53e3\u5b9a\u4e49\u3001\u63a5\u53e3\u81ea\u52a8\u5316\u3001\u6d4b\u8bd5\u62a5\u544a\u56db\u90e8\u5206\u7ec4\u6210\u3002

    \u9996\u9875\uff1a\u5c55\u793a\u5f53\u524d\u9879\u76ee\u7684\u63a5\u53e3\u6570\u91cf\u3001\u63a5\u53e3\u7528\u4f8b\u6570\u91cf\u3001\u81ea\u52a8\u5316\u573a\u666f\u6570\u91cf\u3001\u573a\u666f\u5b9a\u65f6\u4efb\u52a1\u6570\u91cf\u3001\u63a5\u53e3\u8986\u76d6\u5ea6\u3001\u7528\u4f8b\u8986\u76d6\u5ea6\u7b49\u4fe1\u606f\uff0c\u8fc7\u53bb 7 \u5929\u6709\u66f4\u65b0\u7684\u63a5\u53e3\u3001\u8fd0\u884c\u4e2d\u7684\u5b9a\u65f6\u4efb\u52a1\uff0c\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u5f53\u524d\u9879\u76ee\u63a5\u53e3\u6d4b\u8bd5\u60c5\u51b5\u3002 \u63a5\u53e3\u5b9a\u4e49\uff1a\u53ef\u7528\u4e8e\u7ba1\u7406\u63a5\u53e3\u3001\u63a5\u53e3\u7528\u4f8b\uff0c\u5e76\u6267\u884c\u8c03\u8bd5\u7b49\u6d4b\u8bd5\u5de5\u4f5c\u3002\u5176\u4e2d\u63a5\u53e3\u5b9a\u4e49\u652f\u6301 HTTP\u3001TCP\u3001SQL\u3001DUBBO \u534f\u8bae\uff0c\u5bfc\u5165\u652f\u6301\u624b\u52a8\u5f55\u5165\uff0c\u4e5f\u652f\u6301\u5bfc\u5165\u4f01\u4e1a\u73b0\u6709\u7684\u63a5\u53e3\u6d4b\u8bd5\u5de5\u5177\u4e2d\u7684\u63a5\u53e3\uff0c\u5982 MeterSphere \u683c\u5f0f\u3001Postman \u683c\u5f0f\u3001Swagger \u683c\u5f0f\u3001HAR \u683c\u5f0f\u3001JMeter \u683c\u5f0f\u7b49\u3002\u540c\u65f6\u4e5f\u652f\u6301\u4f7f\u7528 Chrome \u63d2\u4ef6\u5f55\u5236\u63a5\u53e3\uff0c\u53ef\u4ee5\u5feb\u901f\u5f55\u5236\u63a5\u53e3\u5e76\u5bfc\u5165\u81f3 MeterSphere \u5e73\u53f0\u63d0\u9ad8\u521b\u5efa\u63a5\u53e3\u6548\u7387\uff0c\u63a5\u53e3\u5f55\u5236\u5de5\u5177\u53ef\u5230 GitHub \u7f51\u7ad9 MeterSphere \u9879\u76ee\u4e0b\u8f7d\uff0c\u5177\u4f53\u7528\u6cd5\u53ef\u53c2\u8003 MeterSphere \u6d4f\u89c8\u5668\u63d2\u4ef6\u3002 \u63a5\u53e3\u81ea\u52a8\u5316\uff1a\u7528\u4e8e\u573a\u666f\u7ea7\u81ea\u52a8\u5316\u6d4b\u8bd5\u5de5\u4f5c\uff0c\u80fd\u591f\u7f16\u6392\u7ec4\u5408\u591a\u4e2a\u63a5\u53e3\u5b9e\u73b0\u4e00\u4e2a\u573a\u666f\u7684\u6d4b\u8bd5\uff1b\u5728\u573a\u666f\u4e2d\u652f\u6301\u81ea\u7531\u6dfb\u52a0\u63a5\u53e3\u8bf7\u6c42\uff0c\u63d0\u4f9b\u53d8\u91cf\u63d0\u53d6\u3001\u54cd\u5e94\u65ad\u8a00\u3001\u524d\u540e\u7f6e\u811a\u672c\u3001\u903b\u8f91\u63a7\u5236\u5668\u7b49\u529f\u80fd\u3002\u63a5\u53e3\u81ea\u52a8\u5316\u652f\u6301\u7528\u6237\u5feb\u901f\u5bfc\u5165\u73b0\u6709\u7684 Postman \u63a5\u53e3\u6d4b\u8bd5\u96c6\u3001JMeter \u63a5\u53e3\u6d4b\u8bd5\u811a\u672c\u3001HAR \u811a\u672c\u3001 Chrome \u63d2\u4ef6\u5f55\u5236\u7684\u811a\u672c\u3002 \u6d4b\u8bd5\u62a5\u544a\uff1a\u5bf9\u63a5\u53e3\u6d4b\u8bd5\u7ed3\u679c\u8fdb\u884c\u53ef\u89c6\u5316\u7684\u7f8e\u89c2\u9875\u9762\u62a5\u544a\u5c55\u793a\uff0c\u652f\u6301\u62a5\u544a\u5206\u4eab\u3001\u5bfc\u51fa\u65b9\u4fbf\u5bf9\u6d4b\u8bd5\u7ed3\u679c\u8fdb\u884c\u5f52\u6863\u7559\u5b58\u3002

    "},{"location":"user_manual/api_test/test_report/","title":"\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a","text":"

    \u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a\u662f\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3001\u573a\u666f\u6267\u884c\u7684\u7ed3\u679c\u5c55\u793a\u3002\u5728\u6d4b\u8bd5\u62a5\u544a\u4e2d\u53ef\u4ee5\u67e5\u770b\u573a\u666f\u53ca\u7528\u4f8b\u6267\u884c\u5b8c\u6210\u7684\u8be6\u7ec6\u4fe1\u606f\uff0c\u5305\u542b\u63a5\u53e3\u8fd0\u884c\u73af\u5883\u3001\u8fd0\u884c\u8d44\u6e90\u6c60\u3001\u63a5\u53e3\u6210\u529f\u5931\u8d25\u6570\u636e\u5c55\u793a\u53ca\u63a7\u5236\u53f0\u65e5\u5fd7\u3002

    "},{"location":"user_manual/api_test/test_report/#1","title":"1 \u67e5\u770b\u6d4b\u8bd5\u62a5\u544a","text":"

    \u5728\u6d4b\u8bd5\u62a5\u544a\u5217\u8868\u4e2d\uff0c\u652f\u6301\u67e5\u770b\u7528\u4f8b\u3001\u573a\u666f\u62a5\u544a\u3002\u70b9\u51fb\u6307\u5b9a\u6d4b\u8bd5\u62a5\u544a\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u62a5\u544a\u8be6\u60c5\u3011\u6309\u94ae\uff0c\u8fdb\u5165\u62a5\u544a\u8be6\u60c5\u9875\u9762\u3002\u5728\u8be5\u9875\u9762\u4e2d\u53ef\u4ee5\u67e5\u770b\u8be5\u62a5\u544a\u7684\u8be6\u7ec6\u5185\u5bb9\uff0c\u5e76\u652f\u6301\u91cd\u547d\u540d\u3001\u5bfc\u51fa\u7b49\u64cd\u4f5c\u3002

    "},{"location":"user_manual/api_test/test_report/#2","title":"2 \u5bfc\u51fa\u548c\u5206\u4eab\u6d4b\u8bd5\u62a5\u544a","text":"

    \u5728\u6d4b\u8bd5\u62a5\u544a\u8be6\u60c5\u9875\u9762\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2\u3010\u5206\u4eab\u62a5\u544a\u3011\u751f\u6210\u4e00\u4e2a\u6709\u5b9e\u6548\u7684\u62a5\u544a\u5206\u4eab\u94fe\u63a5\u3002\u70b9\u51fb \u3010\u5bfc\u51fa\u62a5\u544a\u3011\u6309\u94ae\u5c06\u62a5\u544a\u5bfc\u51fa\u4e3a PDF \u683c\u5f0f\u3002

    "},{"location":"user_manual/api_test/test_report/#3","title":"3 \u5220\u9664\u6d4b\u8bd5\u62a5\u544a","text":"

    \u5728\u6d4b\u8bd5\u62a5\u544a\u5217\u8868\u4e2d\u70b9\u51fb\u6307\u5b9a\u6d4b\u8bd5\u62a5\u544a\u64cd\u4f5c\u5217\u4e2d\u7684\u3010\u5220\u9664\u3011\u6309\u94ae\u5220\u9664\u62a5\u544a\u3002

    \u5728\u6d4b\u8bd5\u62a5\u544a\u5217\u8868\u6279\u91cf\u52fe\u9009\uff0c\u70b9\u51fb\u5217\u8868\u4e09\u4e2a\u5c0f\u70b9\u3010...\u3011\u5373\u53ef\u51fa\u73b0\u3010\u6279\u91cf\u5220\u9664\u62a5\u544a\u3011\u83dc\u5355\uff0c\u70b9\u51fb\u53ef\u6279\u91cf\u5220\u9664\u6d4b\u8bd5\u62a5\u544a\u3002 \u3010\u6ce8\u610f\u3011 \u5220\u9664\u6d4b\u8bd5\u62a5\u544a\u540e\u65e0\u6cd5\u6062\u590d\uff0c\u8bf7\u8c28\u614e\u4f7f\u7528\u8be5\u529f\u80fd\u3002

    "},{"location":"user_manual/load_test/home/","title":"Home","text":"

    \u6027\u80fd\u6d4b\u8bd5\u7684\u9996\u9875\u4e3b\u8981\u7528\u4e8e\u5c55\u793a\u73b0\u6709\u9879\u76ee\u7684\u6d4b\u8bd5\u5217\u8868\u3001\u62a5\u544a\u3001\u6d4b\u8bd5\u65e5\u5386\u3001\u8fd0\u884c\u4e2d\u7684\u4efb\u52a1\u3002

    • \u6d4b\u8bd5\uff1a\u5c55\u793a\u6700\u8fd1 5 \u6b21\u6267\u884c\u7684\u6027\u80fd\u6d4b\u8bd5\u3002
    • \u62a5\u544a\uff1a\u5c55\u793a\u6700\u8fd1 5 \u6b21\u6267\u884c\u7684\u6027\u80fd\u6d4b\u8bd5\u6240\u751f\u6210\u7684\u62a5\u544a\u3002
    • \u6d4b\u8bd5\u65e5\u5386\uff1a\u6309\u65f6\u95f4\u7ef4\u5ea6\u5c55\u793a\u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u7684\u9891\u6b21\uff0c\u989c\u8272\u8d8a\u6df1\uff0c\u4ee3\u8868\u4f7f\u7528\u9891\u6b21\u8d8a\u9ad8\u3002

    "},{"location":"user_manual/load_test/intro/","title":"\u6982\u8ff0","text":"

    \u6027\u80fd\u6d4b\u8bd5\u7684\u9996\u9875\u4e3b\u8981\u7528\u4e8e\u5c55\u793a\u73b0\u6709\u9879\u76ee\u7684\u6d4b\u8bd5\u5217\u8868\u3001\u62a5\u544a\u3001\u6d4b\u8bd5\u65e5\u5386\u3001\u8fd0\u884c\u4e2d\u7684\u4efb\u52a1\u3002

    • \u6d4b\u8bd5\uff1a\u5c55\u793a\u6700\u8fd1 5 \u6b21\u6267\u884c\u7684\u6027\u80fd\u6d4b\u8bd5\u3002
    • \u62a5\u544a\uff1a\u5c55\u793a\u6700\u8fd1 5 \u6b21\u6267\u884c\u7684\u6027\u80fd\u6d4b\u8bd5\u6240\u751f\u6210\u7684\u62a5\u544a\u3002
    • \u6d4b\u8bd5\u65e5\u5386\uff1a\u6309\u65f6\u95f4\u7ef4\u5ea6\u5c55\u793a\u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u7684\u9891\u6b21\uff0c\u989c\u8272\u8d8a\u6df1\uff0c\u4ee3\u8868\u4f7f\u7528\u9891\u6b21\u8d8a\u9ad8\u3002

    \u3002

    "},{"location":"user_manual/load_test/load_test/","title":"\u6027\u80fd\u6d4b\u8bd5","text":"

    MeterSphere \u6027\u80fd\u6d4b\u8bd5\u6a21\u5757\u652f\u6301\u7528\u6237\u901a\u8fc7\u5df2\u6709\u7684\u63a5\u53e3\u6d4b\u8bd5\u521b\u5efa\u6216\u76f4\u63a5\u4e0a\u4f20 JMX \u811a\u672c\u6765\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\uff0c\u5e76\u6309\u9700\u8c03\u6574\u5e76\u53d1\u7528\u6237\u6570\u7b49\u538b\u529b\u53c2\u6570\u3002

    "},{"location":"user_manual/load_test/load_test/#1","title":"1 \u521b\u5efa\u6d4b\u8bd5\u8d44\u6e90\u6c60","text":"

    \u901a\u8fc7\u5b89\u88c5\u5305\u5b89\u88c5 MeterSphere \u540e\uff0c\u7cfb\u7edf\u9ed8\u8ba4\u4f7f\u7528\u5f53\u524d\u8282\u70b9\u521b\u5efa\u4e86\u540d\u4e3a\u3010LOCAL\u3011\u6d4b\u8bd5\u8d44\u6e90\u6c60\u3002\u5173\u4e8e\u6d4b\u8bd5\u8d44\u6e90\u6c60\u7684\u4f5c\u7528\u8bf7\u53c2\u8003 FAQ\u3002 \u5982\u679c\u9700\u8981\u521b\u5efa\u65b0\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\uff0c\u6216\u5411\u5df2\u6709\u8d44\u6e90\u6c60\u4e2d\u6dfb\u52a0\u8282\u70b9\uff0c\u8bf7\u53c2\u8003 \u5982\u4f55\u5411\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u6dfb\u52a0\u8282\u70b9\uff1f\u3002

    "},{"location":"user_manual/load_test/load_test/#2-url","title":"2 \u4fee\u6539\u5f53\u524d\u7ad9\u70b9 URL","text":"

    \u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u8fc7\u7a0b\u4e2d node-controller \u8282\u70b9\u9700\u8981\u901a\u8fc7\u914d\u7f6e\u7684\u3010\u5f53\u524d\u7ad9\u70b9URL\u3011\u4e0b\u8f7d JMX \u7b49\u6d4b\u8bd5\u8d44\u6e90\u6587\u4ef6\u3002\u5728\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u524d\u9700\u8981\u914d\u7f6e\u5e76\u68c0\u67e5\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u7684\u8282\u70b9\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u5230\u8be5 URL\uff0cURL \u503c\u4e00\u822c\u4e3a\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee MeterSphere \u7684\u5730\u5740\u3002

    "},{"location":"user_manual/load_test/load_test/#3","title":"3 \u521b\u5efa\u6027\u80fd\u6d4b\u8bd5","text":"

    \u8fdb\u5165\u3010\u6027\u80fd\u6d4b\u8bd5-\u6d4b\u8bd5\u3011\u9875\u9762\uff0c\u53ef\u9009\u62e9\u7248\u672c\u7ba1\u7406 (X-Pack)\u3002

    \u70b9\u51fb\u3010\u521b\u5efa\u6d4b\u8bd5\u3011\u8fdb\u5165\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u521b\u5efa\u9875\u9762\uff0c\u6216\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u8fdb\u5165\u6027\u80fd\u6d4b\u8bd5\u8be6\u60c5\u9875\uff0c\u5176\u754c\u9762\u5305\u542b\u591a\u4e2a\u9875\u7b7e\uff1a\u3010\u573a\u666f\u914d\u7f6e\u3011\u3001\u3010\u538b\u529b\u914d\u7f6e\u3011\u3001\u3010\u9ad8\u7ea7\u914d\u7f6e\u3011\u7b49\u3002

    "},{"location":"user_manual/load_test/load_test/#4","title":"4 \u573a\u666f\u914d\u7f6e","text":"

    \u573a\u666f\u914d\u7f6e\u9700\u8981\u586b\u5199\u5185\u5bb9\u5305\u62ec\u6d4b\u8bd5\u540d\u79f0\u3001\u4e0a\u4f20\u6d4b\u8bd5\u811a\u672c\u6216\u5f15\u7528\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u3001\u4e0a\u4f20\u5176\u4ed6\u6027\u80fd\u6d4b\u8bd5\u8f85\u52a9\u6587\u4ef6\uff08jar \u5305\u3001cvs\u3001excel\u3001word\u3001pdf \u7b49\u6587\u4ef6\uff09\u3002 \u6027\u80fd\u6d4b\u8bd5\u811a\u672c\u652f\u6301\u5bfc\u5165 JMeter JMX\u6d4b\u8bd5\u8ba1\u5212\uff0c\u8fd8\u652f\u6301\u57fa\u4e8e\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u811a\u672c\u548c\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u4e00\u952e\u8f6c\u6027\u80fd\u6d4b\u8bd5\u3002

    • \u52a0\u8f7d\u6027\u80fd\u6d4b\u8bd5\u811a\u672c\uff1a\u5728\u3010\u573a\u666f\u5217\u8868\u3011\u4e2d\u70b9\u51fb\u3010\u5f15\u7528\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u3011\uff0c\u5c06\u5df2\u6709\u7684\u63a5\u53e3\u81ea\u52a8\u5316\u573a\u666f\u6dfb\u52a0\u5230\u6027\u80fd\u6d4b\u8bd5\u4e2d\uff0c\u6216\u8005\u70b9\u51fb\u3010\u52a0\u8f7dJMX\u6587\u4ef6\u3011\u5c06JMeter\u811a\u672c\u76f4\u63a5\u5bfc\u5165\u5230\u6027\u80fd\u4e2d\u3002

    • \u7ebf\u7a0b\u7ec4\uff1a\u652f\u6301\u4e24\u79cd\u6a21\u5f0f\uff1a\u7ebf\u6027\u52a0\u538b\u6a21\u5f0f ThreadGroup\u548c\u9636\u68af\u52a0\u538b\u6a21\u5f0f ConcurrencyThreadGroup\u3002

    • \u52a0\u8f7d\u8d44\u6e90\u6587\u4ef6\uff1a\u5982\u679c\u6d4b\u8bd5\u4e2d\u6709\u4f7f\u7528 CSV \u53c2\u6570\u5316\u6216\u8005\u81ea\u5b9a\u4e49 jar \u5305\uff0c\u53ef\u70b9\u51fb\u3010\u52a0\u8f7d\u6587\u4ef6\u3011\u5c06 CSV \u6587\u4ef6\u6216\u8005 jar \u6dfb\u52a0\u5230\u5e73\u53f0\u3002

    "},{"location":"user_manual/load_test/load_test/#5","title":"5 \u538b\u529b\u914d\u7f6e","text":"

    \u6bcf\u4e00\u4e2a\u6027\u80fd\u6d4b\u8bd5\u573a\u666f\u811a\u672c\u90fd\u53ef\u4ee5\u5404\u81ea\u5206\u522b\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5\u538b\u529b\u8bbe\u7f6e\uff1a\u5e76\u53d1\u6570\u91cf\u3001\u538b\u6d4b\u65f6\u957f\u3001RPS \u4e0a\u9650\uff08\u6307\u7684\u662f\u540c\u4e00\u65f6\u523b\u6700\u9ad8\u7684\u5e76\u53d1\u6570\u91cf\uff09\u7b49\u914d\u7f6e\uff0c\u540c\u65f6\u53f3\u4fa7\u7edf\u8ba1\u56fe\u4f1a\u6839\u636e\u5de6\u4fa7\u7684\u8bbe\u7f6e\u5b9e\u65f6\u663e\u793a\u6bcf\u4e2a\u573a\u666f\u914d\u7f6e\u8d70\u52bf\u56fe\u3002\u70b9\u51fb\u3010\u538b\u529b\u914d\u7f6e\u3011\u8bbe\u7f6e\u538b\u6d4b\u57fa\u672c\u7684\u6d4b\u8bd5\u6570\u636e

    • \u8d44\u6e90\u6c60\uff1a\u6307\u5b9a\u6d4b\u8bd5\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\uff0c\u7cfb\u7edf\u652f\u6301\u72ec\u7acb\u4e3b\u673a\u548c K8s \u8d44\u6e90\u6c60\u914d\u7f6e\uff0c\u5176\u53ef\u7528\u8d44\u6e90\u6c60\u4f9d\u636e\u7cfb\u7edf\u7684\u8d44\u6e90\u6c60\u914d\u7f6e\u3002

    • \u6267\u884c\u987a\u5e8f\uff1a\u573a\u666f\u662f\u5426\u987a\u5e8f\u6267\u884c\uff1a\u56e0\u4e3a\u7cfb\u7edf\u652f\u6301\u591a\u573a\u666f\u7ec4\u5408\u538b\u6d4b\uff0c\u5bf9\u4e8e\u6709\u4e9b\u573a\u666f\u662f\u6709\u987a\u5e8f\u8981\u6c42\u7684\uff0c\u6b64\u9700\u8981\u628a\u5f00\u5173\u6253\u5f00\uff0c\u53ef\u4ee5\u907f\u514d\u811a\u672c 1 \u6ca1\u8dd1\u5b8c\uff0c\u811a\u672c 2 \u5c31\u542f\u52a8\u4e86\u3002

    • \u81ea\u52a8\u505c\u6b62\u5f00\u5173\uff1a\u8bbe\u7f6e\u6b64\u5f00\u5173\u5f00\u542f\u65f6\uff0c\u9700\u8981\u6307\u5b9a\u538b\u6d4b\u591a\u4e45\u540e\uff0c\u5f3a\u5236\u505c\u6b62\u6d4b\u8bd5\u3002

    • \u5e76\u53d1\u6570\uff1a\u6a21\u62df\u4e00\u5b9a\u6570\u91cf\u7528\u6237\u64cd\u4f5c\u7684\u4e00\u4e2a\u914d\u7f6e\u3002
    • \u53d6\u6837\u5668\u9519\u8bef\u540e\u7eed\u6267\u884c\u52a8\u4f5c\uff1a\u53d6\u6837\u5668\u9519\u8bef\u540e\uff0c\u63d0\u4f9b\u591a\u79cd\u5904\u7406\u65b9\u5f0f\u3002\u6bcf\u79cd\u65b9\u5f0f\u4f5c\u7528\u4ecb\u7ecd\u5982\u4e0b\uff1a
    • \u3010\u7ee7\u7eed\u3011\uff1a\u5ffd\u7565\u9519\u8bef\uff0c\u7ee7\u7eed\u6267\u884c\u3002
    • \u3010\u542f\u52a8\u4e0b\u4e00\u6b21\u5faa\u73af\u3011\uff1a\u5ffd\u7565\u9519\u8bef\uff0c\u7ebf\u7a0b\u5f53\u524d\u5faa\u73af\u7ec8\u6b62\uff0c\u6267\u884c\u4e0b\u4e00\u4e2a\u5faa\u73af\u3002
    • \u3010\u505c\u6b62\u7ebf\u7a0b\u3011\uff1a\u5f53\u524d\u7ebf\u7a0b\u505c\u6b62\u6267\u884c\uff0c\u4e0d\u5f71\u54cd\u5176\u4ed6\u7ebf\u7a0b\u6b63\u5e38\u6267\u884c\u3002
    • \u3010\u505c\u6b62\u6d4b\u8bd5\u3011\uff1a\u6574\u4e2a\u6d4b\u8bd5\u4f1a\u5728\u6240\u6709\u5f53\u524d\u6b63\u5728\u6267\u884c\u7684\u7ebf\u7a0b\u6267\u884c\u5b8c\u6bd5\u540e\u505c\u6b62\u3002
    • \u3010\u7acb\u5373\u505c\u6b62\u6d4b\u8bd5\u3011\uff1a\u6574\u4e2a\u6d4b\u8bd5\u4f1a\u7acb\u5373\u505c\u6b62\u6267\u884c\uff0c\u5f53\u524d\u6b63\u5728\u6267\u884c\u7684\u53d6\u6837\u5668\u53ef\u80fd\u4f1a\u88ab\u4e2d\u65ad\u3002

    • \u6267\u884c\u65b9\u5f0f\uff1a\u5982\u679c\u8bbe\u7f6e\u672c\u6b21\u538b\u6d4b\u9700\u8981\u6301\u7eed\u6267\u884c\u591a\u957f\u65f6\u95f4\uff0c\u538b\u6d4b\u8fd0\u884c\u65f6\u957f\u8fbe\u5230\u8bbe\u5b9a\u7684\u65f6\u95f4\u5c31\u505c\u6b62\u538b\u529b\u6d4b\u8bd5\u3002\u76ee\u524d\u7cfb\u7edf\u63d0\u4f9b\u6309\u5c0f\u65f6\u3001\u5206\u949f\u3001\u79d2\u6765\u8bbe\u7f6e\u3002\u8bbe\u7f6e\u672c\u6b21\u538b\u6d4b\u6267\u884c\u7684\u6b21\u6570\uff0c\u5e76\u4e14\u8bbe\u7f6e\u8fd0\u884c\u65f6\u95f4\uff0c\u538b\u6d4b\u8fd0\u884c\u6b21\u6570\u8fbe\u5230\u8bbe\u5b9a\u7684\u6b21\u6570\u6216\u8005\u5230\u8fbe\u8bbe\u7f6e\u8fd0\u884c\u7684\u65f6\u95f4\uff0c\u5c31\u505c\u6b62\u538b\u529b\u6d4b\u8bd5\u3002
    • \u3010\u6309\u6301\u7eed\u65f6\u95f4\u3011\uff1a\u8bbe\u7f6e\u672c\u6b21\u538b\u6d4b\u9700\u8981\u6301\u7eed\u6267\u884c\u591a\u957f\u65f6\u95f4\uff0c\u538b\u6d4b\u8fd0\u884c\u65f6\u957f\u8fbe\u5230\u8bbe\u5b9a\u7684\u65f6\u95f4\u5c31\u505c\u6b62\u538b\u529b\u6d4b\u8bd5\u3002\u76ee\u524d\u7cfb\u7edf\u63d0\u4f9b\u6309\u5c0f\u65f6\u3001\u5206\u949f\u3001\u79d2\u6765\u8bbe\u7f6e\u3002
    • \u3010\u6309\u8fed\u4ee3\u6b21\u6570\u3011\uff1a\u8bbe\u7f6e\u672c\u6b21\u538b\u6d4b\u6267\u884c\u7684\u6b21\u6570\uff0c\u5e76\u4e14\u8bbe\u7f6e\u8fd0\u884c\u65f6\u95f4\uff0c\u538b\u6d4b\u8fd0\u884c\u6b21\u6570\u8fbe\u5230\u8bbe\u5b9a\u7684\u6b21\u6570\u6216\u8005\u5230\u8fbe\u8bbe\u7f6e\u8fd0\u884c\u7684\u65f6\u95f4\uff0c\u5c31\u505c\u6b62\u538b\u529b\u6d4b\u8bd5\u3002

    • RPS\u8bbe\u7f6e\uff1a\u8bbe\u7f6e RPS \u65f6\uff0c\u9700\u8981\u5148\u6253\u5f00 RPS \u5f00\u5173\u624d\u53ef\u4ee5\uff0cRPS\uff08Requests per second\uff09\uff1a\u6bcf\u79d2\u8bf7\u6c42\u6570\u3002 \u5982\u679c\u8bbe\u7f6e\u4e86 RPS \u4e0a\u9650\uff0c\u5219\u53d1\u538b\u8fbe\u5230\u8fd9\u4e2a\u503c\u540e\uff0c\u5c31\u4e0d\u4f1a\u518d\u7ee7\u7eed\u52a0\u538b\u3002

    • Ramp-Up\u8bbe\u7f6e\uff1a\u662f\u5e76\u53d1\u7528\u6237\u6570\u5230\u8fbe\u6307\u5b9a\u4e2a\u6570\u6240\u82b1\u8d39\u7684\u65f6\u95f4\uff0cStep \u662f\u5206\u51e0\u6b65\u8fbe\u5230\u3002

    • \u5206\u914d\u7b56\u7565\uff1a\u9488\u5bf9\u6709\u591a\u4e2a\u8282\u70b9\u7684\u8d44\u6e90\u6c60\uff0cMeterSphere \u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u8bbe\u7f6e\u4e0d\u540c\u7684\u5206\u914d\u7b56\u7565\u3002\u76ee\u524d\u5206\u914d\u7b56\u7565\u652f\u6301\u81ea\u52a8\u5206\u914d\u3001\u56fa\u5b9a\u8282\u70b9\u3001\u4ee5\u53ca\u81ea\u5b9a\u4e49\u3002

    \uff081\uff09\u81ea\u52a8\u5206\u914d\uff1a\u7cfb\u7edf\u9ed8\u8ba4\u4e3a\u3010\u81ea\u52a8\u5206\u914d\u3011\uff0c\u5176\u6838\u5fc3\u903b\u8f91\u662f\u6309\u8d44\u6e90\u6c60\u8282\u70b9\u6700\u5927\u5e76\u53d1\u6570\u5360\u6bd4\u6bd4\u4f8b\u5206\u914d\uff0c\u6bd4\u5982\u3010\u6d4b\u8bd5\u8d44\u6e90\u6c60\u3011\u8bbe\u7f6e\u5982\u4e0b\u3002

    \uff082\uff09\u56fa\u5b9a\u8282\u70b9\uff1a\u5141\u8bb8\u7528\u6237\u6307\u5b9a\u538b\u6d4b\u4ec5\u4ec5\u5728\u67d0\u4e00\u4e2a\u8282\u70b9\u4e0a\u6267\u884c\u3002

    \uff083\uff09\u81ea\u5b9a\u4e49\uff1a\u652f\u6301\u7528\u6237\u6839\u636e\u9700\u8981\u81ea\u5b9a\u4e49\u6bcf\u4e2a\u8282\u70b9\u6267\u884c\u5206\u914d\u5360\u6bd4\u7684\u60c5\u51b5\u3002

    "},{"location":"user_manual/load_test/load_test/#6","title":"6 \u9ad8\u7ea7\u914d\u7f6e","text":"

    \u8fdb\u5165\u6027\u80fd\u6d4b\u8bd5\u811a\u672c\u7f16\u8f91\u9875\u9762\uff0c\u9009\u62e9\u3010\u9ad8\u7ea7\u914d\u7f6e\u3011\uff0c\u8fdb\u5165\u6027\u80fd\u6d4b\u8bd5\u9ad8\u7ea7\u914d\u7f6e\u9875\u9762\u3002\u9ad8\u7ea7\u8bbe\u7f6e\u5206\u4e3a\u591a\u90e8\u5206\uff1a\u5e38\u89c4\u3001\u57df\u540d\u7ed1\u5b9a\u3001CSVDataSet\u3001\u81ea\u5b9a\u4e49\u53d8\u91cf\u3001JMeter Properties\u3001System Properties\u3001\u76d1\u63a7\u7b49\u3002

    • \u5e38\u89c4\uff1a\u8fdb\u5165\u3010\u9ad8\u7ea7\u914d\u7f6e\u3011\u9875\u9762\uff0c\u6700\u4e0a\u9762\u7684\u8bbe\u7f6e\u53ef\u7406\u89e3\u4e3a\u5e38\u89c4\u4fe1\u606f\u8bbe\u7f6e\u90e8\u5206\uff0c\u6b64\u5305\u542b\u8bbe\u7f6e\u6d4b\u8bd5\u811a\u672c\u7684\u8fde\u63a5\u8d85\u65f6\u65f6\u95f4\u548c HTTP \u54cd\u5e94\u7801\u7b49\u4fe1\u606f\u3002\u4e0b\u9762\u4ecb\u7ecd\u90e8\u5206\u53c2\u6570\u4fe1\u606f\u3002

    • \u8d85\u65f6\u914d\u7f6e\uff1a\u8fde\u63a5\u8d85\u65f6\u662f\u8fde\u63a5\u65f6\u8d85\u8fc7\u8bbe\u7f6e\u7684\u65f6\u95f4\u5c31\u4e0d\u5728\u8fde\u63a5\uff0c\u54cd\u5e94\u8d85\u65f6\u662f\u7b49\u5f85\u54cd\u5e94\u65f6\u8d85\u8fc7\u8bbe\u7f6e\u7684\u65f6\u95f4\u5c31\u4e0d\u5728\u7b49\u5f85\u54cd\u5e94\u3002

    • \u805a\u5408\u65f6\u95f4\uff1a\u8868\u793a\u62a5\u544a\u91c7\u96c6\u65f6\u95f4\u4e5f\u53eb\u6253\u70b9\u65f6\u95f4\uff0c\u662f\u6307\u6d4b\u8bd5\u62a5\u544a\u5237\u65b0\u6570\u636e\u65f6\u95f4\u3002\u628a\u9f20\u6807\u653e\u5728\u3010\u805a\u5408\u65f6\u95f4\u3011\u540e\u7684\u3010i\u3011\u6309\u94ae\u4e0a\uff0c\u53ef\u4ee5\u770b\u5230\u7cfb\u7edf\u9ed8\u8ba4\u63d0\u4f9b\u4fe1\u606f\u8bf4\u660e\u3002

    • \u81ea\u5b9a\u4e49\u54cd\u5e94\uff1a\u8868\u793a\u6307\u5728\u8fd9\u91cc\u8bbe\u7f6e\u7684\u54cd\u5e94\u7801\uff0c\u5c31\u4e0d\u7edf\u8ba1\u4e3a\u5931\u8d25\u7684\u63a5\u53e3\u3002\u7cfb\u7edf\u652f\u6301\u6dfb\u52a0\u591a\u4e2a\u54cd\u5e94\u7801\uff0c\u6309\u9017\u53f7\u5206\u5272\u3002

    • \u57df\u540d\u7ed1\u5b9a\uff1a\u4f7f\u7528 JMeter \u7684\u65f6\u5019\u4f1a\u6d89\u53ca\u5230\u4f7f\u7528\u57df\u540d\u7684\u60c5\u51b5\uff0c\u4e3a\u4e86\u4f7f\u811a\u672c\u66f4\u5177\u6709\u901a\u7528\u6027\uff0c\u4ee5\u53ca\u53d1\u9001\u7ed9\u5176\u4ed6\u4eba\u65f6\uff0c\u811a\u672c\u4e00\u6837\u53ef\u4ee5\u76f4\u63a5\u8fd0\u884c\uff0c\u6545\u9700\u8981\u5728\u8fd0\u884c\u811a\u672c\u4e2d\u6dfb\u52a0 hosts \u5185\u5bb9\uff0c\u76f4\u63a5\u4ece JMeter \u4e2d\u83b7\u53d6\u3002

    • CSVDataSet\uff1a\u6027\u80fd\u6d4b\u8bd5\u65f6\u6240\u9700\u8981\u7684\u53c2\u6570\u6570\u636e\u6587\u4ef6\uff0c\u5982\u679c\u6240\u6709\u573a\u666f\u4f7f\u7528\u4e00\u4e2a\u7edf\u4e00\u7684\u53c2\u6570\u6587\u4ef6\uff0c\u4e3a\u4e86\u907f\u514d\u76f8\u540c\u7684\u53c2\u6570\u88ab\u4e0d\u540c\u7684\u573a\u666f\u5f15\u7528\u9020\u6210\u6d41\u7a0b\u5f02\u5e38\u3002\u7cfb\u7edf\u4f1a\u6839\u636e\u538b\u6d4b\u7b56\u7565\u81ea\u52a8\u6765\u5206\u5272 CSV \u6570\u636e\u6587\u4ef6\u91cc\u7684\u53c2\u6570\uff0c\u628a\u4e0d\u540c\u7684\u53c2\u6570\u5206\u914d\u7ed9\u4e0d\u540c\u7684\u4e1a\u52a1\u573a\u666f\u3002

    • \u81ea\u5b9a\u4e49\u53d8\u91cf\uff1a\u7cfb\u7edf\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u6027\u80fd\u6d4b\u8bd5\u811a\u672c\u91cc\u6240\u9700\u7684\u53d8\u91cf\u3002\u4e0d\u4f7f\u7528\u65f6\uff0c\u53ef\u4ee5\u5173\u95ed\u542f\u7528\u5f00\u5173\u3002

    • JMeter Properties\uff1a\u7cfb\u7edf\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u9700\u8981\u5173\u6ce8\u6216\u4f7f\u7528\u7684\u4efb\u4f55 JMeter Properties \u4fe1\u606f\u3002

    • System Properties\uff1a\u5982\u679c\u6027\u80fd\u6d4b\u8bd5\u6709\u7528\u5230\u8bc1\u4e66\uff0c\u9664\u4e86\u8981\u5728\u8d44\u6e90\u6587\u4ef6\u91cc\u6dfb\u52a0\u5916\uff0c\u8fd8\u8981\u5728 System_Properties \u91cc\u8fdb\u884c\u914d\u7f6e\u3002

    • \u76d1\u63a7\uff1a\u7cfb\u7edf\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u914d\u7f6e\u9700\u8981\u5173\u6ce8\u4efb\u4f55\u53d1\u538b\u7aef\u548c\u88ab\u6d4b\u670d\u52a1\u7684\u6d4b\u8bd5\u5b9e\u65f6\u76d1\u63a7\uff0c\u76ee\u524d\u5bf9\u4e8e\u88ab\u76d1\u63a7\u7cfb\u7edf\u9700\u8981\u5b89\u88c5 Prometheus \u7684\u76d1\u63a7\u63d2\u4ef6 node_export \u5e76\u542f\u52a8\u670d\u52a1\u3002

    • \u76d1\u63a7\u914d\u7f6e\uff1a\u70b9\u51fb\u3010\u9ad8\u7ea7\u914d\u7f6e-\u76d1\u63a7-\u6dfb\u52a0\u3011\uff0c\u53ef\u4ee5\u6307\u5b9a\u8981\u76d1\u63a7\u7684\u670d\u52a1\u5668\u6216\u538b\u6d4b\u8282\u70b9\uff0c\u8bbe\u7f6e\u8981\u76d1\u63a7\u7cfb\u7edf\u7684\u76f8\u5173\u4fe1\u606f\u3002\u70b9\u51fb\u3010\u786e\u8ba4\u3011\u5b8c\u6210\u8bbe\u7f6e\u3002

    "},{"location":"user_manual/load_test/load_test/#7","title":"7 \u6027\u80fd\u6d4b\u8bd5\u7ef4\u62a4\u7ba1\u7406","text":"
    • \u4fdd\u5b58\u548c\u6267\u884c\uff1a\u5b8c\u6210\u6027\u80fd\u6d4b\u8bd5\u4ee5\u4e0a\u7684\u76f8\u5173\u914d\u7f6e\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5b8c\u6210\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u7684\u521b\u5efa\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u5e76\u6267\u884c\u3011\u7cfb\u7edf\u4f1a\u5728\u4fdd\u5b58\u540e\uff0c\u76f4\u63a5\u8fd0\u884c\u8be5\u6027\u80fd\u6d4b\u8bd5\u3002
    • \u6027\u80fd\u5217\u8868\uff1a\u5728\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u4e2d\u53ef\u67e5\u770b\u5230\u521b\u5efa\u7684\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u6267\u884c\u3011\u3001\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u548c\u3010\u5220\u9664\u3011\u53ef\u5bf9\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u8fdb\u884c\u76f8\u5e94\u7684\u64cd\u4f5c\u3002
    • \u5b9a\u65f6\u4efb\u52a1\uff1a\u70b9\u51fb\u3010\u5b9a\u65f6\u4efb\u52a1\u3011\u53ef\u8bbe\u7f6e\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u7684\u5b9a\u65f6\u4efb\u52a1\u3002

    \u914d\u7f6e\u5b9a\u65f6\u4efb\u52a1\u5e76\u5f00\u542f\uff1a

    \u914d\u7f6e\u5b9a\u65f6\u4efb\u52a1\u901a\u77e5\uff1a

    • \u6027\u80fd\u6d4b\u8bd5\u6267\u884c\uff1a\u70b9\u51fb\u3010\u4fdd\u5b58\u5e76\u6267\u884c\u3011\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5\u7684\u6267\u884c\uff0c\u6267\u884c\u5b8c\u6210\u540e\u53ef\u5b9e\u65f6\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\uff0c\u5728\u6d4b\u8bd5\u62a5\u544a\u4e2d\u53ef\u70b9\u51fb\u3010\u7acb\u5373\u505c\u6b62\u3011\u7ec8\u6b62\u6027\u80fd\u6d4b\u8bd5\uff0c\u53ef\u70b9\u51fb\u3010\u518d\u6b21\u6267\u884c\u3011\u3001\u3010\u5bfc\u51fa\u62a5\u544a\u3011\u548c\u3010\u4e0b\u8f7dJTL\u3011\u7b49\u64cd\u4f5c\u529f\u80fd\uff0c\u5bf9\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u548c\u62a5\u544a\u8fdb\u884c\u76f8\u5e94\u7684\u64cd\u4f5c\u3002

    • \u53d8\u66f4\u8bb0\u5f55\uff1a\u5728\u6027\u80fd\u6d4b\u8bd5\u811a\u672c\u4e2d\u4e5f\u53ef\u4ee5\u67e5\u770b\u3010\u53d8\u66f4\u8bb0\u5f55\u3011\u3002

    • \u7248\u672c\u7ba1\u7406 (X-Pack)\uff1a\u6027\u80fd\u6d4b\u8bd5\u811a\u672c\u4e2d\u4e5f\u53ef\u4ee5\u8fdb\u884c\u3010\u7248\u672c\u7ba1\u7406\u3011\u3002

    • \u540c\u6b65\u53d8\u66f4\u573a\u666f\u6d4b\u8bd5\uff1a\u5f53\u6027\u80fd\u6d4b\u8bd5\u573a\u666f\u6709\u66f4\u65b0\u65f6\uff0c\u5728\u6027\u80fd\u6d4b\u8bd5\u9875\u9762\u53ef\u70b9\u51fb\u3010\u540c\u6b65\u53d8\u66f4\u573a\u666f\u6d4b\u8bd5\u3011\u6309\u94ae\u8fdb\u884c\u540c\u6b65\u66f4\u65b0\u3002

    "},{"location":"user_manual/load_test/test_report/","title":"\u6027\u80fd\u6d4b\u8bd5\u62a5\u544a","text":""},{"location":"user_manual/load_test/test_report/#1","title":"1 \u62a5\u544a","text":"

    \u5bf9\u4e8e\u6027\u80fd\u6d4b\u8bd5\u63d0\u4f9b\u4e86\u4e0d\u540c\u7684\u7ba1\u7406\u529f\u80fd\uff0c\u5982\uff1a - \u3010\u7acb\u5373\u505c\u6b62\u3011\uff1a\u5bf9\u8fdb\u884c\u4e2d\u7684\u6027\u80fd\u6d4b\u8bd5\uff0c\u53ef\u4ee5\u624b\u52a8\u8fdb\u884c\u505c\u6b62\u6267\u884c\u3002 - \u3010\u518d\u6b21\u6267\u884c\u3011\uff1a\u518d\u6b21\u6267\u884c\u8be5\u6027\u80fd\u6d4b\u8bd5\u3002 - \u3010\u5bfc\u51fa\u62a5\u544a\u3011\uff1a\u53ef\u5c06\u62a5\u544a\u8fdb\u884c\u5bfc\u51fa\u6210 PDF\u3002 - \u3010\u62a5\u544a\u5bf9\u6bd4\u3011\uff1a\u53ef\u5bf9\u8fd1\u51e0\u6b21\u6d4b\u8bd5\u62a5\u544a\u8fdb\u884c\u6bd4\u5bf9\u3002 - \u3010\u4e0b\u8f7d JTL\u3011\uff1a\u53ef\u4e0b\u8f7d JTL \u6587\u4ef6\u3002 - \u3010\u4e0b\u8f7d\u6267\u884c\u6587\u4ef6\u3011\uff1a\u53ef\u4e0b\u8f7d\u6267\u884c\u6587\u4ef6(\u5305\u62ec JMX \u811a\u672c\u3001Jar\u5305\u3001CSV\u6587\u4ef6)\u3002

    • \u67e5\u770b\u62a5\u544a:\u70b9\u51fb\u6027\u80fd\u6d4b\u8bd5\u914d\u7f6e\u9875\u9762\u7684\u3010\u4fdd\u5b58\u5e76\u6267\u884c\u3011\u6309\u94ae\uff0c\u7cfb\u7edf\u81ea\u52a8\u8fdb\u5165\u6027\u80fd\u6d4b\u8bd5\u6d4b\u8bd5\u62a5\u544a\u9875\u9762\u3002\u5f53\u6536\u5230\u6d4b\u8bd5\u7ed3\u679c\u6570\u636e\u540e\uff0c\u62a5\u544a\u9875\u9762\u5c06\u81ea\u52a8\u66f4\u65b0\u3002

    • \u6d4b\u8bd5\u6982\u89c8:\u8ba4\u8fdb\u5165\u6d4b\u8bd5\u62a5\u544a\uff0c\u5373\u4e3a\u6d4b\u8bd5\u6982\u89c8\u9875\u9762\uff0c\u53ef\u770b\u5230\u4e0d\u540c\u6307\u6807\u4e0b\u7684\u6d4b\u8bd5\u6570\u636e\u6c47\u603b\u60c5\u51b5\u3002

    • \u6d4b\u8bd5\u8be6\u60c5:\u7cfb\u7edf\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u5404\u79cd\u6d4b\u8bd5\u6307\u6807\uff0c\u5e76\u4e14\u6839\u636e\u7528\u6237\u81ea\u5b9a\u4e49\u7684\u6307\u6807\u52a8\u6001\u5b9e\u65f6\u751f\u6210\u6d4b\u8bd5\u62a5\u8868\u3002

    • \u8bf7\u6c42\u7edf\u8ba1:\u6027\u80fd\u6d4b\u8bd5\u6240\u6709\u8bf7\u6c42\u60c5\u51b5\u7684\u7edf\u8ba1\u548c\u5206\u6790\u3002

    • \u9519\u8bef\u8bb0\u5f55:\u5bf9\u6027\u80fd\u6d4b\u8bd5\u8fc7\u7a0b\u4e2d\u53d1\u751f\u7684\u6240\u6709\u7684\u9519\u8bef\u8bb0\u5f55\u7684\u7edf\u8ba1\u53ca\u5206\u6790\u3002

    • \u65e5\u5fd7\u8be6\u60c5:\u6bcf\u6b21\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u65f6\uff0c\u90fd\u4f1a\u8bb0\u5f55\u548c\u4fdd\u5b58\u672c\u6b21\u6267\u884c\u8fc7\u7a0b\u4e2d\u6240\u6709\u7684\u65e5\u5fd7\u60c5\u51b5\uff0c\u65b9\u4fbf\u6280\u672f\u4eba\u5458\u95ee\u9898\u7684\u67e5\u9605\u548c\u5b9a\u4f4d\u3002\u540c\u65f6\u53ef\u4ee5\u4e0b\u8f7d\u5b8c\u6574\u7684\u65e5\u5fd7\u4fe1\u606f\u3002

    • \u76d1\u63a7\u8be6\u60c5:\u5bf9\u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u65f6\uff0c\u8bbe\u7f6e\u7684\u6240\u6709\u76d1\u63a7\u4fe1\u606f\u7684\u76d1\u63a7\u6570\u636e\u3002\u540c\u65f6\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u9009\u62e9\u76d1\u63a7\u6307\u6807\uff0c\u6839\u636e\u4e0d\u540c\u7684\u6307\u6807\uff0c\u7cfb\u7edf\u4f1a\u5b9e\u65f6\u52a8\u6001\u751f\u6210\u76d1\u63a7\u62a5\u544a\u3002

    • \u6d4b\u8bd5\u914d\u7f6e:\u67e5\u770b\u6b64\u62a5\u544a\u5bf9\u5e94\u7684\u6bcf\u4e2a\u573a\u666f\u5bf9\u5e94\u7684\u538b\u529b\u914d\u7f6e\u60c5\u51b5\u3002\u70b9\u9009\u6bcf\u4e2a\u573a\u666f\u53ef\u4ee5\u67e5\u770b\u5404\u81ea\u7684\u538b\u529b\u914d\u7f6e\u3002

    • \u505c\u6b62\u6d4b\u8bd5:\u70b9\u51fb\u3010\u7acb\u5373\u505c\u6b62\u3011\u6309\u94ae\uff0c\u53ef\u624b\u52a8\u505c\u6b62\u6d4b\u8bd5\u3002

    • \u518d\u6b21\u6267\u884c:\u70b9\u51fb\u3010\u518d\u6b21\u6267\u884c\u3011\u6309\u94ae\uff0c\u53ef\u518d\u6b21\u6267\u884c\u6d4b\u8bd5\u3002

    • \u5bfc\u51fa\u62a5\u544a:\u70b9\u51fb\u3010\u5bfc\u51fa\u62a5\u544a\u3011\u6309\u94ae\uff0c\u53ef\u5c06\u672c\u6b21\u6d4b\u8bd5\u62a5\u544a\u5bfc\u51fa PDF \u6587\u4ef6\u3002

    • \u5206\u4eab\u62a5\u544a:\u70b9\u51fb\u3010\u5206\u4eab\u62a5\u544a\u3011\u6309\u94ae\uff0c\u7cfb\u7edf\u5373\u4f1a\u751f\u6210\u8be5\u62a5\u544a\u5bf9\u5e94\u7684\u94fe\u63a5\u3002\u63a5\u4e0b\u6765\uff0c\u70b9\u51fb\u3010\u590d\u5236\u3011\u6309\u94ae\u5c31\u53ef\u4ee5\u5206\u4eab\u7ed9\u9700\u8981\u67e5\u770b\u62a5\u544a\u7684\u7528\u6237\u3002

    \u6027\u80fd\u6d4b\u8bd5\u62a5\u544a\u7684\u94fe\u63a5\u6709\u6548\u65f6\u957f\u9ed8\u8ba4\u4e3a 24 \u5c0f\u65f6\uff0c\u7528\u6237\u53ef\u4ee5\u9009\u62e9\u3010\u9879\u76ee\u8bbe\u7f6e-\u66f4\u591a\u9009\u9879-\u5e94\u7528\u7ba1\u7406-\u6027\u80fd\u6d4b\u8bd5\u3011\uff0c\u6839\u636e\u9700\u8981\u81ea\u5b9a\u4e49\u8be5\u94fe\u63a5\u7684\u6709\u6548\u65f6\u957f\u3002

    • \u62a5\u544a\u5bf9\u6bd4\uff1a\u70b9\u51fb\u3010\u62a5\u544a\u5bf9\u6bd4\u3011\uff0c\u52fe\u9009\u8981\u5bf9\u6bd4\u7684\u62a5\u544a\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5373\u53ef\u3002

    • \u4e0b\u8f7dJTL\u6587\u4ef6\uff1a\u70b9\u51fb\u3010\u4e0b\u8f7dJTL\u3011\uff0c\u53ef\u4e0b\u8f7d\u6d4b\u8bd5\u7ed3\u679c\u6587\u4ef6\uff0c\u652f\u6301\u5bfc\u51fa JTL \u6587\u4ef6\u7528\u4ee5\u751f\u6210 JMeter \u81ea\u5b9a\u4e49\u62a5\u8868\u3002

    • \u4e0b\u8f7d\u6267\u884c\u6587\u4ef6\uff1a\u70b9\u51fb\u3010\u4e0b\u8f7d\u6267\u884c\u6587\u4ef6\u3011\uff0c\u53ef\u4e0b\u8f7d\u6d4b\u8bd5 JMX \u811a\u672c\u914d\u7f6e\u6587\u4ef6(\u5305\u62ec Jar\u5305\u3001CSV\u6587\u4ef6\u7b49)\u3002

    "},{"location":"user_manual/load_test/test_report/#2","title":"2 \u6d4b\u8bd5\u62a5\u544a\u7ba1\u7406","text":"

    \u70b9\u51fb\u3010\u62a5\u544a\u3011\u53ef\u8fdb\u5165\u6d4b\u8bd5\u62a5\u544a\u5217\u8868\uff0c\u53ef\u67e5\u770b\u3001\u5bf9\u6bd4\u3001\u5220\u9664\u62a5\u544a\u3002

    • \u62a5\u544a\u8be6\u60c5\uff1a\u70b9\u51fb\u3010\u62a5\u544a\u8be6\u60c5\u3011\u53ef\u67e5\u770b\u62a5\u544a\u3002

    • \u5bf9\u6bd4\uff1a\u70b9\u51fb\u3010\u5bf9\u6bd4\u3011\u53ef\u8fdb\u884c\u591a\u62a5\u544a\u6570\u636e\u5bf9\u6bd4\u3002

    • \u5220\u9664\uff1a\u70b9\u51fb\u3010\u5220\u9664\u3011\u53ef\u5220\u9664\u62a5\u544a\u3002

    • \u6279\u91cf\u5220\u9664\uff1a\u9009\u4e2d\u591a\u4efd\u62a5\u544a\uff0c\u70b9\u51fb\u3010\u6279\u91cf\u5220\u9664\u62a5\u544a\u3011\u53ef\u5220\u9664\u62a5\u544a\u3002

    "},{"location":"user_manual/my_desk/attention/","title":"\u6211\u7684\u5173\u6ce8","text":"

    \u8f93\u5165\u9879\u76ee\u540d\u79f0\u53ef\u641c\u7d22\u5230\u9879\u76ee\uff0c\u9009\u4e2d\u9879\u76ee\uff0c\u5207\u6362\u5230\u5bf9\u5e94\u7684\u83dc\u5355\uff0c\u4e0b\u65b9\u5217\u8868\u4e5f\u4e0e\u4e4b\u5bf9\u5e94\u3002\u53ef\u5207\u6362\u5230\u4efb\u610f\u83dc\u5355\uff0c\u4e0b\u65b9\u5217\u8868\u5c31\u663e\u793a\u5bf9\u5e94\u5185\u5bb9\u3002\u9ed8\u8ba4\u3010\u529f\u80fd\u7528\u4f8b\u3011\uff0c\u9009\u62e9\u5f53\u524d\u7248\u672c\u53f7\uff0c\u70b9\u51fb\u5217\u8868\u4efb\u4e00\u6570\u636e\uff0c\u4f1a\u8df3\u8f6c\u5230\u5bf9\u5e94\u7684\u9875\u9762\u67e5\u770b\u8be6\u7ec6\u60c5\u51b5\u3002

    "},{"location":"user_manual/my_desk/created/","title":"\u6211\u521b\u5efa\u7684","text":"

    \u8f93\u5165\u9879\u76ee\u540d\u79f0\u53ef\u641c\u7d22\u5230\u9879\u76ee\uff0c\u9009\u4e2d\u9879\u76ee\uff0c\u5207\u6362\u5230\u5bf9\u5e94\u7684\u83dc\u5355\uff0c\u4e0b\u65b9\u5217\u8868\u4e5f\u4e0e\u4e4b\u5bf9\u5e94\u3002\u53ef\u5207\u6362\u5230\u4efb\u610f\u83dc\u5355\uff0c\u4e0b\u65b9\u5217\u8868\u5c31\u663e\u793a\u5bf9\u5e94\u5185\u5bb9\u3002\u9ed8\u8ba4\u3010\u529f\u80fd\u7528\u4f8b\u3011\uff0c\u9009\u62e9\u5f53\u524d\u7248\u672c\u53f7\uff0c\u70b9\u51fb\u5217\u8868\u4efb\u4e00\u6570\u636e\uff0c\u4f1a\u8df3\u8f6c\u5230\u5bf9\u5e94\u7684\u9875\u9762\u67e5\u770b\u8be6\u7ec6\u60c5\u51b5\u3002

    "},{"location":"user_manual/my_desk/dashboard/","title":"\u6211\u7684\u4eea\u8868\u76d8","text":"

    \u9875\u9762\u4e3b\u8981\u5c55\u793a\u3010\u6211\u7684\u5f85\u529e\u3011\u3001\u3010\u6211\u7684\u5173\u6ce8\u3011\u3001\u3010\u6211\u521b\u5efa\u7684\u7528\u4f8b\u3011\u3001\u3010\u6211\u521b\u5efa\u7684\u7f3a\u9677\u3011\u6a21\u5757\u7684\u7edf\u8ba1\u6570\u636e\u3002

    "},{"location":"user_manual/my_desk/dashboard/#1","title":"1 \u6211\u7684\u5f85\u529e","text":"

    \u5c55\u793a\u4e0d\u540c\u7c7b\u522b\u7684\u5f85\u529e\u6570\u636e\uff0c\u5982\u529f\u80fd\u7528\u4f8b\u3001\u6d4b\u8bd5\u8ba1\u5212\u3001\u7528\u4f8b\u8bc4\u5ba1\u3001\u7f3a\u9677\u7ba1\u7406\u3001\u63a5\u53e3\u5b9a\u4e49\u3001\u63a5\u53e3\u7528\u4f8b\u3001\u63a5\u53e3\u81ea\u52a8\u5316\u3001\u6027\u80fd\u6d4b\u8bd5\u7b49\uff0c\u70b9\u51fb\u5f85\u529e\u5217\u8868\u4e2d\u7684\u4e0d\u540c\u7c7b\u522b\uff0c\u4f1a\u8df3\u81f3\u76f8\u5e94\u7684\u9875\u9762\u3002

    "},{"location":"user_manual/my_desk/dashboard/#2","title":"2 \u6211\u7684\u5173\u6ce8","text":"

    \u5c55\u793a\u4e0d\u540c\u7c7b\u522b\u7684\u5173\u6ce8\uff0c\u5982\u529f\u80fd\u7528\u4f8b\u3001\u6d4b\u8bd5\u8ba1\u5212\u3001\u7528\u4f8b\u8bc4\u5ba1\u3001\u7f3a\u9677\u7ba1\u7406\u3001\u63a5\u53e3\u5b9a\u4e49\u3001\u63a5\u53e3\u7528\u4f8b\u3001\u63a5\u53e3\u81ea\u52a8\u5316\u3001\u6027\u80fd\u6d4b\u8bd5\u7b49\uff0c\u70b9\u51fb\u5173\u6ce8\u5217\u8868\u4e2d\u7684\u4e0d\u540c\u7c7b\u522b\uff0c\u4f1a\u8df3\u81f3\u76f8\u5e94\u7684\u9875\u9762\u3002

    "},{"location":"user_manual/my_desk/dashboard/#3","title":"3 \u6211\u521b\u5efa\u7684\u7528\u4f8b","text":"

    \u997c\u56fe\u5c55\u793a\u5404\u7c7b\u7528\u4f8b\u7684\u6570\u91cf\uff0c\u9f20\u6807\u60ac\u6d6e\u5728\u5404\u7c7b\u7528\u4f8b\u4e0a\uff0c\u4f1a\u663e\u793a\u8be5\u7c7b\u7528\u4f8b\u7684\u4e2a\u6570\u3002

    "},{"location":"user_manual/my_desk/dashboard/#4","title":"4 \u6211\u521b\u5efa\u7684\u7f3a\u9677","text":"

    \u997c\u56fe\u5c55\u793a\u5404\u7c7b\u7f3a\u9677\u7684\u4e2a\u6570\uff0c\u9f20\u6807\u60ac\u6d6e\u5728\u5404\u7c7b\u7f3a\u9677\u4e0a\uff0c\u4f1a\u663e\u793a\u8be5\u7c7b\u7f3a\u9677\u7684\u4e2a\u6570\u3002

    "},{"location":"user_manual/my_desk/todo/","title":"\u6211\u7684\u5f85\u529e","text":"

    \u53ef\u5207\u6362\u5230\u4efb\u610f\u83dc\u5355\uff0c\u4e0b\u65b9\u5217\u8868\u5c31\u663e\u793a\u5bf9\u5e94\u5185\u5bb9\u3002\u9ed8\u8ba4\u3010\u529f\u80fd\u7528\u4f8b\u3011\uff0c\u9009\u62e9\u5f53\u524d\u7248\u672c\u53f7\uff0c\u70b9\u51fb\u5217\u8868\u4efb\u4e00\u6570\u636e\uff0c\u4f1a\u8df3\u8f6c\u5230\u5bf9\u5e94\u7684\u9875\u9762\u67e5\u770b\u8be6\u7ec6\u60c5\u51b5\u3002

    "},{"location":"user_manual/my_desk/todo/#1","title":"1 \u5f85\u5b8c\u6210","text":"

    \u5728\u3010\u63a5\u53e3\u5b9a\u4e49\u3011\u3001\u3010\u63a5\u53e3\u7528\u4f8b\u3011\u3001\u3010\u63a5\u53e3\u81ea\u52a8\u5316\u3011Tab \u4e0b\u53ef\u4ee5\u5c55\u793a\u6240\u6709\u3010\u5f85\u5b8c\u6210\u3011\u7684\u63a5\u53e3\u6216\u8005\u7528\u4f8b\u5217\u8868\u3002

    "},{"location":"user_manual/my_desk/todo/#2","title":"2 \u5f85\u66f4\u65b0","text":"

    \u5df2\u5b58\u5728\u7684\u63a5\u53e3\uff0c\u4fee\u6539\u5730\u5740\u3001\u8bf7\u6c42\u5934\u3001\u8bf7\u6c42\u4f53\u7b49\u4fe1\u606f\uff0c\u70b9\u51fb\u4fdd\u5b58\u540e\uff0c\u672a\u8fdb\u884c\u3010\u540c\u6b65\u8bbe\u7f6e\u3011\u64cd\u4f5c\u3002

    \u540c\u6b65\u8bbe\u7f6e

    \u5373\u5728 API \u63a5\u53e3\u53d1\u751f\u53d8\u66f4\u5e76\u70b9\u51fb\u4fdd\u5b58\u540e\uff0c\u53ef\u52fe\u9009\u540c\u6b65\u8bbe\u7f6e Header\u3001QUERY\u53c2\u6570\u3001REST\u53c2\u6570\u7b49\u9009\u9879\uff0c\u52fe\u9009\u540e\uff0c\u4f1a\u540c\u6b65\u66f4\u65b0\u8be5 API \u5bf9\u5e94\u7684 CASE \u548c\u5f15\u7528\u8be5 API \u7684\u573a\u666f\u3002

    \u53ef\u5728\u3010\u5f85\u66f4\u65b0\u3011\u9875\u9762\u5217\u8868\u4e2d\u8fdb\u884c\u3010\u540c\u6b65\u3011\u6216\u3010\u5ffd\u7565\u3011\u64cd\u4f5c\u3002

    "},{"location":"user_manual/plugin_use/api_test_plugin/","title":"Api test plugin","text":"

    MeterSphere \u9664\u652f\u6301\u901a\u7528\u7684HTTP/HTTPS\u3001TCP\u3001SQL\u3001DUBBO\u534f\u8bae\u5916\uff0c\u8fd8\u53ef\u4ee5\u901a\u8fc7\u63d2\u4ef6\u7684\u65b9\u5f0f\u652f\u6301\u5176\u5b83\u6269\u5c55\u534f\u8bae\uff0c\u76ee\u524d\u4f01\u4e1a\u7248\u672c\u5df2\u652f\u6301\u7684\u6269\u5c55\u534f\u8bae\u5305\u62ec\uff1aWebSocket/MQTT/AMQP\u3002WebSocket/MQTT/AMQP \u7b49\u534f\u8bae\u63d2\u4ef6\u5305\u662f\u4f01\u4e1a\u7248\u529f\u80fd\uff0c\u4ec5\u5411\u4f01\u4e1a\u5ba2\u6237\u5f00\u653e\u3002 \u4e0b\u9762\u4ee5 WebSocket \u534f\u8bae\u4e3a\u4f8b\uff0c\u4ecb\u7ecd\u63a5\u53e3\u6d4b\u8bd5\u6269\u5c55\u63d2\u4ef6\u7684\u5b89\u88c5\u4ee5\u53ca\u4f7f\u7528\u3002

    "},{"location":"user_manual/plugin_use/api_test_plugin/#1","title":"1 \u63d2\u4ef6\u5b89\u88c5","text":"

    \u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u7cfb\u7edf\u3011-\u3010\u63d2\u4ef6\u7ba1\u7406\u3011\u754c\u9762\u4e0b\uff0c\u4e0a\u4f20 WebSocket \u63d2\u4ef6\u3002

    "},{"location":"user_manual/plugin_use/api_test_plugin/#2","title":"2 \u63d2\u4ef6\u4f7f\u7528","text":"

    \u5728\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011-\u3010\u63a5\u53e3\u81ea\u52a8\u5316\u3011\u754c\u9762\u4e0b\uff0c\u65b0\u5efa\u573a\u666f\uff0c\u70b9\u51fb\u573a\u666f\u53f3\u4e0b\u89d2\u3010+\u3011\u53f7\uff0c\u5373\u53ef\u6dfb\u52a0 WebSocket \u76f8\u5173\u8bf7\u6c42\u3002

    "},{"location":"user_manual/plugin_use/chrome_plugin/","title":"Chrome plugin","text":"

    \u8be5\u63d2\u4ef6\u4e3a MeterSphere \u914d\u5957\u7684\u6d4f\u89c8\u5668\u5f55\u5236\u63d2\u4ef6\uff0c\u8be5\u63d2\u4ef6\u53ef\u5c06\u7528\u6237\u5728 chrome \u6d4f\u89c8\u5668\u64cd\u4f5c\u65f6\u7684\u6240\u6709 HTTP \u8bf7\u6c42\u8bb0\u5f55\u4e0b\u6765\u5e76\u751f\u6210 JMX \u6587\u4ef6\uff08JMeter \u811a\u672c\u6587\u4ef6\uff09\uff0c\u5bfc\u5165 MeterSphere \u540e\u8fdb\u884c\u63a5\u53e3\u6d4b\u8bd5\u6216\u6027\u80fd\u6d4b\u8bd5\u3002

    "},{"location":"user_manual/plugin_use/chrome_plugin/#1","title":"1 \u63d2\u4ef6\u5b89\u88c5","text":"

    \u5728 MeterSphere chrome-extensions \u9879\u76ee\u4e2d\u4e0b\u8f7d\u6700\u65b0\u7684\u53d1\u5e03\u7248\u672c\uff0c\u4e0b\u8f7d\u5b8c\u6210\u540e\u8fdb\u884c\u89e3\u538b\uff0c\u7136\u540e\u5728\u8c37\u6b4c\u6d4f\u89c8\u5668\u8f93\u5165 chrome://extensions/ \u8fdb\u5165\u6269\u5c55\u7a0b\u5e8f\u5b89\u88c5\u754c\u9762\uff0c \u9009\u62e9\u3010\u52a0\u8f7d\u5df2\u89e3\u538b\u7684\u6269\u5c55\u7a0b\u5e8f\u3011\uff0c\u9009\u62e9\u63d2\u4ef6\u89e3\u538b\u540e\u7684\u76ee\u5f55\u8fdb\u884c\u5b89\u88c5\u3002

    "},{"location":"user_manual/plugin_use/chrome_plugin/#2","title":"2 \u4f7f\u7528\u8bf4\u660e","text":"

    \u5728 Chrome \u6d4f\u89c8\u5668\u4e2d\u70b9\u51fb\u6269\u5c55\u7a0b\u5e8f\u6309\u94ae\uff0c\u5e76\u9009\u62e9MeterSphere \u5f55\u5236\u63d2\u4ef6\u56fe\u6807\uff0c\u70b9\u51fb\u5f00\u59cb\u5f55\u5236\u6309\u94ae\u3002

    \u8bbf\u95ee\u9700\u8981\u8fdb\u884c\u5f55\u5236\u7684\u7ad9\u70b9\uff0c\u8fdb\u884c\u6b63\u5e38\u4f7f\u7528\u64cd\u4f5c\uff0c\u6d4f\u89c8\u5668\u4e2d\u7684\u6240\u6709\u7f51\u7edc\u8bf7\u6c42\u5747\u4f1a\u88ab\u8bb0\u5f55\u4e0b\u6765\u3002\u5f53\u64cd\u4f5c\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u505c\u6b62\u6309\u94ae\u505c\u6b62\u5f55\u5236\u3002

    \u5f55\u5236\u7ed3\u675f\u540e\uff0c\u70b9\u51fb\u4fdd\u5b58\u6309\u94ae\u8fdb\u884c\u4fdd\u5b58\u3002

    \u63d2\u4ef6\u5f39\u51fa\u6240\u6709\u8bb0\u5f55\u5230\u8bf7\u6c42\u7684\u7ad9\u70b9\u5217\u8868\uff0c\u52fe\u9009\u9700\u8981\u4fdd\u7559\u7684\u7ad9\u70b9\u8bf7\u6c42\u70b9\u51fb\u4e0b\u8f7d\u6309\u94ae\uff0c\u4e0b\u8f7d JMX \u811a\u672c\u81f3\u672c\u5730\u3002

    \u5728 MeterSphere \u4e2d\u521b\u5efa\u6027\u80fd\u6d4b\u8bd5\u4efb\u52a1\uff0c \u4e0a\u4f20\u521a\u521a\u5f55\u5236\u7684 JMX \u811a\u672c\uff0c\u7136\u540e\u8bbe\u7f6e\u5e76\u53d1\u53c2\u6570\uff0c\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5\u3002

    "},{"location":"user_manual/plugin_use/idea_plugin/","title":"Idea plugin","text":"

    \u8be5\u63d2\u4ef6\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u5728IntelliJ IDEA IDE \u4e2d\uff0c\u5c06\u7f16\u5199\u7684 HTTP \u63a5\u53e3\u6587\u6863\u4fe1\u606f\u5feb\u6377\u63a8\u9001\u5230 MeterSphere \u7cfb\u7edf\u4e2d\u3002

    "},{"location":"user_manual/plugin_use/idea_plugin/#1","title":"1 \u63d2\u4ef6\u5b89\u88c5","text":""},{"location":"user_manual/plugin_use/idea_plugin/#11","title":"1.1 \u5728\u7ebf\u5b89\u88c5","text":"

    \u5728 IDEA -> Settings -> plugins -> Marketplace \u641c\u7d22\u5e76\u9009\u62e9\u3010MeterSphere\u3011\uff0c\u70b9\u51fb install \u5373\u53ef\u8fdb\u884c\u5728\u7ebf\u5b89\u88c5\u3002

    "},{"location":"user_manual/plugin_use/idea_plugin/#12","title":"1.2 \u79bb\u7ebf\u5b89\u88c5","text":"

    \u5148\u5728 jetbrains plugin marketplace \u4e2d\u4e0b\u8f7d\u4e0e IDEA\u7248\u672c\u5339\u914d\u7684\u7248\u672c\uff0c \u7136\u540e\u5728 IDEA -> Settings -> plugins\uff0c\u70b9\u51fb\u3010Install Plugin from Disk\u3011\u5e76\u9009\u62e9\u5df2\u4e0b\u8f7d\u7684\u79bb\u7ebf\u5305\u8fdb\u884c\u5b89\u88c5\u3002

    "},{"location":"user_manual/plugin_use/idea_plugin/#2","title":"2 \u63d2\u4ef6\u4f7f\u7528","text":"

    IDEA -> Settings -> MeterSphere \u4e2d\u914d\u7f6e\u597d\u8bbf\u95ee\u5730\u5740\u4ee5\u53ca AK/SK \u7b49\u8be6\u7ec6\u4fe1\u606f\uff0c\u70b9\u51fb\u3010test\u3011\u6309\u94ae\u5373\u786e\u8ba4\u8fde\u63a5\u6210\u529f\u3002

    \u914d\u7f6e\u5bfc\u51fa\u662f\u5426\u8986\u76d6\u3001\u76ee\u5f55\u5c42\u7ea7\u7b49\u4fe1\u606f\u540e\uff0c\u70b9\u51fb\u3010Apply\u3011\u6309\u94ae\u3002

    \u5728\u8981\u540c\u6b65\u63a5\u53e3\u7684 Controller \u9875\u9762\u4e2d\u53f3\u952e\u9009\u62e9\u3010Export MeterSphere\u3011\u5373\u53ef\u5c06\u4ee3\u7801\u4e2d\u7684 HTTP \u63a5\u53e3\u63a8\u9001\u5230 MeterSphere \u7cfb\u7edf\u4e2d\u3002

    "},{"location":"user_manual/plugin_use/jenkins_plugin/","title":"Jenkins plugin","text":"

    \u8be5\u63d2\u4ef6\u4e3a MeterSphere \u914d\u5957DevOps \u6301\u7eed\u96c6\u6210\u5de5\u5177\u94fe\u4e2d\u4e0e Jenkins \u7684\u81ea\u52a8\u5316\u6267\u884c\u63d2\u4ef6\u3002

    "},{"location":"user_manual/plugin_use/jenkins_plugin/#1","title":"1 \u63d2\u4ef6\u5b89\u88c5","text":"

    \u6839\u636e MeterSphere \u7248\u672c\uff0c\u5728 MeterSphere Jenkins-plugin \u4e0b\u8f7d\u5bf9\u5e94\u7248\u672c\u7684 hpi \u5305\uff0c \u5e76\u5728 Jenkins \u7684\u63d2\u4ef6\u7ba1\u7406-\u9ad8\u7ea7\u4e2d\u7684Deploy Plugin\u6bb5\u4e2d\uff0c\u9009\u62e9\u4e0a\u4f20\u5df2\u4e0b\u8f7d\u597d\u7684 hpi \u63d2\u4ef6\u5305\u3002

    "},{"location":"user_manual/plugin_use/jenkins_plugin/#2","title":"2 \u63d2\u4ef6\u4f7f\u7528","text":"

    \u63d2\u4ef6\u5b89\u88c5\u540e\uff0c\u5728\u6307\u5b9a\u7684 Jenkins \u6784\u5efa\u4efb\u52a1\u7684\u6784\u5efa\u6b65\u9aa4\u4e2d\uff0c\u589e\u52a0\u5e76\u914d\u7f6e\u3010MeterSphere\u3011\u7c7b\u578b\u7684\u6784\u5efa\u6b65\u9aa4\u3002 \u914d\u7f6e MeterSphere \u8ba4\u8bc1\u4fe1\u606f\uff0c\u5e76\u6307\u5b9a\u9700\u8981\u89e6\u53d1\u6267\u884c\u7684\u63a5\u53e3\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u6216\u6d4b\u8bd5\u8ba1\u5212\uff0c\u914d\u7f6e\u5b8c\u6210\u540e\u5373\u53ef\u8fd0\u884c Jenkins Job\u3002

    v2\u7248\u672c\u5c06 Jenkins Job \u7684\u8fd0\u884c\u7ed3\u679c\u53d8\u66f4\u4e3a\u5f53\u524d\u8fd0\u884c\u7684\u6d4b\u8bd5\u8ba1\u5212\u6216\u7528\u4f8b\u7684\u5b9e\u9645\u8fd0\u884c\u7ed3\u679c\u72b6\u6001\uff0c\u5373\u5f53\u7528\u4f8b\u8fd0\u884c\u5931\u8d25\u65f6\uff0cJenkins Job \u7684\u72b6\u6001\u4e5f\u4e3a\u5931\u8d25\u3002

    "},{"location":"user_manual/plugin_use/selenium_ide_plugin/","title":"Selenium ide plugin","text":"

    \u8be5\u63d2\u4ef6\u4e3a Selenium \u539f\u751f\u63d2\u4ef6\uff0c\u7528\u4e8e\u5f55\u5236\u3001\u56de\u653e\u7528\u6237\u5728 web \u9875\u9762\u4e0a\u7684\u64cd\u4f5c\uff0c\u652f\u6301 Chrome\uff0cfirefox\u3001Edge\u7b49\u4e3b\u6d41\u6d4f\u89c8\u5668\u3002\u4ee5Chrome\u6d4f\u89c8\u5668\u4e3a\u4f8b\u8bf4\u660e\u63d2\u4ef6\u7684\u4e0b\u8f7d\u5b89\u88c5\u4ee5\u53ca\u4f7f\u7528\u3002

    "},{"location":"user_manual/plugin_use/selenium_ide_plugin/#1","title":"1 \u63d2\u4ef6\u5b89\u88c5","text":"

    \u5728 Chrome \u5e94\u7528\u5546\u5e97\u4e2d\u641c\u7d22 selenium \u5173\u952e\u5b57\uff0c \u9009\u62e9Selenium IDE\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u81f3 Chrome\u3011\u5b8c\u6210\u63d2\u4ef6\u5b89\u88c5\u3002

    "},{"location":"user_manual/plugin_use/selenium_ide_plugin/#2","title":"2 \u63d2\u4ef6\u4f7f\u7528","text":"

    \u5728 Chrome \u6d4f\u89c8\u5668\u4e2d\u70b9\u51fb\u6269\u5c55\u7a0b\u5e8f\u6309\u94ae\uff0c\u5e76\u9009\u62e9 Selenium IDE\u63d2\u4ef6\u56fe\u6807\uff0c\u542f\u52a8\u63d2\u4ef6\u7a0b\u5e8f\u3002

    \u542f\u52a8\u3010Selenium IDE\u3011\u63d2\u4ef6

    \u521b\u5efa\u5f55\u5236\u7684\u9879\u76ee\uff0c\u8f93\u5165\u9879\u76ee\u540d\u79f0 \u70b9\u51fb\u3010\u5f55\u5236\u3011\u6309\u94ae\uff0c\u5728\u8f93\u5165\u5f55\u5236\u7f51\u7ad9\u5730\u5740\u4e4b\u540e\u5f00\u59cb\u5f55\u5236\u3002

    \u5f55\u5236\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u3010\u505c\u6b62\u3011\u6309\u94ae\u7ed3\u675f\u5f55\u5236\uff0c\u5e76\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u6309\u94ae\uff0c\u5c06\u5f55\u5236\u7ed3\u679c\u4fdd\u5b58\u540e\u7f6e\u4e3a .side \u6587\u4ef6

    \u5c06\u4fdd\u5b58\u7684 .side \u6587\u4ef6\u5bfc\u5165\u5230 MeterSphere UI \u6d4b\u8bd5\u4e2d\u5373\u8fdb\u884c Web UI\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u3002

    "},{"location":"user_manual/plugin_use/service_integration_plugin/","title":"Service integration plugin","text":"

    MeterSphere v2.4 \u7248\u672c\u5b9e\u73b0\u4e86\u670d\u52a1\u96c6\u6210\u7684\u63d2\u4ef6\u5316\uff0c\u76ee\u524d\u5df2\u7ecf\u652f\u6301\u7985\u9053\u3001Jira\u3001TAPD\u7b49\u5e73\u53f0\u7684\u5bf9\u63a5\uff0c\u4e5f\u53ef\u6839\u636e\u81ea\u8eab\u9700\u6c42\u5f00\u53d1\u5bf9\u5e94\u63d2\u4ef6\u3002\u7cfb\u7edf\u8bbe\u7f6e-\u63d2\u4ef6\u7ba1\u7406\u4e0a\u4f20\u63d2\u4ef6 \u4f7f\u7528\u65b9\u5f0f\u8ddf\u539f\u6765\u4e00\u81f4\uff0c\u5177\u4f53\u53c2\u8003 metersphere-platform-plugin \u3002\u4ee5 Jira \u5e73\u53f0\u4e3a\u4f8b\uff0c\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u7cfb\u7edf\u3011-\u3010\u63d2\u4ef6\u7ba1\u7406\u3011\u754c\u9762\u4e0b\uff0c\u4e0a\u4f20 Jira \u63d2\u4ef6\u5305\u3002

    \u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u7cfb\u7edf\u3011-\u3010\u670d\u52a1\u96c6\u6210\u3011\u5904\u53ef\u770b\u5230 Jira \u5e73\u53f0\uff0c\u9009\u4e2d Jira \u5e73\u53f0\u53ef\u51fa\u73b0\u76f8\u5173\u8d26\u53f7\u4fe1\u606f\u3002\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u586b\u5199Jira \u5e73\u53f0\u76f8\u5173\u8d26\u53f7\u4fe1\u606f\u540e\u8fdb\u884c\u4fdd\u5b58\uff0c\u5e76\u901a\u8fc7\u3010\u6d4b\u8bd5\u8fde\u63a5\u3011\u8fdb\u884c\u9a8c\u8bc1\u3002

    \u9a8c\u8bc1\u901a\u8fc7\u540e\uff0c\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u7cfb\u7edf\u3011-\u3010\u9879\u76ee\u7ba1\u7406\u3011\u5904\uff0c\u8fdb\u884c\u9879\u76ee\u7f16\u8f91\u65f6\uff0c\u53ef\u770b\u5230\u3010\u96c6\u6210\u7b2c\u4e09\u65b9\u5e73\u53f0\u3011\u7684\u4e0b\u62c9\u6846\u6709 Jira \u5e73\u53f0\u9009\u9879\u4ee5\u53ca Jira \u5e73\u53f0\u7684\u76f8\u5173\u4fe1\u606f\u3002

    "},{"location":"user_manual/project_management/application_management/","title":"\u5e94\u7528\u7ba1\u7406","text":""},{"location":"user_manual/project_management/application_management/#1","title":"1 \u5e94\u7528\u7ba1\u7406\u6743\u9650","text":"

    \u5982\u679c\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011\u91cc\u770b\u4e0d\u5230\u3010\u5e94\u7528\u7ba1\u7406\u3011\u83dc\u5355\uff0c\u8868\u793a\u6b64\u7528\u6237\u6ca1\u6709\u6b64\u6743\u9650\uff0c\u9700\u8981\u5230\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u7cfb\u7edf\u3011-\u3010\u7528\u6237\u7ec4\u4e0e\u6743\u9650\u3011\u4fee\u6539\u3010\u9879\u76ee\u7ba1\u7406\u5458\u3011\u7684\u6743\u9650\u3002

    \u9009\u4e2d\u5e94\u7528\u8bbe\u7f6e\u6743\u9650\u5373\u53ef\u3002

    "},{"location":"user_manual/project_management/application_management/#2","title":"2 \u5e94\u7528\u7ba1\u7406\u8bbe\u7f6e","text":"

    \u70b9\u51fb\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u5e94\u7528\u7ba1\u7406\u3011\u53ef\u4ee5\u5bf9 MeterSphere \u7684\u3010\u5de5\u4f5c\u53f0\u3011\u3001\u3010\u6d4b\u8bd5\u8ddf\u8e2a\u3011\u3001\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011\u3001\u3010UI\u6d4b\u8bd5\u3011\u3001\u3010\u6027\u80fd\u6d4b\u8bd5\u3011\u7b49\u5e94\u7528\u8fdb\u884c\u9ad8\u7ea7\u8bbe\u7f6e\u3002

    "},{"location":"user_manual/project_management/application_management/#21","title":"2.1 \u5de5\u4f5c\u53f0","text":"

    \u7ef4\u62a4\u3010\u5de5\u4f5c\u53f0\u3011\u4e0b\u7684\u4e00\u4e9b\u9ad8\u7ea7\u5e94\u7528\u914d\u7f6e\u7ba1\u7406\uff0c\u5305\u542b\u3010\u6211\u7684\u5f85\u529e-\u5f85\u66f4\u65b0\u5217\u8868\u3011\u914d\u7f6e\u3002

    "},{"location":"user_manual/project_management/application_management/#22","title":"2.2 \u6d4b\u8bd5\u8ddf\u8e2a\u8bbe\u7f6e","text":"

    \u7ef4\u62a4\u3010\u6d4b\u8bd5\u8ddf\u8e2a\u3011\u4e0b\u7684\u4e00\u4e9b\u9ad8\u7ea7\u5e94\u7528\u914d\u7f6e\u7ba1\u7406\uff0c\u5305\u542b \u3010\u542f\u52a8\u516c\u5171\u7528\u4f8b\u5e93\u3011\u3001\u3010\u6d4b\u8bd5\u7528\u4f8b\u81ea\u5b9a\u4e49ID\u3011\u3001\u3010\u5b9a\u65f6\u6e05\u7406\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a\u3011\u3001\u3010\u62a5\u544a\u5206\u4eab\u94fe\u63a5\u3011\u914d\u7f6e\u3002

    • \u542f\u52a8\u516c\u5171\u7528\u4f8b\u5e93

    • \u6d4b\u8bd5\u7528\u4f8b\u81ea\u5b9a\u4e49ID \u5f00\u542f\u540e\uff0c\u5728\u521b\u5efa\u3010\u6d4b\u8bd5\u7528\u4f8b\u3011\u9875\u9762\uff0c\u53ef\u4ee5\u81ea\u5b9a\u4e49\u8bbe\u7f6e\u7528\u4f8b ID\u3002

    • \u5b9a\u65f6\u6e05\u7406\u6d4b\u8bd5\u8ba1\u5212\u62a5\u544a

    • \u62a5\u544a\u5206\u4eab\u94fe\u63a5

    "},{"location":"user_manual/project_management/application_management/#23","title":"2.3 \u63a5\u53e3\u6d4b\u8bd5\u8bbe\u7f6e","text":"

    \u7ef4\u62a4\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011\u4e0b\u7684\u4e00\u4e9b\u9ad8\u7ea7\u5e94\u7528\u914d\u7f6e\u7ba1\u7406\uff0c\u5305\u542b\u3010\u63a5\u53e3\u5b9a\u4e49URL\u53ef\u91cd\u590d\u3011\u3001\u3010\u573a\u666f\u81ea\u5b9a\u4e49ID\u3011\u3001\u3010TCP Mock Port\u3011\u4ee5\u53ca\u3010\u5b9a\u65f6\u6e05\u7406\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a\u3011\u3001\u3010\u62a5\u544a\u5206\u4eab\u94fe\u63a5\u3011\u4ee5\u53ca\u3010\u63a5\u53e3\u5b9a\u4e49\u5feb\u6377\u6dfb\u52a0\u6309\u94ae\u3011\u7b49\u914d\u7f6e\u3002

    • \u63a5\u53e3\u5b9a\u4e49URL\u53ef\u91cd\u590d \u542f\u7528\u540e\u63a5\u53e3\u5b9a\u4e49\u91cd\u590d\u6027\u6821\u9a8c\u5c06\u4e0d\u6821\u9a8cURL\uff0c\u540c\u4e00\u4e2a\u9879\u76ee\u4e0b\u5141\u8bb8\u63a5\u53e3\u8def\u5f84\u76f8\u540c\u7684\u3010\u63a5\u53e3\u5b9a\u4e49\u3011\u3002

    • \u573a\u666f\u81ea\u5b9a\u4e49ID \u542f\u7528\u540e\u521b\u5efa\u573a\u666f\u652f\u6301\u81ea\u5b9a\u4e49\u8bbe\u7f6e\u573a\u666fID\u3002

    • TCP Mock Port \u8bbe\u7f6e\u63a5\u53e3\u534f\u8bae\u4e3aTCP\u7684\u63a5\u53e3\uff0cMock\u670d\u52a1\u7684\u53ef\u7528\u6027\u3002

    \u5982\u679c TCP \u534f\u8bae\u7684\u63a5\u53e3\u9700\u8981\u4f7f\u7528 Mock \u670d\u52a1\uff0c\u5219\u9700\u8981\u5f00\u542f\u6b64\u670d\u52a1\uff0c\u5f00\u542f\u540e\u5728\u63a5\u53e3\u6d4b\u8bd5\u4e2d\uff0cMock \u670d\u52a1\u624d\u53ef\u7528\u3002

    • \u5b9a\u65f6\u6e05\u7406\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a

    • \u62a5\u544a\u5206\u4eab\u94fe\u63a5

    • \u63a5\u53e3\u5b9a\u4e49\u5feb\u6377\u6dfb\u52a0\u6309\u94ae

    "},{"location":"user_manual/project_management/application_management/#24-ui","title":"2.4 UI\u6d4b\u8bd5\u8bbe\u7f6e","text":""},{"location":"user_manual/project_management/application_management/#25","title":"2.5 \u6027\u80fd\u6d4b\u8bd5\u8bbe\u7f6e","text":"

    \u7ef4\u62a4\u3010\u6027\u80fd\u6d4b\u8bd5\u3011\u4e0b\u7684\u4e00\u4e9b\u9ad8\u7ea7\u5e94\u7528\u914d\u7f6e\u7ba1\u7406\uff0c\u5305\u542b\u3010\u5b9a\u65f6\u6e05\u7406\u63a5\u53e3\u6d4b\u8bd5\u62a5\u544a\u3011\u3001\u3010\u62a5\u544a\u5206\u4eab\u94fe\u63a5\u3011\u914d\u7f6e\u3002

    "},{"location":"user_manual/project_management/customcode_snippets/","title":"\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5","text":"

    \u5728\u63a5\u53e3\u81ea\u52a8\u5316\u4e2d\u7ecf\u5e38\u9700\u8981\u6dfb\u52a0\u524d\u540e\u7f6e\u811a\u672c\u53ca\u81ea\u5b9a\u4e49\u811a\u672c\uff0c\u901a\u8fc7\u65b0\u589e\u7684\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u529f\u80fd\uff0c\u7528\u6237\u53ef\u4ee5\u5c06\u5e38\u7528\u7684\u811a\u672c\u4fdd\u5b58\u4e0b\u6765\uff0c\u5728\u9700\u8981\u4f7f\u7528\u7684\u5730\u65b9\u76f4\u63a5\u6dfb\u52a0\u5373\u53ef\u3002

    "},{"location":"user_manual/project_management/customcode_snippets/#1","title":"1 \u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u7ef4\u62a4","text":"

    \u9009\u62e9\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u3011\u3002

    \u70b9\u51fb\u3010\u521b\u5efa\u4ee3\u7801\u7247\u6bb5\u3011\uff0c\u53ef\u4ee5\u628a\u5e38\u7528\u7684\u811a\u672c\u4ee3\u7801\u4fdd\u5b58\u5728\u8fd9\u91cc\u3002

    \u70b9\u51fb\u3010\u6d4b\u8bd5\u3011\u53ef\u4ee5\u6821\u9a8c\u6b64\u4ee3\u7801\u6267\u884c\u7684\u60c5\u51b5\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u521b\u5efa\u7684\u4ee3\u7801\u7247\u6bb5\u4fdd\u5b58\u5728\u4ee3\u7801\u5217\u8868\u4e2d\u3002

    \u540c\u65f6\u7cfb\u7edf\u63d0\u4f9b\u76f8\u5173\u7684\u7ba1\u7406\u529f\u80fd\uff1a\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u548c\u3010\u5220\u9664\u3011\u7b49\uff0c\u5bf9\u4ee3\u7801\u7247\u6bb5\u8fdb\u884c\u7ba1\u7406\u3002

    "},{"location":"user_manual/project_management/customcode_snippets/#2","title":"2 \u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u4f7f\u7528","text":"

    \u4ee3\u7801\u7247\u6bb5\u7ef4\u62a4\u597d\u540e\uff0c\u5728\u3010\u63a5\u53e3\u3001\u573a\u666f\u6d4b\u8bd5\u7528\u4f8b\u3011\u6216\u8005\u3010\u73af\u5883\u3011\u7684\u3010\u524d\u7f6e\u811a\u672c\u3001\u540e\u7f6e\u811a\u672c\u3011\u4e2d\uff0c\u9009\u62e9\u3010\u63d2\u5165\u81ea\u5b9a\u4e49\u4ee3\u7801\u7247\u6bb5\u3011\u53ef\u4ee5\u76f4\u63a5\u5f15\u7528\u6b64\u4ee3\u7801\uff0c\u4ee5\u3010\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3011\u4e3a\u4f8b\u3002

    "},{"location":"user_manual/project_management/false_library/","title":"\u8bef\u62a5\u5e93","text":"

    \u5f53\u6267\u884c\u53cd\u5411\u7528\u4f8b\u540e\u54cd\u5e94\u72b6\u6001\u7801\u975e 200 \u65f6\uff0cMS \u4f1a\u5c06\u5176\u5f52\u4e3a\u9519\u8bef\u7ed3\u679c\uff0c\u4f46\u5bf9\u7528\u6237\u4e1a\u52a1\u800c\u8a00\u662f\u6b63\u786e\u7684\uff0c\u6b64\u65f6\u53ef\u4ee5\u4f7f\u7528\u8bef\u62a5\u5e93\u7684\u529f\u80fd\u8fdb\u884c\u907f\u514d

    "},{"location":"user_manual/project_management/false_library/#1-x-pack","title":"1 \u8bef\u62a5\u5e93 (X-Pack)","text":"

    \u70b9\u51fb\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u8bef\u62a5\u5e93\u3011\u9875\u9762\uff0c\u70b9\u51fb\u3010\u521b\u5efa\u8bef\u62a5\u3011

    \u5728\u3010\u521b\u5efa\u8bef\u62a5\u3011\u9875\u9762\uff0c\u8f93\u5165\u76f8\u5173\u914d\u7f6e\u540e\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5373\u53ef

    \u3010\u521b\u5efa\u8bef\u62a5\u3011\u5b8c\u6210\u540e\uff0c\u53ef\u3010\u5f00\u542f/\u5173\u95ed\u3011\u8be5\u8bef\u62a5

    \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u53ef\u7f16\u8f91\u8bef\u62a5\u5185\u5bb9\uff0c\u4e4b\u540e\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5373\u53ef

    \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u5220\u9664\u63d0\u793a\u4e2d\u7684\u3010\u786e\u5b9a\u3011\u6309\u94ae\uff0c\u8be5\u8bef\u62a5\u5c31\u88ab\u5220\u9664\u4e86

    "},{"location":"user_manual/project_management/file_management/","title":"\u6587\u4ef6\u7ba1\u7406","text":"

    \u53ef\u4e0a\u4f20\u6d4b\u8bd5\u6240\u9700\u7684 JAR \u5305\u3001\u811a\u672c\u3001\u76f8\u5173\u6587\u4ef6\uff0c\u5728\u9879\u76ee\u7ea7\u522b\u7edf\u4e00\u7ba1\u7406\u3002

    "},{"location":"user_manual/project_management/file_management/#1","title":"1 \u6a21\u5757\u7ba1\u7406","text":"

    \u65b0\u5efa\u6a21\u5757\u65f6\uff0c\u9009\u62e9\u3010\u6a21\u5757\u3011\uff0c\u53ef\u5bf9\u6a21\u5757\u76ee\u5f55\u8fdb\u884c\u91cd\u547d\u540d\u3001\u65b0\u589e\u3001\u5220\u9664\u7b49\u64cd\u4f5c

    "},{"location":"user_manual/project_management/file_management/#2","title":"2.\u4e0a\u4f20\u6587\u4ef6","text":"

    \u53ef\u4e0a\u4f20 JAR\u3001CSV\u3001TXT\u3001JMX\u3001XLSX \u7b49\u591a\u79cd\u683c\u5f0f\u7684\u6587\u4ef6\uff0c\u4e0a\u4f20\u7684 JAR \u53ef\u5728\u63a5\u53e3\u524d\u540e\u7f6e\u811a\u672c\u4e2d\u8fdb\u884c\u4f7f\u7528

    \u7528\u4e8e\u63a5\u53e3\u6d4b\u8bd5\u7684\u8981\u5f00\u542f\u52a0\u8f7d Jar \u5305\u7684 Switch \u5f00\u5173\uff0c\u5426\u5219\u5728\u63a5\u53e3\u524d\u540e\u7f6e\u811a\u672c\u4e2d\u5f15\u7528\u8be5 Jar \u5305\u4e0d\u751f\u6548

    \u4e0a\u4f20\u7684\u6587\u4ef6\u53ef\u5728\u6027\u80fd\u6d4b\u8bd5\u9875\u9762\u8fdb\u884c\u9009\u62e9

    "},{"location":"user_manual/project_management/file_management/#3","title":"3 \u67e5\u770b\u6587\u4ef6","text":"

    \u70b9\u51fb\u67e5\u770b\u6309\u94ae\uff0c\u53ef\u67e5\u770b\u8be5\u6587\u4ef6\u7684\u8be6\u7ec6\u4fe1\u606f\uff0c\u4e5f\u53ef\u5728\u8be5\u9875\u9762\u589e\u52a0\u6587\u4ef6\u7684\u63cf\u8ff0

    \u53ef\u70b9\u51fb\u4e0a\u4e00\u4e2a/\u4e0b\u4e00\u4e2a\u6309\u94ae\uff0c\u5207\u6362\u5f53\u524d\u67e5\u770b\u7684\u6587\u4ef6

    \u53ef\u5bf9\u8be5\u6587\u4ef6\u51fa\u73b0\u4e0a\u4f20\uff0c\u4e0b\u8f7d\uff0c\u5220\u9664\u7b49\u64cd\u4f5c

    "},{"location":"user_manual/project_management/file_management/#4","title":"4 \u6587\u4ef6\u4e0b\u8f7d","text":"

    \u53ef\u70b9\u51fb\u5217\u8868\u540e\u9762\u4e0b\u8f7d\u6309\u94ae\u8fdb\u884c\u6587\u4ef6\u4e0b\u8f7d\uff0c\u4e5f\u53ef\u5728\u6587\u4ef6\u67e5\u770b\u9875\u9762\u8fdb\u884c\u6587\u4ef6\u4e0b\u8f7d

    "},{"location":"user_manual/project_management/file_management/#5","title":"5 \u6587\u4ef6\u5220\u9664","text":"

    \u53ef\u70b9\u51fb\u5217\u8868\u540e\u9762\u5220\u9664\u6309\u94ae\u8fdb\u884c\u6587\u4ef6\u5220\u9664\uff0c\u4e5f\u53ef\u5728\u6587\u4ef6\u67e5\u770b\u9875\u9762\u8fdb\u884c\u6587\u4ef6\u5220\u9664

    "},{"location":"user_manual/project_management/file_management/#6","title":"6 \u7b2c\u4e09\u65b9\u4ed3\u5e93","text":"

    \u65b0\u5efa\u6a21\u5757\u65f6\uff0c\u9009\u62e9\u3010\u5b58\u50a8\u5e93\u3011\uff0c\u652f\u6301\u5bf9\u63a5\u7b2c\u4e09\u65b9\u4ed3\u5e93\uff08\u5982 GitHub\u3001GitLab \u548c Gitee\uff09\uff0c\u586b\u5199\u76f8\u5e94\u4fe1\u606f\u3002

    \u70b9\u51fb\u3010\u4e0a\u4f20\u6587\u4ef6\u3011\u6309\u94ae\uff0c\u586b\u5199\u76f8\u5173\u4fe1\u606f\uff0c\u70b9\u51fb\u786e\u5b9a\u6309\u94ae\u5373\u53ef

    \u70b9\u51fb\u3010\u67e5\u770b\u3011\u6309\u94ae\uff0c\u53ef\u67e5\u770b\u6587\u4ef6\u8be6\u7ec6\u4fe1\u606f

    \u5207\u6362\u5230\u3010\u5173\u8054\u7528\u4f8b\u3011\u548c\u3010\u7248\u672c\u5386\u53f2\u3011\u9875\u9762\uff0c\u53ef\u67e5\u770b\u5177\u4f53\u8be6\u7ec6\u4fe1\u606f

    "},{"location":"user_manual/project_management/notice_management/","title":"\u6d88\u606f\u8bbe\u7f6e","text":""},{"location":"user_manual/project_management/notice_management/#1","title":"1 \u6d88\u606f\u8bbe\u7f6e","text":"

    \u9488\u5bf9\u7cfb\u7edf\u7684\u6bcf\u4e2a\u529f\u80fd\u90fd\u652f\u6301\u7528\u6237\u6839\u636e\u9700\u8981\u8fdb\u884c\u3010\u9879\u76ee\u7ea7\u522b\u3011\u7684\u4efb\u52a1\u901a\u77e5\u8bbe\u7f6e\u3002\u70b9\u51fb\u3010\u9879\u76ee\u7ba1\u7406\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u6d88\u606f\u8bbe\u7f6e\u3011\u5373\u53ef\u8fdb\u5165\u6d88\u606f\u8bbe\u7f6e\u9875\u9762\uff0c\u5e76\u4e14\u7cfb\u7edf\u652f\u6301\u63a5\u6536\u4eba\u5458\u6309\u89d2\u8272\u6216\u6307\u5b9a\u5177\u4f53\u4eba\u5458\uff1b\u540c\u65f6\u652f\u6301\u7ad9\u5185\u901a\u77e5\u548c\u7ad9\u5916\u901a\u77e5\u591a\u79cd\u901a\u77e5\u65b9\u5f0f\u7b49\u529f\u80fd\u3002

    • \u6d4b\u8bd5\u8ddf\u8e2a\u4efb\u52a1\u901a\u77e5 \u6d4b\u8bd5\u8ddf\u8e2a\u7684\u6bcf\u4e2a\u9875\u9762\uff1a\u9996\u9875\u3001\u6d4b\u8bd5\u7528\u4f8b\u3001\u7528\u4f8b\u8bc4\u5ba1\u3001\u6d4b\u8bd5\u8ba1\u5212\u3001\u6d4b\u8bd5\u62a5\u544a\u3001\u7f3a\u9677\u7ba1\u7406\u7b49\u9875\u9762\u90fd\u652f\u6301\u81ea\u5b9a\u4e49\u4efb\u52a1\u901a\u77e5\u3002

    \u540c\u65f6\u6d4b\u8bd5\u8ddf\u8e2a\u9875\u9762\u4e0a\u7684\u6bcf\u4e2a\u5173\u952e\u64cd\u4f5c\uff0c\u90fd\u53ef\u4ee5\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u4efb\u52a1\u901a\u77e5\u3002\u6bd4\u5982\u6d4b\u8bd5\u8ba1\u5212\u7684\u65b0\u5efa\u3001\u66f4\u65b0\u3001\u5220\u9664\u3001\u6267\u884c\u5b8c\u6210\u7b49\uff0c\u90fd\u53ef\u4ee5\u8bbe\u7f6e\u76f8\u5e94\u7684\u4efb\u52a1\u901a\u77e5\u3002

    • \u63a5\u53e3\u6d4b\u8bd5\u4efb\u52a1\u901a\u77e5 \u63a5\u53e3\u6d4b\u8bd5\u7684\u6bcf\u4e2a\u9875\u9762\uff1a\u9996\u9875\u3001\u63a5\u53e3\u5b9a\u4e49\u3001\u63a5\u53e3\u81ea\u52a8\u5316\u3001\u6d4b\u8bd5\u62a5\u544a\u7b49\u9875\u9762\u90fd\u652f\u6301\u81ea\u5b9a\u4e49\u4efb\u52a1\u901a\u77e5\u3002

    \u540c\u65f6\u63a5\u53e3\u6d4b\u8bd5\u9875\u9762\u4e0a\u7684\u6bcf\u4e2a\u5173\u952e\u64cd\u4f5c\uff0c\u90fd\u53ef\u4ee5\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u4efb\u52a1\u901a\u77e5\u3002\u6bd4\u5982\u63a5\u53e3\u5b9a\u4e49\u4e2d API \u76f8\u5173\u7684\u589e\u5220\u6539\u3001CASE \u76f8\u5173\u7684\u589e\u5220\u6539\u7b49\u64cd\u4f5c\uff0c\u90fd\u53ef\u4ee5\u8bbe\u7f6e\u76f8\u5e94\u7684\u4efb\u52a1\u901a\u77e5\u3002

    • \u6027\u80fd\u6d4b\u8bd5\u4efb\u52a1\u901a\u77e5 \u6027\u80fd\u6d4b\u8bd5\u7684\u6bcf\u4e2a\u9875\u9762\uff1a\u6d4b\u8bd5\u3001\u6d4b\u8bd5\u62a5\u544a\u7b49\u9875\u9762\u90fd\u652f\u6301\u81ea\u5b9a\u4e49\u4efb\u52a1\u901a\u77e5\u3002

    \u540c\u65f6\u6027\u80fd\u6d4b\u8bd5\u9875\u9762\u4e0a\u7684\u6bcf\u4e2a\u5173\u952e\u64cd\u4f5c\uff0c\u90fd\u53ef\u4ee5\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u4efb\u52a1\u901a\u77e5\u3002\u6bd4\u5982\u6d4b\u8bd5\u7684\u65b0\u5efa\u3001\u66f4\u65b0\u3001\u5220\u9664\u3001\u6267\u884c\u5b8c\u6210\u7b49\u64cd\u4f5c\uff0c\u90fd\u53ef\u4ee5\u8bbe\u7f6e\u76f8\u5e94\u7684\u4efb\u52a1\u901a\u77e5\u3002

    • Jenkins\u4efb\u52a1\u901a\u77e5 \u81ea\u52a8\u5316\u901a\u8fc7 Jenkins \u6301\u7eed\u90e8\u7f72\u6765\u542f\u52a8 MeterSphere \u81ea\u52a8\u5316\u811a\u672c\u65f6\uff0c\u53ef\u4ee5\u5728\u8fd9\u91cc\u8bbe\u7f6e\u6b64\u7c7b\u578b\u7684\u4efb\u52a1\u901a\u77e5\u3002

    Jenkins \u4efb\u52a1\u901a\u77e5\u81ea\u52a8\u5316\u901a\u8fc7 Jenkins \u6301\u7eed\u90e8\u7f72\u6765\u542f\u52a8 MeterSphere \u81ea\u52a8\u5316\u811a\u672c\u65f6\uff0c\u53ef\u4ee5\u5728\u8fd9\u91cc\u8bbe\u7f6e\u6b64\u7c7b\u578b\u7684\u4efb\u52a1\u901a\u77e5\u3002

    "},{"location":"user_manual/project_management/notice_management/#2-x-pack","title":"2 \u81ea\u5b9a\u4e49\u6d88\u606f\u6a21\u677f (X-Pack)","text":"

    \u70b9\u51fb\u3010\u6a21\u677f\u3011\u6309\u94ae\uff0c\u6765\u5230\u81ea\u5b9a\u4e49\u6a21\u677f\u9875\u9762\uff0c\u53ef\u4ee5\u70b9\u51fb\u3010\u6a21\u677f\u3011\u540e\u7684\u3010i\u3011\uff0c\u4f1a\u6709\u4e00\u4e9b\u53d8\u91cf\u8bf4\u660e\u53ca\u5176\u5f15\u7528\u65b9\u5f0f\uff0c\u53ef\u4ee5\u7528\u4e8e\u81ea\u5b9a\u4e49\u5185\u5bb9\u4e2d\u3002

    "},{"location":"user_manual/project_management/operation_log/","title":"\u64cd\u4f5c\u65e5\u5fd7","text":"

    \u663e\u793a\u767b\u5f55\u7528\u6237\u5f53\u524d\u6240\u5904\u7684\u3010\u9879\u76ee\u3011\u7684\u6d4b\u8bd5\u8d44\u6e90\u65e5\u5fd7\u4fe1\u606f\uff0c\u5e76\u4e14\u53ef\u4ee5\u4f7f\u7528\u9ad8\u7ea7\u67e5\u8be2\u6765\u5feb\u901f\u67e5\u627e\u76f8\u5173\u65e5\u5fd7\u7cfb\u7edf\u3002

    "},{"location":"user_manual/project_management/operation_log/#1","title":"1 \u64cd\u4f5c\u65e5\u5fd7","text":"

    \u8be6\u7ec6\u529f\u80fd\u64cd\u4f5c\u53ca\u8bf4\u660e\u53c2\u8003 \u7cfb\u7edf->\u5de5\u4f5c\u7a7a\u95f4->\u64cd\u4f5c\u65e5\u5fd7\u3002

    "},{"location":"user_manual/project_management/project_environment/","title":"\u9879\u76ee\u73af\u5883","text":"

    \u663e\u793a\u5f53\u524d\u9879\u76ee\u7684\u6240\u6709\u73af\u5883\u4fe1\u606f\uff0c\u540c\u65f6\u53ef\u4ee5\u7ef4\u62a4\u9879\u76ee\u73af\u5883\u4fe1\u606f\u3001\u5bfc\u5165\u548c\u5bfc\u51fa\u73af\u5883\u4fe1\u606f\u3002

    "},{"location":"user_manual/project_management/project_environment/#1","title":"1 \u9879\u76ee\u73af\u5883","text":"

    \u3010\u521b\u5efa\u73af\u5883\u3011\u3001\u3010\u5bfc\u5165\u3011\u3001\u3010\u5bfc\u51fa\u3011\u3001\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u3001\u3010\u5220\u9664\u3011\u7b49\u8be6\u7ec6\u529f\u80fd\u64cd\u4f5c\u53ca\u8bf4\u660e\u53c2\u8003 \u7cfb\u7edf\u8bbe\u7f6e->\u5de5\u4f5c\u7a7a\u95f4->\u73af\u5883\u7ba1\u7406\u3002

    "},{"location":"user_manual/project_management/project_info/","title":"\u9879\u76ee\u4fe1\u606f","text":"

    \u663e\u793a\u5f53\u524d\u9879\u76ee\u7684\u57fa\u672c\u4fe1\u606f\u548c\u9879\u76ee\u57fa\u672c\u64cd\u4f5c\u529f\u80fd\u3002

    "},{"location":"user_manual/project_management/project_info/#1","title":"1 \u9879\u76ee\u57fa\u7840\u914d\u7f6e","text":"

    \u9ed8\u8ba4\u5728\u3010\u9879\u76ee\u4fe1\u606f\u3011\u9875\u9762\uff0c\u8be5\u9875\u9762\u5206\u4e3a\u5de6\u53f3\u4e24\u90e8\u5206\uff0c\u5de6\u8fb9\u662f\u9879\u76ee\u57fa\u672c\u4fe1\u606f\uff1b\u53f3\u8fb9\u662f\u9879\u76ee\u57fa\u672c\u64cd\u4f5c\u529f\u80fd\uff0c\u6b64\u529f\u80fd\u5728\u9875\u9762\u9876\u90e8\u4e5f\u6709\u663e\u793a\u3002

    "},{"location":"user_manual/project_management/project_user/","title":"\u9879\u76ee\u6210\u5458","text":"

    \u4e3a\u9879\u76ee\u6307\u5b9a\u9879\u76ee\u6210\u5458\uff0c\u5373\u54ea\u4e9b\u6210\u5458\u6709\u9879\u76ee\u89d2\u8272\uff0c\u540c\u65f6\u53ef\u5bf9\u5f53\u524d\u9879\u76ee\u6210\u5458\u8fdb\u884c\u6dfb\u52a0\u3001\u4fee\u6539\u53ca\u5220\u9664\u7684\u64cd\u4f5c\u3002

    "},{"location":"user_manual/project_management/project_user/#1","title":"1 \u9879\u76ee\u6210\u5458","text":"

    \u70b9\u51fb\u3010\u9879\u76ee\u6210\u5458\u3011\u83dc\u5355\uff0c\u5373\u53ef\u67e5\u770b\u5f53\u524d\u6709\u9879\u76ee\u89d2\u8272\u7684\u6210\u5458\u3002

    \u70b9\u51fb\u9875\u9762\u5de6\u4e0a\u89d2\u3010\u6dfb\u52a0\u6210\u5458\u3011\uff0c\u53ef\u6839\u636e\u7528\u6237 ID \u548c\u7528\u6237\u90ae\u7bb1\u641c\u7d22\u9700\u8981\u6dfb\u52a0\u7684\u7528\u6237\uff0c\u53ef\u9009\u62e9\u7528\u6237\u7ec4\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5b8c\u6210\u9879\u76ee\u6210\u5458\u6dfb\u52a0\u3002

    \u6dfb\u52a0\u5b8c\u6210\u540e\u53ef\u5728\u6210\u5458\u5217\u8868\u4e2d\u67e5\u770b\u5230\u6dfb\u52a0\u7684\u6210\u5458\uff0c\u5728\u6210\u5458\u7684\u64cd\u4f5c\u5217\u4e2d\u53ef\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u548c\u3010\u5220\u9664\u3011\u8fdb\u884c\u6210\u5458\u4fee\u6539\u548c\u6210\u5458\u5220\u9664\u64cd\u4f5c\u3002

    "},{"location":"user_manual/project_management/template_management/","title":"\u6a21\u7248\u7ba1\u7406","text":"

    \u7cfb\u7edf\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u3010\u9879\u76ee\u7ea7\u522b\u3011\u7684\u3010\u6a21\u677f\u5b57\u6bb5\u3011\u3001\u3010\u7528\u4f8b\u6a21\u677f\u3011\u3001\u3010\u7f3a\u9677\u6a21\u677f\u3011\u3001\u3010\u63a5\u53e3\u6a21\u677f\u3011\u3002

    "},{"location":"user_manual/project_management/template_management/#1","title":"1 \u6a21\u677f\u5b57\u6bb5","text":"

    \u5728\u81ea\u5b9a\u4e49\u6a21\u677f\u524d\uff08\u7528\u4f8b&\u7f3a\u9677\uff09\uff0c\u9700\u8981\u5148\u81ea\u5b9a\u4e49\u6a21\u677f\u4e2d\u5b57\u6bb5\u7684\u57fa\u672c\u5c5e\u6027\u3002\u70b9\u51fb\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u6a21\u677f\u7ba1\u7406\u3011-\u3010\u6a21\u677f\u5b57\u6bb5\u3011\uff0c\u5373\u53ef\u67e5\u770b\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u6240\u6709\u6a21\u677f\u5b57\u6bb5\u5217\u8868\u3002

    • \u521b\u5efa\u5b57\u6bb5 \u70b9\u51fb\u9875\u9762\u5de6\u4e0a\u89d2\u3010\u521b\u5efa\u5b57\u6bb5\u3011\uff0c\u8bbe\u7f6e\u5b57\u6bb5\u7684\u57fa\u672c\u4fe1\u606f\uff1a\u540d\u79f0\u3001\u5907\u6ce8\u3001\u4f7f\u7528\u573a\u666f\u3001\u5b57\u6bb5\u7c7b\u578b\u7b49\u57fa\u672c\u4fe1\u606f\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5b8c\u6210\u6a21\u677f\u5b57\u6bb5\u6dfb\u52a0\u3002

    \u4e2a\u522b\u5b57\u6bb5\u8bf4\u660e

    \u3010\u4f7f\u7528\u573a\u666f\u3011\uff1a\u8bbe\u7f6e\u5b9a\u4e49\u7684\u5b57\u6bb5\u4f7f\u7528\u4e8e\u5177\u4f53\u7684\u6a21\u677f\u4e2d\u3002 \u3010\u5b57\u6bb5\u7c7b\u578b\u3011\uff1a\u7cfb\u7edf\u63d0\u4f9b\u591a\u79cd\u5b57\u6bb5\u7c7b\u578b\u53ef\u4f9b\u9009\u62e9\uff0c\u6839\u636e\u4e0d\u540c\u5b57\u6bb5\u7c7b\u578b\uff0c\u7cfb\u7edf\u81ea\u52a8\u63a7\u5236\u5b57\u6bb5\u7684\u663e\u793a\u3001\u8bbe\u7f6e\u548c\u5c5e\u6027\u7b49\u3002\u5b57\u6bb5\u652f\u6301\u7684\u7c7b\u578b\u6709\u8f93\u5165\u6846\u3001\u6587\u672c\u6846\u3001\u4e0b\u6765\u9009\u62e9\u6846\uff08\u5355\u9009&\u591a\u9009\uff09\u3001\u65e5\u671f\u65f6\u95f4\u5668\u3001\u6570\u503c\u7b49\u7b49\u7c7b\u578b\u3002

    • \u7ef4\u62a4\u5b57\u6bb5 \u521b\u5efa\u5b8c\u6210\u540e\u53ef\u5728\u6a21\u677f\u5b57\u6bb5\u5217\u8868\u4e2d\u67e5\u770b\u5230\u6dfb\u52a0\u7684\u6a21\u677f\u5b57\u6bb5\uff0c\u5728\u81ea\u5b9a\u4e49\u5b57\u6bb5\u4fe1\u606f\u4e2d\u53ef\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u548c\u3010\u5220\u9664\u3011\u6309\u94ae\u8fdb\u884c\u6a21\u677f\u5b57\u6bb5\u4fee\u6539\u3001\u590d\u5236\u548c\u5220\u9664\u64cd\u4f5c\u3002

    "},{"location":"user_manual/project_management/template_management/#2","title":"2 \u7528\u4f8b\u6a21\u7248","text":"

    \u7528\u4f8b\u6a21\u677f\u5373\u5f53\u524d\u9879\u76ee\u4e0b\u90fd\u53ef\u4f7f\u7528\u7684\u6d4b\u8bd5\u7528\u4f8b\u6a21\u677f\uff0c\u5e76\u4e14\u53ef\u5bf9\u7528\u4f8b\u6a21\u677f\u6dfb\u52a0\u3001\u4fee\u6539\u3001\u590d\u5236\u53ca\u79fb\u9664\u7684\u64cd\u4f5c\u3002\u70b9\u51fb\u9875\u9762\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u6a21\u7248\u7ba1\u7406\u3011-\u3010\u7528\u4f8b\u6a21\u7248\u3011\uff0c\u5373\u53ef\u67e5\u770b\u5f53\u524d\u9879\u76ee\u4e2d\u7684\u6240\u6709\u7528\u4f8b\u6a21\u677f\u5217\u8868\u3002

    • \u521b\u5efa\u6a21\u677f \u70b9\u51fb\u9875\u9762\u5de6\u4e0a\u89d2\u3010\u521b\u5efa\u6a21\u677f\u3011\uff0c\u521b\u5efa\u65b0\u7684\u7528\u4f8b\u6a21\u677f\uff0c\u8bbe\u7f6e\u7528\u4f8b\u57fa\u672c\u4fe1\u606f\u3001\u6a21\u677f\u8bbe\u7f6e\u660e\u7ec6\u4fe1\u606f\u7b49\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5b8c\u6210\u7528\u4f8b\u6a21\u677f\u6dfb\u52a0\u3002\u5982\u679c\u6a21\u677f\u6dfb\u52a0\u7684\u5b57\u6bb5\u4fe1\u606f\u4e0d\u5b58\u5728\uff0c\u53ef\u4ee5\u5728\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u6a21\u7248\u7ba1\u7406\u3011-\u3010\u6a21\u7248\u5b57\u6bb5\u3011\u4e2d\u8fdb\u884c\u521b\u5efa\uff0c\u7136\u540e\u5728\u6b64\u5f15\u7528\u5373\u53ef\u3002

    • \u7ef4\u62a4\u6a21\u677f \u521b\u5efa\u5b8c\u6210\u540e\u53ef\u5728\u7528\u4f8b\u6a21\u677f\u5217\u8868\u4e2d\u67e5\u770b\u5230\u6dfb\u52a0\u7684\u7528\u4f8b\u6a21\u677f\uff0c\u5728\u7528\u4f8b\u6a21\u677f\u4fe1\u606f\u4e2d\u53ef\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u548c\u3010\u5220\u9664\u3011\u6309\u94ae\u8fdb\u884c\u7528\u4f8b\u6a21\u677f\u4fee\u6539\u3001\u590d\u5236\u548c\u5220\u9664\u64cd\u4f5c\u3002

    • \u5f15\u7528\u6a21\u677f \u521b\u5efa\u7528\u4f8b\u6a21\u677f\u540e\uff0c\u9700\u8981\u5728\u9879\u76ee\u4e2d\u4f7f\u7528\u521b\u5efa\u7684\u6a21\u677f\uff0c\u53ef\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u9879\u76ee\u7ba1\u7406\u3011-\u3010\u7f16\u8f91\u3011\u9875\u9762\uff0c\u9009\u62e9\u8981\u4f7f\u7528\u7684\u7528\u4f8b\u6a21\u677f

    "},{"location":"user_manual/project_management/template_management/#3","title":"3 \u7f3a\u9677\u6a21\u7248","text":"

    \u5728\u3010\u6a21\u7248\u7ba1\u7406\u3011-\u3010\u7f3a\u9677\u6a21\u7248\u3011\uff0c\u4f1a\u663e\u793a\u5f53\u524d\u9879\u76ee\u4e0b\u7684\u7f3a\u9677\u6a21\u7248\u5217\u8868\uff0c\u652f\u6301\u67e5\u8be2\u3001\u7f16\u8f91\u3001\u590d\u5236\u3001\u5220\u9664\u7b49\u64cd\u4f5c\u3002

    • \u521b\u5efa\u7f3a\u9677\u6a21\u677f \u70b9\u51fb\u9875\u9762\u5de6\u4e0a\u89d2\u3010\u521b\u5efa\u7f3a\u9677\u6a21\u677f\u3011\u65b0\u5efa\u7f3a\u9677\u6a21\u677f\uff0c\u8bbe\u7f6e\u7528\u4f8b\u57fa\u672c\u4fe1\u606f\u3001\u6a21\u677f\u8bbe\u7f6e\u660e\u7ec6\u4fe1\u606f\u7b49\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5b8c\u6210\u9879\u76ee\u7f3a\u9677\u6a21\u677f\u6dfb\u52a0\u3002\u5982\u679c\u6a21\u677f\u6dfb\u52a0\u5b57\u6bb5\u4fe1\u606f\u4e0d\u5b58\u5728\uff0c\u53ef\u4ee5\u5728\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u6a21\u7248\u7ba1\u7406\u3011-\u3010\u6a21\u7248\u5b57\u6bb5\u3011\u4e2d\u8fdb\u884c\u521b\u5efa\uff0c\u7136\u540e\u5728\u6b64\u5f15\u7528\u5373\u53ef\u3002

    • \u7ef4\u62a4\u5b57\u6bb5 \u521b\u5efa\u5b8c\u6210\u540e\u53ef\u5728\u7f3a\u9677\u6a21\u677f\u5217\u8868\u4e2d\u67e5\u770b\u5230\u6dfb\u52a0\u7684\u6a21\u677f\uff0c\u5728\u7f3a\u9677\u6a21\u677f\u4fe1\u606f\u4e2d\u53ef\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u548c\u3010\u5220\u9664\u3011\u6309\u94ae\u8fdb\u884c\u7f3a\u9677\u6a21\u677f\u4fee\u6539\u3001\u590d\u5236\u548c\u5220\u9664\u7b49\u64cd\u4f5c\u3002

    • \u5f15\u7528\u6a21\u677f \u521b\u5efa\u7f3a\u9677\u6a21\u677f\u540e\uff0c\u9700\u8981\u5728\u9879\u76ee\u4e2d\u4f7f\u7528\u521b\u5efa\u7684\u6a21\u677f\uff0c\u53ef\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u9879\u76ee\u7ba1\u7406\u3011-\u3010\u7f16\u8f91\u3011\u9875\u9762\uff0c\u9009\u62e9\u8981\u4f7f\u7528\u7684\u7f3a\u9677\u6a21\u677f

    "},{"location":"user_manual/project_management/template_management/#4","title":"4 \u63a5\u53e3\u6a21\u677f","text":"

    \u63a5\u53e3\u6d4b\u8bd5\u652f\u6301\u81ea\u5b9a\u4e49\u63a5\u53e3\u6a21\u677f\uff0c\u652f\u6301\u67e5\u8be2\u3001\u7f16\u8f91\u3001\u590d\u5236\u3001\u5220\u9664\u7b49\u64cd\u4f5c\u3002

    • \u521b\u5efa\u63a5\u53e3\u6a21\u677f \u70b9\u51fb\u9875\u9762\u5de6\u4e0a\u89d2\u3010\u521b\u5efa\u6a21\u677f\u3011\u65b0\u5efa\u63a5\u53e3\u9677\u6a21\u677f\uff0c\u586b\u5199\u57fa\u672c\u4fe1\u606f\u3001\u6a21\u677f\u8bbe\u7f6e\u7b49\u4fe1\u606f\uff0c\u6dfb\u52a0\u5b57\u6bb5\u6216\u8bbe\u7f6e\u81ea\u5b9a\u4e49\u5b57\u6bb5\u540e\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5373\u53ef\u3002

    • \u7ef4\u62a4\u6a21\u677f \u521b\u5efa\u5b8c\u6210\u540e\u53ef\u5728\u63a5\u53e3\u6a21\u677f\u5217\u8868\u4e2d\u67e5\u770b\u5230\u6dfb\u52a0\u7684\u63a5\u53e3\u6a21\u677f\uff0c\u5728\u63a5\u53e3\u6a21\u677f\u4fe1\u606f\u4e2d\u53ef\u5bf9\u6a21\u677f\u8fdb\u884c\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u548c\u3010\u5220\u9664\u3011\u7b49\u64cd\u4f5c\u3002

    • \u5f15\u7528\u6a21\u677f \u521b\u5efa\u63a5\u53e3\u6a21\u677f\u540e\uff0c\u9700\u8981\u5728\u9879\u76ee\u4e2d\u4f7f\u7528\u521b\u5efa\u7684\u6a21\u677f\uff0c\u53ef\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u9879\u76ee\u7ba1\u7406\u3011-\u3010\u7f16\u8f91\u3011\u9875\u9762\uff0c\u9009\u62e9\u8981\u4f7f\u7528\u7684\u63a5\u53e3\u6a21\u677f

    \u5728\u521b\u5efa\u63a5\u53e3\u5b9a\u4e49\u65f6\uff0c\u63a5\u53e3\u57fa\u7840\u4fe1\u606f\u4e2d\u4f1a\u5c55\u793a\u81ea\u5b9a\u4e49\u7684\u6a21\u677f\u5b57\u6bb5\u3002

    "},{"location":"user_manual/project_management/usergroup_permission/","title":"\u7528\u6237\u7ec4\u4e0e\u6743\u9650","text":"

    \u7ef4\u62a4\u5f53\u524d\u9879\u76ee\u7528\u6237\u53ca\u6743\u9650\u3002

    "},{"location":"user_manual/project_management/usergroup_permission/#1","title":"1 \u65b0\u589e\u7528\u6237\u7ec4","text":"

    \u70b9\u51fb\u3010\u521b\u5efa\u7528\u6237\u7ec4\u3011\uff0c\u65b0\u589e\u5f53\u524d\u9879\u76ee\u7684\u7528\u6237\u7ec4\u4fe1\u606f\u3002\u8be6\u7ec6\u529f\u80fd\u64cd\u4f5c\u53ca\u8bf4\u660e\u53c2\u8003 \u7cfb\u7edf\u8bbe\u7f6e->\u7cfb\u7edf->\u7528\u6237\u7ec4\u4e0e\u6743\u9650->\u521b\u5efa\u7528\u6237\u7ec4\u3002

    "},{"location":"user_manual/project_management/usergroup_permission/#2","title":"2 \u8bbe\u7f6e\u7528\u6237\u7ec4\u6743\u9650","text":"

    \u70b9\u51fb\u3010\u8bbe\u7f6e\u6743\u9650\u3011\u4e3a\u7528\u6237\u7ec4\u8fdb\u884c\u6743\u9650\u8bbe\u7f6e\u3002\u8be6\u7ec6\u529f\u80fd\u64cd\u4f5c\u53ca\u8bf4\u660e\u53c2\u8003 \u7cfb\u7edf\u8bbe\u7f6e->\u7cfb\u7edf->\u7528\u6237\u7ec4\u4e0e\u6743\u9650->\u8bbe\u7f6e\u6743\u9650\u3002

    "},{"location":"user_manual/project_management/usergroup_permission/#3","title":"3 \u8bbe\u7f6e\u7528\u6237\u7ec4\u6210\u5458","text":"

    \u5728\u7528\u6237\u7ec4\u5217\u8868\u4fe1\u606f\u6210\u5458\u5904\uff0c\u70b9\u51fb\u4fe1\u606f\u5217\u91cc\u7684\u3010\u6570\u5b57\u3011\u4e3a\u7528\u6237\u7ec4\u8fdb\u884c\u6210\u5458\u8bbe\u7f6e\u3002\u8be6\u7ec6\u529f\u80fd\u64cd\u4f5c\u53ca\u8bf4\u660e\u53c2\u8003 \u7cfb\u7edf\u8bbe\u7f6e->\u7cfb\u7edf->\u7528\u6237\u7ec4\u4e0e\u6743\u9650->\u6210\u5458\u8bbe\u7f6e\u3002

    "},{"location":"user_manual/project_management/version%20management/","title":"\u7248\u672c\u7ba1\u7406","text":"

    \u4e0d\u540c\u7248\u672c\u7684\u9879\u76ee\u6709\u4e0d\u540c\u7248\u672c\u7684\u7528\u4f8b\uff0c\u540e\u4e00\u4e2a\u7248\u672c\u662f\u5728\u524d\u4e00\u4e2a\u7248\u672c\u7684\u57fa\u7840\u4e0a\u4e0d\u65ad\u66f4\u65b0\u5b8c\u5584

    "},{"location":"user_manual/project_management/version%20management/#1-x-pack","title":"1 \u7248\u672c\u7ba1\u7406 (X-Pack)","text":"

    \u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u7248\u672c\u7ba1\u7406\u3011\u9875\u9762\uff0c\u542f\u7528\u7248\u672c\u7ba1\u7406\uff0c\u70b9\u51fb\u3010\u521b\u5efa\u7248\u672c\u3011\u3002

    \u5728\u3010\u521b\u5efa\u7248\u672c\u3011\u9875\u9762\uff0c\u8f93\u5165\u57fa\u672c\u914d\u7f6e\u4fe1\u606f\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u6216\u8005\u3010\u4fdd\u5b58\u5e76\u521b\u5efa\u3011\u5373\u53ef\u3002

    \u521b\u5efa\u7248\u672c\u5b8c\u6210\u540e\uff0c\u662f\u5426\u542f\u7528\u3010\u72b6\u6001\u3011\u548c\u3010\u6700\u65b0\u7248\u3011\u3002

    \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u8fdb\u5165\u7f16\u8f91\u9875\u9762\uff0c\u7f16\u8f91\u5b8c\u6210\u540e\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5373\u53ef\u3002

    \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u6309\u7167\u63d0\u793a\u8f93\u5165\u3010DELETE-v1.0.0\u3011\uff0c\u8be5\u7248\u672c\u53f7\u5c31\u88ab\u5220\u9664\u4e86\u3002

    "},{"location":"user_manual/report_statistics/project_statistics/","title":"\u9879\u76ee\u62a5\u8868","text":"

    \u62a5\u8868\u7edf\u8ba1\u9875\u9762\u4e3b\u8981\u5c55\u793a\u62a5\u8868\u7c7b\u578b\uff0c\u7528\u6237\u53ef\u6839\u636e\u4e0d\u540c\u62a5\u8868\u7c7b\u578b\u521b\u5efa\u62a5\u8868\u3002

    "},{"location":"user_manual/report_statistics/project_statistics/#1","title":"1 \u6d4b\u8bd5\u7528\u4f8b\u7edf\u8ba1","text":"

    \u70b9\u51fb\u3010\u6d4b\u8bd5\u7528\u4f8b\u7edf\u8ba1\u3011\uff0c\u8fdb\u5165\u6d4b\u8bd5\u7528\u4f8b\u7edf\u8ba1\u9875\u9762\uff0c\u53ef\u4ee5\u770b\u5230\u5df2\u521b\u5efa\u7684\u62a5\u8868\u3002

    • \u521b\u5efa\u65b0\u62a5\u8868

    \u9009\u9879\u63d0\u4f9b\u6c34\u5e73\u8f74\u7cfb\u5217\u3001\u7eb5\u5411\u8f74\u7cfb\u5217\uff0c\u521b\u5efa\u65f6\u95f4\u4e09\u4e2a\u7ef4\u5ea6\u751f\u6210\u62a5\u544a\u3002

    • \u6c34\u5e73\u8f74\u7cfb\u5217

    \u6c34\u5e73\u8f74\u53ea\u652f\u6301\u5355\u9009\u3002

    • \u7eb5\u5411\u8f74\u7cfb\u5217

    \u7eb5\u5411\u8f74\u652f\u6301\u591a\u9009\u3002

    • \u521b\u5efa\u65f6\u95f4

    \u521b\u5efa\u65f6\u95f4\u652f\u6301\u52a8\u6001\u65f6\u95f4\u548c\u56fa\u5b9a\u65f6\u95f4\u751f\u6210\u62a5\u8868\u3002

    • \u66f4\u591a\u9009\u9879

    \u66f4\u591a\u9009\u9879\u53ef\u6839\u636e\u521b\u5efa\u4eba\u7b49\u6761\u4ef6\u8fc7\u6ee4\u751f\u6210\u62a5\u8868\u3002

    • \u4fdd\u5b58

    \u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u53ef\u4fdd\u5b58\u62a5\u8868\u3002

    • \u53e6\u5b58\u4e3a

    \u70b9\u51fb\u3010\u53e6\u5b58\u4e3a\u3011\u53ef\u5c06\u5f53\u524d\u62a5\u8868\u53e6\u5b58\u4e3a\u5176\u4ed6\u62a5\u8868\u3002

    • \u5168\u90e8\u62a5\u8868

    \u70b9\u51fb\u3010\u5168\u90e8\u62a5\u8868\u3011\u53ef\u67e5\u770b\u6240\u6709\u62a5\u8868\u3002

    • \u6211\u7684\u62a5\u8868

    \u70b9\u51fb\u3010\u6211\u7684\u62a5\u8868\u3011\u53ef\u67e5\u770b\u81ea\u5df1\u521b\u5efa\u7684\u62a5\u8868\u3002

    • \u91cd\u547d\u540d\u62a5\u8868

    \u70b9\u51fb\u3010\u91cd\u547d\u540d\u3011\u53ef\u5c06\u81ea\u5df1\u521b\u5efa\u7684\u62a5\u8868\u91cd\u547d\u540d\u3002

    • \u5220\u9664

    \u70b9\u51fb\u3010\u5220\u9664\u3011\u53ef\u5c06\u81ea\u5df1\u521b\u5efa\u7684\u62a5\u8868\u5220\u9664\u3002

    • \u5bfc\u51fa

    \u70b9\u51fb\u3010\u5bfc\u51fa\u3011\u53ef\u5c06\u62a5\u8868\u5bfc\u51fa PDF \u6587\u4ef6\u3002

    "},{"location":"user_manual/report_statistics/report/","title":"\u9879\u76ee\u62a5\u544a","text":"

    \u7528\u6237\u521b\u5efa\u62a5\u8868\u8fdb\u884c\u4fdd\u5b58\u540e\uff0c\u53ef\u5728\u6d4b\u8bd5\u62a5\u544a\u5185\u5bb9\u4e2d\u5c06\u62a5\u8868\u6dfb\u52a0\u8fdb\u6765\u8fdb\u884c\u53d1\u9001\u3002

    "},{"location":"user_manual/report_statistics/report/#1-x-pack","title":"1 \u9879\u76ee\u62a5\u544a (X-Pack)","text":"
    • \u521b\u5efa\u62a5\u544a

    \u5207\u6362\u5230\u3010\u9879\u76ee\u62a5\u544a\u3011\u9875\u9762\uff0c\u70b9\u51fb\u3010\u521b\u5efa\u62a5\u544a\u3011\uff0c\u8fdb\u5165\u62a5\u544a\u914d\u7f6e\u9875\u9762

    \u586b\u5199\u62a5\u544a\u7684\u57fa\u7840\u4fe1\u606f\uff0c\u9f20\u6807\u60ac\u6d6e\u5230\u3010\u793a\u4f8b\u3011\u524d\u9762\u7684\u5c0f\u56fe\u6807\uff0c\u53ef\u770b\u5230\u5185\u5bb9\u4e3a\u3010\u6587\u672c\u3011\u548c\u3010\u62a5\u8868\u3011\uff0c\u6839\u636e\u9700\u8981\u8fdb\u884c\u914d\u7f6e\u3002

    \u62a5\u544a\u914d\u7f6e\u5b8c\u6210\u53ef\u70b9\u51fb\u3010\u9884\u89c8\u3011\u3001\u3010\u53d1\u9001\u3011\u3001\u3010\u4fdd\u5b58\u8349\u7a3f\u3011\u3001\u3010\u53d6\u6d88\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u3010\u53d1\u9001\u3011\u3001\u3010\u4fdd\u5b58\u8349\u7a3f\u3011\u7684\u62a5\u544a\u4f1a\u51fa\u73b0\u5728\u62a5\u544a\u5217\u8868\u4e2d

    • \u9884\u89c8\u62a5\u544a

    \u70b9\u51fb\u3010\u9884\u89c8\u3011\u6309\u94ae\uff0c\u5373\u53ef\u9884\u89c8\u8be5\u62a5\u544a\u7684\u5185\u5bb9

    • \u590d\u5236\u62a5\u544a

    \u70b9\u51fb\u3010\u590d\u5236\u3011\u6309\u94ae\uff0c\u5373\u53ef\u590d\u5236\u8be5\u62a5\u544a\uff0c\u663e\u793a\u5728\u5217\u8868\u4e0a\u65b9

    • \u7f16\u8f91\u62a5\u544a

    \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u5373\u53ef\u4fee\u6539\u8be5\u62a5\u544a\u7684\u5185\u5bb9\uff0c\u7f16\u8f91\u5b8c\u6210\u540e\u70b9\u51fb\u3010\u4fdd\u5b58\u8349\u7a3f\u3011\u6216\u3010\u53d1\u9001\u3011

    • \u5220\u9664\u62a5\u544a

    \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u5373\u53ef\u5220\u9664\u8be5\u62a5\u544a

    • \u5b9a\u65f6\u53d1\u9001

    \u70b9\u51fb\u3010\u5b9a\u65f6\u53d1\u9001\u3011\u6309\u94ae\uff0c\u5373\u53ef\u914d\u7f6e\u5b9a\u65f6\u4efb\u52a1\u53d1\u9001\u62a5\u544a

    "},{"location":"user_manual/system_management/intro/","title":"\u6982\u8ff0","text":"

    MeterSphere \u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\u4e3a\u4e0d\u540c\u89d2\u8272\u7684\u7528\u6237\u63d0\u4f9b\u4e86\u5bf9\u5e94\u7684\u7ba1\u7406\u8bbe\u7f6e\u529f\u80fd\uff0c\u5176\u4e2d\u5305\u62ec\uff1a

    • \u7cfb\u7edf\uff1a\u7cfb\u7edf\u7ea7\u522b\u7684\u7ba1\u7406\u914d\u7f6e\u529f\u80fd\uff0c\u4f8b\u5982\u6574\u4e2a\u7cfb\u7edf\u7684\u7528\u6237\u3001\u5de5\u4f5c\u7ba1\u7406\u3001\u7528\u6237\u7ec4\u4e0e\u6743\u9650\uff0c\u6d4b\u8bd5\u8d44\u6e90\u6c60\u7ba1\u7406\u53ca LDAP \u914d\u7f6e\u3001\u90ae\u4ef6\u914d\u7f6e\u7b49\u7cfb\u7edf\u53c2\u6570\u914d\u7f6e\u529f\u80fd\uff0c\u5305\u62ec\u6388\u6743\u7ba1\u7406\u3001\u64cd\u4f5c\u65e5\u5fd7\u3001\u63d2\u4ef6\u7ba1\u7406\u7b49\u5168\u5c40\u914d\u7f6e\u529f\u80fd\uff0c\u7528\u6237\u9700\u8981\u5177\u6709\u3010\u7cfb\u7edf\u7ba1\u7406\u5458\u3011\u89d2\u8272\u624d\u80fd\u770b\u5230\u8be5\u83dc\u5355\u3002
    • \u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406\uff1a\u5de5\u4f5c\u7a7a\u95f4\u7ea7\u522b\u7684\u7ba1\u7406\u914d\u7f6e\u529f\u80fd\uff0c\u4f8b\u5982\u5de5\u4f5c\u7a7a\u95f4\u4e0b\u7684\u6210\u5458\u7ba1\u7406\u4ee5\u53ca\u5de5\u4f5c\u7a7a\u95f4\u7ea7\u522b\u7684\u914d\u7f6e\u529f\u80fd\uff0c\u5305\u62ec\u670d\u52a1\u96c6\u6210\u914d\u7f6e\u3001\u6d88\u606f\u8bbe\u7f6e\u3001\u9879\u76ee\u7ba1\u7406\u3001\u73af\u5883\u7ba1\u7406\u3001\u5de5\u4f5c\u7a7a\u95f4\u7ea7\u522b\u64cd\u4f5c\u65e5\u5fd7\u3001\u6a21\u7248\u7ba1\u7406\u7b49\uff0c\u7528\u6237\u9700\u8981\u5728\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u6709\u3010\u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406\u5458\u3011\u89d2\u8272\u624d\u80fd\u770b\u5230\u8be5\u83dc\u5355\u3002
    "},{"location":"user_manual/system_management/system/","title":"\u7cfb\u7edf","text":"

    \u7cfb\u7edf\u4e3b\u8981\u9488\u5bf9\u7cfb\u7edf\u7ea7\u522b\u7684\u7ba1\u7406\u914d\u7f6e\u529f\u80fd\u3002\u76ee\u524d\uff0cMeterSphere \u5185\u7f6e\u4e09\u7ea7\u79df\u6237\u4f53\u7cfb\u5e76\u53ef\u8bbe\u7f6e\u53ea\u8bfb\u7528\u6237\u3002\u5e73\u53f0\u9ed8\u8ba4\u7528\u6237\u7ec4\u53ca\u7528\u6237\u7ec4\u89d2\u8272\u5212\u5206\u4e3a\uff1a -\u3010\u7cfb\u7edf\u7ea7\u7528\u6237\u7ec4\u3011\uff1a\u7cfb\u7edf\u7ba1\u7406\u5458\u3002 -\u3010\u5de5\u4f5c\u7a7a\u95f4\u7ea7\u7528\u6237\u7ec4\u3011\uff1a\u5de5\u4f5c\u7a7a\u95f4\u7ba1\u7406\u5458\u3001\u5de5\u4f5c\u7a7a\u95f4\u6210\u5458\u3002 -\u3010\u9879\u76ee\u7ea7\u7528\u6237\u7ec4\u3011\uff1a\u9879\u76ee\u7ba1\u7406\u5458\u3001\u9879\u76ee\u6210\u5458\u3001\u53ea\u8bfb\u7528\u6237\u3002 \u5e73\u53f0\u7528\u6237\u7ec4\u652f\u6301\u7528\u6237\u5728\u3010\u7528\u6237\u7ec4\u4e0e\u6743\u9650\u3011\u529f\u80fd\u9875\u9762\u4e2d\u81ea\u5b9a\u4e49\u3002

    "},{"location":"user_manual/system_management/system/#1","title":"1 \u7528\u6237","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u7cfb\u7edf\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u7528\u6237\u3011\u8fdb\u5165\u7528\u6237\u754c\u9762\u3002\u53f3\u4fa7\u663e\u793a\u5f53\u524d\u7cfb\u7edf\u4e2d\u7684\u5168\u90e8\u7528\u6237\u5217\u8868\uff0c\u53ef\u4ee5\u5bf9\u7528\u6237\u8fdb\u884c\u3010\u65b0\u589e\u3011\u3001\u3010\u7f16\u8f91\u3011\u3001\u3010\u67e5\u8be2\u3011\u3001\u3010\u5220\u9664\u3011\u3001\u3010\u66f4\u6539\u72b6\u6001\u3011\u3001\u3010\u8bbe\u7f6e\u5bc6\u7801\u3011\u7b49\u64cd\u4f5c\u3002

    \u8bf4\u660e

    MeterSphere \u90e8\u7f72\u6210\u529f\u540e\u4f1a\u81ea\u52a8\u521b\u5efa\u4e00\u4e2a\u7cfb\u7edf\u7ba1\u7406\u5458\u8d26\u6237\uff0c\u7528\u6237\u540d\u4e3a admin\uff0c\u9ed8\u8ba4\u5bc6\u7801\u4e3a metersphere\u3002\u5982\u5c06\u5e73\u53f0\u7528\u4e8e\u751f\u4ea7\u73af\u5883\uff0c\u8bf7\u53ca\u65f6\u66f4\u6539\u5bc6\u7801\u3002

    • \u521b\u5efa\u7528\u6237 \u70b9\u51fb\u3010\u521b\u5efa\u7528\u6237\u3011\u6309\u94ae\u521b\u5efa\u7528\u6237\uff0c\u5728\u5f39\u51fa\u9875\u9762\u4e2d\u7f16\u8f91\u7528\u6237\u4fe1\u606f\u3002

    \u9700\u8981\u521b\u5efa\u591a\u4e2a\u7528\u6237\u65f6\uff0c\u53ef\u70b9\u51fb\u3010\u5bfc\u5165\u7528\u6237\u3011\u6309\u94ae\uff0c\u4e0b\u8f7d\u6a21\u7248\u5e76\u586b\u5199\u7528\u6237\u4fe1\u606f\uff0c\u901a\u8fc7 Excel \u6587\u4ef6\u5bfc\u5165\u7528\u6237\u3002

    • \u4e3a\u7528\u6237\u6dfb\u52a0\u7528\u6237\u7ec4 \u70b9\u51fb\u3010\u6dfb\u52a0\u7528\u6237\u7ec4\u3011\u6309\u94ae\u4e3a\u7528\u6237\u6dfb\u52a0\u7528\u6237\u7ec4\u4fe1\u606f\u3002\u65b0\u7528\u6237\u81f3\u5c11\u6240\u5c5e\u4e00\u4e2a\u7528\u6237\u7ec4\uff0c\u6bcf\u4e2a\u7528\u6237\u53ef\u4ee5\u5c5e\u4e8e\u591a\u4e2a\u7528\u6237\u7ec4\u3002

    • \u67e5\u8be2\u7528\u6237 \u7528\u6237\u5217\u8868\u53f3\u4e0a\u65b9\uff0c\u4f7f\u7528\u641c\u7d22\u6846\uff0c\u6839\u636e ID \u6216\u540d\u79f0\u67e5\u8be2\u7528\u6237\u3002

    • \u9488\u5bf9\u7528\u6237\u7684\u5176\u4ed6\u64cd\u4f5c \u5728\u7528\u6237\u5217\u8868\u53f3\u4fa7\u64cd\u4f5c\u5217\uff0c\u53ef\u4ee5\u70b9\u51fb\u3010Switch\u3011\u5f00\u5173\u5207\u6362\u9009\u5b9a\u7528\u6237\u542f\u7528\u72b6\u6001\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u53ef\u4fee\u6539\u7528\u6237\u4fe1\u606f\uff0c\u70b9\u51fb\u3010\u4fee\u6539\u5bc6\u7801\u3011\u53ef\u4fee\u6539\u7528\u6237\u7684\u5bc6\u7801\uff0c\u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\u5220\u9664\u8be5\u7528\u6237\u3002

    "},{"location":"user_manual/system_management/system/#2","title":"2 \u5de5\u4f5c\u7a7a\u95f4","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u7cfb\u7edf\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u5de5\u4f5c\u7a7a\u95f4\u3011\u8fdb\u5165\u5de5\u4f5c\u7a7a\u95f4\u754c\u9762\u3002\u53f3\u4fa7\u663e\u793a\u5f53\u524d\u7cfb\u7edf\u4e2d\u7684\u5168\u90e8\u5de5\u4f5c\u7a7a\u95f4\u5217\u8868\uff0c\u53ef\u4ee5\u5bf9\u5de5\u4f5c\u7a7a\u95f4\u8fdb\u884c\u3010\u65b0\u589e\u3011\u3001\u3010\u7f16\u8f91\u3011\u3001\u3010\u67e5\u8be2\u3011\u3001\u3010\u5220\u9664\u3011\u7b49\u64cd\u4f5c\u3002

    • \u521b\u5efa\u5de5\u4f5c\u7a7a\u95f4 \u70b9\u51fb\u3010\u521b\u5efa\u5de5\u4f5c\u7a7a\u95f4\u3011\u6309\u94ae\u521b\u5efa\u5de5\u4f5c\u7a7a\u95f4\uff0c\u5728\u5f39\u51fa\u9875\u9762\u4e2d\u586b\u5199\u540d\u79f0\u548c\u63cf\u8ff0\u3002

    • \u7f16\u8f91\u5de5\u4f5c\u7a7a\u95f4 \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u7f16\u8f91\u5de5\u4f5c\u7a7a\u95f4\uff0c\u5728\u5f39\u51fa\u9875\u9762\u4e2d\u4fee\u6539\u540d\u79f0\u548c\u63cf\u8ff0\u3002

    • \u5220\u9664\u5de5\u4f5c\u7a7a\u95f4 \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\u5220\u9664\u5de5\u4f5c\u7a7a\u95f4\u3002

    "},{"location":"user_manual/system_management/system/#3","title":"3 \u7528\u6237\u7ec4\u4e0e\u6743\u9650","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u7cfb\u7edf\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u7528\u6237\u7ec4\u4e0e\u6743\u9650\u3011\u8fdb\u5165\u7528\u6237\u7ec4\u754c\u9762\u3002\u7528\u6237\u53ef\u57fa\u4e8e\u81ea\u8eab\u9700\u6c42\u521b\u5efa\u81ea\u5b9a\u4e49\u7528\u6237\u7ec4\uff0c\u5e76\u8d4b\u4e88\u7528\u6237\u7ec4\u4e0d\u540c\u7684\u6743\u9650\u8bbe\u7f6e\u3002\u5176\u4e2d\u3010\u8d85\u7ea7\u7ba1\u7406\u5458\u3011\u7528\u6237\u7ec4\u62e5\u6709\u7cfb\u7edf\u5168\u90e8\u5de5\u4f5c\u7a7a\u95f4\u4e0e\u9879\u76ee\u7684\u64cd\u4f5c\u6743\u9650\uff0c\u7528\u6237\u53ef\u4ee5\u4e3a admin \u7528\u6237\u6dfb\u52a0\u3010\u8d85\u7ea7\u7ba1\u7406\u5458\u3011\u6743\u9650\u6765\u7ba1\u7406\u7cfb\u7edf\u5168\u90e8\u6570\u636e\u3002

    • \u521b\u5efa\u7528\u6237\u7ec4 \u70b9\u51fb\u3010\u521b\u5efa\u7528\u6237\u7ec4\u3011\u6309\u94ae\u65b0\u5efa\u81ea\u5b9a\u4e49\u7528\u6237\u7ec4\u3002\u5728\u5f39\u51fa\u7684\u754c\u9762\u4e2d\u7f16\u8f91\u7528\u6237\u7ec4\u540d\u79f0\u53ca\u63cf\u8ff0\uff0c\u9009\u62e9\u7528\u6237\u7ec4\u6240\u5c5e\u7c7b\u578b\u3002\u4f7f\u7528\u3010\u5168\u5c40\u7528\u6237\u7ec4\u3011\u5f00\u5173\u5207\u6362\u7528\u6237\u7ec4\u9002\u7528\u72b6\u6001\u3002\u65b0\u5efa\u7528\u6237\u7ec4\u7c7b\u578b\u4e3a\u7cfb\u7edf\u7c7b\u578b\u65f6\u81ea\u52a8\u5207\u6362\u4e3a\u5168\u5c40\u7528\u6237\u7ec4\uff0c\u6b64\u5f00\u5173\u4e3a\u9ed8\u8ba4\u6253\u5f00\u72b6\u6001\uff1b\u65b0\u5efa\u7528\u6237\u7ec4\u7c7b\u578b\u4e3a\u5176\u4ed6\u7c7b\u578b\u65f6\uff0c\u5168\u5c40\u72b6\u6001\u53ef\u5173\u95ed\uff0c\u6b64\u65f6\u987b\u4e3a\u7528\u6237\u7ec4\u9009\u62e9\u6240\u5c5e\u5de5\u4f5c\u7a7a\u95f4\u3002

    • \u4e3a\u7528\u6237\u7ec4\u914d\u7f6e\u6743\u9650 \u56de\u5230\u7528\u6237\u7ec4\u5217\u8868\u4e2d\uff0c\u70b9\u51fb\u3010\u8bbe\u7f6e\u6743\u9650\u3011\u6309\u94ae\u8fdb\u5165\u7528\u6237\u7ec4\u6743\u9650\u8bbe\u7f6e\u9875\u9762\uff0c\u5728\u8be5\u9875\u9762\u4e2d\u57fa\u4e8e\u7528\u6237\u7ec4\u9700\u6c42\u52fe\u9009\u64cd\u4f5c\u6743\u9650\uff0c\u4e00\u4e2a\u7528\u6237\u7ec4\u5373\u4e3a\u4e00\u4e2a\u6743\u9650\u96c6\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5b8c\u6210\u914d\u7f6e\u3002

    • \u7f16\u8f91\u7528\u6237\u7ec4\u4fe1\u606f \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u7f16\u8f91\u9009\u5b9a\u7528\u6237\u7ec4\u4fe1\u606f\uff0c\u5728\u5f39\u51fa\u9875\u9762\u4e2d\u53ef\u4ee5\u66f4\u6539\u7528\u6237\u7ec4\u540d\u79f0\u53ca\u63cf\u8ff0\u3002

    • \u67e5\u8be2\u7528\u6237\u7ec4 \u7528\u6237\u7ec4\u5217\u8868\u53f3\u4e0a\u65b9\uff0c\u4f7f\u7528\u641c\u7d22\u6846\uff0c\u6839\u636e\u540d\u79f0\u67e5\u8be2\u7528\u6237\u7ec4\u3002

    • \u5220\u9664\u7528\u6237\u7ec4 \u7528\u6237\u7ec4\u5217\u8868\u4e2d\uff0c\u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\u5220\u9664\u81ea\u5b9a\u4e49\u7684\u7528\u6237\u7ec4\uff0c\u7cfb\u7edf\u7528\u6237\u7ec4\u4e0d\u652f\u6301\u5220\u9664\u3002

    "},{"location":"user_manual/system_management/system/#4","title":"4 \u6d4b\u8bd5\u8d44\u6e90\u6c60\u7ba1\u7406","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u7cfb\u7edf\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u6d4b\u8bd5\u8d44\u6e90\u6c60\u3011\u8fdb\u5165\u8d44\u6e90\u6c60\u754c\u9762\u3002\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e3b\u8981\u7528\u4e8e\u63a5\u53e3\u6d4b\u8bd5\u53ca\u6027\u80fd\u7b49\u6d4b\u8bd5\u3002\u53f3\u4fa7\u8d44\u6e90\u6c60\u5217\u8868\u4e2d\uff0c\u53ef\u4ee5\u901a\u8fc7\u3010Switch\u3011\u5f00\u5173\u5207\u6362\u8d44\u6e90\u6c60\u542f\u7528\u72b6\u6001\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u66f4\u6539\u8d44\u6e90\u6c60\u4fe1\u606f\uff0c\u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\u5220\u9664\u9009\u5b9a\u8d44\u6e90\u6c60\u3002

    "},{"location":"user_manual/system_management/system/#41-node","title":"4.1 \u521b\u5efa Node \u8d44\u6e90\u6c60","text":"

    \u70b9\u51fb\u3010\u521b\u5efa\u8d44\u6e90\u6c60\u3011\u6309\u94ae\uff0c\u5728\u5f39\u51fa\u7684\u754c\u9762\u4e2d\u4e3a\u65b0\u5efa\u8d44\u6e90\u6c60\u7f16\u8f91\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u76f8\u5173\u4fe1\u606f\uff0c\u3010\u7c7b\u578b\u3011\u9009\u62e9\u3010Node\u3011\uff0c\u586b\u5199\u76f8\u5e94\u7684\u914d\u7f6e\u4fe1\u606f\uff0c\u5e76\u652f\u6301\u8bbe\u5b9a\u8d44\u6e90\u6c60\u6700\u5927\u5e76\u53d1\u6570\u91cf\u6216\u6700\u5927\u7ebf\u7a0b\u6570\u91cf\u3002

    "},{"location":"user_manual/system_management/system/#42-kubernetes-x-pack","title":"4.2 \u521b\u5efa Kubernetes \u8d44\u6e90\u6c60 (X-Pack)","text":"

    \u70b9\u51fb\u3010\u521b\u5efa\u8d44\u6e90\u6c60\u3011\u6309\u94ae\uff0c\u5728\u5f39\u51fa\u7684\u754c\u9762\u4e2d\u4e3a\u65b0\u5efa\u8d44\u6e90\u6c60\u7f16\u8f91\u540d\u79f0\u3001\u63cf\u8ff0\u7b49\u76f8\u5173\u4fe1\u606f\uff0c\u3010\u7c7b\u578b\u3011\u9009\u62e9\u3010Kubernetes\u3011\uff0c\u586b\u5199\u76f8\u5e94\u7684\u914d\u7f6e\u4fe1\u606f\uff0c\u5e76\u652f\u6301\u8bbe\u5b9a\u8d44\u6e90\u6c60\u6700\u5927\u5e76\u53d1\u6570\u91cf\u6216\u6700\u5927\u7ebf\u7a0b\u6570\u91cf\u3002

    \u83b7\u53d6 Master URL\uff0c\u8f93\u5165 kubectl describe svc kubernetes \u53ef\u83b7\u5f97 Endpoints \u5730\u5740 \u83b7\u53d6 Token\uff0c\u9700\u8981\u6709 k8s \u96c6\u7fa4\u73af\u5883\uff0c\u4e4b\u540e\u521b\u5efa\u597d SA \u548c token\uff0c\u547d\u4ee4\u5982\u4e0b

    # 1 \u521b\u5efa namespaces\nkubectl create namespace metersphere\n# 2 \u521b\u5efa SA\nkubectl create serviceaccount ms -n metersphere\n# 3 \u521b\u5efa namespace \u6388\u6743 SA\nkubectl create clusterrolebinding ms --clusterrole=admin --serviceaccount=metersphere:ms -n metersphere\n# 4 \u67e5\u8be2 SA token\nkubectl describe sa/ms -n metersphere\nkubectl describe secrets -n metersphere ms-token-xxxx\n

    Namespace \u53ef\u4ee5\u8fdb\u884c\u81ea\u5b9a\u4e49\uff0c\u5728 k8s \u96c6\u7fa4\u4e0a\u521b\u5efa\u81ea\u5b9a\u4e49\u7684 Namespace

    kubectl create ns ms-pool\n

    \u4e0b\u8f7d deployment.yaml \u4e0a\u4f20\u5230 k8s \u96c6\u7fa4\u670d\u52a1\u5668\u4e0a\uff0c\u8f93\u5165\u547d\u4ee4\u4f7f\u5176\u751f\u6548\u540e\uff0c\u8f93\u5165\u547d\u4ee4\u67e5\u8be2\u81ea\u5b9a\u4e49 Namespace \u4e0b\u7684 ms-node-controller \u662f\u5426\u6b63\u5e38\u8d77\u6765

    # \u4f7f deployment.yaml \u751f\u6548\nkubectl apply -f deployment.yaml -n ms-pool\n# \u67e5\u8be2 ms-node-controller \u670d\u52a1\nkubectl get all -n ms-pool\n

    Deploy Name \u4f7f\u7528\u9ed8\u8ba4\u7684 ms-node-controller \u5c31\u884c\uff0c\u4e0d\u9700\u8981\u66f4\u6539\u3002 \u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u786e\u5b9a\u5373\u53ef\u3002\u5728\u8d44\u6e90\u6c60\u5217\u8868\u4e2d\u6709\u8be5\u8d44\u6e90\u6c60\uff0c\u5728\u6027\u80fd\u6d4b\u8bd5\u9875\u9762-\u538b\u529b\u914d\u7f6e\u5904\u4e5f\u53ef\u4ee5\u770b\u5230\u8be5\u8d44\u6e90\u6c60\u3002

    • \u67e5\u8be2\u8d44\u6e90\u6c60 \u8d44\u6e90\u6c60\u5217\u8868\u53f3\u4e0a\u65b9\uff0c\u4f7f\u7528\u641c\u7d22\u6846\uff0c\u6839\u636e\u540d\u79f0\u67e5\u8be2\u8d44\u6e90\u6c60\u3002
    • \u5220\u9664\u8d44\u6e90\u6c60 \u8d44\u6e90\u6c60\u5217\u8868\u4e2d\uff0c\u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\u5220\u9664\u9009\u5b9a\u8d44\u6e90\u6c60\u3002
    "},{"location":"user_manual/system_management/system/#5","title":"5 \u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u7cfb\u7edf\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e\u3011\u8fdb\u5165\u53c2\u6570\u8bbe\u7f6e\u754c\u9762\uff0c\u7528\u4e8e\u5e73\u53f0\u3010\u57fa\u672c\u914d\u7f6e\u3011\u3001\u3010\u90ae\u4ef6\u8bbe\u7f6e\u3011\u3001\u3010LDAP\u8bbe\u7f6e\u3011\u3001\u3010\u663e\u793a\u8bbe\u7f6e\u3011\u3001\u3010\u8ba4\u8bc1\u8bbe\u7f6e\u3011\u3001\u3010\u6a21\u5757\u7ba1\u7406\u3011\u7b49\u53c2\u6570\u7684\u8bbe\u7f6e\u3002

    "},{"location":"user_manual/system_management/system/#51","title":"5.1 \u57fa\u672c\u914d\u7f6e","text":"

    \u6027\u80fd\u6d4b\u8bd5\u6267\u884c\u8fc7\u7a0b\u4e2d node-controller \u8282\u70b9\u9700\u8981\u901a\u8fc7\u914d\u7f6e\u7684\u3010\u5f53\u524d\u7ad9\u70b9URL\u3011\u4e0b\u8f7d JMX \u7b49\u6d4b\u8bd5\u8d44\u6e90\u6587\u4ef6\u3002\u5728\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u524d\u9700\u8981\u914d\u7f6e\u5e76\u68c0\u67e5\u6d4b\u8bd5\u8d44\u6e90\u6c60\u4e2d\u7684\u8282\u70b9\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u5230\u8be5 URL\uff0cURL \u503c\u4e00\u822c\u4e3a\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee MeterSphere \u7684\u5730\u5740\u3002

    \u9009\u9879

    • \u3010\u5f53\u524d\u7ad9\u70b9URL\u3011\uff1a\u5f53\u524d MeterSphere \u7ad9\u70b9\u5730\u5740\uff0c\u7528\u4e8e\u6027\u80fd\u6d4b\u8bd5 JMeter \u4ece MeterSphere \u7ad9\u70b9\u83b7\u53d6\u538b\u6d4b\u811a\u672c\u7b49\u6570\u636e\u3002
    • \u3010\u5e76\u53d1\u6570\u3011\uff1a\u9650\u5236\u573a\u666f\u63a5\u53e3\u81ea\u52a8\u5316\u4e2d\u573a\u666f\u5e76\u884c\u6267\u884c\u65f6\u7684\u5e76\u53d1\u6570\u91cf\u3002
    • \u3010Prometheus \u5730\u5740\u3011\uff1aPrometheus \u76d1\u63a7\u670d\u52a1\u5730\u5740\u3002
    • \u3010selenium-docker \u5730\u5740\u3011\uff1aselenium \u670d\u52a1\u5730\u5740\u3002
    • \u3010\u63a5\u53e3\u9ed8\u8ba4\u672c\u5730\u6267\u884c\u3011\uff1a\u7981\u7528\u540e\u6240\u6709\u6267\u884c\u529f\u80fd\u53ea\u80fd\u901a\u8fc7\u6d4b\u8bd5\u8d44\u6e90\u6c60\u6267\u884c\uff0c\u4e3a\u4e86\u4e0d\u5f71\u54cd\u63a5\u53e3\u6b63\u5e38\u6267\u884c\uff0c\u9009\u62e9\u3010\u7981\u7528\u3011\u540e\uff0c\u8bf7\u5728\u3010 \u9879\u76ee\u8bbe\u7f6e-\u5e94\u7528\u7ba1\u7406-\u63a5\u53e3\u6d4b\u8bd5 \u3011\u4e2d\u914d\u7f6e\u63a5\u53e3\u6267\u884c\u7684\u8d44\u6e90\u6c60\u3002
    "},{"location":"user_manual/system_management/system/#52","title":"5.2 \u90ae\u4ef6\u8bbe\u7f6e","text":"

    \u5207\u6362\u81f3\u3010\u90ae\u4ef6\u8bbe\u7f6e\u3011\u6807\u7b7e\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u53ef\u4ee5\u5bf9 SMTP \u4fe1\u606f\u8fdb\u884c\u4fee\u6539\u3001\u4fdd\u5b58\u3002

    "},{"location":"user_manual/system_management/system/#53-ldap","title":"5.3 LDAP \u8bbe\u7f6e","text":"

    \u5207\u6362\u81f3\u3010LDAP\u8bbe\u7f6e\u3011\u6807\u7b7e\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u914d\u7f6e LDAP \u767b\u5f55\u76f8\u5173\u53c2\u6570\u3002

    \u9009\u9879

    • \u3010LDAP\u5730\u5740\u3011\uff1aldap://serveurl:389 \u6216 ldaps://serveurl:636
    • \u3010\u7ed1\u5b9aDN\u3011\uff1acn=administrator,cn=Users,dc=metersphere,dc=com
    • \u3010\u7528\u6237OU\u3011\uff1aou=metersphere,dc=metersphere,dc=com
    • \u3010\u7528\u6237\u8fc7\u6ee4\u5668\u3011\uff1asAMAccountName={0}
    • \u3010LDAP\u5c5e\u6027\u6620\u5c04\u3011\uff1a{\"username\":\"sAMAccountName\",\"name\":\"cn\",\"email\":\"mail\"}

    \u9009\u9879\u8bf4\u660e

    • \u3010OU\u3011\uff1a\u540c\u7ea7\u591aOU\u7528\uff5c\u5206\u5272
    • \u3010\u7528\u6237\u8fc7\u6ee4\u5668\u3011\uff1a\u6839\u636e\u89c4\u5219\u5230 \u7528\u6237OU \u91cc\u9762\u53bb\u68c0\u7d22\u7528\u6237\uff0c\u53ef\u80fd\u7684\u9009\u9879\u4e3a (uid={0}) \u6216 (sAMAccountName={0}) \u6216 (cn={0})
    • \u3010LDAP\u5c5e\u6027\u6620\u5c04\u3011\uff1a{\"username\":\"sAMAccountName\",\"name\":\"cn\",\"email\":\"mail\",\"phone\":\"phone\"}\uff0cusername,name,email \u4e09\u9879\u4e0d\u53ef\u4fee\u6539\u5220\u9664, phone \u5c5e\u6027\u53ef\u9009
    • \u3010\u542f\u7528LDAP\u8ba4\u8bc1\u3011\uff1a\u542f\u7528\u540e\u767b\u5f55\u9875\u663e\u793a LDAP \u767b\u5f55\u9009\u9879

    \u6ce8\u610f

    \u7528\u6237\u8fc7\u6ee4\u5668\u7528\u4ec0\u4e48\u7b5b\u9009, LDAP \u5c5e\u6027\u6620\u5c04\u5b57\u6bb5\u8981\u4e0e\u5176\u4e00\u81f4, \u8fc7\u6ee4\u5668\u7528 sAMAccountName, LDAP\u5c5e\u6027\u6620\u5c04\u4e5f\u8981\u7528 sAMAccountName

    \u542f\u7528 LDAP \u8ba4\u8bc1\u540e\uff0c\u767b\u5f55\u9875\u4f1a\u65b0\u589e LDAP \u767b\u5f55\u9009\u9879\u3002

    "},{"location":"user_manual/system_management/system/#54-x-pack","title":"5.4 \u663e\u793a\u8bbe\u7f6e (X-Pack)","text":"

    \u5207\u6362\u81f3\u3010\u663e\u793a\u8bbe\u7f6e\u3011\u6807\u7b7e\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u914d\u7f6e\u7cfb\u7edf\u7684 logo \u4ee5\u53ca\u663e\u793a\u7684\u6587\u5b57\u548c\u56fe\u7247\uff0c\u586b\u5199\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5373\u53ef\u3002

    "},{"location":"user_manual/system_management/system/#55-x-pack","title":"5.5 \u8ba4\u8bc1\u8bbe\u7f6e (X-Pack)","text":"

    \u5207\u6362\u81f3\u3010\u8ba4\u8bc1\u8bbe\u7f6e\u3011\u6807\u7b7e\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u3011\u6309\u94ae\uff0c\u586b\u5199 CAS\u3001OIDC\u3001OAuth2 \u7b49\u65b9\u5f0f\u7684\u5355\u70b9\u767b\u5f55\u534f\u8bae\u8ba4\u8bc1\u4fe1\u606f\u3002

    \u53ef\u4ee5\u70b9\u51fb\u3010\u542f\u7528/\u7981\u7528\u3011\u6309\u94ae\u6216\u8005\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u82e5\u542f\u7528 CAS\u3001OIDC \u8ba4\u8bc1\u540e\uff0c\u767b\u5f55\u9875\u4f1a\u65b0\u589e CAS\u3001OIDC \u767b\u5f55\u9009\u9879\u3002

    "},{"location":"user_manual/system_management/system/#56-x-pack","title":"5.6 \u6a21\u5757\u7ba1\u7406 (X-Pack)","text":"

    \u5207\u6362\u81f3\u3010\u6a21\u5757\u7ba1\u7406\u3011\u6807\u7b7e\uff0c\u70b9\u51fb\u3010\u542f\u7528/\u7981\u7528\u3011\u6309\u94ae\uff0c\u7cfb\u7edf\u53ea\u663e\u793a\u3010\u542f\u7528\u3011\u7684\u6a21\u5757\uff0c\u3010\u7981\u7528\u3011\u7684\u6a21\u5757\u4e0d\u4f1a\u5728\u7cfb\u7edf\u4e2d\u51fa\u73b0\u3002

    "},{"location":"user_manual/system_management/system/#57-x-pack","title":"5.7 \u626b\u7801\u767b\u5f55 (X-Pack)","text":"

    \u5207\u6362\u81f3\u3010\u626b\u7801\u767b\u5f55\u3011\u6807\u7b7e\uff0c\u7cfb\u7edf\u652f\u6301\u4f01\u4e1a\u5fae\u4fe1\u3001\u9489\u9489\u3001\u98de\u4e66\u7b49\u65b9\u5f0f\u626b\u7801\u767b\u5f55\u3002

    \u4f01\u4e1a\u5fae\u4fe1

    \u6253\u5f00 \u4f01\u4e1a\u5fae\u4fe1\u7ba1\u7406\u540e\u53f0\uff0c\u7528\u7ba1\u7406\u5458\u6743\u9650\u7528\u6237\u767b\u5f55\u3002\u70b9\u51fb\u3010\u6211\u7684\u4f01\u4e1a\u3011\u83b7\u53d6\u4f01\u4e1aID\u3002

    \u70b9\u51fb\u3010\u5de5\u4f5c\u53f0-\u5e94\u7528\u7ba1\u7406-\u521b\u5efa\u5e94\u7528\u3011\uff0c\u8fdb\u5165\u5e94\u7528\u9875\u9762\u8fdb\u884c\u521b\u5efa\u3002

    \u70b9\u51fb\u5e94\u7528\u8fdb\u5165\uff0c\u83b7\u53d6 AgentId\u3001Scret\u3002

    \u70b9\u51fb\u4f01\u4e1a\u5fae\u4fe1\u6388\u6743\u767b\u5f55\uff0c\u914d\u7f6e\u56de\u8c03\u5730\u5740\u3002

    \u914d\u7f6e\u4f01\u4e1a\u53ef\u4fe1IP\u3002

    \u70b9\u51fb\u3010\u4f01\u4e1a\u5fae\u4fe1\u3011\u6dfb\u52a0\u6309\u94ae\uff0c\u586b\u5199\u4f01\u4e1aID\u3001\u5e94\u7528ID\u3001\u5e94\u7528\u5bc6\u94a5\uff0c\u6d4b\u8bd5\u8fde\u63a5\u901a\u8fc7\u540e\uff0c\u5f00\u542f\u72b6\u6001\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5373\u53ef\u3002

    \u767b\u5f55\u9875\u9762\uff0c\u70b9\u51fb\u626b\u7801\u767b\u5f55\u5373\u53ef\u3002

    \u9489\u9489

    \u6253\u5f00 \u9489\u9489\u5f00\u53d1\u5e73\u53f0\uff0c\u7528\u7ba1\u7406\u5458\u6743\u9650\u7528\u6237\u767b\u5f55\u3002\u70b9\u51fb\u3010\u5e94\u7528\u5f00\u53d1-\u9489\u9489\u5e94\u7528-\u521b\u5efa\u5e94\u7528\u3011\u3002

    \u70b9\u51fb\u5e94\u7528\u8fdb\u5165\uff0c\u83b7\u53d6 AgentId\u3001Client ID \u548c Client Secret\u3002

    \u70b9\u51fb\u3010\u5206\u4eab\u8bbe\u7f6e-\u56de\u8c03\u57df\u540d\u3011\uff0c\u5728\u914d\u7f6e\u9875\u9762\u586b\u5199\u56de\u8c03\u57df\u540d(\u56de\u8c03\u57df\u540d\u4e3a MeterSphere \u7684\u8bbf\u95ee\u5730\u5740)\uff0c\u70b9\u51fb\u6dfb\u52a0\u5373\u53ef\u3002

    \u70b9\u51fb\u3010\u5b89\u5168\u8bbe\u7f6e\u3011\uff0c\u586b\u5199\u670d\u52a1\u5668\u51fa\u53e3IP\uff0c\u70b9\u51fb\u4fdd\u5b58\u5373\u53ef\u3002

    \u8fdb\u884c\u3010\u6743\u9650\u7ba1\u7406-\u6210\u5458\u4fe1\u606f\u8bfb\u6743\u9650-\u52fe\u9009-\u6279\u91cf\u7533\u8bf7\u3011\u64cd\u4f5c\uff0c\u641c\u7d22\u3010User\u3011\u540e\uff0c\u5f00\u901a\u3010\u4e2a\u4eba\u624b\u673a\u53f7\u4fe1\u606f\u3011\u3001\u3010\u901a\u8baf\u5f55\u4e2a\u4eba\u4fe1\u606f\u8bfb\u6743\u9650\u3011\u3001\u3010\u8c03\u7528\u9489\u9489\u9879\u76ee\u7ba1\u7406\u76f8\u5173\u63a5\u53e3\u7684\u6743\u9650\u3011\u6743\u9650\u3002

    \u70b9\u51fb\u3010\u9489\u9489\u3011\u6dfb\u52a0\u6309\u94ae\uff0c\u586b\u5199\u5e94\u7528key\u3001\u5e94\u7528ID\u3001\u5e94\u7528\u5bc6\u94a5\uff0c\u6d4b\u8bd5\u8fde\u63a5\u901a\u8fc7\u540e\uff0c\u5f00\u542f\u72b6\u6001\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5373\u53ef\u3002

    \u767b\u5f55\u9875\u9762\uff0c\u70b9\u51fb\u9489\u9489\u626b\u7801\u767b\u5f55\u5373\u53ef\u3002

    \u98de\u4e66

    \u6253\u5f00 \u98de\u4e66\u5f00\u653e\u5e73\u53f0\uff0c\u7528\u7ba1\u7406\u5458\u6743\u9650\u7528\u6237\u767b\u5f55\u3002\u70b9\u51fb\u3010\u521b\u5efa\u4f01\u4e1a\u81ea\u5efa\u5e94\u7528\u3011\u3002

    \u8f93\u5165\u5e94\u7528\u540d\u79f0\u548c\u5e94\u7528\u63cf\u8ff0\uff0c\u70b9\u51fb\u3010\u521b\u5efa\u3011\u5373\u53ef\u3002

    \u70b9\u51fb\u3010\u6dfb\u52a0\u5e94\u7528\u80fd\u529b\u3011\uff0c\u6dfb\u52a0\u7f51\u9875\u5e94\u7528\u3002

    \u5728\u3010\u7f51\u9875\u5e94\u7528\u3011\u9875\u9762\uff0c\u586b\u5199\"\u684c\u9762\u7aef\u4e3b\u9875\"\u548c\"\u79fb\u52a8\u7aef\u4e3b\u9875\"\u5185\u5bb9\uff0c\u5747\u4e3a MeterSphere \u8bbf\u95ee\u5730\u5740\u3002

    \u70b9\u51fb\u3010\u5b89\u5168\u8bbe\u7f6e\u3011\uff0c\u6dfb\u52a0\u91cd\u5b9a\u5411 URL \u548c H5 \u53ef\u4fe1\u57df\u540d\uff0c\u5747\u586b\u5199\u586b\u5199 MeterSphere \u8bbf\u95ee\u5730\u5740\u3002

    \u5982\u4e0b\u56fe\uff0c\u6279\u91cf\u5f00\u901a\u3010\u83b7\u53d6\u7528\u6237 user ID\u3011\u3001\u3010\u83b7\u53d6\u4e0e\u53d1\u9001\u5355\u804a\u3001\u7fa4\u7ec4\u6d88\u606f\u3011\u3001\u3010\u83b7\u53d6\u7528\u6237\u6027\u522b\u3011\u3001\u3010\u83b7\u53d6\u5355\u4f4d\u4fe1\u606f\u3011\u3001\u3010\u83b7\u53d6\u901a\u8baf\u5f55\u90e8\u95e8\u7ec4\u7ec7\u67b6\u6784\u4fe1\u606f\u3011\u3001\u3010\u83b7\u53d6\u7528\u6237\u7ec4\u4fe1\u606f\u3011\u3001\u3010\u83b7\u53d6\u7528\u6237\u7ec4\u7ec7\u67b6\u6784\u4fe1\u606f\u3011\u3001\u3010\u83b7\u53d6\u89d2\u8272\u6743\u9650\u3011\u3001\u3010\u83b7\u53d6\u804c\u52a1\u5217\u8868\u3011\u3001\u3010\u83b7\u53d6\u90e8\u95e8\u57fa\u7840\u4fe1\u606f\u3011\u3001\u3010\u901a\u8fc7\u624b\u673a\u53f7\u6216\u90ae\u7bb1\u83b7\u53d6\u7528\u6237 ID\u3011\u3001\u3010\u83b7\u53d6\u7528\u6237\u57fa\u672c\u4fe1\u606f\u3011\u3001\u3010\u83b7\u53d6\u5de5\u4f5c\u57ce\u5e02\u5217\u8868\u3011\u3001\u3010\u83b7\u53d6\u7528\u6237\u90ae\u7bb1\u4fe1\u606f\u3011\u3001\u3010\u83b7\u53d6\u7528\u6237\u624b\u673a\u53f7\u3011\u3001\u3010\u83b7\u53d6\u901a\u8baf\u5f55\u57fa\u672c\u4fe1\u606f\u3011\u3001\u3010\u83b7\u53d6\u6210\u5458\u6240\u5728\u90e8\u95e8\u8def\u5f84\u3011\u3001\u3010\u83b7\u53d6\u7528\u6237\u53d7\u96c7\u4fe1\u606f\u3011\u7b49\u6743\u9650\u3002

    \u70b9\u51fb\u3010\u7248\u672c\u7ba1\u7406\u4e0e\u53d1\u5e03-\u521b\u5efa\u7248\u672c\u3011\uff0c\u586b\u5199\u5e94\u7528\u7248\u672c\u53f7\u548c\u66f4\u65b0\u8bf4\u660e\u7b49\u4fe1\u606f\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u3002

    \u70b9\u51fb\u3010\u786e\u8ba4\u53d1\u5e03\u3011\u5373\u53ef\u5c06\u8be5\u5e94\u7528\u63d0\u4ea4\u5230\u7ebf\u4e0a\u5e76\u81ea\u52a8\u751f\u6548\u3002

    \u70b9\u51fb\u3010\u51ed\u8bc1\u4e0e\u57fa\u7840\u4fe1\u606f\u3011\uff0c\u83b7\u53d6 APP ID \u548c APP Secret \u7b49\u51ed\u8bc1\u4fe1\u606f\u3002

    \u70b9\u51fb\u3010\u98de\u4e66\u3011\u6dfb\u52a0\u6309\u94ae\uff0c\u586b\u5199\u5e94\u7528ID\u3001\u5e94\u7528\u5bc6\u94a5\uff0c\u6d4b\u8bd5\u8fde\u63a5\u901a\u8fc7\u540e\uff0c\u5f00\u542f\u72b6\u6001\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5373\u53ef\u3002

    \u767b\u5f55\u9875\u9762\uff0c\u70b9\u51fb\u98de\u4e66\u626b\u7801\u767b\u5f55\u5373\u53ef\u3002

    "},{"location":"user_manual/system_management/system/#6-x-pack","title":"6 \u914d\u989d\u7ba1\u7406 (X-Pack)","text":"

    \u8fdb\u5165\u3010\u914d\u989d\u7ba1\u7406\u3011\u9875\u9762\uff0c\u53ef\u3010\u7f16\u8f91\u3011\u4e0a\u65b9\u7684\u5de5\u4f5c\u7a7a\u95f4\u9ed8\u8ba4\u914d\u989d\uff0c\u7f16\u8f91\u5b8c\u6210\u540e\uff0c\u5728\u914d\u989d\u5217\u8868\u4e2d\u4f7f\u7528\u9ed8\u8ba4\u914d\u7f6e\u7684\uff0c\u5c06\u540c\u6b65\u66f4\u65b0\u7f16\u8f91\u7684\u6570\u636e\u3002

    \u70b9\u51fb\u5de5\u4f5c\u7a7a\u95f4\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u53ef\u5bf9\u5355\u4e2a\u5de5\u4f5c\u7a7a\u95f4\u8fdb\u884c\u914d\u989d\u7ba1\u7406\u8bbe\u7f6e

    \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u5373\u53ef\u5220\u9664\u5df2\u914d\u7f6e\u597d\u7684\u5185\u5bb9\uff0c\u6062\u590d\u5230\u6700\u521d\u72b6\u6001\uff0c\u4f7f\u7528\u9ed8\u8ba4\u914d\u989d\u7684\u72b6\u6001\u4e5f\u7531\u3010\u662f\u3011\u53d8\u6210\u3010\u5426\u3011

    "},{"location":"user_manual/system_management/system/#7","title":"7 \u6388\u6743\u7ba1\u7406","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u7cfb\u7edf\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u6388\u6743\u7ba1\u7406\u3011\u8fdb\u5165\u6388\u6743\u7ba1\u7406\u754c\u9762\uff0c\u70b9\u51fb\u3010\u6388\u6743\u9a8c\u8bc1\u3011\u5bfc\u5165\u4f01\u4e1a\u7248\u8bc1\u4e66\uff0c\u5f00\u542f X-Pack \u529f\u80fd\u3002

    "},{"location":"user_manual/system_management/system/#8","title":"8 \u64cd\u4f5c\u65e5\u5fd7","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u7cfb\u7edf\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u64cd\u4f5c\u65e5\u5fd7\u3011\u8fdb\u5165\u65e5\u5fd7\u754c\u9762\uff0c\u663e\u793a\u767b\u5f55\u7528\u6237\u6743\u9650\u8303\u56f4\u5185\u7684\u5168\u90e8\u6d4b\u8bd5\u8d44\u6e90\u65e5\u5fd7\u4fe1\u606f\uff0c\u5e76\u652f\u6301\u4f7f\u7528\u9ad8\u7ea7\u67e5\u8be2\u6765\u5feb\u901f\u67e5\u627e\u76f8\u5173\u65e5\u5fd7\u3002

    "},{"location":"user_manual/system_management/system/#9","title":"9 \u63d2\u4ef6\u7ba1\u7406","text":""},{"location":"user_manual/system_management/system/#91-websocket-x-pack","title":"9.1 WebSocket \u63d2\u4ef6 (X-Pack)","text":"

    \u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e\u3011-\u3010\u7cfb\u7edf\u3011-\u3010\u63d2\u4ef6\u7ba1\u7406\u3011\u754c\u9762\u4e0b\uff0c\u4e0a\u4f20 WebSocket \u63d2\u4ef6

    \u5728\u3010\u63a5\u53e3\u6d4b\u8bd5\u3011-\u3010\u63a5\u53e3\u81ea\u52a8\u5316\u3011\u754c\u9762\u4e0b\uff0c\u65b0\u5efa\u4e00\u4e2a\u573a\u666f\uff0c\u70b9\u51fb\u573a\u666f\u53f3\u4e0b\u89d2\u3010+\u3011\u53f7\uff0c\u6dfb\u52a0 WebSocket \u76f8\u5173\u8bf7\u6c42\u3002

    "},{"location":"user_manual/system_management/workspace/","title":"\u5de5\u4f5c\u7a7a\u95f4","text":""},{"location":"user_manual/system_management/workspace/#1","title":"1 \u6210\u5458","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u5de5\u4f5c\u7a7a\u95f4\u3011\u4e0b\u62c9\u83dc\u5355\u4e2d\u7684\u3010\u6210\u5458\u3011\u8fdb\u5165\u6210\u5458\u754c\u9762\uff0c\u67e5\u770b\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u6240\u6709\u6210\u5458\u4fe1\u606f\u3002\u53ef\u4ee5\u5bf9\u6210\u5458\u8fdb\u884c\u3010\u65b0\u589e\u3011\uff0c\u3010\u7f16\u8f91\u3011\uff0c\u3010\u67e5\u8be2\u3011\uff0c\u3010\u5220\u9664\u3011\u3002

    • \u6dfb\u52a0\u6210\u5458 \u70b9\u51fb\u3010\u6dfb\u52a0\u6210\u5458\u3011\u6309\u94ae\u6dfb\u52a0\u6210\u5458\u6237\uff0c\u5728\u5f39\u51fa\u9875\u9762\u4e2d\u9009\u62e9\u8981\u6dfb\u52a0\u7684\u7528\u6237\u3002

    \u53c2\u6570\u8bf4\u660e

    • \u53ef\u6839\u636e\u7528\u6237 ID \u548c\u7528\u6237\u90ae\u7bb1\u641c\u7d22\u9700\u8981\u6dfb\u52a0\u7684\u7528\u6237\uff0c\u7cfb\u7edf\u652f\u6301\u53ef\u4e00\u6b21\u6dfb\u52a0\u591a\u4e2a\u6210\u5458\u3002
    • \u53ef\u9009\u62e9\u7528\u6237\u7ec4\uff0c\u6b64\u4e0b\u62c9\u4fe1\u606f\u7684\u7528\u6237\u7ec4\uff0c\u5176\u3010\u6240\u5c5e\u7c7b\u578b\u3011\u5c5e\u4e8e\u3010\u7ec4\u7ec7\u7ea7\u522b\u3011\u7684\u7528\u6237\u7ec4\uff0c\u7cfb\u7edf\u652f\u6301\u4e00\u6b21\u6dfb\u52a0\u591a\u4e2a\u7528\u6237\u7ec4\u3002
    • \u70b9\u51fb\u3010\u786e\u8ba4\u3011\u5b8c\u6210\u7ec4\u7ec7\u6210\u5458\u6dfb\u52a0\u3002
    • \u7f16\u8f91\u6210\u5458 \u5728\u6210\u5458\u4fe1\u606f\u4e2d\u53ef\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u548c\u3010\u5220\u9664\u3011\u8fdb\u884c\u6210\u5458\u4fee\u6539\u548c\u5220\u9664\u64cd\u4f5c\u3002

    • \u67e5\u8be2\u7528\u6237 \u53ef\u6309\u540d\u79f0\u6765\u6a21\u7cca\u67e5\u8be2\u6210\u5458\u4fe1\u606f\uff0c\u8f93\u5165\u67e5\u8be2\u4fe1\u606f\uff0c\u70b9\u51fb\u56de\u8f66\u5373\u53ef\u5b8c\u6210\u67e5\u8be2\u3002

    "},{"location":"user_manual/system_management/workspace/#2","title":"2 \u670d\u52a1\u96c6\u6210","text":"

    \u53ef\u67e5\u770b\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u91cc\u96c6\u6210\u7684\u7f3a\u9677\u7ba1\u7406\u5e73\u53f0\uff0c\u5e76\u8bbe\u7f6e\u548c\u4fee\u6539\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u9700\u8981\u5c06\u6d4b\u8bd5\u7528\u4f8b\u7f3a\u9677\u6570\u636e\u540c\u6b65\u7684\u7f3a\u9677\u7ba1\u7406\u5e73\u53f0\u3002 \u70b9\u51fb\u3010\u5de5\u4f5c\u7a7a\u95f4\u3011\u83dc\u5355\u680f\uff0c\u70b9\u51fb\u3010\u670d\u52a1\u96c6\u6210\u3011\uff0c\u5373\u53ef\u67e5\u770b\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u5df2\u96c6\u6210\u7684\u7f3a\u9677\u7ba1\u7406\u5e73\u53f0\uff0c\u540c\u65f6\u53ef\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u96c6\u6210 TAPD\u3001JIRA \u548c\u7985\u9053\u3001Azure Devops\u7b49\u5e73\u53f0\u3002 v2.4 \u7248\u672c\u7f3a\u9677\u5bf9\u63a5\u5b9e\u73b0\u4e86\u63d2\u4ef6\u5316\uff0c\u53ef\u6839\u636e\u81ea\u8eab\u9700\u6c42\u5f00\u53d1\u5bf9\u5e94\u63d2\u4ef6\u3002\u5177\u4f53\u53c2\u8003\u63d2\u4ef6\u9879\u76ee\uff1ahttps://github.com/metersphere/metersphere-platform-plugin

    Metersphere \u5e73\u53f0\u4e0e\u7ba1\u7406\u5de5\u5177\u96c6\u6210\u8bbe\u7f6e\u53ef\u5206\u4e3a\u4e09\u6b65\u9aa4\u6765\u5b8c\u6210

    (1)\u9996\u5148\u914d\u7f6e\u548c\u9879\u76ee\u7ba1\u7406\u5de5\u5177\u96c6\u6210\u8bbe\u7f6e\u3002 (2)\u5176\u6b21\u914d\u7f6e\u9879\u76ee\u76f8\u5173\u4fe1\u606f\u3002 (3)\u7136\u540e\u4e3a\u6bcf\u4e2a\u767b\u5f55\u7528\u6237\u8bbe\u7f6e\u5404\u81ea\u7684\u4e2a\u4eba\u8d26\u53f7\uff0c\u6b64\u914d\u7f6e\u4e5f\u53ef\u4ee5\u4e0d\u8bbe\u7f6e\u3002

    "},{"location":"user_manual/system_management/workspace/#21-tapd","title":"2.1 \u4e0eTAPD\u96c6\u6210","text":"

    \u7b2c\u4e00\u6b65\uff1a\u670d\u52a1\u96c6\u6210\u914d\u7f6e\u3002

    \u53c2\u6570\u8bf4\u660e

    \u3010API \u8d26\u53f7\u548c\u53e3\u4ee4\u3011\u662f Tapd Basic Auth \u8d26\u53f7\u4fe1\u606f\u5728\u3010\u516c\u53f8\u7ba1\u7406-\u5b89\u5168\u4e0e\u96c6\u6210-\u5f00\u653e\u5e73\u53f0\u3011\u4e2d\u67e5\u8be2\u3002

    \u7b2c\u4e8c\u6b65\uff1a\u5173\u8054\u9879\u76ee\u914d\u7f6e\u3002 \u914d\u7f6e\u5b8c\u670d\u52a1\u96c6\u6210\u540e\uff0c\u8fd8\u9700\u8981\u914d\u7f6e\u9879\u76ee\u4e2d\u5f15\u7528 TAPD \u9879\u76ee\u7684\u8bbe\u7f6e\uff0c\u5373\u5173\u8054\u9879\u76ee\u3002\u70b9\u51fb\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u5173\u8054\u9879\u76ee\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u8df3\u8f6c\u5230\u9879\u76ee\u7ba1\u7406\u9875\u9762\uff0c\u70b9\u51fb\u9879\u76ee\u5217\u8868\u4e2d\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u7f16\u8f91\u9879\u76ee\u91cc\u3010TAPD \u9879\u76ee ID\u3011\uff0c\u4ee5\u53ca\u7f3a\u9677\u6a21\u677f\u7b49\u76f8\u5173\u4fe1\u606f\u3002

    \u540c\u65f6\uff0c\u8fd8\u9700\u8981\u914d\u7f6e\u9879\u76ee\u4e2d\u7684 TAPD \u7f3a\u9677\u6a21\u677f\u8bbe\u7f6e\uff0c\u3010\u7f3a\u9677\u6a21\u677f\u3011\u9700\u8981\u9009\u62e9\u3010TAPD-\u9ed8\u8ba4\u6a21\u677f\u3011\u3002

    \u7b2c\u4e09\u6b65\uff1a\u6dfb\u52a0\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7\u3002 \u70b9\u51fb\u670d\u52a1\u96c6\u6210\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u6dfb\u52a0\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u8be5\u4fe1\u606f\u4e3a\u901a\u8fc7 TAPD \u63d0\u4ea4\u7f3a\u9677\u7684\u7528\u6237\u8ba4\u8bc1\u4fe1\u606f\uff0c\u82e5\u672a\u586b\u5199\uff0c\u5219\u4f7f\u7528\u7ec4\u7ec7\u4e2d\u914d\u7f6e\u7684\u9ed8\u8ba4\u4fe1\u606f\u3002 \u9009\u62e9\u3010\u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u3011\u8bbe\u7f6e\u3010Tapd\u3011\u4fe1\u606f\uff0c\u5982\u679c\u4e0d\u8bbe\u7f6e\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7\uff0c\u5219\u6240\u6709\u4f7f\u7528 MeterSphere \u63d0\u4ea4\u7f3a\u9677\u7684\u7528\u6237\uff0c\u6b64\u7f3a\u9677\u63a8\u9001\u5230\u914d\u7f6e\u7684\u670d\u52a1\u5e73\u53f0\u4e0a\u8d26\u53f7\u90fd\u662f\u670d\u52a1\u914d\u7f6e\u4e2d\u8bbe\u5b9a\u7684\u8d26\u53f7\u4fe1\u606f\u3002

    \u53c2\u6570\u8bf4\u660e\uff1a\u3010TAPD \u6635\u79f0\u3011\u662f TAPD \u4e2a\u4eba\u8bbe\u7f6e\u91cc\u67e5\u770b\u3002

    \u4ee5\u4e0a\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u5728 Metersphere \u7cfb\u7edf\u4e2d\u6d4b\u8bd5\u7528\u4f8b\u91cc\uff0c\u5c31\u53ef\u4ee5\u5173\u8054 TAPD \u7684\u76f8\u5173\u9700\u6c42\u3002

    \u5728\u7f3a\u9677\u7ba1\u7406\u63d0\u4ea4\u7f3a\u9677\u540e\uff0c\u5e73\u53f0\u7c7b\u578b\u663e\u793a\u4e3a TAPD \u7684\u6570\u636e\uff0c\u70b9\u51fb\u3010\u540c\u6b65\u7f3a\u9677\u3011\u6309\u94ae\uff0c\u4f1a\u5c06\u6570\u636e\u540c\u6b65\u5230 TAPD \u7cfb\u7edf\u4e2d\u3002

    \u5728 TAPD \u7f3a\u9677\u4e2d\u53ef\u4ee5\u67e5\u8be2\u5230\u540c\u6b65\u8fc7\u6765\u7684\u7f3a\u9677\u6570\u636e\u3002

    "},{"location":"user_manual/system_management/workspace/#22-jira","title":"2.2 \u4e0eJIRA\u96c6\u6210","text":"

    \u6ce8\u610f

    v2.4 \u7248\u672c\u7f3a\u9677\u5bf9\u63a5\u5b9e\u73b0\u4e86\u63d2\u4ef6\u5316\uff0c\u53ef\u6839\u636e\u81ea\u8eab\u9700\u6c42\u5f00\u53d1\u5bf9\u5e94\u63d2\u4ef6\u3002 \u76ee\u524d\u5df2\u5b9e\u73b0 Jira \u5e73\u53f0\u7684\u63d2\u4ef6\u5316\uff0c\u539f\u5148\u4f7f\u7528 Jira \u7684\u7528\u6237\uff0c\u9700\u8981\u4e0b\u8f7d\u4e0b\u63d2\u4ef6\uff0c\u5e76\u5728\u3010\u7cfb\u7edf\u8bbe\u7f6e-\u63d2\u4ef6\u7ba1\u7406\u3011\u4e0a\u4f20\u63d2\u4ef6\u3002 \u4f7f\u7528\u65b9\u5f0f\u8ddf\u539f\u6765\u4e00\u81f4\uff0c\u5177\u4f53\u53c2\u8003\u63d2\u4ef6\u9879\u76ee\uff1ahttps://github.com/metersphere/metersphere-platform-plugin

    \u7b2c\u4e00\u6b65\uff1a\u586b\u5199\u5bf9\u63a5 JIRA \u7684\u5730\u5740\u3001\u8ba4\u8bc1\u4fe1\u606f\u548c\u95ee\u9898\u7c7b\u578b\uff0c\u5982\u4e0b\u3002

    \u6ce8\u610f

    \u95ee\u9898\u7c7b\u578b\u9700\u8981\u548c JIRA \u7684\u4e8b\u52a1\u7c7b\u578b\u4fdd\u6301\u4e00\u81f4\uff0c\u5fc5\u987b\u5728 JIRA \u4e2d\u5b58\u5728\u6b64\u7c7b\u578b\uff0c\u5982\u4e0b\uff1a

    \u5982\u679c\u53f3\u4e0a\u89d2\u5207\u6362\u7ec4\u7ec7\uff0c\u9700\u8981\u91cd\u590d\u4e0a\u8ff0\u5bf9\u63a5 JIRA \u64cd\u4f5c

    \u7b2c\u4e8c\u6b65\uff1a \u5173\u8054\u9879\u76ee\u914d\u7f6e \u914d\u7f6e\u5b8c\u670d\u52a1\u96c6\u6210\u540e\uff0c\u8fd8\u9700\u8981\u914d\u7f6e\u9879\u76ee\u4e2d\u5f15\u7528 JIRA \u9879\u76ee\u7684\u8bbe\u7f6e\uff0c\u5373\u5173\u8054\u9879\u76ee\u3002\u70b9\u51fb\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u5173\u8054\u9879\u76ee\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u8df3\u8f6c\u5230\u9879\u76ee\u7ba1\u7406\u9875\u9762\uff0c\u70b9\u51fb\u9879\u76ee\u5217\u8868\u4e2d\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u8bbe\u7f6e\u9879\u76ee\u91cc\u9879\u76ee\u76f8\u5173\u914d\u7f6e\u3002

    \u53c2\u6570\u8bf4\u660e

    \u3010\u96c6\u6210\u7b2c\u4e09\u65b9\u5e73\u53f0\u3011\uff1a\u9009\u62e9\u3010JIRA\u3011\u3002 \u3010\u7f3a\u9677\u6a21\u677f\u3011\uff1a\u9009\u62e9\u3010JIRA-\u9ed8\u8ba4\u6a21\u677f\u3011 \u3010\u4f7f\u7528 Jira \u7f3a\u9677\u6a21\u677f\u3011\uff1a\u9009\u4e2d\uff0c\u5219\u8868\u793a\u7cfb\u7edf\u4f1a\u81ea\u52a8\u540c\u6b65 JIRA \u7cfb\u7edf\u4e2d\u7684\u7f3a\u9677\u6a21\u677f\uff1b\u4e0d\u9009\u62e9\uff0c\u5219\u9700\u8981\u8fdb\u5165\u7b2c\u56db\u6b65\uff0c\u624b\u52a8\u914d\u7f6e MS \u7f3a\u9677\u6a21\u677f\u548c Jira \u7cfb\u7edf\u4e2d\u7684\u7f3a\u9677\u6a21\u677f\u7684\u5b57\u6bb5\u5bf9\u5e94\u5173\u7cfb\u3002 \u3010JIRA \u9879\u76ee Key\u3011\uff1a\u9879\u76ee\u7684\u5173\u952e\u5b57\u7684\u9700\u8981\u5728 JIRA \u5e73\u53f0\u4e0a\u8fdb\u884c\u67e5\u8be2\uff0c\u5982\u4e0b\u3002

    \u7b2c\u4e09\u6b65\uff1a\u6dfb\u52a0\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7\u3002 \u70b9\u51fb\u670d\u52a1\u96c6\u6210\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u6dfb\u52a0\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u8be5\u4fe1\u606f\u4e3a\u901a\u8fc7 Jira \u63d0\u4ea4\u7f3a\u9677\u7684\u7528\u6237\u8ba4\u8bc1\u4fe1\u606f\uff0c\u82e5\u672a\u586b\u5199\uff0c\u5219\u4f7f\u7528\u7ec4\u7ec7\u4e2d\u914d\u7f6e\u7684\u9ed8\u8ba4\u4fe1\u606f.\u70b9\u51fb\u3010\u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u3011\u8bbe\u7f6e\u3010Jira \u4fe1\u606f\u3011\uff0c\u5982\u679c\u4e0d\u8bbe\u7f6e\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7\uff0c\u5219\u6240\u6709\u4f7f\u7528 MeterSphere \u63d0\u4ea4\u7f3a\u9677\u7684\u7528\u6237\uff0c\u6b64\u7f3a\u9677\u63a8\u9001\u5230\u914d\u7f6e\u7684\u670d\u52a1\u5e73\u53f0\u4e0a\u8d26\u53f7\u90fd\u662f\u670d\u52a1\u914d\u7f6e\u4e2d\u8bbe\u5b9a\u7684\u8d26\u53f7\u4fe1\u606f\u3002

    \u4ee5\u4e0a\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u5728 Metersphere \u7cfb\u7edf\u4e2d\u6d4b\u8bd5\u7528\u4f8b\u91cc\uff0c\u5c31\u53ef\u4ee5\u5173\u8054JIRA \u7684\u76f8\u5173\u9700\u6c42\uff0c\u6216\u540c\u6b65\u76f8\u5173\u7f3a\u9677\u3002

    "},{"location":"user_manual/system_management/workspace/#23","title":"2.3 \u4e0e\u7985\u9053\u96c6\u6210","text":"

    \u7b2c\u4e00\u6b65\uff1a\u670d\u52a1\u96c6\u6210\u914d\u7f6e\u3002

    \u7985\u9053\u76ee\u524d\u5b58\u5728 GET \u548c PATH_INFO \u4e24\u79cd\u63a5\u53e3\u8c03\u7528\u65b9\u5f0f\uff08\u5373\u5176requestType \u53c2\u6570\uff09\u5bf9\u4e8e\u7985\u9053\u63a5\u53e3\u7684\u8c03\u7528\u4f7f\u7528\u7684\u662f PATH_INFO \u65b9\u5f0f\u548c GET \u8bf7\u6c42\u65b9\u5f0f\u7684\u652f\u6301\uff0c\u7528\u6237\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u4f7f\u7528\u7684\u7985\u9053\u7cfb\u7edf\u7684\u914d\u7f6e\u60c5\u51b5\u81ea\u4e3b\u9009\u62e9\u8bf7\u6c42\u65b9\u5f0f\u3002

    \u8bf4\u660e

    1. \u8d26\u53f7\u5bc6\u7801\u4e3a\u5177\u6709\u76f8\u5e94\u6743\u9650\u7684 Zentao \u8d26\u53f7\uff0c\u8d26\u53f7\u9700\u8981\u5177\u6709\u8d85\u7ea7 model \u8c03\u7528\u63a5\u53e3\u6743\u9650\u3002
    2. \u8bf7\u6c42\u65b9\u5f0f\uff1a\u5728\u7985\u9053\u91cc\u5177\u4f53\u67e5\u770b\uff1a\u53c2\u8003\u7985\u9053\u914d\u7f6e\u6587\u4ef6\u4e2d$config->requestType \u7684\u503c\uff1b\u914d\u7f6e\u6587\u4ef6\u53c2\u8003\u8def\u5f84\uff1a/opt/zbox/app/zentao/config/my.php \u3002
    3. \u5982\u679c\u63d0\u793a\u56e0\u4e3a\u5b89\u5168\u95ee\u9898 api \u7981\u7528\uff0c\u9700\u8981\u4fee\u6539\u7985\u9053\u670d\u52a1\u5668\u914d\u7f6e\u6587\u4ef6/opt/zbox/app/zentao/config/my.php\uff0c\u52a0\u4e0a '$config->features->apiGetModel = true;' \u8fd9\u4e2a\u914d\u7f6e\u3002

    \u7b2c\u4e8c\u6b65\uff1a \u5173\u8054\u9879\u76ee\u914d\u7f6e \u914d\u7f6e\u5b8c\u670d\u52a1\u96c6\u6210\u540e\uff0c\u8fd8\u9700\u8981\u914d\u7f6e\u9879\u76ee\u4e2d\u5f15\u7528\u7985\u9053\u9879\u76ee\u7684\u8bbe\u7f6e\uff0c\u5373\u5173\u8054\u9879\u76ee\u3002\u70b9\u51fb\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u5173\u8054\u9879\u76ee\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u8df3\u8f6c\u5230\u3010\u9879\u76ee\u7ba1\u7406\u3011\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\uff0c\u7f16\u8f91\u9879\u76ee\u91cc\u3010\u7985\u9053\u9879\u76eeID\u3011\uff0c\u4ee5\u53ca\u7f3a\u9677\u6a21\u677f\u7b49\u76f8\u5173\u4fe1\u606f\u3002

    \u53c2\u6570\u8bf4\u660e

    \u3010Zentao\uff08\u7985\u9053\uff09\u9879\u76ee ID\u3011\uff1a\u5982\u679c \u7985\u9053 bug \u662f\u9644\u5c5e\u5728\u9879\u76ee\u4e0a\uff0c\u5219\u5173\u8054\u7684Zentao ID \u4e3a\u9879\u76ee ID\uff1b\u5982\u679c \u7985\u9053 Bug \u662f\u9644\u5c5e\u5728\u4ea7\u54c1\u4e0a\uff0c\u5219\u5173\u8054\u7684 ZentaoID \u4e3a\u4ea7\u54c1 ID\u3002

    \u7b2c\u4e09\u6b65\uff1a\u6dfb\u52a0\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7 \u70b9\u51fb\u670d\u52a1\u96c6\u6210\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u6dfb\u52a0\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u8be5\u4fe1\u606f\u4e3a\u901a\u8fc7\u7985\u9053\u63d0\u4ea4\u7f3a\u9677\u7684\u7528\u6237\u540d\u3001\u5bc6\u7801\uff0c\u82e5\u672a\u586b\u5199\uff0c\u5219\u4f7f\u7528\u7ec4\u7ec7\u4e2d\u914d\u7f6e\u7684\u9ed8\u8ba4\u4fe1\u606f\u3002 \u9009\u62e9\u3010\u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u3011\u8bbe\u7f6e\u3010\u7985\u9053\u4fe1\u606f\u3011\uff0c\u5982\u679c\u4e0d\u8bbe\u7f6e\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7\uff0c\u5219\u6240\u6709\u4f7f\u7528 MeterSphere \u63d0\u4ea4\u7f3a\u9677\u7684\u7528\u6237\uff0c\u6b64\u7f3a\u9677\u63a8\u9001\u5230\u914d\u7f6e\u7684\u670d\u52a1\u5e73\u53f0\u4e0a\u8d26\u53f7\u90fd\u662f\u670d\u52a1\u914d\u7f6e\u4e2d\u8bbe\u5b9a\u7684\u8d26\u53f7\u4fe1\u606f\u3002

    \u4ee5\u4e0a\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u5728 Metersphere \u7cfb\u7edf\u4e2d\u6d4b\u8bd5\u7528\u4f8b\u91cc\uff0c\u5c31\u53ef\u4ee5\u5173\u8054\u7985\u9053\u7684\u76f8\u5173\u9700\u6c42\u3002

    \u5728\u7f3a\u9677\u7ba1\u7406\u63d0\u4ea4\u7f3a\u9677\u540e\uff0c\u6570\u636e\u4f1a\u540c\u6b65\u5230\u7985\u9053\u7cfb\u7edf\u4e2d\u3002

    "},{"location":"user_manual/system_management/workspace/#24-azure-devops","title":"2.4 \u4e0eAzure Devops\u96c6\u6210","text":"

    \u7b2c\u4e00\u6b65\uff1a\u670d\u52a1\u96c6\u6210\u914d\u7f6e\u3002 \u586b\u5199\u3010Basic Auth \u8d26\u53f7\u4fe1\u606f\u3011\u540e\uff0c\u70b9\u51fb\u3010\u6d4b\u8bd5\u8fde\u63a5\u3011\u5373\u53ef

    \u7b2c\u4e8c\u6b65\uff1a \u5173\u8054\u9879\u76ee\u914d\u7f6e \u914d\u7f6e\u5b8c\u670d\u52a1\u96c6\u6210\u540e\uff0c\u8fd8\u9700\u8981\u914d\u7f6e\u9879\u76ee\u4e2d\u5f15\u7528\u7985\u9053\u9879\u76ee\u7684\u8bbe\u7f6e\uff0c\u5373\u5173\u8054\u9879\u76ee\u3002\u70b9\u51fb\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u5173\u8054\u9879\u76ee\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u8df3\u8f6c\u5230\u3010\u9879\u76ee\u7ba1\u7406\u3011\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\uff0c\u7f16\u8f91\u9879\u76ee\u91cc\u3010\u96c6\u6210\u7b2c\u4e09\u65b9\u5e73\u53f0\u3011\u3001\u3010AzureDevops\u9879\u76eeID\u3011\u3001\u3010AzureDevops\u8fc7\u6ee4ID\u3011\uff0c\u4ee5\u53ca\u7f3a\u9677\u6a21\u677f\u7b49\u76f8\u5173\u4fe1\u606f\u3002

    \u7b2c\u4e09\u6b65\uff1a\u6dfb\u52a0\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7 \u70b9\u51fb\u670d\u52a1\u96c6\u6210\u9875\u9762\u53f3\u4e0b\u89d2\u7684\u3010\u9a6c\u4e0a\u6dfb\u52a0\u3011\u8fdb\u884c\u8bbe\u7f6e\u3002

    \u9009\u62e9\u3010\u7b2c\u4e09\u65b9\u5e73\u53f0\u8d26\u53f7\u3011\u8bbe\u7f6e\u3010AzureDevops \u4fe1\u606f\u3011\uff0c\u5982\u679c\u4e0d\u8bbe\u7f6e\u4e2a\u4eba\u5e73\u53f0\u8d26\u53f7\uff0c\u5219\u4f7f\u7528 MeterSphere \u63d0\u4ea4\u7f3a\u9677\u7684\u7528\u6237\uff0c\u6b64\u7f3a\u9677\u63a8\u9001\u5230\u914d\u7f6e\u7684\u670d\u52a1\u5e73\u53f0\u4e0a\u8d26\u53f7\u90fd\u662f\u670d\u52a1\u914d\u7f6e\u4e2d\u8bbe\u5b9a\u7684\u8d26\u53f7\u4fe1\u606f\u3002

    \u4ee5\u4e0a\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u5728 Metersphere \u7cfb\u7edf\u4e2d\u6d4b\u8bd5\u7528\u4f8b\u91cc\uff0c\u5c31\u53ef\u4ee5\u5173\u8054 AzureDevops \u7684\u76f8\u5173\u9700\u6c42\u3002

    \u5728\u7f3a\u9677\u7ba1\u7406\u63d0\u4ea4\u7f3a\u9677\u540e\uff0c\u70b9\u51fb\u3010\u540c\u6b65\u6309\u94ae\u3011\uff0c\u6570\u636e\u4f1a\u540c\u6b65\u5230 AzureDevops \u7cfb\u7edf\u4e2d\u3002

    "},{"location":"user_manual/system_management/workspace/#3","title":"3 \u9879\u76ee\u7ba1\u7406","text":"

    \u5de5\u4f5c\u7a7a\u95f4\u4e0b\u5bf9\u6240\u6709\u9879\u76ee\u53ca\u9879\u76ee\u4f7f\u7528\u5230\u7684 Jar \u5305\u8fdb\u884c\u7edf\u4e00\u7ba1\u7406\u3002

    • \u521b\u5efa\u9879\u76ee

    \u70b9\u51fb\u9875\u9762\u5de6\u4fa7\u3010\u9879\u76ee\u7ba1\u7406\u3011\uff0c\u70b9\u51fb\u3010\u521b\u5efa\u9879\u76ee\u3011\uff0c\u586b\u5199\u76f8\u5173\u9879\u76ee\u57fa\u672c\u4fe1\u606f

    \u6839\u636e\u9879\u76ee\u5b9e\u9645\u60c5\u51b5\uff0c\u9009\u62e9\u5bf9\u5e94\u7684\u7b2c\u4e09\u65b9\u96c6\u6210\u5e73\u53f0\u4ee5\u53ca\u7528\u4f8b\u6a21\u677f\u548c\u7f3a\u9677\u6a21\u677f\uff0c\u70b9\u51fb\u4fdd\u5b58\u5373\u53ef\u3002

    \u53c2\u6570\u8bf4\u660e

    \u3010\u7b2c\u4e09\u65b9\u96c6\u6210\u5e73\u53f0\u3011\uff1a\u76ee\u524d\u53ea\u652f\u6301\u4ee5\u4e0a\u51e0\u79cd\u96c6\u6210\u5e73\u53f0\uff0c\u53ef\u53c2\u8003\u4e0a\u9762\u3010\u5de5\u4f5c\u7a7a\u95f4-\u670d\u52a1\u96c6\u6210\u3011\u8fdb\u884c\u914d\u7f6e\u3002 \u3010\u7528\u4f8b\u6a21\u677f\u3011\uff1a\u53ef\u53c2\u8003\u3010\u9879\u76ee\u8bbe\u7f6e-\u6a21\u677f\u7ba1\u7406-\u7528\u4f8b\u6a21\u677f\u3011\u8fdb\u884c\u81ea\u5b9a\u4e49\u7528\u4f8b\u6a21\u677f\u3002 \u3010\u7f3a\u9677\u6a21\u677f\u3011\uff1a\u53ef\u53c2\u8003\u3010\u9879\u76ee\u8bbe\u7f6e-\u6a21\u677f\u7ba1\u7406-\u7f3a\u9677\u6a21\u677f\u3011\u8fdb\u884c\u81ea\u5b9a\u4e49\u7f3a\u9677\u6a21\u677f\u3002

    \u81ea\u52a8\u751f\u6210 Jira \u7f3a\u9677\u6a21\u7248 (X-Pack) \u3010\u521b\u5efa\u9879\u76ee\u3011\uff0c\u586b\u5199\u7b2c\u4e09\u65b9\u96c6\u6210\u5e73\u53f0\u4e3a Jira \u540e\uff0c\u52fe\u9009\u4e0b\u9762\u7684\u3010\u4f7f\u7528 Jira \u7f3a\u9677\u6a21\u677f\u3011\uff0c\u586b\u5199\u597d\u5176\u4ed6\u914d\u7f6e\u4fe1\u606f\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5373\u53ef

    • \u7f16\u8f91\u9879\u76ee \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u53ef\u7f16\u8f91\u9879\u76ee\u76f8\u5173\u4fe1\u606f\u540e\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5373\u53ef

    • \u5220\u9664\u9879\u76ee \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u586b\u5199\u4e0a\u65b9\u63d0\u793a\u5185\u5bb9\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\uff0c\u8be5\u9879\u76ee\u5373\u53ef\u88ab\u5220\u9664

    • \u73af\u5883\u914d\u7f6e \u70b9\u51fb\u3010\u73af\u5883\u914d\u7f6e\u3011\u6309\u94ae\uff0c\u586b\u5199\u73af\u5883\u76f8\u5173\u4fe1\u606f\u5373\u53ef\uff0c\u5177\u4f53\u60c5\u51b5\u53ef\u53c2\u8003\u3010\u5de5\u4f5c\u7a7a\u95f4-\u73af\u5883\u7ba1\u7406\u3011

    "},{"location":"user_manual/system_management/workspace/#4-x-pack","title":"4 \u914d\u989d\u7ba1\u7406 (X-Pack)","text":"

    \u8fdb\u5165\u3010\u914d\u989d\u7ba1\u7406\u3011\u9875\u9762\uff0c\u53ef\u3010\u7f16\u8f91\u3011\u4e0a\u65b9\u7684\u9879\u76ee\u9ed8\u8ba4\u914d\u989d\uff0c\u7f16\u8f91\u5b8c\u6210\u540e\uff0c\u5728\u914d\u989d\u5217\u8868\u4e2d\u4f7f\u7528\u9ed8\u8ba4\u914d\u7f6e\u7684\uff0c\u5c06\u540c\u6b65\u66f4\u65b0\u7f16\u8f91\u7684\u6570\u636e\u3002

    \u70b9\u51fb\u9879\u76ee\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u53ef\u5bf9\u5355\u4e2a\u9879\u76ee\u8fdb\u884c\u914d\u989d\u7ba1\u7406\u8bbe\u7f6e

    \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u5373\u53ef\u5220\u9664\u5df2\u914d\u7f6e\u597d\u7684\u5185\u5bb9\uff0c\u6062\u590d\u5230\u6700\u521d\u72b6\u6001\uff0c\u4f7f\u7528\u9ed8\u8ba4\u914d\u989d\u7684\u72b6\u6001\u4e5f\u7531\u3010\u662f\u3011\u53d8\u6210\u3010\u5426\u3011

    "},{"location":"user_manual/system_management/workspace/#5","title":"5 \u73af\u5883\u7ba1\u7406","text":"

    \u5de5\u4f5c\u7a7a\u95f4\u4e0b\u6240\u6709\u6d4b\u8bd5\u76f8\u5173\u73af\u5883\u7edf\u4e00\u7ba1\u7406\u3002\u6b64\u73af\u5883\u914d\u7f6e\u7ba1\u7406\u5373\u662f\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u7684 \u6240\u6709\u9879\u76ee\u7684 \u6240\u6709\u73af\u5883\u4fe1\u606f\uff0c\u53ef\u5bf9\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u7684\u73af\u5883\u8fdb\u884c\u6dfb\u52a0\u3001\u4fee\u6539\u53ca\u79fb\u9664\u7684\u64cd\u4f5c\u3002\u5e76\u4e14\u652f\u6301\u5404\u4e2a\u73af\u5883\u914d\u7f6e\u4fe1\u606f\u7684\u5bfc\u5165\u548c\u5bfc\u51fa\uff0c\u65b9\u4fbf\u5ba2\u6237\u5feb\u901f\u65b0\u5efa\u548c\u7ef4\u62a4\u6d4b\u8bd5\u73af\u5883\u3002 \u70b9\u51fb\u9875\u9762\u5de6\u4fa7\u3010\u5de5\u4f5c\u7a7a\u95f4\u3011\uff0c\u70b9\u51fb\u3010\u73af\u5883\u914d\u7f6e\u3011\uff0c\u5373\u53ef\u67e5\u770b\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u7684\u6240\u6709\u9879\u76ee\u7684\u6240\u6709\u73af\u5883\u5217\u8868\u3002

    "},{"location":"user_manual/system_management/workspace/#51","title":"5.1 \u73af\u5883\u5217\u8868","text":"
    • \u521b\u5efa\u73af\u5883 \u70b9\u51fb\u9875\u9762\u5217\u8868\u4fe1\u606f\u5de6\u4e0a\u89d2\u7684\u3010\u521b\u5efa\u73af\u5883\u3011\uff0c\u53ef\u65b0\u589e\u6b64\u5de5\u4f5c\u7a7a\u95f4\u4e0b\u4efb\u610f\u9879\u76ee\u7684\u6d4b\u8bd5\u73af\u5883\u3002

    \u5728\u5de5\u4f5c\u7a7a\u95f4\u4e0b\u521b\u5efa\u73af\u5883\uff0c\u9700\u8981\u6307\u5b9a\u6b64\u73af\u5883\u662f\u7528\u4e8e\u54ea\u4e2a\u9879\u76ee\uff0c\u5176\u4ed6\u73af\u5883\u8bbe\u7f6e\u4fe1\u606f\u540c\u9879\u76ee\u7ba1\u7406\u91cc\u7684\u65b0\u589e\u73af\u5883\u3002

    \u53c2\u6570\u8bf4\u660e

    \u3010\u9009\u62e9\u9879\u76ee\u3011\uff1a\u6307\u5b9a\u73af\u5883\u6240\u5c5e\u7684\u9879\u76ee\uff0c\u6b64\u9879\u76ee\u662f\u5f53\u524d\u5de5\u4f5c\u7a7a\u95f4\u4e0b\uff0c\u6709\u6743\u9650\u7684\u9879\u76ee\u5217\u8868\u3002 \u3010\u73af\u5883\u540d\u79f0\u3011\uff1a\u4e3a\u65b0\u521b\u5efa\u7684\u73af\u5883\u547d\u540d\u3002 \u3010\u901a\u7528\u914d\u7f6e\u3011\uff1a\u6b64\u5904\u8bbe\u7f6e\u7684\u53d8\u91cf\u662f\u73af\u5883\u53d8\u91cf\uff0c\u53ef\u5355\u4e2a\u6dfb\u52a0\u548c\u6279\u91cf\u6dfb\u52a0\u3002IP \u548c\u57df\u540d\u6620\u5c04\u5173\u7cfb\u8bbe\u7f6e\u4ee5\u53ca\u94fe\u63a5\u8d85\u65f6\u3001\u54cd\u5e94\u8d85\u65f6\u8bbe\u7f6e\u3002 \u3010HTTP\u914d\u7f6e\u3011\uff1a\u6b64\u5904\u53ef\u914d\u7f6e\u73af\u5883\u5730\u5740\u4ee5\u53ca\u542f\u7528\u6761\u4ef6\uff0c\u4e5f\u53ef\u8bbe\u7f6e\u8bf7\u6c42\u5934\u3002 \u3010\u6570\u636e\u5e93\u914d\u7f6e\u3011\uff1a\u914d\u7f6e\u6570\u636e\u5e93\u7684\u6570\u636e\u9a71\u52a8\u4ee5\u53ca\u8fde\u63a5\u4fe1\u606f\u7b49\uff0c\u76ee\u524d\u652f\u6301 MYSQL\u3001Oracle\u3001SQLServer\u3001Postgre\u6570\u636e\u5e93 \u3010TCP \u914d\u7f6e\u3011\uff1a\u914d\u7f6e\u8fde\u63a5 TCP \u8bf7\u6c42\u7684\u76f8\u5173\u4fe1\u606f \u3010\u8bc1\u4e66\u914d\u7f6e\u3011\uff1a\u53ef\u5728\u6b64\u914d\u7f6e\u76f8\u5173\u7684\u8bc1\u4e66\u4fe1\u606f \u3010\u5168\u5c40\u524d\u7f6e\u811a\u672c\u3011\uff1a\u5168\u5c40\u524d\u7f6e\u811a\u672c\u53ef\u5206\u4e3a\u3010\u5355\u4e2a\u8bf7\u6c42\u6b65\u9aa4\u524d\u6267\u884c\u3011\u548c\u3010\u6240\u6709\u573a\u666f\u6b65\u9aa4\u524d\u6267\u884c\u3011 \u3010\u5168\u5c40\u540e\u7f6e\u811a\u672c\u3011\uff1a\u5168\u5c40\u540e\u7f6e\u811a\u672c\u53ef\u5206\u4e3a\u3010\u5355\u4e2a\u8bf7\u6c42\u6b65\u9aa4\u540e\u6267\u884c\u3011\u548c\u3010\u6240\u6709\u573a\u666f\u6b65\u9aa4\u540e\u6267\u884c\u3011 \u3010\u5168\u5c40\u8ba4\u8bc1\u914d\u7f6e\u3011\uff1a\u53ef\u914d\u7f6e\u8ba4\u8bc1\u65b9\u5f0f\u548c\u52a0\u5bc6\u7b49\u4fe1\u606f \u3010\u5168\u5c40\u65ad\u8a00\u3011\uff1a\u53ef\u542f\u7528\u8bef\u62a5\u8bbe\u7f6e\u548c\u9009\u62e9\u591a\u79cd\u7c7b\u578b\u65b9\u5f0f\u8fdb\u884c\u65ad\u8a00

    • \u901a\u7528\u914d\u7f6e \u6b64\u5904\u8bbe\u7f6e\u7684\u53d8\u91cf\u662f\u73af\u5883\u53d8\u91cf\uff0c\u7c7b\u578b\u53ef\u4ee5\u4e3a\u591a\u79cd\u7c7b\u578b\uff0c\u53ef\u5355\u4e2a\u6dfb\u52a0\u548c\u6279\u91cf\u6dfb\u52a0

    IP \u548c\u57df\u540d\u8fdb\u884c\u6620\u5c04\u914d\u7f6e\uff0c\u53ef\u8bbe\u7f6e\u94fe\u63a5\u8d85\u65f6\u3001\u54cd\u5e94\u8d85\u65f6\u65f6\u95f4

    • HTTP\u914d\u7f6e \u8bbe\u7f6e HTTP/HTTPS \u8bf7\u6c42\u5730\u5740\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u3011\u540e\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5373\u53ef

    \u53ef\u8bbe\u7f6e\u6a21\u5757\u3001\u8def\u5f84\u7b49\u6761\u4ef6\u6765\u542f\u7528\u8be5\u73af\u5883

    \u53ef\u5355\u4e2a\u8bbe\u7f6e\u6216\u8005\u6279\u91cf\u8bbe\u7f6e\u8bf7\u6c42\u5934\u4fe1\u606f

    • \u6570\u636e\u5e93\u914d\u7f6e \u914d\u7f6e\u6570\u636e\u5e93\u7684\u6570\u636e\u9a71\u52a8\u4ee5\u53ca\u8fde\u63a5\u4fe1\u606f\u7b49\uff0c\u76ee\u524d\u652f\u6301 MYSQL\u3001Oracle\u3001SQLServer\u3001Postgre\u6570\u636e\u5e93

    \u6267\u884c\u591a\u6761SQL\u8bed\u53e5\u9700\u5728\u6570\u636e\u5e93\u540e\u9762\u52a0\u4e0a\u3010?allowMultiQueries=true\u3011\uff0c\u53ef\u8bbe\u7f6e\u6700\u5927\u8fde\u63a5\u6570\u548c\u8d85\u65f6\u65f6\u95f4\uff0c\u70b9\u51fb\u3010\u6821\u9a8c\u3011\u6216\u3010\u6dfb\u52a0\u3011

    • TCP \u914d\u7f6e \u53ef\u914d\u7f6e\u8fde\u63a5 TCP \u8bf7\u6c42\u7684\u76f8\u5173\u4fe1\u606f\uff0c\u4e3b\u8981\u6709 TCPClientImpl\u3001BinaryTCPClientImpl\u3001LengthPrefixedBinaryTCPClientImpl \u4e09\u79cd\u65b9\u5f0f

    • \u8bc1\u4e66\u914d\u7f6e \u8bc1\u4e66\u6587\u4ef6\u4e0a\u4f20\u652f\u6301 p12\uff0cjks\uff0cpfx \u683c\u5f0f

    • \u5168\u5c40\u524d\u7f6e\u811a\u672c \u53ef\u5728\u5355\u4e2a\u8bf7\u6c42\u6b65\u9aa4\u524d\u6267\u884c\u548c\u5728\u6240\u6709\u573a\u666f\u6b65\u9aa4\u524d\u6267\u884c\uff0c\u70b9\u51fb\u3010i\u3011\u53ef\u67e5\u770b\u63d0\u793a\u4fe1\u606f

    \u3010\u5355\u4e2a\u8bf7\u6c42\u6b65\u9aa4\u524d\u6267\u884c\u3011\u53ef\u8bbe\u7f6e\u3010\u5168\u5c40\u524d\u7f6e\u811a\u672c\u3011\u6267\u884c\u7684\u534f\u8bae\u4ee5\u53ca\u987a\u5e8f

    \u3010\u6240\u6709\u573a\u666f\u6b65\u9aa4\u524d\u6267\u884c\u3011\u53ef\u5173\u8054\u573a\u666f\u7ed3\u679c\uff0c\u573a\u666f\u6267\u884c\u6210\u529f\u4f46\u662f\u6b64\u5904\u524d\u7f6e\u811a\u672c\u6267\u884c\u5931\u8d25\uff0c\u6267\u884c\u7ed3\u679c\u662f\u663e\u793a\u5931\u8d25

    • \u5168\u5c40\u540e\u7f6e\u811a\u672c \u53ef\u53c2\u8003\u4e0a\u9762\u3010\u5168\u5c40\u524d\u7f6e\u811a\u672c\u3011
    • \u5168\u5c40\u8ba4\u8bc1\u914d\u7f6e \u53ef\u914d\u7f6e\u8ba4\u8bc1\u65b9\u5f0f\u548c\u52a0\u5bc6\u4fe1\u606f

    • \u5168\u5c40\u65ad\u8a00 \u53ef\u542f\u7528/\u5173\u95ed\u8bef\u62a5

    \u53ef\u9009\u62e9\u591a\u79cd\u7c7b\u578b\u8fdb\u884c\u65ad\u8a00\u8bbe\u7f6e\uff0c\u53ef\u52fe\u9009\u5ffd\u7565\u72b6\u6001\u7801\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u3011\u6309\u94ae\u5373\u53ef

    • \u5bfc\u5165\u73af\u5883 \u70b9\u51fb\u3010\u5bfc\u5165\u3011\u6309\u94ae\u5bfc\u5165\u73af\u5883\uff0c\u4ec5\u652f\u6301\u901a\u8fc7 metersphere \u5bfc\u51fa\u7684 json \u6587\u4ef6\u3002

    \u5bfc\u5165\u652f\u6301\u4e3a\u4e00\u4e2a\u9879\u76ee\u6279\u91cf\u521b\u5efa\u4e0d\u540c\u7684\u73af\u5883\u3002

    • \u5bfc\u51fa\u73af\u5883 \u70b9\u51fb\u3010\u5bfc\u51fa\u73af\u5883\u3011\u6309\u94ae\u5bfc\u51fa\u73af\u5883\uff0c\u5c06\u73af\u5883\u5bfc\u51fa\u7684 json \u6587\u4ef6\u3002

    • \u7f16\u8f91\u73af\u5883 \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u7f16\u8f91\u73af\u5883\uff0c\u53ef\u4fee\u6539\u73af\u5883\u914d\u7f6e\u3002

    • \u590d\u5236\u73af\u5883 \u70b9\u51fb\u3010\u590d\u5236\u3011\u6309\u94ae\u8fdb\u884c\u590d\u5236\u73af\u5883\uff0c\u53ef\u590d\u5236\u5f53\u524d\u73af\u5883\u914d\u7f6e\u3002

    • \u5220\u9664\u73af\u5883 \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\uff0c\u5373\u53ef\u5220\u9664\u73af\u5883\u914d\u7f6e\u3002

    "},{"location":"user_manual/system_management/workspace/#52","title":"5.2 \u73af\u5883\u7ec4","text":"
    • \u521b\u5efa\u73af\u5883\u7ec4 MeterSphere \u652f\u6301\u8de8\u9879\u76ee\u8fdb\u884c\u63a5\u53e3\u3001\u63a5\u53e3\u7528\u4f8b\u3001\u573a\u666f\u7528\u4f8b\u7b49\u81ea\u52a8\u5316\u811a\u672c\u5f15\u7528\uff0c\u53ef\u4ee5\u6839\u636e\u4e0d\u540c\u9879\u76ee\u3001\u4e0d\u540c\u73af\u5883\u7ec4\u5408\u6210\u4e00\u4e2a\u73af\u5883\u7ec4\uff0c\u5f53\u81ea\u52a8\u5316\u6267\u884c\u65f6\uff0c\u53ef\u4ee5\u76f4\u63a5\u9009\u62e9\u8be5\u73af\u5883\u7ec4\u3002 \u70b9\u51fb\u3010\u521b\u5efa\u73af\u5883\u7ec4\u3011\uff0c\u9009\u62e9\u4e0d\u540c\u9879\u76ee\u3001\u4e0d\u540c\u73af\u5883\u4fe1\u606f\u3002
    • \u7f16\u8f91\u73af\u5883\u7ec4 \u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\u7f16\u8f91\u73af\u5883\u7ec4\uff0c\u53ef\u4fee\u6539\u5f53\u524d\u73af\u5883\u7ec4\u3002
    • \u590d\u5236\u73af\u5883\u7ec4 \u70b9\u51fb\u3010\u590d\u5236\u3011\u6309\u94ae\uff0c\u590d\u5236\u73af\u5883\u7ec4\u3002
    • \u5220\u9664\u73af\u5883\u7ec4 \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u6839\u636e\u63d0\u793a\u4fe1\u606f\u8f93\u5165\u540e\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\uff0c\u5220\u9664\u73af\u5883\u7ec4\u3002
    "},{"location":"user_manual/system_management/workspace/#6","title":"6 \u64cd\u4f5c\u65e5\u5fd7","text":"

    \u663e\u793a\u767b\u5f55\u7528\u6237\u6240\u5904\u3010\u5de5\u4f5c\u7a7a\u95f4\u3011\u4e0b\u7684\u6240\u6709\u6709\u6743\u9650\u3010\u9879\u76ee\u3011\u7684\u6d4b\u8bd5\u8d44\u6e90\u65e5\u5fd7\u4fe1\u606f\u3002

    "},{"location":"user_manual/test_track/home/","title":"\u9996\u9875","text":"

    \u6d4b\u8bd5\u8ddf\u8e2a\u7684\u9996\u9875\u4e3b\u8981\u7528\u4e8e\u5c55\u793a\u73b0\u6709\u9879\u76ee\u7684\u7528\u4f8b\u6570\u91cf\u3001\u5173\u8054\u7528\u4f8b\u6570\u91cf\u3001\u7528\u4f8b\u7ef4\u62a4\u4eba\u5206\u5e03\u3001\u4ee5\u53ca\u8fc7\u53bb7\u5929\u6d4b\u8bd5\u8ba1\u5212\u5931\u8d25\u7528\u4f8bTOP 10\u3001\u8fd0\u884c\u4e2d\u7684\u5b9a\u65f6\u4efb\u52a1\u7b49\u4fe1\u606f\u3002

    "},{"location":"user_manual/test_track/intro/","title":"\u6982\u8ff0","text":"

    Meterphere \u6d4b\u8bd5\u8ddf\u8e2a\u6a21\u5757\u56f4\u7ed5\u6d4b\u8bd5\u7528\u4f8b\u53ca\u6d4b\u8bd5\u8ba1\u5212\u63d0\u4f9b\u4ee5\u4e0b\u4e3b\u8981\u529f\u80fd\uff1a

    • \u9996\u9875\u4fe1\u606f\u5c55\u793a\uff1a\u9996\u9875\u96c6\u4e2d\u5c55\u793a\u4e86\u5f53\u524d\u9879\u76ee\u7684\u7528\u4f8b\u6570\u91cf\u7edf\u8ba1\u3001\u5173\u8054\u7528\u4f8b\u6570\u91cf\u7edf\u8ba1\u3001\u7528\u4f8b\u7ef4\u62a4\u4eba\u5206\u5e03\u3001\u9057\u7559\u7f3a\u9677\u7edf\u8ba1\u3001\u8fc7\u53bb7\u5929\u6d4b\u8bd5\u8ba1\u5212\u5931\u8d25\u7528\u4f8bTOP 10\u3001\u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\u3001\u5b9a\u65f6\u4efb\u52a1\u7b49\u4fe1\u606f\u3002
    • \u529f\u80fd\u7528\u4f8b\uff1a\u652f\u6301\u5728\u7ebf\u8868\u5355\u3001\u8111\u56fe\u65b9\u5f0f\u521b\u5efa\u6d4b\u8bd5\u7528\u4f8b\uff0c\u521b\u5efa\u7528\u4f8b\u65f6\u5173\u8054\u5176\u4ed6\u7c7b\u578b\u6d4b\u8bd5\u7528\u4f8b\uff08\u6bd4\u5982\u63a5\u53e3\u7528\u4f8b\u3001\u573a\u666f\u7528\u4f8b\u3001\u6027\u80fd\u7528\u4f8b\uff09\uff0c\u652f\u6301\u6d4b\u8bd5\u7528\u4f8b\u5bfc\u5165\u3001\u5bfc\u51fa\uff0c\u5bfc\u5165\u5bfc\u51fa\u683c\u5f0f\u652f\u6301 Excel\u3001Xmind \u7b49\u591a\u79cd\u6587\u4ef6\u683c\u5f0f\u3002
    • \u7528\u4f8b\u8bc4\u5ba1\uff1a\u652f\u6301\u521b\u5efa\u8bc4\u5ba1\uff0c\u5173\u8054\u53ca\u53d6\u6d88\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\uff0c\u5728\u7ebf\u8bc4\u5ba1\u5e76\u53cd\u9988\u8bc4\u5ba1\u662f\u5426\u901a\u8fc7\u53ca\u8bc4\u5ba1\u5177\u4f53\u610f\u89c1\u5efa\u8bae\u3002
    • \u6d4b\u8bd5\u8ba1\u5212\uff1a\u652f\u6301\u5217\u8868\u663e\u793a\u3001\u521b\u5efa\u3001\u7f16\u8f91\u3001\u5220\u9664\u6d4b\u8bd5\u8ba1\u5212\uff0c\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\uff0c\u5728\u7ebf\u66f4\u65b0\u53cd\u9988\u6d4b\u8bd5\u7528\u4f8b\u7684\u6d4b\u8bd5\u7ed3\u679c\uff0c\u5305\u62ec\"\u901a\u8fc7\"\u3001\"\u5931\u8d25\"\u3001\"\u963b\u585e\"\u3001\"\u8df3\u8fc7\"\uff0c\u4ee5\u53ca\u5728\u7ebf\u81ea\u52a8\u5b9e\u65f6\u7edf\u8ba1\u663e\u793a\u6d4b\u8bd5\u8ba1\u5212\u5bf9\u5e94\u7684\u6d4b\u8bd5\u62a5\u544a\uff0c\u5bfc\u51faHTML\u683c\u5f0f\u6d4b\u8bd5\u62a5\u544a\u548c\u5206\u4eab\u62a5\u544a\u94fe\u63a5\u3002\u540c\u65f6\u6d4b\u8bd5\u62a5\u544a\u6a21\u677f\u53ef\u81ea\u5b9a\u4e49\uff0c\u80fd\u591f\u4e0e\u5e73\u53f0\u4e2d\u7684\u63a5\u53e3\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u529f\u80fd\u8054\u52a8\uff0c\u81ea\u52a8\u66f4\u65b0\u5173\u8054\u7528\u4f8b\u7684\u7ed3\u679c\uff0c\u8bb0\u5f55\u6d4b\u8bd5\u7528\u4f8b\u5173\u8054\u7684\u7f3a\u9677\uff0c\u7f3a\u9677\u8bb0\u5f55\u652f\u6301\u5173\u8054\u5230 JIRA / TAPD\u3002
    • \u7f3a\u9677\u7ba1\u7406\uff1a\u7ba1\u7406\u8be5\u9879\u76ee\u4e0b\u6240\u6709\u7684\u7f3a\u9677\u4fe1\u606f\uff0c\u5982\u679c\u9879\u76ee\u8bbe\u7f6e\u5173\u8054\u4e86\u5176\u4ed6BUG\u5e73\u53f0\uff08\u6bd4\u5982JIRA\u3001TAPD\u3001\u7985\u9053\u7b49\uff09\uff0c\u5219\u6b64Bug\u4f1a\u81ea\u52a8\u540c\u6b65\u5230\u76f8\u5e94\u7684\u5e73\u53f0\u3002
    • \u62a5\u544a\uff1a\u63d0\u4f9b\u76f4\u89c2\u3001\u7f8e\u89c2\u7684\u9875\u9762\u5bf9\u6d4b\u8bd5\u8ba1\u5212\u7ed3\u679c\u8fdb\u884c\u53ef\u89c6\u5316\u5c55\u793a\uff0c\u540c\u65f6\u63d0\u4f9b\u5bfc\u51fa\u62a5\u544a\u7b49\u529f\u80fd\u65b9\u4fbf\u5bf9\u6d4b\u8bd5\u7ed3\u679c\u8fdb\u884c\u5f52\u6863\u53ca\u5206\u4eab\uff0c\u540c\u65f6\u53ef\u81ea\u5b9a\u4e49\u914d\u7f6e\u62a5\u544a\u6a21\u7248\u3002
    "},{"location":"user_manual/test_track/test_case_review/","title":"\u7528\u4f8b\u8bc4\u5ba1","text":"

    \u7528\u4f8b\u8bc4\u5ba1\u652f\u6301\u521b\u5efa\u8bc4\u5ba1\uff0c\u5173\u8054\u53ca\u53d6\u6d88\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\uff0c\u5728\u7ebf\u8bc4\u5ba1\u5e76\u53cd\u9988\u8bc4\u5ba1\u662f\u5426\u901a\u8fc7\u53ca\u8bc4\u5ba1\u5177\u4f53\u610f\u89c1\u5efa\u8bae\u3002 \u70b9\u51fb\u3010\u7528\u4f8b\u8bc4\u5ba1\u3011\u53ef\u67e5\u770b\u5f53\u524d\u9879\u76ee\u4e2d\u6240\u6709\u7684\u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\u3002

    \u8fdb\u5165\u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\u8be6\u60c5\u9875\u65f6\uff0c\u7cfb\u7edf\u63d0\u4f9b\u4e86\u4e24\u79cd\u7528\u4f8b\u663e\u793a\u6a21\u5f0f\uff1a\u5217\u8868\u548c\u8111\u56fe\u3002

    \u540c\u65f6\u53ef\u521b\u5efa\u3001\u7f16\u8f91\u3001\u5220\u9664\u3001\u5f00\u542f\u7528\u4f8b\u8bc4\u5ba1\u3001\u67e5\u8be2\u7b49\u7b49\u76f8\u5173\u64cd\u4f5c\u3002

    "},{"location":"user_manual/test_track/test_case_review/#1","title":"1 \u521b\u5efa\u7528\u4f8b\u8bc4\u5ba1\u4efb\u52a1","text":"

    \u70b9\u51fb\u3010\u521b\u5efa\u7528\u4f8b\u8bc4\u5ba1\u3011\u6309\u94ae\uff0c\u521b\u5efa\u4e00\u4e2a\u7528\u4f8b\u8bc4\u5ba1\u3002

    \u8bc4\u5ba1\u901a\u8fc7\u6807\u51c6

    • \u3010\u5168\u90e8\u901a\u8fc7\u3011\uff1a\u6240\u6709\u8bc4\u5ba1\u4eba\u90fd\u901a\u8fc7\u624d\u901a\u8fc7\u3002
    • \u3010\u5355\u4eba\u901a\u8fc7\u3011\uff1a\u4efb\u610f\u8bc4\u5ba1\u4eba\u901a\u8fc7\u5219\u901a\u8fc7\u3002

    \u5728\u8bc4\u5ba1\u4efb\u52a1\u6267\u884c\u4e3b\u9875\uff0c\u70b9\u51fb\u53f3\u4fa7\u5217\u8868\u4e0a\u65b9\u7684\u3010\u5173\u8054\u7528\u4f8b\u3011\u6309\u94ae\u4e3a\u8bc4\u5ba1\u4efb\u52a1\u5173\u8054\u7528\u4f8b\u3002

    \u5728\u5f39\u51fa\u7684\u7528\u4f8b\u9009\u62e9\u5217\u8868\u4e2d\uff0c\u9009\u62e9\u8981\u6dfb\u52a0\u5230\u6b64\u6b21\u7528\u4f8b\u8bc4\u5ba1\u4efb\u52a1\u4e2d\u7684\u6d4b\u8bd5\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5b8c\u6210\u6dfb\u52a0\u3002

    "},{"location":"user_manual/test_track/test_case_review/#2","title":"2 \u7f16\u8f91\u8bc4\u5ba1","text":"

    \u5728\u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\u8bb0\u5f55\u4e2d\uff0c\u9f20\u6807\u70b9\u51fb\u67d0\u6761\u8bb0\u5f55\uff0c\u6216\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u8fdb\u5165\u8be5\u8bc4\u5ba1\u8bb0\u5f55\u7684\u7ef4\u62a4\u4fe1\u606f\u9875\u9762\u3002

    "},{"location":"user_manual/test_track/test_case_review/#21","title":"2.1 \u5173\u8054\u7528\u4f8b","text":"

    \u70b9\u51fb\u3010\u5173\u8054\u7528\u4f8b\u3011\uff0c\u53ef\u5c06\u9700\u8981\u8bc4\u5ba1\u7684\u6d4b\u8bd5\u7528\u4f8b\u8fdb\u884c\u5173\u8054\uff0c\u8fd9\u662f\u5f00\u542f\u8bc4\u5ba1\u6d4b\u8bd5\u7528\u4f8b\u7684\u524d\u63d0\u3002

    \u540c\u65f6\u7cfb\u7edf\u652f\u6301\u8de8\u9879\u76ee\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u3002

    \u9009\u62e9\u9700\u8bc4\u5ba1\u7684\u6d4b\u8bd5\u7528\u4f8b\u540e\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5373\u53ef\u5b8c\u6210\u6d4b\u8bd5\u7528\u4f8b\u7684\u5173\u8054\u3002

    "},{"location":"user_manual/test_track/test_case_review/#22","title":"2.2 \u53d6\u6d88\u5173\u8054","text":"

    \u70b9\u51fb\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u7684\u3010\u53d6\u6d88\u7528\u4f8b\u5173\u8054\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u53d6\u6d88\u8be5\u7528\u4f8b\u4e0e\u7528\u4f8b\u8bc4\u5ba1\u7684\u5173\u8054\uff0c\u53d6\u6d88\u540e\uff0c\u8be5\u7528\u4f8b\u5728\u7528\u4f8b\u5217\u8868\u4e2d\u6d88\u5931\u3002\u5f53\u6709\u591a\u6761\u7684\u7528\u4f8b\u9700\u8981\u53d6\u6d88\u5173\u8054\u65f6\uff0c\u53ef\u4ee5\u53bb\u52fe\u9009\u76f8\u5173\u7684\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u6279\u91cf\u53d6\u6d88\u5173\u8054\u3011\u6309\u94ae\uff0c\u4e00\u6b21\u6027\u5bf9\u591a\u6761\u7528\u4f8b\u53d6\u6d88\u5173\u8054\u3002

    "},{"location":"user_manual/test_track/test_case_review/#3","title":"3 \u5f00\u59cb\u8bc4\u5ba1","text":"

    \u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\u5206\u4e3a\u4e24\u79cd\u6a21\u5f0f\uff0c\u4e00\u79cd\u662f\u4ee5\u5217\u8868\u6a21\u5f0f\u8fdb\u884c\u8bc4\u5ba1\uff1b\u7b2c\u4e8c\u79cd\u65b9\u5f0f\u662f\u4ee5\u8111\u56fe\u6a21\u5f0f\u8fdb\u884c\u8bc4\u5ba1\u3002

    "},{"location":"user_manual/test_track/test_case_review/#31","title":"3.1 \u5217\u8868\u6a21\u5f0f\u8bc4\u5ba1","text":"

    \u4e3a\u8bc4\u5ba1\u4efb\u52a1\u6dfb\u52a0\u5b8c\u7528\u4f8b\u540e\uff0c\u70b9\u51fb\u3010\u5f00\u59cb\u8bc4\u5ba1\u3011\u6309\u94ae\u8fdb\u5165\u7528\u4f8b\u8be6\u60c5\u9875\uff0c\u9ed8\u8ba4\u4ece\u4efb\u52a1\u5217\u8868\u7684\u7b2c\u4e00\u6761\u7528\u4f8b\u5b9e\u65bd\u8bc4\u5ba1\uff0c\u7528\u6237\u4e5f\u53ef\u4ee5\u70b9\u51fb\u4efb\u610f\u4e00\u6761\u7528\u4f8b\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u4ece\u8be5\u6761\u7528\u4f8b\u5f00\u59cb\u5b9e\u65bd\u8bc4\u5ba1\u3002

    \u8fdb\u5165\u7528\u4f8b\u8bc4\u5ba1\u8be6\u60c5\u9875\u9762\uff0c\u4f7f\u7528\u3010\u7ffb\u9875\u3011\u6309\u94ae\u5feb\u901f\u5207\u6362\u7528\u4f8b\uff0c\u4f7f\u7528\u6807\u7b7e\u5feb\u6377\u6807\u6ce8\u7528\u4f8b\u8bc4\u5ba1\u7ed3\u679c\uff0c\u6807\u6ce8\u540e\u7684\u8bc4\u5ba1\u7ed3\u679c\u5c06\u4f1a\u5728\u7528\u4f8b\u5217\u8868\u4e2d\u663e\u793a\u3002\u540c\u65f6\u652f\u6301\u7528\u6237\u4e3a\u6b64\u6b21\u8bc4\u5ba1\u53d1\u8868\u8bc4\u8bba\u3002

    • \u67e5\u770b\u7528\u4f8b\u5173\u8054\u7f3a\u9677 \u7528\u6237\u53ef\u4ee5\u67e5\u770b\u8bc4\u5ba1\u7528\u4f8b\u5173\u8054\u7684\u7f3a\u9677\u3002

    • \u6279\u91cf\u66f4\u6539\u8bc4\u5ba1\u7ed3\u679c \u5f53\u591a\u4e2a\u7528\u4f8b\u7684\u8bc4\u5ba1\u7ed3\u679c\u76f8\u540c\u6216\u53d1\u751f\u76f8\u540c\u53d8\u66f4\uff0c\u53ef\u4ee5\u9009\u4e2d\u76f8\u5e94\u7528\u4f8b\uff0c\u8fdb\u5165\u3010\u6279\u91cf\u7f16\u8f91\u3011\u5f39\u7a97\uff0c\u5bf9\u8bc4\u5ba1\u7ed3\u679c\u8fdb\u884c\u7edf\u4e00\u7f16\u8f91\u3002

    "},{"location":"user_manual/test_track/test_case_review/#32","title":"3.2 \u6307\u5b9a\u7528\u4f8b\u8bc4\u5ba1","text":"

    \u5982\u679c\u4e0d\u662f\u4ece\u5934\u5f00\u59cb\u505a\u6d4b\u8bd5\u7528\u4f8b\u8bc4\u5ba1\uff0c\u53ef\u4ee5\u7528\u9f20\u6807\u70b9\u51fb\u5177\u4f53\u7684\u67d0\u4e2a\u6d4b\u8bd5\u7528\u4f8b\uff0c\u6216\u8005\u70b9\u51fb\u3010\u7f16\u8f91\u3011\uff0c\u8fdb\u5165\u6307\u5b9a\u6d4b\u8bd5\u7528\u4f8b\u7684\u8bc4\u5ba1\u3002

    "},{"location":"user_manual/test_track/test_case_review/#33","title":"3.3 \u8111\u56fe\u6a21\u5f0f\u8bc4\u5ba1\u7528\u4f8b","text":"

    \u9664\u4e86\u901a\u8fc7\u5217\u8868\u53ca\u8868\u5355\u65b9\u5f0f\u8bc4\u5ba1\u7528\u4f8b\u5916\uff0c\u7528\u6237\u8fd8\u53ef\u4ee5\u901a\u8fc7\u8111\u56fe\u65b9\u5f0f\u5b9e\u73b0\u6b64\u529f\u80fd\u3002\u5728\u7528\u4f8b\u5217\u8868\u9875\u9762\u70b9\u51fb\u3010\u8111\u56fe\u3011\u5207\u6362\u5230\u8111\u56fe\u5c55\u793a\u6a21\u5f0f\uff0c\u9009\u4e2d\u5f85\u8bc4\u5ba1\u7528\u4f8b\uff0c\u901a\u8fc7\u6dfb\u52a0\u6807\u7b7e\u7684\u65b9\u5f0f\u6765\u6807\u8bb0\u7528\u4f8b\u8bc4\u5ba1\u7ed3\u679c\u3002

    "},{"location":"user_manual/test_track/test_case_review/#4","title":"4 \u91cd\u65b0\u63d0\u5ba1","text":"

    \u5f53\u8bc4\u5ba1\u6d3b\u52a8\u4e2d\u7684\u7528\u4f8b\u53d1\u751f\u5185\u5bb9\u53d8\u66f4\u540e\uff0c\u7528\u4f8b\u72b6\u6001\u4f1a\u81ea\u52a8\u5207\u6362\u4e3a\u3010\u91cd\u65b0\u63d0\u5ba1\u3011\u72b6\u6001\u3002

    \u8bc4\u5ba1\u4eba\u53ef\u5feb\u901f\u68c0\u7d22\u51fa\u9700\u8981\u91cd\u65b0\u8bc4\u5ba1\u7684\u7528\u4f8b\u3002\u8bc4\u5ba1\u5217\u8868\u4e2d\u8fd8\u652f\u6301\u624b\u52a8\u66f4\u65b0\u4e3a\u3010\u91cd\u65b0\u63d0\u5ba1\u3011\u72b6\u6001\u3002

    \u5f00\u542f\u91cd\u65b0\u63d0\u5ba1

    \u3010\u91cd\u65b0\u63d0\u5ba1\u3011\u6d41\u7a0b\u9700\u8981\u5728\u3010\u9879\u76ee\u7ba1\u7406\u3011-> \u3010\u66f4\u591a\u9009\u9879\u3011 ->\u3010\u5e94\u7528\u7ba1\u7406\u3011->\u3010\u6d4b\u8bd5\u8ddf\u8e2a\u3011\u9009\u9879\u5361\u4e2d\u5f00\u542f\u3010\u91cd\u65b0\u63d0\u5ba1\u3011\u5f00\u5173\u3002

    "},{"location":"user_manual/test_track/test_case_review/#5","title":"5 \u6279\u91cf\u64cd\u4f5c","text":"

    \u529f\u80fd\u8be6\u7ec6\u4ecb\u7ecd\u53ca\u4f7f\u7528\u8bf4\u660e\u53c2\u8003 \u901a\u7528\u529f\u80fd->\u8868\u5934\u529f\u80fd\u3002\u52fe\u9009\u6216\u5168\u9009\u6240\u6709\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u2026\u3011\u6309\u94ae\uff0c\u53ef\u5bf9\u5176\u505a\u6279\u91cf\u7684\u7f16\u8f91\u548c\u53d6\u6d88\u7b49\u76f8\u5173\u64cd\u4f5c\u3002

    "},{"location":"user_manual/test_track/test_case_review/#51","title":"5.1 \u6279\u91cf\u7f16\u8f91","text":"

    \u5f53\u6709\u5f88\u591a\u7528\u4f8b\u7684\u8bc4\u5ba1\u7ed3\u679c\u76f8\u540c\uff0c\u53ef\u4ee5\u53bb\u52fe\u9009\u5bf9\u5e94\u7684\u7528\u4f8b\uff0c\u8fdb\u5165\u5230\u6279\u91cf\u7f16\u8f91\u5f39\u7a97\uff0c\u70b9\u51fb\u3010\u6279\u91cf\u7f16\u8f91\u3011\uff0c\u5bf9\u8bc4\u5ba1\u7ed3\u679c\u505a\u7edf\u4e00\u7684\u7f16\u8f91\u3002

    "},{"location":"user_manual/test_track/test_case_review/#52","title":"5.2 \u6279\u91cf\u53d6\u6d88\u5173\u8054","text":"

    \u53d6\u6d88\u5173\u8054\u7684\u76ee\u7684\u5c31\u662f\u8be5\u8bc4\u5ba1\u4e2d\u4e0d\u5305\u542b\u6b64\u6d4b\u8bd5\u7528\u4f8b\uff0c\u4ec5\u4ec5\u662f\u4fee\u6539\u4e86\u8bc4\u5ba1\u7528\u4f8b\u7684\u8303\u56f4\uff0c\u5bf9\u6d4b\u8bd5\u7528\u4f8b\u6ca1\u6709\u4efb\u4f55\u4fee\u6539\u548c\u5f71\u54cd\u3002 \u9009\u62e9\u3010\u6279\u91cf\u53d6\u6d88\u5173\u8054\u3011\uff0c\u53ef\u4ee5\u4e00\u6b21\u6027\u8bbe\u7f6e\u6b64\u6b21\u8bc4\u5ba1\u4e0d\u5305\u542b\u591a\u6761\u6307\u5b9a\u7684\u6d4b\u8bd5\u7528\u4f8b\u3002

    "},{"location":"user_manual/test_track/test_defect/","title":"\u7f3a\u9677\u7ba1\u7406","text":"

    \u7f3a\u9677\u7ba1\u7406\u7528\u4e8e\u7ba1\u7406\u8be5\u9879\u76ee\u4e0b\u6240\u6709\u7684\u7f3a\u9677\u4fe1\u606f\uff0c\u5982\u679c\u9879\u76ee\u5df2\u5173\u8054\u5176\u4ed6\u7b2c\u4e09\u65b9\u7f3a\u9677\u7ba1\u7406\u5e73\u53f0\uff0c\u5219 MeterSphere \u5e73\u53f0\u4e0a\u7684 Bug \u72b6\u6001\u4f1a\u81ea\u52a8\u540c\u6b65\u5230\u5173\u8054\u5e73\u53f0\u3002 \u6b64\u7f3a\u9677\u7ba1\u7406\u662f\u7ba1\u7406\u8be5\u9879\u76ee\u4e0b\u6240\u6709\u7684\u7f3a\u9677\u4fe1\u606f\uff0c\u5982\u679c\u9879\u76ee\u8bbe\u7f6e\u4e86\u548c\u5176\u4ed6BUG\u5e73\u53f0\uff08\u6bd4\u5982 Jira\u3001TAPD\u3001\u7985\u9053\u7b49\uff09\u5173\u8054\uff0c\u5219\u6b64 Bug \u4f1a\u81ea\u52a8\u540c\u6b65\u5230\u76f8\u5e94\u7684\u5e73\u53f0\u3002

    "},{"location":"user_manual/test_track/test_defect/#1","title":"1 \u521b\u5efa\u7f3a\u9677","text":"

    \u70b9\u51fb\u5de6\u4e0a\u89d2\u7684\u3010\u521b\u5efa\u7f3a\u9677\u3011\uff0c\u53ef\u4ee5\u5728\u6b64\u521b\u5efa\u7f3a\u9677\uff0c\u4f46\u5728\u6b64\u521b\u5efa\u7684\u7f3a\u9677\u9700\u8981\u624b\u52a8\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u3002

    \u4e5f\u53ef\u4ee5\u5728\u6d4b\u8bd5\u7528\u4f8b\u6267\u884c\u4e2d\u521b\u5efa\u7f3a\u9677\u6216\u5173\u8054\u7f3a\u9677\u3002

    "},{"location":"user_manual/test_track/test_defect/#2-x-pack","title":"2 \u540c\u6b65\u7f3a\u9677 (X-Pack)","text":"

    \u70b9\u51fb\u5de6\u4e0a\u89d2\u7684\u3010\u540c\u6b65\u7f3a\u9677\u3011\uff0c\u5373\u53ef\u5c06\u7f3a\u9677\u540c\u6b65\u5230\u7b2c\u4e09\u65b9\u96c6\u6210\u5e73\u53f0\uff0c\u7b2c\u4e09\u65b9\u96c6\u6210\u5e73\u53f0\u7684\u7f3a\u9677\u4e5f\u4f1a\u540c\u6b65\u5230 MeterSphere \u4e2d\u3002

    "},{"location":"user_manual/test_track/test_defect/#3","title":"3 \u5bfc\u5165\u7f3a\u9677","text":"

    \u70b9\u51fb\u9875\u9762\u7684\u3010\u5bfc\u5165\u3011\u6309\u94ae\uff0c\u4e0b\u8f7d\u5bfc\u5165\u7f3a\u9677\u6a21\u677f\uff0c\u6309\u7167\u7f3a\u9677\u6a21\u677f\u7684\u89c4\u5219\u8fdb\u884c\u586b\u5199\uff0c\u9009\u62e9\u8986\u76d6\u6216\u8005\u4e0d\u8986\u76d6\u8fdb\u884c\u4e0a\u4f20\u5373\u53ef\u3002

    "},{"location":"user_manual/test_track/test_defect/#4","title":"4 \u5bfc\u51fa\u7f3a\u9677","text":"

    \u9009\u62e9\u7f3a\u9677\uff0c\u70b9\u51fb\u9875\u9762\u7684\u3010\u5bfc\u51fa\u3011\u6309\u94ae\uff0c\u52fe\u9009\u5bfc\u51fa\u5b57\u6bb5\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5373\u53ef\u3002

    "},{"location":"user_manual/test_track/test_report/","title":"\u62a5\u544a","text":"

    \u5bf9\u6d4b\u8bd5\u8ba1\u5212\u3001\u63a5\u53e3\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5\u7b49\uff0c\u7cfb\u7edf\u90fd\u652f\u6301\u63d0\u4f9b\u5b9e\u65f6\u7684\u6d4b\u8bd5\u62a5\u544a\uff0c\u652f\u6301\u5206\u4eab\u3001\u5bfc\u51fa\u6d4b\u8bd5\u62a5\u544a\uff08html\u683c\u5f0f\uff09\u7b49\u3002

    "},{"location":"user_manual/test_track/test_report/#1","title":"1 \u62a5\u544a\u8be6\u60c5\u4ecb\u7ecd","text":"

    \u5bf9\u4e8e\u6d4b\u8bd5\u8ba1\u5212\u7684\u6d4b\u8bd5\u62a5\u544a\uff0c\u5305\u542b\u5404\u7c7b\u6d4b\u8bd5\u7684\u8fdb\u5ea6\u7edf\u8ba1\u3001\u811a\u672c\u7edf\u8ba1\u3001\u7f3a\u9677\u7edf\u8ba1\u4ee5\u53ca\u8be6\u60c5\u7b49\u3002

    "},{"location":"user_manual/test_track/test_report/#11","title":"1.1 \u62a5\u544a\u603b\u7ed3","text":"

    \u5728\u3010\u6d4b\u8bd5\u8ba1\u5212\u3011\u9875\u9762\uff0c\u70b9\u51fb\u3010\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3011\uff0c\u53ef\u7f16\u8f91\u6d4b\u8bd5\u62a5\u544a\u603b\u7ed3\u3002\u70b9\u51fb\u3010\u62a5\u544a\u3011\uff0c\u8fdb\u5165\u6d4b\u8bd5\u62a5\u544a\u9875\u9762\uff0c\u53ef\u770b\u5230\u6b64\u6b21\u62a5\u544a\u7684\u603b\u7ed3\u63cf\u8ff0\u3002

    "},{"location":"user_manual/test_track/test_report/#12","title":"1.2 \u529f\u80fd\u6d4b\u8bd5\u90e8\u5206","text":"

    \u62a5\u544a\u4e2d\u529f\u80fd\u6d4b\u8bd5\u7edf\u8ba1\u5206\u6790\u4e2d\uff0c\u63d0\u4f9b\u4e86\u76f8\u5173\u591a\u4e2a\u9875\u7b7e\u3002\u6bd4\u5982\u6d4b\u8bd5\u7ed3\u679c\u3001\u5931\u8d25\u7528\u4f8b\u3001\u7f3a\u9677\u5217\u8868\u3001\u6240\u6709\u7528\u4f8b\u7b49\u3002 \u6d4b\u8bd5\u7ed3\u679c\u7edf\u8ba1\uff0c\u9ed8\u8ba4\u6b64\u4ee5\u56fe\u5f62\u5316\u5c55\u793a\u3002

    \u540c\u65f6\u652f\u6301\u7528\u6237\u81ea\u5b9a\u4e49\u6307\u5b9a\u7edf\u8ba1\u5404\u4e2a\u6307\u6807\uff0c\u7edf\u8ba1\u56fe\u8868\u4e3a\u81ea\u52a8\u91cd\u65b0\u7edf\u8ba1\u3002

    \u62a5\u544a\u4e2d\u3010\u7f3a\u9677\u5217\u8868\u3001\u6240\u6709\u7528\u4f8b\u3001\u5931\u8d25\u7528\u4f8b\u3001\u5835\u585e\u7528\u4f8b\u3001\u8df3\u8fc7\u7528\u4f8b\u3011\u90fd\u662f\u4ee5\u5217\u8868\u7684\u5f62\u5f0f\u663e\u793a\u5176\u76f8\u5173\u660e\u7ec6\u3002

    "},{"location":"user_manual/test_track/test_report/#13","title":"1.3 \u63a5\u53e3\u6d4b\u8bd5\u90e8\u5206","text":"

    \u62a5\u544a\u4e2d\u63a5\u53e3\u6d4b\u8bd5\u7edf\u8ba1\u5206\u6790\uff0c\u63d0\u4f9b\u4e86\u76f8\u5173\u591a\u4e2a\u9875\u7b7e\u3002 \u6d4b\u8bd5\u7ed3\u679c\u7edf\u8ba1\uff0c\u9ed8\u8ba4\u6b64\u4ee5\u56fe\u5f62\u5316\u5c55\u793a\u3002\u540c\u65f6\u628a\u9f20\u6807\u60ac\u6d6e\u5728\u67f1\u72b6\u56fe\u4e0a\uff0c\u53ef\u51fa\u73b0\u6b64\u67f1\u72b6\u76f8\u5173\u7edf\u8ba1\u4fe1\u606f\u3002

    \u62a5\u544a\u4e2d\u3010\u5931\u8d25\u7528\u4f8b\u3001\u6240\u6709\u7528\u4f8b\u3011\u90fd\u662f\u4ee5\u5217\u8868\u7684\u5f62\u5f0f\u663e\u793a\u5176\u76f8\u5173\u660e\u7ec6\u3002 \u6240\u6709\u7528\u4f8b\u5305\u542b\u3010\u63a5\u53e3\u7528\u4f8b\u3011\u548c\u3010\u573a\u666f\u7528\u4f8b\u3011\u4e24\u4e2a\u9875\u7b7e\u3002

    \u9009\u62e9\u3010\u63a5\u53e3\u7528\u4f8b\u3011\uff0c\u70b9\u51fb\u5de6\u4fa7\u63a5\u53e3\u7528\u4f8b\u5217\u8868\u4e2d\u7684\u67d0\u4e2a\u63a5\u53e3\uff0c\u5176\u53f3\u4fa7\u53ef\u5448\u73b0\u8be5\u63a5\u53e3\u8fd0\u884c\u65f6\u8be6\u7ec6\u7684\u6d4b\u8bd5\u6570\u636e\u53ca\u7ed3\u679c\u3002

    \u9009\u62e9\u3010\u573a\u666f\u7528\u4f8b\u3011\uff0c\u70b9\u51fb\u5de6\u4fa7\u573a\u666f\u7528\u4f8b\u5217\u8868\u4e2d\u7684\u67d0\u4e2a\u573a\u666f\uff0c\u5176\u53f3\u4fa7\u53ef\u5448\u73b0\u8be5\u573a\u666f\u7528\u4f8b\u8fd0\u884c\u65f6\u8be6\u7ec6\u7684\u6d4b\u8bd5\u6570\u636e\u53ca\u7ed3\u679c\u3002

    "},{"location":"user_manual/test_track/test_report/#14-ui","title":"1.4 UI \u6d4b\u8bd5\u90e8\u5206","text":"

    \u6d4b\u8bd5\u7ed3\u679c\u7edf\u8ba1\uff0c\u9ed8\u8ba4\u6b64\u4ee5\u56fe\u5f62\u5316\u5c55\u793a\u3002\u540c\u65f6\u628a\u9f20\u6807\u60ac\u6d6e\u5728\u67f1\u72b6\u56fe\u4e0a\uff0c\u53ef\u51fa\u73b0\u6b64\u67f1\u72b6\u76f8\u5173\u7edf\u8ba1\u4fe1\u606f\u3002

    \u70b9\u51fb\u5de6\u4fa7 UI \u7528\u4f8b\u5217\u8868\u4e2d\u7684\u67d0\u4e2a\u7528\u4f8b\uff0c\u5176\u53f3\u4fa7\u53ef\u5448\u73b0\u8be5 UI \u8fd0\u884c\u65f6\u8be6\u7ec6\u7684\u6d4b\u8bd5\u6570\u636e\u53ca\u7ed3\u679c\u3002

    "},{"location":"user_manual/test_track/test_report/#15","title":"1.5 \u6027\u80fd\u6d4b\u8bd5\u90e8\u5206","text":"

    \u62a5\u544a\u4e2d\u6027\u80fd\u6d4b\u8bd5\u7edf\u8ba1\u5206\u6790\uff0c\u63d0\u4f9b\u4e86\u76f8\u5173\u591a\u4e2a\u9875\u7b7e\u3002 \u6d4b\u8bd5\u7ed3\u679c\u7edf\u8ba1\uff0c\u9ed8\u8ba4\u6b64\u4ee5\u56fe\u5f62\u5316\u5c55\u793a\u3002\u540c\u65f6\u628a\u9f20\u6807\u60ac\u6d6e\u5728\u7edf\u8ba1\u56fe\u4e0a\uff0c\u53ef\u51fa\u73b0\u6b64\u56fe\u76f8\u5173\u7edf\u8ba1\u4fe1\u606f\u3002

    \u62a5\u544a\u4e2d\u3010\u5931\u8d25\u7528\u4f8b\u3001\u6240\u6709\u7528\u4f8b\u3011\u90fd\u662f\u4ee5\u5217\u8868\u7684\u5f62\u5f0f\u663e\u793a\u5176\u76f8\u5173\u660e\u7ec6\u3002 \u62a5\u544a\u4e2d\u9009\u62e9\u3010\u6240\u6709\u7528\u4f8b\u3011\uff0c\u70b9\u51fb\u5de6\u4fa7\u7528\u4f8b\u5217\u8868\u4e2d\u7684\u67d0\u4e2a\u7528\u4f8b\uff0c\u5176\u53f3\u4fa7\u53ef\u5448\u73b0\u8be5\u8fd0\u884c\u65f6\u8be6\u7ec6\u7684\u6027\u80fd\u6d4b\u8bd5\u7ed3\u679c\u3002

    "},{"location":"user_manual/test_track/test_report/#2","title":"2 \u62a5\u544a\u76ee\u5f55","text":"

    \u6d4b\u8bd5\u62a5\u544a\u5305\u542b\u6240\u6709\u6307\u5b9a\u7684\u6d4b\u8bd5\u8303\u56f4\u7684\u62a5\u544a\uff0c\u5185\u5bb9\u7e41\u591a\uff0c\u7cfb\u7edf\u63d0\u4f9b\u4e86\u62a5\u544a\u76ee\u5f55\uff0c\u53ef\u5feb\u901f\u5b9a\u4f4d\u5c55\u793a\u6307\u5b9a\u8be6\u60c5\u3002 \u70b9\u51fb\u62a5\u544a\u5de6\u4fa7\u3010\u76ee\u5f55\u3011\uff0c\u53ef\u770b\u5230\u6b64\u62a5\u544a\u7684\u76ee\u5f55\uff0c\u70b9\u51fb\u5177\u4f53\u76ee\u5f55\uff0c\u53ef\u76f4\u63a5\u8f6c\u5165\u6307\u5b9a\u76ee\u5f55\u7684\u6d4b\u8bd5\u62a5\u544a\u8be6\u60c5\u3002

    "},{"location":"user_manual/test_track/test_report/#3","title":"3 \u62a5\u544a\u514d\u767b\u9646\u5206\u4eab","text":"

    \u62a5\u544a\u652f\u6301\u514d\u767b\u9646\u5206\u4eab\u3002\u70b9\u51fb\u6d4b\u8bd5\u62a5\u544a\u53f3\u4e0a\u89d2\u7684\u3010\u5206\u4eab\u3011\uff0c\u7cfb\u7edf\u4f1a\u751f\u6210\u8be5\u62a5\u544a\u7684\u5730\u5740\uff0c\u5206\u4eab\u6b64\u5730\u5740\u7ed9\u5176\u4ed6\u4eba\u5458\u3002

    \u5728\u6d4f\u89c8\u5668\u7684\u5730\u5740\u680f\u4e2d\uff0c\u8f93\u5165\u8be5\u5730\u5740\uff0c\u5c31\u53ef\u76f4\u63a5\u6253\u5f00\u6b64\u6d4b\u8bd5\u62a5\u544a\u3002

    "},{"location":"user_manual/test_track/test_report/#4","title":"4 \u62a5\u544a\u5bfc\u51fa","text":"

    \u70b9\u51fb\u6d4b\u8bd5\u62a5\u544a\u53f3\u4e0a\u89d2\u7684\u3010\u5bfc\u51fa\u3011\uff0c\u6b64\u62a5\u544a\u53ef\u5bfc\u51fa HTML \u683c\u5f0f\u7684\u62a5\u544a\uff0c\u5176\u5185\u5bb9\u548c\u5728\u7ebf\u62a5\u544a\u4e00\u81f4\u3002

    "},{"location":"user_manual/test_track/test_case/public_test_case/","title":"\u516c\u5171\u7528\u4f8b\u5e93","text":"

    \u516c\u5171\u7528\u4f8b\u5e93\u4e3a\u540c\u4e00\u5de5\u4f5c\u7a7a\u95f4\u4e0b\u7684\u4e0d\u540c\u9879\u76ee\u5747\u53ef\u5171\u4eab\u4f7f\u7528\u7684\u3010\u516c\u5171\u7528\u4f8b\u3011\uff0c\u4e0d\u540c\u9879\u76ee\u53ef\u3010\u6dfb\u52a0\u3011\u7528\u4f8b\u81f3\u516c\u5171\u7528\u4f8b\u5e93\uff0c\u548c\u3010\u590d\u5236\u3011\u516c\u5171\u7528\u4f8b\u5e93\u4e2d\u7684\u7528\u4f8b\u3002

    \u516c\u5171\u7528\u4f8b\u5e93\u5217\u8868\u5b57\u6bb5\u4e0d\u5c55\u793a\u81ea\u5b9a\u4e49\u7684\u6a21\u677f\u5b57\u6bb5

    "},{"location":"user_manual/test_track/test_case/public_test_case/#1","title":"1 \u542f\u52a8\u516c\u5171\u7528\u4f8b\u5e93","text":"

    \u9879\u76ee\u7ba1\u7406\u5458\u53ef\u5230\u3010\u9879\u76ee\u8bbe\u7f6e\u3011-\u3010\u66f4\u591a\u9009\u9879\u3011-\u3010\u5e94\u7528\u7ba1\u7406\u3011\u9875\u9762\u4e0b\uff0c\u5f00\u542f\u3010\u542f\u52a8\u516c\u5171\u7528\u4f8b\u5e93\u3011\u8bbe\u7f6e\u3002

    "},{"location":"user_manual/test_track/test_case/public_test_case/#2","title":"2 \u6dfb\u52a0\u7528\u4f8b\u81f3\u516c\u5171\u7528\u4f8b\u5e93","text":"

    \u70b9\u51fb\u7528\u4f8b\u3010ID\u3011\u6216\u8005\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u5230\u516c\u5171\u7528\u4f8b\u5e93\u3011\u3002

    "},{"location":"user_manual/test_track/test_case/public_test_case/#3","title":"3 \u4ece\u516c\u5171\u7528\u4f8b\u5e93\u4e2d\u590d\u5236\u7528\u4f8b","text":"

    \u590d\u5236\u516c\u5171\u7528\u4f8b\u5e93\u4e2d\u7684\u7528\u4f8b\u5230\u81ea\u5df1\u7684\u9879\u76ee\u6a21\u5757\u4e2d\u3002

    "},{"location":"user_manual/test_track/test_case/switch_project/","title":"Switch project","text":"

    \u529f\u80fd\u7528\u4f8b\uff0c\u4e3b\u8981\u7528\u4e8e\u5bf9\u529f\u80fd\u7528\u4f8b\u8fdb\u884c\u7edf\u4e00\u7ba1\u7406\uff0c\u652f\u6301\u7528\u4f8b\u7684\u5feb\u6377\u521b\u5efa\u53ca\u5bfc\u5165\u5bfc\u51fa\u64cd\u4f5c\u3002 \u8fdb\u5165\u3010\u529f\u80fd\u7528\u4f8b\u3011\u754c\u9762\u3002\u5de6\u4e0a\u65b9\u663e\u793a\u5f53\u524d\u9879\u76ee\uff0c\u9879\u76ee\u4e0b\u65b9\u663e\u793a\u6b64\u9879\u76ee\u7684\u5168\u90e8\u6d4b\u8bd5\u7528\u4f8b\u6a21\u5757\u3002\u6240\u5c5e\u67d0\u4e00\u9879\u76ee\u7684\u6d4b\u8bd5\u7528\u4f8b\u4ee5\u6a21\u5757\u4e3a\u5355\u4f4d\u8fdb\u884c\u7edf\u4e00\u7ba1\u7406\uff0c\u9875\u9762\u53f3\u4fa7\u663e\u793a\u9009\u5b9a\u6a21\u5757\u4e0b\u7684\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\uff0c\u652f\u6301\u5bf9\u6d4b\u8bd5\u7528\u4f8b\u8fdb\u884c\u65b0\u5efa\u3001\u67e5\u8be2\u3001\u7f16\u8f91\u3001\u590d\u5236\u3001\u5220\u9664\u7b49\u64cd\u4f5c\u3002

    "},{"location":"user_manual/test_track/test_case/switch_project/#1","title":"1 \u5207\u6362\u5de5\u4f5c\u7a7a\u95f4","text":"

    \u5728\u53f3\u4e0a\u89d2\u7684\u5de5\u4f5c\u7a7a\u95f4\u5904\u5207\u6362\u4e0b\u62c9\u83dc\u5355\u4e2d\u8fdb\u884c\u5de5\u4f5c\u7a7a\u95f4\u5207\u6362\uff0c\u5c55\u793a\u6240\u5c5e\u8be5\u5de5\u4f5c\u7a7a\u95f4\u53ca\u5bf9\u5e94\u9879\u76ee\u4e0b\u7684\u7528\u4f8b\u5217\u8868\u3002

    "},{"location":"user_manual/test_track/test_case/switch_project/#2","title":"2 \u5207\u6362\u9879\u76ee","text":"

    \u5728\u6a21\u5757\u6811\u4e0a\u65b9\u7684\u9879\u76ee\u5207\u6362\u4e0b\u62c9\u83dc\u5355\u4e2d\u8fdb\u884c\u9879\u76ee\u5207\u6362\uff0c\u5c55\u793a\u6240\u5c5e\u8be5\u9879\u76ee\u4e0b\u7684\u7528\u4f8b\u5217\u8868\u3002

    \u8bf4\u660e

    \u4e0d\u540c\u9879\u76ee\u95f4\u6a21\u5757\u6811\u76f8\u4e92\u72ec\u7acb\uff0c\u5f53\u5207\u6362\u9879\u76ee\u540e\u9700\u8981\u91cd\u65b0\u521b\u5efa\u6a21\u5757\u6811\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/","title":"\u7528\u4f8b\u7ba1\u7406","text":""},{"location":"user_manual/test_track/test_case/test_case/#1-x-pack","title":"1 \u7528\u4f8b\u7248\u672c\u7ba1\u7406 (X-Pack)","text":"

    \u5e73\u53f0\u53ef\u4e3a\u4e0d\u540c\u7248\u672c\u7cfb\u7edf\u6d4b\u8bd5\u7684\u7528\u4f8b\u8fdb\u884c\u7ba1\u7406\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#2","title":"2 \u5207\u6362\u7528\u4f8b\u89c6\u56fe","text":"

    \u76ee\u524d\uff0c\u5e73\u53f0\u63d0\u4f9b\u4e24\u79cd\u7528\u4f8b\u5448\u73b0\u65b9\u5f0f\uff0c\u8fdb\u5165\u3010\u6d4b\u8bd5\u7528\u4f8b\u3011\u9875\u9762\u540e\uff0c\u9ed8\u8ba4\u6253\u5f00\u3010\u5217\u8868\u3011\u89c6\u56fe\uff0c\u70b9\u51fb\u3010\u8111\u56fe\u3011\u6807\u7b7e\u5207\u6362\u81f3\u8111\u56fe\u89c6\u56fe\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#3","title":"3 \u57fa\u4e8e\u5217\u8868\u89c6\u56fe\u65b0\u5efa\u7528\u4f8b","text":"

    \u9009\u62e9\u65b0\u5efa\u7528\u4f8b\u6240\u5c5e\u6a21\u5757\uff0c\u70b9\u51fb\u5217\u8868\u5de6\u4e0a\u65b9\u3010\u521b\u5efa\u7528\u4f8b\u3011\uff0c\u5f39\u51fa\u4e00\u4e2a\u65b0\u7684\u7a97\u53e3\u5c55\u793a\u7528\u4f8b\u8be6\u60c5\u9875\u9762\u8fdb\u884c\u7f16\u8f91\u3002

    \u5728\u65b0\u5efa\u7528\u4f8b\u8be6\u60c5\u9875\u9762\u4e2d\uff0c\u8fdb\u4e00\u6b65\u586b\u5199\u7528\u4f8b\u540d\u79f0\u3001\u524d\u7f6e\u6761\u4ef6\u3001\u6b65\u9aa4\u4fe1\u606f\u3001\u6dfb\u52a0\u5907\u6ce8\u3001\u4e0a\u4f20\u9644\u4ef6\u7b49\uff0c\u8fd8\u53ef\u4ee5\u4e3a\u7528\u4f8b\u8bbe\u7f6e\u6a21\u5757\u3001\u7528\u4f8b\u7b49\u7ea7\u3001\u7248\u672c\u3001\u5173\u8054\u9700\u6c42\u3001\u6807\u7b7e\u7b49\uff0c\u7f16\u8f91\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5c06\u6b64\u6761\u7528\u4f8b\u4fdd\u5b58\u81f3\u5217\u8868\u3002

    \u65b0\u5efa\u7528\u4f8b\u5c06\u5728\u7528\u4f8b\u5217\u8868\u4e2d\u5448\u73b0\uff0c\u70b9\u51fb\u7528\u4f8b\u3010ID\u3011\u6216\u70b9\u51fb\u6b64\u6761\u7528\u4f8b\u540e\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\u53ef\u91cd\u65b0\u8fdb\u5165\u7528\u4f8b\u8be6\u60c5\u9875\u9762\u8fdb\u884c\u7f16\u8f91\uff0c\u53ef\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u3001\u5173\u8054\u7f3a\u9677\u3001\u8bbe\u7f6e\u4f9d\u8d56\u5173\u7cfb\u3001\u6dfb\u52a0\u8bc4\u8bba\u3001\u67e5\u770b\u53d8\u66f4\u3001\u521b\u5efa\u65b0\u7248\u672c\u3001\u7248\u672c\u5bf9\u6bd4\u3001\u8bbe\u7f6e\u5173\u6ce8\u3001\u6dfb\u52a0\u5230\u516c\u5171\u7528\u4f8b\u5e93\u3001\u590d\u5236\u7b49\u64cd\u4f5c\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#31","title":"3.1 \u4e3a\u7528\u4f8b\u5173\u8054\u6d4b\u8bd5","text":"

    \u65b0\u5efa\u6d4b\u8bd5\u7528\u4f8b\u53ef\u4ee5\u548c\u5e73\u53f0\u5df2\u6709\u7684\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3001\u63a5\u53e3\u573a\u666f\u7528\u4f8b\u3001\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u8fdb\u884c\u5173\u8054\u3002\u8fdb\u5165\u6d4b\u8bd5\u7528\u4f8b\u8be6\u60c5\u9875\u9762\uff0c\u70b9\u51fb\u3010\u5173\u8054\u6d4b\u8bd5\u3011\u6807\u7b7e\uff0c\u9009\u62e9\u5e0c\u671b\u4e0e\u672c\u6761\u7528\u4f8b\u8fdb\u884c\u5173\u8054\u7684\u7528\u4f8b\u5173\u8054\u6d4b\u8bd5\u6d4b\u8bd5\u7c7b\u578b\uff0c\u8fdb\u5165\u8be5\u7c7b\u578b\u7684\u7528\u4f8b\u5217\u8868\u8fdb\u884c\u5173\u8054\u3002

    \u4ee5\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u4e3a\u4f8b\u3002\u8fdb\u5165\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\uff0c\u9009\u4e2d\u76f8\u5173\u8054\u7684\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5b8c\u6210\u5173\u8054\u3002

    \u5173\u8054\u540e\u7684\u6d4b\u8bd5\u7528\u4f8b\u5c06\u5728\u5173\u8054\u5217\u8868\u4e2d\u663e\u793a\uff0c\u70b9\u51fb\u3010\u53d6\u6d88\u5173\u8054\u3011\u53ef\u53d6\u6d88\u5173\u8054\u7684\u6d4b\u8bd5\u7528\u4f8b\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#32","title":"3.2 \u4e3a\u7528\u4f8b\u5173\u8054\u9700\u6c42","text":"

    \u65b0\u5efa\u6d4b\u8bd5\u7528\u4f8b\u53ef\u4ee5\u548c\u9700\u6c42\u5173\u8054\u3002\u5982\u679c\u5173\u8054\u7b2c\u4e09\u65b9\u7f3a\u9677\u5e73\u53f0\u7684\u8bdd\uff0c\u5728\u3010\u7528\u4f8b\u8be6\u60c5\u3011\u53f3\u4fa7\uff0c\u70b9\u51fb\u3010\u5173\u8054\u9700\u6c42\u3011\u9009\u9879\uff0c\u4e0b\u62c9\u9009\u6846\u4e2d\u9009\u62e9\u5e0c\u671b\u4e0e\u672c\u6761\u7528\u4f8b\u8fdb\u884c\u5173\u8054\u7684\u7b2c\u4e09\u65b9\u7f3a\u9677\u5e73\u53f0\u7684\u9700\u6c42\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#33","title":"3.3 \u4e3a\u7528\u4f8b\u5173\u8054\u7f3a\u9677","text":"

    \u65b0\u5efa\u6d4b\u8bd5\u7528\u4f8b\u53ef\u4ee5\u548c\u7f3a\u9677\u5173\u8054\u3002\u70b9\u51fb\u3010\u5173\u8054\u7f3a\u9677\u3011\u6807\u7b7e\uff0c\u5173\u8054\u5df2\u6709\u7f3a\u9677\u6216\u521b\u5efa\u65b0\u7684\u7f3a\u9677\u5e76\u8fdb\u884c\u5173\u8054\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#34","title":"3.4 \u4e3a\u7528\u4f8b\u521b\u5efa\u4f9d\u8d56\u5173\u7cfb","text":"
    • \u4f9d\u8d56\u5173\u7cfb\u8bbe\u7f6e \u7cfb\u7edf\u652f\u6301\u7528\u6237\uff0c\u4ece\u6d4b\u8bd5\u7684\u89d2\u5ea6\u6765\u8bbe\u7f6e\u8be5\u6d4b\u8bd5\u7528\u4f8b\u7684\u524d\u540e\u7f6e\u4f9d\u8d56\u6d4b\u8bd5\u7528\u4f8b\u3002 \u70b9\u51fb\u6d4b\u8bd5\u7528\u4f8b\u7684\u3010\u4f9d\u8d56\u5173\u7cfb\u3011\u9875\u7b7e\u3002
    • \u4f9d\u8d56\u5173\u7cfb\u56fe \u70b9\u51fb\u3010\u4f9d\u8d56\u5173\u7cfb\u56fe\u3011\uff0c\u53ef\u770b\u5230\u8be5\u7528\u4f8b\u7684\u524d\u7f6e/\u540e\u7f6e\u4e4b\u95f4\u7684\u76f8\u4e92\u8054\u7cfb\u3002
    "},{"location":"user_manual/test_track/test_case/test_case/#4","title":"4 \u57fa\u4e8e\u8111\u56fe\u89c6\u56fe\u65b0\u5efa\u7528\u4f8b","text":"

    \u5728\u7528\u4f8b\u5217\u8868\u9875\u9762\u70b9\u51fb\u3010\u8111\u56fe\u3011\u5207\u6362\u4ee5\u8111\u56fe\u5f62\u5f0f\u5c55\u73b0\u7528\u4f8b\u3002\u8111\u56fe\u7236\u4e3b\u9898\u4e3a\u6a21\u5757\u540d\u79f0\uff0c\u5b50\u4e3b\u9898\u4e3a\u6a21\u5757\u4e0b\u6d4b\u8bd5\u7528\u4f8b\uff0c\u5b59\u4e3b\u9898\u4e3a\u6d4b\u8bd5\u7528\u4f8b\u6b65\u9aa4\u8be6\u60c5\u6216\u5907\u6ce8\u4fe1\u606f\u3002\u5404\u7ea7\u4e3b\u9898\u4f7f\u7528\u6807\u7b7e\u65b9\u5f0f\u533a\u5206\u6587\u672c\u5185\u5bb9\uff0c\u652f\u6301\u4f7f\u7528\u6807\u7b7e\u65b9\u5f0f\u6807\u8bb0\u7528\u4f8b\u4f18\u5148\u7ea7\u3002

    \u53f3\u952e\u4e3b\u9898\u533a\u57df\u89e6\u53d1\u529f\u80fd\u952e\u3002

    \u64cd\u4f5c\u8bf4\u660e

    • \u3010\u6536\u8d77\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u53ef\u4ee5\u6536\u8d77\u8be5\u4e3b\u9898\u4e0b\u5c5e\u5b50\u4e3b\u9898\u3002
    • \u3010\u4e0a\u7ea7\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u521b\u5efa\u8be5\u4e3b\u9898\u7684\u4e0a\u7ea7\u4e3b\u9898\u3002
    • \u3010\u4e0b\u7ea7\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u521b\u5efa\u8be5\u4e3b\u9898\u7684\u4e0b\u7ea7\u4e3b\u9898\u3002
    • \u3010\u540c\u7ea7\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u521b\u5efa\u8be5\u4e3b\u9898\u7684\u540c\u7ea7\u4e3b\u9898\u3002
    • \u3010\u540e\u79fb\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u5c06\u8be5\u4e3b\u9898\u79fb\u5165\u5176\u4e0b\u7ea7\u4e3b\u9898\u3002
    • \u3010\u524d\u79fb\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u5c06\u8be5\u4e3b\u9898\u79fb\u5165\u5176\u4e0a\u7ea7\u4e3b\u9898\u3002
    • \u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u70b9\u51fb\u5220\u9664\u8be5\u4e3b\u9898\u3002
    • \u3010\u5bfc\u51fa\u3011\u64cd\u4f5c\uff0c\u652f\u6301\u5bfc\u51fa\u5168\u90e8\u6a21\u5757\u53ca\u89c6\u56fe\u5185\u5168\u90e8\u5df2\u5c55\u5f00\u7684\u7528\u4f8b\u3002\u652f\u6301\u5bfc\u51fa\u4e3a json\u3001png\u3001svg\u3001txt\u3001md\u3001mm \u7b49\u683c\u5f0f\u7684\u6587\u4ef6\u3002
    • \u3010\u4f18\u5148\u7ea7/\u6807\u7b7e\u3011\u64cd\u4f5c\uff0c\u652f\u6301\u4e3a\u8be5\u4e3b\u9898\u6dfb\u52a0\u4f18\u5148\u7ea7\u53ca\u6587\u672c\u6807\u7b7e\u3002
    "},{"location":"user_manual/test_track/test_case/test_case/#5","title":"5 \u6279\u91cf\u64cd\u4f5c","text":"

    \u5177\u4f53\u64cd\u4f5c\u8bf7\u53c2\u8003 \u901a\u7528\u529f\u80fd->\u6279\u91cf\u64cd\u4f5c\u3002 \u5728\u5217\u8868\u5bf9\u7528\u4f8b\u8fdb\u884c\u52fe\u9009\uff0c\u70b9\u51fb\u3010\u2026\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u5bf9\u591a\u6761\u7528\u4f8b\u8fdb\u884c\u6279\u91cf\u64cd\u4f5c\uff0c\u5305\u62ec\u6279\u91cf\u7f16\u8f91\u3001\u6279\u91cf\u79fb\u52a8\u3001\u6279\u91cf\u590d\u5236\u3001\u6279\u91cf\u5220\u9664\u3001\u6279\u91cf\u5173\u8054\u9700\u6c42\u3001\u751f\u6210\u4f9d\u8d56\u5173\u7cfb\u3001\u6279\u91cf\u6dfb\u52a0\u5230\u516c\u5171\u7528\u4f8b\u5e93\u7b49\u64cd\u4f5c\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#6","title":"6 \u5bfc\u5165\u7528\u4f8b","text":"

    \u70b9\u51fb\u5de6\u4e0a\u65b9\u3010\u5bfc\u5165\u3011\u6309\u94ae\uff0c\u5728\u4e0b\u62c9\u83dc\u5355\u4e2d\u9009\u62e9\u3010\u4eceExcel\u8868\u683c\u5bfc\u5165\u6d4b\u8bd5\u7528\u4f8b\u3011\u6216\u3010\u4ece\u601d\u7ef4\u5bfc\u56fe\u5bfc\u5165\u6d4b\u8bd5\u7528\u4f8b\u3011\u3002

    \u53ef\u5148\u4e0b\u8f7d\u6a21\u677f\uff0c\u4e0b\u8f7d\u7684\u6a21\u677f\u4e2d\u4f1a\u51fa\u73b0\u81ea\u5b9a\u4e49\u7684\u5b57\u6bb5\uff0c\u586b\u5199\u5185\u5bb9\u540e\uff0c\u8fdb\u884c\u4e0a\u4f20\u3002\u81ea\u5b9a\u4e49\u5b57\u6bb5\u4e5f\u6b63\u5e38\u5c55\u793a\u5230\u9875\u9762\u4e2d\u3002

    \u64cd\u4f5c\u8bf4\u660e

    • \u3010\u5bfc\u5165\u65b0\u5efa\u3011\uff0c\u5bfc\u5165\u7684\u7528\u4f8b\u81ea\u52a8\u4fdd\u5b58\u4e3a\u65b0\u7528\u4f8b\u3002
    • \u3010\u5bfc\u5165\u66f4\u65b0\u3011\uff0c\u5bfc\u5165\u7684\u7528\u4f8b\u81ea\u52a8\u8986\u76d6\u5df2\u6709\u7528\u4f8b\u3002
    "},{"location":"user_manual/test_track/test_case/test_case/#7","title":"7 \u5bfc\u51fa\u7528\u4f8b","text":"

    \u9009\u62e9\u9700\u8981\u5bfc\u51fa\u7684\u7528\u4f8b,\u70b9\u51fb\u4e0b\u65b9\u6309\u94ae\u3010...\u3011\u53ef\u4ee5\u5bfc\u51fa\u6d4b\u8bd5\u7528\u4f8b\u3002\u652f\u6301\u5bfc\u51faExcel\u8868\u683c\u3001\u5bfc\u51fa\u601d\u7ef4\u5bfc\u56fe\u4e24\u79cd\u6a21\u5f0f\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#8","title":"8 \u56de\u6536\u7ad9","text":"

    \u6240\u6709\u88ab\u5220\u9664\u7684\u6d4b\u8bd5\u7528\u4f8b\u90fd\u4f1a\u653e\u5728\u56de\u6536\u7ad9\u91cc\u4fdd\u5b58\u3002

    \u5728\u56de\u6536\u7ad9\u91cc\u53ef\u8fdb\u884c\u3010\u6062\u590d\u3011\u548c\u3010\u5f7b\u5e95\u5220\u9664\u3011\u64cd\u4f5c\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#9","title":"9 \u67e5\u770b\u53d8\u66f4\u8bb0\u5f55","text":"

    \u5728\u6d4b\u8bd5\u7528\u4f8b\u8be6\u60c5\u9875\u9762\u6700\u53f3\u4fa7\u83dc\u5355\u3010\u53d8\u66f4\u8bb0\u5f55\u3011\u4e0b\uff0c\u53ef\u4ee5\u67e5\u770b\u6b64\u7528\u4f8b\u6240\u6709\u7684\u53d8\u66f4\u8be6\u60c5\u3002

    "},{"location":"user_manual/test_track/test_case/test_case/#10","title":"10 \u7248\u672c\u7ba1\u7406","text":"

    \u70b9\u51fb\u7528\u4f8b\u8be6\u60c5\u5de6\u4e0a\u65b9\uff0c\u3010XX\u7248\u672c\u3011\u53ef\u8fdb\u884c\u7528\u4f8b\u7248\u672c\u5207\u6362\u3001\u4e0d\u540c\u7248\u672c\u7528\u4f8b\u521b\u5efa\u3001\u5220\u9664\u7248\u672c\u7528\u4f8b\u3001\u7248\u672c\u5bf9\u6bd4\u7b49\u529f\u80fd\u3002

    "},{"location":"user_manual/test_track/test_case/test_case_module/","title":"\u6a21\u5757\u6811\u7ba1\u7406","text":"

    \u529f\u80fd\u7528\u4f8b\u63d0\u4f9b\u6a21\u5757\u529f\u80fd\uff0c\u53ef\u6839\u636e\u4e0d\u540c\u7684\u529f\u80fd\u8bbe\u7f6e\u4e0d\u540c\u7684\u6a21\u5757\uff0c\u5e76\u53ef\u6839\u636e\u5404\u529f\u80fd\u4f9d\u8d56\u5173\u7cfb\u8bbe\u7f6e\u5b50\u6a21\u5757\u3002\u70b9\u51fb\u9875\u9762\u5de6\u4fa7\u3010\u5168\u90e8\u7528\u4f8b\u3011\uff0c\u70b9\u51fb\u3010\u6dfb\u52a0\u5b50\u6a21\u5757\u3011\uff0c\u586b\u5199\u6a21\u5757\u540d\u79f0\uff0c\u5373\u53ef\u5b8c\u6210\u7528\u4f8b\u6a21\u5757\u6dfb\u52a0\u3002

    "},{"location":"user_manual/test_track/test_case/test_case_module/#1","title":"1 \u521b\u5efa\u5b50\u6a21\u5757","text":"

    \u9009\u4e2d\u6a21\u5757\u6811\u5217\u8868\u3010\u5168\u90e8\u7528\u4f8b\u3011\uff0c\u70b9\u51fb\u3010+\u3011\u53f7\u6309\u94ae\u5728\u6a21\u5757\u603b\u76ee\u5f55\u4e0b\u521b\u5efa\u5b50\u6a21\u5757\u3002\u9009\u4e2d\u4efb\u610f\u4e0a\u7ea7\u6a21\u5757\u5373\u53ef\u5728\u8be5\u6a21\u5757\u4e0b\u521b\u5efa\u6b21\u7ea7\u6a21\u5757\uff0c\u6a21\u5757\u6811\u652f\u6301\u6700\u591a 8 \u5c42\u7684\u6811\u72b6\u7ed3\u6784\u3002

    "},{"location":"user_manual/test_track/test_case/test_case_module/#2","title":"2 \u6a21\u5757\u64cd\u4f5c","text":"

    \u64cd\u4f5c\u8bf4\u660e

    • \u3010\u91cd\u547d\u540d\u3011\u6309\u94ae\uff0c\u9f20\u6807\u60ac\u505c\u5728\u8981\u64cd\u4f5c\u7684\u6a21\u5757\u65f6\u51fa\u73b0\uff0c\u70b9\u51fb\u53ef\u4ee5\u91cd\u547d\u540d\u8be5\u6a21\u5757\u3002
    • \u3010\u6dfb\u52a0\u5b50\u6a21\u5757\u3011\u6309\u94ae\uff0c\u9f20\u6807\u60ac\u505c\u5728\u8981\u64cd\u4f5c\u7684\u6a21\u5757\u65f6\u51fa\u73b0\uff0c\u70b9\u51fb\u53ef\u4ee5\u5728\u8be5\u6a21\u5757\u4e0b\u6dfb\u52a0\u5b50\u6a21\u5757\u3002
    • \u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u9f20\u6807\u60ac\u505c\u5728\u8981\u64cd\u4f5c\u7684\u6a21\u5757\u65f6\u51fa\u73b0\uff0c\u70b9\u51fb\u5c06\u5220\u9664\u8be5\u6a21\u5757\u548c\u5176\u6240\u6709\u5b50\u6a21\u5757\u3002\u5220\u9664\u67d0\u4e2a\u6a21\u5757\u4e0d\u4ec5\u4f1a\u5220\u9664\u8be5\u6a21\u5757\u53ca\u5176\u6240\u6709\u5b50\u6a21\u5757\uff0c\u88ab\u5220\u9664\u6a21\u5757\u4e2d\u7684\u63a5\u53e3\u53ca\u63a5\u53e3\u7528\u4f8b\u4e5f\u5c06\u88ab\u79fb\u5165\u56de\u6536\u7ad9\u4e2d\uff0c\u8bf7\u8c28\u614e\u4f7f\u7528\u8be5\u529f\u80fd\u3002
    • \u3010\u5c55\u5f00/\u6536\u8d77\u3011\u64cd\u4f5c\uff0c\u5f53\u6a21\u5757\u4e0b\u5b58\u5728\u5b50\u6a21\u5757\u65f6\u51fa\u73b0\uff0c\u70b9\u51fb\u3010\u5c55\u5f00/\u6536\u8d77\u3011\u8be5\u6a21\u5757\u4e0b\u7684\u6240\u6709\u5b50\u6a21\u5757\u3002

    \u6a21\u5757\u6811\u8fd8\u652f\u6301\u9f20\u6807\u62d6\u62fd\u64cd\u4f5c\uff0c\u7528\u6237\u53ef\u4ee5\u6839\u636e\u9700\u6c42\u8c03\u6574\u6a21\u5757\u987a\u5e8f\u53ca\u5176\u5c42\u7ea7\u5173\u7cfb\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_batch/","title":"\u6279\u91cf\u64cd\u4f5c","text":""},{"location":"user_manual/test_track/test_plan/test_plan_batch/#1","title":"1 \u6279\u91cf\u5f00/\u5173\u5b9a\u65f6\u4efb\u52a1","text":"

    \u52fe\u9009\u591a\u4e2a\u6d4b\u8bd5\u8ba1\u5212\u540e\uff0c\u70b9\u51fb\u6279\u91cf\u5f00/\u5173\u5b9a\u65f6\u4efb\u52a1\uff0c\u53ef\u5bf9\u8bbe\u7f6e\u597d\u7684\u5b9a\u65f6\u4efb\u52a1\u8fdb\u884c\u5f00\u542f/\u5173\u95ed\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_batch/#2","title":"2 \u6279\u91cf\u6267\u884c","text":"

    \u52fe\u9009\u591a\u4e2a\u6d4b\u8bd5\u8ba1\u5212\u540e\uff0c\u70b9\u51fb\u6279\u91cf\u6267\u884c\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_batch/#3","title":"3 \u6279\u91cf\u5220\u9664","text":"

    \u52fe\u9009\u591a\u4e2a\u6d4b\u8bd5\u8ba1\u5212\u540e\uff0c\u70b9\u51fb\u6279\u91cf\u5220\u9664\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_list/","title":"\u8ba1\u5212\u5217\u8868","text":"

    \u6d4b\u8bd5\u8ba1\u5212\u5c5e\u4e8e\u67d0\u4e2a\u9879\u76ee\uff0c\u5e76\u53ef\u5173\u8054\u8be5\u9879\u76ee\u4e0b\u7684\u6d4b\u8bd5\u7528\u4f8b\u3002\u6d4b\u8bd5\u8ba1\u5212\u7528\u4e8e\u5c06\u6d4b\u8bd5\u5404\u73af\u8282\u4e0d\u540c\u7c7b\u578b\u7684\u6d4b\u8bd5\u4efb\u52a1\u6dfb\u52a0\u5230\u4e00\u4e2a\u6d4b\u8bd5\u8ba1\u5212\u4e2d\uff0c\u5305\u62ec\u529f\u80fd\u6d4b\u8bd5\u3001\u63a5\u53e3\u6d4b\u8bd5\u548c\u6027\u80fd\u6d4b\u8bd5\u7b49\uff0c\u652f\u6301\u5b9e\u65f6\u5c55\u793a\u5404\u6d4b\u8bd5\u73af\u8282\u7684\u8fdb\u5ea6\u53ca\u6d4b\u8bd5\u60c5\u51b5\uff0c\u5e76\u5b9e\u65f6\u751f\u6210\u6d4b\u8bd5\u62a5\u544a\u3002 \u6d4b\u8bd5\u8ba1\u5212\u53ef\u5c06\u6d4b\u8bd5\u5404\u73af\u8282\u52a0\u5165\u5230\u4e00\u4e2a\u6d4b\u8bd5\u8ba1\u5212\u4e2d\uff0c\u5305\u62ec\u529f\u80fd\u6d4b\u8bd5\u3001\u63a5\u53e3\u6d4b\u8bd5\u548c\u6027\u80fd\u6d4b\u8bd5\u7b49\uff0c\u80fd\u5b9e\u65f6\u5c55\u793a\u5404\u6d4b\u8bd5\u73af\u8282\u7684\u8fdb\u5ea6\u53ca\u6d4b\u8bd5\u60c5\u51b5\uff0c\u5e76\u5b9e\u65f6\u751f\u6210\u6d4b\u8bd5\u62a5\u544a\u3002 \u70b9\u51fb\u3010\u6d4b\u8bd5\u8ddf\u8e2a\u3011\uff0c\u70b9\u51fb\u3010\u9879\u76ee\u3011\uff0c\u70b9\u51fb\u6d4b\u8bd5\u8ba1\u5212\uff0c\u53ef\u67e5\u770b\u5f53\u524d\u9879\u76ee\u4e2d\u7684\u6d4b\u8bd5\u8ba1\u5212\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_list/#1","title":"1 \u8ba1\u5212\u5217\u8868\u64cd\u4f5c","text":"

    \u5728\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u4fe1\u606f\u9875\uff0c\u9f20\u6807\u70b9\u51fb\u67d0\u4e2a\u8ba1\u5212\uff0c\u8fdb\u5165\u8ba1\u5212\u8be6\u60c5\u9875\u9762\u3002

    \u70b9\u51fb\u3010\u6267\u884c\u3011\u6309\u94ae\uff0c\u9009\u62e9\u548c\u52fe\u9009\u8fd0\u884c\u6d4b\u8bd5\u8ba1\u5212\u7684\u76f8\u5173\u914d\u7f6e\u540e\uff0c\u70b9\u51fb\u3010\u6267\u884c\u3011\u5373\u53ef\u3002\u9ed8\u8ba4\u73af\u5883\u4e3a\u7528\u4f8b\u9996\u6b21\u5173\u8054\u8fdb\u6d4b\u8bd5\u8ba1\u5212\u6240\u9009\u62e9\u7684\u7528\u4f8b\uff0c\u9009\u62e9\u65b0\u73af\u5883\u540e\u53ef\u9009\u62e9\u6267\u884c\u548c\u4fdd\u5b58\uff0c\u4fdd\u5b58\u540e\u65b0\u9009\u62e9\u7684\u73af\u5883\u4e3a\u9ed8\u8ba4\u73af\u5883\uff0c\u70b9\u51fb\u6267\u884c\u4e0d\u4f1a\u4fee\u6539\u9ed8\u8ba4\u73af\u5883\uff0c\u9ed8\u8ba4\u73af\u5883\u591a\u7528\u4e8e\u5b9a\u65f6\u4efb\u52a1\u3001API\u8c03\u7528\u53ca\u6d41\u6c34\u7ebf\u89e6\u53d1\u6267\u884c\u3002

    \u53ef\u4ee5\u7ba1\u7406\u548c\u7ef4\u62a4\u672c\u6b21\u8ba1\u5212\u6d4b\u8bd5\u7684\u8303\u56f4\uff1a\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3001\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3001\u573a\u666f\u6d4b\u8bd5\u7528\u4f8b\u3001\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u7b49\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_list/#2","title":"2 \u6d4b\u8bd5\u62a5\u544a\u67e5\u770b","text":"

    \u8ba1\u5212\u6267\u884c\u540e\uff0c\u53ef\u4ee5\u70b9\u51fb\u3010\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3011\u3002

    \u62a5\u544a\u8be6\u7ec6\u89e3\u8bfb\u89c1 \u6d4b\u8bd5\u8ddf\u8e2a->\u62a5\u544a\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/","title":"\u7ba1\u7406\u8ba1\u5212","text":""},{"location":"user_manual/test_track/test_plan/test_plan_manage/#1","title":"1 \u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212","text":"

    \u70b9\u51fb\u3010\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\u3011\uff0c\u5373\u53ef\u8fdb\u5165\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\u9875\u9762\uff0c\u9875\u9762\u5185\u5bb9\u5305\u62ec\uff1a

    • \u8ba1\u5212\u540d\u79f0\u3001\u8d1f\u8d23\u4eba\u3001\u6d4b\u8bd5\u9636\u6bb5\u7b49\u7b49\u5fc5\u586b\u4fe1\u606f
    • \u6807\u7b7e\u3001\u8ba1\u5212\u5f00\u59cb/\u7ed3\u675f\u65f6\u95f4\u3001\u5907\u6ce8\u7b49\u7b49\u4fe1\u606f
    • \u81ea\u52a8\u66f4\u65b0\u72b6\u6001\u5f00\u5173 \u7b49\u9009\u62e9\u4fe1\u606f

    \u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5b8c\u6210\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\uff0c\u5e76\u4e14\u9875\u9762\u8df3\u8f6c\u5230\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u4fe1\u606f\u9875\u9762\uff0c\u53ef\u5728\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u4e2d\u67e5\u770b\u5230\u521b\u5efa\u7684\u6d4b\u8bd5\u8ba1\u5212\u3002 \u70b9\u51fb\u3010\u89c4\u5212&\u6267\u884c\u3011\u5b8c\u6210\u521b\u5efa\u6d4b\u8bd5\u8ba1\u5212\uff0c\u5e76\u4e14\u9875\u9762\u8df3\u8f6c\u5230\u6d4b\u8bd5\u8ba1\u5212\u5185\u5bb9\u7ef4\u62a4\u754c\u9762\uff0c\u53ef\u76f4\u63a5\u6dfb\u52a0\u672c\u6b21\u8ba1\u5212\u7684\u6d4b\u8bd5\u8303\u56f4\u548c\u6d4b\u8bd5\u5185\u5bb9\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#2","title":"2 \u6267\u884c\u6d4b\u8bd5\u8ba1\u5212","text":"

    \u70b9\u51fb\u7528\u4f8b\u5217\u8868\u3010\u6267\u884c\u3011\u8bbe\u7f6e\u8fd0\u884c\u73af\u5883\u3001\u6267\u884c\u6a21\u5f0f\u3001\u8d44\u6e90\u6c60\u3001\u5931\u8d25\u91cd\u8bd5\u3001\u5931\u8d25\u505c\u6b62\u7b49\u529f\u80fd\uff0c\u53ef\u4ee5\u8fdb\u884c\u3010\u4fdd\u5b58\u3011\u3001\u3010\u4fdd\u5b58\u5e76\u6267\u884c\u3011\u3001\u3010\u6267\u884c\u3011\u64cd\u4f5c\u3002

    • \u4fdd\u5b58\uff1a\u53ea\u4fdd\u5b58\u5f53\u524d\u8bbe\u7f6e\u7684\u9ed8\u8ba4\u73af\u5883\u53ca\u8fd0\u884c\u914d\u7f6e\uff0c\u4e0d\u89e6\u53d1\u6267\u884c\u3002
    • \u4fdd\u5b58\u5e76\u6267\u884c\uff1a\u4fdd\u5b58\u5f53\u524d\u8bbe\u7f6e\u7684\u9ed8\u8ba4\u73af\u5883\u53ca\u8fd0\u884c\u914d\u7f6e\u5e76\u89e6\u53d1\u6267\u884c\u3002
    • \u6267\u884c\uff1a\u4e0d\u4fee\u6539\u5f53\u524d\u9ed8\u8ba4\u73af\u5883\u53ca\u8fd0\u884c\u914d\u7f6e\uff0c\u76f4\u63a5\u89e6\u53d1\u6267\u884c\u3002 \u6539\u914d\u7f6e\u64cd\u4f5c\u4f1a\u5f71\u54cd\u3010\u5b9a\u65f6\u4efb\u52a1\u3011\u3001\u3010\u6d41\u6c34\u7ebf\u8c03\u7528\u3011\u3001\u3010API\u8c03\u7528\u3011\uff0c\u8bf7\u614e\u91cd\u4fee\u6539\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#3","title":"3 \u5931\u8d25\u91cd\u8bd5","text":"

    \u6d4b\u8bd5\u8ba1\u5212\u4e2d\u7684\u7528\u4f8b\u6267\u884c\u5931\u8d25\u540e\uff0c\u652f\u6301\u6839\u636e\u8bbe\u5b9a\u7684\u91cd\u8bd5\u6b21\u6570\u518d\u6b21\u53d1\u8d77\u6267\u884c\uff0c\u6d4b\u8bd5\u62a5\u544a\u4f1a\u5b8c\u6574\u8bb0\u5f55\u63a5\u53e3\u9996\u6b21\u8fd0\u884c\u4ee5\u53ca\u6700\u540e10\u6b21\u8fd0\u884c\u7684\u54cd\u5e94\u7ed3\u679c\uff0c\u4f9b\u7528\u6237\u8fdb\u884c\u5bf9\u6bd4\u5206\u6790\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#4","title":"4 \u7ef4\u62a4\u6d4b\u8bd5\u8ba1\u5212","text":"

    \u5728\u6d4b\u8bd5\u8ba1\u5212\u5217\u8868\u4fe1\u606f\u5217\u8868\uff0c\u70b9\u51fb\u67d0\u6761\u8ba1\u5212\uff0c\u53ef\u4ee5\u5bf9\u6d4b\u8bd5\u8ba1\u5212\u8be6\u60c5\u8fdb\u884c\u7ef4\u62a4\u3002

    \u6dfb\u52a0\u672c\u6b21\u8ba1\u5212\u6d4b\u8bd5\u7684\u8303\u56f4\uff1a\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3001\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3001\u573a\u666f\u6d4b\u8bd5\u7528\u4f8b\u3001\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u7b49\u3002

    • \u70b9\u51fb\u3010\u62a5\u544a\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u67e5\u770b\u6d4b\u8bd5\u8ba1\u5212\u7684\u62a5\u544a\uff1b
    • \u70b9\u51fb\u3010\u6267\u884c\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u6267\u884c\u6d4b\u8bd5\u8ba1\u5212\uff1b
    • \u70b9\u51fb\u3010...\u3011\u6309\u94ae\uff0c\u5728\u4e0b\u62c9\u64cd\u4f5c\u83dc\u5355\u4e2d\uff0c\u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u5bf9\u6d4b\u8bd5\u8ba1\u5212\u8fdb\u884c\u5220\u9664\uff1b\u70b9\u51fb\u3010\u5b9a\u65f6\u4efb\u52a1\u3011\u6309\u94ae\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u4e00\u4e2a\u6307\u5b9a\u7684\u6267\u884c\u65f6\u95f4\uff1b
    • \u70b9\u51fb\u3010\u590d\u5236\u3011\u6309\u94ae\uff0c\u53ef\u514b\u9686\u539f\u8ba1\u5212\u751f\u6210\u65b0\u7684\u8ba1\u5212\uff0c\u540c\u65f6\u53ef\u5bf9\u6b64\u65b0\u8ba1\u5212\u8fdb\u884c\u6b63\u5e38\u7684\u7ef4\u62a4\u548c\u64cd\u4f5c\u3002

    \u70b9\u51fb\u3010\u7f16\u8f91\u3011\uff0c\u4fee\u6539\u6d4b\u8bd5\u8ba1\u5212\u7684\u76f8\u5173\u4fe1\u606f\u548c\u5f53\u524d\u72b6\u6001\u3002

    \u5f53\u524d\u72b6\u6001\u8bf4\u660e\uff1a

    • \u5df2\u5b8c\u6210\uff1a\u8868\u793a\u8ba1\u5212\u4e2d\u6240\u6709\u7684\u6d4b\u8bd5\u7528\u4f8b\u90fd\u901a\u8fc7\u4e86\u3002
    • \u5df2\u7ed3\u675f\uff1a\u8868\u793a\u8ba1\u5212\u4e2d\u6267\u884c\u7ed3\u679c\u6709\u5931\u8d25\u7684\uff0c\u4f46\u662f\u90fd\u6267\u884c\u5b8c\u4e86\u3002

    \u5907\u6ce8\uff1a

    \u6b64\u72b6\u6001\u53ef\u7531\u7cfb\u7edf\u81ea\u52a8\u66f4\u65b0\uff0c\u4e5f\u53ef\u4ee5\u624b\u52a8\u7ef4\u62a4\uff0c\u624b\u52a8\u6539\u72b6\u6001\u53ea\u662f\u6539\u6d4b\u8bd5\u8ba1\u5212\u7684\u72b6\u6001\uff0c\u91cc\u9762\u7684\u7528\u4f8b\u72b6\u6001\u4e0d\u4f1a\u5224\u65ad\uff0c\u4e5f\u4e0d\u4f1a\u4fee\u6539\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#5","title":"5 \u5173\u8054\u6d4b\u8bd5\u7528\u4f8b","text":"

    \u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u652f\u6301\u8bb0\u4f4f\u8de8\u9875\u9009\u62e9\u7684\u8bb0\u5f55\uff0c\u518d\u4e00\u5e76\u5bfc\u5165\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#51","title":"5.1 \u5173\u8054\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b","text":"

    \u8fdb\u5165\u6d4b\u8bd5\u8ba1\u5212\u6267\u884c\u4e3b\u9875\uff0c\u9ed8\u8ba4\u6253\u5f00\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u6807\u7b7e\u3002\u70b9\u51fb\u3010\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u3011\u652f\u6301\u4e3a\u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u529f\u80fd\u7528\u4f8b\uff0c\u540c\u65f6\u652f\u6301\u7528\u6237\u5feb\u901f\u5207\u6362\u3010\u6211\u7684\u7528\u4f8b\u3011\u6216\u3010\u5168\u90e8\u7528\u4f8b\u3011\u5217\u8868\u3002

    • \u57fa\u4e8e\u5217\u8868\u89c6\u56fe\u8bb0\u5f55\u8ba1\u5212\u6267\u884c\u7ed3\u679c \u529f\u80fd\u6d4b\u8bd5\u7528\u5173\u8054\u5b8c\u6210\u540e\uff0c\u70b9\u51fb\u4efb\u610f\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\u7684\u3010\u7f16\u8f91\u3011\u6309\u94ae\uff0c\u8fdb\u5165\u7528\u4f8b\u8be6\u60c5\u9875\u9762\u3002\u5728\u6267\u884c\u6b65\u9aa4\u4e2d\uff0c\u586b\u5199\u6bcf\u4e00\u6b65\u7684\u5b9e\u9645\u7ed3\u679c\u53ca\u8be5\u6b65\u7684\u6267\u884c\u7ed3\u679c\uff0c\u57fa\u4e8e\u5404\u6b65\u9aa4\u6267\u884c\u60c5\u51b5\u53ca\u8bc4\u5b9a\u6807\u51c6\uff0c\u70b9\u51fb\u4e0a\u65b9\u7684\u72b6\u6001\u6309\u94ae\u4e3a\u6b64\u6761\u7528\u4f8b\u6807\u8bb0\u6267\u884c\u72b6\u6001\u3002

    • \u57fa\u4e8e\u8111\u56fe\u89c6\u56fe\u8bb0\u5f55\u8ba1\u5212\u6267\u884c\u7ed3\u679c \u4e0e\u7528\u4f8b\u7684\u521b\u5efa\u548c\u8bc4\u5ba1\u7c7b\u4f3c\uff0c\u7528\u4f8b\u6267\u884c\u7ed3\u679c\u540c\u6837\u53ef\u4ee5\u901a\u8fc7\u8111\u56fe\u65b9\u5f0f\u8bb0\u5f55\u3002\u5728\u7528\u4f8b\u5217\u8868\u9875\u9762\u70b9\u51fb\u3010\u8111\u56fe\u3011\u5207\u6362\u5230\u8111\u56fe\u5c55\u793a\u6a21\u5f0f\uff0c\u9009\u4e2d\u5f85\u6267\u884c\u7528\u4f8b\uff0c\u901a\u8fc7\u6dfb\u52a0\u6807\u7b7e\u7684\u65b9\u5f0f\u6765\u6807\u8bb0\u7528\u4f8b\u6267\u884c\u7ed3\u679c\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#52","title":"5.2 \u5173\u8054\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b","text":"

    \u70b9\u51fb\u3010\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u3011\uff0c\u70b9\u51fb\u3010\u63a5\u53e3\u7528\u4f8b\u3011\u548c\u3010\u573a\u666f\u7528\u4f8b\u3011\uff0c\u53ef\u8fdb\u5165\u4e0d\u540c\u7c7b\u578b\u63a5\u53e3\u7528\u4f8b\u7684\u5173\u8054\u5217\u8868\u3002

    \u70b9\u51fb\u3010\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u3011\uff0c\u8fdb\u5165\u5173\u8054\u63a5\u53e3\u7528\u4f8b\u9875\u9762\uff0c\u540c\u65f6\u6b64\u4e5f\u652f\u6301\u8de8\u9879\u76ee\u7684\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u548c\u573a\u666f\u7528\u4f8b\u7684\u5f15\u7528\u3002 \u52fe\u9009\u9700\u8981\u5173\u8054\u7684\u6d4b\u8bd5\u7528\u4f8b\u540e\uff0c\u540c\u65f6\u9700\u8981\u9009\u62e9\u8fd0\u884c\u73af\u5883\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5373\u53ef\u5b8c\u6210\u63a5\u53e3\u7528\u4f8b\u7684\u5173\u8054\u64cd\u4f5c\u3002

    \u5173\u8054\u63a5\u53e3\u6d4b\u8bd5\u7528\u4f8b\u540e\uff0c\u5728\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u4e2d\u53ef\u70b9\u51fb\u3010\u6267\u884c\u3011\uff0c\u6267\u884c\u63a5\u53e3\u6d4b\u8bd5\uff0c\u6267\u884c\u5b8c\u6210\u540e\u53ef\u70b9\u51fb\u3010\u67e5\u770b\u6d4b\u8bd5\u62a5\u544a\u3011\u67e5\u770b\u6d4b\u8bd5\u7ed3\u679c\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#53-ui-x-pack","title":"5.3 \u5173\u8054 UI \u6d4b\u8bd5\u7528\u4f8b (X-Pack)","text":"

    \u5207\u6362\u81f3\u3010UI\u6d4b\u8bd5\u7528\u4f8b\u3011\u6807\u7b7e\u89c6\u56fe\uff0c\u8fdb\u5165 UI \u6d4b\u8bd5\u7528\u4f8b\u5173\u8054\u9875\u9762\uff0c\u70b9\u51fb\u3010\u5173\u8054\u6d4b\u8bd5\u7528\u4f8b\u3011\u6309\u94ae\u3002

    \u52fe\u9009\u8981\u5173\u8054\u7684 UI \u6d4b\u8bd5\u7528\u4f8b\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u6309\u94ae\u5373\u53ef\u3002

    \u53ef\u770b\u5230 UI \u6d4b\u8bd5\u7528\u4f8b\u9875\u9762\uff0c\u5217\u8868\u5c55\u793a\u5df2\u7ecf\u5173\u8054\u7684\u7528\u4f8b

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#54","title":"5.4 \u5173\u8054\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b","text":"

    \u5207\u6362\u81f3\u3010\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3011\u6807\u7b7e\u89c6\u56fe\uff0c\u652f\u6301\u7528\u6237\u4e3a\u6d4b\u8bd5\u8ba1\u5212\u5173\u8054\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3002\u7528\u6237\u53ef\u4ee5\u5728\u8be5\u9875\u9762\u53d1\u8d77\u5355\u7528\u4f8b\u7684\u5feb\u901f\u6267\u884c\u3001\u67e5\u770b\u5355\u7528\u4f8b\u6267\u884c\u7ed3\u679c\uff0c\u540c\u65f6\u652f\u6301\u6279\u91cf\u53d6\u6d88\u5173\u8054\u3001\u6279\u91cf\u6267\u884c\u7b49\u64cd\u4f5c\u3002\u76ee\u524d\uff0c\u5e73\u53f0\u652f\u6301\u4ee5\u5e76\u884c\u6216\u4e32\u884c\u65b9\u5f0f\u6279\u91cf\u6267\u884c\u6027\u80fd\u6d4b\u8bd5\u7528\u4f8b\u3002

    "},{"location":"user_manual/test_track/test_plan/test_plan_manage/#55","title":"5.5 \u62a5\u544a\u7edf\u8ba1","text":"

    \u5207\u6362\u81f3\u3010\u62a5\u544a\u7edf\u8ba1\u3011\u6807\u7b7e\u89c6\u56fe\uff0c\u53ef\u770b\u5230\u8be5\u6d4b\u8bd5\u8ba1\u5212\u7684\u5177\u4f53\u62a5\u544a\u5185\u5bb9\uff0c\u4e5f\u53ef\u4ee5\u81ea\u5b9a\u4e49\u7f16\u5199\u6d4b\u8bd5\u62a5\u544a\u603b\u7ed3\u5185\u5bb9\u3002

    \u70b9\u51fb\u3010\u5206\u4eab\u3011\u6309\u94ae\uff0c\u53ef\u590d\u5236\u8be5\u6d4b\u8bd5\u62a5\u544a\u94fe\u63a5\u8fdb\u884c\u5206\u4eab\u3002

    \u70b9\u51fb\u3010\u914d\u7f6e\u3011\u6309\u94ae\uff0c\u53ef\u81ea\u5b9a\u4e49\u914d\u7f6e\u62a5\u544a\u5185\u5bb9\u3002

    \u53ef\u4fdd\u5b58\u5f53\u524d\u6d4b\u8bd5\u62a5\u544a\uff0c\u4e5f\u53ef\u5bfc\u51fa\u5f53\u524d\u6d4b\u8bd5\u62a5\u544a\uff0c\u5bfc\u51fa\u7684\u683c\u5f0f\u4e3a HTML \u683c\u5f0f\u3002

    \u53ef\u5207\u6362\u4e0d\u540c\u6d4b\u8bd5\u8ba1\u5212\u67e5\u770b\u62a5\u544a\u7edf\u8ba1\uff0c\u70b9\u51fb\u5de6\u4fa7\u76ee\u5f55\uff0c\u53ef\u67e5\u770b\u62a5\u544a\u7edf\u8ba1\u76ee\u5f55\u3002

    "},{"location":"user_manual/ui_test/info/","title":"Info","text":"
    • \u4fee\u6539 /opt/metersphere/.env \u6587\u4ef6\u4e2d MS_SELENIARM_ENABLED \u503c\uff0cMS_SELENIARM_ENABLED=true\uff0c \u4fee\u6539\u914d\u7f6e\u540e\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\u6267\u884c msctl reload\u3002
    • docker ps \u68c0\u67e5 local-selenium-grid \u5bb9\u5668\u662f\u5426\u6210\u529f\u542f\u52a8\u3002
    • \u5728 MeterSphere \u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e\u4e2d\u4fee\u6539 selenium-docker \u5730\u5740\u4e3ahttp://local-selenium-grid:4444\u3002
    • UI \u6d4b\u8bd5\u7528\u4f8b\uff0c\u9ed8\u8ba4 \"\u6027\u80fd\u6a21\u5f0f\" \u6ca1\u6709\u622a\u56fe\u5c55\u793a\uff0c\u5173\u6389 \"\u6027\u80fd\u6d4b\u8bd5\" \u53ef\u4ee5\u67e5\u770b\u6bcf\u4e2a\u6b65\u9aa4\u7684\u622a\u56fe\u3002
    • \u5982\u679c\u5bfc\u5165 License \u6210\u529f\u540e\uff0c\u4f9d\u7136\u663e\u793a\u6ca1\u6709 UI \u6d4b\u8bd5\u6a21\u5757\uff0c\u8bf7\u5230\u3010\u7528\u6237\u7ec4\u4e0e\u6743\u9650\u3011\u4e2d\u786e\u8ba4\u662f\u5426\u6709 UI \u6a21\u5757\u7684\u6743\u9650\u3002
    "},{"location":"user_manual/ui_test/intro/","title":"\u6982\u8ff0","text":"

    MeterSphere UI \u6d4b\u8bd5\u6a21\u5757\u56f4\u7ed5\u5e94\u7528\u7cfb\u7edf\u7684 \u7528\u6237\u754c\u9762 \u63d0\u4f9b\u4ee5\u4e0b\u4e3b\u8981\u529f\u80fd\uff1a

    • \u5143\u7d20\u5e93\uff1a\u5e73\u53f0\u63d0\u4f9b\u5143\u7d20\u5e93\u7684\u529f\u80fd\uff0c\u901a\u8fc7\u521b\u5efa\u5143\u7d20\u5e93\uff0c\u53ef\u4ee5\u628a UI \u81ea\u52a8\u5316\u573a\u666f\u4e2d\u7684\u5355\u4e2a\u6b65\u9aa4\uff0c\u8fdb\u884c\u7edf\u4e00\u7ba1\u7406\uff0c\u8fbe\u5230\u9875\u9762\u5143\u7d20\u5728\u4e0d\u540c UI \u573a\u666f\u4e2d\u590d\u7528\u7684\u6548\u679c\u3002
    • UI \u81ea\u52a8\u5316\uff1a\u652f\u6301\u624b\u52a8\u521b\u5efa UI \u81ea\u52a8\u5316\u573a\u666f\u548c\u5bfc\u5165 SeleniumIDE \u5de5\u5177\u5f55\u5236\u597d\u7684 side \u811a\u672c\u6587\u4ef6\uff0c\u652f\u6301\u6dfb\u52a0\u6d4f\u89c8\u5668\u64cd\u4f5c\u3001 \u5f39\u7a97\u64cd\u4f5c\u3001\u5143\u7d20\u64cd\u4f5c\u3001\u9f20\u6807\u64cd\u4f5c\u3001\u8f93\u5165\u64cd\u4f5c\u3001\u6d41\u7a0b\u63a7\u5236\u7b49\u6b65\u9aa4\uff0c\u5e76\u63d0\u4f9b\u67e5\u770b\u5143\u7d20\u5e93\u3001\u524d\u7f6e\u64cd\u4f5c\u3001\u540e\u7f6e\u64cd\u4f5c\u3001\u9519\u8bef\u5904\u7406\u9ad8\u7ea7\u529f\u80fd\u3002
    • \u6d4b\u8bd5\u62a5\u544a\uff1a\u63d0\u4f9b\u76f4\u89c2\u3001\u7f8e\u89c2\u7684\u9875\u9762\u5bf9UI\u6d4b\u8bd5\u7684\u7ed3\u679c\u8fdb\u884c\u53ef\u89c6\u5316\u5c55\u793a\uff0c\u53ef\u67e5\u770b\u573a\u666f\u5168\u90e8\u6b65\u9aa4\u548c\u5931\u8d25\u6b65\u9aa4\uff0c\u4ee5\u53ca\u63a7\u5236\u53f0\u8be6\u60c5\uff0c\u5e76\u4e14\u652f\u6301\u5bf9\u6b65\u9aa4\u6267\u884c\u65f6\u7684UI\u622a\u56fe\u9884\u89c8\u3002

    \u5907\u6ce8: UI \u6d4b\u8bd5\u6a21\u5757\u662f\u4f01\u4e1a\u7248 X-Pack \u529f\u80fd\u589e\u5f3a\u5305\u529f\u80fd\u3002\u5982\u9700\u4f7f\u7528\u4f01\u4e1a\u7248\uff0c\u8bf7\u70b9\u51fb\uff1a\u7533\u8bf7\u4f01\u4e1a\u7248\u8bd5\u7528\u3002

    \u6ce8\u610f\u4e8b\u9879

    • \u4fee\u6539 /opt/metersphere/.env \u6587\u4ef6\u4e2d MS_UI_ENABLED \u503c\uff0cMS_UI_ENABLED=true\uff0c \u4fee\u6539\u914d\u7f6e\u540e\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\u6267\u884c msctl reload\u3002
    • docker ps \u68c0\u67e5 selenium-hub \u5bb9\u5668\u662f\u5426\u6210\u529f\u542f\u52a8\u3002
    • \u5728 MeterSphere \u7cfb\u7edf\u53c2\u6570\u8bbe\u7f6e\u4e2d\u4fee\u6539 selenium-docker \u5730\u5740\u4e3ahttp://selenium-hub:4444\u3002
    • UI \u6d4b\u8bd5\u7528\u4f8b\uff0c\u9ed8\u8ba4 \"\u6027\u80fd\u6a21\u5f0f\" \u6ca1\u6709\u622a\u56fe\u5c55\u793a\uff0c\u5173\u6389 \"\u6027\u80fd\u6d4b\u8bd5\" \u53ef\u4ee5\u67e5\u770b\u6bcf\u4e2a\u6b65\u9aa4\u7684\u622a\u56fe\u3002
    • \u5982\u679c\u5bfc\u5165 License \u6210\u529f\u540e\uff0c\u4f9d\u7136\u663e\u793a\u6ca1\u6709 UI \u6d4b\u8bd5\u6a21\u5757\uff0c\u8bf7\u5230\u3010\u7528\u6237\u7ec4\u4e0e\u6743\u9650\u3011\u4e2d\u786e\u8ba4\u662f\u5426\u6709 UI \u6a21\u5757\u7684\u6743\u9650\u3002

    "},{"location":"user_manual/ui_test/ui_automation/","title":"UI \u81ea\u52a8\u5316","text":""},{"location":"user_manual/ui_test/ui_automation/#1","title":"1 \u521b\u5efa\u573a\u666f","text":""},{"location":"user_manual/ui_test/ui_automation/#11","title":"1.1 \u57fa\u7840\u4fe1\u606f","text":"

    \u70b9\u51fb\u3010+\u3011\u6309\u94ae\uff0c\u9009\u62e9\u3010\u521b\u5efa\u573a\u666f\u3011\uff0c\u8fdb\u5165\u573a\u666f\u521b\u5efa\u9875\u9762\u3002

    \u5728\u3010\u57fa\u7840\u4fe1\u606f\u3011\u680f\uff0c\u6dfb\u52a0\u6a21\u5757\u3001\u72b6\u6001\u3001\u540d\u79f0\u7b49\u4fe1\u606f\u540e\u5373\u53ef\u4fdd\u5b58\u573a\u666f\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#12","title":"1.2 \u573a\u666f\u53c2\u6570","text":"
    • \u573a\u666f\u53d8\u91cf\uff1a\u70b9\u51fb\u3010\u573a\u666f\u53d8\u91cf\u3011\uff0c\u8fdb\u5165\u53d8\u91cf\u6dfb\u52a0\u9875\u9762\u3002

    \u76ee\u524d\u652f\u6301\u6dfb\u52a0\u3010\u5b57\u7b26\u4e32\u3001\u6570\u7ec4\u3001json\u3001\u6570\u503c\u3011\uff0c\u53ef\u4ee5\u5355\u884c\u6dfb\u52a0\u548c\u6279\u91cf\u6dfb\u52a0\uff0c\u6279\u91cf\u6dfb\u52a0\u4ee5 \u201c\u53d8\u91cf\u540d:\u53d8\u91cf\u503c\u201d \u683c\u5f0f\u6dfb\u52a0\u3002

    • \u6027\u80fd\u6a21\u5f0f\uff1a\u3010\u6027\u80fd\u6a21\u5f0f\u3011\u9ed8\u8ba4\u5f00\u542f\uff0c\u5f00\u542f\u540e\u4e0d\u4f1a\u5bf9\u6bcf\u4e2a\u6b65\u9aa4\u90fd\u622a\u56fe\uff0c\u66f4\u8282\u7701\u8d44\u6e90\u3002

    • \u6d4f\u89c8\u5668\u9a71\u52a8\uff1a\u6d4f\u89c8\u5668\u9a71\u52a8\u5373\u4ee5\u4ec0\u4e48\u6d4f\u89c8\u5668\u6267\u884c\u8be5\u573a\u666f\uff0c\u5f53\u524d\u652f\u6301 chrome \u6d4f\u89c8\u5668\u548c firefox \u6d4f\u89c8\u5668\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#13","title":"1.3 \u6dfb\u52a0\u6b65\u9aa4","text":"
    • \u6dfb\u52a0\u6b65\u9aa4 \uff1a\u70b9\u51fb\u573a\u666f\u53f3\u4e0b\u89d2\u3010+\u3011\u6309\u94ae\u3002
    • \u6d4f\u89c8\u5668\u64cd\u4f5c\uff1a\u70b9\u51fb\u3010\u6d4f\u89c8\u5668\u64cd\u4f5c\u3011\uff0c\u8f93\u5165\u3010URL\u3011\u5730\u5740\uff0c\u53ef\u6dfb\u52a0\u6d4f\u89c8\u5668\u76f8\u5173\u64cd\u4f5c\u6b65\u9aa4\u3002

    \u76ee\u524d\u652f\u6301\u6d4f\u89c8\u5668\u6253\u5f00\u7f51\u9875\u3001\u5173\u95ed\u7f51\u9875\u3001\u5207\u6362\u7a97\u53e3\u3001\u8bbe\u7f6e\u7a97\u53e3\u5927\u5c0f\u3001\u9009\u62e9\u5185\u5d4c\u7f51\u9875\u7684\u64cd\u4f5c\u3002

    • \u5f39\u7a97\u64cd\u4f5c\uff1a\u652f\u6301\u5bf9\u5f39\u7a97\u8f93\u5165\u6846\u8f93\u5165\u5185\u5bb9\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u548c\u3010\u53d6\u6d88\u3011\u7684\u64cd\u4f5c\u3002

    • \u5143\u7d20\u64cd\u4f5c\uff1a \u652f\u6301\u3010\u63d0\u4ea4\u8868\u5355\u3011\u3001\u3010\u4e0b\u62c9\u6846\u64cd\u4f5c\u3011\u3001\u3010\u8bbe\u7f6e\u9009\u9879\u3011\u3001\u3010\u7b49\u5f85\u5143\u7d20\u3011\u56db\u79cd\u65b9\u5f0f\u3002
    • \u3010\u63d0\u4ea4\u8868\u5355\u3011\uff1a\u9488\u5bf9\u5c5e\u6027type=\"submit\u201d\u7684\u5143\u7d20\uff0c\u7528\u4e8e\u63d0\u4ea4\u8868\u5355\u6570\u636e\u3002
    • \u3010\u4e0b\u62c9\u6846\u64cd\u4f5c\u3011\uff1a\u5bf9\u4e0b\u62c9\u9009\u9879\u8fdb\u884c\u64cd\u4f5c\uff0c\u53ef\u5b9e\u73b0\u5355\u9009\uff0c\u591a\u9009\uff0c\u4ee5\u53ca\u53d6\u6d88\u9009\u62e9\u7684\u64cd\u4f5c\u3002
    • \u3010\u8bbe\u7f6e\u9009\u9879\u3011\uff1a\u7528\u4e8e\u8bbe\u7f6e checkbox/radio \u7684\u72b6\u6001\u3002
    • \u3010\u7b49\u5f85\u5143\u7d20\u3011\uff1a\u5bf9\u9875\u9762\u5bf9\u8c61\u6267\u884c\u6307\u5b9a\u7684\u7b49\u5f85\u64cd\u4f5c\uff0c\u9ed8\u8ba4\u7b49\u5f85\u8d85\u65f63000ms\u3002

    • \u9f20\u6807\u64cd\u4f5c\uff1a\u652f\u6301\u3010\u9f20\u6807\u70b9\u51fb\u3011\u3001\u3010\u9f20\u6807\u79fb\u52a8\u3011\u548c\u3010\u9f20\u6807\u62d6\u62fd\u3011\u7684\u64cd\u4f5c\uff0c\u901a\u8fc7\u5b9a\u4f4d\u627e\u5230\u5143\u7d20\u540e\uff0c\u8fd8\u652f\u6301\u8bbe\u7f6e\u9f20\u6807\u5728\u5143\u7d20\u4e0a\u7684\u70b9\u51fb\u4f4d\u7f6e\u3002
    • \u3010\u9f20\u6807\u70b9\u51fb\u3011\uff1a\u6a21\u62df\u9f20\u6807\u70b9\u51fb\u7684\u64cd\u4f5c\uff0c\u652f\u6301\u5355\u51fb/\u53cc\u51fb/\u6309\u4e0b/\u5f39\u8d77\u3002
    • \u3010\u9f20\u6807\u79fb\u52a8\u3011\uff1a\u5c06\u9f20\u6807\u60ac\u505c\u5728\u7f51\u9875\u5143\u7d20\u7684\u4e0a\u65b9\u3002
    • \u3010\u9f20\u6807\u62d6\u62fd\u3011\uff1a\u6a21\u62df\u9f20\u6807\u5c06\u5143\u7d20\u4ece\u67d0\u4e2a\u4f4d\u7f6e\u62d6\u5230\u53e6\u4e00\u4e2a\u4f4d\u7f6e\u3002

    \u3010\u9f20\u6807\u64cd\u4f5c\u3011\u9009\u62e9\u3010\u9f20\u6807\u70b9\u51fb\u3011\uff0c\u9009\u62e9\u70b9\u51fb\u65b9\u5f0f\uff0c\u586b\u5199\u5143\u7d20\u4f4d\u7f6e\u4ee5\u53ca\u9f20\u6807\u70b9\u51fb\u4f4d\u7f6e\u5373\u53ef

    \u5f53\u5b9a\u4f4d\u5143\u7d20\u88ab\u906e\u6321\u65f6\uff0c\u53ef\u8fdb\u884c\u5f3a\u5236\u70b9\u51fb

    \u3010\u9f20\u6807\u64cd\u4f5c\u3011\u9009\u62e9\u3010\u9f20\u6807\u79fb\u52a8\u3011\uff0c\u9009\u62e9\u79fb\u52a8\u65b9\u5f0f\uff0c\u586b\u5199\u9f20\u6807\u4f4d\u7f6e\u5373\u53ef

    \u3010\u9f20\u6807\u64cd\u4f5c\u3011\u9009\u62e9\u3010\u9f20\u6807\u62d6\u62fd\u3011\uff0c\u9009\u62e9\u62d6\u62fd\u65b9\u5f0f\uff0c\u586b\u5199\u64cd\u4f5c\u5143\u7d20\u4ee5\u53ca\u5750\u6807\u70b9\u5373\u53ef\u3002

    • \u8f93\u5165\u64cd\u4f5c\uff1a\u652f\u6301\u8f93\u5165\u6846\u548c\u53ef\u7f16\u8f91\u6bb5\u843d\u8f93\u5165\uff0c\u540c\u65f6\u652f\u6301\u8ffd\u52a0\u8f93\u5165\u548c\u8986\u76d6\u8f93\u5165\u6a21\u5f0f\u3002

    • \u6d41\u7a0b\u63a7\u5236\uff1a\u652f\u6301\u3010\u6b21\u6570\u5faa\u73af\u3011\u3001\u3010ForEach\u5faa\u73af\u3011\u3001\u3010While\u3011\u3001\u3010If\u3011\u3001\u3010ElseIf\u3011\u3001\u3010Else\u3011\u7b49\u65b9\u5f0f\u3002

    • \u3010\u6b21\u6570\u5faa\u73af\u3011\uff1a\u8bbe\u7f6e\u6b65\u9aa4\u6267\u884c\u6b21\u6570\u3002

    • \u3010ForEach \u5faa\u73af\u3011\uff1a\u904d\u5386\u7ed9\u5b9a\u7684\u96c6\u5408\u3002
    • \u3010While \u5faa\u73af\u3011\uff1a\u6ee1\u8db3\u8868\u8fbe\u5f0f\u7684\u6761\u4ef6\u5219\u5faa\u73af\u6267\u884c\u91cc\u9762\u7684\u6b65\u9aa4\u3002
    • \u3010If\u3011\uff1a\u6ee1\u8db3 If \u6761\u4ef6\u5219\u6267\u884c\u91cc\u9762\u7684\u6b65\u9aa4\u3002
    • \u3010ElseIf\u3011\uff1a\u4e0d\u6ee1\u8db3 If \u6761\u4ef6\u4e14\u6ee1\u8db3 ElseIf \u6761\u4ef6\u5219\u6267\u884c\u3002
    • \u3010Else\u3011\uff1a\u4e0d\u6ee1\u8db3 If \u6761\u4ef6\u5219\u6267\u884c\u3002

    \u5c06\u9700\u8981\u8fdb\u884c\u6d41\u7a0b\u63a7\u5236\u7684\u6b65\u9aa4\u62d6\u5165\u6d41\u7a0b\u63a7\u5236\u5668\u4e0b\u5373\u53ef\u5b9e\u73b0\u6b65\u9aa4\u5faa\u73af\u6216\u8005\u6761\u4ef6\u63a7\u5236\u3002

    • \u573a\u666f\u5bfc\u5165\uff1a\u70b9\u51fb\u3010\u573a\u666f\u5bfc\u5165\u3011\uff0c\u53ef\u4ee5\u9009\u62e9\u9879\u76ee\u4e0b\u7684\u591a\u4e2a\u573a\u666f/\u6307\u4ee4\u5bfc\u5165\u5230\u8be5\u573a\u666f\u505a\u4e3a\u4e00\u4e2a\u6b65\u9aa4\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#14","title":"1.4 \u9ad8\u7ea7\u8bbe\u7f6e","text":"
    • \u5143\u7d20\u5e93\uff1a\u5982\u679c\u5f53\u524d\u6b65\u9aa4\u4f7f\u7528\u4e86\u5143\u7d20\u5e93\u7684\u5143\u7d20\uff0c\u5728\u3010\u9ad8\u7ea7\u8bbe\u7f6e\u3011\u7684\u5143\u7d20\u5e93\u4e0b\u4f1a\u5c55\u793a\u5f53\u524d\u6b65\u9aa4\u6240\u9009\u7684\u5143\u7d20\u5bf9\u8c61\u3002
    • \u524d\u7f6e\u64cd\u4f5c\uff1a\u6709\u56db\u79cd\u7c7b\u578b\uff0c\u5305\u62ec\u3010\u524d\u7f6e\u811a\u672c\u3011\u3001\u3010\u7b49\u5f85\u65f6\u95f4\u3011\u3001\u3010\u6570\u636e\u63d0\u53d6\u3011\u548c\u3010\u622a\u56fe\u3011\u3002

    \uff081\uff09\u524d\u7f6e\u811a\u672c\uff1a\u76ee\u524d\u652f\u6301\u3010js\u811a\u672c\u3011\uff0c\u8bbe\u7f6e js \u811a\u672c\u540e\uff0c\u4f1a\u5148\u4e8e\u5f53\u524d\u6b65\u9aa4\u5728\u6d4f\u89c8\u5668\u4e2d\u6267\u884c\u8be5\u811a\u672c\u3002

    \u811a\u672c\u7c7b\u578b\u53ef\u9009\u62e9\u540c\u6b65\u6216\u5f02\u6b65\uff0c\u5982\u679c\u811a\u672c\u6267\u884c\u540e\u6709\u8fd4\u56de\uff0c\u53ef\u4ee5\u4ee5\u53d8\u91cf\u5f62\u5f0f\u5b58\u50a8\u8fd4\u56de\u503c\u3002

    \uff082\uff09\u7b49\u5f85\u65f6\u95f4\uff1a\u3010\u524d\u7f6e\u64cd\u4f5c\u3011\u53ef\u4ee5\u8bbe\u7f6e\u7b49\u5f85\u65f6\u95f4\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u5c06\u4f1a\u7b49\u5f85 3 \u79d2\u518d\u6267\u884c\u5f53\u524d\u6b65\u9aa4\u3002

    \uff083\uff09\u6570\u636e\u63d0\u53d6\uff1a\u3010\u524d\u7f6e\u64cd\u4f5c\u3011\u53ef\u4ee5\u4f7f\u7528\u6570\u636e\u63d0\u53d6\uff0c\u53ef\u4ee5\u63d0\u53d6\u7a97\u53e3\u4fe1\u606f\u548c\u5143\u7d20\u4fe1\u606f\uff0c\u5e76\u4ee5\u53d8\u91cf\u5f62\u5f0f\u8fdb\u884c\u5b58\u50a8\u3002

    \u7a97\u53e3\u4fe1\u606f\u5305\u62ec\u7a97\u53e3 Handle \u4fe1\u606f\u548c\u7f51\u9875\u6807\u9898\u3002

    \u5143\u7d20\u4fe1\u606f\u53ef\u4ee5\u63d0\u53d6\u666e\u901a\u5bf9\u8c61\u3001\u6587\u672c\u5bf9\u8c61\u3001\u5143\u7d20\u503c\u3001\u5143\u7d20\u5c5e\u6027\u548c\u5339\u914d xpath \u7684\u5143\u7d20\u6570\u91cf\u3002

    \u7cfb\u7edf\u4f1a\u6839\u636e\u6240\u9009\u7684\u5b9a\u4f4d\u65b9\u5f0f\u3001\u5b9a\u4f4d\u8868\u8fbe\u5f0f\u548c\u5143\u7d20\u5c5e\u6027\u63d0\u53d6\u6570\u636e\u4ee5\u53ca\u5b58\u50a8\u53d8\u91cf\u3002

    \uff084\uff09\u540e\u7f6e\u64cd\u4f5c\uff1a\u540e\u7f6e\u64cd\u4f5c\u4f1a\u5728\u5f53\u524d\u6b65\u9aa4\u6267\u884c\u7ed3\u675f\u540e\u518d\u6267\u884c\uff0c\u540e\u7f6e\u64cd\u4f5c\u4e0e\u524d\u7f6e\u64cd\u4f5c\u7684\u65b9\u5f0f\u57fa\u672c\u4e00\u81f4\uff0c\u53ea\u662f\u591a\u4e86\u65ad\u8a00\u7c7b\u578b\u3002

    \u76ee\u524d\u65ad\u8a00\u5bf9\u8c61\u652f\u6301\u65ad\u8a00\u503c\u3001\u5f39\u7a97\u6587\u672c\u3001\u5143\u7d20\u65ad\u8a00\u3001\u4e0b\u62c9\u6846\u548c\u7f51\u9875\u6807\u9898\u3002

    • \u9519\u8bef\u5904\u7406\uff1a\u76ee\u524d\u6709\u4e24\u79cd\u9519\u8bef\u5904\u7406\u65b9\u5f0f\uff1a
    • \u3010\u7ec8\u6b62\u6d41\u7a0b\u3011\uff1a\u5f53\u524d\u6b65\u9aa4\u5931\u8d25\u540e\uff0c\u505c\u6b62\u6d4b\u8bd5\uff0c\u540e\u7eed\u7684\u6b65\u9aa4\u4e0d\u4f1a\u518d\u6267\u884c\u3002
    • \u3010\u5ffd\u7565\u5f02\u5e38\u5e76\u7ee7\u7eed\u6267\u884c\u3011\uff1a\u5ffd\u7565\u8be5\u9519\u8bef\uff0c\u7ee7\u7eed\u5f80\u4e0b\u6267\u884c\u6d4b\u8bd5\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#15","title":"1.5 \u6b65\u9aa4\u5217\u8868","text":"
    • \u67e5\u770b\u8be6\u60c5\uff1a\u70b9\u51fb\u67d0\u4e2a\u6b65\u9aa4\uff0c\u53f3\u4fa7\u4f1a\u5c55\u793a\u8be5\u6b65\u9aa4\u7684\u8be6\u7ec6\u5185\u5bb9\u3002
    • \u57fa\u7840\u64cd\u4f5c\uff1a\u9f20\u6807\u60ac\u6d6e\u5728\u67d0\u4e2a\u6b65\u9aa4\u4e4b\u4e0a\uff0c\u4f1a\u5c55\u793a\u3010\u7f16\u8f91\u3011\u952e\uff0c\u70b9\u51fb\u540e\u53ef\u91cd\u547d\u540d\u8be5\u6b65\u9aa4\u3002

    \u9f20\u6807\u60ac\u6d6e\u5728\u67d0\u4e2a\u6b65\u9aa4\u4e4b\u4e0a\uff0c\u70b9\u51fb\u6b65\u9aa4\u53f3\u4fa7\u3010\u2026\u3011\uff0c\u53ef\u5bf9\u6b65\u9aa4\u8fdb\u884c\u590d\u5236\u3001\u7981\u7528\u3001\u5220\u9664\u6b65\u9aa4\u548c\u91cd\u547d\u540d\u3002

    • \u6279\u91cf\u64cd\u4f5c\uff1a\u70b9\u51fb\u5de6\u4fa7\u5c0f\u56fe\u8868\uff0c\u53ef\u4ee5\u5217\u8868\u8fdb\u884c\u6279\u91cf\u64cd\u4f5c\u3002

    \u5305\u62ec\u6279\u91cf\u542f\u7528\u3001\u6279\u91cf\u7981\u7528\u3001\u6279\u91cf\u5c55\u5f00\u3001\u6279\u91cf\u6298\u53e0\u548c\u6279\u91cf\u5220\u9664\u6b65\u9aa4\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#2","title":"2 \u5bfc\u5165\u5bfc\u51fa","text":""},{"location":"user_manual/ui_test/ui_automation/#21","title":"2.1 \u5bfc\u51fa\u573a\u666f","text":"

    \u52fe\u9009\u573a\u666f\uff0c\u70b9\u51fb\u5de6\u4fa7\u3010\u66f4\u591a\u64cd\u4f5c\u3011\uff0c\u9009\u62e9\u3010\u5bfc\u51fa\u3011\uff0c\u573a\u666f\u4f1a\u5bfc\u51fa\u4e3a side \u683c\u5f0f\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#22","title":"2.2 \u5bfc\u5165\u573a\u666f","text":"

    \u70b9\u51fb\u5de6\u4fa7\u3010\u66f4\u591a\u64cd\u4f5c\u3011\uff0c\u9009\u62e9\u3010\u5bfc\u5165\u3011\u3002

    \u5728\u5bfc\u5165\u9875\u9762\u9009\u62e9\u3010\u5bfc\u5165\u6a21\u5757\u3011\u548c\u3010\u5bfc\u5165\u6a21\u5f0f\u3011\uff0c\u5e76\u4e0a\u4f20 side \u683c\u5f0f\u7684\u6587\u4ef6\uff0c\u70b9\u51fb\u3010\u4fdd\u5b58\u3011\u5373\u53ef\u628a UI \u81ea\u52a8\u5316\u573a\u666f\u5bfc\u5165\u5230\u76f8\u5e94\u7684\u6a21\u5757\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#3","title":"3 \u57fa\u7840\u64cd\u4f5c","text":""},{"location":"user_manual/ui_test/ui_automation/#31","title":"3.1 \u573a\u666f\u5217\u8868","text":"

    \u5728\u573a\u666f\u5217\u8868\uff0c\u53ef\u4ee5\u9009\u62e9\u5de6\u4fa7\u7684\u7528\u4f8b\u76ee\u5f55\uff0c\u53f3\u8fb9\u4f1a\u6839\u636e\u6240\u9009\u76ee\u5f55\u5c55\u793a\u5bf9\u5e94\u7684\u573a\u666f\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#32","title":"3.2 \u6267\u884c\u573a\u666f","text":"

    \u70b9\u51fb\u53f3\u4fa7\u3010\u6267\u884c\u3011\u6309\u94ae\uff0c\u4f1a\u5728\u5f53\u524d\u9875\u9762\u6267\u884c\u8be5\u573a\u666f\u3002

    \u573a\u666f\u6267\u884c\u5b8c\u6210\u4f1a\uff0c\u4f1a\u5728\u5f53\u524d\u4e5f\u4f1a\u5c55\u793a\u6d4b\u8bd5\u62a5\u544a\u8be6\u60c5\uff0c\u4e5f\u53ef\u4ee5\u5230\u3010UI\u6d4b\u8bd5-\u6d4b\u8bd5\u62a5\u544a\u3011\u8def\u5f84\u4e0b\u67e5\u770b\u62a5\u544a\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#33","title":"3.3 \u7f16\u8f91\u573a\u666f","text":""},{"location":"user_manual/ui_test/ui_automation/#34","title":"3.4 \u590d\u5236\u573a\u666f","text":""},{"location":"user_manual/ui_test/ui_automation/#35","title":"3.5 \u5220\u9664\u573a\u666f","text":"

    \u70b9\u51fb\u3010\u5220\u9664\u3011\u6309\u94ae\uff0c\u4f1a\u5f39\u51fa\u63d0\u793a\u6846\uff0c\u786e\u8ba4\u5220\u9664\u540e\uff0c\u573a\u666f\u4f1a\u88ab\u5220\u9664\u5230\u56de\u6536\u7ad9\u3002

    \u56de\u6536\u7ad9\u5185\u7684\u573a\u666f\u53ef\u4ee5\u6062\u590d\u6216\u5f7b\u5e95\u5220\u9664\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#4","title":"4 \u6279\u91cf\u64cd\u4f5c","text":""},{"location":"user_manual/ui_test/ui_automation/#41","title":"4.1 \u6279\u91cf\u7f16\u8f91","text":"

    \u52fe\u9009\u591a\u4e2a\u573a\u666f\uff0c\u70b9\u51fb\u5217\u8868\u5de6\u4fa7\u7684\u4e09\u4e2a\u70b9\uff0c\u70b9\u51fb\u3010\u6279\u91cf\u7f16\u8f91\u3011\u3002

    \u5f39\u51fa\u6279\u91cf\u7f16\u8f91\u9875\u9762\uff0c\u9009\u62e9\u9700\u8981\u4fee\u6539\u7684\u5c5e\u6027\u548c\u5c5e\u6027\u503c\uff0c\u70b9\u51fb\u3010\u786e\u5b9a\u3011\u5373\u53ef\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#42","title":"4.2 \u6279\u91cf\u79fb\u52a8","text":"

    \u52fe\u9009\u591a\u4e2a\u573a\u666f\uff0c\u70b9\u51fb\u3010\u6279\u91cf\u79fb\u52a8\u3011\uff0c\u5f39\u51fa\u6279\u91cf\u79fb\u52a8\u7f16\u8f91\u9875\u9762\u3002

    \u9009\u62e9\u7528\u4f8b\u76ee\u5f55\u70b9\u51fb\u3010\u786e\u5b9a\u3011\uff0c\u52fe\u9009\u7684\u573a\u666f\u4f1a\u79fb\u52a8\u5230\u8be5\u76ee\u5f55\u4e0b\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#43","title":"4.3 \u6279\u91cf\u590d\u5236","text":"

    \u52fe\u9009\u591a\u4e2a\u573a\u666f\uff0c\u70b9\u51fb\u3010\u6279\u91cf\u590d\u5236\u3011\uff0c\u4f1a\u5f39\u51fa\u6279\u91cf\u590d\u5236\u7f16\u8f91\u9875\u9762\u3002

    \u9009\u62e9\u7528\u4f8b\u76ee\u5f55\u5e76\u70b9\u51fb\u3010\u786e\u5b9a\u3011\uff0c\u52fe\u9009\u7684\u7528\u4f8b\u4f1a\u590d\u5236\u5230\u8be5\u76ee\u5f55\u4e0b\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#44","title":"4.4 \u6279\u91cf\u5220\u9664","text":"

    \u52fe\u9009\u591a\u4e2a\u573a\u666f\uff0c\u70b9\u51fb\u3010\u6279\u91cf\u5220\u9664\u3011\uff0c\u5f39\u51fa\u786e\u8ba4\u9875\u9762\u3002

    \u70b9\u51fb\u3010\u786e\u5b9a\u3011\uff0c\u52fe\u9009\u7684\u5220\u9664\u4f1a\u88ab\u5220\u9664\u5230\u56de\u6536\u7ad9\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#5","title":"5 \u521b\u5efa\u6307\u4ee4","text":""},{"location":"user_manual/ui_test/ui_automation/#51","title":"5.1 \u57fa\u672c\u4fe1\u606f","text":"

    \u70b9\u51fb\u3010+\u3011\u6309\u94ae\uff0c\u9009\u62e9\u3010\u521b\u5efa\u6307\u4ee4\u3011\uff0c\u8fdb\u5165\u6307\u4ee4\u521b\u5efa\u9875\u9762\u3002

    \u5728\u3010\u57fa\u7840\u4fe1\u606f\u3011\u680f\uff0c\u6dfb\u52a0\u6a21\u5757\u3001\u72b6\u6001\u3001\u540d\u79f0\u7b49\u4fe1\u606f\u540e\u5373\u53ef\u4fdd\u5b58\u573a\u666f\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#52","title":"5.2 \u6307\u4ee4\u6b65\u9aa4","text":"

    \u5728\u53f3\u4e0b\u89d2\u9009\u62e9\u6b65\u9aa4\u8fdb\u884c\u6dfb\u52a0\uff0c\u53ef\u5728\u3010\u6307\u4ee4\u6b65\u9aa4\u3011\u9875\u9762\u770b\u5230\u5404\u4e2a\u6b65\u9aa4\uff0c\u9ed8\u8ba4\u6709\u524d\u7f6e\u6b65\u9aa4\u3001\u81ea\u5b9a\u4e49\u6b65\u9aa4\u3001\u540e\u7f6e\u6b65\u9aa4\u3002

    \u6dfb\u52a0 UI \u81ea\u52a8\u5316\u63a7\u4ef6\u5230\u76f8\u5e94\u6b65\u9aa4\u4e0b\uff0c\u5176\u4e2d\u81ea\u5b9a\u4e49\u6b65\u9aa4\u5904\u652f\u6301\u53c2\u6570\u5316\u914d\u7f6e\u3002

    \u53ef\u5728\u3010\u573a\u666f\u6b65\u9aa4\u3011\u6216\u3010\u6307\u4ee4\u6b65\u9aa4\u3011\u7684\u6279\u91cf\u9009\u62e9\u4e2d\uff0c\u70b9\u51fb\u521b\u5efa\u81ea\u5b9a\u4e49\u6307\u4ee4\u9009\u9879\u3002

    "},{"location":"user_manual/ui_test/ui_automation/#53","title":"5.3 \u6307\u4ee4\u5217\u8868","text":"

    \u5728\u3010\u81ea\u52a8\u5316\u5217\u8868\u3011\u9875\u9762\uff0c\u5207\u6362\u5230\u3010\u6307\u4ee4\u3011\u9875\u9762\uff0c\u53ef\u770b\u5230\u6240\u6709\u7684\u6307\u4ee4\u5217\u8868\u3002

    \u53ef\u5bf9\u5217\u8868\u4e2d\u7684\u6307\u4ee4\u8fdb\u884c\u3010\u7f16\u8f91\u3011\u3001\u3010\u590d\u5236\u3011\u3001\u3010\u5220\u9664\u3011\u3001\u3010\u67e5\u770b\u5f15\u7528\u3011\u7b49\u64cd\u4f5c\u3002

    "},{"location":"user_manual/ui_test/ui_element_store/","title":"\u5143\u7d20\u5e93","text":""},{"location":"user_manual/ui_test/ui_element_store/#1","title":"1 \u521b\u5efa\u5143\u7d20","text":"

    \u5207\u6362\u5230\u3010UI\u6d4b\u8bd5\u3011\u6a21\u5757\u4e0b\u7684\u3010\u5143\u7d20\u5e93\u3011\u9875\u9762\uff0c\u70b9\u51fb\u3010\u521b\u5efa\u5143\u7d20\u3011\uff0c\u8f93\u5165\u5143\u7d20\u5b57\u6bb5\u540d\uff0c\u9009\u62e9\u6240\u5c5e\u6a21\u5757\u548c\u5b9a\u4f4d\u7c7b\u578b\uff0c\u7136\u540e\u8f93\u5165\u5143\u7d20\u5b9a\u4f4d\u7684\u8868\u8fbe\u5f0f\u548c\u5907\u6ce8\u3002

    "},{"location":"user_manual/ui_test/ui_element_store/#2","title":"2 \u5143\u7d20\u5b9a\u4f4d","text":"

    \u5143\u7d20\u5b9a\u4f4d\u652f\u6301\u591a\u79cd\u65b9\u5f0f\uff0c\u5305\u62ec id\u3001name\u3001class\u3001tag\u3001link\u3001plink\u3001css\u3001xpath\u3001lable\u3001value\u3001index\uff0c\u8fd9\u91cc\u4ee5 xpath \u4e3a\u4f8b\u3002\u8f93\u5165\u5fc5\u586b\u4fe1\u606f\u540e\uff0c\u70b9\u51fb\u786e\u8ba4\u5373\u53ef\u4fdd\u5b58\u5143\u7d20\u3002

    \u5728\u9875\u9762\u4e0a\u70b9\u51fb\u4f60\u8981\u5b9a\u4f4d\u7684\u5143\u7d20\uff0c\u7136\u540e\u53f3\u952e\u9009\u62e9\u3010\u68c0\u67e5\u3011\u3002

    \u53f3\u952e\u9009\u62e9 Copy-Copy XPath \u5373\u53ef\u83b7\u5f97\u8be5\u5143\u7d20\u7684 xpath \u8def\u5f84\u3002

    "},{"location":"user_manual/ui_test/ui_element_store/#3","title":"3 \u7f16\u8f91\u5143\u7d20","text":"

    \u5728\u5143\u7d20\u5e93\u5217\u8868\uff0c\u70b9\u51fb\u3010\u7f16\u8f91\u3011\u952e\uff0c\u53ef\u4ee5\u4fee\u6539\u5143\u7d20\u5c5e\u6027\uff0c\u4fee\u6539\u4e4b\u540e\u70b9\u51fb\u786e\u8ba4\u5373\u53ef\u4fdd\u5b58\u3002

    "},{"location":"user_manual/ui_test/ui_element_store/#4","title":"4 \u590d\u5236\u5143\u7d20","text":""},{"location":"user_manual/ui_test/ui_element_store/#5","title":"5 \u5220\u9664\u5143\u7d20","text":""},{"location":"user_manual/ui_test/ui_test_report/","title":"\u6d4b\u8bd5\u62a5\u544a","text":""},{"location":"user_manual/ui_test/ui_test_report/#1","title":"1 \u62a5\u544a\u5217\u8868","text":"

    \u6d4b\u8bd5\u62a5\u544a\u5217\u8868\u8868\u5934\u5c55\u793a\u4e86\u62a5\u544a\u7684\u540d\u79f0\u3001\u521b\u5efa\u4eba\u3001\u521b\u5efa\u65f6\u95f4\u3001\u7ed3\u675f\u65f6\u95f4\u3001\u89e6\u53d1\u65b9\u5f0f\u3001\u72b6\u6001\u548c\u64cd\u4f5c\u3002\u6d4b\u8bd5\u62a5\u544a\u652f\u6301\u6309\u540d\u79f0\u641c\u7d22\u548c\u9ad8\u7ea7\u641c\u7d22\u3002

    \u9ad8\u7ea7\u641c\u7d22\u652f\u6301\u4ee5\u540d\u79f0\u3001\u72b6\u6001\u3001\u521b\u5efa\u4eba\u7b49\u7ef4\u5ea6\u8fdb\u884c\u7ec4\u5408\u67e5\u8be2\u3002

    "},{"location":"user_manual/ui_test/ui_test_report/#2","title":"2 \u91cd\u547d\u540d\u62a5\u544a","text":"

    \u5728\u6d4b\u8bd5\u62a5\u544a\u5217\u8868\u7684\u540d\u79f0\u680f\uff0c\u53ef\u4ee5\u91cd\u547d\u540d\u62a5\u544a\u540d\u79f0\u3002

    "},{"location":"user_manual/ui_test/ui_test_report/#3","title":"3 \u62a5\u544a\u8be6\u60c5","text":"

    \u70b9\u51fb\u3010\u62a5\u544a\u8be6\u60c5\u3011\uff0c\u53ef\u8fdb\u5165\u62a5\u544a\u8be6\u60c5\u9875\u9762\u3002

    \u8be6\u60c5\u9875\u9762\u9762\u677f\u5c55\u793a\u4e86\u672c\u6b21\u6267\u884c\u573a\u666f\u7684\u8017\u65f6\u3001\u6210\u529f\u548c\u5931\u8d25\u4ee5\u53ca\u672a\u6267\u884c\u7684\u6b65\u9aa4\u6570\uff0c\u8fd8\u6709\u65ad\u8a00\u6210\u529f\u548c\u5931\u8d25\u7684\u6570\u91cf\u3002

    \u5728\u603b\u89c8\u9762\u677f\u4e0b\u9762\uff0c\u53ef\u4ee5\u67e5\u770b\u573a\u666f\u5168\u90e8\u6b65\u9aa4\u548c\u5931\u8d25\u6b65\u9aa4\uff0c\u4ee5\u53ca\u63a7\u5236\u53f0\u8be6\u60c5\u3002

    \u5c55\u5f00\u6b65\u9aa4\u8be6\u60c5\u53ef\u4ee5\u67e5\u770b\u5f53\u524d\u6b65\u9aa4\u7684\u6267\u884c\u7ed3\u679c\u65e5\u5fd7\u3001\u65ad\u8a00\u7ed3\u679c\u548c\u63d0\u53d6\u7ed3\u679c\u3002

    \u9f20\u6807\u60ac\u6d6e\u5728\u53f3\u4fa7\u7684\u3010\u622a\u56fe\u3011\u4e0a\uff0c\u4f1a\u5c55\u793a\u8be5\u6b65\u9aa4\u6267\u884c\u65f6\u7684 UI \u622a\u56fe\u9884\u89c8\u3002

    \u70b9\u51fb\u8be5\u9884\u89c8\u56fe\uff0c\u4f1a\u4ee5\u7f51\u9875\u5927\u56fe\u5f62\u5f0f\u5c55\u793a UI \u622a\u56fe\u3002

    "},{"location":"user_manual/ui_test/ui_test_report/#4","title":"4 \u5220\u9664\u62a5\u544a","text":"

    \u5728\u6d4b\u8bd5\u62a5\u544a\u5217\u8868\u9875\u9762\uff0c\u70b9\u51fb\u3010\u5220\u9664\u3011\u952e\uff0c\u4f1a\u5f39\u51fa\u786e\u8ba4\u5220\u9664\u7684\u63d0\u793a\u3002

    "}]} \ No newline at end of file diff --git a/v2.x/user_manual/system_management/system/index.html b/v2.x/user_manual/system_management/system/index.html index e19b4921a..8554cfac3 100644 --- a/v2.x/user_manual/system_management/system/index.html +++ b/v2.x/user_manual/system_management/system/index.html @@ -3866,7 +3866,7 @@

    5.7 扫码登录 (X-Pack)扫码登录

    -

    点击【企业微信】添加按钮,填写企业ID、应用ID、应用秘钥后,测试连接通过后即可。

    +

    点击【企业微信】添加按钮,填写企业ID、应用ID、应用密钥,测试连接通过后,开启状态,点击【确定】即可。

    扫码登录

    @@ -3876,7 +3876,7 @@

    5.7 扫码登录 (X-Pack)扫码登录

    钉钉

    -

    打开 钉钉开发平台,用管理员权限用户登录。点击【应用开发-钉钉应用-创建应用】

    +

    打开 钉钉开发平台,用管理员权限用户登录。点击【应用开发-钉钉应用-创建应用】。

    扫码登录

    @@ -3896,13 +3896,58 @@

    5.7 扫码登录 (X-Pack)扫码登录

    -

    点击【钉钉】添加按钮,填写应用key、应用ID、应用秘钥后,测试连接通过后即可。

    +

    点击【钉钉】添加按钮,填写应用key、应用ID、应用密钥,测试连接通过后,开启状态,点击【确定】即可。

    扫码登录

    登录页面,点击钉钉扫码登录即可。

    扫码登录

    +
    +

    飞书

    +

    打开 飞书开放平台,用管理员权限用户登录。点击【创建企业自建应用】。

    +
    +

    扫码登录

    +
    +

    输入应用名称和应用描述,点击【创建】即可。

    +
    +

    扫码登录

    +
    +

    点击【添加应用能力】,添加网页应用。

    +
    +

    扫码登录

    +
    +

    在【网页应用】页面,填写"桌面端主页"和"移动端主页"内容,均为 MeterSphere 访问地址。

    +
    +

    扫码登录

    +
    +

    点击【安全设置】,添加重定向 URL 和 H5 可信域名,均填写填写 MeterSphere 访问地址。

    +
    +

    扫码登录

    +
    +

    如下图,批量开通【获取用户 user ID】、【获取与发送单聊、群组消息】、【获取用户性别】、【获取单位信息】、【获取通讯录部门组织架构信息】、【获取用户组信息】、【获取用户组织架构信息】、【获取角色权限】、【获取职务列表】、【获取部门基础信息】、【通过手机号或邮箱获取用户 ID】、【获取用户基本信息】、【获取工作城市列表】、【获取用户邮箱信息】、【获取用户手机号】、【获取通讯录基本信息】、【获取成员所在部门路径】、【获取用户受雇信息】等权限。

    +
    +

    扫码登录

    +
    +

    点击【版本管理与发布-创建版本】,填写应用版本号和更新说明等信息,点击【保存】。

    +
    +

    扫码登录

    +
    +

    点击【确认发布】即可将该应用提交到线上并自动生效。

    +
    +

    扫码登录

    +
    +

    点击【凭证与基础信息】,获取 APP ID 和 APP Secret 等凭证信息。

    +
    +

    扫码登录

    +
    +

    点击【飞书】添加按钮,填写应用ID、应用密钥,测试连接通过后,开启状态,点击【确定】即可。

    +
    +

    扫码登录

    +
    +

    登录页面,点击飞书扫码登录即可。

    +
    +

    扫码登录

    6 配额管理 (X-Pack)

    进入【配额管理】页面,可【编辑】上方的工作空间默认配额,编辑完成后,在配额列表中使用默认配置的,将同步更新编辑的数据。

    diff --git a/versions.json b/versions.json index 746e3dd36..874669d6e 100644 --- a/versions.json +++ b/versions.json @@ -1 +1 @@ -[{"version": "v3.x", "title": "v3.x", "aliases": []}, {"version": "v2.x", "title": "v2.x", "aliases": ["LATEST", "latest"]}, {"version": "v1.20.x-lts", "title": "v1.20.x-lts", "aliases": ["LTS"]}] \ No newline at end of file +[{"version": "v3.x", "title": "v3.x", "aliases": []}, {"version": "v2.x", "title": "v2.x", "aliases": ["latest", "LATEST"]}, {"version": "v1.20.x-lts", "title": "v1.20.x-lts", "aliases": ["LTS"]}] \ No newline at end of file

    zS)tGaGVox1`*CqAd|F35o4ok=`{5F%emk7l!aDLXN`ouNsSNbYqOw_44?g zq@mR6wC4JJv%#UE{@K|az0R)BAdj28np-f9&@%i{^~qRkehNPFXekrP2zGdZ&?Pd- z{oTTWkz2D(o^8}WSba4U;bK;vg25%PI&RnUK-tS4z7my}b; zl73;FO!A}4lW%hTs1aW04A$$2uhu~W=a<7!6FthO2oDzyClM-Pc`*M6a}~Ltfy;IV z!SI*F8@=TAbs<2BzcXLu`qa$SR%NJ2v|}QXG<)wXN#K%~LmbKNw~|zE`{{UHr@4)= zrdh0npNI#%0jbE1L2(&ajbJNXPipIN6ETE>CuboD{UWg3(>tUmG$GGLstr#fn=B#w zOfJVC&z!G3$Id?SdScPaGU^}zSB=m!+&HTiuBtYsdz*8^4@Q^6hFSW%NeGQ~Q!9Fx zJFTX{nxe4=O6HLYQbn&lJNPnpzbmRsExq-S0swu%;AgXYuHvm%(s@IRZmN50X7rU2 zk{<_5GXx8g^Iw4K#6l~*``e_|_?thbvc@6J+|l(YSIK=h&HAvsk^X>aRk8{pHzjJ=){YMX(alNngb-iA%>-l_M%pAGbePT5(U|2>I zye{i_9xZOO(b7s_W*i>S!Fs`!rRYdrrdT!|hKerSDj6IVLm6pd^iF@8)e!ltwv57dwg(P$)Id|unqsB>q{_7Y$ z2yW6f_BDzfiP=p|b0&@<^b^+scT!e@Vt4=s#0wl*r?VUb*Jd9OmNN?_7`L;sxsS}a z*33o)_{s~%OLED(d<)%~QXwu;K{n#`16S=ovvVXY+VjY3s+26)A7Lw#| zlwCKu2_ShE>Gp(=^WWUr%|nVci-;sBtiOdm>=e5(yG9O%nNV}oyJ=EuwXi=mJ~ElA zaJ`EeQPEo$V?7r5XyVHghG#>;lhY%nBxy^aVyuu234YBe4^e3hwiiu>Q!upIQ6buC z#(n7{-lA?arRY&4Mcv+CIO)2#Gjn9`SHQH5IHc0K6aT&BXrrT)qqmq?0oNigo#UJ8j+7s&pU(u!q9JM8U z3j7|ivx+Jf=XiGfm8bN^0$r!q`2KlSRl2micy&xtQj!N8BkkfKymw`;Tt(!vF7`G$dL}($3I_6oJWR&j55{rk9wq#I@Ala3Yi#nDc zt98ZuAL2<4Dww%)K*=5)KcK^w2);^~yvr3R^lC|?z2tsw`YkKZ5A}-YrV}LE>*H+r z-iRw)n*J`fvO$^eryqYyMzM}PC?sdmq81Q8=>=f_iG9o7lYXN}4$=WryS=Y)>28F` zxFI^9<44WTFb+>qGZ~D!w>DP_Tc7)v(u}uq(i_vvzYjlPmm+RAwyxEUzzZk4W*Yew zyKhcUXWq9aveI>rXRzno4FD)_H8K~`!nXj@YTS6C=9_CbPH-~IwN5(T80;tv?U5hT zx4FRS`>4BfVakwD;~sg)!QBj2`7s{AzjNFLc6Kk&ME!)n$b!al$0xRp9SsL0-x%i? zHpX`maCejZE#+S>qr~!s>f^e?>Fy3q^tU&e-}e?jo%Bi+H5tt-mNmcB4m3I|aWQR; zv-T#(wc_LFe^Rus5r@ZmQM1FfzfqzA(l-^@ZJ{vqw!)bHabS66yee5VGl>AGl!s(* z1oLxX*8lS$<^f`Ur-PH>VI^OWk8YoFG$bcOyxa6uTdqn6nCYv4Bl-bg9^pTPK0$II zfnTTsHra3I)-58u5IJ}Jfa`nqVDkO__+l3v?~E1I^IrmZyBU2%``v{BqBGW&4F3pf zJe21B${e5z0~s_OunKXhT{Yf-lKKLv)Hn2?|89Uz{8LQOSe|lluj^}=b~n!J_5DkR z7+}ywv&MV2&%7W1vYmEY>x5aOAkOo(be#}1ixTLr9=k^{sem$pHt2(kIIs7l16tMCmCkRo_h1n6NKTK_Ur5-gs6U0uRc2adeUn*Oq-PfPf` zpKU&f3F!VivNN*lzI65*f@vxvd`j>g}pu1^YMVyPx(_B;^6Zu8aBxCHV3>sf&~sa_BrQZ6yf{=M#jbr2Ot0Y zgrk%K0|iZY!b~zZT0CJvzK5C<);|~H;WxjQ{OKKJ(uIfL{>3&Ne*2`L1KIDZ@!;1% zt+)Qr4zmB9iZ0PZj9u>R7%npMPD}Vijg7gtf?Y<9z;`Tn7RC9;(KAzWldoMY`1p}| zZm!*%)|dEAb!MjCE`9kBzw>F+!cSB2%u1A_3@Xs~(fXtHFB_MLoCJ>|O9d7(iu?Iz zUyY{Tr%GuDoPeidFn@R2O9wrL&B6YOU#U~L$DF?mlW zY5dYdG~1wF#PR$osn;(I=N)`we2d_Awk)*g5@P}Pg)fN+%Ko|QaEku0E#_6UMT{fQ zovk$#Qv}0RTTUWF&)u`yvh+hzQWG1dPdg1FsbnDa7}RR21Lot&Zmkn!*X&m7KChoS zj4BR0WA5JHWl4<&nm!M-)si-hLua2emjbJd$BEr>&u)PbpHiiix$DFP9FXS?;@4iZ zL`0d$@hc^|DQvG%Zfz}<`6J?mP^zQ*qliJTBWd$!=DB$ah}b>z&bd#_>cDhw$9uh- zuVenF`^g5we=L?3N1vJptJZuY^P`D_#)`DUS?wp;qzKQ-H0 zx9Wv-yS%9aI$|&;HTCfVw|0T@1cu+zS&{2P5iIp(4pOJ%X1TV=F(`pSZ{+#n)T5dJ z!V?-gh3CzWjl6Z@g|O#`>6FbKZxtoF)hpJ3P19`+()R<@duhAZ9YMC#Ye(Sifv@x? zBeO8N+`E^EW8s)c!#FP~#TV1Zv1LIUbW>lVDax3<9oG6a7Q|SJI(LR(mV5o)-YI9X zl9kydY;-)p5hO$Rf7iE(Lqf7J***87dJzErU(i|RCtr3^f+HGz7f%lLn%bLZa9!^fP0>2TCT!aHT&=zF40%RZ-B-J{x$w*qFmBLJd7@e< z1Ho4ii@~xn4zF89vN8-6^z^#m zmi#gf#+d18*p>r9@{LPK3#6>#Dv!Tu#&Z&NrGSggas)|WYHi6Iq~F{5ana*DX(E)N zUPgjk(I_r;WzbSYJ92rl<+H<4tlbE_Mxb?9sjIV?WcBSmgiA@uC_gRyRpV~Pe}19oBJ5^ZTHmjlPsMrZa4M`TMIBX?bHN)SQ)4cLq|?GBq-r*TS6EYMMv$&3$m(IcDoN z?cb)p6U61OI`#UP@GaC5(%2q)9#wNPwb9NHL&~31N>M@^yA|8`7mmxo_6&I!^tBXU z5%PL!IEe{Kac@hi8-$9}On&d59i+BCE9D8awM>{fu=EEl z05`Oc6YC}XuT?6c``eRCyP6>=t2|-yAv7Ze(~wl$(MY=saZZxtSv}6v;;e-a3w^+_ z0EV%^*&%Z-!U9*68qdU=Htwl~jqARycGl45YUC|;U$4CZ!gm{a*PHV3ly5TOdal+Y z7&3;qeNr6^l^pAMas=g`tVJw4;wu=6(sr^;$-|LW3-h&e(h_sWeXyq9m$*HT6tgf- z@4;p~(md`2uJblwSDp-=M!4;4hsqmy1_o>_vdH*$MctVaLlMyEq_rYcDpxCvK?D{G zs{w4Lqy;B+_i`T9in#Yq;?8z;uYDvOB=SkI6);HvCT1=&8WLT#moF#I62+MYPFmtx zZuy`(q~P3QWBe4!hB*tnq*k53+a*5^)NJ!zrt%CH=q2_JQA>+*WB#K zEC21jCdJo3{A17IR=VR`_Trd<#6`REjPdwO%iiyKYAn<|Z!!5an8Ye|+l?n$zYt*?UDhF^pRw{*pH8!7Vf7oS8eLct%Uz8$yA$`s|7*tO26#+|ncf+zbsFewQO9A zQ~^*2r*eG)NhC^5c8QJcf?}c%2>(%o&TbI5!*=4xmvuW_09 ztgBX(?4h0P0fxz+ydG*`p|ZAQYjRnH+-9{vgp<)15O~!0+^Ow$fDoX;DkAclv7C(7 zqgO9FMhZ+#wSJ6?+J;@!_8oD$=GaY3NFAbh$sd=_9&UWS~v9zam`DNbpNSoZUpZ$;zcP;5Qy980uQ%In&=W^n9$2X2g z5=_>VRLE&#kM&j;E*~1QCS@?G=wEFtvh{O6yxx*ez4gQK=v=SD(^+Wt)9={IM|ON% zvv@+dFO?-0cX)ONq@GPHb?z)AnN{+Pr#L9xj-(VmZQh5>ky|FA90)Eiu7|YTvNBdj zbG|g?Cg*Ciqo$%@u|vHFFpafXzBY%>5hNq`OF@S3%Gn%@>9Kd*VCaO@U|33YEPqhg5g8rfC*|~vl5iZ#(5|l>kT{Up8$grd4YEB=MTI~z z?~;zdj9c zFQ{3M7TZ`4Il=u0xLecMysmbwo+$q$!C1SK*|)W|YjJk--uqqxMwqi4R-%#af1AB9KVZQ@UV3-m8%*6RH{1XX)`sy-L~z zEb1(p5_@O`kyBG&hCU!EZeIMWLjnlB=4wGD#JLj)@Z+UjQ zTE1THLX8%d?>N-aC=Z)nHb396IgIL^s@BPE9z z2(W_wfQh3RVE*M z9G+%G**$=B2;54SZ)BFnioTiLEUv9XnGsBn@f}s50fjHSW()`VPLsDy|ZgYL-oM%P8fo0 zb&3vW>D(Q)Yq7m%IK-o%BP4L;U2{h5QWJ!xjDt?s6#ex}PUMq$I}$CR=j}h`va?3^ z!&X&%`o@qyLh_P7ANA40-59GVe(NNaLuqOO^9JIT(cQQiI{|@Ji#D?x)|3UV+|~tm zz`2Q+FZAAu_uExoGFY^>%Ac2*yl_0IQ#or4RZ)5~YNS3$LP1|M`L8~O3}1<(vc#Gu z)^?=$qkY-> zrEuE^hN*KRMYEh(|K9DREuiO=+jM@-8b@8g0=O$W+1(P1mz3zEOd*T%p9WSE2sIl? z(-S93;i+stlXyYvhv^!+08k<$gQu^x%DCQ3LqI=*ot{03#;A2JVup zXAO^AO$6hunc=SJek4cZSWyQQ(8`h|k=(neDHQl|UCT&2qK&534G`;fP_+mn^}4>3 zQlDGZVGMR%4sRa( zE)YVrXFb_tuAFM*sEyWIx(sQpeLzWl&cx~&V+eTuJ-57PoQLU{=NRM>`ZYOpjHoij zDSjNvHnh&Pb4F3%@j278?kh)BA*b?2Y@DBkCg`B|W#KoPAK!D{hs8{SI%y)nPbEdN|hMiv4`qHwvUToT3 zHS6vS8^95N)oYE1LT~Nw5eN}lj=Gj$jIkbAnZp?VXrTYZQq<5)`S)9rXLr2c37Kjo zOyi(sQI6Gw29d;RlLH|#C3dfn7PQ6*DoU!2Se0I`xixVG8*F7o7qe=`W0L|*#iA{nr3L0T<3lGvn97^3X=&ttxsVDr#jnI7D}q!rLj-dLeAZfLHNcQ zg$P;a9q(h07+48ruUYl;_WUEq2@0|FjJ25I(62Ib7*h_Bw4^dmA>y7!OfixceWeDr zRZg#K(-qm9itG8nLbLGk!@AyhI^g4^!59cuh%n!~HuCOBJKKIGuMM``tbirYGpyRk+f5Uv005Z#0P#)+mJ9dQ%qVbl(zHNN}nuyGKoxBL?UN?}cRc zofR0-bB8zXE^dMqkch;jKAXsM4<7&lsaYV$E&0qn;w2ZRZ43fI; zh4o*Yra)+!aDL6NzM5FdL3T1}@;n+o7$mEl#c^s|IZKXjN#MmVCs4L52l2q7899`l zAzfjdC4#beloju*^>$Az{S+f0mhmx(a^;OEEj6x6&~-yqO&f43S*%lFdB(EfiO#JE zBOk-qQd+N>76S3oGQ#J!&H0_dXOyTJqScm5gV0gyq3(DN`q_YxF(2hDVLtb$`7RqY zCDjxEPGDZnF6pe_=u3bQ%Y;|HE83H^V>uuD#A2Qb&r*lm>$2-Vs>X%tR#|pZPLzfE zNe)daQHv}_q=R#m&7Hy@vMq#&T6-IOh$}qy|*F@!~e!B*)HHMFmGop}Px&y{}>R+NW4j z5yi^>ykXO8?bUZo0O&WqM)uCw_4(5unyoxSB(5I4h8WYo_C4}Lujt+ITUJ<=1 zxAF#V=GiEyX=7nWX-$Mo7zh13o!qWvLbjaY#5Xu8(GuJ6#juWpWja6$VYL zxWK@Xdlv2-xN6@*SsaG?Py1L{+-JuOSNFE7Bbqf{A=^ifD zibtgnow+^yzB{NjT)}Srl||(K#3Zv)%k#-Pkh{B&RmwXaIGpR;(n-?@TKML{V`9vo~;Y& zPkUwicYP!fNf?rF`S6g90HCo2$E?TN&apft71AH6{7P!wCA}ObH7kX!=#Moia!x?z z?d=Bo=f7>76(8s)vCHra5+LWgWhe|Q5~>4Hkh85W*}$ffJ~)V9%EkfmAXDSx{%;+W z529D~*j-CXDscH}>%!Y*|xmr4}B)CYM$qx z3lyVzpzVFzv8FkbJjg(JT5uUv@KEb5?Aid5z1VQzcJ`C31%5HU`#E*XOZS3R%uLJL zPQCA-XLNkeN}NLl1M!I@`O1UIHxIR#qElb+@`=nulHX}gyd*Y8wY;8#?6VbSzkeL_ zOvtTRBSb{=1OW14+>W&%A8?yLVh3W~lsW6J#JiCP*Fs)1rHis_QQX~#Ykw<)TAJH9 z+i?c6G3Em{R*{IWbjdNPX`v&rwyhDN^yit+qr~O`}toXXMG!0P@Fdb!y8r# zv8dTMXz!#w*3*zSL^qE+bALm@>U^m61gKv^(_qCj7FyxN>l2{MjJ`6ZiQLLQPhR%MYx*II)GJqAVM)8o9Sfr@Dee14&_%%hizbhs@8z;Z<_Cl>b_Ig>rd>Wu6)5G zXd`E+HSNS=63=QX)1TPjIDYxEpM#=Zw>32&sNyiL7w122O#gJZP>CWmySZbxi=9z7 zL2sPD(qCW{w&p)Gjt+&qxR9(FWuRI=30(282H%h-s2A15eAsZOccNK~?eCS*7*8>| zHZ-0`dcWT=B2}jD*bq0^^K8c+J7@_AejcMKBB(`O;#Br^F`M(y`4$zt=Q&~3{S)W` z+>LN>7WB0lkZDzi`Ue`*s6kmoOy?io#~*{8yzy$xaKgn=cr)^hhH9-D zo{6sW@e@6H$9Knd9Y-F(xb@U5%0BBCFzZ=S*N&_KaY?-BWxw5Zf3*t~(6PZG3pj!v z!DqOGdp1s}u(~+;xK3S3^hz;K@p^DeC~2OEQV82`sI#J5ez%lnW$?5vBYv{(^TyjW zhyo>!dm0)1WQAt*s8h{;xsvW$aUi#?Ranc@LNOyhgtIq`5f>flu>`rUssdBZNw3@% z-<`9fiucTc4c}$OSBTU8oIpi}=Cv>}dyYSO^-2QwZ{9HnvWi8G2@R=l85p(orrOkn zHz6F0xiKqG0DPq&am~-)>6L*VY{ONMixEKHvbu$|h@7B$vU}k9w0>iN2qi)t?XWiN z{4wvK+F$wv>DjkWzuX&fZeo;C=h3_|y#o7AL{b(OPMClIaVP5jcPgYvqrd`XbF&?l zV&Vl{;*&+;ZMO%*l{F{;aw|3_iCyqt3*c)Dk9SCgIL1R`2;982+|(P1aDr1G7oY=B zeIB8+Gd-~3-sKs7=M#|Q?=29nqVU-+FV}W9P)It`#Lh49*?=LfqZpxlPU06V&3xXW zH30(ONB6z6_U{T@s{ag4qH0X;00!z4)7BvC(A)dqrs<$JvcR1jL~W2hyy#w~F{!RG zP+`peyZ}vms3S=Kxrpf;E_3m{e1p4AZnwv9!cmGu;V|0-UqIF6(dHdw5q{21JMr_z z_4s-v$tXAQ8|Q1U7_S;wQBgU>CbN`361B!EUeMQ^GzCA5Vm0OWzU(o$K6*V=_W`2U z`dADbEtRUW)#6AthFyVJky+BKKwZcXGrnVRA_o~k)vb$%MLN_ov=^RfPUE;5R@?(S zW7x0cJ-Uo+*D`*y+OY|+ZbnW&{5%#Ox| zyvG7SqCGgVny5fUl>;ut{b6tBNQ}Ymg$RT8+T#+)w^aclIDd%lRp7RR7`GUmu>ljvN?|kDzVq{ZAlR`ytQ#oJm%uaJc1A*+{l0LlXa9uG2}(BAyRVD#JTsPOZSVI zwCn|MkArdHPje8RUqUJx=OrakD%8XpW?k!~{oZZo@0b|JKJL@6JNj1i9*C9k=|}Ny zdA-Q)vg6>j5EX@hE8Vvu@sD4ur#Yy%U5z9UbpW$PK29CX&+LJ~EPVqj+H3O0NGQDx z1y~VEw$8*Gk-Ft0$H>2p3U{ntGM)`U+$eUuKM1%#=XUH2L3o5Nt#AmzEBL>jzBaWo zF<$cTF74HND>l)lnU(=uDg;09uHSts78Gw_J9)zNxX{!$6E+)DKwSu0=7BgnsxIuC z+arb+=0k?Y#0GOZU}&JU8m{I*!eVEXol-U{>%#J_2_iarHoHGdAxaZ*l3!m_R=sRa z*_t7Z05H@ZY04GwwqS z6P+pO?G>I>0I>Q^1-pz`CFZC4iL;%c0zio$F%8M@JKCg}lEz#o8+{^WVEZfF#i(T$ zKw+$i!C1<+opW+FrHnJ}DmJg}AjxkpWP^Z*Rf-ARXLp8Ll#$z9rm>S0aK}^{XE5Nt z$Q0Kqn{%{EC8Rrj+=E+wzkPR#H%buZYVco*z*WfsCnfBH1sJ0>wy9k zteQT!#oNpp^1%rp$kdrUWMzpS80iq5kiEagx>tRD5|DbbAeEd*PgtvF`@DYo@0LK* zb#~Ww*eDShM<=;qo2!HIpu1IK7;~j~NJBpf)1m(zet;6>bpFFoP*TawZ*0|bFb?ym zWUw%hr=@zew#0gPsW%&_?$gMY0|~<%)R`0}AM|gq9gWaOzLCrKi64B!fWGrYD8(5&b% zktoB*DM?TqkJY4>8?e)4qD8zgvAZ^ER>1yJO{L~qRIZX7=~-I1BLijsi{Ppbk7G7N zZq}95sbJCGPm_FV4yASla=L)#>;mh91gMJqM(sRS4f)}!`VuD9MGR?o-=15?nwNAE zrfScL0EyniCtQ%%y0fu6MEgG;$|~qz?BJi=3In$^+6ma&if*>K8#JVdprXC3k_O*) ze9k3!(Ngh`WG?cTj|3WXC-_0$2q`6F8WP1(N6(o9tA>G55gSiIqyn1sijk4rqV!Ur zg3?}DzsIbaXDy;ip7A4)Ac8#)s{lJihOHOS=hK zgb3qC$o$eubj&k{DEfBccMFp0TNus;ok}ryhT#tT$nGE-ZOmK?sK(C+lgL0t*4E&lVyQ?lBt5+LwpjRMr!?OZ~y_Chlt? zH_hzq+XY@{?Ow$eT$Pt{mS$DKf|7U7_C_K2y~^aPb}q)@b^%F&&jjjpyLd2U67s1r z;fvLt%($ zA#LDgHkCAvUeP<-QNX~sjXAZw^-&^ecsYiJW~JLs)AzOkkK7jv5NpF_tleL|rAJT< zF=ra|o|IOqKUrWMUU0Z=#{C472FY-rzepUy?;aq^|GODN`-wwsYpN~YPyPWsJaopx z?m9l@?V~Gvz^z$b%%`_`#3o`{F4%asd|%_^@+!1Hr+X`v>19Px1J~2e$EOq8Et)&J znPJDR844R_BHDe6LPamTI%YlZj+`Db*iP?^V<`9%P^4zJ(6DRwtj)HRKxYE0a#;0q zFi)2->Gwt}Wkd<#Vp*vNCeJ9jo7&@mtGE0P)ugFZE9)EIy>y?3hLx zE_C~`e>-k{uDgu*+9UN;4>LOuEwz@Knjx+)t%1do-FBNhiag&>B$1BLx72^Ygp?Id z+A0dT7l}D@7Zgr%OUFnsFOlv+xR055ty{5W;1%4~*#ZLdYq4+eJ(9q-%dVeN-Z=Y7$;)L4^Q_+f?0)6%S=@z+ZU^qWJkibk_=^Wb*F^S7VxD&5bi3s( z-fFWcUC53D-;8wUIeoK6leaTYEOguTlh#q_>~FZQTypM3l%%3)Xuo~mfEgf`QG9)|M5Vw_jWlBU$L0Bgl|)N}_ipk-T==jj%I2;kFdyyx&o zNYAGxS7k-Ep%*az2!x!(L}d2L+sP*wz;<7gHLSNzyL}2DdbgQN4QTX#kM-p6Gkgw{ zyu>NeG0v~K^t{ASY$Ec-N+LL#k|JS~;@;OLvv^>idDuD^`i~VOlQye3xc4u(#YD8q zATCg6YHBj}_Llb*kwEV8`GX{s)E>6He&y+;le(KY<^wq9uhkOQo0p(H-kboSL0oh^ zYuorSDdzaU1+HKG8<~<2RW#p4bi+F8zb$8O5DnxWjcqI_H7Ac#rw@($|$U zTOFI&atE8MDzub=DMRu7baex6$DGM*Pc&-*8~GLWM!9D{Z!&cz`x`!ncx;^`;5EiL zwc}?JkTev}o#(a;oXzg+ZsqRmCK1YGg||k4TO@Ij!dqR^j|a9ew%QGBs7|rTO>gZz zaB8Zvzf{so?kMg&*X5PZ@W~w`6GssyOY5|u6Hip%++S=_u@*W;*3|2#G3)gvz-G8X z^Cx!W=(Yddapga0F9&1(e+Ovaw0;a)P+<3SFFl+*>xV}eB?`(wL{4v7s(*~^%GX^I z9l-thcWxd0aHh2U-rGax8bAmfA!DCB29=v>W&ia%gR0HXozcN9t~K`2mSkjWk3hDh zl7HxGhhJR3Zw?Dq$q(s2+0?Jk$v8nXnl-V{jGNRs8IwZ)yu(eY-HDHf1&&U zC9MxQ@*J!lXJUv7*|pj)4``|8xd(rF1zD5HKir5+>@U}I0$=G9{s9I)N9NA)d#SY+ z3BXB_Z`bT>^2!8o59QCtJ^8PT;dhB_MEjkvS5u`Mn47Jj`>w&Rj%9DfwQSB-*3o z4I`IV`xCnz4C1X`06{bQLPL6;|Evt3j})(}aGG3@$(Q*|P{uSG*x!CB@?p*{)RPsi zn3M4L#uG3lWeJb|cy@90^%iN0)K^;x5}ioAxHLYnqyMe!O0OrH#R^qM)3i6xlL;!= z?CH5p@cFgCOtE3}xheyy$^#3t%f(o$oFPo!ZLL0bd>wZk^2NLFixvp)G`YhjXC2Yu zQb;&YWl9~io0FnE(cYfRNOkITM=eTi6-0h%9k9L1MeVK+f)9_5zXGbWL!@AOi^kAXCHy)%sEx;u0 z{r3jigZK9UX<3?ExJq%=EGt71s&4vY+sfu1#sCkjkLt~g2!kUy`YMNGK!!7%@;8Im)T|7$WsB>zyDH#b1=+3#uy8=;r>E|w zS7X0}q0dyQ2jV)AgRNn4*K@U_dRRT#sObuEx>997t=+DO(w^RBs| z$$Xjr)WVo0-a1^QIPN;sLo0dh%3$P&a0ojic|c6$oWzxv7OR_kc9luY1;}EFqr5?5 ze{OCn0N=`vY!5gWJG5sZLFsuxfTmabEy`Zm9JJ{-Vs|3^1(`4RpI&bAoSji!TFgZB z@|-#V!xv|jPlxP$T~bLE5a+x@PA))jtgXakA&XZ^=LA(*F{LJBvnlGfjWKrW~_Z!<&)O1E#|d&ax8pu?xyl z2UGXI)SUu_tt|8N^3d4(qH$yJqU^u{$rBFwc=Mn)|FZ*{nzNKSBQBAvEE?6#!)HM|(}I*qhzfNl9PA0S_QV*K_jF%8{(de0kX13_~gc39a11NZmy`84hD@T||x z)bT^^>4+h0k*%_=-R4Ls@r?v^0GN_@pWYW zy#r%*gscP5ksVroY_RvGidV^4yi#qV2&C}o(c7-e12JsMk|uU`3S~b#LZZX zq^0l&a-&n+XQRS^ZId(vzrEAn^=rMIS=;s%YVIr{&&Xv@7_Z_6C&LK&0OrG}rN(Ls zUBNmGTphyytBWj2lxh*1&>d?qNq(PnO7av_C%`^MT@fOs>iQw zk*;{RZ!#)GjBQfZK7Sw)=eoaIb^9dwsB}r$oeCk%zFRxEG}AfnV^9U167!{U{pJhT>s5RcpL-6)wf{BbODq|D-F~jq~%(sK9&z!wZFk(o$}g%cGrUk zcAcx=p_||nO(oF-(#MT(d^H8$5DH6T;`rcRiP9}L3Bq**D9HsqJup;`ax;Sr#z zTdrQ`KBi-n45JDGe3A|QD|q#=z0&P$BmlmuTxu0cwVU{8DMLyZussW& zbP4vTAcO{p6%+Hegqg8+!c3Ia{iy0_BL|yqV38vI5a6x-9NlXnJAnkpbOqpW{4Z58 zlPe!I0XnM0Nu+P7KZOs#1!^6xse#FA!|0j*t+_5pT1>{uIQ^C5xGM;M{K?I~ zOyfn1*_m>oF8!<`&#H>8Eo8j-t|^h(8+p@Q8IDYKk^o>XJujrxlhj~fLw%zc?6S#+X*~Gu`?m8LTpQA-KhoooURwR#1dJF{>|{67js`RW%xb2Je@~GX3f%asn6ID>=UM&{Z~k z$`ZAfim|(s&dre9v&}+t(qYNeS-r(OPCvzT+Cw!lOxxFr|B7s@Z_OR_S`lIUXIv#_d9Hdc2WL_P{(nI%1A zbJr~tovd5b<%g_(n~bd%`+FneQlISvK1N3LC?*QAGHn+>P;D8^dExLF_VA=awhX1R zxy}z*zBQ=2Wbqcc<5+&J*S@knN6G*o7FKzRQT<3wpCWKYO4^Cyq#&^tS_V5@Jb()v zhI*oP>8|H4x1yL(MdK*BUjFMC547MA9)&WiXB?}l7(#%|$1+m|F%WxP8-BjRU zv`%`0W}#XFCf(9*1tZpnR5713l-W00q;yKjnvSYqwLW!M9o{3~0N3Ec4rr=_o+7UQ z>W?=yn?(-yDZnA0DgU0%R8-h=b|C$I0Eg`obNb}Iy^FDD)pYZ5#K}=Td4VXk2#?}^ z@yk6os94?uHH5(a#~Su$I-5_tGOG7`aL}omm``gSb#QX1hc#N0?lX{?h+5{#;Do$( zL0G**2CH!3^bL4bGZFu1eF%tjE$pPeDk{bTcl=be`50K&Q-``)D=}=_90iOi-n`tO zHx+!LX9UM7=-L}UDfc8(vI|>~*|$67sbK!ZpFF!0zclJn9+jW2k%m+_`u^b9@!#jG zne;X;M$%pt_Z?9(nxlR8a1p76sI2)ux+oEt;z$nF?$%A4KvUz|N1mg75Kl5o4B%(` zUuvaSFS zj?LX@@^q4g9%d4zD4_4dg60Qd9Qj`;S5iCPUp36&HP4mbk8K_L61g*S0$uB1f3+pf zgFqGLTbr@zvju)t6acavzbtT(eU(R*aP^YR)nmiY{^LFK4-I1WZr&dh{-L6id+0@f zylF=uXrCAa*bZ2ikM}35Uuzu8ad7~I-^yt4r+?k>$vB1BE4~Z)$nRCVxfgnL*PUUw zbl}3e53hC?uA0^h>?R2_vp~}}Azc%ZEZ3lG3 z{&|AP|Mj`e6XGJv$`QP6WmX1)v-8Eq$d%r}JX?c-LV(LOa)#M=7w$3yzOa(6ZyU6y)B+mrJV&Evrng@j6Ml*0gLV(C z2jbfT;@s9oU_*32#(}^sU}EpOx=`ltV`abvmr(z!FRqo7ai)D+b;(Ews4}V!s^-Ha zDzSVmEIg{2@Nu8SCgU}0$WJ2=X!_JNf@tQI9!Mxp)Na)H0{mb5JLb)PMd=^iWE|Ex zloGOKX4ppe;%a78ypu$j8JWFCl1}94ssqTFtqA{`evp~ZAeUR}b!78ZMM!3eVeGx5 zj#~ISNtOG*97vJQ93)nJn|lnsQoR>R+<~zablj*9Q*kSKdxgaWSF9(5pPzwcCkP$A z#h%7iaN5JB#?>O3rrhkW!F$J`7nQTP)eQk@m#EZFnI**95lqv8& z-#cGB1;xRUR2bxRmrJ=k`_X91pd;3*R~aJS3VNs^9bB;lkWcC%v0v6QEA z%pKg~v^N~v%u@H|t+Q?Y6VacdMPz+$hYo}TaNDEy74PjTB}+Fqi3+X20gOjY5sMML z>i=Nx&Eui|zrSJG8;WX>h@>*5BFVnBNQ;;jOId~_W#9KPiJ=neBO!Z=$})py5C)^j zUSu5%S;jI9#>`;MxZlF(^Zk9lzw3TnkL$YsxF6Sj`?F?V^IFb1uXCQ~dCu$c+012i z7v8f9-VMh@zrMSm7E?abT4tW`G5P#<0x|BrA*sveJE!DbZX_)X&s3`ot`dRU;6;s8ixrZYL;q*tq`wVkvI@I(14#Q^}7OuAT-T$7d9@0L_Co zCVjo8BG#DbX@^&6BiZ{DlPd~jGNnayl4O9!d|Q8ySkKlkmjPe9q1Sr^TbrBjBur0# zvFt8B0rbVsK(D+xjBC;g%5cd(&p6}2eD|R63&L%{rh3m^b<#wcKEgNVGL-+GKGdAK zdI@M?`bHmZ4IOwj;c(|?%Jf6^UfqMz%8+L89fH2JCWRMCdPgBAIR=~e7jlQu00y$4AgHP6{&CB=<>Kypo!C4n;3zH^ z-g-%_Nc`cat0+4h+dW_pgFUdpUfWs_2Zx^VAB?_)wTdB>M5E^;>`F1h+<}-VbdBhg7`>H#O7BV;}t5-Tyj6xJQ#4>9P~#_uBrJbZE-B zY5FP|E-J-Z5i9c~6d8Sga(w1O%*~#UEqbM^zu>E$%@3E)#(Jz8G%0lteGb7DG=0@) zP+Xz@`mO+~(mL|8rRYA+!nv53U5NBiG5WyBJ+9z=3ZhK15!%NUs0h3;E16z4!W&i( z2$rTSre1RTd3bkvsV>6fq{4{6;c1>({eT{F z2`~X7Z0(8&H0*k9x`e_A*OMtLGKbhEVl=?yk?(K_?3wiNbc_quX8SPZ5Bn0@x`EG7M*GeGI0fcYEI=R1Hfq{oRHiEWcPFI!Qa_sOR- znyw{Z>p4CR8yz0dZ1n}I+8R(RNf_7Lsvk;EQh?3|Ce@KHO@T7Ns~G*SEKf~OIs}}7 zD5Jzm%QO8FurL>jk zv&bG<lUJ|{% zjR+v7Zl-Z|_y+yE|AL>W0S{IJc`o_auV1s*$Shdi{_a%iK#(7M7{|X4bLW+XJ}dLW4e;UX?=C<6>o_~^@=fL0o8!EUBSIs4sftgedCT0k{beXS zAjDF1t2uP`g=$vES-&4=`AU9%zow{dM|3TB^Xq$9I`gJ-s%?-)GQ&8fSGK7qlY&F4 z`F?-AgK_NaW2RWuu>(!8l&i*u=ff|rsJq1WDdg~jRl?x*-_dstALB949 z=kM`e%)iuAQu%R@r!)GTjI&B8KD5e@rZ@cUH<8bn_yF5r#wb5cSgV^Gfh!obVsfPR z^Jn^8FCQlWBoEnhX602b-CnVx$j)y7U`|V1-IHL2KiDASxpEwu^f*7gE*97EjPs z0NMur`9ml3gL&hMTydw%=B_53B&|i$Q5V5OPCN^a!{vhquE8?UZcI}?5FxOh=eZ2D zCuG#)#1AteaCX&0zk#Hghe)&n?k_3i>IL7akzOoTBChIYkQ_@{$|+@S<`XNrVmY6T zsXV%BR$ybUi8}!T*FCGMWg+a!-|7wj&Xsl@a`Ob|O{*naEjgBH*h=-}BAMeKOqHFv zImLd0WUSTMlLw)tLu#H>Q_bh&4rgInS^|60m}v1M{cBgmkE951*{PlYZcy0eUdIFl zSSxM?gHn}xs5N@kSW8{o*C$sbd+1V-J?m;Fj(a8@HjhMuu{3{{to)jdGgcpBQ8=YixvoOcTH%b z<#EDnz(LJ3!pHj4^oC2TilaWeJbCPMBH#(iL8PYewN)lsX$QCqn{TMBEAWLX(7o_u z=%wl#dF!s)aJg3gJ)0;n`2r`h=AAQ!ZWm2jZcnKCOPW!`Cq1sKOY3B%>WIDOgZ0V8 z95hrC7!}!8sil0=!akQj=T$wOdvQU<7GkdkRnwhQdbb~v7mbLi5k9Dh0nS*=+TUh@ zaTj}TI1;6$vRp=IP*$nEX${1(ca*QW)Yt0sciXeF#=#Z4_ieZY97A7V=3af z;Q5Qx;*2#faY)6;d;@dkM&Y^PZfkm?-G+cY8qmv7OnjC9O3E(fTxiu7Qg>0DTS}wr zptH^$_wP&!;)OKxt63U|p>R-e^^9rvl}~!sr^!FnuyRmy?kj!r2aeQ+;sd|CrMXHM z>)D2|A>fYF);1{vl91-Lf__@CZ{}**t^%Xh>?#GJdj^9F2;A+0ONngJfeQ0gZ8#ct zcepuPC`Qy4uPOCr)kT0aQacns`unL|QBVi*TRHuHTiR?yR&pqQ{_M0ll@f@^m`ih} z)CLtBkb25t5d(FK1+ve?Pw)%iOUZa)onB!pI9+X3F0Z?5(OVX%I*Ua(yd!&!Da zhMcQ#J82W8vMCXU2p+MQhc6A6EI^0Es&3_JsMUQ`B{t&b@h{1fTy3NEI*W6%%Wc3b z+|Hv>?7k}@_D|gRi6#|X=mDkvGKDnP9>k<;_Q8!V$RuX#n?jxwL}gx|qdW@(#P-#I z1f=3+>hj7cT3V~yon&p=W5fF2;E1@_l#gJX82XS*p;vw#8Z6^RhL;d1J`qUG5{jHFbe-!dc z=dmzY$nOSs#Jx6c##sG@n2Mzv{>>QynO`0rKs(=LTZS(_%dmBuLs{zQ?wXJ<*}=gB8&bjCcj?| zo*~Ey9P;OUsTirO6@s5jyBT|Fq)RpqINGPl`uv4`x;G2J68W=zS-Q~DmRK#L$9luc z&gO2ar}jendE~)3_l1k}q#Ts$KbpDok7mA)<^~brj7sv?X}Mytn2JPc=J%}hHiXez zI`tj8zQP9PhY(k8@Trw9=4gg0-s`G&UmFpO6cR(^IrIxbOPm0kYvjNuhmezk+lvl4 za)X*!L3eUXT1}->{M`}0Q(3(@d^EX#SguIc0d=j!iaF%$JD&PFA?-WUf9m}#PC(2d zS88x+$eT{*YcUa?4#hiBq}%AarK&+QwY}^l6JAis{LA`yBM8OWcP#buOjSdxq%Prs zrs_~P_R^5s-LAD!+DaX@x1_x-Rb)E>dvXi*te!m#-D}ur+IIp^fbMe7@{-Wp84ll9Q$7cHUhM5LM#>VVftsq})z7*s*8}3IZYuYDL#xZ34%lc=X ze9~I4Dp{uD$19xNeCKFU#Ub^_%mN3#6DyBFOBtD!y=ls6+OhU>8Z~wI;zRKsGBx^r zDi>1Dr?(f)+?8hR_M})Jax% zEp>Cs=#Y)uNgD2bs@x-M`BG!yjSq@_JJBM(_8D`1lVqDaR&(-h_q!blxq8D-?PAAl zD_L%qO(!edfx`czhy0A`zkV``om8Dzhq_xGP+GpmgZJBTBfa0~Y#oUm;K5Z>df#A! z|7@VLW-yj=oe_U+CpZm(GnXl}Z!=4#YFq*5IY|hP?Qd&Ul~SYI77AQyvhE&mR;!gOLDf7)`l-Dyr#$N3JCS1U8>9uD zF88P2^_`k)I4J4Qa`s)4Hz+!t;4t&W^`0~?M5!G8-Oe__e{|kY0hbOpx42zMbmT;e z#gJR1;7jkx=Ugmi`IFWhC|MCC0!JgInlwW%TJRZ1t6gG!K@isR&_8Mfoz_^bDN}>ra z?OGT9yJ4fJ%|>1fxV|jVeIvH{W%EZH6Ox5~zjIlBaRys2oimM5+H%3=4+7c*;uzuo zJHtzsTsI*ciZOaypQ&z@`TsxkKiC3ir1CsR?rv6UFKDv=r}T6_I<-*y+x+tDc+c(Et!?GE48$3zKP^svm~RWj ztS-87Ql?SfnP)@c97=dW3JA|rt9n}uT65FJ!xsXO`3E)>g50HNyJ)*}b9D5ve;Jz- zD9qUS%M}|F!9L#7!Y$+x9r(ZW;UdwKDUE4CW6r*Z`}ojDxc_cWW~#6?@2;A7ft;cQ z-24sS)pHeyj&}#_{0DP;38;!!mEJ3kPRw92YsABL(ns<+v`{JLAEC^%er47JTG#%( z$b;3Yj`4VT2kM+Hi1TFj{sra%%`|Kk`>cz_;ho@d+ZuH{$qwGqGymPUol}*Rd$zAc zpSIFh6aq^%4dQN4G{wzL6k$)%;t*%vwe~_9s|EMWgs&+bWhnv)x4M$yK5bd*D^u>y zI#(JSFxX-pvf4_fqADfGVJehOQ)a`|-`x4euA^MY;b)Ho%+F@bHBQ>arBB0O**S3w zMhV->Hmg0>lObDjB9o_En%wM}RRN0Sj2?#~ZIsT7t845P)$|62etll^H`!hiWht1x z@XdzEX|%uMbUAD2qdRdgrINl(rfbq2a3(%L zq+ikv7NALB(9N=C@H!t`2xdl+@Z&Dt8H&iqE9dkCBHAA7-Ih{vA$=! z=5?ZCl3QSI$>2tLl5Bs~qfEw+i{}snFC5;BLz;IW)g#$Q#_C(dyCX;rh0`0=Opi>S zE`Th~{&8?l3xGxCxx1uKSqf2GVkQd?sTGnz$jYvjg7s`_Mcv`5asT%=-KE>yxb?r}i?s0gu06V{vY45(X?kQ|!d{y5?qZ{+&z$^88 z^LoSXAN*ey3bA)SPg)zSddNljDN<3ep`7UJTWVP3b3YXC3PEF01GxRTrr1)f$#GSeOq4mO@zM7|h5T5Ad?Dd0`u!zIH9Ix`M@{UvxaI)%_4QTHQP0lGK6 zyq*6m4^!;=BIZ6tEEEqN#O-s_FjJ$;&NJ1Qf)Om;%=UTrA5E|D@8D!@Q(RsvzY9C+ru=3(UhQT?e0d2$7X^oc} zYp6_l**&u{m8uh$C~)M7dp6Vq70wZKGqFwImHFAWrmRuN!S-Y55R`Dk7Jm;2+xK!N zMhqf9x9G~3Bd)`c-dHG=13`N6z-w2l-4}W$dPM1Q#;DDNBReI>DQb{!l9tZA)9FlL z9`2n3+DDF`ltz>yR3aw!X;R)VXz!xMDHk|=rPx}96kMlJyZXmSlTxbmGs#Tm!OfVY zdM9|x!dv8sXHQ$aM1vN6I3uHdllMc&)AE?7tyWV4XN|Ul@%e@s?mlz`)n@PR=fRUR zD0^w*k}nWWbwtm=*2YiU5(Pd!*6o9(QBXV(Qf4!t1rNo~`uw7`1kg0#Y>cZpxw66Or{91T zVKL-m-T{BnD%X}%&w;>Lu+@aZKyo6_f1S1G@n|0ic)VRx25o8lC?9kV!@Nv#cAFMwOf?V6PWCMn z?u?jRIT!GaUV}Crq>M^Z`wnNps2S-$>$@;3;wfPszZs1hydbgi*5GD1LYJ4MV|AXU zlk{QbNr3{bxG~^k-ajJg=peG;J6PoKcYNE1U-WXJ;WFddjR$`JRw+GaTju$D)r6-$ zoCh!grbnQq`@{;Y9&mHTxm7T4_zsUSijC8k`n?HuZaSxS>9Cd8>OL_PWi(KZxqxU3Qg9|Q z?Rjd7Q^g^MD4$Ar8&hQ^^-6n%Q2}FY<;=xyGpt2##VymhFB^_o^+ilE$U=YJbf4(B zeH$$(%o}@V7T!O9fpop$ra%Ey?I1LfZ&y&=PZfj@{z8VZt34+&*JC(P6}mLVSLjp!*L}yiFUvd4ECHq;YSTQ>6u1K59!83QSbuGfP=+~R`~@Ik{h z_L3&Cm7W${@e}JwoR8LCDCJkeJXSfol>MN4Pl5QZu7+4QzIx7Q$!$6* z%6i#Sl_{Ar{Tkz6^$K+p0laLC8(~~2w)&M#wVu*OxNFz+3*8>|X{gtjEVum{gi|XB zh-p28Sh-o;D1XbI7yD-2FSW2cK<-vqEFDpLA;u`S$#5sj#s(37@9^14-_z1vvD}Ns z>Djrk>zW-bLJR};k6FgMZ}4K^3^xb)Gyb6uJ0(T>vH zp1{Wz)W`PGWp5ZO<6R_HyT5Tb9OJ{B4T|O?1-_+*NcymExW~wRqp+WG`O+9yr~8i0 zI0aLFfBcO}m!tx&f;YSM!ZU`MGCi$ZJ&9Se8T_aiZ+Z95I380u$y{<60 zT2SAEJ+U62J=5xN(tT9|cDK5r5B6IiQZ+Ka_m&1CNZGbum+htyRf5f#TaX0-vUO{% zqbBZ{L7b{9J9xlMTy!e@Bc9s%_mL+$0@9=36jOcd^Wu>Jw@v%%^ zuhVs$waIs98>#LoRy%I+dX;7|F4rZxyEO2c97|G5t-R|~OH=gx@%g~lUX?3)w#%wE z2j4JPg2$OT-4=@jA?f2Y5>*PA?y?hs#8=(o(T4+1WQztXY{bRY$F@SBKTu7s5faUivm6FH`(Z2I!5uC(MXykoPiG2u?~#i0{K z+(}A8#Vd4AFaWoZ8NoQ2ng;di$7 zk3LA9oDz6ROX6Mc4_3$hweeKG;%AX0-gl4TFYmv|16j8uO?#en0DeI=n5Df>rcAjT z?$s-ZJaes%d65=)fAx(pq?OsNF!~n0VS<2G3A_Jw?Eg(90020*ZZHmx|3@)~ z|KZ5%pk{(@+1`-EEx6{m{Mhb)S+cKF#@v*g8D7YHbIFhF-&>yBvO64#t*$%3)>Q%8 z|F?jOCoQgNIPz~u=Hh#;bFXgp9NR!8TU~d8Lly>%i<;6c1$FzkfF03zPyYXk{Q$7h zDCf-S=>)DR2v`ohd(dA8nHWnLy7q6;^y;8kY76yq$?_Uqk zx7kQ;1za4DQqKdP5}2cI*A~*u(WCzViVwY-abNw~K$cLDoLrjt{q17;qSvpJ`(bV+ zcB$Hl1N84d$)2BudOZIT7tP2&*Zxc>pKcth5jEH`9evYne5M_d#ftxBTuv!$l`K6` zK2x3KPQ~JUN<+lw1)IJSN))V>kiC|j-a+>zcn9~D6vl%T91_~3TEYU0 z9}$wsHf(Bes^UO)!9jEGrHeE~;g@WE%=wTp%ka=9HE3ca59zswp@g~Le=O)DXh$~G z=Ckfh&|HTQY0YTunr;c<(B#rF=e;x1IfBzWxJeiD1=YY1N&e-Qa{*&&k5%jp>l4#~ z+|T0OW$G)&|4}$W$wZ zi_trFF2%!7F!{#;WJjUui{FA*Wvr)j^rK<2hFAc&SWiYXbnAiwY{5F9+-Um6gcBKn zc6DCLuWW>|NcLPvudwJdS9w9XoxJ5THNSU#|27YYcVbEK)^m{pyVUNr{DZh{Aob4g zG5laG*CTryS0!E9&e(iYn#HvYbcdO2vzbej>FyMBUnG9;z|g(5&lDW)nFk$ZZfVlMO_Yx)QRUp!mA`1?XA9&+LIuQn}*R;d$sr;=|n<#*rX0>7UGO}6AIL3>z!4BeY|sb~A~*EKapdy7_{z9;tA997c=VN?ObPG5tpa>s zo_g)PSANET@|>uaROueP1+XC{2W`(_jey<{uEktPIQ+fJ&$6pu6^Nac1_Ds$NtsF8p*SUc6OPkrj}L76FsFLDPikT$&G;Z?uSj0T0L`R(&=l3s=>N zbu|gaUtW8O(;IfSuW#xdORKi|>86-|ldGG@35d-$O_&X7Gl}m#f0r&_71)*mKISa# zH`zWGObip6nIRJr58N|@ZAXLpOx9fTcdOmx9-adF`a_;`g%{J8r{K%}fu<|+VNar* zctG_9>kl7p#Ju&NLucf+valRzuRk1|_;qH0*4{)mVKBiuMN4^UGE$TINpIK=wshBl z7{R@*rtVl^M?CZXwl8-N<4hCX`dqOt!+N$k*TfG9N;z5Pf9eSU!p&2-adS{UwG&gP zs{&OEP@u(Rxv;0gpZ+(y|0@3$56HM8M5&*+6P$g()^m2Xd>Ln;%UJTZxS{JSGjqU3 z)5e^jE5Pp?7IK|K!42k;YdSA*Yq;zpM3z_d>sv!^VVovs2hf5~c zv_OUD!hH_?#{xySgF|MiurRGqp95tPOZ8|}U3LVcaJuCz|>T476hb2B$- z?4-a1&%!AT^H{vyQ>M6@0bphd&)Jrs0+Y{)7)kEgeY_9L^=dt@x^-*$?p)6^VA~Id z;uEZO-e@oV7+gJ79~;7+4<_c!R_d;)GnQ~<7DIPp@f7h%{WSKmua!Q!07N`vM$g@^ zssJ_DG{(FkzP+Ja8(MJ!V00A}KOjnkG`FcsATo1K6aOUl!^ax%()b>^RtpA?RqlRy#HaeFnm(0hEhAp zRDfTiS#QXNjHOJIxz=y_O*!V+xT6R%`L_~H4>>b|dkqa=KZ0I>euOD6a z*Z%gY{)p#)abz~e`=9>M-mXrlW91NtKwOIFk)%&X)DfSA% zA3=(uq`|eic+=$9KvtY7S05}BFke}Et))z?9<${xxw>rSR&8VbV6C-*cBV(0YXeP6 z-L@6~7}Co?OB!@H^_DpbniVwf&^fseQn6Z>Ih4W`F0v^yHoz%wI5kH!P}jxGS$DM@~Ax1H7r zaHuv1AL?2MLHrC`}!NY0KO$D24AJ@h@8`)hYeJoJm;hC;!&@tVzsE;h-wlZtx z+zVgicl(;1IQ}?nK!h)d%g27NJCJ@jABy+74y$B|O=VX1?(HaxIR9jGU#j!}KG5T} zKFf{>8Wgr`C7FkZpxfqrIYZGr+TGp0dIfVW#P#zv=G#ubCiN$#H!Z&=iU@CR*`t=f z^TMW?DlgWOr{s=@fS)uk?uI!NearE2G(!!LGt7`6O5{SpyXKf zlV%6<^83wz=MoMrG=Jhm>Z_s4Q0$)HD^*lnmI-gJ`&}okfm6O*uddCU+Ke?`1c^vn}aZTK~V>6WDoTe--S7h;lE^}hkNvFv#j7S#X6N=ST9w>w%DuY6>Gkbds5a}lAXtSf00Yk-aj2>D zG|Z}l^?d$8gl6pC{OY=EyG~hH4==E0+XT(#Bo;k=T?ZROvN(}5Cj7Z@N@w4zZTLDn zWG>W}_F>faDjz6EUe=dpy~W!=k8ODJDFgc;miK(BtdHL7=3mDA;zHUlxr=_y#ljkl zaOToi#UUxqgmi`#kKo7;>q5ujRcL1Y?oIWsp8Y2+JnZ_9F)9z+64Cz!^Hk*O8nTeu z9__AM?fdV6$89+`IIWdTt6%dgi-Ro@9i$O+Mm;-iH2+pHjtw6%FU}7(m{2+YZSAHM zBsgddb-x=GyccT`-PHTjz_p2v3smnZk=k(jUuN}=*+`>l|8Y%S4SY9WFP%1{##+=4 z$e3Fw+cV7W)CQ@8z-bLT2YoHxEX6?l6ZzP@ee{_sAa*cnlQ}TW9;A- zJXw{hGw8o-veY~H7v=5>7m}~7)yeET7Xru`6ubB#Do&U#o>2+rch>ojn}*&HJ>5~i zFI{t?tiUZ;Mbm4d#-DgW>R5_o`pVOlbkag@P;xGh=|Vh5_fe>M!D|SV-|76ndq}xf z@HKBKkk(qe7@kFaH?r;$K3IDo7JEO)&7uZ`Ji6H34j5ae0g}6E9!TA+2yfY(&9JZ6 z(PwdxK~M4w*klcxg5_6x{3Hm{4jt9OZF$vz(=uUtih4B zYc+T+MKv904^wUAXN0NL@z$irF8um?&`+*W~_=NTnR$@Ggs3~g&yPI+;{ z#~dG*J>*9pf!U(Pl_hUs-9ERp*~XviaV=K|Xd^v1fF#gHJ$5Ov#90!?;M?t7}Jm_Z^Zf3AFiX?9=R$I&?Sxnp~o}Yg^b0 z+Dx@+UrQ*SGFbZBis}EG1#mNY0M1%kxn?;lhO0M8qGd)5)~g8wLYh99vP#!~*^OO) z_`U)4CBa9d?9dgP07*3Fyc89kY+Ol@^-4p%#_Q5!Jh8N$oNk#L^jUGX8y@2 ztF!GuUIvG|y)^#&|X z=OY_yCAOT@^7Hd$?&m8yt@?(bfGhGVg2Q~L9KC`D{!z_l*>xDg_sepFpQtE}Yn_xL z7Xd)QSx=^8kK*QAL!I09`#AuWABmXqIi_~t+`W0~a#U~hCo5sl>TF9??^C#+LkSV1s_DPDIGPyO`?7vE>2naE zs|BK9%YU?G$EI`W>jhwng>d~LRK66)^K+pMG&lR4wBCdPgqgorf{Qr}F&O+vzR`sU~2nXyr4Zp?uKzV19&sI1@ zzCcLg>3#BQ+wtN@fSV9ML1{LI2Q<0}?Nl9@&e|b?pRmlDYrg zrTCu?>i$1|7XO2NLaV#>m%g;B@IRWs-jCUeY)m%Yac&S_1=Ev`RM_8WWWAk!0$_J8 zOv)7lT<`7l`1UgEV1+@mhI*=}@5w$hui0;MK?JLiksr?r9^Q4=ntVfg?lVfeMP(p! zh|MQU7}2v?V~xqZY=xG9Ybry17^mK+-NyFD(!st;1&bQZTJX6tGA%Br$f+9@Spvfs*`KbZ*eFr-R~QwrE+breXIYG^zK@_{Q=sS*}c-0M+6ps zDtS{j;QSH*R@tCUyT4s6s$3rPo`3JX_ipY{+@lx_b07P$Cjar#kxx9JzTq;6p_%nn z$zTZTAw&%ta+#Rpv7-|xLe!)x-(|m@=i@#9LZI#JL&IdAN}rWfa+I-Fd|SsJf zfLV#&pWQK}_Nor-XG)ZD@R=Y|vudplhqo%Oqlf#~--MLe(MB4>uI1 zWcQ|_1!$?suor&kUG$&i4`x4Piw*jW;0`IY-j--O2h{5wI8S>YG^o>)F3-H|k`4Qi zqvJp_hGA6;Yy;U!?mw0fhD=;tdrGHW=&Pw}I5ofbzDsVp0!%!SBEknUP7Cz%9F!}D z!$OV)QS&=&lMl^Yb-6(R>pkz|KpQ=4D;m>LXl!f9)I%6}46Zl~0-MZcCQf-(O5W_r zp2~S}(<*4t!H2!-^_eYht%+dw_NNx#HH2@gqtm{=sj2cdY}@+@+leup-M$%M^j!NV z@=AGj&P5v*-bUY%KYseO!mFN{9PuFnQ0bvPetRinEo$ZBi&M1a#Z09`&=}IdLFGC8 zJ5=3#G*yh{H-6mhv~mJwdJDM|=TAN~r^?tjWfLHMW zDlZxd*>aOIqvVk)S90`OW2P4^P)k60SG^@QLjFKF+ z9!fG{hUxXR5sQ(_EI*xuD3y7V4>Rz~v+kS_%CA|}YFV(0Xp-Azu;L38=WPfdnuZKq ze!s?69dwRh?qjZ0kz;sZf00PnSP7YB*v0q00k~FNgd^Dt2ncFIrvz3!Vd5NWNs)X} z>i)yu4qke}$FI>X%((66>bWXF;q_AS4)&R;NnobVUxXW$sMhjCy%D>(L@%jI)y1pj zYb^aV5X&K;EX&^P515Z9%NxVBgQlGLiV~~?&Xfnzro0i3MLtw$ML9l)L!e9JLkWxDd|tEO>Eyr?0g<&k&WSvF&z$L5>GD#6ATi=5 zZyhxuIjQk%dP?X@>khZk`W@W7q#1?EK=OsbSz1HIErKfm@M|w)xB|Y<^~}fh&hK%% z2U}@0D@JLv4Cz44njxVwWZ_l_St4ifjVqT8a}l{5p{#2W)%N?tKrlQ#(vF9rIMY^h z47ybJgXE@~VFni+hnq6a+5>*2xNm{|{Xx=%q1WpEF_LHZsKz+&;gO(sNegLN44m!Y zMzMyu?z)Fd<~B2uZc1a;eI(<(37zB_GwVic4Q-2Iew*9nXMkM60*u)-9$1<|g^0nS+NUtu{hu0FDH<^9ax6$ zlKYnvtex*%+O&fFzwCH4vnOIMP=6RhckqyOpH9hP2lTB3zhMS+$yU7X(!O}-Y$;RS zyeeWr%6`Esk1Z|@bMk2IJ(bG3`7J=zGygI`vvRBGuE_b+Tv_5c5Jj62+lY>bMAs9n zja^FzG}+M!MI@CxQPB!dm7s@3GfT+ZYhu>vp928$`g=#}KyGimfPOg%=W#r!oQ}M- zODB)9KPiQR|7gR!Fr&2`kflOZt^@TS1Cq+<8{x#jb8a09HIcaRlY)`LkI}Fbia*q_ zAd%0wN9iP_p8+pO&V@H@$K-0q^d)##7+;GWbtGauTj~Wr*o(NI`s;_}ukkNaIS-f4 zNT||>bqZirY3b9GVQpuyIU=B&?sJ-P41df_d{+GeHsPd|>*oQ)5ES>9EnI?wV7F9U zaRT%MqZ>8y!iuC7-PRN+T|6?<_C+cVM~p6bzbo%5Ji84~CwVhgJ87dMuKhQE#h!>s z7Hf2B`*w?#q^r1g-b*o+iVKPy^f)|Hr_;YtPLKyMeSyfsV3%TEBxlY-wasa6^X`&; z!(J%Fj|XNA=Mmb>1zbCBHHD^Q7r^w*Ko9y!os+aaS~$SxKHW1AieC^IO;hNohi^}P zzWi5(h*2(Im*d&THHzndwcT=R_My%5oh@T~W$Q3oRSydH@L&2I4{I%{H|zGQjN;L` z`>lsrr?RX0CZRLej5;q3_rdPAwE&5Pj9i+UZfHQjrpSop38!V88?3ymm#@03Q5V)u zYUixu24#)xOSc2IVMSZNyefOOIFEGt^V*%MbeHSUg0+-@^sw~aI9#A^I;mfN%}GIft(Wo@b^2f-lDcs@PhVSS9nKW~)U)-lq+YN4iS;nu4KbA8dGZQCGrSCh*lNro z78JWS`CEW|@PTPak~X7h{)RTcFwf6@XG3i)LehRGW}^F{?imyT+C*Zo#f&7)i_Rwu zDpnvg*;L;f46FxRF>dXnjJ_eJS_TnUyT;$+Do+_`lfDxcTRWfF=q+ksgI8zVNM1@{ zNbqF58C9j;xZ)+svS%)xUFnmPu>E0Lc6V^Nz^khAe}DS zZGF|-FaUL0(}0!ottvO@Q9&Qc?Mp<1_Sv<>-(??er4uImYNu15z#>=tnXNDT1cS5N zSk2NN#0}5Z>Egx~)acm~?VcDoMeru<0Mqvg>T{NS0%~QCS3L?TT-v>iTrEV<6yoX; zPt$NiY489mNwYO2&6OLvM3osky1hTEX9)+aT;-$ZI1chFWJTC|cY;9G47Vw<`E888LOD<9P^+FkzZVuv~ zOb4*B6D&YX|E)Y^9DZEV>%-`-GK5kNud zQ0Q}l{cgiS6wKakud+PJFoF4!V6CbI5ty|Zffvu6szN!_*Tp4RjOb?Ou4(S%_{IE? zY~_SVe%od`mjRl*Ry8NocS~d2(}X797WI#@?=$6=UX-B5t9)Y)3ja9$`ptNMeck8F zHxda=OlWm6Pn_Ql)$!BFFEfCv>Dw6EuhM3q+a<2I1HG zb2bZC$-X^E$R-!h2UsB&pG_Nf54fCmBBVq$sOS1dPgAN;A7;%$MpQ#&nUzFlC0R~) z`7%8UwtDd9m80)}wdO6Vr|VEUNFgh$Zp1(JBDL!dQm<4lkZ!5LeFJcL%_Da*6%o(p z`}J)7U|}L4TZ6v*P<-7LwGM^CxPyW(aN)X)x=b~0Mb_JL+L-^KnY`r>>bKyZZRCn? z38M@PuETfRw5~He)^0k=`2Rz&j2iMT0r=BJXGPux{3vDG0q?U$NuYzUq z{Z0r`q2Pj@JfNnws$kmaCo9(JLN;Zk5Q9+Fk(bv_&)t!V3oA6{v768~m>JBRQk90C za-g-11(R#w-_{lpOzEPvwpjM(=X)XVU)^vlF#(BzL;*~(8lYkTFjA}tkml0mEW_;^ z`mSe-%O7aFAP-Gs?7~bJ|8RU(tDnG5Bh zUK88!I`(HxWMn6m>u0By5(9pqGgik#BmwvQ&}6tVbr z2K1k*{&G~eYG3*qt!-qmEm95Iv$N1ohZ?BUv@gAl*4DRDHC^Au)*jc9RnEQ^VD-(% z7j+7Ug7lfBkC-t1b;=paYb&s|X{9R}uWnrVIAA@Av+@07L>B)5c+~vg^VNH5K85Np zQEvGLA9$2l@-Tb}sAl=B02@H7LVL)ncQV}Pu4ydHc2)prwW7S;c(M#K(cdcCk$=EpU^JIcFEaZ_l1a&;9=HVV)`MD-?=fy1Lp( zZdzrl6dt^#D6s2QXjuj74x&S$$ATa?wJo9-*o^U#svZ>MW(Vk^@@L#)da8ryvx(=j zf@ATd^t9>5cP^}#KgZZLda&HsVCR91v$BVNQdc_b`^AKheugF7=)uAQgXeJ#9!C!? zja%f@sx*9T!2LQh|H1AN?FHh#Av>Z?r}!~zm~?KYSd|E42H1XcxP9hzqqiZg?JFQ4 z>0uazu`W|1kTdvw9VvK5tD|kORqakq%?-KZi6yCUYqOE4nEZDtYY9~>#0fhtz?Qta z(Xy~)2kgk+BkMjHb}wi;T5#cvnUrB@^@?4zlZytyN&X1$FfLOBBx?!@9{~7mpm&|; z@6W(TlyNVJ8ElU8ryp8wl^Vt^$w2W z1VbEQb{RO$4f5H%%4{3SUMlu42uMdY3^{n8_-;NJG@6c>VZQK{UT*6o-M7agmcB%_ z5plxz+k=8bDo1pZ*U0s2RZ2?hT5+^9FMV}XZkV-xmq7oZ{1%pKBHXMic8`OvC;xKL z&PzzoGOuy(JE9si>fse+3#5ftK;cw=F#ZIPm!TgHnTetyYdI7>M(U#fU=S#2f2`pB zW=a3?GBQAqvriB9Jgp_lk$5?G=lb4W*%5EDo;lChKw@p(-{Z>8;yjTx;1#EtCT42H zwh@(R5fD?58(3!^`o6HArDui;F!uz0}_v0y%0fY6iIDxbQ$JHJhKq80)a!P8iQlsekVNLbLZ~)!j zuOmk0;xL`q$bG=;3wW7bwPg;Q$%->QB^~QG*Olmx6Mssfg&|-Fw>eO8p!z3))PU9G zIy;9JT%}=W2C5V^J<2-G)_E4#OJImr`u^GA2(h!UB=_Uj`Q1P=IhLw)=S9x;!KotTtN%|6WIeX95=% zJr=axlmX^Mt_#VHj{kCIB~?7wS>#-6>A@{K=_4J9u{&>oA2Uzr*y@}E_oxQ7>JGo3jAeQ_7pl&jTU}KT?Y|$8QV=vB4H}736qHso)H5BF9;(4aH*Q`pe?RZf z%U|8^SZo(6y*AIk7<52NYWF5BUHTdy0+hWrDM5;1`+33bLYc*A@#=GZe%wpYYti&e znD?VnsrA;pAz+*!CxZ0fLrZq_Ny+rc7jEip5o&qZ9CI=Jx`dE>VTU=J1FA}9Emuid zU0+sm;3FZp6^P8j(7vm$_@~9+?p}m!`N>tmmw*l|z45{(_u2TU#R$r=`fbN&D>3)r zF@taPm{VKho~pVORZd)&o~O}lMTAOkg>;?EEk0zcAJq_4=(-%m8zhz!d~)fH@Ro$f zxf5oG7L{OC6QY~iX&+F3uFnH!|KAn>Xofg~5eqv$Jdx4dLi6$WDU>!y^GCATVj}H? z?JQBzIvoXJp~4R`a^r;xtm{h!VNAnr`9GWss!$w`IXlVfSN7n(BRUE*8b8?wa8ae? z!h{n(um(nD8F~z7*aDGsjPu05)+hh*$jaH47_iAt20$Bflm37?^5PXGMZc(HM&Ih9 zOWY$@c@LVKD7$O~_vT+a0cfL#n)kj}K)r;?uIXGS9iV0Fn1j@}c5F+fD`^Uq9x4`s z^AKu@Os}oLoHxseOIclCtFts`HrkL@jO4BaMnB+Ipc#y5I=4I5Go8mnza3sQK|eUj zw;_GR_N*G^Oy|Gfc+nXA`9+N5*mJ%2P%++#UIo5=4d#iO)-4thyO>+0v~fp~-xoz8 zcMG!>Xp!WgvY?ns>sr`0NbD8RDu5(VK}Uu@+;cmjs6Mn9&CiX#GqfUsPU9{wLAqul zInU$lGJ6bF1!nqX$G;7zyx_tlc8U2Xd}+phDzK=$eW3=2EtV3mg6`OoFLj`5SwhIr zeKXM8IxU{6-c^!7TOMo1wt6pL_*Qa_E`e?($PAq=$_*{TaZX2X7MCC#CkSk-5A)xK zU*KOl5B8=;FSk!K`Ez-k^2;Tl2mc4U$(LVtQ+dO4YQ_e#s)i8X)H zy>VxGJktugTLzP zF%a0{`|O_G=uduI|I9L*KcN8MpkGeS&h_Fi=JG>#b4`3U{Z8#GTBga`9p7aqO1vrL z@(Q=mNZxg@0IFn{sj$NtFnq)P@?SfUNpE~^L3WRq1zW%J-#ZRj8tTu|3rd-Ef@1$O zf(M?a&WCUdrMl&Dtr##qQ_jrKK(7UQZ%L3OC>9#>cdjJ8S|C06C#0JEcneZBe>#EsXRImMi)|)%b}U zIw~-KH$%C_!ap2*b=~+Bjn6g2@UIUQ&dZibugZqsO512g^(ewYJV2u2)~QRc*w65|ZTK?=R8$CkKZF z%!Ym(ySKgB+`aHyj8s*@>&Go26om$*CtNbmBQE)G8P*nYC3A{D94h0zAIYDVfDB%G zRO&LOcU$@oEyO7>5fkPNzpOlQ^}a_QTgkMG`VMX=T9}Fmg;m3GxX+ zC;y!7cdJoT6@!=Cv9fR&$=E;{Le6xkAr=_@pe?Iuzhj1j?yVH(&avsQ+ov{uGzl50 zdYgpOH`z4Zo^58_px*b(YG{^8E5fl)qc9}{PoKZequRM{gjw^@% zr?V1aFG{G(E8phmD0?ro<+8GD_O4%ylLpp{kJ%-k&ntEMV~+}fZc~Dj+|{}6H^V~d zi@Q}53LPeWT}J~X9G>yA+0a~=9Z^$SFq?szclh;w}RXPYtGbeMR>Zprv9r1gr zXdNkTMadFhzXi4ZoplRr{z*k%(%?!iufVk6#U_3W3|OqEA^r~XF%@zynL8~nt`nCs zDP+oA=Pu)~m{snK!SA&;($j}_bbWOnaz7pzWlyCoRQQ8`{sR3SV?{Mk4-ASvhBZ8~ zv-0?lPJ^N@wtDwcfeaO$d zaW1?yQCPihmfFuB{*(?ZxKC&)aGPOvlgf z%y;?tW zd|;|kQ`B?1hi~e=UT$k+irjR&NLXc)tE*aTVLW}3(y&0ktY7N#dys{S;k33|%izA8 z6p*BuCIHgE;>qu?50bRIo+AX{76LeFNm{d2G zr5)?xprx|OT*X0F8Hi&UX09fGUM5q503@D*Gj9i(Z>`~zdHaPeF?Gdjn7As7T8#nNbTMI%LQG6fedwQP3=fS?_!*W=bpeZ-wz6`sdaSbD;!{M zy+-;EPd&Y7*Zw073_t>vyb@!vHD|T-2Otgy&6#(XlUS)|ig?8Ja^iUn11!?|tOx#u zctp0n3^>6lu4Scps_W&nuAlmr;r4efd-KPs@I_1)=#su#a;ngDWV4u5{hCr4Acsp` zY<_i$n-OqnPeH(l-ixqDfq6b|R(p6ym$gNLi*LIJ+U}9=l;=F7HjD|!Pt=Vk!KSY8 zHm?l=Ha+%-O&5+o>uI468`FCbKRKT!In~_!)TIM7VgO8*kRZxo$&rBz|a zi#A^HEq+5>Uo!^jTKk`)F?bu>fR`4Orv;-pXu_zt`s=|W-g~zLi3phIrGObA`&qo- zHlwqC54b>#l0wL%7x(O(&wMwTAoTowYm?P_FNt<}?)(P0e9=_V3bfd(Z_pu-I0%8L z^eJfFI(%c_65?PC{w9F0D+KK!r2$p-0lYYz)ZuHPY-&u?{57Y1|I4te)~>*rJHQ_4 zOa2iW7ZQBjZ=giF_EZbP^Ae^%I{LjXh^VXVn_oA*xDDqn9#}&-#uQz8*1LuHwaEj9 zLs1%YSX?;acbSw%e&|N6b0>yw{#fAZBadc*z3`HaUZ$+zKJYH~Tfn8pX(*=k_G{^h z%=xsnq~?Zg(?rS1-;#se%r-c3!Zk~Y3Mzw7E#S@@?u)i=`eyXPxg7pNlD=pktA+pm zl-x7_Go-4kDW{4xZlqhn&TQ~6v!E1V9*e8_nrPnsq^?$^dNx2=wXe{A7(EQDtNQ%# zSTRu6d86a=DI9+FQ3-~gQ>#55<@N$&zr9txcba(|b9tBXLCXm4hpCtM>~u=LV+k%C z3yO1KZYLZ1vFl7dI7mAi(k-L8YZ{hs#xc=G0|s~m6FW(1T2#4w^w06C&lzuh_k$ie zKjl@#q~l-@nX3s|7k91j_VVyTTZ;=#1FBM>te{n-Mk7fV$T!z{S(LdQ=6J8E8tA%P z1$m)f5n};2TkJD086YYPWrbi%>Dmzr@!BKPs=T?kpm>4D(q_E7pW_hLXPS z@c@X)@7et0+DXaTEMSf}LPb|tYQ`C~Q~czCS9mZy<}M@Jxll%2N9mdE$b+OI3rd5$ zRAMFO`66PzuFF8tQuLXCEaGT1WryLXqLsvj)9)+~mP|U+0=9rGyy@`<$BkDr<9iB5 zNDZZq=z74@l&Y}jLLso_VK%4?XC7)m(7c+H^)ou9G!}VkWTL9#MqrC@uYp^Fbc_0|16* z_x;@<%M*GP-u!x;WL%8$9iV3va9Td5%w7yv&?`z!oV%$#@I1(=_QZvqvKXfL$iqX} zk{(!b$77wPF?;3HrFeIFKb6X5_wz~d^6div2YL0_vn%6S$ll7PP+%8s{)oT>|FEDa z0_*4v+>t`+xXvb<@gmIzqcdXbpFb?zV3@L#GX;wYx+5<&T7|fwuTE&V{S@pv=wt-o znpd{Am=Ltg4nFC@!Cwa{DyTPoKTmR6em6wom$u(ItB-M^1TKg0j7JCN8YvBtBN$^V z9)0gQ<5!jxKn{)LRsq!X`)50%*|{sa(o#TO!Cvsd$saE&CZ+5YgC8ikKI9JD_}O=Q zY8_RkIKYuMWttN4iSO7#Y56?xcy#$st`P8s0C>y%cN!=g7Z>{Sluu@g08i{0|8b0f z^#=0y+a$mBnl&Y#AUuz@Lw`WDJ`j^Cw3kdg9J#62BcACT`kQ_1@hq&}T*T+b z{ttk;`Wt8-s=D=UIfkaFXh!>VE;lpR8%@vU>DCKEF;**isoiBceBeGSA4E|3_XY<4 z?&o%_x@YNC_Y7(B5-|4NhyI0LxFlJ?{{woTQ+0-4j5+KO?Nj_2PKg(&?+xDkc7O!G z$nKxOjmH09)bm@G`mZnh24VgLsa-{c{=a{U&XutaKYsdpPfd&{#}c&WS(Bclaaq~E z)d=>OA72^zkaU9T7PS{i8JYdPNhJ&?IqM-|NM1?miHy+oK@VG;Wva7$UsS!?)kPBQ=^~$7=G%=5lS8 z7zy|o$O`XiYM19~-jBD>V#LTs>u}E0de$xvO-txxkdEr)wx_usu9znx@=@s_=7=G$ zWAFMuVnWX`hC?o+xn^}`Cqj&)2Pe$-KS%LQO!t@UpP8e#tQe?GV=y<%!l;<2=mA+!X zBne$GyX1Il*QBQGew!}Whb$wiF*xz=$uCY7eTc#5>G$4vf3|Tx#E=wz*aXrUz0mS_ z=*6}Er^|7W(E>?>5`CdX&ASJj&nx;wg@T@|+uFJ9=GzH1wzmV{Ax4D;=qo`$N`_V6 z2m|EUYyxf6r`H6Em3zdRc)+~B@ZZd&%2PhU`{QhZGffnMX5_V?O1XzuQ6$H4Uv z3OMAm$rpgnRQv`g`nFa{0EhDEw3?O_{&@S>>#eN|O5%NOLZ1@+HM9(#gOW(&q1u%J zLW;*7+fP}Hlwuj|@Tg@fbIYFLqYewYaTRCY2SyzaIPypzGaq`n(Mkes1f50hN2*Jw zRxnH&Ec|tC6&p_z8pD$goTN^t!>COwySO>fllI@C3PH&O4waCimgpFl9lvb>M!hxwpB4Y0CLsvj?Sn@uQ?mr8)J4am@2Mp@%PtlF`s%*V zVC5I;dUPTIC;ob|p3dZ9+uP8IUW9x$C7+JMxn!4liZIF}Ky@+P{}2<=i9sG5{ymp@ zK#L!+pZZ&N_}9Srfr9Uz<$r2c0iYeK#JX=i5GY5FHiA}pkKgc4*MjZ}#|wI11H^nn zd^WGt-s6rSH*FVjtax;4|Jlb+9E(U+9 zU?!^bK`J7qQNsdy?ja|yR;yFFixSm67jPbMU88f(0ks8tb7JKlwz3*}Qd5my<2%7u z-2$o-=+s#D9N8q=}CK;g>bW34TZSSgNK-+?{G8WLegBlgA$Cs$28I z3_H6+Xg*Va3jzcMD#!Sx)|LI+WdUn2V5`rj0x8@V{;8Ok z2ukTAyRTk0LH^N-FOcuH*)NdSMnaO zR(o*C?B8iM7my2E{D52rf8{XhxliXwRKTRcAR$N|H+t9$hkG3=jZ>!rF%Fzews{-d zN(%nm_W_Tl%i0~1>{Iz8kq}e}H)u^Gug?jSPJ*EF{B4Xkv&CLa$`@j#BNx_bBB-(! zDOXMw#NYGD%P`$g(c=^8S#xQ?N~uXnYG3mDBr*7N8LUPVJ91xF}{EL+KPW&9+2+pFPaYnB8Y8lyCMz;idoA0QZU|Ozej<= zYt3gcJE0E?CtUV-Dey}QX)peH*C+t*G+khSxh5wGYDkLA{=J5_8L6%UlVR|}-a+SF zw`7kzXFNXL&R9!&@Lu!NJ(MQ}H#c;$E7Ya0-<&t3nLnr2$%zUhEzh0NFAnC~%ZR2v zHs8^!P1GsOM&JmQQRHO^qrp2j8yMrlbU;>N;j1|pYtiuRa!%kA(H%>uMeKQ)M= z`_1KybFi=4^um1#V86>h*4nuj2I^Kgt*mqqee66Vf@)Gfo7&&d%}H`N${_8da^(|= zAD6sGcMbFq)H|H9#lbUPmzx065b#Lf^`vX`%;$#>M=z-gK%k5bbUgI&&~gUx;`x5G=urhr1fo zcBt%CSM?o+0^uC-KQN-jo1zz9w*Eopg*V-v%%e(Qv~qT!8y|8FMf~Tot{x6N^r$p+ z*fD6PmXYoQG-SUrr^)GVsTVj`V(=@W*(wk^cR#Z09zDO7Xn*blddjRU&j*`G==Cc? zc_<>eK2!gw2LpSokx+MlN3#-%pk6v)!}KR^${653m5OBHnU^mYFH?1eI% zkzxj0DXT&ti~=l}i+xPGe#0j5`J37)g|sP|FY+-@BOiHfR=ZgM>ARbl{*kq}&&X(H zQwmP=2!I6~QwmkWqh(OkRG@P7^-@EJlt!qCJFUsl>{ojuy;t@NXI~|g_a*yud>Dyx z=vCIrGOCJvO*F}-J6P-?4>ORq4JFJFBhE}`=i^EPr^^T?2UW)3<2SS7Xa z{1d`K%p?PAfqqTSJL<;AYLnTF;ke3&IrUkiv!PiHfxE|Wr?*FI_T2xmK%WZJgG1R))H&g0^vqKG1ML(}%k<=2{uA;t(`_ces|V@d0erO?QKmNR6^hJl`Te z#hsl-a*Bc=?^CkVvsj^X@{<$2QZZv&A7b6@V8@>u2g+S+<4muUI~8Xl;y)=b-u$_& zbKSAZxRXm=D9RIu<3$*HO={k4=z-jIq9p^pN+*@RJj@RKx*}pPdp%jwvy!mKIM-f` zQXfQeuN1z*46bfosCMZf*Ef2!_rOh9Vm$aYW{nlJw!t zX)v-S1`SKYIfFIulqa6$lYZgv+7-Q<oTLRFHhy#Da8B(rzfFLjr!Qq|!^v(&vg zDY$U7o%#CnzzsNV_t~T){Ux+evg=jL-lI*=jQq|e#81MX1ss1~pndzSSoBRSHDP#M zR4PgTqxB$6MZAqL5aQpmwdDL5?U;DR%`J!_kzSQ>0|lJ@y2Bmg-si;Nr9N()IQOBD zTMv^uB;`5_8~8EoFIV67axVTE+C#FrI-WOZ9(fC8pYWRkLbcAo6m}RV(T!WP>BE6Z z;zPO~!MQPKj-2KtkJ6oAX4`X^(}k0jQzqV(5MF)7!?FU;AD5!q%yx0omoTqCvOSj@ zRWm>0II$>b#y;4!x6>@dJB+iB+JZursFBi#q6v99_LvecO*Py;Quwq_DW>F7_19YH zGW{ z+PCfx9HmMDl9jfw)%MQr7kjoAJQn9*Qj0xYE?qizqr`3OK>FH;y&~>QONIK5p=Rn) z5Ki-rrHSj!u@9>*OLWF=aBsxHi)*tJ-f!L)u%5K0Q(MmAWvg947p6k`12bWIx$t3J zl%EGWak;=WdNEXmQEw|IkpDmPj4YDu!Gj7M>Al$=Dd`X{d_JicO`tJ za+g~RkIawaiw`URt$Gd44iI#c6Ey{LZbAJ2S*HQWQ%U|%ZPu}`CCZ}jy5<(=rhWYR zD;5+m!saP`i6)$$>dhJOaA~51*u!Xh1w+f~dI^)8x3P+M}e*nc3tPO*`~Luh%_d3dz4>qgeEO zlG6S*i-*(nxQr`#GQMp~NLT0rRQ|ROTIIzD3T9>bp@*ZXsL@jPQX{!7`h5hfO5_$} z4C8-*%)kWS0hFUBcGVHz%VZ#NlUxTlI0;K$c@1G;nkx`f>k>AM^mDpXigM|P?it=@ zYm6a#UHj#)_a6WRGJm&STPy(mruPS;)&NQ`jM!M6wQ~32bw`inH3ejpsN$8Cv<90Z zuI#L-X|tdlse3jIMue51`u}L}U;&vq0P6jOgC>Bg)1F|){RI+zZzqN06U#%2X>(HX zsJte3PM^EG4nVBuW9M#_f3~0iY^&!RqAnn~?OOmPsT_vNfH7;#q982*BUV zQ~Oz35yk=Wcpxy*o=Y0l>%m`J2WYsDJfGxR)`1-gTlaJ53J5X!^Sk>u!4TRcphZ1z zIDwm>F3`hBOvk*^J_k^=@Nb?(c>tS*Fxt|#P9&ZdEK2eP8Jc^Lp@WW`<*Gi#f6@Iw zjgpM!bEA;CuW-ZBzs2Cyf*`vBdNmmx3Jzw4(E7xAF2BVz1pAtG~udna5x>?bGXsRhOEru}9rNMo9tkJT>$rS}LRsc{C9`oH{;l-&KB z7H;xc&P{-|%6RXA(xq8Y9BCHt{?qa*@2D@Op!fYV!I!)KbOnJ8&JezK2F$AJ$n3AD zyS_nQ_-u7&0Ee<$pb^ zf)il2?4%}Yts@`3GDkq@&+43xHsJI$vZ*A_Q!WfK?~CAE9SrG0Zztz0Cv{fb0<}~> zu;)h~Vd}Lt^+N(PCajJQUf(@H3}eAfrBINP-O|< zN!N2rF12;(_UklUT6RD6Q!=Zdig^IZ%IqHna(k>rtlpT8OpZC%CXBnxEcO45cAA!h znhA<_ImjEV4S_pf>kv#V_-}UZX26zpPWu`8_WuE-iw~=Rm>sdw=|?Ur++J!pBi3nvRr@Bax%URnsI)#-V8 zuWCXNvw;%K;DaGfnvqyqz#4=*Ek$5j=XlOt$3)^c?Q}On(ACU|L*X+IKBLUK-1&zA za+Qv`k2!;M@f5nEwZRxLBwNjBqfucsVY?U|YxfJ68vg5YtmX_r5pg@Ht1;D!BWs?kikNw?>ryka-7l~aaM*?8P@K_` zk*jE__M`AR(<9Yyq@qAZ62%29)tu~1ti87Z z2QoV)S3arFJAHg6%FqUbBE0FYeEK`(W{TVXCE!u_! zVz~l&5w$lq4G^R*{WUSSjb*kUd6iB>s)4^D_SXj$_rXMm3!=TZ94g-XzUJ#>RJ^ur zglYX^XUtn;wGKDVr7Aw2B5~7dtJRvaRiPxtk*e_1d!D_zFw*Qnryj!9j;a|Ol3^y~ z-td%*rw5VY!Kg9TbGKZ^rP0a73Szlzs_GlHlLRP(-<*889t;J1QrQ2Xr8i>cEh~C1 ze;Uv9%5A}T`m13YbF&whpCIZ#5S8m5CXQ{v_(r=P-ddY8;!bD%vA}zoyFy{Qco2k*`ug6}x6kP<#3}5gd?jqgRTj-%TZ!ThVLwAs0s8PQNqp z*6j3#21Xgx2hZ46u~X_RtZ?&DVV{fNvZ_ZA!97kaZ=ojHl4@IIJx`;!U|=4x zJJ`FTI@K)Kj5z{ssI1!C-Gf;R!E;ezY4>5r((LGfqJtbrP8eX2?U%va z=<%qs6BGi_Q=~^~m_!Ba{bYL4UiM9P*ZR`~Gl;J*r{9!y-`$hlX=BQ8RC`R~3@%L% zysx3EWaieJl7|yNjwaJPXL48AA2d&ULCKK+pd!n;-4f0^JFC(N)Ks70v*uftra0vs z`a_o~S5Em^Pvas<+)(yVJ$1&ftC3S4*9G2~lQw^+4TjiP@4zzRSL#wh6OZxPOF>;g z;6|3-k&>0G0vV4)rg875{?nEvR)q+vW)-)%NH_+Wt zv$kO+l{d++p4&t~KnT2MA&_LIgu8a#le(Bv2D8I0$FRG`6?gDO-SR}O8g zq^WkZiF4x~@e*oKQx&bEK)o?WuX<-DX0w)VOX|9b187hXd$@00JHmJcdG?kw=)ds( z$;|{bV<*Qc!6;yXUC62j8do(FwC88vU*7Ck$D&M3SH_+8ZL9(*v=bDoDWOc148(e1KmpUt5kyA}YuEsN-DZ7Rm9%dhyKgV+P zFZt+kQ@zkkyN9$;WKFmfmxbX27=UbXuWvmi z&4YY=Lr{U_cs|3ygLW%##cXGZhsTzXG+Zlad6|FsF*uHBU})Q?0_G$M6&VQb*uNS} zHfUvuz3^I7YQD4d>UIFGfpz5f_4wBQN>$WdNNq7_<@lY|{ zAtt7YA=kbQ&c5wE)Mo*oRa-N1|7VTlI?_3Q@~$pl&$K8ThJ z)t1B$8E2XyfoDF8fn`<}rsmZR6L)vAtR4sJg-olw_P9y!T%Vh}GKh>qG|DQZUQtum z%3?SjV`SWF97eQFy$y93)M*J>GI$k>>ehEbAvZqGWEl}H-eY#iZU}32=xlH3m1Rr; zPO4v{jR@fj<~+|yj!H+XgB)mD{3pH_S`5fU$1fW833I8V^FVX znWNzXIv1%7!s0NG+1;P~!v8lF_FlsJ`ngZM{ymL^^i)$GP_U_d+vOn~@8QN-0+Rkhhh7z1@Ey%NkFz8jL2 zfeip>PhxIYifOn8^7C+g z1roGa$XJb`T#@@oxdUc35G1X*qW|S~pgZ`KuGR4?{(cUP(1Kvs^#{&Et8jGJ}7px96D_BWe4-pBi-dP$@< z=DM0Vi{?+}y-=n%-ZNvm_Xf~e0N$Qb0Pgo39D5bTzKB#uY9sTjV%_OAR8{3{z29|= zv7!4-7GF1394JmfJvZc!&7C%5*j4c>*kh@>HX-~T3K+IMFqr_7`M0ya2fWp+-q{mx zXt-IC_i$tImccH2s{RmD4|iEhtXaksn6?h`kpG)`AEVuFWr zfc~*iwdqezd|zdZ<)_n1S}M|I#kHpTM%((JFu1-#!WN`pF3E2dsLCJ;z8UYNsIP9t z4AFT-+$_cscg=QTV`nlX;>v(*wYwVim%XAj_CKeq_@io^kN z;Ni)%n29GZPjYp(-`~7m?h~`fTye{KdEwH1fNtc_o6GAzT@G0uML+oAet}R zCwe)cTjhD}@VjLKe+5&K&ie$r$j;?6rc0{PZ99&KWR4qmFzbGR&ENVBZ&wQP#e1L) zq+$va&4N|%XCeGxmKAyhcM-y!$n}Qsm&o^!Jq0=){trj@6EAmm4`Rxr0oUyg4L67L zlyzNXOhaQgs1&Aw$A>;->}Qi)|4z{WU67v=Kn7+Z^jdLN`tqxeLn<1^kIgg*uT;mn)l;=68f3r>E}|LsS?$E#Q5 z@)o+dzFzC-S1zX>Sen~6wge7V9wX*t4zE{uiVETev z<8m--kU@Trp*BT+C$m!+V^{`pl2SN<_bU}t5#?C=1(>?}IET%$u#?xTz z_xG&cr{ct;AQbrH{kI1L(88_u%5S8QE?td`M3Gz*@F-5lbZfFQWzS{gK<)sIJ57B? zm|5yU^#ci)77xQ2>#*6XxPCCTL%37TTF)(vwB4$r{X_H!m{<8N@qgK&9fN0r?tyI2 z`oE*!5ucfN5sI_EoZL<wqFHYXRYuv+s{u^KQ>pK$*dE| z20sq#h<;d?N7yIvIBdJ58UE6D;Buho7cG}uC%Od%=8ZN!Kse1G>WW2G|0mazKdDze ze(-ObN)m||u=W8i(~Q5wceK~v!&IQbPAF+-sf*sa2c~K~4PWYQyo+UdS?L|~KdI1l z(MtAdShXh-*62b?UzSSgAP|8DZ;;m`*NrYkx!ctNzxCFRAKzM_x=Cy0F1c+tYTS-R zLfi37Uy_%GspaY`r7K%8>fShRGqqgM0X0uOciEXyLn{bfFUNbr&+42_npPL%JhXEU zw5dnWCEY<8aA|0E`=?-KNr`c4XE|g=0p!%AAE&@F2Jf=5DDxembwPagAsp|6EW0vt zgP>InhOYuaVFjQ|O*jZH=-*$C27cF9BRx;qsPPbGc5|R7)fd4cCvRxByai}=W9 zYeI-Eu|pQ{P@dPDAfylIp**UOamKyl^+K|y^$thCxno@wI8|nEzuUeYwu`dpoc!Z% zW{c^GTa>vxT@H!=_>z(8)Kyp!i7@`x(Gt9Ecs{l)61vddg62{h&gjTjeOc4|0+(X} z$6(#Jm9DD$3%aWP9g1H|#WzpJBHm-9*75YkL~wwdhV^zpWYW0-OJ~m`NatZk-Ak8i z<+a|Cs-SxYu}+EdQVe^cshIk`ed$~(E}&{xHK9;sbE?&h%2}n2TGP(SrI;>LEl0AE zT&&9ZcJs}Mzs_RdTMJ6FcTNXO(5EuloBEt&sA+2qxdc?|lS)T!T)UtqsfssoW0GSLrmUJmo7u?1W4arZt zCYv6V(qA5hiur*+GI@`r$aoC?&erCm1Hxk8F?xT8p)E1^k-1jLN;Io!Vb2>#&a2aq z=V>zDB)f>xib;5CXvD%C3sfbngo!$`Yg1(9#`)O}Xm@>C39r>FaEl$jOM$1;+H3x8 z_RF;4sxVAG7?BdsCU*(WP!##@X_Wt#9Z__A{IU8rZ767IXHLOXOC{O6Y9dGe19X$4 z*;m3A?qKCNwG(zoIR34hNh=>XmEvEtZV4yIM$yCDa|^T&UteOC6>fY+*tt&5 zMtz@4$!DnPOvGlbEN7;?6t&30QB2l5RXxXJVf$^4dT4{=uByljxwL}sTpAak1Yb7q zZep9!0OtAi3wq$#&x0uO>*(PF=YU{~LJRjv2eN1GajIpBF6d>i3gswDSqR!=(*N4H zPnx!UE_?K$>o#ome^@BHJ`s!~CFrQH%_;yl#Va0v84WmJP8Ma+@2)-O!>n8Ta0T$; zXWZjo(2ES+R3>*!Pm`}&Ye~t{|FZ3$witsA)0GvDo+(37ctjX_JEsy!?;18o9UROZ zY(VUTm@`A>zbL~qgKydkX)-=;dSA$rEw*u_dlYF1E@&ZkDi7B%QbAmrd)y{h=ElmD$?t0o>bF$TpOGE@+AV=Ieb z7)-=4tj7!PX{)yrA8BtJ6k{(wb>A^hKVH~7rg?s@b>|{9CHPY1k$>+sXkGN@&}M@P zFDDCSfM(7a#Eqc4pxY}%j{6Qd9UL;&EceSaE3^8tKL&PkBbXxvWHPP|*$DJzio@nU zzxL}gV|(H1sKoMp-Z-VIi4ayMwY+|YcaC@b%gOZJ@&5PE!h(b1z%XUN5}Rx&e(w%a z`d5vCo~vyzA>WI3J{6M=QgRLy+_1bDdXf7U3&uXLv?!mEMHv+>_ z=4-07Br}$C#HHJFH4PN4SKmko@RfjI)cU|iCTqXqVzY#Lg8zW|;%rL;>flUvc;|Kh z`)6cF^GAjsh@8AWvsqfsrmHt{dd|;Uq9SfPn2})F2d1ZgD?$zwIaOQ0)qd4I9Cy~f zR9{y5nLoKJS`$)wzGK5Xgs^>X)9wQ>^X>JByVzUSM*A85|g^CkkXKmDB3-mnwo2@RCOSF

    ~MOoh$e{4uL7r`Yi-@1}EueL4cA`#rTS%$b8!Dbi+MJxMH zWb4kbaH=ap+DMH4Uh_Z6T%TdY0FjalW+wjm5$(C2Gkb)^>6a& z2_}B3L@9cb{RQ+iD7bsqaZ-I7{!b@fsP4+d5?f*WN)Mpw((~1PR$>{=c*{NsCU2*< zzyGpy{Tj4<4at(98z@vmU>>BS_wqs@pq%93VTl}Zs4-he-vb9)P&-DrVJr5FWcZR( zP4BSpc;E=2x#`Bvhmr%4{5!j8Dh?(#o%og7nKptKB2ATCIovt8Uh^)9O!?^8_6QY@ zV2$1B0FLv#^ofOm%0!|%uq%!JWC(- z>a-!r1A1;9e{c7_!l5sf#ne-0lWz@55(cy=EW6(`IKLG zxY0`B&$mJUn*+x05kBndD%JNPz*k}{=!63fj_t^?I44v8dCUOrg_M?%GI{awn-`aY zJY2L87BD79%oE^zZ;jcjvtLn3Nr_LaWA-|6={q%c<>U0_4ah1l6KhcWp8`(jhRe9J zeI_7wljepScF*6#PgXZCfq&& zERD5IxzCE9=gI1v-cLv0^ubX9vi5Y7A|*$qGK-I$07L5ox{{FPic5@Tx-dD}Es2Y% zG5)D3`}^_QI0prIpX@;46DRz)qZEz=E#;?m^7D$F3^<|LDH{=1JzXL2hPD*zMgBun z+XfijPXFXs-3KIxjn4NI(b5tz3KWSjTxObI|79L9_|V z%*Y6cdom@o*8fv^(qbckG+X|?Jg6QylKiZ}2}cE0w}}%z)%4-w%Q*kQZyj+v4+2Lp z@gKkD8`Dc<5^*=_g6Wv>sy`$#5(5scm~8NZU5Wzb`I*R1MMVH&L*Drx4*>&U4Vgk$ zy{Z5QC7E$MGXa%_p}#Z;J||A#1sn`pN}}6mo~$g=sC#&If0mP=^pRB}bty1Lhk>E+ zdcYtukSNbQbN(4j&39%cgcf6jVhz~Z_V6w@3?r$4Zu-FwEwb)!>k31at&W0R0?&7B z+9b$!0qkgHL!vyr(PY`e#&8~>uV!9jlALZHF<=>c0@n5G%i#C{mV_Q3l+eaTb+H5` zpa_dPfQE8E^(2$HbJM(d1_5*tUIJh`P+(3>0k#j3|4QB++1W|{_;pSjJ2qQ?SQ5HE zfQc24@%NVxRSc=eS)Ja)4lj;Xh<3B=bc|7Oln>wDS-I=?@WX{gfAs8ryZ_YRQ{myz z{by@$9XfF0I8WuSv)mWLGgxl3f7`P2*zVKZ$D?uzG->`C27WDu`HEdmi96iiSJS)u z-;bJgwKdLE+08DTbLh~l>Uy0JvM{(xx6b10ZVF2=_Ag*V?bk(BPhxrO|A4IFkPyh4xv2=M?Z*%{4y%ldgT@)*d zMbv4-Q$;U;a$!RvUI%{f0>vYEB95Yq8fY2+`_+f^UFlAo8#g1mNK?Tl#%W`p|NV!r z!cZ+y^(avxXoMgicI8ZU(Q#-c)lZv*e3C54xBRYNyLhU&6gyCbUtB!B(2=VsvHiQ? z29)WYXcdVZLb%;t=G)7(6eRjMbn$KGav|VY8)!+BTON6cESM^;Ubw4HAIJO3gO?Kv zfR@%YC8aDAM}yIeYs_gZf(Ff#j(NG95GO-H3n!d15MQ1ec6x64mG+*X*(E!t$)ACf8(X?KX)=c_UQAdWUE-t&RLgusMqoOu zoZ-@n=NYqJ8qYR9E^VUf8q!7YvI`1+y|{i>oXWmMt+lP=gbX|3@^~Pf&Z}JtI!y`4 zMLKubx--=?}0E+|8WVD{g34%csvZZ{1`95y;bG7gss+=$?jgZzWQ}d=GR9E zYrf@#`#arp8Z03-XK6OnQi0hdsh7-zP7-RM^S#u~o)9l}o3 z^V_E>XYk!JDYAlO59#$p){3+4r-;%jM`Ac3DlN=KN(eSB`)I}*DYR3|--G_OZ}<;} zHnL?K{`V=f^$yMb`{U`J#9D`GXr0cJ>O4AN|5|(SLoj9wyoi)24@RmHcKS}7f&{5s z2kz5L>1J~g7hadfsm#8AbvE7eHjApO3pXTFOkyl9zXB{B@h?J9d;dSy)%%B3(jBz5 zyP+T`luiAyf!*78qImcMoeYWd*2CNo7wVa{ZlsI;w;ORf@DM{m)|JJ+aqDr&)wL&k zdK%a*$FddQWSQ@&YD^RM{^Yna?I+-nCaInGsQuvhrY&>b z=wFfq5=EY-ObIF|^1II0YGz0Nz7#>PT5GBX|3r9~a%1eygJHO4<}OY|h_4HTWlg@X zT*7c{D|2iMVezapPg|Ca0^-E^*tj*UE9Zj6{|;$R*8;q>d|uPjeIDJaKjgb!(oL{i z>rA<-M2>Fg@ZOo?NyK7c5LQ+85n0I3{2 zx%O%Kv0K}4&KL#wXP|e-4%HUZ=kizd7P=Z)W4Qr7!M~rht+;9mvpXYlrgnZs6(Mgd z6Vt-w^uZHoXveod^;fK^SeO;nb`QOA znJ&C+*;v`_oA97!@#RT9#)=!z9)gGsfw9!Zf^<%a7(`E`_Ef>+S_hzJMPRY)RO(G{ z*h;y65Yqh$OyTEO1UyXrX(Jd>VJP87xPnm5+jEF*IO<}Q+ zmgJLOA6Zcqu|JFTjfw==??5(cwHpSX;{Ypa)+L^6_1E}~U)Q9gxj@JNb;i8`NM9gG zt-9o0P*!FxqUv83^ykN)*Aq(@KuwN}GlUMbwurF({D}|XI{RAzFa9EZT$OnUZ92h5 zMWJ8xP_sI4B}omh{-)O#;7St7PoK)giKfY>-F)+7Q?Ac^4PF$gY;w%j#k8!f>~l43 zzJAa}7bx$|=Q$@Bt1KNQ#D~R>yayI^WbPI2%mrQ~wl!rfLP3BS$Ac z-*X6d{b_r!*a$;)>$o8a>P5#Ta{!m783X{+C!4FjZf9yTpeZ&wRk)^_xP+j2e)^P4 zVYnABUR-we%~SQhQmE=1^b)3@rk)nk{_0;tzq+QTZgNA0GjPQqH8D>!FCJo&qGn-e z(!$ScRv&#v??}`(HlDe9|B9-Eybpm??LL99?(+5ZZRV}xek#!=I}FzsQ9&yc;**t? z&~Wdw?@o@973#MWAA8-eoIn>z+Y62lI@@=)m7}r+XgEWKI{jiO@x58p}9GGO6}{ z@1;bF55_ZmU*G&KQFu?D5bqaOVEUh6Dmh?C@bW%fHC_&_ZC{qrhFCT)pmZ+){1ah5 z@C3#T!e$q28w+7eu>@B5$KHZ^F$blgBsD;_IGVel{>nj6 zJGa8Kp6GO{^I2W34*29p`7j*)6c&EF_kWf9&n4t?Rh!kVi5_ zTaPhVL4>mZzGtoirD>!RETDupCnaKfzfv(6%+!tbj(&YCysN)~3zDIefg^!}Ycq%! z_yIlf_k#@l!FY|5n@s{1XR1df=hSb39_l#ZIxstcT9&;LXeyWq71NkEU*TEL+B?;` zDn$kO2>@5u{Yu_XA0BM3dL0HFLJVdBNN|oXl3TQyoALFP(4KxEoS2=={rVC(v)&`b z$z}cSSL+jU-3FK(Qs4+zR+F%GpJ=PU5Nr+;=hp?g74H;3Dwi5Gm33K7H&9qYWxH)Q zsRd@?^czuR&zJfi0z~P+p&2;UEYFaT=RwEU#(F0uL70bI66_siHAz?dV2!3%^3Rer zEJr%$&LIt9;u9&V1$AvmKWnewU>4%Mz_Rf+v|>eF0GV~)KTvwVfBgNjySwZXMZIe! zY#mb>{cvr_pG9~rmB1!9gGBD-Bm5rT+Ny|u`}Rr!a)lS45kDpuC-St3d+u3EVt4ng zYNuRh=K-tOodf;M@xL$#!@U;dCx~MO1qjpU|2VYqfAk7C8BdyJ+r&bD3C=llE~elt>u@9qkK9{ls-r)SkZxhF37RXdZZe?P zHl%X?kH3O2z>+5=qM4H!v6s)i9xZRBw3TFtNmFs1Z7*C5VA_=Ubkj|(9dmHkP<^%b z4r?qVsSek_%j0&8%Dmb)Sqtsh3EThx?)xtC?}jKnm%yg80J_0koKHCtHG2X6NVxxO zTN&D=FKrfgc^k}q3z)^P&ZZKZdU&FYpb5i%TGPG>S~J{Vs~Z(%QzruFTXBk3pt>V_3rRv#z~jQfnQz)Xin09 z(c&9l%z9V%!>jt!(cJ-cK%@LZBFht-Q()7V?1k!Yl4!1jyK0#w7-JFXKCoNEOYPgvN4Px-Of8P$a>VQa zy779_&*Ss#iwJXhEW8`oi0nW+`rF8;us1yh<%JUVR<10KGU-4|b#g)uZxUpLoQeq8 z;P=qhUK*e=c(?oOg@9j(;6xDSV^2VzZaC(dQw6*smR4>#hROcL!*2?1Wz^0#aIu3G z*zNWg>6ORPM$OjrUp+kuo`(N;x+nJ1FE+zhe@sCS8n`yYkAO-~v zMFYMiB(%G2^e-0V`vl?kSf^hI>SihFgS+j!Dud9eJGrj9iLni}J5 zqUrNWHNgAN#MIPg?ipX3jW0)Q|Ax8XAPfSGy5W<09=^UMs=;(`#29H|>im|q^NG-C zf~2={s0Gq&3*NjjZ)$3Sf*Z}zcn&`XT7F~mf{PF_b>B)=|B0;2aLSd1E9)n@`7?(TEL!eF5iT%uXjIWPj7ssjT%E1a(JbF8l3fM3WrzU6lL|ZgkcK zobBx*_3y&LWs+3dx>tQCc9oLoa^!=~Yu_S*JMG5ixXqYS@A(jhyY?bADN3&VfCU$X z{G_}p$b^L$Uc!a~$GvZ}!dinh{P^VqzJi!w-GpJL&8wFbhJ)cvjEx_gtebi@mT$S8 zJ{&{Y$uP%@7J?FV1vLBU#DMrQLX;AV?9Cx}VWwOXBKkSriL z6oxanIEl|cSEU79KJ-~PZU{B8OMGR%zVG4s@X>q)bwsyzvHJC6GPhX=zBrb)`0eQC zhrk_^hYv^L(^X+Q@d|d<5ZMWq^6C;nx((^OdJX_XXk9`zw7nm7C{g|C6Zou~rv6?- zB~!sHj=Y<$$m-d-Ax>w?4ruv151q`Sr%(7C1A0{kSng}R5)`fQH1)T^>;UF?!ETY8 zrt>)Spvkr@K`2(q$7Ml_1-%oT!E66AoD#t2I0Tbwh^&@jI3g#(*RxrN(wCKevHeB& z9|3;*#AbKb_^Ezob93BTL`~pfPtFYR+=d4y29PF4(i6bv8Ey zUL>bP)$O3(uU%`48(d+j&n|wxnk8k{{#W;-fc8(HJ{{}}+)~5(kH;Ak*L6a|)>f^G zI6NC7<6|bty*I|qQAABJl82BkUlLZZ-*&h7;$=xzREvS#vjFQMr7U5yaS$(^Pn)V@ zaSYomI(H%H`<52*vDtueeLN*J->6Chn3DubSixRfC5c6hIVS{pa+dV@a8|-g`;_wi zK8*!V^~hrHkAUx-t5V>LoCiQIWY(B;!Z z)>#98^}2tPx|nZhmsY+|b9dW{DOP~R_5ME|(RZRz7_N@@AsKwg!=!5e?CZ}47lB;s z*qjsvJ8Ox%?0fcRU3=MU{7toCV(PO+*6>9S?8-7@T$;?mqWt%UGwSF)@=}N5hh=n` z%mq}HzO+v$SDWqq%yF@RFQ&PtMh8wpiRcLuE<_;oZjl~~_#Gi91`M>CXfOS?5W<4q zvU!q9IUxcG#&TmFMFTYZ{JEE(mB8G{>Em@LIF{PRYwl9+GkJ3pz8@21F`rg!idO%saZWI;ofGi&zWl2@rNi z6lla87~Uu&4#erNwri{QA#B0&XPkl8+5b<(1GY#x=Rl&{V` z8ISOWOLIHj7UXyfJAjquYkaHnSGTf~(rnw5<`&0uo5!XCD1};gdYs1(hUcHJ((tjC z%u|nxb@b^%_?im#e#Z?x!ol_tj-d+9#az9-@(5REvM|z7RMf}VTC;1@D$)bjIhp(k z?}I2D4)dox7QAu87xT~AJ&0=Enf5R$wx?z|P71iePQMFAzg2xP0cOoiWxTU=-0OdR zh%u)<*#`t&Voov?QGwPEh67bJlp-CT*1d^=(Rb?+*Uh9UOChy)fkqQc5y!EvzJ-IU%h2@Wpvdz?I5!uQ4S7{ z6+5gpOU|Yn4sUOO?4+qu?a`8|Sqc_V(#3oOyhXj-dAny|Ow|6~=b$g65_P}$n`P>7{TAD~QB z$bRJDalcFZYi@2@P8l3wIMv4!QVt6ZDOL94Zds~=^4#n(VOz5mC>&;O@4^eV2swXa`8-~Jx1aA=WM zTD>%BpYLaY>4+Y+cb&I?5EZsHsa>SKK0HY)1-(amUx?{6ojQ;yYh?GJ{5W4DK{aR+j|Zlurlv0U_xASkfN52?!KSe|{d0W?>SZuc~rTivfPLt}~>0a$nmkboui9)2yL4IRC_(Fu|kz*b{tK z`|HE%ef~z=f^%|Gci?wMD4d895VVuq=&9c$N#B95CPrUyvzHiDq{B{g3(JvR66~<7V$Vqo#1k^)(L%_0?NC z8m(3=Z+|M;7RJR%Md3Meq6DOW9(S1~`SWVW3NX>5cCHhbqXo|3i2dNgr+=1^8@E%c zE$p+2bPQW89IoN7BpV~Zi|5FWh-mJ`8~oIr6GMH<-fh^tubp^Wp3rW>5iqnEHN`_s zSv(xWRGk0rwn0?e2YIVX&!5`=L$`_)A^Y0bw{1*T*}tura3Rz9kcj1M&E&-F1Gv(O zpBKb=0ZZ~%3r2;V%05!e(Amu%>G?lSyf1#$&On+pif7P6iOI~JdH$^NZ+WL3L;nw` COkFep literal 0 HcmV?d00001 diff --git "a/v2.x/img/system_management/\351\205\215\347\275\256\351\243\236\344\271\246\350\277\236\346\216\245\346\210\220\345\212\237.png" "b/v2.x/img/system_management/\351\205\215\347\275\256\351\243\236\344\271\246\350\277\236\346\216\245\346\210\220\345\212\237.png" new file mode 100644 index 0000000000000000000000000000000000000000..00d758cd5bd018eca59819de0276c6b78da075f4 GIT binary patch literal 95076 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%0Ax?2z%hY`4$8LsU%UMlFuEuOWJ3POU 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 z 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 hOi;1w%;_Nnj>z=UxwkEzG{$Bx zXcv>pTF`PWoT@vjz*n4*P}q{=J(Xk5b6m1zx+H06gEvRoyRY{Fghec|Z=949GF6nH za@oEqyjhz*Z)b@06lOo#UwVQgSsdlskS23Fe${uRwyjMRL_=MCYr}i5QA5A9btcrr zuB>brh~{ukxY`5_;Sp4@2U*eXD*;mHY+~|a7<*B=KOSN)<8gWl0)Zq=W4GEqZYl-? z?1a*|Ib_#-UU)(?@AP(vm$Ac00zMdP<~^%%`e|5r--Ny6q$81$=G3Bb0Nn55=QHj< zTK5(&zK3Khghzjg_)(VO_8vfT+;{4!));Yf znQ|Ey$MG+QhKj*WMafu4lgY-&uN?$Ha-VzK*;#d2LzNH9y0}b7Xw$oQ8DdXt25zJS zD4ko|C>?~TCoMj|V};DCVxGoVyBd$f!&^qQku2($lPAvVCdNSnN0Su-<=`&2gA(4n zNg5|`>L#bQD;){67By~bENRL&*srCq%|*8Rw)}Ath$K?ECHs1+bn4NV41IwehNwLY zDCNtqqbKUEWJ>v#SXnF$o-L6n=zK964j?xFcHE_00a(g+8~R)DlZAcge5Hbf$(A+k zg+|Id=dT68V0WAw?`Xh7Qe;pqXSL}oN&xD&R9K(8GcWulP6v@)6)nV4wraAdeM`Wj zPU}jeS$tV9z*EjT0#ItX&j52y;H}8DfNze@l&+#GH-gSK$9yFIo~n}r%Dn_%n$#3G z=Q#Ws9q5pztg`-5pKLZU&g)0AEpT^9_4~odwxu5y-os>DM)^QonR}a$=aE8nN#-cY zo#4JmAxvx2r#{$HjRD@#F>V>u8`qqW31G@mePokfkgtreokPvfxG+ga&1LfzYn}!I zs5?#Dj8sS^yzUL#wi}WSl=N&V8VUO5W(X19=1%j<>(7*%6({A_2+PVUb_j?6AuT5Q z{6BD}Jx2S&){g3VBvFgA0OH2AuSQF2KKEL3{0ZoMJjTtXikL98u4Wi4Yd>ck7XHrh z%_RvQmi@!WW6EAO^ST-}zN})dYFj~Rj#ZK$OWc)as|F&qA6Mi)VF*khyu3ck|3pTw zOEtHarXcg>^fu-rfIxpgR2UX!W|s_mB*y}Qf&$oCSanDoZEBYaHs7X(51>eQ zO+=msppL-k>oc5ioLn^|RtE3%<0*hS{QGftYxVnVMZTzL08nG;?$+xc9DSF`t=HxX zzG6}$8HhSB?rl!0xHdPy3wAV83GZS693)5$n?#Yfz!p;Elf+Nny<%D@nh=x3p-uU2+%XY( z|27bnC&ss?Y5Un{ zo`&7Qr1SO*WT^W7lN8b=dH6cG+?%L9Z=xQ22kv2v!L#5EV@v+<2Ujnji(Z zlI@YQecZ927Fnew5Xyb%~G{T*UaUCOkC{` z>zA%PbDx9WaswYB^!xdl1h1#%9~A*SpzD<%hAc=g+OZRxLq-Vx@En`uLAhvUU@(sU zFuZril2Q{UFE;;iri$xn#RN%zyb}@l#Nme_R`HmH>aOJ3|Ith?t7G7JHc(f>SMARW zy82^&E$Ay)Q~RUd1e3mY+M9?pRIt*0z(ooF)Kn|_S2OG4K;=C@Z2SlEartP)?R)!E zq+^MRsmmcuKkolam(v2K<16r;KTX-)v0r|;Z57x)z)jwD--&v*{fCOjcA)j!kuJaU ziOipJtlDn<+tJCl?N`!yfB2G4%Rl|k%)xE%(s|&A(V7943V#10lW)YfkC}P!!>^E! z{ppL)YTN$*XBj>D(<67DMy*8Yj~^;61btb1wcv zo4@u<%+AAqzm0d)9Vz^LGE~Cu?Zw(DluTt}R?O^e*4wBq{yP!eGvf4H07hs z3mm5*qJ3?j%tp1_Z%uC~1X#!n>-M&lJV##+I&Fc?A##@_;SOGnV(IBA-60(?F_kSx zCf7Rq6L}?oNN#My4Ei^*QZMMs%E&nBrtnKUX|(ȉLcrrIpWDDprBD}d{Kk`z;_ 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 TY;`bm+SBT1Pv)vw{rX82!epr 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%0DusV5({3srVH4?vzO5BTt_`R(P2v5VV$( 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 I7yGmS0TOpD;Q#;t literal 0 HcmV?d00001 diff --git "a/v2.x/img/system_management/\351\243\236\344\271\246\351\205\215\347\275\256\345\233\236\350\260\203\345\234\260\345\235\200.png" "b/v2.x/img/system_management/\351\243\236\344\271\246\351\205\215\347\275\256\345\233\236\350\260\203\345\234\260\345\235\200.png" new file mode 100644 index 0000000000000000000000000000000000000000..64bb43cd2500ea59d36e3fec90fde5368ec4a7b8 GIT binary patch literal 164295 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 BbYlPj literal 0 HcmV?d00001 diff --git "a/v2.x/img/system_management/\351\243\236\344\271\246\351\205\215\347\275\256\345\237\237\345\220\215\345\234\260\345\235\200.png" "b/v2.x/img/system_management/\351\243\236\344\271\246\351\205\215\347\275\256\345\237\237\345\220\215\345\234\260\345\235\200.png" new file mode 100644 index 0000000000000000000000000000000000000000..887b1ee8a6e9a358f474fc65d4ffd8f37f7981b1 GIT binary patch literal 133238 zcmZ^~2UJt*5;m;IBMOKd1x31uH0hvph=77f7nBYnU3v{QQ2|kbfFQjDq)QW!UZS+n zL+=og5^4g35JK7)&%NJT_y5lM-?g$>dxy-PdH2konP;B;-pD|kiGhRR%$YMxI*%Sa zIdg`A^~{++PcPEZ&NK>fy3+of^?#zRai(g7Ym0X9r;ED2`k6B|35+EB^R#1npGOw{ zXU<#=`29J%?93Z{<_xt+=YhIuud%XX8aHnjCMHJRzuArt^7l?!=%5lt+Wbd` zvVj{z&3oDY7;Ly2LJ%0LjH-pIbWBu5om_bEkJT;bn)L&)0={%&c$NzI$JY-YT&fTJ zf?Q1T48Fm1k?gu3(F>NN#2!$4PO9Jib5$By$(EejJMcp_7!NJTYywadESN^eTuDQ9dhm(s9IF&v3Oab>VX}twK--JgCXiD8a(!Mnr zdCae&$_L<>j6G0?Gb{2qkr1zVwf?EHhbA4T60Cfp*T6~{aQ}$E>$$c06Z?GhVgh{u zpS{$rqjMU78!Gb$FfPEa6XR9*Rg%K3f2chrR#4)&L^D0uYz z=3J)+Y{%W0lsF2mui^QWnqYbV^h$p2tK7KU?A!|5I70=Vof93np&}3J#BJ5(uYVYN zWg!owU80}!B_gLGXnv7E-(pPDec zeW6Rk^E5N!Tc@kuX2Ro>v)U2$H67I!<=U!`D*5W;CRs+4$AXOvpGfusxnZc22sp12 zrSBkMHGx0(^*{Y=mLdMw@9#Zq2n6^{P8(#kdMm&5DE*i(7ozkfzc+e*n_!=RnXa^2 zW4c&U$qH4e26K<{?kbUT}E@QUGly*r*;JDxG{NP~$na38>3vu~~q z{-y!AJmn!)3d3J%wFiblPv(yT7_VnDl;t%cYK?;o9o=RBy{ohiRxo@MDF6MPGSXik=Oze+A=1&Ox*Ip7)38u5c-yVJIiE7bY zI`D;9Dr_rf;@XFi7A*l=+}aSXxt9>$f4M+r;`a9T636uhtnK>>Zx*$FW4p)-Z;olR zo7x2$5#*YNS4=!bQa4z(>2UYpAiYxMN$#Dqo5~r6IZA=s4^vW7M28Ok_@~_avVNPR z`8e#xaBG82YY@_JQvMQn%-HUAMLZI$sHJ_!!^gC=i*s8lMoA{WH|o^ZDPp(=qE|}W zDDxOy()4(du6K1=S(z04;y;C-5x@U?!(=U2fO-?a&jq~K=(O)lULOVHeASKf0ZRFo z{ZFbP94wTQRX7(-ZQ3QKwghv^k;)NQmx8H?#|@dbAdnabKf_*aCMT- z=)(0QyNC*7`#X09C!@(`+|<@pV+d~`>C-AbgDZTfykUUz4x@47~q?>LYeC1*dFADYem*EbZdnZvB)HNXlL{<1(C@;mUIO7g?{a zK3{4HRQ>H?;@aE_`&h_4C8GO46EbGTD|D4B$H*?Q;^F7Zz|t5|7Mx6`b&5Bgrm)|Rr$R(V+Pn}srQ{}K_jF!7gy0J2P;jMl8Ls^ zWOSfwSArsF-k7GC)9=8_i1-)7?$g%=?o40Vt1V#N&iVjApFkm0bZKQCk~MG_O}6y;+^1p3cB>^EGc~lK(}{{r9r=ol)2YnkO)6N9@s}oHtM} ze6NO*#}Zh4*{PI~Sgou!cJQf4H*MLzf%#t~IDMb4w7O7_wGAUV!4V2CIfFkHQ0G@? z^Nd`!cOW?K{?jVQ2$$LpWrCGeg9rQnpODw*E^IW?%u$92De_=~<5pw1arJQO_K6xC z959pz*nE&v#<;&Y#q_S_9Em28|vd zxu|o}Lc){pl}y;iqXPwO2##>fQ&ZD6w|_V5eqbOD9ke$efjrpx?I+{E)B0Na4b~2% z@oxb|k_y{e9pIDw70-XyL+~5ToC^@DXXbZ9MNqe~mAWS#wdVlJCA-N?^FyBXQpTOf zb^)ZftIWee{~veB%o(<7=uavVU0YYgI?Y#@(Gq=4-!{gPyi@@zID5vDKUPj6sboV< zV8)>7*$DdyCjpdz>632-J?+4q=p3%vB2%fHhwjZGhfigEK#~@x+Gs(fGV(7ini-Ow;OqSw5@;hp&GdecH-- zCXZ|GX|pamClnUGzEVA)lMw#2W1}}psDFl+_#wQ@ShLfFm!`==ca-g;69M_#r2N&b zC73V(eejT=gOKbq42w|D&5lUht(FpP zWFha@GAHrB9(g~xpn%IQ`}?~n+S#H6O2=`5hSr@wU->yKjvpNE3Bh*WMlF{{aa_$b zrf&uHFwsXATm@nJS(c3HBl%X?RbiWNqX0XBZ%Ca7Y3%?>s`5T;y$9Hv-u{VaZ@!*b z<93#ux9w%au18|9c_V>vG<6g5K@eTmn7q{J?oKxzaeFA|WZT{pI0tRaF|kc&dN#b-hdh zuu>1yrj@&8D_U(>ne55AGn{m0G_@(TvtGJd{#Z-k$j+Nf{?3Zwn}Vyyv_q9aCVBwo zZ4_)PtSx&26HJJpuCC|1rDe9KUY@PEMSx9sX;1Lthq`ZUSeNU=ROS zy*yVjix!Qby=8Y0&3j(?se{4pMy0Sp-8Z2h2cF_;LmuZ;%Iy6TCyLBnW5cO>&aIeMD1M zTJ}ypHPnGS#Yj`b+q4sbihF#r0D=!)xV#WgRheb-y%fZiaKGG|KDI$=dtFNUvjB zzff>BH-kMzit}pj1d=mlAAB0dw?btiRb+;;or{Q6@R|N%#b1w zbGfeu)8P?Mhb1i4SGyNp{$K4M-q-w-b}Vdogb%I(r%7g*2}PpSZskZS-NKWn4m!L1 zkmqC8m$A&c2|Hibx5C^Vr@QVQ4j{{&MpQ?jz?lJE;B?=&g)ffVo?%XiUDYQra^4)r znQwxs+CAtrIl}d37}JwyIKv9AhW_nelYiSm=`_~99oMm}pmb-2cQJim)=TfC zS$>hFm7zjkLb{0^K~hehe? zD-H2DnQ!j#0j(=v17Mv8124DoZCCVKN$-xDnk-N40v>2lDlK~zz~JL;j*JNHc(LF- z1KZX{OWWr1C(cV9x*Lm)7GLZv`2!ivbRr%W%_*Jvq}+N3*pCkjhljQM&g_;(t;}$O zMX;f(o260jtL1|x|K5uW+5)6HdV0wlha$~BnT+72GI8dJ8u6s8abu1fqXWzw1*tOOZr}_O8pZ_7cXN87^A~TkvWf)?+fUvdVf-;BbGMLcTVR zX~P<9+(0OzxMc4Q(%K{$tRa9LAbT&DiBrxTZ&w-`G48XTVm4r`%`Jdm^k=rGJpca;|iPEV7jim<1eQv8N%Vq3_qv%wx2^;ArbLyK}5cc zFpOFVuFCW9kbB2*?>n#%y)N)X-W}2h*>jfcaYD`W%N%cr*RC*y#pHWrH`}EKBJacm z$#sOB-4F3Zt0)q)sVOEftmf7-R)l6_ZhP2z(qL6mGVFl6`RK5`l3Tx#r+o>Bpe!}Z zU~s?Mu9IJH;WKD=t|zR$=5Ig71TsP%pY#lsMp1U+!E+0-^s@iCn+R#X{Ep>W?v&A} zC{#wGk+wkF^FCi%%$mVrOvFNK6;iTHIHhu<^n-S50|)CJ?d_d4p&d5Mt{=CR_ks}~ z`73d}05z7Lq5~*p3p$h;&o3fu+Ckp)cG)mYm-?YMTTJ>p2tfFe=%LYpX73&vLHGw}4O< zUmKYH4M2IY)$pBE(KON0cMI#_R%70x2wwnsm`ow{+f^UM@6AOz+mA&G4frxk$N|*H zEJhzfMCUN(ul{^|3j1&6nU{XoDay#iM3f({mzd=ZGnDA~tl2wQy(f$ZhGcSmJa|n=ggR9HzS9^5CVH)^!t7Mq#qqtQ=pNkrnoj^hXB$b19rA!t$l%0M( zJY~GeaUuBQk}q3)a&fDSvz_3}dFh6Tt_IkYq8vVbVX(W>+0tQln=7sNnSOoy^oRG< z&J`zqhaozoE>>(k1hnW9x8Kv#dVQ<9uCZ-7>z55c{*A{tCU2b2KSEdLP!CUd9N(K< zd88&MqEF%Gq~t7^-rb$^%ysxrAMk4YbJ?w^_AtB-DuxGmu2ZyXN0?b{-bO1SOe+-6 zd5c?l31i?5#tqA?770RlKJ)1g7#}Tej#^Y1x8!FFWY2Xx>FtS@r_a~#I2mDV?|n?2 z_0%5wT2rRYdeo31$I1Xr&JDXgP!|nKmGWto)yKG#a0d`k3A!Pmr))P}v|urVSC`E* zd`72W{2s~Qv$P+|hOfKQ@~ky`2P4kLR_6t5U}>Q^w;q!(4DAY0vU}T|s@k1wd+*|} zbLe#9b!g#$4l`)HLI^JkfA%B-wYHSHS7$?EV;0M1c;|Kf7 zMT-#8F;1I3F;0u?Q-`~OQ!@A!4hyx?XVdzXX-su5o!0l2La^^&TKEw8EP}CW7QusZ z@cP>Qk;Zjg7+e2qo$AL+aco7P-rzDQHJcV5%T`ZCBZxdngObWOO>&ig8CbQpJo9Sy zgDwV5*>0@`Bc{R%u~V(&Fi5YYfylO$f(7Ms2#SUh2-GB-9GK31@2wADgp*`Iz zWhklQGFz#`ht}}n!_LYq$5YQN$MtU2+KuQ48PqY;;VCz#qkRdk_GAQCdo&VQ`>U$H z_7GiPi(2pe-1o#D1dH%HYQAt=p?K+7gy>&fv@v{cq=o2YT}O^INl^)^;_;tlEa8&F zV!y8DSG~|_Wd`CQW6h(|9u8!Y@_K37rmM)}P%6Rn_? zyyx)g99yZiUD(en+j_wtlj$MRXv;7k^k!P7yM>?xR+%Gd+!-SQ+ z+PQjCaj*Nx*b<-rnc+Hx0WTm%oVnp%bZ_2^v6GIGx{3x z`Qzf~yllDW8&MS19@mfsV80&=Uop2uwT{N%cf|*q9ob(cQPz4Y z&WzopR|pwNLI+$`D3|O~eRRCV3-0?Vr+@V9IahkHT~<`os3@ZD*TXMA{O`^HHiDB8 z0+hLiE1>H~T%Y0W{nbqCz>^98WO%jM)EN_MI1U*!NF$k;=U>7w%ayz5=m2>_>4-qT*L5REM8I9x$^h7%d1Da-M;Ki{qXJ}IJ;(O zsBEM=EY9Gzk<@iN%EM>Xww?`{gYojq=@#DKU!8S+c|Bf`On^~v)x(q4pwkJcb80M> z4R#WJgh3*eB)1(BRGk~Lov0M@A*~QxB7J&z4ghYiwCbY1Q1x0=uxL}D@b=-ZjfPtP zh_C|@)}6hsbEil(L94;!9dwH)9bmxyYc!pPv~MJjw$u$*$Ga?(%mN&2g6jz~kLkl6 zpprMNhh#qPtb59<-K^;`Uj8O16EM^acU4wfsNYX0vp;a~)#+$79*+XIh!e>WxJTnF zMDpI;Bh6K{#vXX9T_~DKUS1)Va7l1DHeP2{_$Z^#umh9ecZ=XZTZ^n=XCSqgA)X!+ zzIoQ=ulP*wV^cR;9Q!F~VN%$Ck=PH~CJ!ze9&Ms}quggu6bI+TmKLS0IhRChzx8;1 z?CGlOyBCa}6>?%)ehy!-{XM4Bhxz1x z9o(uJYJPyR&yCnVJ~hk~9gLL!(QW1nPsCbB-D>Cy{Xt%U2p~JeK6x44Xl9dWaMNME zeua)6z}bS_^qohP&sCSKW2b-ZE(q(URwat?<1)AfCB8C6f}nP7NDJv8Si#6eGl%fK+w9Volz3B>(|)0 z`pO5Lz}n#8N-=h0Q7n-swS>}Q7HVh2r%8Fnw<-a+Eea1UI9F^>%)S$X$pvyD6M>iv zan4qQl=-sNBGCMERCi0P7>8S`-bRK?xl`ZQt|v>c@}5O@S~%R%;AgF}4S19r=8?uV zYrNVU9Sg@K$9qTFDYkm*6t&6wCQK?~r#$^H_r29=U4k`Uvc1Tr%wU&kd{)2k#^o)& z=QEPw9qfx^q+iGGFCN$c;=R(-nNIy0Gf-Td@i5FdN6x4=GUy9GQ*Zt`NIUsh84b3B z*EsJf0hPsvlZF}pjzKA6s6#wGRbdV8NBIivvwI8WV^g36cC*Xia(oY`r_cNK_f4!P z8JFl1$4UmB96-0t6msP^W6`BiIl1KaOWD9Q59O~0N-&?QOPRo!-O5D?tK-U~)?8w< ziu8^K5Xo#vZC{jMFQNUw>(OTL@TSAsyfnNI=Kzo>2afosiPG&^IvAO6g{#59vDk>( zUcE=}Axf^X7a~E9D*=Rc7L)a40Q*f|iY?S!vctV)?&Ye&@vOtrnLS<#4Z(m`x1wA0 zJ{8lz>Zu%_hk&TlFUU>dFgQ2R+Ia~(qAV$EqrHJG0b{d}pBk4#MPsrV6q#YQgoGWnB7>#>Z`~1h7QJg94Al|!gC_`2jel37>a&Y*A z86;J=+t`7toHcvaDDg+lt9u+Gckk2Fonev(fj5FVZ{TPNcUc-0Yt6vO_d&nFfsLj3 zL1b%py1+HJ>H^gUdIvkf&^X1J&eO+ZhkS(P`OzK6kPaM=OO;LL4tIC>brVTm>@Mq# z`vMkU@OAsdl$b(SDL306NK~{Mi<>a1S>)+syt3S5QcW-_F(6w%0`|n3O<*4oAUuO{ z`x{Vr)u89VA2nA!;;+pej*dP76EFJhKQFQd58C+cgr%ZOXzaAF`kWl+b~vKhP-MaEJvCNu#tLZjj#WM2#$5tt+~m>W52M zXh)@@I>Fc5jJfs}_AepR){~1B041>0VO|-5#ganv@+&jbCK!87Xyq;re|cE>!UAX! z`yrxuG9BwKTmx-Rg+~OvP_t8nn*r}HXOZKMCf&yo7DA-sX{{tw>rGTx-Ye9tE%w0o z3#sJvUE~21*kJH=>LmvEFWI8hfSfk@4uk7VWhp#q&mJdW@q<5OnfuZQ?>MT@bn><_ zIRFRV5>bOK7o7WxW1uOT{93x?SaKm~yWrLY2AI3IYsInZ>S1()E8mA`>0%}Cl~(V~ zW~sF0hz5sW4&2JSP!`^eD5F{*^eXTEo0Z2$$*yxJ`<|dUdChoKN?a@N3g%(;&w9w-2 zjnFHGW)>_(?uhj4AxrZ-;0GK^z{1MmCdX)JA=I2g#qkxCTiGN_32kqn{Y#n zWVNJwCRL=T1VG->dsSS`drYlTJM80kE;}Oa#{h;Z03nBtvQHgpU|Gf%lDLc?nj~3= z?bXu)iJ8Zv*jePZ@M4{dp|b@yPVxif`X<6GuuuyslpB0YcIo>4D(mJa6athwms4Gx zkgKN389x6;gWGsCL2(L1K5d?eII<3$d;|t*l4&86$O34PAQ|Pw226l|%2R{w(wkR4 zaB8l-XC4=GC{omrVhQ}#;F@1k6U$bA*LERLA4na>X86Z#%<>ZtaK~)6^5NpY8mufG zHK26qVZ*rkUt=gfBEfDA^maHauuHXiHW_+cTnfrG2y2@a0K-q4Ap06 z&BVZZ)5CTxD)1_Tg`)D03CePDWOEs!AxT1vb*~c}3c90=e6N^D#SOeK zd~-5$*P=a$P-VQT^RE4{*V2Ah`q|ZJHL8VQWap+Y-H7P1ipS2qt3W%Ek*)79GdQ@| zzaoM&ngY_IVD#=z#PKqjrUZ*({3G^z?r$$m!%Bh$7hQxrja+9bnfQn?m+9-WMF(pU z5**yDnLEkP1FX=}7HUxRQMUWSC4>(BSdzN^l-$R7#B~3H!^@%_C+)TV*gJ((JAB{f zF>$Sj6R)HHuw~{_Oex#ke)rY6qtV#fvcX_QnHOJ86SgIAk}5Z4a6BJBkmRdGw1pSj z4&Sxm{1oCQjTw-kUa(yY;DhUzX9ch=o@w$I(4QVIHRw!@?3REKSr?p$y5hKJJzBIb zook5w-q+_QacCFi)FDdp=k^T-25e8%W#!9*O`v5(Im6M}mS)_X=+bX&a58cK5)BN7 z9xJJX7BKFItrVd_>Lmq>-nKE_FA%Oz>sEGYxUgpfBOitj2fpYWHm;QPo!5ljV!KTI zKyn*BfIw4Y-$wkfaE_jwp6V+sT5??EWPXg9OB-}Ahxg|sgKz4}b!?)EQ%}3rTWX*q zagS-!D~LRVSh~2Ya8l2>xc))Cb()Ly3$l5Puq=_cRT>C7m;Ei&Kvp~p=$?1B&W=v+81p_?;4S!Fu zI0jI$fF%c})0%_`Fr`>y7#@wF}m{|+;0b^GVt1-+J+`Sctd z*hKZO{UM-b_|}y8_?^unt{uy4!-!WDCL0NCQF_3jB(>^gRs6=B8de8+PL6>&zRjp~ z-yQjPe1%C4-(!qGdrWYVFro`Ccek*~Cv&wbyzd85A%ZU)`oxaIsunykT-wKri|Y(z zwL3BbWNyw|p<)}T&AR7B`-o;HjAaP%5@!?WHFAvUl>5JssDLIdZw*#8Tc9zAQ3Mfg z-PDeCx@bwgET>{t2;00urq2U#1D(+8i@n$Lx_fO?(}!&2guaN}Ev<#yQ4U;2x|YB# zXL>=_XW#rV$hWt8V(QZ1&NOG;=06PfU}B6o%x!!To09GRvnmVIae;!C@SZjVSF66j zPdUy)Mbh3>d29aqzNxf~$lu|8IPgJx>;3!Om`7HQ1Y<59eMBe z?!9Nd!?wS|OT?2z_+y$;v*4iP=M7Cr#dC$IzBETjM?)}LS0+5K`MO9hJ*GJ}oN~x* zxAZcj;;aMJOn@M85(>^GP~Tx%#l?$0s9q=a!P+tq2) z1vTh4U54^P?t`DQF){So7@lfPoXSICKUjMb`K|&8% zQ9o`o1{^P4o1oX1ek;n9yX<)@sL)$y3T{{nHWdMLQLu>xPj4Q7}(>75%3^yuxgt|~jbZ<1RCjEp;1MqPkiv{9U10TwVxDQ@xR-=u5^*LD7$i`cnCnrY} z{|Qqb*3+PzO%ndmzzhubq*?y1%!(u$w9IjNp7d)@vuN9BBI4|hXh6=+wvxx}*CFAs z?RLBpERo?htt4#nv3EY5bAfsmzooIQ`rGK{E;wy3r_>9;l304@=gs{IDj&ibDfDH@U8|G4BNIcR#!@{iCqu81!m95mni(qqK2?F!z$$uz{0aEusy zxrq{?gbzmkY#(Z;lZKWTejOTeFU`laIbURmM5Uv1vt0UXE1wh>b~tbn^!{X`8hB*p zNyU;|f)P42#QHyp@q>=TttgvTe3Sjp(i)cGPXVS}6#+AxDjsnePi_hdbEFAPexQq% zdlKzL2b{~^yLQ9gVl~4_b5YtvE~XddabiY{oR)R_rB@cH3x^|M{BTg^dV>t&rUSK+V4TA zosD=`)vV}h^(>#HZL3MpyZkgu zugp(1=XAZDx;IYEkI2uHQqahcXYw}fmu>V&bz(VgF1SWFS5x@J7UmGS>s4dMO}wjV z8t8~UZGT&|jV$>8d0P^Pb{oyDW5LZ*CIr!%{flS36CwA$Val6Y7 z;D`Gku3`G}_`25i8j;c_otvR8l!`Rx)&+MR&=NlDkVTfpf(XsI3EQlcUO}w`$*?=v zX@j(u7R!wG&{}H+lBvu5flQFEe2C|8-C@jGXbLtaT)nsL;2rVhD)%+c_0;zzgAcpZ zL}i!RZ!;SbBRv*dHN1jP-D^XTk2C5*3)|Xp*VvnXUf&{-m=_~E8>tw2=(2f+6wSug;lE)U0a^Wm24ORsz?6H>O#ml9n4PDm5=Wpk&<3n3Yon~~1}zG>_>1YEkBAnBx# z8E-VNJecKqjdgl0WckB8D(POghFY~nCzQTCAHk|_Z}|q%vKQ8Kyp(nlkTZYS%3PKZcuZE7d+>ZAIs)+RzLEJTFlYt&U&iX_;ax$E(X;dt z&4*fB%05jQNszq-V2gTw$7vJa$&V!QNxzZ|pW8P+Hh~)-h&6aNnSW0E*-*!NBV+DG z=J#(#msl7|-eB)Ol9|BvDhlTMBcxC8e|+8RdZ0i3Zuo2XxH&uO1{3J;N|@oTS&a52 z=^2rL_LQG~iaTq|?wDp76q^iZbCD`EAU(`=$>ppi1g<uVcI(RKNDXkiV28xz^GkIK z8cX^H$)sTuoRAPtS`eo-HBBvoxQo#=%ET@x%&}A4 z%4y=)$(8MZsLsYvkCZ9R2Hi^b_OArD(>$M!kRI;LK~?Cfm+MoG8<%K0f`q}S4DSh1V{F4VJ@YJYJv4b+rpcz6^=~& zCZaHXvfgTf2uX}Yof%VF{~%9FnP})^{kMr*`2)Hql;Et_~0SLQIno`69XFZ>*srzd$HH4WLJuK{D!Ud{CUoYx3{<$0VL$^3Ko!+h19?-RJd9MUp1!Ep zPhPxz!DNGSt->>mX(?6upw2d2V`j{nI;uKAupPv5rylJJs?DUL_-TNC3E zsj40|PGvuHv{~j}AZs4~tb6)sG5tpc(h(|+)w4(tI1PUbHlV2ehrRde$>*9YojLeG z+QySUK?sa&t?Dc8)slBj7z$wYzO`50^IdI@{*{(~QOJc;E%nSWtza#F&s^#;d(6gG z6raU?siZBioy__dYYX$gpV=c53j>D%XTa=?i)M$0 z9jxN+-o@y6Ekrxi-;;soM~x5Y5Nqc|%^C2;ZToz}&8{wKV4<7S6SUbR0Uef4006M^ zwAti-?6O^erUs2ES5b2JHmNOp3GaWHMdQOMLSPthn>GFjvDU#hl18*svEvCokUU&G z1o;(iB(~M<1vWbz{-z?{`kTiRkbT1KLSaFd$J^Q5)A-`f+`l|fDHGU}EVH-gRqKIe z^m;(p=+%)S?^Qt(nrS>Q8V|;y6WpJ}Le)isHe8#5huTBN4Jv!{mPVx@Z0JXjT(DJVE z(Sf$9%64hN8jZFP;+!#6Zk8pW@`mWmKm%m=+0r_C=Nhaz5>$`P>rxtC5iU@^OTO;B zL_G&n4f+uENB(9v5==4r&d6{W&3c~huMP8E)P}`}*Scy+tFeWpT^dqv#?OctKK~Tj zs>qiT>6v*RPvYT9W6C8(l(b{s^F2M#X#t~M#GWQP@Ey%DCK2^+12oTrM!4GkxCM$I3F-OVf2Dxm4^ULS*P?1Wv`YawUmitN)a|_eI8MFRIf>@d`e)siyN|5QVaz?6)4+ z`1olGexu;+)%ZuBYaZQwUfZKs!}mcT)Hf}@*TMH}ik7tE0#4)enlbs01(_8isgZ+? zt)QWrqKiK}Q7&1jbbvRRSuZ2nk3%c+!}8#nFJLwJ+wa1bNBk7={BM5-`c;=xY^tNR zbT$?%=&C)@?GQBwiH|q$OcCzBEj%OYX8UTtjyt&HkEX#jz5k}z_Gi=XC5~vrS3g5G z+b?muQ?Q~Jfp*9KKGIlP&N6Y-8G%8G(4tS!^E>sA6gpa_WSSG|Y-ydSi%+*!QW)YF zrcrmlgK!(|nJ7@i@UQ2>~I~I{j(*qM`*5w_`K1I!21+?98D>>R5=MYBgB^zh zqO^f!gg^~|x?6{kGuczYO`2pl1x~69NC>x4DMZ z88XJ&bn?YCR*By~KpWbBv~|sSZkqgV*}+EWaCiIE4Z7N$_~m34Iu-D?%5I+!{}gbp z8S%hR>S?g+Cp4C`I1v-`L?Cpz8JfHgOa+b{Ae?_i=!93*AzRs>sPgtZWAxForkkpG z43L6(^=p;K{e1*H6dPZrmX+#q>%qyKhl=lv01z;SQVEa$PblVna`TA#YQO5-yqlS| z4hiE4uzQ`Ipy-ckJ^L$4$7JZ!TNcQpwnsuY8rHh`Q~!c92K~CEEs3sGl>Q)4`kvl- zadm7@@K5oUgrSDT)nP9oWy!z71-ccNDPr~pna|;GTO~2`w;z7|u{zj%;kD=O%o`U% zW~>{PWrN$3F4_qBBeGqjgsgR&avQ=tnLcscP`;O5=wRSq?K!w9Cyp1#cW76?Zv(BHNe| z!k#HFta8#@hsJHmy2oaW2dt@KnxXIi@y94FUgY$Ej{(< zt(Zcu{O1Q&r&G~&T zsW^HDe)v=KLRSFZv|6oUcHFq2V=th0D9y3ERJs<3QIowl^t%uJ{^S4lp}Wg+yF1ZQv~rtz`J}>>YgzPO;1u7^wmbKZUvW8eM{w#Qo|ND;1tG|Q z4wh)+kQ!PhjIGMTcL=0tANN^h*(EkMwB3}f+!d6Rz=(-98YB~Q$$HMFoneC9;&^?^ z*MOj1?0Dnw--*%BXfsUR?4wR~taS)gciLPkp1+ueW!GNoTy77OJv%?9&Ffk0oS_V? zy2PVGtJ$D;)$OHz5y#Uy9E&$T^Zw1m%W!J+93)8UWyrc1I8$iDe0SL?h}K6+Efy7K z_rq5`-!=_QYy=Munb11VmmAI&w9#SMh)xHUj6ry4p3_;7=^&rtWUY=bLX1kQKVOD? zzk#BSSJZ$62Z&;?N0Fz=3E(F@>Muq0{PzrZZ$64+e^bcB$-#5~Tk&%~f;GcC8;{pd zM#x9232&qBZ-Ce*DloZOVY?eD8YuQ<+u8$rgM)(+arr{*2m+Low81WhAK}MmJi0VP z+OhtQ>S_0$-plYjk8%65I*NNt;0av|zpme%hK<;iaG>P=wL*Z_zvT#3yLztsr?163 zHC;tiN&sSYAMMt7J{pwpO{M6Fd&dT~+qUMwn1oX9;?n*Fe5~$Rt-C+h7h&L6ZFlPb z-{SYh1nZT~xHQ{9{vSMsOrOqOxHB|qeO=7*mKm_g=65%$82t5s>Vwg~{ecY;-Nk9O zdyVPwn}xm@RW14p_i7eouO#BX7`SAlKOe9`{wX!*R2NFrxx%{f9#X+)eN|9+V$TU8 zjc!pS^0*vZ?Sr@umsl{iMCp%gF6;4wGBf?nc6B+PSy*5EDpj?2x50l^WQWkxZ7}@s z*F6ZAuEet990ajcWgw48B6EG7xsB)OxuWLf-R@zO-cHF!Ex;1q!zUjNHLN05-idKx zc3ac@Z8WK$tORrgF9$)q+lJ;=NheioY{wZ_E)!n{jimh$NmwFQJXAy0z|BM#*z`Z< zwr2;P>ZdejFO zIqr^&=VI2Im5=*%8@&<<+-7~X2Ht~j;heSv9u8$4$WgNydH{GCw>avu+&kUi; z@7MV)=NS${>3D@u$}|F-LdM~=Nv-2*04*W2F;fezY3y1zz%TRW@UQh8YsSX#Y%c-Q_}om9RGZ&gEb(<_ z_vc}1c4>H5QaFk|s?y!e@b2?%h0@miU$E4iH;cAE74vO8@_!}Mw-Cb4Y6>hU- z%yCkupPlAf7KR0E$bqHBI{v6vm4yQIpIGF?dT1YSal5Z&FhvLnyHyMQC;NW-L;o6| zin3Ftb?B77pMH$8;~~~$eGj;ttQm88a6{Z`y*`9-twspySD=YpCck}TV>8lvpYayw z$65a3yESHfvkt6ar2lGHgXZ=Bz3Ae)1$n;D%mJenQvHlUo2NT0%!-K}>E ziJr4q7r1i5Y}ilRtP}Da)J^jz4;-mUbdh9QapCvj`G{JE6SMzB2;g~I7KZS8sIF{a zqrHjaFMkvN@Q7pyS-VsBrWyB&xUBXEsbV&_O|&liS3jlBQO0(Y=DON;W;|!>&@BaT znS!PdiUoL39q}V_W(o_FPVhli6h?PCYo^~4;=Q=}aeNr*MHQ*_X>2Uj9m08BoD17n z#OrL(kP8f2`HAd+kS}}RA_wSt~je5Cib#wht7;AHv_ zI{M*`+5+LnU5DT6s3Od2cx>peFQX4ei8>fYH(?n6Ex+G=pL3pb-{*PzfAQ=WDWA_Ud#`<6YprXQ z?=rYSdU@f?MKO7&bEAM@6Eq1J)ZmtZ zSL3r@ZeYXO+-={Qk(+3H5QrZ_k9nF58=rU20T<7$R8eJvX7dDhc&#Q6^Zpo+i{qGX zuu79Ve&FOawJ3iqv3|?`Xd%|QY}C7=T=NFCc>8790Ov&Nj$|GlI26lSX@BQ3Y5!g~ z$uC#VBJTz8J)H4~J+~X{p%s%W9@R z3Dl)2fdfhcNIr0B%dp$Fn5YX@W|D2QD#K>LcVKf)FZ7rE7I@~=w=)w>KtY>-z^ssa znXq3KB#7Eg#-&E|Lxc-tBwi_7^l+XL(qvTJFk0|p1vhcG7i)042y1woNd}RW5yKyQ z?0+TlzOm2~+1&8a!)BE?$7Xk{gPmfJ>C`l5`qrK(x}}abA6FO(r`YNmTzjp?qs2s1 z;@FZU>|~q-;&D%UNdHinia4LaWiao98jm~r%0OIJnV&(qLjVW_lro$V2dEKN!$Sav zmMlErQGUtxtgX*ixN?|Ko%YmK<<=rC4e!ll@RCd?6Oh}MiNq&Q-^1oqyqe*eEc1=q zD4OCgEoI=z01@<84?1u<3RC`#<+6P9Zl+oj%SSm&^StWa9rC3xJU{W~HPSs_>|9LO z6-q}pb)l0naqnwB zS?yDH%)IBXc%|G18sOuoAIphU_MMk3^mars^-l}G4sI>T43Mdu9@95-$d{SR zaB50PDN&k-dtjD;vRYN^m!oqhE0W{-LflHa2G=Xjx&UjTekwRDfM&xvgq*b~(kO>0 zU!opio>K)8tG{yn@PSFoGJ#L3n`y~F_-3?M(?DiuiP@70i%6cMg-9Bdu#)y6D;-tF zZ^YYE=<&`&0zP@g7_4!<^ij+Py6^`$I_zO}qaW7vhp#P41IB=fpNvk5KLF2T6NVuzPQJ@f{hoJwl` zqzfd>ic$NAY5o@byB1#ho<~R)(XH<$wMwSxgm`z1{C#3_76CEq#)ar-t3Zq3U3vU< z&m83_GA71bQ*D*}*po}(8gH#>s!20HUF*chq@DLZGKi`sUR}Y6*aXo@raq(~ZRF|W zUsRU}O|NW@mKMULiu1sCg0nViJ`Em}tKN4Zu9;_hI^1~pK{mk4XH|-S{>gVj1;I5m z)DYX`fY2VUjEkwl$)JtNYt~xuVA%Mqh&p|Bk@{i5n6rV0HV>G!DhMK^Le-Xae!!* zeWrqc-?Z_0$HArJUirN~F;Re9(T8Z_PInGs5+W|h@WsMJZ3nXktIkiEZt5Odn&6;T z1W@IZ;vws?{)u5tm=GG3rSu@QT@2$R7V6han-2lH!f|vJpP~-H7~nKjXXy*@yyI zJ_I2@57YK5A&aVD+&L0mk~a-^N2nJ53MAItlO5-V;FT7jB!Phfc$PJJp+vVTLhav_ zh);Y14D6SOw#&AD%sW2&%E=^g+2{ckxyEpmoJ|{TPww>}ebo8 z&Yy;JGC4tXQO=Zn>%fzHMJ zOwYNu4h%S$*fQB=SyMoG<|4RGLaO6PuH&v9hwoup^(AI0o&zycsx{pEQOY`_^{caY z07H`0rgHV+>8JT8ivG!6``H`=USXs8cP}$h(_kk}@8+;g-rW-HA@4ZJaz4*hKIs(L zoh~+73N@1K-A74u^LOey&hfZmCvKN|P2DDwEl%R{DsduY4Tijh5Y^^p2|wOOt9qF} zNH*-)kbFLfq*2OV{*8K~D`h!xO_~r=T6adgm(*-(k#B9-=o964(A>N{pm@YI7e}6W zv6tZ2(vJ0;8Q8v=(?6OB{@Hq!6W}`Z0GW_4=8V(t3Rz;QA+dX=m<&13le!Y z(}ESh%T}pTywo?7 z3Uf<)mQyvTmm?*89fEO_jU^v2%bZwf%3hbfWSKFakwoIdV7Ae^{5sPVJG&9jz<&Sh zVbbFWn2Kwi{%ZB1_KqKMQ^Ep&L>Z5JF_TZDTq7c3Qf(MLK4a78X5#$m)~TO($PX{u z?|C@sswb^;<$6@jbo^?ypO0AimVPrmlmb=BNeX!L|K;BeN`1UV!^e25j?U zROI5^;{JUvN%;dE%dWFZKF=R8Vb@F)j7vd8B|#gBH4qQ)=2@A3Bz1U~2z0Xc_hOc# zva2gBw2HqoH0abQNI&<)rE=Vo&+nS&hQ_6Gv(#(5`@MXFk4%6MCFDA`x;>EuJVk|r z5V1}6!cE_#(Sv5yb@daIH)`@+V>vz#Pw!P1fGG>-QV7kIKqaGONl9F@S)~!&xL%XB z-Z4qeWk$yf_)%e$?rIEuGM}R+DQU4c=cSd9kee0d=E|SwAkSR`a!{h3!=*hZ z8#h@*L?&~y25bB(09!*?&~GL`P1C$bzcHTUWgAdh(4c=6zuFbja@2g>f0isQ&{;!- zS@QFG@OQJXsfKs=HaPF}J$Ttw5_Iwa@T>+gQ7osiWjRdL)+)+Cv$9P^4%Km~Bn8lp zUItJ@%IOsD#58X!K^EF6dzyO2R#rc%)Q{8C@OhEfcD{`|=rQG}r%2AAc^A&=qX9H3 z5ZGz*GaxG|yXXDnT=5^sNXe8ql}*mVm>h+lE5Z2I<2Zh}rvNZ4yzEnRx!T3to_BqFuA%5?aFsY`a8 z`Y*N?=3+oXMDGOthxDKT4x)jTk~ z;{O8B+HV{_O?uhyZeefFdb$QFqm$v)Oa4wz=Q{sdbj6t##Gw~16sM3^c4{I5g8O+s zM*FMve4WHt2A-gJFOufdD`i&@#(W@7ei`=323)efItizbwc}KXpr5DSAv8CiQs>p+ zuN7iMjNkZNk3Tj&%`MS?T5H> zyU*mt6~Bgw(zkI3q}NErvQ1Nm&aQtjHwUZpxFZoWjz)~x+dW04I6}tYjwZLi3I!X* z))|af$a1`Hg!jj$aLjo?#f<0;zAD0> zTkhLe?r`L=H31zdy)4?>KslDg(~)xTorOM)ka|z?SKj;9mNW2^F+z<4YI;IA8mN-! z2Aqff$7=>Z$^QJ$8=+Y@E?mg+ z<9(s~bpujwDxqk`UEldV{$mrOJMLXVuJxeU6S3crLWbYpM-{}C-}oLn`#pK%tH|&1 zct*%0*fHTajwLVP(;j+N=ZWHqP9d9DZC3>DeV?DMrI=Im#lf4zC^MI+bi#<3)p`{J zaLC?thRY2D6s8%r?i`cMPj7m+(}fzO`c2M07L_D;U?h_Z1$qf8vdiB@%z7GT>rOQQ zQcN9^$?ICftO1a>77*q$-~Q`BLQb-Uj2+y`MiWNJN!S7iD)0126qkTDL5KCLd5Au6 z-nzz4r}8-QVAb2=yFB}o<&T#LLmYF>?Lg1s-ahI9T$@(fyUQMU{C`{@FDd=O0X^x< z(k(2!QE2>vJ6x?lVX7q|&vDzkkV#bU%~g5M0~L_wW-Q4QNsHLgD4z%G>K@Jwdh6?tm#IvbOp7R0W;X5cwg6*+I*iz7j<%y{&Q9mu{xI)&>$9go+b6w!N2Vb!27t-w5$K2!(g)p zJ7$A9ifTXdn+jBT)@xkJx$#$=|1Y6`;y-W50}4P>|8b8rz&*ximAtSV+P=jUZTV9 zxa?NS|8Y}a;EycZFi#W%-*;7EpC~$HjcT*qJt*yqJ;uFwc=|5bTIqtV=6>Ko=`gz} zpZPQL$aNBH3TavtC~$A^n%vRh6=L%rV*A+zMD< z0EZP#m>o~n4GcerQZ3Haas8nuEdtn@v*jq@K$4xqL?v^~KHmnqa~*if=2-)JHoPx-2r~50EOAHuijb|Koa;cFrqnxDt^Ehj(ZJ-~RTAYM>cr%i$c1Bz57wbor}I zXBci0u^jp6YpLY89?6y@&^~Ybhdg!imFfIt-va~-Zas^AC&b3NWzTAV_{8UYjo$xP z<`s{>gyZab2T9~J04AvmU)_4G2pXN6xo}}wqkW!56wVB#LMu%7*om@9M>dH z??|4j-1^JFjRRl9E_o*scoX|$LOl)7y}AhB#{LVRcIW?i^A^CHudrMrg+K=UB#rMs zc<^)KTXVvJS0y2u_=0Ve{q$*SL(RH*O4(|R==RvtJoNtKZfYS`u9x19m4@#BfZH5=F?7B%|KE@OLumhh5y_yl zsqr%b8_#dCF(>Ak%>IHkxjy{|QyBRRwmj$1wf|$w{doY!urT|YL2@J0FUtSvL($PT z5va1|G2e@WH~wJ4Mu4Np`1f1?#{RW83fPd;T;{X^^M1v(ddA$?D?C>y4B7v(+y9bX zR`LI!Z2lJO6yN`L#~1$Jk6pO%D0cl(+&2@BtF<4W*#o?5e)0ocJRx9s?&&|4CE&bX z{>L`vdSFtmF{b1D6F?^$JX+tnd)j#ApFXR*@(=CCbMs!$s|U)!Z{`8}?>i2D2v4y4DmZUc|u^2yrkCN~m{Auz^nVQM1kQQM1nQJyxtx?U1ih?NF#Q zRGVvlsOB+yhZ8$7rywk^-_MK>_(ap@2Djx@l;p zBbU3Td;g-W<#Ge*WX($1r0j(YRS)S?0D5+>-s$PT+(msAxzr@48 z2`vF}YEg1~1^|~qUrVag83EYzau$L0pJ}c4TA%23`fb|9{?DSrIM8C$RTK5EEOOz-^+v~Ljn92d z%3p-d!Sp1GSa`Fp#fL?diA z5-!%-$LeJqLfFlpwuc0082kVZsL9U14>~XuJ-_S@HMV+@-Cua|eR?Y9{E3d8nLM5H zbrUDXUq&52NmJG&iRrjTk4evNnMgkOOg7Z+)JgGu(d}@L79{)m0tD4C#bgN07KFx6*J@6N8oK-sx|~Lz9X>N8SC_ zH$>MJBc&;ep68}rFKq2=R+UUjBltxXB^mJgU7xO&#<}T;bb6c= zx(-~Ce3)4tVWnPd2)ea=gN8M6*#r^4sB@e#J#ACbmm;DAmzR=m_ZNQmY8_)1k~IkM zs=3DRUOkw&_>#&f`TRBM{EIWm``5N9D;CAZ31ID_HRVCfp2arJcWb)8`bwna2*qmY zdVfiGMfbW+XbqG()){-Bbi00xj@Bntn(yd#tpwnWd}!l<%>A|Fx_y`!6P>5gt3*vz z>C2%5A~HxqpX1#=#Oq03F(-URIu3QQVp{8A{xzlf5^-3z>7c&Tr^%U23T>1ERtvH? z_Cr*pWR0KzahR6FG<<*D%M@6rH-0&P?Qq7w#8252--fsJ?BureeHHKm{eOEPfr

    s1 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 literal 0 HcmV?d00001 diff --git "a/v2.x/img/system_management/\350\216\267\345\217\226\351\243\236\344\271\246\347\232\204\345\207\255\350\257\201.png" "b/v2.x/img/system_management/\350\216\267\345\217\226\351\243\236\344\271\246\347\232\204\345\207\255\350\257\201.png" new file mode 100644 index 0000000000000000000000000000000000000000..3a75121f3546b454ddc89ca681663ff535064e9f GIT binary patch literal 118375 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�r9D$ixBSy4;BeS3&I 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