Authored by Rong

commit by shell

@@ -216,7 +216,7 @@ @@ -216,7 +216,7 @@
216 <stringProp name="shareMode">shareMode.all</stringProp> 216 <stringProp name="shareMode">shareMode.all</stringProp>
217 </CSVDataSet> 217 </CSVDataSet>
218 <hashTree/> 218 <hashTree/>
219 - <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_web_productBanner_data" enabled="true"> 219 + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_Shopping_queryCart" enabled="true">
220 <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> 220 <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
221 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true"> 221 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
222 <boolProp name="LoopController.continue_forever">false</boolProp> 222 <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -229,10 +229,10 @@ @@ -229,10 +229,10 @@
229 <boolProp name="ThreadGroup.scheduler">false</boolProp> 229 <boolProp name="ThreadGroup.scheduler">false</boolProp>
230 <stringProp name="ThreadGroup.duration"></stringProp> 230 <stringProp name="ThreadGroup.duration"></stringProp>
231 <stringProp name="ThreadGroup.delay"></stringProp> 231 <stringProp name="ThreadGroup.delay"></stringProp>
232 - <stringProp name="TestPlan.comments">&#26681;&#25454;&#20135;&#21697;ID&#26597;&#35810;banner&#65288;&#21830;&#21697;&#35814;&#24773;&#20419;&#38144;banner&#65289;</stringProp> 232 + <stringProp name="TestPlan.comments">&#26597;&#35810;&#29992;&#25143;&#36141;&#29289;&#36710;</stringProp>
233 </ThreadGroup> 233 </ThreadGroup>
234 <hashTree> 234 <hashTree>
235 - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_web_productBanner_data" enabled="true"> 235 + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_Shopping_queryCart" enabled="true">
236 <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> 236 <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
237 <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> 237 <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
238 <collectionProp name="Arguments.arguments"> 238 <collectionProp name="Arguments.arguments">
@@ -257,317 +257,23 @@ @@ -257,317 +257,23 @@
257 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> 257 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
258 <boolProp name="HTTPSampler.monitor">false</boolProp> 258 <boolProp name="HTTPSampler.monitor">false</boolProp>
259 <stringProp name="HTTPSampler.embedded_url_re"></stringProp> 259 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
260 - <stringProp name="TestPlan.comments">&#26681;&#25454;&#20135;&#21697;ID&#26597;&#35810;banner&#65288;&#21830;&#21697;&#35814;&#24773;&#20419;&#38144;banner&#65289;</stringProp> 260 + <stringProp name="TestPlan.comments">&#26597;&#35810;&#29992;&#25143;&#36141;&#29289;&#36710;</stringProp>
261 </HTTPSamplerProxy> 261 </HTTPSamplerProxy>
262 <hashTree> 262 <hashTree>
263 <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true"> 263 <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
264 <stringProp name="TestPlan.comments"></stringProp> 264 <stringProp name="TestPlan.comments"></stringProp>
265 <boolProp name="resetInterpreter">false</boolProp> 265 <boolProp name="resetInterpreter">false</boolProp>
266 - <stringProp name="parameters">${product_id}</stringProp> 266 + <stringProp name="parameters">${cart_shopping_key} ${cart_uid}</stringProp>
267 <stringProp name="filename"></stringProp> 267 <stringProp name="filename"></stringProp>
268 <stringProp name="script">import java.security.MessageDigest; 268 <stringProp name="script">import java.security.MessageDigest;
269 import java.util.Random; 269 import java.util.Random;
270 -String[] clientTypes = {&quot;web&quot;};  
271 -String[] privateKeys = {&quot;0ed29744ed318fd28d2c07985d3ba633&quot;}; 270 +String[] clientTypes = {&quot;android&quot;};
  271 +String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
272 int rd = new Random().nextInt(1); 272 int rd = new Random().nextInt(1);
273 String clientType = clientTypes[rd]; 273 String clientType = clientTypes[rd];
274 String privateKey = privateKeys[rd]; 274 String privateKey = privateKeys[rd];
275 275
276 -String req = &quot;app_version=5.8.0&amp;client_type=&quot;+clientType+&quot;&amp;method=web.productBanner.data&amp;os_version=yohobuy:web&amp;private_key=&quot;+privateKey+&quot;&amp;product_id=&quot;+bsh.args[0]+&quot;&amp;screen_size=720x1280&amp;v=7&quot;;  
277 -MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);  
278 -byte[] btInput = req.getBytes();  
279 -md.update(btInput);  
280 -byte[] btResult = md.digest();  
281 -StringBuffer sb = new StringBuffer();  
282 -for(byte b : btResult){  
283 - int bt = b&amp;0xff;  
284 - if(bt&lt;16){  
285 - sb.append(0);  
286 - }  
287 - sb.append(Integer.toHexString(bt));  
288 -}  
289 -String md5 = sb.toString();  
290 -  
291 -  
292 -vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>  
293 - </BeanShellPreProcessor>  
294 - <hashTree/>  
295 - <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">  
296 - <collectionProp name="Asserion.test_strings">  
297 - <stringProp name="1450572480">&quot;code&quot;:200</stringProp>  
298 - </collectionProp>  
299 - <stringProp name="TestPlan.comments"></stringProp>  
300 - <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>  
301 - <boolProp name="Assertion.assume_success">false</boolProp>  
302 - <intProp name="Assertion.test_type">16</intProp>  
303 - </ResponseAssertion>  
304 - <hashTree/>  
305 - </hashTree>  
306 - <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">  
307 - <stringProp name="TestPlan.comments"></stringProp>  
308 - <doubleProp>  
309 - <name>throughput</name>  
310 - <value>60000</value>  
311 - <savedValue>0.0</savedValue>  
312 - </doubleProp>  
313 - <intProp name="calcMode">2</intProp>  
314 - </ConstantThroughputTimer>  
315 - <hashTree/>  
316 - </hashTree>  
317 - <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_web_brand_banner" enabled="true">  
318 - <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>  
319 - <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">  
320 - <boolProp name="LoopController.continue_forever">false</boolProp>  
321 - <intProp name="LoopController.loops">-1</intProp>  
322 - </elementProp>  
323 - <stringProp name="ThreadGroup.num_threads">80</stringProp>  
324 - <stringProp name="ThreadGroup.ramp_time">10</stringProp>  
325 - <longProp name="ThreadGroup.start_time">1488865571000</longProp>  
326 - <longProp name="ThreadGroup.end_time">1488865571000</longProp>  
327 - <boolProp name="ThreadGroup.scheduler">false</boolProp>  
328 - <stringProp name="ThreadGroup.duration"></stringProp>  
329 - <stringProp name="ThreadGroup.delay"></stringProp>  
330 - <stringProp name="TestPlan.comments">&#26681;&#25454;&#21697;&#29260;ID&#26597;&#35810;banner</stringProp>  
331 - </ThreadGroup>  
332 - <hashTree>  
333 - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_web_brand_banner" enabled="true">  
334 - <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>  
335 - <elementProp name="HTTPsampler.Arguments" elementType="Arguments">  
336 - <collectionProp name="Arguments.arguments">  
337 - <elementProp name="" elementType="HTTPArgument">  
338 - <boolProp name="HTTPArgument.always_encode">false</boolProp>  
339 - <stringProp name="Argument.value"></stringProp>  
340 - <stringProp name="Argument.metadata">=</stringProp>  
341 - </elementProp>  
342 - </collectionProp>  
343 - </elementProp>  
344 - <stringProp name="HTTPSampler.domain"></stringProp>  
345 - <stringProp name="HTTPSampler.port"></stringProp>  
346 - <stringProp name="HTTPSampler.connect_timeout"></stringProp>  
347 - <stringProp name="HTTPSampler.response_timeout"></stringProp>  
348 - <stringProp name="HTTPSampler.protocol"></stringProp>  
349 - <stringProp name="HTTPSampler.contentEncoding"></stringProp>  
350 - <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>  
351 - <stringProp name="HTTPSampler.method">GET</stringProp>  
352 - <boolProp name="HTTPSampler.follow_redirects">true</boolProp>  
353 - <boolProp name="HTTPSampler.auto_redirects">false</boolProp>  
354 - <boolProp name="HTTPSampler.use_keepalive">true</boolProp>  
355 - <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>  
356 - <boolProp name="HTTPSampler.monitor">false</boolProp>  
357 - <stringProp name="HTTPSampler.embedded_url_re"></stringProp>  
358 - <stringProp name="TestPlan.comments">&#26681;&#25454;&#21697;&#29260;ID&#26597;&#35810;banner</stringProp>  
359 - </HTTPSamplerProxy>  
360 - <hashTree>  
361 - <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">  
362 - <stringProp name="TestPlan.comments"></stringProp>  
363 - <boolProp name="resetInterpreter">false</boolProp>  
364 - <stringProp name="parameters">${brand_id}</stringProp>  
365 - <stringProp name="filename"></stringProp>  
366 - <stringProp name="script">import java.security.MessageDigest;  
367 -import java.util.Random;  
368 -String[] clientTypes = {&quot;web&quot;};  
369 -String[] privateKeys = {&quot;0ed29744ed318fd28d2c07985d3ba633&quot;};  
370 -int rd = new Random().nextInt(1);  
371 -String clientType = clientTypes[rd];  
372 -String privateKey = privateKeys[rd];  
373 -  
374 -String req = &quot;app_version=5.8.0&amp;brand_id=&quot;+bsh.args[0]+&quot;&amp;client_type=&quot;+clientType+&quot;&amp;method=web.brand.banner&amp;os_version=yohobuy:web&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=720x1280&amp;v=7&quot;;  
375 -MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);  
376 -byte[] btInput = req.getBytes();  
377 -md.update(btInput);  
378 -byte[] btResult = md.digest();  
379 -StringBuffer sb = new StringBuffer();  
380 -for(byte b : btResult){  
381 - int bt = b&amp;0xff;  
382 - if(bt&lt;16){  
383 - sb.append(0);  
384 - }  
385 - sb.append(Integer.toHexString(bt));  
386 -}  
387 -String md5 = sb.toString();  
388 -  
389 -  
390 -vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>  
391 - </BeanShellPreProcessor>  
392 - <hashTree/>  
393 - <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">  
394 - <collectionProp name="Asserion.test_strings">  
395 - <stringProp name="1450572480">&quot;code&quot;:200</stringProp>  
396 - </collectionProp>  
397 - <stringProp name="TestPlan.comments"></stringProp>  
398 - <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>  
399 - <boolProp name="Assertion.assume_success">false</boolProp>  
400 - <intProp name="Assertion.test_type">16</intProp>  
401 - </ResponseAssertion>  
402 - <hashTree/>  
403 - </hashTree>  
404 - <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">  
405 - <stringProp name="TestPlan.comments"></stringProp>  
406 - <doubleProp>  
407 - <name>throughput</name>  
408 - <value>60000</value>  
409 - <savedValue>0.0</savedValue>  
410 - </doubleProp>  
411 - <intProp name="calcMode">2</intProp>  
412 - </ConstantThroughputTimer>  
413 - <hashTree/>  
414 - </hashTree>  
415 - <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_web_productComfort_data" enabled="true">  
416 - <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>  
417 - <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">  
418 - <boolProp name="LoopController.continue_forever">false</boolProp>  
419 - <intProp name="LoopController.loops">-1</intProp>  
420 - </elementProp>  
421 - <stringProp name="ThreadGroup.num_threads">80</stringProp>  
422 - <stringProp name="ThreadGroup.ramp_time">10</stringProp>  
423 - <longProp name="ThreadGroup.start_time">1488865571000</longProp>  
424 - <longProp name="ThreadGroup.end_time">1488865571000</longProp>  
425 - <boolProp name="ThreadGroup.scheduler">false</boolProp>  
426 - <stringProp name="ThreadGroup.duration"></stringProp>  
427 - <stringProp name="ThreadGroup.delay"></stringProp>  
428 - <stringProp name="TestPlan.comments">&#26681;&#25454;&#20135;&#21697;ID&#26597;&#35810;&#33298;&#36866;&#24230;</stringProp>  
429 - </ThreadGroup>  
430 - <hashTree>  
431 - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_web_productComfort_data" enabled="true">  
432 - <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>  
433 - <elementProp name="HTTPsampler.Arguments" elementType="Arguments">  
434 - <collectionProp name="Arguments.arguments">  
435 - <elementProp name="" elementType="HTTPArgument">  
436 - <boolProp name="HTTPArgument.always_encode">false</boolProp>  
437 - <stringProp name="Argument.value"></stringProp>  
438 - <stringProp name="Argument.metadata">=</stringProp>  
439 - </elementProp>  
440 - </collectionProp>  
441 - </elementProp>  
442 - <stringProp name="HTTPSampler.domain"></stringProp>  
443 - <stringProp name="HTTPSampler.port"></stringProp>  
444 - <stringProp name="HTTPSampler.connect_timeout"></stringProp>  
445 - <stringProp name="HTTPSampler.response_timeout"></stringProp>  
446 - <stringProp name="HTTPSampler.protocol"></stringProp>  
447 - <stringProp name="HTTPSampler.contentEncoding"></stringProp>  
448 - <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>  
449 - <stringProp name="HTTPSampler.method">GET</stringProp>  
450 - <boolProp name="HTTPSampler.follow_redirects">true</boolProp>  
451 - <boolProp name="HTTPSampler.auto_redirects">false</boolProp>  
452 - <boolProp name="HTTPSampler.use_keepalive">true</boolProp>  
453 - <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>  
454 - <boolProp name="HTTPSampler.monitor">false</boolProp>  
455 - <stringProp name="HTTPSampler.embedded_url_re"></stringProp>  
456 - <stringProp name="TestPlan.comments">&#26681;&#25454;&#20135;&#21697;ID&#26597;&#35810;&#33298;&#36866;&#24230;</stringProp>  
457 - </HTTPSamplerProxy>  
458 - <hashTree>  
459 - <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">  
460 - <stringProp name="TestPlan.comments"></stringProp>  
461 - <boolProp name="resetInterpreter">false</boolProp>  
462 - <stringProp name="parameters">${product_id}</stringProp>  
463 - <stringProp name="filename"></stringProp>  
464 - <stringProp name="script">import java.security.MessageDigest;  
465 -import java.util.Random;  
466 -String[] clientTypes = {&quot;web&quot;};  
467 -String[] privateKeys = {&quot;0ed29744ed318fd28d2c07985d3ba633&quot;};  
468 -int rd = new Random().nextInt(1);  
469 -String clientType = clientTypes[rd];  
470 -String privateKey = privateKeys[rd];  
471 -  
472 -String req = &quot;app_version=5.8.0&amp;client_type=&quot;+clientType+&quot;&amp;method=web.productComfort.data&amp;os_version=yohobuy:web&amp;private_key=&quot;+privateKey+&quot;&amp;product_id=&quot;+bsh.args[0]+&quot;&amp;screen_size=720x1280&amp;v=7&quot;;  
473 -MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);  
474 -byte[] btInput = req.getBytes();  
475 -md.update(btInput);  
476 -byte[] btResult = md.digest();  
477 -StringBuffer sb = new StringBuffer();  
478 -for(byte b : btResult){  
479 - int bt = b&amp;0xff;  
480 - if(bt&lt;16){  
481 - sb.append(0);  
482 - }  
483 - sb.append(Integer.toHexString(bt));  
484 -}  
485 -String md5 = sb.toString();  
486 -  
487 -  
488 -vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>  
489 - </BeanShellPreProcessor>  
490 - <hashTree/>  
491 - <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">  
492 - <collectionProp name="Asserion.test_strings">  
493 - <stringProp name="1450572480">&quot;code&quot;:200</stringProp>  
494 - </collectionProp>  
495 - <stringProp name="TestPlan.comments"></stringProp>  
496 - <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>  
497 - <boolProp name="Assertion.assume_success">false</boolProp>  
498 - <intProp name="Assertion.test_type">16</intProp>  
499 - </ResponseAssertion>  
500 - <hashTree/>  
501 - </hashTree>  
502 - <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">  
503 - <stringProp name="TestPlan.comments"></stringProp>  
504 - <doubleProp>  
505 - <name>throughput</name>  
506 - <value>60000</value>  
507 - <savedValue>0.0</savedValue>  
508 - </doubleProp>  
509 - <intProp name="calcMode">2</intProp>  
510 - </ConstantThroughputTimer>  
511 - <hashTree/>  
512 - </hashTree>  
513 - <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_web_productModelTry_data" enabled="true">  
514 - <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>  
515 - <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">  
516 - <boolProp name="LoopController.continue_forever">false</boolProp>  
517 - <intProp name="LoopController.loops">-1</intProp>  
518 - </elementProp>  
519 - <stringProp name="ThreadGroup.num_threads">80</stringProp>  
520 - <stringProp name="ThreadGroup.ramp_time">10</stringProp>  
521 - <longProp name="ThreadGroup.start_time">1488865571000</longProp>  
522 - <longProp name="ThreadGroup.end_time">1488865571000</longProp>  
523 - <boolProp name="ThreadGroup.scheduler">false</boolProp>  
524 - <stringProp name="ThreadGroup.duration"></stringProp>  
525 - <stringProp name="ThreadGroup.delay"></stringProp>  
526 - <stringProp name="TestPlan.comments">&#27169;&#29305;&#35797;&#31359;</stringProp>  
527 - </ThreadGroup>  
528 - <hashTree>  
529 - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_web_productModelTry_data" enabled="true">  
530 - <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>  
531 - <elementProp name="HTTPsampler.Arguments" elementType="Arguments">  
532 - <collectionProp name="Arguments.arguments">  
533 - <elementProp name="" elementType="HTTPArgument">  
534 - <boolProp name="HTTPArgument.always_encode">false</boolProp>  
535 - <stringProp name="Argument.value"></stringProp>  
536 - <stringProp name="Argument.metadata">=</stringProp>  
537 - </elementProp>  
538 - </collectionProp>  
539 - </elementProp>  
540 - <stringProp name="HTTPSampler.domain"></stringProp>  
541 - <stringProp name="HTTPSampler.port"></stringProp>  
542 - <stringProp name="HTTPSampler.connect_timeout"></stringProp>  
543 - <stringProp name="HTTPSampler.response_timeout"></stringProp>  
544 - <stringProp name="HTTPSampler.protocol"></stringProp>  
545 - <stringProp name="HTTPSampler.contentEncoding"></stringProp>  
546 - <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>  
547 - <stringProp name="HTTPSampler.method">GET</stringProp>  
548 - <boolProp name="HTTPSampler.follow_redirects">true</boolProp>  
549 - <boolProp name="HTTPSampler.auto_redirects">false</boolProp>  
550 - <boolProp name="HTTPSampler.use_keepalive">true</boolProp>  
551 - <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>  
552 - <boolProp name="HTTPSampler.monitor">false</boolProp>  
553 - <stringProp name="HTTPSampler.embedded_url_re"></stringProp>  
554 - <stringProp name="TestPlan.comments">&#27169;&#29305;&#35797;&#31359;</stringProp>  
555 - </HTTPSamplerProxy>  
556 - <hashTree>  
557 - <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">  
558 - <stringProp name="TestPlan.comments"></stringProp>  
559 - <boolProp name="resetInterpreter">false</boolProp>  
560 - <stringProp name="parameters">${product_skn}</stringProp>  
561 - <stringProp name="filename"></stringProp>  
562 - <stringProp name="script">import java.security.MessageDigest;  
563 -import java.util.Random;  
564 -String[] clientTypes = {&quot;web&quot;};  
565 -String[] privateKeys = {&quot;0ed29744ed318fd28d2c07985d3ba633&quot;};  
566 -int rd = new Random().nextInt(1);  
567 -String clientType = clientTypes[rd];  
568 -String privateKey = privateKeys[rd];  
569 -  
570 -String req = &quot;app_version=5.8.0&amp;client_type=&quot;+clientType+&quot;&amp;method=web.productModelTry.data&amp;os_version=yohobuy:web&amp;private_key=&quot;+privateKey+&quot;&amp;product_skn=&quot;+bsh.args[0]+&quot;&amp;screen_size=720x1280&amp;v=7&quot;; 276 +String req = &quot;app_version=5.8.0&amp;client_type=&quot;+clientType+&quot;&amp;is_support_mlp=Y&amp;method=app.Shopping.queryCart&amp;os_version=yohobuy:web&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=720x1280&amp;session_key=3b3af315f8ee63ba511d596496dabd39&amp;shopping_key=&quot;+bsh.args[0]+&quot;&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
571 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;); 277 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
572 byte[] btInput = req.getBytes(); 278 byte[] btInput = req.getBytes();
573 md.update(btInput); 279 md.update(btInput);