Authored by Rong

commit by shell

@@ -204,7 +204,7 @@ @@ -204,7 +204,7 @@
204 <stringProp name="shareMode">shareMode.all</stringProp> 204 <stringProp name="shareMode">shareMode.all</stringProp>
205 </CSVDataSet> 205 </CSVDataSet>
206 <hashTree/> 206 <hashTree/>
207 - <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/service/v2/article/getArticle" enabled="true"> 207 + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/service/*/article/getArticleContent" enabled="true">
208 <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> 208 <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
209 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true"> 209 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
210 <boolProp name="LoopController.continue_forever">false</boolProp> 210 <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -217,10 +217,10 @@ @@ -217,10 +217,10 @@
217 <boolProp name="ThreadGroup.scheduler">false</boolProp> 217 <boolProp name="ThreadGroup.scheduler">false</boolProp>
218 <stringProp name="ThreadGroup.duration"></stringProp> 218 <stringProp name="ThreadGroup.duration"></stringProp>
219 <stringProp name="ThreadGroup.delay"></stringProp> 219 <stringProp name="ThreadGroup.delay"></stringProp>
220 - <stringProp name="TestPlan.comments">&#26681;&#25454;&#25991;&#31456;id&#21644;&#23458;&#25143;&#31471;&#31867;&#22411;&#33719;&#24471;&#25991;&#31456;</stringProp> 220 + <stringProp name="TestPlan.comments">&#26681;&#25454;&#25991;&#31456;id&#21644;&#23458;&#25143;&#31471;&#31867;&#22411;&#33719;&#21462;&#36891;&#30340;&#35814;&#24773;&#20869;&#23481;</stringProp>
221 </ThreadGroup> 221 </ThreadGroup>
222 <hashTree> 222 <hashTree>
223 - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/service/v2/article/getArticle" enabled="true"> 223 + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/service/*/article/getArticleContent" enabled="true">
224 <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> 224 <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
225 <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> 225 <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
226 <collectionProp name="Arguments.arguments"> 226 <collectionProp name="Arguments.arguments">
@@ -245,7 +245,7 @@ @@ -245,7 +245,7 @@
245 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> 245 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
246 <boolProp name="HTTPSampler.monitor">false</boolProp> 246 <boolProp name="HTTPSampler.monitor">false</boolProp>
247 <stringProp name="HTTPSampler.embedded_url_re"></stringProp> 247 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
248 - <stringProp name="TestPlan.comments">&#26681;&#25454;&#25991;&#31456;id&#21644;&#23458;&#25143;&#31471;&#31867;&#22411;&#33719;&#24471;&#25991;&#31456;</stringProp> 248 + <stringProp name="TestPlan.comments">&#26681;&#25454;&#25991;&#31456;id&#21644;&#23458;&#25143;&#31471;&#31867;&#22411;&#33719;&#21462;&#36891;&#30340;&#35814;&#24773;&#20869;&#23481;</stringProp>
249 </HTTPSamplerProxy> 249 </HTTPSamplerProxy>
250 <hashTree> 250 <hashTree>
251 <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true"> 251 <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -299,7 +299,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -299,7 +299,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
299 </ConstantThroughputTimer> 299 </ConstantThroughputTimer>
300 <hashTree/> 300 <hashTree/>
301 </hashTree> 301 </hashTree>
302 - <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v2/article/getArticleBaseInfo" enabled="true"> 302 + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/service/v2/article/getBrand" enabled="true">
303 <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> 303 <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
304 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true"> 304 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
305 <boolProp name="LoopController.continue_forever">false</boolProp> 305 <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -312,10 +312,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -312,10 +312,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
312 <boolProp name="ThreadGroup.scheduler">false</boolProp> 312 <boolProp name="ThreadGroup.scheduler">false</boolProp>
313 <stringProp name="ThreadGroup.duration"></stringProp> 313 <stringProp name="ThreadGroup.duration"></stringProp>
314 <stringProp name="ThreadGroup.delay"></stringProp> 314 <stringProp name="ThreadGroup.delay"></stringProp>
315 - <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#31456;&#20869;&#23481;&#35814;&#24773;</stringProp> 315 + <stringProp name="TestPlan.comments">&#36827;&#20837;&#25991;&#31456;&#35814;&#24773;&#39029;&#26102;&#65292;&#29992;&#20110;&#23637;&#31034;&#30456;&#20851;&#21697;&#29260;</stringProp>
316 </ThreadGroup> 316 </ThreadGroup>
317 <hashTree> 317 <hashTree>
318 - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v2/article/getArticleBaseInfo" enabled="true"> 318 + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/service/v2/article/getBrand" enabled="true">
319 <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> 319 <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
320 <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> 320 <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
321 <collectionProp name="Arguments.arguments"> 321 <collectionProp name="Arguments.arguments">
@@ -332,7 +332,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -332,7 +332,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
332 <stringProp name="HTTPSampler.response_timeout"></stringProp> 332 <stringProp name="HTTPSampler.response_timeout"></stringProp>
333 <stringProp name="HTTPSampler.protocol"></stringProp> 333 <stringProp name="HTTPSampler.protocol"></stringProp>
334 <stringProp name="HTTPSampler.contentEncoding"></stringProp> 334 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
335 - <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v2/article/getArticleBaseInfo?${searchValue}</stringProp> 335 + <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/service/v2/article/getBrand?${searchValue}</stringProp>
336 <stringProp name="HTTPSampler.method">GET</stringProp> 336 <stringProp name="HTTPSampler.method">GET</stringProp>
337 <boolProp name="HTTPSampler.follow_redirects">true</boolProp> 337 <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
338 <boolProp name="HTTPSampler.auto_redirects">false</boolProp> 338 <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -340,7 +340,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -340,7 +340,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
340 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> 340 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
341 <boolProp name="HTTPSampler.monitor">false</boolProp> 341 <boolProp name="HTTPSampler.monitor">false</boolProp>
342 <stringProp name="HTTPSampler.embedded_url_re"></stringProp> 342 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
343 - <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#31456;&#20869;&#23481;&#35814;&#24773;</stringProp> 343 + <stringProp name="TestPlan.comments">&#36827;&#20837;&#25991;&#31456;&#35814;&#24773;&#39029;&#26102;&#65292;&#29992;&#20110;&#23637;&#31034;&#30456;&#20851;&#21697;&#29260;</stringProp>
344 </HTTPSamplerProxy> 344 </HTTPSamplerProxy>
345 <hashTree> 345 <hashTree>
346 <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true"> 346 <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -355,7 +355,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;}; @@ -355,7 +355,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
355 int rd = new Random().nextInt(1); 355 int rd = new Random().nextInt(1);
356 String clientType = clientTypes[rd]; 356 String clientType = clientTypes[rd];
357 String privateKey = privateKeys[rd]; 357 String privateKey = privateKeys[rd];
358 -String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_GuangDetail&amp;id=&quot;+bsh.args[0]+&quot;&amp;os_version=10.1.1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;udid=3a31d8b3f75a08c958747d41c4854673c669ef5f&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;; 358 +String req = &quot;app_version=5.8.1&amp;article_id=&quot;+bsh.args[0]+&quot;&amp;client_type=&quot;+clientType+&quot;&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=37d73148be684c1424c353348f9cdc5a&amp;udid=403b22e7c3749ffd84fff5e586f4f2c5e671520f&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
359 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;); 359 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
360 byte[] btInput = req.getBytes(); 360 byte[] btInput = req.getBytes();
361 md.update(btInput); 361 md.update(btInput);
@@ -394,7 +394,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -394,7 +394,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
394 </ConstantThroughputTimer> 394 </ConstantThroughputTimer>
395 <hashTree/> 395 <hashTree/>
396 </hashTree> 396 </hashTree>
397 - <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v1/article/getArticleNotice" enabled="true"> 397 + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v1/comments/getList" enabled="true">
398 <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> 398 <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
399 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true"> 399 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
400 <boolProp name="LoopController.continue_forever">false</boolProp> 400 <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -407,10 +407,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -407,10 +407,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
407 <boolProp name="ThreadGroup.scheduler">false</boolProp> 407 <boolProp name="ThreadGroup.scheduler">false</boolProp>
408 <stringProp name="ThreadGroup.duration"></stringProp> 408 <stringProp name="ThreadGroup.duration"></stringProp>
409 <stringProp name="ThreadGroup.delay"></stringProp> 409 <stringProp name="ThreadGroup.delay"></stringProp>
410 - <stringProp name="TestPlan.comments">1</stringProp> 410 + <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#31456;&#35780;&#35770;&#21015;&#34920;</stringProp>
411 </ThreadGroup> 411 </ThreadGroup>
412 <hashTree> 412 <hashTree>
413 - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v1/article/getArticleNotice" enabled="true"> 413 + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v1/comments/getList" enabled="true">
414 <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> 414 <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
415 <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> 415 <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
416 <collectionProp name="Arguments.arguments"> 416 <collectionProp name="Arguments.arguments">
@@ -427,7 +427,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -427,7 +427,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
427 <stringProp name="HTTPSampler.response_timeout"></stringProp> 427 <stringProp name="HTTPSampler.response_timeout"></stringProp>
428 <stringProp name="HTTPSampler.protocol"></stringProp> 428 <stringProp name="HTTPSampler.protocol"></stringProp>
429 <stringProp name="HTTPSampler.contentEncoding"></stringProp> 429 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
430 - <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v1/article/getArticleNotice?${searchValue}</stringProp> 430 + <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v1/comments/getList?${searchValue}</stringProp>
431 <stringProp name="HTTPSampler.method">GET</stringProp> 431 <stringProp name="HTTPSampler.method">GET</stringProp>
432 <boolProp name="HTTPSampler.follow_redirects">true</boolProp> 432 <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
433 <boolProp name="HTTPSampler.auto_redirects">false</boolProp> 433 <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -435,13 +435,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -435,13 +435,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
435 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> 435 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
436 <boolProp name="HTTPSampler.monitor">false</boolProp> 436 <boolProp name="HTTPSampler.monitor">false</boolProp>
437 <stringProp name="HTTPSampler.embedded_url_re"></stringProp> 437 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
438 - <stringProp name="TestPlan.comments">1</stringProp> 438 + <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#31456;&#35780;&#35770;&#21015;&#34920;</stringProp>
439 </HTTPSamplerProxy> 439 </HTTPSamplerProxy>
440 <hashTree> 440 <hashTree>
441 <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true"> 441 <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
442 <stringProp name="TestPlan.comments"></stringProp> 442 <stringProp name="TestPlan.comments"></stringProp>
443 <boolProp name="resetInterpreter">false</boolProp> 443 <boolProp name="resetInterpreter">false</boolProp>
444 - <stringProp name="parameters">${article_datetime} ${uid}</stringProp> 444 + <stringProp name="parameters">${article_id} ${uid}</stringProp>
445 <stringProp name="filename"></stringProp> 445 <stringProp name="filename"></stringProp>
446 <stringProp name="script">import java.security.MessageDigest; 446 <stringProp name="script">import java.security.MessageDigest;
447 import java.util.Random; 447 import java.util.Random;
@@ -450,7 +450,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;}; @@ -450,7 +450,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
450 int rd = new Random().nextInt(1); 450 int rd = new Random().nextInt(1);
451 String clientType = clientTypes[rd]; 451 String clientType = clientTypes[rd];
452 String privateKey = privateKeys[rd]; 452 String privateKey = privateKeys[rd];
453 -String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;datetime=&quot;+bsh.args[0]+&quot;&amp;fromPage=aFP_Root_Phone&amp;gender=2,3&amp;os_version=android6.0:BLN-AL10&amp;physical_channel=2&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=1080x1812&amp;session_key=6471aeedc3b960d856b793789983d398&amp;udid=863982030989458af245102e1b93ddd&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&amp;yh_channel=2&quot;; 453 +String req = &quot;app_version=5.8.1&amp;article_id=&quot;+bsh.args[0]+&quot;&amp;client_type=&quot;+clientType+&quot;&amp;limit=10&amp;os_version=10.1.1&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;udid=3a31d8b3f75a08c958747d41c4854673c669ef5f&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
454 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;); 454 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
455 byte[] btInput = req.getBytes(); 455 byte[] btInput = req.getBytes();
456 md.update(btInput); 456 md.update(btInput);
@@ -489,7 +489,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -489,7 +489,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
489 </ConstantThroughputTimer> 489 </ConstantThroughputTimer>
490 <hashTree/> 490 <hashTree/>
491 </hashTree> 491 </hashTree>
492 - <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/*/article/getArticlePraiseAndFavor" enabled="true"> 492 + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/service/v2/article/getOtherArticle" enabled="true">
493 <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> 493 <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
494 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true"> 494 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
495 <boolProp name="LoopController.continue_forever">false</boolProp> 495 <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -502,10 +502,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -502,10 +502,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
502 <boolProp name="ThreadGroup.scheduler">false</boolProp> 502 <boolProp name="ThreadGroup.scheduler">false</boolProp>
503 <stringProp name="ThreadGroup.duration"></stringProp> 503 <stringProp name="ThreadGroup.duration"></stringProp>
504 <stringProp name="ThreadGroup.delay"></stringProp> 504 <stringProp name="ThreadGroup.delay"></stringProp>
505 - <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#31456;&#20869;&#23481;&#35814;&#24773;&#30340;&#28857;&#36190;&#12289;&#25910;&#34255;&#12289;&#27983;&#35272;&#25968;&#65288;&#38477;&#32423;&#65289;</stringProp> 505 + <stringProp name="TestPlan.comments">&#36827;&#20837;&#25991;&#31456;&#35814;&#24773;&#39029;&#26102;&#65292;&#29992;&#20110;&#23637;&#31034;&#30456;&#20851;&#25991;&#31456;</stringProp>
506 </ThreadGroup> 506 </ThreadGroup>
507 <hashTree> 507 <hashTree>
508 - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/*/article/getArticlePraiseAndFavor" enabled="true"> 508 + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/service/v2/article/getOtherArticle" enabled="true">
509 <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> 509 <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
510 <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> 510 <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
511 <collectionProp name="Arguments.arguments"> 511 <collectionProp name="Arguments.arguments">
@@ -522,7 +522,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -522,7 +522,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
522 <stringProp name="HTTPSampler.response_timeout"></stringProp> 522 <stringProp name="HTTPSampler.response_timeout"></stringProp>
523 <stringProp name="HTTPSampler.protocol"></stringProp> 523 <stringProp name="HTTPSampler.protocol"></stringProp>
524 <stringProp name="HTTPSampler.contentEncoding"></stringProp> 524 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
525 - <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v2/article/getArticlePraiseAndFavor?${searchValue}</stringProp> 525 + <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/service/v2/article/getOtherArticle?${searchValue}</stringProp>
526 <stringProp name="HTTPSampler.method">GET</stringProp> 526 <stringProp name="HTTPSampler.method">GET</stringProp>
527 <boolProp name="HTTPSampler.follow_redirects">true</boolProp> 527 <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
528 <boolProp name="HTTPSampler.auto_redirects">false</boolProp> 528 <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -530,7 +530,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -530,7 +530,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
530 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> 530 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
531 <boolProp name="HTTPSampler.monitor">false</boolProp> 531 <boolProp name="HTTPSampler.monitor">false</boolProp>
532 <stringProp name="HTTPSampler.embedded_url_re"></stringProp> 532 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
533 - <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#31456;&#20869;&#23481;&#35814;&#24773;&#30340;&#28857;&#36190;&#12289;&#25910;&#34255;&#12289;&#27983;&#35272;&#25968;&#65288;&#38477;&#32423;&#65289;</stringProp> 533 + <stringProp name="TestPlan.comments">&#36827;&#20837;&#25991;&#31456;&#35814;&#24773;&#39029;&#26102;&#65292;&#29992;&#20110;&#23637;&#31034;&#30456;&#20851;&#25991;&#31456;</stringProp>
534 </HTTPSamplerProxy> 534 </HTTPSamplerProxy>
535 <hashTree> 535 <hashTree>
536 <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true"> 536 <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -545,7 +545,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;}; @@ -545,7 +545,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
545 int rd = new Random().nextInt(1); 545 int rd = new Random().nextInt(1);
546 String clientType = clientTypes[rd]; 546 String clientType = clientTypes[rd];
547 String privateKey = privateKeys[rd]; 547 String privateKey = privateKeys[rd];
548 -String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;id=&quot;+bsh.args[0]+&quot;&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=37d73148be684c1424c353348f9cdc5a&amp;udid=403b22e7c3749ffd84fff5e586f4f2c5e671520f&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;; 548 +String req = &quot;app_version=5.8.1&amp;article_id=&quot;+bsh.args[0]+&quot;&amp;client_type=&quot;+clientType+&quot;&amp;limit=3&amp;offset=0&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=dbef84f3659c370fcd19de19e67a5556&amp;tags=&amp;udid=c383b9ed7696d2b31cf22685114a3a63eae58e95&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
549 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;); 549 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
550 byte[] btInput = req.getBytes(); 550 byte[] btInput = req.getBytes();
551 md.update(btInput); 551 md.update(btInput);
@@ -584,7 +584,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -584,7 +584,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
584 </ConstantThroughputTimer> 584 </ConstantThroughputTimer>
585 <hashTree/> 585 <hashTree/>
586 </hashTree> 586 </hashTree>
587 - <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v1/share/guang" enabled="true"> 587 + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_document_config" enabled="true">
588 <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> 588 <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
589 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true"> 589 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
590 <boolProp name="LoopController.continue_forever">false</boolProp> 590 <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -597,10 +597,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -597,10 +597,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
597 <boolProp name="ThreadGroup.scheduler">false</boolProp> 597 <boolProp name="ThreadGroup.scheduler">false</boolProp>
598 <stringProp name="ThreadGroup.duration"></stringProp> 598 <stringProp name="ThreadGroup.duration"></stringProp>
599 <stringProp name="ThreadGroup.delay"></stringProp> 599 <stringProp name="ThreadGroup.delay"></stringProp>
600 - <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#31456;&#20869;&#23481;</stringProp> 600 + <stringProp name="TestPlan.comments">&#24494;&#20449;&#20844;&#20247;&#21495;</stringProp>
601 </ThreadGroup> 601 </ThreadGroup>
602 <hashTree> 602 <hashTree>
603 - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v1/share/guang" enabled="true"> 603 + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_document_config" enabled="true">
604 <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> 604 <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
605 <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> 605 <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
606 <collectionProp name="Arguments.arguments"> 606 <collectionProp name="Arguments.arguments">
@@ -617,7 +617,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -617,7 +617,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
617 <stringProp name="HTTPSampler.response_timeout"></stringProp> 617 <stringProp name="HTTPSampler.response_timeout"></stringProp>
618 <stringProp name="HTTPSampler.protocol"></stringProp> 618 <stringProp name="HTTPSampler.protocol"></stringProp>
619 <stringProp name="HTTPSampler.contentEncoding"></stringProp> 619 <stringProp name="HTTPSampler.contentEncoding"></stringProp>
620 - <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v1/share/guang?${searchValue}</stringProp> 620 + <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
621 <stringProp name="HTTPSampler.method">GET</stringProp> 621 <stringProp name="HTTPSampler.method">GET</stringProp>
622 <boolProp name="HTTPSampler.follow_redirects">true</boolProp> 622 <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
623 <boolProp name="HTTPSampler.auto_redirects">false</boolProp> 623 <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -625,13 +625,108 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -625,13 +625,108 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
625 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> 625 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
626 <boolProp name="HTTPSampler.monitor">false</boolProp> 626 <boolProp name="HTTPSampler.monitor">false</boolProp>
627 <stringProp name="HTTPSampler.embedded_url_re"></stringProp> 627 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
628 - <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#31456;&#20869;&#23481;</stringProp> 628 + <stringProp name="TestPlan.comments">&#24494;&#20449;&#20844;&#20247;&#21495;</stringProp>
629 </HTTPSamplerProxy> 629 </HTTPSamplerProxy>
630 <hashTree> 630 <hashTree>
631 <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true"> 631 <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
632 <stringProp name="TestPlan.comments"></stringProp> 632 <stringProp name="TestPlan.comments"></stringProp>
633 <boolProp name="resetInterpreter">false</boolProp> 633 <boolProp name="resetInterpreter">false</boolProp>
634 - <stringProp name="parameters">${article_id} ${uid}</stringProp> 634 + <stringProp name="parameters">${uid}</stringProp>
  635 + <stringProp name="filename"></stringProp>
  636 + <stringProp name="script">import java.security.MessageDigest;
  637 +import java.util.Random;
  638 +String[] clientTypes = {&quot;android&quot;};
  639 +String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
  640 +int rd = new Random().nextInt(1);
  641 +String clientType = clientTypes[rd];
  642 +String privateKey = privateKeys[rd];
  643 +String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;method=app.document.config&amp;os_version=10.1.1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;udid=3a31d8b3f75a08c958747d41c4854673c669ef5f&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
  644 +MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
  645 +byte[] btInput = req.getBytes();
  646 +md.update(btInput);
  647 +byte[] btResult = md.digest();
  648 +StringBuffer sb = new StringBuffer();
  649 +for(byte b : btResult){
  650 + int bt = b&amp;0xff;
  651 + if(bt&lt;16){
  652 + sb.append(0);
  653 + }
  654 + sb.append(Integer.toHexString(bt));
  655 +}
  656 +String md5 = sb.toString();
  657 +vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>
  658 + </BeanShellPreProcessor>
  659 + <hashTree/>
  660 + <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">
  661 + <collectionProp name="Asserion.test_strings">
  662 + <stringProp name="1450572480">&quot;code&quot;:200</stringProp>
  663 + </collectionProp>
  664 + <stringProp name="TestPlan.comments"></stringProp>
  665 + <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
  666 + <boolProp name="Assertion.assume_success">false</boolProp>
  667 + <intProp name="Assertion.test_type">16</intProp>
  668 + </ResponseAssertion>
  669 + <hashTree/>
  670 + </hashTree>
  671 + <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">
  672 + <stringProp name="TestPlan.comments"></stringProp>
  673 + <doubleProp>
  674 + <name>throughput</name>
  675 + <value>60000</value>
  676 + <savedValue>0.0</savedValue>
  677 + </doubleProp>
  678 + <intProp name="calcMode">2</intProp>
  679 + </ConstantThroughputTimer>
  680 + <hashTree/>
  681 + </hashTree>
  682 + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_resources_getSingleTemplate" enabled="true">
  683 + <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
  684 + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
  685 + <boolProp name="LoopController.continue_forever">false</boolProp>
  686 + <intProp name="LoopController.loops">-1</intProp>
  687 + </elementProp>
  688 + <stringProp name="ThreadGroup.num_threads">100</stringProp>
  689 + <stringProp name="ThreadGroup.ramp_time">10</stringProp>
  690 + <longProp name="ThreadGroup.start_time">1488865571000</longProp>
  691 + <longProp name="ThreadGroup.end_time">1488865571000</longProp>
  692 + <boolProp name="ThreadGroup.scheduler">false</boolProp>
  693 + <stringProp name="ThreadGroup.duration"></stringProp>
  694 + <stringProp name="ThreadGroup.delay"></stringProp>
  695 + <stringProp name="TestPlan.comments">1</stringProp>
  696 + </ThreadGroup>
  697 + <hashTree>
  698 + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_resources_getSingleTemplate" enabled="true">
  699 + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  700 + <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
  701 + <collectionProp name="Arguments.arguments">
  702 + <elementProp name="" elementType="HTTPArgument">
  703 + <boolProp name="HTTPArgument.always_encode">false</boolProp>
  704 + <stringProp name="Argument.value"></stringProp>
  705 + <stringProp name="Argument.metadata">=</stringProp>
  706 + </elementProp>
  707 + </collectionProp>
  708 + </elementProp>
  709 + <stringProp name="HTTPSampler.domain"></stringProp>
  710 + <stringProp name="HTTPSampler.port"></stringProp>
  711 + <stringProp name="HTTPSampler.connect_timeout"></stringProp>
  712 + <stringProp name="HTTPSampler.response_timeout"></stringProp>
  713 + <stringProp name="HTTPSampler.protocol"></stringProp>
  714 + <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  715 + <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
  716 + <stringProp name="HTTPSampler.method">GET</stringProp>
  717 + <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
  718 + <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
  719 + <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
  720 + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
  721 + <boolProp name="HTTPSampler.monitor">false</boolProp>
  722 + <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
  723 + <stringProp name="TestPlan.comments">1</stringProp>
  724 + </HTTPSamplerProxy>
  725 + <hashTree>
  726 + <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
  727 + <stringProp name="TestPlan.comments"></stringProp>
  728 + <boolProp name="resetInterpreter">false</boolProp>
  729 + <stringProp name="parameters">${uid}</stringProp>
635 <stringProp name="filename"></stringProp> 730 <stringProp name="filename"></stringProp>
636 <stringProp name="script">import java.security.MessageDigest; 731 <stringProp name="script">import java.security.MessageDigest;
637 import java.util.Random; 732 import java.util.Random;
@@ -640,7 +735,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;}; @@ -640,7 +735,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
640 int rd = new Random().nextInt(1); 735 int rd = new Random().nextInt(1);
641 String clientType = clientTypes[rd]; 736 String clientType = clientTypes[rd];
642 String privateKey = privateKeys[rd]; 737 String privateKey = privateKeys[rd];
643 -String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;id=&quot;+bsh.args[0]+&quot;&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=dbef84f3659c370fcd19de19e67a5556&amp;udid=c383b9ed7696d2b31cf22685114a3a63eae58e95&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&amp;yh_channel=1&quot;; 738 +String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;key=guang_detail_wechat&amp;method=app.resources.getSingleTemplate&amp;module=wechat&amp;os_version=10.1.1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;udid=3a31d8b3f75a08c958747d41c4854673c669ef5f&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
644 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;); 739 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
645 byte[] btInput = req.getBytes(); 740 byte[] btInput = req.getBytes();
646 md.update(btInput); 741 md.update(btInput);