From edbf3c0fb81c8abd25a85c963ff09d5db0ef556e Mon Sep 17 00:00:00 2001
From: Rong <rong.gao@yoho.cn>
Date: Tue, 1 Aug 2017 15:54:20 +0800
Subject: [PATCH] commit by shell

---
 script/default/test.jmx | 1577 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 1 file changed, 273 insertions(+), 1304 deletions(-)

diff --git a/script/default/test.jmx b/script/default/test.jmx
index fa0ad51..5a24792 100644
--- a/script/default/test.jmx
+++ b/script/default/test.jmx
@@ -27,16 +27,6 @@
         </collectionProp>
         <stringProp name="TestPlan.comments"></stringProp>      </Arguments>
       <hashTree/>
-      <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="arguments_&#39046;&#21048;&#21048;&#21495;" enabled="true">
-        <collectionProp name="Arguments.arguments">
-          <elementProp name="COUPON_ID" elementType="Argument">
-            <stringProp name="Argument.name">COUPON_ID</stringProp>
-            <stringProp name="Argument.value">0</stringProp>
-            <stringProp name="Argument.metadata">=</stringProp>
-          </elementProp>
-        </collectionProp>
-        <stringProp name="TestPlan.comments"></stringProp>      </Arguments>
-      <hashTree/>
       <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_uid_mobile_openid" enabled="true">
         <stringProp name="TestPlan.comments"></stringProp>
         <stringProp name="filename">/opt/jmeter/data/uid_mobile_openid.csv</stringProp>
@@ -49,11 +39,11 @@
         <stringProp name="shareMode">shareMode.all</stringProp>
       </CSVDataSet>
       <hashTree/>
-      <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_hosts_pt" enabled="true">
+      <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_&#21830;&#21697;for&#27983;&#35272;" enabled="true">
         <stringProp name="TestPlan.comments"></stringProp>
-        <stringProp name="filename">/opt/jmeter/data/hosts_pt.csv</stringProp>
+        <stringProp name="filename">/opt/jmeter/data/product_10w.csv</stringProp>
         <stringProp name="fileEncoding">utf-8</stringProp>
-        <stringProp name="variableNames">HOST_API,HOST_SERVICE</stringProp>
+        <stringProp name="variableNames">product_skn</stringProp>
         <stringProp name="delimiter">,</stringProp>
         <boolProp name="quotedData">false</boolProp>
         <boolProp name="recycle">true</boolProp>
@@ -61,11 +51,11 @@
         <stringProp name="shareMode">shareMode.all</stringProp>
       </CSVDataSet>
       <hashTree/>
-      <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_&#21830;&#21697;for&#27983;&#35272;" enabled="true">
-        <stringProp name="TestPlan.comments"></stringProp>
-        <stringProp name="filename">/opt/jmeter/data/product_10w.csv</stringProp>
+      <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_&#21697;&#29260;&#25968;&#25454;" enabled="true">
+        <stringProp name="TestPlan.comments">&#21697;&#29260;&#25968;&#25454;</stringProp>
+        <stringProp name="filename">/opt/jmeter/data/brand.csv</stringProp>
         <stringProp name="fileEncoding">utf-8</stringProp>
-        <stringProp name="variableNames">product_skn</stringProp>
+        <stringProp name="variableNames">brand_id</stringProp>
         <stringProp name="delimiter">,</stringProp>
         <boolProp name="quotedData">false</boolProp>
         <boolProp name="recycle">true</boolProp>
@@ -73,11 +63,11 @@
         <stringProp name="shareMode">shareMode.all</stringProp>
       </CSVDataSet>
       <hashTree/>
-      <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_&#21697;&#29260;&#25968;&#25454;" enabled="true">
-        <stringProp name="TestPlan.comments">&#21697;&#29260;&#25968;&#25454;</stringProp>
-        <stringProp name="filename">/opt/jmeter/data/brand.csv</stringProp>
+      <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_&#39046;&#21048;&#25968;&#25454;" enabled="true">
+        <stringProp name="TestPlan.comments"></stringProp>
+        <stringProp name="filename">/opt/jmeter/data/coupon.csv</stringProp>
         <stringProp name="fileEncoding">utf-8</stringProp>
-        <stringProp name="variableNames">brand_id</stringProp>
+        <stringProp name="variableNames">coupon_id</stringProp>
         <stringProp name="delimiter">,</stringProp>
         <boolProp name="quotedData">false</boolProp>
         <boolProp name="recycle">true</boolProp>
@@ -109,7 +99,31 @@
         <stringProp name="shareMode">shareMode.all</stringProp>
       </CSVDataSet>
       <hashTree/>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/v5/resource/home" enabled="true">
+      <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_&#36891;" enabled="true">
+        <stringProp name="TestPlan.comments"></stringProp>
+        <stringProp name="filename">/opt/jmeter/data/guang.csv</stringProp>
+        <stringProp name="fileEncoding">utf-8</stringProp>
+        <stringProp name="variableNames">article_id,article_author_id,article_datetime</stringProp>
+        <stringProp name="delimiter">,</stringProp>
+        <boolProp name="quotedData">false</boolProp>
+        <boolProp name="recycle">true</boolProp>
+        <boolProp name="stopThread">false</boolProp>
+        <stringProp name="shareMode">shareMode.all</stringProp>
+      </CSVDataSet>
+      <hashTree/>
+      <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_&#35746;&#21333;" enabled="true">
+        <stringProp name="TestPlan.comments"></stringProp>
+        <stringProp name="filename">/opt/jmeter/data/order_code_10w.csv</stringProp>
+        <stringProp name="fileEncoding">utf-8</stringProp>
+        <stringProp name="variableNames">order_code</stringProp>
+        <stringProp name="delimiter">,</stringProp>
+        <boolProp name="quotedData">false</boolProp>
+        <boolProp name="recycle">true</boolProp>
+        <boolProp name="stopThread">false</boolProp>
+        <stringProp name="shareMode">shareMode.all</stringProp>
+      </CSVDataSet>
+      <hashTree/>
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_brand_allBrandList" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -122,10 +136,10 @@
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#39318;&#39029;&#36164;&#28304;&#20301;</stringProp>
+        <stringProp name="TestPlan.comments">&#21697;&#29260;&#21015;&#34920;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/v5/resource/home" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_brand_allBrandList" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -142,7 +156,7 @@
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/operations/api/v5/resource/home?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -150,7 +164,7 @@
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#39318;&#39029;&#36164;&#28304;&#20301;</stringProp>
+          <stringProp name="TestPlan.comments">&#21697;&#29260;&#21015;&#34920;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -165,7 +179,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;content_code=201504091403001&amp;fromPage=iFP_Home&amp;gender=1,3&amp;limit=100&amp;os_version=10.2.1&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=8be620e2d951d49128232f8b4c392422&amp;udid=380aebe1da2c72def222c78249f99ef08c18260a&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=1&quot;;
+String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_Brand&amp;gender=1,3&amp;method=app.brand.allBrandList&amp;os_version=android7.0:PIC-AL00&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=1080x1812&amp;session_key=bc9949073990385d2cd1b64eefaea4c3&amp;udid=8642740333827028839b86f80a96d1b&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=1&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -204,7 +218,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/v5/resource/get" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_brand_getBrandIntro" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -217,10 +231,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#33719;&#21462;&#36164;&#28304;&#20301;</stringProp>
+        <stringProp name="TestPlan.comments">&#26681;&#25454;&#21697;&#29260;ID&#33719;&#21462;&#21697;&#29260;&#20449;&#24687;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/v5/resource/get" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_brand_getBrandIntro" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -237,7 +251,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/operations/api/v5/resource/get?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -245,13 +259,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#33719;&#21462;&#36164;&#28304;&#20301;</stringProp>
+          <stringProp name="TestPlan.comments">&#26681;&#25454;&#21697;&#29260;ID&#33719;&#21462;&#21697;&#29260;&#20449;&#24687;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
+            <stringProp name="parameters">${brand_id} ${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -260,7 +274,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;content_code=8526f2fefcd07c575016f3eaf310c8fe&amp;fromPage=aFP_My&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=4d5fe679e37893c5f6eceb51833865d4&amp;udid=ed432eab860c878a96fcb46f365a23417f3e6b55&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.1&amp;brand_id=&quot;+bsh.args[0]+&quot;&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_BrandProList&amp;method=app.brand.getBrandIntro&amp;os_version=10.0.2&amp;physical_channel=2&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=0789c8675a9583d36c445a3a85ad1dd9&amp;udid=69f89cbd1ee7ce178ac3d211123af5249462e3c1&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -299,7 +313,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/v5/webshare/getShare" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_brand_banner" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -312,10 +326,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">WEB&#20998;&#20139;</stringProp>
+        <stringProp name="TestPlan.comments">&#26681;&#25454;&#21697;&#29260;ID&#33719;&#21462;&#21697;&#29260;&#30340;banner</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/v5/webshare/getShare" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_brand_banner" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -332,7 +346,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/operations/api/v5/webshare/getShare?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -340,13 +354,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">WEB&#20998;&#20139;</stringProp>
+          <stringProp name="TestPlan.comments">&#26681;&#25454;&#21697;&#29260;ID&#33719;&#21462;&#21697;&#29260;&#30340;banner</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
+            <stringProp name="parameters">${brand_id} ${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -355,7 +369,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;os_version=10.2.1&amp;physical_channel=2&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=14d56cb9d2fd8953297bafac5b764725&amp;share_id=2415&amp;udid=9c185a269c6f7f9202cd7b25bb2435056ac6a92e&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=2&quot;;
+String req = &quot;app_version=5.6.0&amp;brand_id=&quot;+bsh.args[0]+&quot;&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_BrandProList&amp;method=app.brand.banner&amp;os_version=10.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=fd8113d46aed40521c9d0f54a15f5665&amp;udid=8a3849212e610a4b03aeb19481f050263887edab&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -394,7 +408,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/v4/icon/getIcon" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v1/attention/getlist" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -407,10 +421,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#33719;&#21462;&#39318;&#39029;&#23567;&#22270;&#26631;&#37197;&#32622;</stringProp>
+        <stringProp name="TestPlan.comments">&#20998;&#31867;&#37324;&#38754;&#30340;&#20851;&#27880;&#39029;&#21015;&#34920;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/v4/icon/getIcon" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v1/attention/getlist" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -427,7 +441,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/operations/api/v4/icon/getIcon?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v1/attention/getlist?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -435,7 +449,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#33719;&#21462;&#39318;&#39029;&#23567;&#22270;&#26631;&#37197;&#32622;</stringProp>
+          <stringProp name="TestPlan.comments">&#20998;&#31867;&#37324;&#38754;&#30340;&#20851;&#27880;&#39029;&#21015;&#34920;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -450,7 +464,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_Lanuch&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;udid=0bb4ec033080c1ac87602172eb0920311a70d45a&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.4.0&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=&amp;gender=1,3&amp;limit=10&amp;os_version=android6.0.1:SM-C7000&amp;page=1&amp;physical_channel=2&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=1080x1920&amp;udid=9213f7324e57333c&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=2&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -489,7 +503,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/v5/entrance/getEntrance" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v2/article/getList" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -502,10 +516,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#20837;&#21475;&#23548;&#33322;</stringProp>
+        <stringProp name="TestPlan.comments">&#36891;&#30340;&#21015;&#34920;&#65288;pageCache&#65289;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/v5/entrance/getEntrance" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v2/article/getList" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -522,7 +536,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/operations/api/v5/entrance/getEntrance?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v2/article/getList?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -530,7 +544,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#20837;&#21475;&#23548;&#33322;</stringProp>
+          <stringProp name="TestPlan.comments">&#36891;&#30340;&#21015;&#34920;&#65288;pageCache&#65289;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -545,7 +559,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.7.0&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_Gender&amp;os_version=10.3.1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;udid=155baae56a5ce7d9e7f9bf037a41a9e8fd766dda&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_GuangContainer&amp;gender=1,3&amp;limit=20&amp;os_version=10.2.1&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=8be620e2d951d49128232f8b4c392422&amp;sort_id=0&amp;udid=380aebe1da2c72def222c78249f99ef08c18260a&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=1&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -584,7 +598,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/v6/category/getCategory" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v2/article/getSimpleArticleList" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -597,10 +611,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#20391;&#36793;&#26639;&#23548;&#33322;</stringProp>
+        <stringProp name="TestPlan.comments">&#33719;&#21462;&#27983;&#35272;&#25968;&#65292;&#28857;&#36190;&#25968;&#31561;&#20449;&#24687;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/v6/category/getCategory" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v2/article/getSimpleArticleList" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -617,7 +631,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/operations/api/v6/category/getCategory?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v2/article/getSimpleArticleList?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -625,13 +639,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#20391;&#36793;&#26639;&#23548;&#33322;</stringProp>
+          <stringProp name="TestPlan.comments">&#33719;&#21462;&#27983;&#35272;&#25968;&#65292;&#28857;&#36190;&#25968;&#31561;&#20449;&#24687;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
+            <stringProp name="parameters">${article_id} ${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -640,7 +654,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&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=414x736&amp;udid=6bde85c56740592cbe550ac4dc459d67680a8aef&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.1&amp;articleIds=&quot;+bsh.args[0]+&quot;&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_GuangContainer&amp;gender=2,3&amp;os_version=10.2.1&amp;physical_channel=2&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=aed364774108fa1b85bfb218f34c28c7&amp;sortId=0&amp;udid=7887164c6c98712ad1f214cacec3316f4aae4c51&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&amp;yh_channel=2&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -679,7 +693,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/v5/version/getVersion" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v2/article/getTopList" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -692,10 +706,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#33719;&#21462;APP&#29256;&#26412;&#21319;&#32423;&#25552;&#37266;&#65288;&#38656;&#25552;&#20379;&#38477;&#32423;&#65289;</stringProp>
+        <stringProp name="TestPlan.comments">&#25991;&#31456;&#32622;&#39030;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/v5/version/getVersion" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v2/article/getTopList" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -712,7 +726,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/operations/api/v5/version/getVersion?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v2/article/getTopList?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -720,7 +734,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#33719;&#21462;APP&#29256;&#26412;&#21319;&#32423;&#25552;&#37266;&#65288;&#38656;&#25552;&#20379;&#38477;&#32423;&#65289;</stringProp>
+          <stringProp name="TestPlan.comments">&#25991;&#31456;&#32622;&#39030;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -735,7 +749,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.7.0&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_Lanuch&amp;os_version=10.3.1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;udid=155baae56a5ce7d9e7f9bf037a41a9e8fd766dda&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_GuangContainer&amp;gender=1,3&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[0]+&quot;&amp;v=7&amp;yh_channel=1&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -774,7 +788,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_cover_getCoverStart" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v2/article/getTagTop" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -787,10 +801,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#33719;&#21462;&#39318;&#39029;&#21551;&#21160;&#39029;</stringProp>
+        <stringProp name="TestPlan.comments">&#33719;&#21462;&#36891;&#30340;&#28909;&#38376;&#26631;&#31614;&#65288;PC&#31471;&#65289;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_cover_getCoverStart" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v2/article/getTagTop" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -807,7 +821,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v2/article/getTagTop?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -815,22 +829,22 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#33719;&#21462;&#39318;&#39029;&#21551;&#21160;&#39029;</stringProp>
+          <stringProp name="TestPlan.comments">&#33719;&#21462;&#36891;&#30340;&#28909;&#38376;&#26631;&#31614;&#65288;PC&#31471;&#65289;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
+            <stringProp name="parameters"></stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
-String[] clientTypes = {&quot;android&quot;};
-String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
+String[] clientTypes = {&quot;web&quot;};
+String[] privateKeys = {&quot;0ed29744ed318fd28d2c07985d3ba633&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_Gender&amp;method=app.cover.getCoverStart&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;type=iphone5&amp;udid=6bde85c56740592cbe550ac4dc459d67680a8aef&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.0&amp;client_type=&quot;+clientType+&quot;&amp;limit=20&amp;os_version=yohobuy:web&amp;page=4&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=720x1280&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -869,7 +883,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_resources_getNotices" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v1/category/get" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -882,10 +896,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#23383;&#20844;&#21578;&#65288;&#38656;&#25552;&#20379;&#38477;&#32423;&#65289;</stringProp>
+        <stringProp name="TestPlan.comments">&#33719;&#21462;&#36891;&#19979;&#30340;&#20998;&#31867;&#21015;&#34920;&#65288;&#32531;&#23384;&#26102;&#38388;&#24310;&#38271;&#65289;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_resources_getNotices" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v1/category/get" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -902,7 +916,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v1/category/get?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -910,7 +924,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#23383;&#20844;&#21578;&#65288;&#38656;&#25552;&#20379;&#38477;&#32423;&#65289;</stringProp>
+          <stringProp name="TestPlan.comments">&#33719;&#21462;&#36891;&#19979;&#30340;&#20998;&#31867;&#21015;&#34920;&#65288;&#32531;&#23384;&#26102;&#38388;&#24310;&#38271;&#65289;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -925,7 +939,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=aFP_My&amp;method=app.resources.getNotices&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=560c128a19e4c0c545c9be0464e04b94&amp;udid=605211968c20393e88d68173609bdbfeff0af956&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_GuangMain&amp;gender=1,3&amp;os_version=10.2.1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=8be620e2d951d49128232f8b4c392422&amp;udid=380aebe1da2c72def222c78249f99ef08c18260a&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=1&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -964,7 +978,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_resources_config_clientInitConfig" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/*/article/getArticleByViewsNum" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -977,10 +991,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#23458;&#25143;&#31471;&#21021;&#22987;&#21270;&#37197;&#32622;</stringProp>
+        <stringProp name="TestPlan.comments">&#33719;&#21462;48&#23567;&#26102;&#20869;&#27983;&#35272;&#26368;&#22810;&#30340;&#25991;&#31456;&#65288;PC&#31471;&#65289;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_resources_config_clientInitConfig" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/*/article/getArticleByViewsNum" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -997,7 +1011,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v2/article/getArticleByViewsNum?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -1005,13 +1019,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#23458;&#25143;&#31471;&#21021;&#22987;&#21270;&#37197;&#32622;</stringProp>
+          <stringProp name="TestPlan.comments">&#33719;&#21462;48&#23567;&#26102;&#20869;&#27983;&#35272;&#26368;&#22810;&#30340;&#25991;&#31456;&#65288;PC&#31471;&#65289;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
+            <stringProp name="parameters"></stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -1020,7 +1034,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=1.4.3&amp;client_type=&quot;+clientType+&quot;&amp;method=app.resources.config.clientInitConfig&amp;os_version=6.5.9&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x555&amp;session_key=&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.0&amp;client_type=&quot;+clientType+&quot;&amp;gender=1,3&amp;limit=10&amp;os_version=yohobuy:web&amp;page=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=720x1280&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -1059,7 +1073,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_resources_getOneSpecial" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/service/v2/article/getArticle" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -1072,10 +1086,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#33719;&#21462;&#19987;&#21306;&#20449;&#24687;</stringProp>
+        <stringProp name="TestPlan.comments">&#26681;&#25454;&#25991;&#31456;id&#21644;&#23458;&#25143;&#31471;&#31867;&#22411;&#33719;&#24471;&#25991;&#31456;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_resources_getOneSpecial" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/service/v2/article/getArticle" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -1092,7 +1106,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/service/v2/article/getArticleContent?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -1100,13 +1114,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#33719;&#21462;&#19987;&#21306;&#20449;&#24687;</stringProp>
+          <stringProp name="TestPlan.comments">&#26681;&#25454;&#25991;&#31456;id&#21644;&#23458;&#25143;&#31471;&#31867;&#22411;&#33719;&#24471;&#25991;&#31456;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters"></stringProp>
+            <stringProp name="parameters">${article_id} ${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -1115,7 +1129,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.0&amp;client_type=&quot;+clientType+&quot;&amp;method=app.resources.getOneSpecial&amp;os_version=yohobuy:web&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=720x1280&amp;special_id=11&amp;v=7&quot;;
+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.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;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -1154,7 +1168,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_passport_profile" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v2/article/getArticleBaseInfo" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -1167,10 +1181,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#33719;&#21462;&#29992;&#25143;&#20010;&#20154;&#20449;&#24687;</stringProp>
+        <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#31456;&#20869;&#23481;&#35814;&#24773;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_passport_profile" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v2/article/getArticleBaseInfo" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -1187,7 +1201,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v2/article/getArticleBaseInfo?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -1195,13 +1209,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#33719;&#21462;&#29992;&#25143;&#20010;&#20154;&#20449;&#24687;</stringProp>
+          <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#31456;&#20869;&#23481;&#35814;&#24773;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
+            <stringProp name="parameters">${article_id} ${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -1210,7 +1224,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;_sncp=NGJjYjhkNmwwZGM0OTk0YmQyMTMwZjlmoTZmzjY4cjN&amp;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=aFP_My&amp;method=app.passport.profile&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=e29f98f3b5b7c2beb6ceee9736281f29&amp;udid=c35b27a1641e68261d2f8945575115836720676d&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+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;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -1249,7 +1263,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_passport_checkIsBindedOrRelated" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v1/article/getArticleNotice" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -1262,10 +1276,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#26816;&#27979;&#29992;&#25143;&#26159;&#21542;&#32465;&#23450;&#25163;&#26426;&#21495;&#65288;&#21487;&#30452;&#25509;&#38477;&#32423;&#65289;</stringProp>
+        <stringProp name="TestPlan.comments">1</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_passport_checkIsBindedOrRelated" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v1/article/getArticleNotice" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -1282,7 +1296,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v1/article/getArticleNotice?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -1290,13 +1304,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#26816;&#27979;&#29992;&#25143;&#26159;&#21542;&#32465;&#23450;&#25163;&#26426;&#21495;&#65288;&#21487;&#30452;&#25509;&#38477;&#32423;&#65289;</stringProp>
+          <stringProp name="TestPlan.comments">1</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
+            <stringProp name="parameters">${article_datetime} ${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -1305,7 +1319,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=aFP_My&amp;method=app.passport.checkIsBindedOrRelated&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=d4464aa80683527ba1bc687cef8c7d8e&amp;udid=92ddf13bd3ec81b386bab705980f2bbae3cc3621&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+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;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -1344,7 +1358,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_user_instalment_getStatus" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/*/article/getArticlePraiseAndFavor" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -1357,10 +1371,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#33719;&#21462;&#29992;&#25143;&#20998;&#26399;&#29366;&#24577;</stringProp>
+        <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>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_user_instalment_getStatus" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/*/article/getArticlePraiseAndFavor" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -1377,7 +1391,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v2/article/getArticlePraiseAndFavor?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -1385,13 +1399,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#33719;&#21462;&#29992;&#25143;&#20998;&#26399;&#29366;&#24577;</stringProp>
+          <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>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
+            <stringProp name="parameters">${article_id} ${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -1400,7 +1414,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;method=user.instalment.getStatus&amp;os_version=yohobuy:h5&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=720x1280&amp;session_key=2920b832c8ad6f81fb2eec4103a29b47&amp;session_type=android&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+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;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -1439,7 +1453,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_sort_get" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v1/share/guang" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -1452,10 +1466,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#32769;&#29256;&#26412;&#33719;&#21462;&#20998;&#31867;&#25509;&#21475;</stringProp>
+        <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#31456;&#20869;&#23481;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_sort_get" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v1/share/guang" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -1472,7 +1486,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v1/share/guang?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -1480,13 +1494,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#32769;&#29256;&#26412;&#33719;&#21462;&#20998;&#31867;&#25509;&#21475;</stringProp>
+          <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#31456;&#20869;&#23481;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
+            <stringProp name="parameters">${article_id} ${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -1495,7 +1509,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=aFP_Category&amp;method=app.sort.get&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=c2483cef0e109a241557f9673932559d&amp;udid=6bde85c56740592cbe550ac4dc459d67680a8aef&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+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;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -1534,7 +1548,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_coupons_queryUserCouponRemind" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/service/*/article/getArticleContent" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -1547,10 +1561,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#26597;&#19979;&#29992;&#25143;&#21048;&#25552;&#37266;&#65288;&#21487;&#30452;&#25509;&#38477;&#32423;&#65289;</stringProp>
+        <stringProp name="TestPlan.comments">&#26681;&#25454;&#25991;&#31456;id&#21644;&#23458;&#25143;&#31471;&#31867;&#22411;&#33719;&#21462;&#36891;&#30340;&#35814;&#24773;&#20869;&#23481;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_coupons_queryUserCouponRemind" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/service/*/article/getArticleContent" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -1567,7 +1581,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/service/v2/article/getArticleContent?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -1575,13 +1589,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#26597;&#19979;&#29992;&#25143;&#21048;&#25552;&#37266;&#65288;&#21487;&#30452;&#25509;&#38477;&#32423;&#65289;</stringProp>
+          <stringProp name="TestPlan.comments">&#26681;&#25454;&#25991;&#31456;id&#21644;&#23458;&#25143;&#31471;&#31867;&#22411;&#33719;&#21462;&#36891;&#30340;&#35814;&#24773;&#20869;&#23481;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
+            <stringProp name="parameters">${article_id} ${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -1590,7 +1604,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=aFP_My&amp;gender=1,3&amp;method=app.coupons.queryUserCouponRemind&amp;os_version=android5.0.2:vivo_Y51A&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=540x960&amp;session_key=91f5b3fc932aac5500d59b7ac307abc8&amp;udid=A100004E1A486Baf4770812e53076b&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=1&quot;;
+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.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;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -1629,7 +1643,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_recommend_popup" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/service/v2/article/getBrand" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -1642,10 +1656,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#24377;&#31383;&#65288;&#21487;&#30452;&#25509;&#38477;&#32423;&#65289;</stringProp>
+        <stringProp name="TestPlan.comments">&#36827;&#20837;&#25991;&#31456;&#35814;&#24773;&#39029;&#26102;&#65292;&#29992;&#20110;&#23637;&#31034;&#30456;&#20851;&#21697;&#29260;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_recommend_popup" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/service/v2/article/getBrand" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -1662,7 +1676,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/service/v2/article/getBrand?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -1670,13 +1684,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#24377;&#31383;&#65288;&#21487;&#30452;&#25509;&#38477;&#32423;&#65289;</stringProp>
+          <stringProp name="TestPlan.comments">&#36827;&#20837;&#25991;&#31456;&#35814;&#24773;&#39029;&#26102;&#65292;&#29992;&#20110;&#23637;&#31034;&#30456;&#20851;&#21697;&#29260;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
+            <stringProp name="parameters">${article_id} ${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -1685,7 +1699,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_Home&amp;method=app.recommend.popup&amp;os_version=10.0.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;rec_pos=100010&amp;screen_size=414x736&amp;session_key=7a4adc867325ac0636afd8b27b2e1f3c&amp;udid=eb51e3553552194afe96700e1d69eb78fc32a442&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+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;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -1724,7 +1738,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_Shopping_count" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v1/comments/getList" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -1737,10 +1751,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#36141;&#29289;&#36710;&#25968;&#37327;</stringProp>
+        <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#31456;&#35780;&#35770;&#21015;&#34920;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_Shopping_count" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v1/comments/getList" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -1757,7 +1771,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v1/comments/getList?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -1765,13 +1779,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#36141;&#29289;&#36710;&#25968;&#37327;</stringProp>
+          <stringProp name="TestPlan.comments">&#33719;&#21462;&#25991;&#31456;&#35780;&#35770;&#21015;&#34920;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
+            <stringProp name="parameters">${article_id} ${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -1780,7 +1794,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.9.0&amp;client_type=&quot;+clientType+&quot;&amp;method=app.Shopping.count&amp;os_version=yohobuy:h5&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=720x1280&amp;shopping_key=&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+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;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -1819,7 +1833,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_sort_fromBigData" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/service/v2/article/getOtherArticle" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -1832,10 +1846,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#20998;&#31867;&#21015;&#34920;&#22823;&#25968;&#25454;</stringProp>
+        <stringProp name="TestPlan.comments">&#36827;&#20837;&#25991;&#31456;&#35814;&#24773;&#39029;&#26102;&#65292;&#29992;&#20110;&#23637;&#31034;&#30456;&#20851;&#25991;&#31456;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_sort_fromBigData" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/service/v2/article/getOtherArticle" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -1852,7 +1866,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/service/v2/article/getOtherArticle?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -1860,13 +1874,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#20998;&#31867;&#21015;&#34920;&#22823;&#25968;&#25454;</stringProp>
+          <stringProp name="TestPlan.comments">&#36827;&#20837;&#25991;&#31456;&#35814;&#24773;&#39029;&#26102;&#65292;&#29992;&#20110;&#23637;&#31034;&#30456;&#20851;&#25991;&#31456;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
+            <stringProp name="parameters">${article_id} ${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -1875,7 +1889,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;channel_id=4&amp;client_type=&quot;+clientType+&quot;&amp;contentCode=e823582db5ead63c82e0d348c4e6a6bb&amp;fromPage=aFP_Category&amp;method=app.sort.fromBigData&amp;msort=21&amp;os_version=10.3.2&amp;physical_channel=4&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=820e45d1ae0ecfd8e37244b344444f5a&amp;udid=04d8799b2594c451e9d95a9f44eca49fd28f0ac5&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+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=&#27604;&#20271;,&#40575;&#26199;,&#20355;&#29239;,&#26519;&#20426;&#26480;,Drake,&#36816;&#21160;,&#25143;&#22806;,&#34903;&#22836;&amp;udid=c383b9ed7696d2b31cf22685114a3a63eae58e95&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -1914,7 +1928,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_yoho_redpacket" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_document_config" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -1927,10 +1941,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#32418;&#21253;&#65288;&#21487;&#30452;&#25509;&#38477;&#32423;&#65289;</stringProp>
+        <stringProp name="TestPlan.comments">&#24494;&#20449;&#20844;&#20247;&#21495;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_yoho_redpacket" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_document_config" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -1955,7 +1969,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#32418;&#21253;&#65288;&#21487;&#30452;&#25509;&#38477;&#32423;&#65289;</stringProp>
+          <stringProp name="TestPlan.comments">&#24494;&#20449;&#20844;&#20247;&#21495;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -1970,7 +1984,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_My&amp;method=app.yoho.redpacket&amp;os_version=10.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=6c11cdee1b6002c72cfdfdab8b6de642&amp;udid=ef8fa5d50340674427c91275b41f75288842cc12&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+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;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -2009,7 +2023,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_home_newPreference" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_resources_getSingleTemplate" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -2022,10 +2036,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#20010;&#20154;&#20013;&#24515;&#24213;&#37096;&#20026;&#20320;&#20248;&#36873;</stringProp>
+        <stringProp name="TestPlan.comments">1</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_home_newPreference" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_resources_getSingleTemplate" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -2050,7 +2064,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#20010;&#20154;&#20013;&#24515;&#24213;&#37096;&#20026;&#20320;&#20248;&#36873;</stringProp>
+          <stringProp name="TestPlan.comments">1</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -2065,7 +2079,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_RecommendProduct&amp;limit=30&amp;method=app.home.newPreference&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;rec_pos=100004&amp;screen_size=375x667&amp;udid=9561cd2262d04577127d43b483232a2f745dc25b&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=1&quot;;
+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;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -2104,7 +2118,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_home_getInfoNum" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/service/*/author/getAuthor" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -2117,10 +2131,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#20010;&#20154;&#20013;&#24515;&#30340;&#21508;&#31181;&#25968;&#23383;</stringProp>
+        <stringProp name="TestPlan.comments">&#26681;&#25454;&#20316;&#32773;id&#33719;&#21462;&#20316;&#32773;&#20449;&#24687;&#65288;&#21487;&#38477;&#32423;&#65289;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_home_getInfoNum" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/service/*/author/getAuthor" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -2137,7 +2151,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/service/v1/author/getAuthor?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -2145,13 +2159,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#20010;&#20154;&#20013;&#24515;&#30340;&#21508;&#31181;&#25968;&#23383;</stringProp>
+          <stringProp name="TestPlan.comments">&#26681;&#25454;&#20316;&#32773;id&#33719;&#21462;&#20316;&#32773;&#20449;&#24687;&#65288;&#21487;&#38477;&#32423;&#65289;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
+            <stringProp name="parameters">${article_author_id} ${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -2160,7 +2174,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_AppDelegate&amp;method=app.home.getInfoNum&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=c2483cef0e109a241557f9673932559d&amp;udid=6bde85c56740592cbe550ac4dc459d67680a8aef&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.1&amp;author_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=b94ef83641963fac4240ff6bf2d7c8b9&amp;udid=6d0c217d6fad39d94ddbfa676c0a01194e1bdb9d&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -2199,7 +2213,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_inbox_getTotal" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_show_showChannel" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -2212,10 +2226,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#39318;&#39029;&#21491;&#19978;&#26041;&#28040;&#24687;&#30418;&#23376;&#65288;&#21487;&#30452;&#25509;&#38477;&#32423;&#65289;</stringProp>
+        <stringProp name="TestPlan.comments">show&#39057;&#36947;&#21015;&#34920;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_inbox_getTotal" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_show_showChannel" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -2240,7 +2254,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#39318;&#39029;&#21491;&#19978;&#26041;&#28040;&#24687;&#30418;&#23376;&#65288;&#21487;&#30452;&#25509;&#38477;&#32423;&#65289;</stringProp>
+          <stringProp name="TestPlan.comments">show&#39057;&#36947;&#21015;&#34920;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -2255,7 +2269,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;is_read=N&amp;method=app.inbox.getTotal&amp;os_version=8.3&amp;physical_channel=2&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=779ad0263fdaf7ae4d6cd2d6f71b6b38&amp;udid=a2c948fc82ff58a0317cf7e751d13dcd0aa54fa3&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_ShowMain&amp;limit=20&amp;method=show.showChannel&amp;os_version=10.3.2&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=be7423e4fea423fa5336682a9b01f71a&amp;udid=aa352294e8ef4065dfa75b7fb2a6c3bc19481ce3&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -2294,7 +2308,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_coupons_total" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_inbox_getAllInboxCatInfo" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -2307,10 +2321,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#20248;&#24800;&#21048;&#25968;&#23383;</stringProp>
+        <stringProp name="TestPlan.comments">&#28040;&#24687;&#20998;&#31867;&#21015;&#34920;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_coupons_total" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_inbox_getAllInboxCatInfo" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -2335,7 +2349,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#20248;&#24800;&#21048;&#25968;&#23383;</stringProp>
+          <stringProp name="TestPlan.comments">&#28040;&#24687;&#20998;&#31867;&#21015;&#34920;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -2350,7 +2364,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_Login&amp;method=app.coupons.total&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=dfa69d983755f1de704ded4498d70e59&amp;type=notuse&amp;udid=0bb4ec033080c1ac87602172eb0920311a70d45a&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=&amp;gender=1,3&amp;method=app.inbox.getAllInboxCatInfo&amp;os_version=android7.0:KNT-AL10&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=1080x1806&amp;session_key=3fd76cabfbc3d8cf3e02b70241a6cbf1&amp;udid=8635390348166301b96b551a739b4ac&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=1&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -2389,7 +2403,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_helper_getServiceOnline" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_inbox_getlistnew" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -2402,10 +2416,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#22312;&#32447;&#23458;&#26381;&#31867;&#22411;&#65288;&#38477;&#32423;&#20043;&#21518;&#40664;&#35748;&#20840;&#26159;3&#65289;</stringProp>
+        <stringProp name="TestPlan.comments">&#33719;&#21462;&#29992;&#25143;&#30340;&#28040;&#24687;&#21015;&#34920;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_helper_getServiceOnline" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_inbox_getlistnew" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -2430,7 +2444,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#22312;&#32447;&#23458;&#26381;&#31867;&#22411;&#65288;&#38477;&#32423;&#20043;&#21518;&#40664;&#35748;&#20840;&#26159;3&#65289;</stringProp>
+          <stringProp name="TestPlan.comments">&#33719;&#21462;&#29992;&#25143;&#30340;&#28040;&#24687;&#21015;&#34920;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -2445,7 +2459,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.7.0&amp;client_type=&quot;+clientType+&quot;&amp;method=app.helper.getServiceOnline&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=320x568&amp;udid=adafa5b0513c52fe12bf37003826ab77b99f952e&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;displayTab=4&amp;gender=2,3&amp;limit=60&amp;method=app.inbox.getlistnew&amp;os_version=android7.0:MHA-AL00&amp;page=1&amp;physical_channel=2&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=1080x1812&amp;session_key=30cc1f4e398894a1759a0871d00d943e&amp;udid=8650310338806901e4d45f49de06db2&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=2&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -2484,7 +2498,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_activity_getlist" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_web_favorite_product" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -2497,10 +2511,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#20998;&#20139;&#36141;&#31561;&#27963;&#21160;&#21015;&#34920;</stringProp>
+        <stringProp name="TestPlan.comments">PC&#31471;&#25910;&#34255;&#30340;&#21830;&#21697;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_activity_getlist" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_web_favorite_product" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -2525,7 +2539,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#20998;&#20139;&#36141;&#31561;&#27963;&#21160;&#21015;&#34920;</stringProp>
+          <stringProp name="TestPlan.comments">PC&#31471;&#25910;&#34255;&#30340;&#21830;&#21697;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -2535,12 +2549,12 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
-String[] clientTypes = {&quot;android&quot;};
-String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
+String[] clientTypes = {&quot;web&quot;};
+String[] privateKeys = {&quot;0ed29744ed318fd28d2c07985d3ba633&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.7.0&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=aFP_My&amp;method=app.activity.getlist&amp;os_version=10.0.1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=0a0b7646f81b6a5f5ebc8c54d4337c3e&amp;udid=de010d38c2bd111e6887e36e7596352814e7a001&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.0&amp;client_type=&quot;+clientType+&quot;&amp;limit=500&amp;method=web.favorite.product&amp;os_version=yohobuy:web&amp;page=0&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=720x1280&amp;session_key=1f90a18f1e992f3e24c94c71b2de5b11&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -2579,7 +2593,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_newproduct_recbrand" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_favorite_product" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -2592,10 +2606,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#26032;&#21697;&#21040;&#30528;&#25512;&#33616;&#21697;&#29260;</stringProp>
+        <stringProp name="TestPlan.comments">&#26597;&#35810;&#25910;&#34255;&#30340;&#21830;&#21697;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_newproduct_recbrand" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_favorite_product" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -2620,7 +2634,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#26032;&#21697;&#21040;&#30528;&#25512;&#33616;&#21697;&#29260;</stringProp>
+          <stringProp name="TestPlan.comments">&#26597;&#35810;&#25910;&#34255;&#30340;&#21830;&#21697;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -2635,7 +2649,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;limit=60&amp;method=app.newproduct.recbrand&amp;os_version=10.3.2&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=437f86ad70b9832a1884c357b96e8ffe&amp;udid=fc2fdedc84327f14de31f79adbcd0de61fad0afd&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=1&quot;;
+String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_MineCollectionGoods&amp;limit=500&amp;method=app.favorite.product&amp;os_version=10.2.1&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=8be620e2d951d49128232f8b4c392422&amp;udid=380aebe1da2c72def222c78249f99ef08c18260a&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -2674,7 +2688,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_newproduct_reclist" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_favorite_brand" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -2687,10 +2701,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#26032;&#21697;&#21040;&#30528;&#25512;&#33616;&#21830;&#21697;&#21015;&#34920;</stringProp>
+        <stringProp name="TestPlan.comments">&#33719;&#21462;&#25910;&#34255;&#30340;&#21697;&#29260;&#21015;&#34920;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_newproduct_reclist" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_favorite_brand" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -2715,7 +2729,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#26032;&#21697;&#21040;&#30528;&#25512;&#33616;&#21830;&#21697;&#21015;&#34920;</stringProp>
+          <stringProp name="TestPlan.comments">&#33719;&#21462;&#25910;&#34255;&#30340;&#21697;&#29260;&#21015;&#34920;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -2730,7 +2744,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;gender=1,3&amp;limit=20&amp;method=app.newproduct.reclist&amp;order=&amp;os_version=android5.1.1:Redmi_Note_3&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=1080x1920&amp;session_key=7ddadfafd388aba86ff13f0d51adf591&amp;udid=8610840369852596e0de9aef48b93f6&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=1&quot;;
+String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_MineCollectionBrand&amp;gender=2,3&amp;limit=10&amp;method=app.favorite.brand&amp;os_version=10.3.2&amp;page=1&amp;physical_channel=2&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=84bc728763b80b091ae6f424ecb72ac6&amp;udid=970ef77a0099e51f2a5e28bcebfe2bfc6b15bd45&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -2769,7 +2783,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_newproduct_recshop" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_browse_product" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -2782,10 +2796,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#26032;&#21697;&#21040;&#30528;&#25512;&#33616;&#24215;&#38138;</stringProp>
+        <stringProp name="TestPlan.comments">&#27983;&#35272;&#35760;&#24405;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_newproduct_recshop" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_browse_product" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -2810,7 +2824,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#26032;&#21697;&#21040;&#30528;&#25512;&#33616;&#24215;&#38138;</stringProp>
+          <stringProp name="TestPlan.comments">&#27983;&#35272;&#35760;&#24405;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -2825,7 +2839,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;contentCode=1f2e07cb63811680154ba693c954dd62&amp;gender=1,3&amp;limit=10&amp;method=app.newproduct.recshop&amp;os_version=android5.1.1:Redmi_Note_3&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=1080x1920&amp;session_key=7ddadfafd388aba86ff13f0d51adf591&amp;udid=8610840369852596e0de9aef48b93f6&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=1&quot;;
+String req = &quot;app_version=5.6.0&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_MineBrowseHistory&amp;limit=100&amp;method=app.browse.product&amp;os_version=9.2.1&amp;page=1&amp;physical_channel=2&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=320x568&amp;session_key=53ca616ec8239f724f9cbad6e4f32866&amp;udid=ee2b2359d526f5665357aa76727f8c5d9fc8ccb6&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -2864,7 +2878,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_product_goodDetail" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_SpaceOrders_get" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -2877,10 +2891,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#22909;&#36135;&#35814;&#24773;</stringProp>
+        <stringProp name="TestPlan.comments">&#35746;&#21333;&#21015;&#34920;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_product_goodDetail" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_SpaceOrders_get" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -2905,108 +2919,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#22909;&#36135;&#35814;&#24773;</stringProp>
-        </HTTPSamplerProxy>
-        <hashTree>
-          <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
-            <stringProp name="TestPlan.comments"></stringProp>
-            <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${product_skn} ${uid}</stringProp>
-            <stringProp name="filename"></stringProp>
-            <stringProp name="script">import java.security.MessageDigest;
-import java.util.Random;
-String[] clientTypes = {&quot;android&quot;};
-String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
-int rd = new Random().nextInt(1);
-String clientType = clientTypes[rd];
-String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.6.0&amp;client_type=&quot;+clientType+&quot;&amp;method=app.product.goodDetail&amp;os_version=9.0.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;product_skn=&quot;+bsh.args[0]+&quot;&amp;screen_size=414x736&amp;session_key=0da72536c71ea0956800afdaf71ae088&amp;udid=eae1c459cc40e95414ef186b1d2ad7eac65b9768&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
-MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
-byte[] btInput = req.getBytes();
-md.update(btInput);
-byte[] btResult = md.digest();
-StringBuffer sb = new StringBuffer();
-for(byte b : btResult){
-    int bt = b&amp;0xff;
-    if(bt&lt;16){
-        sb.append(0);
-    }
-    sb.append(Integer.toHexString(bt));
-}
-String md5 = sb.toString();
-vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>
-          </BeanShellPreProcessor>
-          <hashTree/>
-          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">
-            <collectionProp name="Asserion.test_strings">
-              <stringProp name="1450572480">&quot;code&quot;:200</stringProp>
-            </collectionProp>
-            <stringProp name="TestPlan.comments"></stringProp>
-            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
-            <boolProp name="Assertion.assume_success">false</boolProp>
-            <intProp name="Assertion.test_type">16</intProp>
-          </ResponseAssertion>
-          <hashTree/>
-        </hashTree>
-        <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">
-          <stringProp name="TestPlan.comments"></stringProp>
-          <doubleProp>
-            <name>throughput</name>
-            <value>600</value>
-            <savedValue>0.0</savedValue>
-          </doubleProp>
-          <intProp name="calcMode">2</intProp>
-        </ConstantThroughputTimer>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/shops/service/v1/favorite/getUidBrandFav" enabled="true">
-        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-          <intProp name="LoopController.loops">-1</intProp>
-        </elementProp>
-        <stringProp name="ThreadGroup.num_threads">1</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">10</stringProp>
-        <longProp name="ThreadGroup.start_time">1488865571000</longProp>
-        <longProp name="ThreadGroup.end_time">1488865571000</longProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">1</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/shops/service/v1/favorite/getUidBrandFav" enabled="true">
-          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
-            <collectionProp name="Arguments.arguments">
-              <elementProp name="" elementType="HTTPArgument">
-                <boolProp name="HTTPArgument.always_encode">false</boolProp>
-                <stringProp name="Argument.value"></stringProp>
-                <stringProp name="Argument.metadata">=</stringProp>
-              </elementProp>
-            </collectionProp>
-          </elementProp>
-          <stringProp name="HTTPSampler.domain"></stringProp>
-          <stringProp name="HTTPSampler.port"></stringProp>
-          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
-          <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/shops/service/v1/favorite/getUidBrandFav?${searchValue}</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <boolProp name="HTTPSampler.monitor">false</boolProp>
-          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">1</stringProp>
+          <stringProp name="TestPlan.comments">&#35746;&#21333;&#21015;&#34920;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${brand_id} ${uid}</stringProp>
+            <stringProp name="parameters">${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -3015,7 +2934,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.7.0&amp;brandId=&quot;+bsh.args[0]+&quot;&amp;client_type=&quot;+clientType+&quot;&amp;os_version=10.2.1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=c5c7191d1dbe5362ee2d32b65d7a141f&amp;udid=3536012226e5566d334c61659e91875163de603e&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.0&amp;client_type=&quot;+clientType+&quot;&amp;limit=10&amp;method=app.SpaceOrders.get&amp;os_version=yohobuy:web&amp;page=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=720x1280&amp;session_key=1f90a18f1e992f3e24c94c71b2de5b11&amp;type=1&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -3054,7 +2973,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/*/plustar/getbrandinfo" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_SpaceOrders_detail" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -3067,10 +2986,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#26681;&#25454;&#21697;&#29260;&#20851;&#31995;id&#65292;&#33719;&#21462;&#21697;&#29260;&#35814;&#24773;</stringProp>
+        <stringProp name="TestPlan.comments">&#35746;&#21333;&#35814;&#24773;&#39029;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/*/plustar/getbrandinfo" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_SpaceOrders_detail" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -3087,7 +3006,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v1/plustar/getbrandinfo?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -3095,13 +3014,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#26681;&#25454;&#21697;&#29260;&#20851;&#31995;id&#65292;&#33719;&#21462;&#21697;&#29260;&#35814;&#24773;</stringProp>
+          <stringProp name="TestPlan.comments">&#35746;&#21333;&#35814;&#24773;&#39029;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${brand_id} ${uid}</stringProp>
+            <stringProp name="parameters">${order_code} ${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -3110,7 +3029,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.7.0&amp;client_type=&quot;+clientType+&quot;&amp;id=&quot;+bsh.args[0]+&quot;&amp;os_version=10.2.1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=c5c7191d1dbe5362ee2d32b65d7a141f&amp;udid=3536012226e5566d334c61659e91875163de603e&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.5.0&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_MineOrderDetail&amp;method=app.SpaceOrders.detail&amp;order_code=&quot;+bsh.args[0]+&quot;&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;udid=2a02ec0bebf4824d9b10c54b26985d3a37785d02&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -3149,7 +3068,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v3/plustar/getlist" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_show_allToShareOrderList" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -3162,10 +3081,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#26126;&#26143;&#21697;&#29260;&#21015;&#34920;(pageCache)</stringProp>
+        <stringProp name="TestPlan.comments">&#24453;&#26194;&#21333;&#21015;&#34920;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v3/plustar/getlist" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_show_allToShareOrderList" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -3182,7 +3101,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v3/plustar/getlist?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -3190,7 +3109,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#26126;&#26143;&#21697;&#29260;&#21015;&#34920;(pageCache)</stringProp>
+          <stringProp name="TestPlan.comments">&#24453;&#26194;&#21333;&#21015;&#34920;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -3205,7 +3124,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.9.0&amp;brand_type=3&amp;client_type=&quot;+clientType+&quot;&amp;gender=3&amp;os_version=android5.1:PRO_5&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=1080x1920&amp;udid=8679050219190811726e91d2390ffeb&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.7.0&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_ShowOrderMain&amp;limit=21&amp;method=show.allToShareOrderList&amp;os_version=10.3.2&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=0e4c6382384f408c51e71e1d3429aad2&amp;udid=9cb2ef3aab6b0dd5bd43098d4da8a542c2277d86&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -3244,7 +3163,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/service/v1/article/getArticleByBrand" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_coupons_li" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -3257,10 +3176,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#33719;&#21462;&#21697;&#29260;&#30340;&#25991;&#31456;</stringProp>
+        <stringProp name="TestPlan.comments">&#25105;&#30340;&#20248;&#24800;&#21367;&#21015;&#34920;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/service/v1/article/getArticleByBrand" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_coupons_li" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -3277,7 +3196,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/service/v1/article/getArticleByBrand?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -3285,13 +3204,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#33719;&#21462;&#21697;&#29260;&#30340;&#25991;&#31456;</stringProp>
+          <stringProp name="TestPlan.comments">&#25105;&#30340;&#20248;&#24800;&#21367;&#21015;&#34920;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${brand_id} ${uid}</stringProp>
+            <stringProp name="parameters">${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -3300,7 +3219,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;brand_id=&quot;+bsh.args[0]+&quot;&amp;client_type=&quot;+clientType+&quot;&amp;limit=3&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=320x568&amp;session_key=7d8ebd2d7633b8263091ffaebd123958&amp;udid=315c3402a511eeed88dcd5142aef656e1e0bbcda&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.6.0&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_MineCoupon&amp;limit=10&amp;method=app.coupons.li&amp;os_version=8.1.3&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=320x568&amp;session_key=0b927cbbd453c147d4e70c517d8982aa&amp;status=0&amp;udid=fd13346ee64e3ddaa670496af47aa20bd9263b8d&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -3339,7 +3258,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_promotion_queryCouponCenter" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_promotion_queryUserShowYohoCoin" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -3352,10 +3271,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#39046;&#21367;&#20013;&#24515;</stringProp>
+        <stringProp name="TestPlan.comments">&#26597;&#35810;&#26377;&#36135;&#24065;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_promotion_queryCouponCenter" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_promotion_queryUserShowYohoCoin" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -3380,7 +3299,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#39046;&#21367;&#20013;&#24515;</stringProp>
+          <stringProp name="TestPlan.comments">&#26597;&#35810;&#26377;&#36135;&#24065;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -3395,7 +3314,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.9.0&amp;client_type=&quot;+clientType+&quot;&amp;contentCode=b78b32ed81b18dde8ac84fd33602b88b&amp;method=app.promotion.queryCouponCenter&amp;os_version=yohobuy:h5&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=720x1280&amp;session_key=8913f1f61ab5e4dbe598114bc2829937&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;eventCode=SHAREORDER_AUDIT_EVENT&amp;fromPage=iFP_ShowOrderMain&amp;method=app.promotion.queryUserShowYohoCoin&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=af56b61a7d3efa60fd08557c2babea59&amp;udid=892df8c58a7f6f1a144d9617ff7014e37f12965b&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -3434,7 +3353,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_promotion_getCoupon" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_yohocoin_lists" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -3447,10 +3366,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#29992;&#25143;&#39046;&#21048;&#65288;&#38480;&#27969;&#65289;</stringProp>
+        <stringProp name="TestPlan.comments">PC&#31471;&#28857;&#36827;&#25105;&#30340;&#26377;&#36135;&#24065;-&gt;&#26597;&#30475;&#26126;&#32454;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_promotion_getCoupon" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_yohocoin_lists" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -3475,13 +3394,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#29992;&#25143;&#39046;&#21048;&#65288;&#38480;&#27969;&#65289;</stringProp>
+          <stringProp name="TestPlan.comments">PC&#31471;&#28857;&#36827;&#25105;&#30340;&#26377;&#36135;&#24065;-&gt;&#26597;&#30475;&#26126;&#32454;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${COUPON_ID} ${uid}</stringProp>
+            <stringProp name="parameters">${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -3490,7 +3409,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.7.0&amp;client_type=&quot;+clientType+&quot;&amp;couponId=&quot;+bsh.args[0]+&quot;&amp;fromPage=iFP_ReceiveBirthdayCoupon&amp;method=app.promotion.getCoupon&amp;os_version=10.3.1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=635de4cc431436e6c36c926077881c55&amp;udid=b843e41d22f47dddcac217b0d88fa26cc94568ee&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
+String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=&amp;limit=10&amp;method=app.yohocoin.lists&amp;os_version=10.3.2&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=49344417c98d88ebde01c91cc2de466a&amp;udid=ba027b82c0b747a57708b9264b298162531daf8f&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -3529,7 +3448,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_activity_get" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_yoho_yohocoin" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -3542,10 +3461,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">1</stringProp>
+        <stringProp name="TestPlan.comments">YOHO&#24065;&#24635;&#25968;&#65288;&#21487;&#38477;&#32423;&#65289;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_activity_get" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_yoho_yohocoin" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -3570,13 +3489,13 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">1</stringProp>
+          <stringProp name="TestPlan.comments">YOHO&#24065;&#24635;&#25968;&#65288;&#21487;&#38477;&#32423;&#65289;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
             <stringProp name="TestPlan.comments"></stringProp>
             <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${activity_id} ${uid}</stringProp>
+            <stringProp name="parameters">${uid}</stringProp>
             <stringProp name="filename"></stringProp>
             <stringProp name="script">import java.security.MessageDigest;
 import java.util.Random;
@@ -3585,7 +3504,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;gender=2,3&amp;id=&quot;+bsh.args[0]+&quot;&amp;method=app.activity.get&amp;os_version=android5.1:vivo_V3M_A&amp;physical_channel=2&amp;plateform=2&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=720x1280&amp;session_key=71593bf35185120078f63b378d20b4eb&amp;sort=2&amp;udid=86186503861366121369632f13b7a7f&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&amp;yh_channel=2&quot;;
+String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;method=app.yoho.yohocoin&amp;os_version=10.3.3&amp;physical_channel=2&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=8cedffab3eb35478d58f460cf7d3d37e&amp;udid=0df4b99bc0a55e9630cfdb3ba8f82b6f73a6cedf&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -3624,7 +3543,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_sale_getBreakingSort" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_/guang/api/v1/favorite/getUserFavArticleList" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -3637,10 +3556,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#26597;&#35810;&#26029;&#30721;&#21306;&#20998;&#31867;&#21644;&#23610;&#30721;&#65288;&#25240;&#25187;&#19987;&#21306;-&gt;&#26029;&#30721;&#21306;&#65289;</stringProp>
+        <stringProp name="TestPlan.comments">&#25105;&#30340;&#36891;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_sale_getBreakingSort" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_/guang/api/v1/favorite/getUserFavArticleList" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -3657,7 +3576,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
+          <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/guang/api/v1/favorite/getUserFavArticleList?${searchValue}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -3665,7 +3584,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#26597;&#35810;&#26029;&#30721;&#21306;&#20998;&#31867;&#21644;&#23610;&#30721;&#65288;&#25240;&#25187;&#19987;&#21306;-&gt;&#26029;&#30721;&#21306;&#65289;</stringProp>
+          <stringProp name="TestPlan.comments">&#25105;&#30340;&#36891;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -3680,7 +3599,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.5.2&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=aFP_ShortSizeProList&amp;gender=1,3&amp;method=app.sale.getBreakingSort&amp;os_version=android7.0:MHA-AL00&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=1080x1821&amp;session_key=0b86179aecade0a6152cc22506da3f04&amp;udid=86436803468147456fafb6effd9afc9&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=1&quot;;
+String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_GuangMineFavor&amp;limit=10&amp;os_version=10.3.2&amp;page=1&amp;physical_channel=2&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=4ee70e737034483110fe1d23c00872d0&amp;udid=03d86cc98320f26cbd05bb7cbac027fbc7d2da1a&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
@@ -3719,7 +3638,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         </ConstantThroughputTimer>
         <hashTree/>
       </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_product_notLike" enabled="true">
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_passport_vip" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
           <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -3732,10 +3651,10 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
         <boolProp name="ThreadGroup.scheduler">false</boolProp>
         <stringProp name="ThreadGroup.duration"></stringProp>
         <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#19981;&#21916;&#27426;</stringProp>
+        <stringProp name="TestPlan.comments">&#29992;&#25143;VIP&#20449;&#24687;</stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_product_notLike" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_passport_vip" enabled="true">
           <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
             <collectionProp name="Arguments.arguments">
@@ -3760,292 +3679,7 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#19981;&#21916;&#27426;</stringProp>
-        </HTTPSamplerProxy>
-        <hashTree>
-          <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
-            <stringProp name="TestPlan.comments"></stringProp>
-            <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${product_skn} ${uid}</stringProp>
-            <stringProp name="filename"></stringProp>
-            <stringProp name="script">import java.security.MessageDigest;
-import java.util.Random;
-String[] clientTypes = {&quot;android&quot;};
-String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
-int rd = new Random().nextInt(1);
-String clientType = clientTypes[rd];
-String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;method=app.product.notLike&amp;os_version=10.3.2&amp;physical_channel=4&amp;private_key=&quot;+privateKey+&quot;&amp;product_skn=&quot;+bsh.args[0]+&quot;&amp;rec_pos=100003&amp;screen_size=375x667&amp;udid=a94ea1ff38ead0bf799a404fe46ffbc2d571d470&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
-MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
-byte[] btInput = req.getBytes();
-md.update(btInput);
-byte[] btResult = md.digest();
-StringBuffer sb = new StringBuffer();
-for(byte b : btResult){
-    int bt = b&amp;0xff;
-    if(bt&lt;16){
-        sb.append(0);
-    }
-    sb.append(Integer.toHexString(bt));
-}
-String md5 = sb.toString();
-vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>
-          </BeanShellPreProcessor>
-          <hashTree/>
-          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">
-            <collectionProp name="Asserion.test_strings">
-              <stringProp name="1450572480">&quot;code&quot;:200</stringProp>
-            </collectionProp>
-            <stringProp name="TestPlan.comments"></stringProp>
-            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
-            <boolProp name="Assertion.assume_success">false</boolProp>
-            <intProp name="Assertion.test_type">16</intProp>
-          </ResponseAssertion>
-          <hashTree/>
-        </hashTree>
-        <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">
-          <stringProp name="TestPlan.comments"></stringProp>
-          <doubleProp>
-            <name>throughput</name>
-            <value>600</value>
-            <savedValue>0.0</savedValue>
-          </doubleProp>
-          <intProp name="calcMode">2</intProp>
-        </ConstantThroughputTimer>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_product_recShopCart" enabled="true">
-        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-          <intProp name="LoopController.loops">-1</intProp>
-        </elementProp>
-        <stringProp name="ThreadGroup.num_threads">1</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">10</stringProp>
-        <longProp name="ThreadGroup.start_time">1488865571000</longProp>
-        <longProp name="ThreadGroup.end_time">1488865571000</longProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#36141;&#29289;&#36710;&#24213;&#37096;&#25512;&#33616;</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_product_recShopCart" enabled="true">
-          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
-            <collectionProp name="Arguments.arguments">
-              <elementProp name="" elementType="HTTPArgument">
-                <boolProp name="HTTPArgument.always_encode">false</boolProp>
-                <stringProp name="Argument.value"></stringProp>
-                <stringProp name="Argument.metadata">=</stringProp>
-              </elementProp>
-            </collectionProp>
-          </elementProp>
-          <stringProp name="HTTPSampler.domain"></stringProp>
-          <stringProp name="HTTPSampler.port"></stringProp>
-          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
-          <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <boolProp name="HTTPSampler.monitor">false</boolProp>
-          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#36141;&#29289;&#36710;&#24213;&#37096;&#25512;&#33616;</stringProp>
-        </HTTPSamplerProxy>
-        <hashTree>
-          <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
-            <stringProp name="TestPlan.comments"></stringProp>
-            <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
-            <stringProp name="filename"></stringProp>
-            <stringProp name="script">import java.security.MessageDigest;
-import java.util.Random;
-String[] clientTypes = {&quot;android&quot;};
-String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
-int rd = new Random().nextInt(1);
-String clientType = clientTypes[rd];
-String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.6.0&amp;client_type=&quot;+clientType+&quot;&amp;gender=1,3&amp;method=app.product.recShopCart&amp;os_version=android5.1:XT1085&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=1080x1776&amp;session_key=90a490b990a1ffb4d36db14eeecebcd1&amp;udid=35334706127113498719dc059bf115f&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&amp;yh_channel=1&quot;;
-MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
-byte[] btInput = req.getBytes();
-md.update(btInput);
-byte[] btResult = md.digest();
-StringBuffer sb = new StringBuffer();
-for(byte b : btResult){
-    int bt = b&amp;0xff;
-    if(bt&lt;16){
-        sb.append(0);
-    }
-    sb.append(Integer.toHexString(bt));
-}
-String md5 = sb.toString();
-vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>
-          </BeanShellPreProcessor>
-          <hashTree/>
-          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">
-            <collectionProp name="Asserion.test_strings">
-              <stringProp name="1450572480">&quot;code&quot;:200</stringProp>
-            </collectionProp>
-            <stringProp name="TestPlan.comments"></stringProp>
-            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
-            <boolProp name="Assertion.assume_success">false</boolProp>
-            <intProp name="Assertion.test_type">16</intProp>
-          </ResponseAssertion>
-          <hashTree/>
-        </hashTree>
-        <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">
-          <stringProp name="TestPlan.comments"></stringProp>
-          <doubleProp>
-            <name>throughput</name>
-            <value>600</value>
-            <savedValue>0.0</savedValue>
-          </doubleProp>
-          <intProp name="calcMode">2</intProp>
-        </ConstantThroughputTimer>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_newuser_recommend" enabled="true">
-        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-          <intProp name="LoopController.loops">-1</intProp>
-        </elementProp>
-        <stringProp name="ThreadGroup.num_threads">1</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">10</stringProp>
-        <longProp name="ThreadGroup.start_time">1488865571000</longProp>
-        <longProp name="ThreadGroup.end_time">1488865571000</longProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#26032;&#29992;&#25143;&#25512;&#33616;</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_newuser_recommend" enabled="true">
-          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
-            <collectionProp name="Arguments.arguments">
-              <elementProp name="" elementType="HTTPArgument">
-                <boolProp name="HTTPArgument.always_encode">false</boolProp>
-                <stringProp name="Argument.value"></stringProp>
-                <stringProp name="Argument.metadata">=</stringProp>
-              </elementProp>
-            </collectionProp>
-          </elementProp>
-          <stringProp name="HTTPSampler.domain"></stringProp>
-          <stringProp name="HTTPSampler.port"></stringProp>
-          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
-          <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <boolProp name="HTTPSampler.monitor">false</boolProp>
-          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#26032;&#29992;&#25143;&#25512;&#33616;</stringProp>
-        </HTTPSamplerProxy>
-        <hashTree>
-          <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
-            <stringProp name="TestPlan.comments"></stringProp>
-            <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
-            <stringProp name="filename"></stringProp>
-            <stringProp name="script">import java.security.MessageDigest;
-import java.util.Random;
-String[] clientTypes = {&quot;android&quot;};
-String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
-int rd = new Random().nextInt(1);
-String clientType = clientTypes[rd];
-String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_UserGuideAndRecommend&amp;method=app.newuser.recommend&amp;os_version=10.2&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;select_gender=1&amp;udid=94f5179ecd782d857e6b098f41e6cf3d0778b3cb&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
-MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
-byte[] btInput = req.getBytes();
-md.update(btInput);
-byte[] btResult = md.digest();
-StringBuffer sb = new StringBuffer();
-for(byte b : btResult){
-    int bt = b&amp;0xff;
-    if(bt&lt;16){
-        sb.append(0);
-    }
-    sb.append(Integer.toHexString(bt));
-}
-String md5 = sb.toString();
-vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>
-          </BeanShellPreProcessor>
-          <hashTree/>
-          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">
-            <collectionProp name="Asserion.test_strings">
-              <stringProp name="1450572480">&quot;code&quot;:200</stringProp>
-            </collectionProp>
-            <stringProp name="TestPlan.comments"></stringProp>
-            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
-            <boolProp name="Assertion.assume_success">false</boolProp>
-            <intProp name="Assertion.test_type">16</intProp>
-          </ResponseAssertion>
-          <hashTree/>
-        </hashTree>
-        <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">
-          <stringProp name="TestPlan.comments"></stringProp>
-          <doubleProp>
-            <name>throughput</name>
-            <value>600</value>
-            <savedValue>0.0</savedValue>
-          </doubleProp>
-          <intProp name="calcMode">2</intProp>
-        </ConstantThroughputTimer>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_limitProduct_soonToSaleLimitProduct" enabled="true">
-        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-          <intProp name="LoopController.loops">-1</intProp>
-        </elementProp>
-        <stringProp name="ThreadGroup.num_threads">1</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">10</stringProp>
-        <longProp name="ThreadGroup.start_time">1488865571000</longProp>
-        <longProp name="ThreadGroup.end_time">1488865571000</longProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#21363;&#23558;&#21457;&#21806;&#21830;&#21697;&#21015;&#34920;&#65288;pageCache&#65292;30&#31186;&#65289;</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_limitProduct_soonToSaleLimitProduct" enabled="true">
-          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
-            <collectionProp name="Arguments.arguments">
-              <elementProp name="" elementType="HTTPArgument">
-                <boolProp name="HTTPArgument.always_encode">false</boolProp>
-                <stringProp name="Argument.value"></stringProp>
-                <stringProp name="Argument.metadata">=</stringProp>
-              </elementProp>
-            </collectionProp>
-          </elementProp>
-          <stringProp name="HTTPSampler.domain"></stringProp>
-          <stringProp name="HTTPSampler.port"></stringProp>
-          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
-          <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <boolProp name="HTTPSampler.monitor">false</boolProp>
-          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#21363;&#23558;&#21457;&#21806;&#21830;&#21697;&#21015;&#34920;&#65288;pageCache&#65292;30&#31186;&#65289;</stringProp>
+          <stringProp name="TestPlan.comments">&#29992;&#25143;VIP&#20449;&#24687;</stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
@@ -4060,672 +3694,7 @@ String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
 int rd = new Random().nextInt(1);
 String clientType = clientTypes[rd];
 String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_LimitPurchaseHome&amp;limit=20&amp;method=app.limitProduct.soonToSaleLimitProduct&amp;os_version=10.2&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=d7e99ced4bccf8ba6098c58d718898a5&amp;udid=441ebe1cbe40e2dac85c9d7201901818d0765f48&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
-MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
-byte[] btInput = req.getBytes();
-md.update(btInput);
-byte[] btResult = md.digest();
-StringBuffer sb = new StringBuffer();
-for(byte b : btResult){
-    int bt = b&amp;0xff;
-    if(bt&lt;16){
-        sb.append(0);
-    }
-    sb.append(Integer.toHexString(bt));
-}
-String md5 = sb.toString();
-vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>
-          </BeanShellPreProcessor>
-          <hashTree/>
-          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">
-            <collectionProp name="Asserion.test_strings">
-              <stringProp name="1450572480">&quot;code&quot;:200</stringProp>
-            </collectionProp>
-            <stringProp name="TestPlan.comments"></stringProp>
-            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
-            <boolProp name="Assertion.assume_success">false</boolProp>
-            <intProp name="Assertion.test_type">16</intProp>
-          </ResponseAssertion>
-          <hashTree/>
-        </hashTree>
-        <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">
-          <stringProp name="TestPlan.comments"></stringProp>
-          <doubleProp>
-            <name>throughput</name>
-            <value>600</value>
-            <savedValue>0.0</savedValue>
-          </doubleProp>
-          <intProp name="calcMode">2</intProp>
-        </ConstantThroughputTimer>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_limitProduct_hotLimitProduct" enabled="true">
-        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-          <intProp name="LoopController.loops">-1</intProp>
-        </elementProp>
-        <stringProp name="ThreadGroup.num_threads">1</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">10</stringProp>
-        <longProp name="ThreadGroup.start_time">1488865571000</longProp>
-        <longProp name="ThreadGroup.end_time">1488865571000</longProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#28909;&#38376;&#21457;&#21806;&#21830;&#21697;&#21015;&#34920;&#65288;pageCache&#65292;30&#31186;&#65289;</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_limitProduct_hotLimitProduct" enabled="true">
-          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
-            <collectionProp name="Arguments.arguments">
-              <elementProp name="" elementType="HTTPArgument">
-                <boolProp name="HTTPArgument.always_encode">false</boolProp>
-                <stringProp name="Argument.value"></stringProp>
-                <stringProp name="Argument.metadata">=</stringProp>
-              </elementProp>
-            </collectionProp>
-          </elementProp>
-          <stringProp name="HTTPSampler.domain"></stringProp>
-          <stringProp name="HTTPSampler.port"></stringProp>
-          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
-          <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <boolProp name="HTTPSampler.monitor">false</boolProp>
-          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#28909;&#38376;&#21457;&#21806;&#21830;&#21697;&#21015;&#34920;&#65288;pageCache&#65292;30&#31186;&#65289;</stringProp>
-        </HTTPSamplerProxy>
-        <hashTree>
-          <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
-            <stringProp name="TestPlan.comments"></stringProp>
-            <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
-            <stringProp name="filename"></stringProp>
-            <stringProp name="script">import java.security.MessageDigest;
-import java.util.Random;
-String[] clientTypes = {&quot;android&quot;};
-String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
-int rd = new Random().nextInt(1);
-String clientType = clientTypes[rd];
-String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_LimitPurchaseHome&amp;limit=20&amp;method=app.limitProduct.hotLimitProduct&amp;os_version=10.3.2&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=328652d299d53f752c280a305f67eb5b&amp;udid=a3ad2e205c3d1cb7f0dcf7f8d8a5174f26f8c56e&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
-MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
-byte[] btInput = req.getBytes();
-md.update(btInput);
-byte[] btResult = md.digest();
-StringBuffer sb = new StringBuffer();
-for(byte b : btResult){
-    int bt = b&amp;0xff;
-    if(bt&lt;16){
-        sb.append(0);
-    }
-    sb.append(Integer.toHexString(bt));
-}
-String md5 = sb.toString();
-vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>
-          </BeanShellPreProcessor>
-          <hashTree/>
-          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">
-            <collectionProp name="Asserion.test_strings">
-              <stringProp name="1450572480">&quot;code&quot;:200</stringProp>
-            </collectionProp>
-            <stringProp name="TestPlan.comments"></stringProp>
-            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
-            <boolProp name="Assertion.assume_success">false</boolProp>
-            <intProp name="Assertion.test_type">16</intProp>
-          </ResponseAssertion>
-          <hashTree/>
-        </hashTree>
-        <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">
-          <stringProp name="TestPlan.comments"></stringProp>
-          <doubleProp>
-            <name>throughput</name>
-            <value>600</value>
-            <savedValue>0.0</savedValue>
-          </doubleProp>
-          <intProp name="calcMode">2</intProp>
-        </ConstantThroughputTimer>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_limitcode_query" enabled="true">
-        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-          <intProp name="LoopController.loops">-1</intProp>
-        </elementProp>
-        <stringProp name="ThreadGroup.num_threads">1</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">10</stringProp>
-        <longProp name="ThreadGroup.start_time">1488865571000</longProp>
-        <longProp name="ThreadGroup.end_time">1488865571000</longProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#25105;&#30340;&#38480;&#36141;&#30721;&#21015;&#34920;</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_limitcode_query" enabled="true">
-          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
-            <collectionProp name="Arguments.arguments">
-              <elementProp name="" elementType="HTTPArgument">
-                <boolProp name="HTTPArgument.always_encode">false</boolProp>
-                <stringProp name="Argument.value"></stringProp>
-                <stringProp name="Argument.metadata">=</stringProp>
-              </elementProp>
-            </collectionProp>
-          </elementProp>
-          <stringProp name="HTTPSampler.domain"></stringProp>
-          <stringProp name="HTTPSampler.port"></stringProp>
-          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
-          <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <boolProp name="HTTPSampler.monitor">false</boolProp>
-          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#25105;&#30340;&#38480;&#36141;&#30721;&#21015;&#34920;</stringProp>
-        </HTTPSamplerProxy>
-        <hashTree>
-          <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
-            <stringProp name="TestPlan.comments"></stringProp>
-            <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
-            <stringProp name="filename"></stringProp>
-            <stringProp name="script">import java.security.MessageDigest;
-import java.util.Random;
-String[] clientTypes = {&quot;android&quot;};
-String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
-int rd = new Random().nextInt(1);
-String clientType = clientTypes[rd];
-String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_MinePurchaseCode&amp;method=app.limitcode.query&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=265ff36faf6c6deb7074f6496b35d2fc&amp;udid=66aab3af40963d516841918f7c98f51d3efd8868&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
-MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
-byte[] btInput = req.getBytes();
-md.update(btInput);
-byte[] btResult = md.digest();
-StringBuffer sb = new StringBuffer();
-for(byte b : btResult){
-    int bt = b&amp;0xff;
-    if(bt&lt;16){
-        sb.append(0);
-    }
-    sb.append(Integer.toHexString(bt));
-}
-String md5 = sb.toString();
-vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>
-          </BeanShellPreProcessor>
-          <hashTree/>
-          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">
-            <collectionProp name="Asserion.test_strings">
-              <stringProp name="1450572480">&quot;code&quot;:200</stringProp>
-            </collectionProp>
-            <stringProp name="TestPlan.comments"></stringProp>
-            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
-            <boolProp name="Assertion.assume_success">false</boolProp>
-            <intProp name="Assertion.test_type">16</intProp>
-          </ResponseAssertion>
-          <hashTree/>
-        </hashTree>
-        <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">
-          <stringProp name="TestPlan.comments"></stringProp>
-          <doubleProp>
-            <name>throughput</name>
-            <value>600</value>
-            <savedValue>0.0</savedValue>
-          </doubleProp>
-          <intProp name="calcMode">2</intProp>
-        </ConstantThroughputTimer>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_limitProduct_alreadySaleLimitProduct" enabled="true">
-        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-          <intProp name="LoopController.loops">-1</intProp>
-        </elementProp>
-        <stringProp name="ThreadGroup.num_threads">1</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">10</stringProp>
-        <longProp name="ThreadGroup.start_time">1488865571000</longProp>
-        <longProp name="ThreadGroup.end_time">1488865571000</longProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#24050;&#21457;&#21806;&#21830;&#21697;&#21015;&#34920;&#65288;pageCache&#65292;30&#31186;&#65289;</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_limitProduct_alreadySaleLimitProduct" enabled="true">
-          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
-            <collectionProp name="Arguments.arguments">
-              <elementProp name="" elementType="HTTPArgument">
-                <boolProp name="HTTPArgument.always_encode">false</boolProp>
-                <stringProp name="Argument.value"></stringProp>
-                <stringProp name="Argument.metadata">=</stringProp>
-              </elementProp>
-            </collectionProp>
-          </elementProp>
-          <stringProp name="HTTPSampler.domain"></stringProp>
-          <stringProp name="HTTPSampler.port"></stringProp>
-          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
-          <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <boolProp name="HTTPSampler.monitor">false</boolProp>
-          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#24050;&#21457;&#21806;&#21830;&#21697;&#21015;&#34920;&#65288;pageCache&#65292;30&#31186;&#65289;</stringProp>
-        </HTTPSamplerProxy>
-        <hashTree>
-          <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
-            <stringProp name="TestPlan.comments"></stringProp>
-            <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
-            <stringProp name="filename"></stringProp>
-            <stringProp name="script">import java.security.MessageDigest;
-import java.util.Random;
-String[] clientTypes = {&quot;android&quot;};
-String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
-int rd = new Random().nextInt(1);
-String clientType = clientTypes[rd];
-String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_LimitPurchaseHome&amp;limit=20&amp;method=app.limitProduct.alreadySaleLimitProduct&amp;os_version=10.2.1&amp;page=1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=375x667&amp;session_key=801da72a02988e2f2a0ea78496c8ddac&amp;udid=c92079a2c3469c149aee799e4325db35dc42193c&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
-MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
-byte[] btInput = req.getBytes();
-md.update(btInput);
-byte[] btResult = md.digest();
-StringBuffer sb = new StringBuffer();
-for(byte b : btResult){
-    int bt = b&amp;0xff;
-    if(bt&lt;16){
-        sb.append(0);
-    }
-    sb.append(Integer.toHexString(bt));
-}
-String md5 = sb.toString();
-vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>
-          </BeanShellPreProcessor>
-          <hashTree/>
-          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">
-            <collectionProp name="Asserion.test_strings">
-              <stringProp name="1450572480">&quot;code&quot;:200</stringProp>
-            </collectionProp>
-            <stringProp name="TestPlan.comments"></stringProp>
-            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
-            <boolProp name="Assertion.assume_success">false</boolProp>
-            <intProp name="Assertion.test_type">16</intProp>
-          </ResponseAssertion>
-          <hashTree/>
-        </hashTree>
-        <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">
-          <stringProp name="TestPlan.comments"></stringProp>
-          <doubleProp>
-            <name>throughput</name>
-            <value>600</value>
-            <savedValue>0.0</savedValue>
-          </doubleProp>
-          <intProp name="calcMode">2</intProp>
-        </ConstantThroughputTimer>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_reminder_getUserReminder" enabled="true">
-        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-          <intProp name="LoopController.loops">-1</intProp>
-        </elementProp>
-        <stringProp name="ThreadGroup.num_threads">1</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">10</stringProp>
-        <longProp name="ThreadGroup.start_time">1488865571000</longProp>
-        <longProp name="ThreadGroup.end_time">1488865571000</longProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#25105;&#30340;&#25552;&#37266;&#21015;&#34920;&#65288;&#38480;&#27969;&#65289;</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_reminder_getUserReminder" enabled="true">
-          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
-            <collectionProp name="Arguments.arguments">
-              <elementProp name="" elementType="HTTPArgument">
-                <boolProp name="HTTPArgument.always_encode">false</boolProp>
-                <stringProp name="Argument.value"></stringProp>
-                <stringProp name="Argument.metadata">=</stringProp>
-              </elementProp>
-            </collectionProp>
-          </elementProp>
-          <stringProp name="HTTPSampler.domain"></stringProp>
-          <stringProp name="HTTPSampler.port"></stringProp>
-          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
-          <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <boolProp name="HTTPSampler.monitor">false</boolProp>
-          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#25105;&#30340;&#25552;&#37266;&#21015;&#34920;&#65288;&#38480;&#27969;&#65289;</stringProp>
-        </HTTPSamplerProxy>
-        <hashTree>
-          <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
-            <stringProp name="TestPlan.comments"></stringProp>
-            <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${uid}</stringProp>
-            <stringProp name="filename"></stringProp>
-            <stringProp name="script">import java.security.MessageDigest;
-import java.util.Random;
-String[] clientTypes = {&quot;android&quot;};
-String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
-int rd = new Random().nextInt(1);
-String clientType = clientTypes[rd];
-String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=&amp;method=app.reminder.getUserReminder&amp;os_version=10.3.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=25f84f31e20a14d75749fab1efe12d26&amp;udid=70ca80457e98cc7f5d91ba573c6d4d43e7269f5b&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
-MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
-byte[] btInput = req.getBytes();
-md.update(btInput);
-byte[] btResult = md.digest();
-StringBuffer sb = new StringBuffer();
-for(byte b : btResult){
-    int bt = b&amp;0xff;
-    if(bt&lt;16){
-        sb.append(0);
-    }
-    sb.append(Integer.toHexString(bt));
-}
-String md5 = sb.toString();
-vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>
-          </BeanShellPreProcessor>
-          <hashTree/>
-          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">
-            <collectionProp name="Asserion.test_strings">
-              <stringProp name="1450572480">&quot;code&quot;:200</stringProp>
-            </collectionProp>
-            <stringProp name="TestPlan.comments"></stringProp>
-            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
-            <boolProp name="Assertion.assume_success">false</boolProp>
-            <intProp name="Assertion.test_type">16</intProp>
-          </ResponseAssertion>
-          <hashTree/>
-        </hashTree>
-        <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">
-          <stringProp name="TestPlan.comments"></stringProp>
-          <doubleProp>
-            <name>throughput</name>
-            <value>600</value>
-            <savedValue>0.0</savedValue>
-          </doubleProp>
-          <intProp name="calcMode">2</intProp>
-        </ConstantThroughputTimer>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_limitProduct_limitProductHtml" enabled="true">
-        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-          <intProp name="LoopController.loops">-1</intProp>
-        </elementProp>
-        <stringProp name="ThreadGroup.num_threads">1</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">10</stringProp>
-        <longProp name="ThreadGroup.start_time">1488865571000</longProp>
-        <longProp name="ThreadGroup.end_time">1488865571000</longProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#38480;&#37327;&#21830;&#21697;&#35814;&#24773;h5&#39029;&#38754;&#65288;pageCache,10min&#65289;</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_limitProduct_limitProductHtml" enabled="true">
-          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
-            <collectionProp name="Arguments.arguments">
-              <elementProp name="" elementType="HTTPArgument">
-                <boolProp name="HTTPArgument.always_encode">false</boolProp>
-                <stringProp name="Argument.value"></stringProp>
-                <stringProp name="Argument.metadata">=</stringProp>
-              </elementProp>
-            </collectionProp>
-          </elementProp>
-          <stringProp name="HTTPSampler.domain"></stringProp>
-          <stringProp name="HTTPSampler.port"></stringProp>
-          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
-          <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <boolProp name="HTTPSampler.monitor">false</boolProp>
-          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#38480;&#37327;&#21830;&#21697;&#35814;&#24773;h5&#39029;&#38754;&#65288;pageCache,10min&#65289;</stringProp>
-        </HTTPSamplerProxy>
-        <hashTree>
-          <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
-            <stringProp name="TestPlan.comments"></stringProp>
-            <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${limit_product_code} ${uid}</stringProp>
-            <stringProp name="filename"></stringProp>
-            <stringProp name="script">import java.security.MessageDigest;
-import java.util.Random;
-String[] clientTypes = {&quot;android&quot;};
-String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
-int rd = new Random().nextInt(1);
-String clientType = clientTypes[rd];
-String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_LimitPurchaseDetail&amp;limitProductCode=&quot;+bsh.args[0]+&quot;&amp;method=app.limitProduct.limitProductHtml&amp;os_version=10.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;return_type=html&amp;screen_size=414x736&amp;session_key=d7e99ced4bccf8ba6098c58d718898a5&amp;udid=441ebe1cbe40e2dac85c9d7201901818d0765f48&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
-MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
-byte[] btInput = req.getBytes();
-md.update(btInput);
-byte[] btResult = md.digest();
-StringBuffer sb = new StringBuffer();
-for(byte b : btResult){
-    int bt = b&amp;0xff;
-    if(bt&lt;16){
-        sb.append(0);
-    }
-    sb.append(Integer.toHexString(bt));
-}
-String md5 = sb.toString();
-vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>
-          </BeanShellPreProcessor>
-          <hashTree/>
-          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">
-            <collectionProp name="Asserion.test_strings">
-              <stringProp name="1450572480">&quot;code&quot;:200</stringProp>
-            </collectionProp>
-            <stringProp name="TestPlan.comments"></stringProp>
-            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
-            <boolProp name="Assertion.assume_success">false</boolProp>
-            <intProp name="Assertion.test_type">16</intProp>
-          </ResponseAssertion>
-          <hashTree/>
-        </hashTree>
-        <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">
-          <stringProp name="TestPlan.comments"></stringProp>
-          <doubleProp>
-            <name>throughput</name>
-            <value>600</value>
-            <savedValue>0.0</savedValue>
-          </doubleProp>
-          <intProp name="calcMode">2</intProp>
-        </ConstantThroughputTimer>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_limitProduct_limitProductDetail" enabled="true">
-        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-          <intProp name="LoopController.loops">-1</intProp>
-        </elementProp>
-        <stringProp name="ThreadGroup.num_threads">1</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">10</stringProp>
-        <longProp name="ThreadGroup.start_time">1488865571000</longProp>
-        <longProp name="ThreadGroup.end_time">1488865571000</longProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#38480;&#23450;&#21830;&#21697;&#35814;&#24773;&#65288;&#21487;&#38477;&#32423;&#25509;&#21475;&#26803;&#29702;&#65289;</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_limitProduct_limitProductDetail" enabled="true">
-          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
-            <collectionProp name="Arguments.arguments">
-              <elementProp name="" elementType="HTTPArgument">
-                <boolProp name="HTTPArgument.always_encode">false</boolProp>
-                <stringProp name="Argument.value"></stringProp>
-                <stringProp name="Argument.metadata">=</stringProp>
-              </elementProp>
-            </collectionProp>
-          </elementProp>
-          <stringProp name="HTTPSampler.domain"></stringProp>
-          <stringProp name="HTTPSampler.port"></stringProp>
-          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
-          <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <boolProp name="HTTPSampler.monitor">false</boolProp>
-          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#38480;&#23450;&#21830;&#21697;&#35814;&#24773;&#65288;&#21487;&#38477;&#32423;&#25509;&#21475;&#26803;&#29702;&#65289;</stringProp>
-        </HTTPSamplerProxy>
-        <hashTree>
-          <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
-            <stringProp name="TestPlan.comments"></stringProp>
-            <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${limit_product_code} ${uid}</stringProp>
-            <stringProp name="filename"></stringProp>
-            <stringProp name="script">import java.security.MessageDigest;
-import java.util.Random;
-String[] clientTypes = {&quot;android&quot;};
-String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
-int rd = new Random().nextInt(1);
-String clientType = clientTypes[rd];
-String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=iFP_LimitPurchaseDetail&amp;limitProductCode=&quot;+bsh.args[0]+&quot;&amp;method=app.limitProduct.limitProductDetail&amp;os_version=10.2&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=414x736&amp;session_key=d7e99ced4bccf8ba6098c58d718898a5&amp;udid=441ebe1cbe40e2dac85c9d7201901818d0765f48&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
-MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
-byte[] btInput = req.getBytes();
-md.update(btInput);
-byte[] btResult = md.digest();
-StringBuffer sb = new StringBuffer();
-for(byte b : btResult){
-    int bt = b&amp;0xff;
-    if(bt&lt;16){
-        sb.append(0);
-    }
-    sb.append(Integer.toHexString(bt));
-}
-String md5 = sb.toString();
-vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>
-          </BeanShellPreProcessor>
-          <hashTree/>
-          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">
-            <collectionProp name="Asserion.test_strings">
-              <stringProp name="1450572480">&quot;code&quot;:200</stringProp>
-            </collectionProp>
-            <stringProp name="TestPlan.comments"></stringProp>
-            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
-            <boolProp name="Assertion.assume_success">false</boolProp>
-            <intProp name="Assertion.test_type">16</intProp>
-          </ResponseAssertion>
-          <hashTree/>
-        </hashTree>
-        <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">
-          <stringProp name="TestPlan.comments"></stringProp>
-          <doubleProp>
-            <name>throughput</name>
-            <value>600</value>
-            <savedValue>0.0</savedValue>
-          </doubleProp>
-          <intProp name="calcMode">2</intProp>
-        </ConstantThroughputTimer>
-        <hashTree/>
-      </hashTree>
-      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_limitProduct_productStatus" enabled="true">
-        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
-        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
-          <boolProp name="LoopController.continue_forever">false</boolProp>
-          <intProp name="LoopController.loops">-1</intProp>
-        </elementProp>
-        <stringProp name="ThreadGroup.num_threads">1</stringProp>
-        <stringProp name="ThreadGroup.ramp_time">10</stringProp>
-        <longProp name="ThreadGroup.start_time">1488865571000</longProp>
-        <longProp name="ThreadGroup.end_time">1488865571000</longProp>
-        <boolProp name="ThreadGroup.scheduler">false</boolProp>
-        <stringProp name="ThreadGroup.duration"></stringProp>
-        <stringProp name="ThreadGroup.delay"></stringProp>
-        <stringProp name="TestPlan.comments">&#38480;&#23450;&#21830;&#21697;&#33719;&#21462;&#38480;&#23450;&#21830;&#21697;&#29366;&#24577;&#20449;&#24687;</stringProp>
-      </ThreadGroup>
-      <hashTree>
-        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_limitProduct_productStatus" enabled="true">
-          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
-          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
-            <collectionProp name="Arguments.arguments">
-              <elementProp name="" elementType="HTTPArgument">
-                <boolProp name="HTTPArgument.always_encode">false</boolProp>
-                <stringProp name="Argument.value"></stringProp>
-                <stringProp name="Argument.metadata">=</stringProp>
-              </elementProp>
-            </collectionProp>
-          </elementProp>
-          <stringProp name="HTTPSampler.domain"></stringProp>
-          <stringProp name="HTTPSampler.port"></stringProp>
-          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
-          <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
-          <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>
-          <stringProp name="HTTPSampler.method">GET</stringProp>
-          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
-          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
-          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
-          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <boolProp name="HTTPSampler.monitor">false</boolProp>
-          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-          <stringProp name="TestPlan.comments">&#38480;&#23450;&#21830;&#21697;&#33719;&#21462;&#38480;&#23450;&#21830;&#21697;&#29366;&#24577;&#20449;&#24687;</stringProp>
-        </HTTPSamplerProxy>
-        <hashTree>
-          <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
-            <stringProp name="TestPlan.comments"></stringProp>
-            <boolProp name="resetInterpreter">false</boolProp>
-            <stringProp name="parameters">${limit_product_code} ${limit_product_skn} ${uid}</stringProp>
-            <stringProp name="filename"></stringProp>
-            <stringProp name="script">import java.security.MessageDigest;
-import java.util.Random;
-String[] clientTypes = {&quot;android&quot;};
-String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
-int rd = new Random().nextInt(1);
-String clientType = clientTypes[rd];
-String privateKey = privateKeys[rd];
-String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;fromPage=aFP_ProductDetail&amp;gender=1,3&amp;limitProductCode=&quot;+bsh.args[0]+&quot;&amp;method=app.limitProduct.productStatus&amp;os_version=android6.0.1:Redmi_4X&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;product_skn=&quot;+bsh.args[1]+&quot;&amp;screen_size=720x1280&amp;session_key=b4275d6bfe67c789b28ce9c34a2710d4&amp;udid=9900101181345145cfb72f58536a4a&amp;uid=&quot;+bsh.args[2]+&quot;&amp;v=7&amp;yh_channel=1&quot;;
+String req = &quot;app_version=5.9.0&amp;channel=1&amp;client_type=&quot;+clientType+&quot;&amp;method=app.passport.vip&amp;os_version=yohobuy:h5&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=720x1280&amp;session_key=b1f7ae6f1f79d627ed0067c25644c448&amp;uid=&quot;+bsh.args[0]+&quot;&amp;v=7&quot;;
 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
 byte[] btInput = req.getBytes();
 md.update(btInput);
--
libgit2 0.24.0