Showing
1 changed file
with
125 additions
and
30 deletions
@@ -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">根据文章id和客户端类型获得文章</stringProp> | 220 | + <stringProp name="TestPlan.comments">根据文章id和客户端类型获取逛的详情内容</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">根据文章id和客户端类型获得文章</stringProp> | 248 | + <stringProp name="TestPlan.comments">根据文章id和客户端类型获取逛的详情内容</stringProp> |
249 | </HTTPSamplerProxy> | 249 | </HTTPSamplerProxy> |
250 | <hashTree> | 250 | <hashTree> |
251 | <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="前置BeanShell" enabled="true"> | 251 | <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="前置BeanShell" enabled="true"> |
@@ -299,7 +299,7 @@ vars.put("searchValue",req+"&client_secret="+md5);</stri | @@ -299,7 +299,7 @@ vars.put("searchValue",req+"&client_secret="+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("searchValue",req+"&client_secret="+md5);</stri | @@ -312,10 +312,10 @@ vars.put("searchValue",req+"&client_secret="+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">获取文章内容详情</stringProp> | 315 | + <stringProp name="TestPlan.comments">进入文章详情页时,用于展示相关品牌</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("searchValue",req+"&client_secret="+md5);</stri | @@ -332,7 +332,7 @@ vars.put("searchValue",req+"&client_secret="+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("searchValue",req+"&client_secret="+md5);</stri | @@ -340,7 +340,7 @@ vars.put("searchValue",req+"&client_secret="+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">获取文章内容详情</stringProp> | 343 | + <stringProp name="TestPlan.comments">进入文章详情页时,用于展示相关品牌</stringProp> |
344 | </HTTPSamplerProxy> | 344 | </HTTPSamplerProxy> |
345 | <hashTree> | 345 | <hashTree> |
346 | <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="前置BeanShell" enabled="true"> | 346 | <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="前置BeanShell" enabled="true"> |
@@ -355,7 +355,7 @@ String[] privateKeys = {"fd4ad5fcfa0de589ef238c0e7331b585"}; | @@ -355,7 +355,7 @@ String[] privateKeys = {"fd4ad5fcfa0de589ef238c0e7331b585"}; | ||
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 = "app_version=5.8.1&client_type="+clientType+"&fromPage=iFP_GuangDetail&id="+bsh.args[0]+"&os_version=10.1.1&physical_channel=1&private_key="+privateKey+"&screen_size=375x667&udid=3a31d8b3f75a08c958747d41c4854673c669ef5f&uid="+bsh.args[1]+"&v=7"; | 358 | +String req = "app_version=5.8.1&article_id="+bsh.args[0]+"&client_type="+clientType+"&os_version=10.3.2&physical_channel=1&private_key="+privateKey+"&screen_size=375x667&session_key=37d73148be684c1424c353348f9cdc5a&udid=403b22e7c3749ffd84fff5e586f4f2c5e671520f&uid="+bsh.args[1]+"&v=7"; |
359 | MessageDigest md = MessageDigest.getInstance("MD5"); | 359 | MessageDigest md = MessageDigest.getInstance("MD5"); |
360 | byte[] btInput = req.getBytes(); | 360 | byte[] btInput = req.getBytes(); |
361 | md.update(btInput); | 361 | md.update(btInput); |
@@ -394,7 +394,7 @@ vars.put("searchValue",req+"&client_secret="+md5);</stri | @@ -394,7 +394,7 @@ vars.put("searchValue",req+"&client_secret="+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("searchValue",req+"&client_secret="+md5);</stri | @@ -407,10 +407,10 @@ vars.put("searchValue",req+"&client_secret="+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">获取文章评论列表</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("searchValue",req+"&client_secret="+md5);</stri | @@ -427,7 +427,7 @@ vars.put("searchValue",req+"&client_secret="+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("searchValue",req+"&client_secret="+md5);</stri | @@ -435,13 +435,13 @@ vars.put("searchValue",req+"&client_secret="+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">获取文章评论列表</stringProp> |
439 | </HTTPSamplerProxy> | 439 | </HTTPSamplerProxy> |
440 | <hashTree> | 440 | <hashTree> |
441 | <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="前置BeanShell" enabled="true"> | 441 | <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="前置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 = {"fd4ad5fcfa0de589ef238c0e7331b585"}; | @@ -450,7 +450,7 @@ String[] privateKeys = {"fd4ad5fcfa0de589ef238c0e7331b585"}; | ||
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 = "app_version=5.8.1&client_type="+clientType+"&datetime="+bsh.args[0]+"&fromPage=aFP_Root_Phone&gender=2,3&os_version=android6.0:BLN-AL10&physical_channel=2&private_key="+privateKey+"&screen_size=1080x1812&session_key=6471aeedc3b960d856b793789983d398&udid=863982030989458af245102e1b93ddd&uid="+bsh.args[1]+"&v=7&yh_channel=2"; | 453 | +String req = "app_version=5.8.1&article_id="+bsh.args[0]+"&client_type="+clientType+"&limit=10&os_version=10.1.1&page=1&physical_channel=1&private_key="+privateKey+"&screen_size=375x667&udid=3a31d8b3f75a08c958747d41c4854673c669ef5f&uid="+bsh.args[1]+"&v=7"; |
454 | MessageDigest md = MessageDigest.getInstance("MD5"); | 454 | MessageDigest md = MessageDigest.getInstance("MD5"); |
455 | byte[] btInput = req.getBytes(); | 455 | byte[] btInput = req.getBytes(); |
456 | md.update(btInput); | 456 | md.update(btInput); |
@@ -489,7 +489,7 @@ vars.put("searchValue",req+"&client_secret="+md5);</stri | @@ -489,7 +489,7 @@ vars.put("searchValue",req+"&client_secret="+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("searchValue",req+"&client_secret="+md5);</stri | @@ -502,10 +502,10 @@ vars.put("searchValue",req+"&client_secret="+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">获取文章内容详情的点赞、收藏、浏览数(降级)</stringProp> | 505 | + <stringProp name="TestPlan.comments">进入文章详情页时,用于展示相关文章</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("searchValue",req+"&client_secret="+md5);</stri | @@ -522,7 +522,7 @@ vars.put("searchValue",req+"&client_secret="+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("searchValue",req+"&client_secret="+md5);</stri | @@ -530,7 +530,7 @@ vars.put("searchValue",req+"&client_secret="+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">获取文章内容详情的点赞、收藏、浏览数(降级)</stringProp> | 533 | + <stringProp name="TestPlan.comments">进入文章详情页时,用于展示相关文章</stringProp> |
534 | </HTTPSamplerProxy> | 534 | </HTTPSamplerProxy> |
535 | <hashTree> | 535 | <hashTree> |
536 | <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="前置BeanShell" enabled="true"> | 536 | <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="前置BeanShell" enabled="true"> |
@@ -545,7 +545,7 @@ String[] privateKeys = {"fd4ad5fcfa0de589ef238c0e7331b585"}; | @@ -545,7 +545,7 @@ String[] privateKeys = {"fd4ad5fcfa0de589ef238c0e7331b585"}; | ||
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 = "app_version=5.8.1&client_type="+clientType+"&id="+bsh.args[0]+"&os_version=10.3.2&physical_channel=1&private_key="+privateKey+"&screen_size=375x667&session_key=37d73148be684c1424c353348f9cdc5a&udid=403b22e7c3749ffd84fff5e586f4f2c5e671520f&uid="+bsh.args[1]+"&v=7"; | 548 | +String req = "app_version=5.8.1&article_id="+bsh.args[0]+"&client_type="+clientType+"&limit=3&offset=0&os_version=10.3.2&physical_channel=1&private_key="+privateKey+"&screen_size=375x667&session_key=dbef84f3659c370fcd19de19e67a5556&tags=&udid=c383b9ed7696d2b31cf22685114a3a63eae58e95&uid="+bsh.args[1]+"&v=7"; |
549 | MessageDigest md = MessageDigest.getInstance("MD5"); | 549 | MessageDigest md = MessageDigest.getInstance("MD5"); |
550 | byte[] btInput = req.getBytes(); | 550 | byte[] btInput = req.getBytes(); |
551 | md.update(btInput); | 551 | md.update(btInput); |
@@ -584,7 +584,7 @@ vars.put("searchValue",req+"&client_secret="+md5);</stri | @@ -584,7 +584,7 @@ vars.put("searchValue",req+"&client_secret="+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("searchValue",req+"&client_secret="+md5);</stri | @@ -597,10 +597,10 @@ vars.put("searchValue",req+"&client_secret="+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">获取文章内容</stringProp> | 600 | + <stringProp name="TestPlan.comments">微信公众号</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("searchValue",req+"&client_secret="+md5);</stri | @@ -617,7 +617,7 @@ vars.put("searchValue",req+"&client_secret="+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("searchValue",req+"&client_secret="+md5);</stri | @@ -625,13 +625,108 @@ vars.put("searchValue",req+"&client_secret="+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">获取文章内容</stringProp> | 628 | + <stringProp name="TestPlan.comments">微信公众号</stringProp> |
629 | </HTTPSamplerProxy> | 629 | </HTTPSamplerProxy> |
630 | <hashTree> | 630 | <hashTree> |
631 | <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="前置BeanShell" enabled="true"> | 631 | <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="前置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 = {"android"}; | ||
639 | +String[] privateKeys = {"fd4ad5fcfa0de589ef238c0e7331b585"}; | ||
640 | +int rd = new Random().nextInt(1); | ||
641 | +String clientType = clientTypes[rd]; | ||
642 | +String privateKey = privateKeys[rd]; | ||
643 | +String req = "app_version=5.8.1&client_type="+clientType+"&method=app.document.config&os_version=10.1.1&physical_channel=1&private_key="+privateKey+"&screen_size=375x667&udid=3a31d8b3f75a08c958747d41c4854673c669ef5f&uid="+bsh.args[0]+"&v=7"; | ||
644 | +MessageDigest md = MessageDigest.getInstance("MD5"); | ||
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&0xff; | ||
651 | + if(bt<16){ | ||
652 | + sb.append(0); | ||
653 | + } | ||
654 | + sb.append(Integer.toHexString(bt)); | ||
655 | +} | ||
656 | +String md5 = sb.toString(); | ||
657 | +vars.put("searchValue",req+"&client_secret="+md5);</stringProp> | ||
658 | + </BeanShellPreProcessor> | ||
659 | + <hashTree/> | ||
660 | + <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="true"> | ||
661 | + <collectionProp name="Asserion.test_strings"> | ||
662 | + <stringProp name="1450572480">"code":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="固定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="前置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 = {"fd4ad5fcfa0de589ef238c0e7331b585"}; | @@ -640,7 +735,7 @@ String[] privateKeys = {"fd4ad5fcfa0de589ef238c0e7331b585"}; | ||
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 = "app_version=5.8.1&client_type="+clientType+"&id="+bsh.args[0]+"&os_version=10.3.2&physical_channel=1&private_key="+privateKey+"&screen_size=375x667&session_key=dbef84f3659c370fcd19de19e67a5556&udid=c383b9ed7696d2b31cf22685114a3a63eae58e95&uid="+bsh.args[1]+"&v=7&yh_channel=1"; | 738 | +String req = "app_version=5.8.1&client_type="+clientType+"&key=guang_detail_wechat&method=app.resources.getSingleTemplate&module=wechat&os_version=10.1.1&physical_channel=1&private_key="+privateKey+"&screen_size=375x667&udid=3a31d8b3f75a08c958747d41c4854673c669ef5f&uid="+bsh.args[0]+"&v=7"; |
644 | MessageDigest md = MessageDigest.getInstance("MD5"); | 739 | MessageDigest md = MessageDigest.getInstance("MD5"); |
645 | byte[] btInput = req.getBytes(); | 740 | byte[] btInput = req.getBytes(); |
646 | md.update(btInput); | 741 | md.update(btInput); |
-
Please register or login to post a comment