Authored by Rong

commit by shell

@@ -36,6 +36,18 @@ @@ -36,6 +36,18 @@
36 </collectionProp> 36 </collectionProp>
37 <stringProp name="TestPlan.comments">&#36890;&#29992;session&#26657;&#39564;&#30721;</stringProp> </Arguments> 37 <stringProp name="TestPlan.comments">&#36890;&#29992;session&#26657;&#39564;&#30721;</stringProp> </Arguments>
38 <hashTree/> 38 <hashTree/>
  39 + <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_uid_mobile_openid_10w" enabled="true">
  40 + <stringProp name="TestPlan.comments"></stringProp>
  41 + <stringProp name="filename">/opt/jmeter/data/uid_mobile_openid.csv</stringProp>
  42 + <stringProp name="fileEncoding">utf-8</stringProp>
  43 + <stringProp name="variableNames">uid,mobile,open_id</stringProp>
  44 + <stringProp name="delimiter">,</stringProp>
  45 + <boolProp name="quotedData">false</boolProp>
  46 + <boolProp name="recycle">true</boolProp>
  47 + <boolProp name="stopThread">false</boolProp>
  48 + <stringProp name="shareMode">shareMode.all</stringProp>
  49 + </CSVDataSet>
  50 + <hashTree/>
39 <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_hosts_pt" enabled="true"> 51 <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_hosts_pt" enabled="true">
40 <stringProp name="TestPlan.comments"></stringProp> 52 <stringProp name="TestPlan.comments"></stringProp>
41 <stringProp name="filename">/opt/jmeter/data/hosts_pt.csv</stringProp> 53 <stringProp name="filename">/opt/jmeter/data/hosts_pt.csv</stringProp>
@@ -48,11 +60,11 @@ @@ -48,11 +60,11 @@
48 <stringProp name="shareMode">shareMode.all</stringProp> 60 <stringProp name="shareMode">shareMode.all</stringProp>
49 </CSVDataSet> 61 </CSVDataSet>
50 <hashTree/> 62 <hashTree/>
51 - <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_uid_sku_submit_25w" enabled="true"> 63 + <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_&#21830;&#21697;for&#27983;&#35272;" enabled="true">
52 <stringProp name="TestPlan.comments"></stringProp> 64 <stringProp name="TestPlan.comments"></stringProp>
53 - <stringProp name="filename">/opt/jmeter/data/uid_sku_submit.csv</stringProp> 65 + <stringProp name="filename">/opt/jmeter/data/product_2w.csv</stringProp>
54 <stringProp name="fileEncoding">utf-8</stringProp> 66 <stringProp name="fileEncoding">utf-8</stringProp>
55 - <stringProp name="variableNames">uid_submit,address_id_submit,coupon_code_submit,sku_submit</stringProp> 67 + <stringProp name="variableNames">product_id,product_skn</stringProp>
56 <stringProp name="delimiter">,</stringProp> 68 <stringProp name="delimiter">,</stringProp>
57 <boolProp name="quotedData">false</boolProp> 69 <boolProp name="quotedData">false</boolProp>
58 <boolProp name="recycle">true</boolProp> 70 <boolProp name="recycle">true</boolProp>
@@ -60,7 +72,7 @@ @@ -60,7 +72,7 @@
60 <stringProp name="shareMode">shareMode.all</stringProp> 72 <stringProp name="shareMode">shareMode.all</stringProp>
61 </CSVDataSet> 73 </CSVDataSet>
62 <hashTree/> 74 <hashTree/>
63 - <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_submit" enabled="true"> 75 + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_app_product_data" enabled="true">
64 <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> 76 <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
65 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true"> 77 <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
66 <boolProp name="LoopController.continue_forever">false</boolProp> 78 <boolProp name="LoopController.continue_forever">false</boolProp>
@@ -73,86 +85,10 @@ @@ -73,86 +85,10 @@
73 <boolProp name="ThreadGroup.scheduler">false</boolProp> 85 <boolProp name="ThreadGroup.scheduler">false</boolProp>
74 <stringProp name="ThreadGroup.duration"></stringProp> 86 <stringProp name="ThreadGroup.duration"></stringProp>
75 <stringProp name="ThreadGroup.delay"></stringProp> 87 <stringProp name="ThreadGroup.delay"></stringProp>
76 - <stringProp name="TestPlan.comments"></stringProp> 88 + <stringProp name="TestPlan.comments">&#21830;&#21697;&#35814;&#24773;&#22522;&#26412;&#20449;&#24687;</stringProp>
77 </ThreadGroup> 89 </ThreadGroup>
78 <hashTree> 90 <hashTree>
79 -<TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="tc_submit" enabled="true">  
80 - <boolProp name="TransactionController.includeTimers">false</boolProp>  
81 - <boolProp name="TransactionController.parent">false</boolProp>  
82 - </TransactionController>  
83 - <hashTree>  
84 - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_Shopping_add_submit" enabled="true">  
85 - <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>  
86 - <elementProp name="HTTPsampler.Arguments" elementType="Arguments">  
87 - <collectionProp name="Arguments.arguments">  
88 - <elementProp name="" elementType="HTTPArgument">  
89 - <boolProp name="HTTPArgument.always_encode">false</boolProp>  
90 - <stringProp name="Argument.value"></stringProp>  
91 - <stringProp name="Argument.metadata">=</stringProp>  
92 - </elementProp>  
93 - </collectionProp>  
94 - </elementProp>  
95 - <stringProp name="HTTPSampler.domain"></stringProp>  
96 - <stringProp name="HTTPSampler.port"></stringProp>  
97 - <stringProp name="HTTPSampler.connect_timeout"></stringProp>  
98 - <stringProp name="HTTPSampler.response_timeout"></stringProp>  
99 - <stringProp name="HTTPSampler.protocol"></stringProp>  
100 - <stringProp name="HTTPSampler.contentEncoding"></stringProp>  
101 - <stringProp name="HTTPSampler.path">http://${HOST_API}/?${searchValue}</stringProp>  
102 - <stringProp name="HTTPSampler.method">GET</stringProp>  
103 - <boolProp name="HTTPSampler.follow_redirects">true</boolProp>  
104 - <boolProp name="HTTPSampler.auto_redirects">false</boolProp>  
105 - <boolProp name="HTTPSampler.use_keepalive">true</boolProp>  
106 - <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>  
107 - <boolProp name="HTTPSampler.monitor">false</boolProp>  
108 - <stringProp name="HTTPSampler.embedded_url_re"></stringProp>  
109 - <stringProp name="TestPlan.comments"></stringProp>  
110 - </HTTPSamplerProxy>  
111 - <hashTree>  
112 - <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">  
113 - <stringProp name="TestPlan.comments"></stringProp>  
114 - <boolProp name="resetInterpreter">false</boolProp>  
115 - <stringProp name="parameters">${sku_submit} ${uid_submit}</stringProp>  
116 - <stringProp name="filename"></stringProp>  
117 - <stringProp name="script">import java.security.MessageDigest;  
118 -import java.util.Random;  
119 -String[] clientTypes = {&quot;android&quot;,&quot;iphone&quot;};  
120 -String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;,&quot;a85bb0674e08986c6b115d5e3a4884fa&quot;};  
121 -int rd = new Random().nextInt(2);  
122 -String clientType = clientTypes[rd];  
123 -String privateKey = privateKeys[rd];  
124 -String os_version = &quot;yohobuy:web&quot;;  
125 -String req = &quot;app_version=5.8.0&amp;buy_number=1&amp;client_type=&quot;+clientType+&quot;&amp;edit_product_sku=0&amp;goods_type=0&amp;method=app.Shopping.add&amp;os_version=&quot;+os_version+&quot;&amp;private_key=&quot;+privateKey+&quot;&amp;product_sku=&quot;+bsh.args[0]+&quot;&amp;promotion_id=&amp;screen_size=720x1280&amp;selected=Y&amp;session_key=5103fd2c7217459929865c1da6aa7f5a&amp;shopping_key=0&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;  
126 -MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);  
127 -byte[] btInput = req.getBytes();  
128 -md.update(btInput);  
129 -byte[] btResult = md.digest();  
130 -StringBuffer sb = new StringBuffer();  
131 -for(byte b : btResult){  
132 - int bt = b&amp;0xff;  
133 - if(bt&lt;16){  
134 - sb.append(0);  
135 - }  
136 - sb.append(Integer.toHexString(bt));  
137 -}  
138 -String md5 = sb.toString();  
139 -os_version=URLEncoder.encode(os_version);  
140 -req = &quot;app_version=5.8.0&amp;buy_number=1&amp;client_type=&quot;+clientType+&quot;&amp;edit_product_sku=0&amp;goods_type=0&amp;method=app.Shopping.add&amp;os_version=&quot;+os_version+&quot;&amp;private_key=&quot;+privateKey+&quot;&amp;product_sku=&quot;+bsh.args[0]+&quot;&amp;promotion_id=&amp;screen_size=720x1280&amp;selected=Y&amp;session_key=5103fd2c7217459929865c1da6aa7f5a&amp;shopping_key=0&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;  
141 -vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>  
142 - </BeanShellPreProcessor>  
143 - <hashTree/>  
144 - <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="&#21709;&#24212;&#26029;&#35328;" enabled="true">  
145 - <collectionProp name="Asserion.test_strings">  
146 - <stringProp name="1450572480">&quot;code&quot;:200</stringProp>  
147 - </collectionProp>  
148 - <stringProp name="TestPlan.comments"></stringProp>  
149 - <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>  
150 - <boolProp name="Assertion.assume_success">false</boolProp>  
151 - <intProp name="Assertion.test_type">16</intProp>  
152 - </ResponseAssertion>  
153 - <hashTree/>  
154 - </hashTree>  
155 - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_Shopping_submit" enabled="true"> 91 + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_app_product_data" enabled="true">
156 <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> 92 <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
157 <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> 93 <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
158 <collectionProp name="Arguments.arguments"> 94 <collectionProp name="Arguments.arguments">
@@ -177,23 +113,23 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -177,23 +113,23 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
177 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> 113 <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
178 <boolProp name="HTTPSampler.monitor">false</boolProp> 114 <boolProp name="HTTPSampler.monitor">false</boolProp>
179 <stringProp name="HTTPSampler.embedded_url_re"></stringProp> 115 <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
180 - <stringProp name="TestPlan.comments">&#25552;&#20132;&#35746;&#21333;</stringProp> 116 + <stringProp name="TestPlan.comments">&#21830;&#21697;&#35814;&#24773;&#22522;&#26412;&#20449;&#24687;</stringProp>
181 </HTTPSamplerProxy> 117 </HTTPSamplerProxy>
182 <hashTree> 118 <hashTree>
183 <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true"> 119 <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="&#21069;&#32622;BeanShell" enabled="true">
184 <stringProp name="TestPlan.comments"></stringProp> 120 <stringProp name="TestPlan.comments"></stringProp>
185 <boolProp name="resetInterpreter">false</boolProp> 121 <boolProp name="resetInterpreter">false</boolProp>
186 - <stringProp name="parameters">${SNCP} ${address_id_submit} ${uid_submit}</stringProp> 122 + <stringProp name="parameters">${product_skn} ${uid}</stringProp>
187 <stringProp name="filename"></stringProp> 123 <stringProp name="filename"></stringProp>
188 <stringProp name="script">import java.security.MessageDigest; 124 <stringProp name="script">import java.security.MessageDigest;
189 import java.util.Random; 125 import java.util.Random;
190 -String[] clientTypes = {&quot;android&quot;,&quot;iphone&quot;};  
191 -String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;,&quot;a85bb0674e08986c6b115d5e3a4884fa&quot;};  
192 -int rd = new Random().nextInt(2); 126 +String[] clientTypes = {&quot;android&quot;};
  127 +String[] privateKeys = {&quot;fd4ad5fcfa0de589ef238c0e7331b585&quot;};
  128 +int rd = new Random().nextInt(1);
193 String clientType = clientTypes[rd]; 129 String clientType = clientTypes[rd];
194 String privateKey = privateKeys[rd]; 130 String privateKey = privateKeys[rd];
195 -String os_version = &quot;yohobuy:web&quot;;  
196 -String req = &quot;_sncp=&quot;+bsh.args[0]+&quot;&amp;address_id=&quot;+bsh.args[1]+&quot;&amp;app_version=5.8.0&amp;cart_type=ordinary&amp;client_type=&quot;+clientType+&quot;&amp;delivery_time=2&amp;delivery_way=1&amp;is_continue_buy=N&amp;is_print_price=Y&amp;method=app.Shopping.submit&amp;os_version=&quot;+os_version+&quot;&amp;payment_id=15&amp;payment_type=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=720x1280&amp;session_key=4d4b41f709b50f3be42b3428d8e8bec3&amp;udid=971754752&amp;uid=&quot;+bsh.args[2]+&quot;&amp;use_yoho_coin=0&amp;v=7&quot;; 131 +
  132 +String req = &quot;app_version=5.8.1&amp;client_type=&quot;+clientType+&quot;&amp;current_vip_level=0&amp;fromPage=iFP_ProductDetail&amp;is_student=0&amp;method=app.product.data&amp;os_version=9.1&amp;physical_channel=1&amp;private_key=&quot;+privateKey+&quot;&amp;product_skn=&quot;+bsh.args[0]+&quot;&amp;screen_size=375x667&amp;session_key=c9e62120b6a534dea8a06e8e3875e810&amp;showcomment=Y&amp;token=&amp;udid=dbff80c827e771b3035a1a5ae80892d571860a8d&amp;uid=&quot;+bsh.args[1]+&quot;&amp;v=7&quot;;
197 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;); 133 MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;);
198 byte[] btInput = req.getBytes(); 134 byte[] btInput = req.getBytes();
199 md.update(btInput); 135 md.update(btInput);
@@ -207,8 +143,8 @@ for(byte b : btResult){ @@ -207,8 +143,8 @@ for(byte b : btResult){
207 sb.append(Integer.toHexString(bt)); 143 sb.append(Integer.toHexString(bt));
208 } 144 }
209 String md5 = sb.toString(); 145 String md5 = sb.toString();
210 -os_version=URLEncoder.encode(os_version);  
211 -req = &quot;_sncp=&quot;+bsh.args[0]+&quot;&amp;address_id=&quot;+bsh.args[1]+&quot;&amp;app_version=5.8.0&amp;cart_type=ordinary&amp;client_type=&quot;+clientType+&quot;&amp;delivery_time=2&amp;delivery_way=1&amp;is_continue_buy=N&amp;is_print_price=Y&amp;method=app.Shopping.submit&amp;os_version=&quot;+os_version+&quot;&amp;payment_id=15&amp;payment_type=1&amp;private_key=&quot;+privateKey+&quot;&amp;screen_size=720x1280&amp;session_key=4d4b41f709b50f3be42b3428d8e8bec3&amp;udid=971754752&amp;uid=&quot;+bsh.args[2]+&quot;&amp;use_yoho_coin=0&amp;v=7&quot;; 146 +
  147 +
212 vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp> 148 vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stringProp>
213 </BeanShellPreProcessor> 149 </BeanShellPreProcessor>
214 <hashTree/> 150 <hashTree/>
@@ -223,12 +159,11 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri @@ -223,12 +159,11 @@ vars.put(&quot;searchValue&quot;,req+&quot;&amp;client_secret=&quot;+md5);</stri
223 </ResponseAssertion> 159 </ResponseAssertion>
224 <hashTree/> 160 <hashTree/>
225 </hashTree> 161 </hashTree>
226 -</hashTree>  
227 <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true"> 162 <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="&#22266;&#23450;TPM" enabled="true">
228 <stringProp name="TestPlan.comments"></stringProp> 163 <stringProp name="TestPlan.comments"></stringProp>
229 <doubleProp> 164 <doubleProp>
230 <name>throughput</name> 165 <name>throughput</name>
231 - <value>60000</value> 166 + <value>120000</value>
232 <savedValue>0.0</savedValue> 167 <savedValue>0.0</savedValue>
233 </doubleProp> 168 </doubleProp>
234 <intProp name="calcMode">2</intProp> 169 <intProp name="calcMode">2</intProp>