Toggle navigation
Toggle navigation
This project
Loading...
Sign in
YPT
/
jmeter
·
Commits
Go to a project
GitLab
Go to dashboard
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
Rong
8 years ago
Commit
8c21651b6959eb106fdf23d5fd1416261236276f
1 parent
64c43c6f
commit by shell
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
499 additions
and
34 deletions
script/default/test.jmx
script/default/test.jmx
View file @
8c21651
...
...
@@ -27,21 +27,11 @@
</collectionProp>
<stringProp
name=
"TestPlan.comments"
></stringProp>
</Arguments>
<hashTree/>
<Arguments
guiclass=
"ArgumentsPanel"
testclass=
"Arguments"
testname=
"arguments_SNCP"
enabled=
"true"
>
<collectionProp
name=
"Arguments.arguments"
>
<elementProp
name=
"SNCP"
elementType=
"Argument"
>
<stringProp
name=
"Argument.name"
>
SNCP
</stringProp>
<stringProp
name=
"Argument.value"
>
NGJjYjhkNmwwZGM0OTk0YmQyMTMwZjlmoTZmzjY4cjN
</stringProp>
<stringProp
name=
"Argument.metadata"
>
=
</stringProp>
</elementProp>
</collectionProp>
<stringProp
name=
"TestPlan.comments"
>
通用
session
校验码
</stringProp>
</Arguments>
<hashTree/>
<CSVDataSet
guiclass=
"TestBeanGUI"
testclass=
"CSVDataSet"
testname=
"data_uid_mobile_openid"
enabled=
"true"
>
<CSVDataSet
guiclass=
"TestBeanGUI"
testclass=
"CSVDataSet"
testname=
"data_商品for浏览"
enabled=
"true"
>
<stringProp
name=
"TestPlan.comments"
></stringProp>
<stringProp
name=
"filename"
>
/opt/jmeter/data/
uid_mobile_openid
.csv
</stringProp>
<stringProp
name=
"filename"
>
/opt/jmeter/data/
product_10w
.csv
</stringProp>
<stringProp
name=
"fileEncoding"
>
utf-8
</stringProp>
<stringProp
name=
"variableNames"
>
uid,mobile,open_id
</stringProp>
<stringProp
name=
"variableNames"
>
product_id,product_skn
</stringProp>
<stringProp
name=
"delimiter"
>
,
</stringProp>
<boolProp
name=
"quotedData"
>
false
</boolProp>
<boolProp
name=
"recycle"
>
true
</boolProp>
...
...
@@ -49,11 +39,11 @@
<stringProp
name=
"shareMode"
>
shareMode.all
</stringProp>
</CSVDataSet>
<hashTree/>
<CSVDataSet
guiclass=
"TestBeanGUI"
testclass=
"CSVDataSet"
testname=
"data_&#
36141;物车查询
"
enabled=
"true"
>
<CSVDataSet
guiclass=
"TestBeanGUI"
testclass=
"CSVDataSet"
testname=
"data_&#
25552;交订单uid_1w
"
enabled=
"true"
>
<stringProp
name=
"TestPlan.comments"
></stringProp>
<stringProp
name=
"filename"
>
/opt/jmeter/data/cart_
query
.csv
</stringProp>
<stringProp
name=
"filename"
>
/opt/jmeter/data/cart_
submit_test_user
.csv
</stringProp>
<stringProp
name=
"fileEncoding"
>
utf-8
</stringProp>
<stringProp
name=
"variableNames"
>
cart_uid,cart_shopping_key,cart_promotion_id
</stringProp>
<stringProp
name=
"variableNames"
>
uid_test_submit,address_id,coupon_code_1,coupon_code_2
</stringProp>
<stringProp
name=
"delimiter"
>
,
</stringProp>
<boolProp
name=
"quotedData"
>
false
</boolProp>
<boolProp
name=
"recycle"
>
true
</boolProp>
...
...
@@ -61,7 +51,482 @@
<stringProp
name=
"shareMode"
>
shareMode.all
</stringProp>
</CSVDataSet>
<hashTree/>
<ThreadGroup
guiclass=
"ThreadGroupGui"
testclass=
"ThreadGroup"
testname=
"tg_app_Shopping_queryCart"
enabled=
"true"
>
<ThreadGroup
guiclass=
"ThreadGroupGui"
testclass=
"ThreadGroup"
testname=
"tg_app_Shopping_payment"
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"
>
结算
</stringProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy
guiclass=
"HttpTestSampleGui"
testclass=
"HTTPSamplerProxy"
testname=
"tc_app_Shopping_payment"
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"
>
结算
</stringProp>
</HTTPSamplerProxy>
<hashTree>
<BeanShellPreProcessor
guiclass=
"TestBeanGUI"
testclass=
"BeanShellPreProcessor"
testname=
"前置BeanShell"
enabled=
"true"
>
<stringProp
name=
"TestPlan.comments"
></stringProp>
<boolProp
name=
"resetInterpreter"
>
false
</boolProp>
<stringProp
name=
"parameters"
>
${uid_test_submit}
</stringProp>
<stringProp
name=
"filename"
></stringProp>
<stringProp
name=
"script"
>
import java.security.MessageDigest;
import java.util.Random;
String[] clientTypes = {
"
android
"
};
String[] privateKeys = {
"
fd4ad5fcfa0de589ef238c0e7331b585
"
};
int rd = new Random().nextInt(1);
String clientType = clientTypes[rd];
String privateKey = privateKeys[rd];
String req =
"
app_version=5.9.0
&
cart_type=ordinary
&
client_type=
"
+clientType+
"&
enable_red_envelopes=0
&
method=app.Shopping.payment
&
os_version=yohobuy:h5
&
private_key=
"
+privateKey+
"&
screen_size=720x1280
&
session_key=3c69ae945a5d2288b4de540ddcc8b24a
&
uid=
"
+bsh.args[0]+
"&
v=7
&
yoho_coin_mode=0
"
;
MessageDigest md = MessageDigest.getInstance(
"
MD5
"
);
byte[] btInput = req.getBytes();
md.update(btInput);
byte[] btResult = md.digest();
StringBuffer sb = new StringBuffer();
for(byte b : btResult){
int bt = b
&
0xff;
if(bt
<
16){
sb.append(0);
}
sb.append(Integer.toHexString(bt));
}
String md5 = sb.toString();
vars.put(
"
searchValue
"
,req+
"&
client_secret=
"
+md5);
</stringProp>
</BeanShellPreProcessor>
<hashTree/>
<ResponseAssertion
guiclass=
"AssertionGui"
testclass=
"ResponseAssertion"
testname=
"响应断言"
enabled=
"true"
>
<collectionProp
name=
"Asserion.test_strings"
>
<stringProp
name=
"1450572480"
>
"
code
"
: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=
"固定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_address_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>
<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"
>
获取地址
</stringProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy
guiclass=
"HttpTestSampleGui"
testclass=
"HTTPSamplerProxy"
testname=
"tc_app_address_get"
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"
>
获取地址
</stringProp>
</HTTPSamplerProxy>
<hashTree>
<BeanShellPreProcessor
guiclass=
"TestBeanGUI"
testclass=
"BeanShellPreProcessor"
testname=
"前置BeanShell"
enabled=
"true"
>
<stringProp
name=
"TestPlan.comments"
></stringProp>
<boolProp
name=
"resetInterpreter"
>
false
</boolProp>
<stringProp
name=
"parameters"
>
${uid_test_submit}
</stringProp>
<stringProp
name=
"filename"
></stringProp>
<stringProp
name=
"script"
>
import java.security.MessageDigest;
import java.util.Random;
String[] clientTypes = {
"
android
"
};
String[] privateKeys = {
"
fd4ad5fcfa0de589ef238c0e7331b585
"
};
int rd = new Random().nextInt(1);
String clientType = clientTypes[rd];
String privateKey = privateKeys[rd];
String req =
"
app_version=5.8.1
&
client_type=
"
+clientType+
"&
method=app.address.get
&
os_version=10.3.2
&
physical_channel=1
&
private_key=
"
+privateKey+
"&
screen_size=375x667
&
session_key=c4f170c70a600b3df96e867c2bbacd4c
&
udid=2c079bef53b4c209243252984cb0b4498fbf13b7
&
uid=
"
+bsh.args[0]+
"&
v=7
"
;
MessageDigest md = MessageDigest.getInstance(
"
MD5
"
);
byte[] btInput = req.getBytes();
md.update(btInput);
byte[] btResult = md.digest();
StringBuffer sb = new StringBuffer();
for(byte b : btResult){
int bt = b
&
0xff;
if(bt
<
16){
sb.append(0);
}
sb.append(Integer.toHexString(bt));
}
String md5 = sb.toString();
vars.put(
"
searchValue
"
,req+
"&
client_secret=
"
+md5);
</stringProp>
</BeanShellPreProcessor>
<hashTree/>
<ResponseAssertion
guiclass=
"AssertionGui"
testclass=
"ResponseAssertion"
testname=
"响应断言"
enabled=
"true"
>
<collectionProp
name=
"Asserion.test_strings"
>
<stringProp
name=
"1450572480"
>
"
code
"
: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=
"固定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_Shopping_countUsableCoupon"
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"
>
可用优惠券数量(是否可降级)
</stringProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy
guiclass=
"HttpTestSampleGui"
testclass=
"HTTPSamplerProxy"
testname=
"tc_app_Shopping_countUsableCoupon"
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"
>
可用优惠券数量(是否可降级)
</stringProp>
</HTTPSamplerProxy>
<hashTree>
<BeanShellPreProcessor
guiclass=
"TestBeanGUI"
testclass=
"BeanShellPreProcessor"
testname=
"前置BeanShell"
enabled=
"true"
>
<stringProp
name=
"TestPlan.comments"
></stringProp>
<boolProp
name=
"resetInterpreter"
>
false
</boolProp>
<stringProp
name=
"parameters"
>
${uid_test_submit}
</stringProp>
<stringProp
name=
"filename"
></stringProp>
<stringProp
name=
"script"
>
import java.security.MessageDigest;
import java.util.Random;
String[] clientTypes = {
"
android
"
};
String[] privateKeys = {
"
fd4ad5fcfa0de589ef238c0e7331b585
"
};
int rd = new Random().nextInt(1);
String clientType = clientTypes[rd];
String privateKey = privateKeys[rd];
String req =
"
app_version=5.8.0
&
client_type=
"
+clientType+
"&
fromPage=iFP_Payment
&
method=app.Shopping.countUsableCoupon
&
os_version=10.3.2
&
physical_channel=1
&
private_key=
"
+privateKey+
"&
screen_size=375x667
&
session_key=0036166666e1789b366fd4404832988d
&
udid=795bfa0ea3f3669974fbef4e9238a965a3e942ff
&
uid=
"
+bsh.args[0]+
"&
v=7
"
;
MessageDigest md = MessageDigest.getInstance(
"
MD5
"
);
byte[] btInput = req.getBytes();
md.update(btInput);
byte[] btResult = md.digest();
StringBuffer sb = new StringBuffer();
for(byte b : btResult){
int bt = b
&
0xff;
if(bt
<
16){
sb.append(0);
}
sb.append(Integer.toHexString(bt));
}
String md5 = sb.toString();
vars.put(
"
searchValue
"
,req+
"&
client_secret=
"
+md5);
</stringProp>
</BeanShellPreProcessor>
<hashTree/>
<ResponseAssertion
guiclass=
"AssertionGui"
testclass=
"ResponseAssertion"
testname=
"响应断言"
enabled=
"true"
>
<collectionProp
name=
"Asserion.test_strings"
>
<stringProp
name=
"1450572480"
>
"
code
"
: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=
"固定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_Shopping_compute"
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"
>
计算
</stringProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy
guiclass=
"HttpTestSampleGui"
testclass=
"HTTPSamplerProxy"
testname=
"tc_app_Shopping_compute"
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"
>
计算
</stringProp>
</HTTPSamplerProxy>
<hashTree>
<BeanShellPreProcessor
guiclass=
"TestBeanGUI"
testclass=
"BeanShellPreProcessor"
testname=
"前置BeanShell"
enabled=
"true"
>
<stringProp
name=
"TestPlan.comments"
></stringProp>
<boolProp
name=
"resetInterpreter"
>
false
</boolProp>
<stringProp
name=
"parameters"
>
${coupon_code_1} ${uid_test_submit}
</stringProp>
<stringProp
name=
"filename"
></stringProp>
<stringProp
name=
"script"
>
import java.security.MessageDigest;
import java.util.Random;
String[] clientTypes = {
"
android
"
};
String[] privateKeys = {
"
fd4ad5fcfa0de589ef238c0e7331b585
"
};
int rd = new Random().nextInt(1);
String clientType = clientTypes[rd];
String privateKey = privateKeys[rd];
String req =
"
app_version=5.9.0
&
cart_type=ordinary
&
client_type=
"
+clientType+
"&
coupon_code=
"
+bsh.args[0]+
"&
delivery_way=2
&
method=app.Shopping.compute
&
os_version=yohobuy:h5
&
payment_type=1
&
private_key=
"
+privateKey+
"&
screen_size=720x1280
&
session_key=00ed65eb36a474388df2fa2d6e97a8a5
&
uid=
"
+bsh.args[1]+
"&
use_yoho_coin=0.01
&
v=7
"
;
MessageDigest md = MessageDigest.getInstance(
"
MD5
"
);
byte[] btInput = req.getBytes();
md.update(btInput);
byte[] btResult = md.digest();
StringBuffer sb = new StringBuffer();
for(byte b : btResult){
int bt = b
&
0xff;
if(bt
<
16){
sb.append(0);
}
sb.append(Integer.toHexString(bt));
}
String md5 = sb.toString();
vars.put(
"
searchValue
"
,req+
"&
client_secret=
"
+md5);
</stringProp>
</BeanShellPreProcessor>
<hashTree/>
<ResponseAssertion
guiclass=
"AssertionGui"
testclass=
"ResponseAssertion"
testname=
"响应断言"
enabled=
"true"
>
<collectionProp
name=
"Asserion.test_strings"
>
<stringProp
name=
"1450572480"
>
"
code
"
: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=
"固定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_Shopping_useCoupon"
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"
>
使用优惠券
</stringProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy
guiclass=
"HttpTestSampleGui"
testclass=
"HTTPSamplerProxy"
testname=
"tc_app_Shopping_useCoupon"
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"
>
使用优惠券
</stringProp>
</HTTPSamplerProxy>
<hashTree>
<BeanShellPreProcessor
guiclass=
"TestBeanGUI"
testclass=
"BeanShellPreProcessor"
testname=
"前置BeanShell"
enabled=
"true"
>
<stringProp
name=
"TestPlan.comments"
></stringProp>
<boolProp
name=
"resetInterpreter"
>
false
</boolProp>
<stringProp
name=
"parameters"
>
${coupon_code_1} ${uid_test_submit}
</stringProp>
<stringProp
name=
"filename"
></stringProp>
<stringProp
name=
"script"
>
import java.security.MessageDigest;
import java.util.Random;
String[] clientTypes = {
"
android
"
};
String[] privateKeys = {
"
fd4ad5fcfa0de589ef238c0e7331b585
"
};
int rd = new Random().nextInt(1);
String clientType = clientTypes[rd];
String privateKey = privateKeys[rd];
String req =
"
app_version=5.9.0
&
client_type=
"
+clientType+
"&
coupon_code=
"
+bsh.args[0]+
"&
method=app.Shopping.useCoupon
&
os_version=yohobuy:h5
&
private_key=
"
+privateKey+
"&
screen_size=720x1280
&
session_key=2ac3924dc4ae71a6e1f75e844e558c5b
&
uid=
"
+bsh.args[1]+
"&
v=7
"
;
MessageDigest md = MessageDigest.getInstance(
"
MD5
"
);
byte[] btInput = req.getBytes();
md.update(btInput);
byte[] btResult = md.digest();
StringBuffer sb = new StringBuffer();
for(byte b : btResult){
int bt = b
&
0xff;
if(bt
<
16){
sb.append(0);
}
sb.append(Integer.toHexString(bt));
}
String md5 = sb.toString();
vars.put(
"
searchValue
"
,req+
"&
client_secret=
"
+md5);
</stringProp>
</BeanShellPreProcessor>
<hashTree/>
<ResponseAssertion
guiclass=
"AssertionGui"
testclass=
"ResponseAssertion"
testname=
"响应断言"
enabled=
"true"
>
<collectionProp
name=
"Asserion.test_strings"
>
<stringProp
name=
"1450572480"
>
"
code
"
: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=
"固定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_Shopping_listCoupon"
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>
...
...
@@ -74,10 +539,10 @@
<boolProp
name=
"ThreadGroup.scheduler"
>
false
</boolProp>
<stringProp
name=
"ThreadGroup.duration"
></stringProp>
<stringProp
name=
"ThreadGroup.delay"
></stringProp>
<stringProp
name=
"TestPlan.comments"
>
&#
26597;询用户购物๗
0;
</stringProp>
<stringProp
name=
"TestPlan.comments"
>
&#
36141;物车优惠卷列ඤ
0;
</stringProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy
guiclass=
"HttpTestSampleGui"
testclass=
"HTTPSamplerProxy"
testname=
"tc_app_Shopping_
queryCart
"
enabled=
"true"
>
<HTTPSamplerProxy
guiclass=
"HttpTestSampleGui"
testclass=
"HTTPSamplerProxy"
testname=
"tc_app_Shopping_
listCoupon
"
enabled=
"true"
>
<boolProp
name=
"HTTPSampler.postBodyRaw"
>
true
</boolProp>
<elementProp
name=
"HTTPsampler.Arguments"
elementType=
"Arguments"
>
<collectionProp
name=
"Arguments.arguments"
>
...
...
@@ -102,13 +567,13 @@
<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;询用户购物๗
0;
</stringProp>
<stringProp
name=
"TestPlan.comments"
>
&#
36141;物车优惠卷列ඤ
0;
</stringProp>
</HTTPSamplerProxy>
<hashTree>
<BeanShellPreProcessor
guiclass=
"TestBeanGUI"
testclass=
"BeanShellPreProcessor"
testname=
"前置BeanShell"
enabled=
"true"
>
<stringProp
name=
"TestPlan.comments"
></stringProp>
<boolProp
name=
"resetInterpreter"
>
false
</boolProp>
<stringProp
name=
"parameters"
>
${
cart_shopping_key} ${cart_uid
}
</stringProp>
<stringProp
name=
"parameters"
>
${
uid_test_submit
}
</stringProp>
<stringProp
name=
"filename"
></stringProp>
<stringProp
name=
"script"
>
import java.security.MessageDigest;
import java.util.Random;
...
...
@@ -117,7 +582,7 @@ String[] privateKeys = {"fd4ad5fcfa0de589ef238c0e7331b585"};
int rd = new Random().nextInt(1);
String clientType = clientTypes[rd];
String privateKey = privateKeys[rd];
String req =
"
app_version=5.8.
0
&
client_type=
"
+clientType+
"&
is_support_mlp=Y
&
method=app.Shopping.queryCart
&
os_version=yohobuy:web
&
private_key=
"
+privateKey+
"&
screen_size=720x1280
&
session_key=3b3af315f8ee63ba511d596496dabd39
&
shopping_key=
"
+bsh.args[0]+
"&
uid=
"
+bsh.args[1
]+
"&
v=7
"
;
String req =
"
app_version=5.8.
1
&
client_type=
"
+clientType+
"&
fromPage=iFP_Coupon
&
method=app.Shopping.listCoupon
&
os_version=10.1
&
physical_channel=1
&
private_key=
"
+privateKey+
"&
screen_size=414x736
&
session_key=2852ccbc7781da50012a8ad7ba0ebb6e
&
udid=a0a2667c59c4024861ea3b49d376d9278fb6d809
&
uid=
"
+bsh.args[0
]+
"&
v=7
"
;
MessageDigest md = MessageDigest.getInstance(
"
MD5
"
);
byte[] btInput = req.getBytes();
md.update(btInput);
...
...
@@ -156,7 +621,7 @@ vars.put("searchValue",req+"&client_secret="+md5);</stri
</ConstantThroughputTimer>
<hashTree/>
</hashTree>
<ThreadGroup
guiclass=
"ThreadGroupGui"
testclass=
"ThreadGroup"
testname=
"tg_app_
Shopping_queryPromotionGifts
"
enabled=
"true"
>
<ThreadGroup
guiclass=
"ThreadGroupGui"
testclass=
"ThreadGroup"
testname=
"tg_app_
product_purchased
"
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>
...
...
@@ -169,10 +634,10 @@ vars.put("searchValue",req+"&client_secret="+md5);</stri
<boolProp
name=
"ThreadGroup.scheduler"
>
false
</boolProp>
<stringProp
name=
"ThreadGroup.duration"
></stringProp>
<stringProp
name=
"ThreadGroup.delay"
></stringProp>
<stringProp
name=
"TestPlan.comments"
>

1152;价购促销商品列ඤ
0;
</stringProp>
<stringProp
name=
"TestPlan.comments"
>

0080;了再ߘ
0;
</stringProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy
guiclass=
"HttpTestSampleGui"
testclass=
"HTTPSamplerProxy"
testname=
"tc_app_
Shopping_queryPromotionGifts
"
enabled=
"true"
>
<HTTPSamplerProxy
guiclass=
"HttpTestSampleGui"
testclass=
"HTTPSamplerProxy"
testname=
"tc_app_
product_purchased
"
enabled=
"true"
>
<boolProp
name=
"HTTPSampler.postBodyRaw"
>
true
</boolProp>
<elementProp
name=
"HTTPsampler.Arguments"
elementType=
"Arguments"
>
<collectionProp
name=
"Arguments.arguments"
>
...
...
@@ -197,13 +662,13 @@ vars.put("searchValue",req+"&client_secret="+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"
>

1152;价购促销商品列ඤ
0;
</stringProp>
<stringProp
name=
"TestPlan.comments"
>

0080;了再ߘ
0;
</stringProp>
</HTTPSamplerProxy>
<hashTree>
<BeanShellPreProcessor
guiclass=
"TestBeanGUI"
testclass=
"BeanShellPreProcessor"
testname=
"前置BeanShell"
enabled=
"true"
>
<stringProp
name=
"TestPlan.comments"
></stringProp>
<boolProp
name=
"resetInterpreter"
>
false
</boolProp>
<stringProp
name=
"parameters"
>
${
cart_promotion_id} ${cart_uid
}
</stringProp>
<stringProp
name=
"parameters"
>
${
product_skn
}
</stringProp>
<stringProp
name=
"filename"
></stringProp>
<stringProp
name=
"script"
>
import java.security.MessageDigest;
import java.util.Random;
...
...
@@ -212,7 +677,7 @@ String[] privateKeys = {"fd4ad5fcfa0de589ef238c0e7331b585"};
int rd = new Random().nextInt(1);
String clientType = clientTypes[rd];
String privateKey = privateKeys[rd];
String req =
"
app_version=
5.8.1
&
client_type=
"
+clientType+
"&
gender=1,3
&
method=app.Shopping.queryPromotionGifts
&
os_version=android5.1:HUAWEI_TAG-TL00
&
physical_channel=1
&
private_key=
"
+privateKey+
"&
promotion_ids=
"
+bsh.args[0]+
"&
screen_size=720x1184
&
session_key=266c935f31d983be4e7a53c860a0aa08
&
udid=8607740395271396b56710412cb59c1
&
uid=
"
+bsh.args[1]+
"
&
v=7
&
yh_channel=1
"
;
String req =
"
app_version=
4.3.0
&
client_type=
"
+clientType+
"&
gender=1,3
&
limit=2
&
method=app.product.purchased
&
os_version=android6.0.1:SM-C7000
&
page=1
&
private_key=
"
+privateKey+
"&
productSkn=
"
+bsh.args[0]+
"&
screen_size=1080x1920
&
v=7
&
yh_channel=1
"
;
MessageDigest md = MessageDigest.getInstance(
"
MD5
"
);
byte[] btInput = req.getBytes();
md.update(btInput);
...
...
@@ -251,7 +716,7 @@ vars.put("searchValue",req+"&client_secret="+md5);</stri
</ConstantThroughputTimer>
<hashTree/>
</hashTree>
<ThreadGroup
guiclass=
"ThreadGroupGui"
testclass=
"ThreadGroup"
testname=
"tg_app_
passport_signinByOpenID
"
enabled=
"true"
>
<ThreadGroup
guiclass=
"ThreadGroupGui"
testclass=
"ThreadGroup"
testname=
"tg_app_
recommend_purchased
"
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>
...
...
@@ -264,10 +729,10 @@ vars.put("searchValue",req+"&client_secret="+md5);</stri
<boolProp
name=
"ThreadGroup.scheduler"
>
false
</boolProp>
<stringProp
name=
"ThreadGroup.duration"
></stringProp>
<stringProp
name=
"ThreadGroup.delay"
></stringProp>
<stringProp
name=
"TestPlan.comments"
>
&#
31532;三方登录
;
</stringProp>
<stringProp
name=
"TestPlan.comments"
>
&#
20080;了再买功能
;
</stringProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy
guiclass=
"HttpTestSampleGui"
testclass=
"HTTPSamplerProxy"
testname=
"tc_app_
passport_signinByOpenID
"
enabled=
"true"
>
<HTTPSamplerProxy
guiclass=
"HttpTestSampleGui"
testclass=
"HTTPSamplerProxy"
testname=
"tc_app_
recommend_purchased
"
enabled=
"true"
>
<boolProp
name=
"HTTPSampler.postBodyRaw"
>
true
</boolProp>
<elementProp
name=
"HTTPsampler.Arguments"
elementType=
"Arguments"
>
<collectionProp
name=
"Arguments.arguments"
>
...
...
@@ -292,13 +757,13 @@ vars.put("searchValue",req+"&client_secret="+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"
>
&#
31532;三方登录
;
</stringProp>
<stringProp
name=
"TestPlan.comments"
>
&#
20080;了再买功能
;
</stringProp>
</HTTPSamplerProxy>
<hashTree>
<BeanShellPreProcessor
guiclass=
"TestBeanGUI"
testclass=
"BeanShellPreProcessor"
testname=
"前置BeanShell"
enabled=
"true"
>
<stringProp
name=
"TestPlan.comments"
></stringProp>
<boolProp
name=
"resetInterpreter"
>
false
</boolProp>
<stringProp
name=
"parameters"
>
${
open_id
}
</stringProp>
<stringProp
name=
"parameters"
>
${
product_skn} ${uid_test_submit
}
</stringProp>
<stringProp
name=
"filename"
></stringProp>
<stringProp
name=
"script"
>
import java.security.MessageDigest;
import java.util.Random;
...
...
@@ -307,7 +772,7 @@ String[] privateKeys = {"fd4ad5fcfa0de589ef238c0e7331b585"};
int rd = new Random().nextInt(1);
String clientType = clientTypes[rd];
String privateKey = privateKeys[rd];
String req =
"
app_version=5.
9.0
&
client_type=
"
+clientType+
"&
method=app.passport.signinByOpenID
&
nickname=
&
openId=
"
+bsh.args[0]+
"&
os_version=yohobuy:h5
&
private_key=
"
+privateKey+
"&
screen_size=720x1280
&
shoppingKey=
&
source_type=wechat
&
v=7
"
;
String req =
"
app_version=5.
8.1
&
client_type=
"
+clientType+
"&
limit=2
&
method=app.recommend.purchased
&
os_version=10.0.2
&
physical_channel=1
&
private_key=
"
+privateKey+
"&
productSkn=
"
+bsh.args[0]+
"&
rec_pos=100007
&
screen_size=375x667
&
session_key=9ca3b28ae75a7cf8790cf9a79a61cda3
&
udid=d961ca21607cfc982caafdc23630f9461b373fb3
&
uid=
"
+bsh.args[1]+
"
&
v=7
"
;
MessageDigest md = MessageDigest.getInstance(
"
MD5
"
);
byte[] btInput = req.getBytes();
md.update(btInput);
...
...
Please
register
or
login
to post a comment