Showing
1 changed file
with
85 additions
and
58 deletions
@@ -12,25 +12,23 @@ | @@ -12,25 +12,23 @@ | ||
12 | <stringProp name="TestPlan.user_define_classpath"></stringProp> | 12 | <stringProp name="TestPlan.user_define_classpath"></stringProp> |
13 | </TestPlan> | 13 | </TestPlan> |
14 | <hashTree> | 14 | <hashTree> |
15 | - <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="data_hosts_pt" enabled="true"> | ||
16 | - <stringProp name="TestPlan.comments"></stringProp> | ||
17 | - <stringProp name="filename">/opt/jmeter/data/hosts_pt.csv</stringProp> | ||
18 | - <stringProp name="fileEncoding">utf-8</stringProp> | ||
19 | - <stringProp name="variableNames">HOST_API,HOST_SERVICE</stringProp> | ||
20 | - <stringProp name="delimiter">,</stringProp> | ||
21 | - <boolProp name="quotedData">false</boolProp> | ||
22 | - <boolProp name="recycle">true</boolProp> | ||
23 | - <boolProp name="stopThread">false</boolProp> | ||
24 | - <stringProp name="shareMode">shareMode.all</stringProp> | ||
25 | - </CSVDataSet> | 15 | + <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="arguments_TMP" enabled="true"> |
16 | + <collectionProp name="Arguments.arguments"> | ||
17 | + <elementProp name="HOST_TMP" elementType="Argument"> | ||
18 | + <stringProp name="Argument.name">HOST_TMP</stringProp> | ||
19 | + <stringProp name="Argument.value">192.168.104.37:6004</stringProp> | ||
20 | + <stringProp name="Argument.metadata">=</stringProp> | ||
21 | + </elementProp> | ||
22 | + </collectionProp> | ||
23 | + <stringProp name="TestPlan.comments"></stringProp> </Arguments> | ||
26 | <hashTree/> | 24 | <hashTree/> |
27 | - <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_img_check" enabled="true"> | 25 | + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="tg_临时测试" enabled="true"> |
28 | <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> | 26 | <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> |
29 | <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true"> | 27 | <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true"> |
30 | <boolProp name="LoopController.continue_forever">false</boolProp> | 28 | <boolProp name="LoopController.continue_forever">false</boolProp> |
31 | <intProp name="LoopController.loops">-1</intProp> | 29 | <intProp name="LoopController.loops">-1</intProp> |
32 | </elementProp> | 30 | </elementProp> |
33 | - <stringProp name="ThreadGroup.num_threads">10</stringProp> | 31 | + <stringProp name="ThreadGroup.num_threads">100</stringProp> |
34 | <stringProp name="ThreadGroup.ramp_time">10</stringProp> | 32 | <stringProp name="ThreadGroup.ramp_time">10</stringProp> |
35 | <longProp name="ThreadGroup.start_time">1488865571000</longProp> | 33 | <longProp name="ThreadGroup.start_time">1488865571000</longProp> |
36 | <longProp name="ThreadGroup.end_time">1488865571000</longProp> | 34 | <longProp name="ThreadGroup.end_time">1488865571000</longProp> |
@@ -40,7 +38,77 @@ | @@ -40,7 +38,77 @@ | ||
40 | <stringProp name="TestPlan.comments"></stringProp> | 38 | <stringProp name="TestPlan.comments"></stringProp> |
41 | </ThreadGroup> | 39 | </ThreadGroup> |
42 | <hashTree> | 40 | <hashTree> |
43 | - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_img_check" enabled="true"> | 41 | +<OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="登录一次" enabled="true"/> |
42 | + <hashTree> | ||
43 | + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="pc_first" enabled="true"> | ||
44 | + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true"> | ||
45 | + <collectionProp name="Arguments.arguments"/> | ||
46 | + </elementProp> | ||
47 | + <stringProp name="HTTPSampler.domain"></stringProp> | ||
48 | + <stringProp name="HTTPSampler.port"></stringProp> | ||
49 | + <stringProp name="HTTPSampler.protocol"></stringProp> | ||
50 | + <stringProp name="HTTPSampler.contentEncoding"></stringProp> | ||
51 | + <stringProp name="HTTPSampler.path">http://${HOST_TMP}/signin.html</stringProp> | ||
52 | + <stringProp name="HTTPSampler.method">GET</stringProp> | ||
53 | + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> | ||
54 | + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> | ||
55 | + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> | ||
56 | + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> | ||
57 | + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> | ||
58 | + <stringProp name="HTTPSampler.connect_timeout"></stringProp> | ||
59 | + <stringProp name="HTTPSampler.response_timeout"></stringProp> | ||
60 | + </HTTPSamplerProxy> | ||
61 | + <hashTree> | ||
62 | + <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="true"> | ||
63 | + <collectionProp name="Asserion.test_strings"/> | ||
64 | + <stringProp name="Assertion.test_field">Assertion.response_data</stringProp> | ||
65 | + <boolProp name="Assertion.assume_success">false</boolProp> | ||
66 | + <intProp name="Assertion.test_type">16</intProp> | ||
67 | + </ResponseAssertion> | ||
68 | + <hashTree/> | ||
69 | + </hashTree> | ||
70 | + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="pc_login" enabled="true"> | ||
71 | + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> | ||
72 | + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> | ||
73 | + <collectionProp name="Arguments.arguments"> | ||
74 | + <elementProp name="" elementType="HTTPArgument"> | ||
75 | + <boolProp name="HTTPArgument.always_encode">false</boolProp> | ||
76 | + <stringProp name="Argument.value">areaCode=86&account=${mobile_test}&password=abc123&verifyCode=0%2C2%2C0%2C0&isRemember=true&loginType=password&yohobuy=yoho4946abcdef#$%&!@</stringProp> | ||
77 | + <stringProp name="Argument.metadata">=</stringProp> | ||
78 | + </elementProp> | ||
79 | + </collectionProp> | ||
80 | + </elementProp> | ||
81 | + <stringProp name="HTTPSampler.domain"></stringProp> | ||
82 | + <stringProp name="HTTPSampler.port"></stringProp> | ||
83 | + <stringProp name="HTTPSampler.protocol"></stringProp> | ||
84 | + <stringProp name="HTTPSampler.contentEncoding"></stringProp> | ||
85 | + <stringProp name="HTTPSampler.path">http://${HOST_TMP}/passport/login/auth</stringProp> | ||
86 | + <stringProp name="HTTPSampler.method">POST</stringProp> | ||
87 | + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> | ||
88 | + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> | ||
89 | + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> | ||
90 | + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> | ||
91 | + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> | ||
92 | + <stringProp name="HTTPSampler.connect_timeout"></stringProp> | ||
93 | + <stringProp name="HTTPSampler.response_timeout"></stringProp> | ||
94 | + </HTTPSamplerProxy> | ||
95 | + <hashTree> | ||
96 | + <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="true"> | ||
97 | + <collectionProp name="Asserion.test_strings"> | ||
98 | + <stringProp name="723337899">"code":200</stringProp> | ||
99 | + </collectionProp> | ||
100 | + <stringProp name="Assertion.test_field">Assertion.response_data</stringProp> | ||
101 | + <boolProp name="Assertion.assume_success">false</boolProp> | ||
102 | + <intProp name="Assertion.test_type">16</intProp> | ||
103 | + </ResponseAssertion> | ||
104 | + <hashTree/> | ||
105 | + </hashTree> | ||
106 | + </hashTree> | ||
107 | + <com.blazemeter.jmeter.controller.ParallelSampler guiclass="com.blazemeter.jmeter.controller.ParallelControllerGui" testclass="com.blazemeter.jmeter.controller.ParallelSampler" testname="bzm - Parallel Controller" enabled="true"> | ||
108 | + <boolProp name="PARENT_SAMPLE">false</boolProp> | ||
109 | + </com.blazemeter.jmeter.controller.ParallelSampler> | ||
110 | + <hashTree> | ||
111 | + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="tc_临时测试" enabled="true"> | ||
44 | <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> | 112 | <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> |
45 | <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> | 113 | <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> |
46 | <collectionProp name="Arguments.arguments"> | 114 | <collectionProp name="Arguments.arguments"> |
@@ -57,7 +125,7 @@ | @@ -57,7 +125,7 @@ | ||
57 | <stringProp name="HTTPSampler.response_timeout"></stringProp> | 125 | <stringProp name="HTTPSampler.response_timeout"></stringProp> |
58 | <stringProp name="HTTPSampler.protocol"></stringProp> | 126 | <stringProp name="HTTPSampler.protocol"></stringProp> |
59 | <stringProp name="HTTPSampler.contentEncoding"></stringProp> | 127 | <stringProp name="HTTPSampler.contentEncoding"></stringProp> |
60 | - <stringProp name="HTTPSampler.path">http://${HOST_SERVICE}/passport/img-check.jpg?${searchValue}</stringProp> | 128 | + <stringProp name="HTTPSampler.path">http://${HOST_TMP}/product/707652</stringProp> |
61 | <stringProp name="HTTPSampler.method">GET</stringProp> | 129 | <stringProp name="HTTPSampler.method">GET</stringProp> |
62 | <boolProp name="HTTPSampler.follow_redirects">true</boolProp> | 130 | <boolProp name="HTTPSampler.follow_redirects">true</boolProp> |
63 | <boolProp name="HTTPSampler.auto_redirects">false</boolProp> | 131 | <boolProp name="HTTPSampler.auto_redirects">false</boolProp> |
@@ -68,54 +136,13 @@ | @@ -68,54 +136,13 @@ | ||
68 | <stringProp name="TestPlan.comments"></stringProp> | 136 | <stringProp name="TestPlan.comments"></stringProp> |
69 | </HTTPSamplerProxy> | 137 | </HTTPSamplerProxy> |
70 | <hashTree> | 138 | <hashTree> |
71 | - <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="前置BeanShell" enabled="true"> | ||
72 | - <stringProp name="TestPlan.comments"></stringProp> | ||
73 | - <boolProp name="resetInterpreter">false</boolProp> | ||
74 | - <stringProp name="parameters"></stringProp> | ||
75 | - <stringProp name="filename"></stringProp> | ||
76 | - <stringProp name="script">import java.security.MessageDigest; | ||
77 | -import java.util.Random; | ||
78 | -String[] clientTypes = {"android","iphone"}; | ||
79 | -String[] privateKeys = {"fd4ad5fcfa0de589ef238c0e7331b585","a85bb0674e08986c6b115d5e3a4884fa"}; | ||
80 | -int rd = new Random().nextInt(2); | ||
81 | -String clientType = clientTypes[rd]; | ||
82 | -String privateKey = privateKeys[rd]; | ||
83 | - | ||
84 | -String req = "client_type="+clientType+"&fromPage=iFP_Login&private_key="+privateKey+"&udid=5c5d6261f0230a1c1d1246857961e7c14bd98592"; | ||
85 | -MessageDigest md = MessageDigest.getInstance("MD5"); | ||
86 | -byte[] btInput = req.getBytes(); | ||
87 | -md.update(btInput); | ||
88 | -byte[] btResult = md.digest(); | ||
89 | -StringBuffer sb = new StringBuffer(); | ||
90 | -for(byte b : btResult){ | ||
91 | - int bt = b&0xff; | ||
92 | - if(bt<16){ | ||
93 | - sb.append(0); | ||
94 | - } | ||
95 | - sb.append(Integer.toHexString(bt)); | ||
96 | -} | ||
97 | -String md5 = sb.toString(); | ||
98 | - | ||
99 | - | ||
100 | -vars.put("searchValue",req+"&client_secret="+md5);</stringProp> | ||
101 | - </BeanShellPreProcessor> | ||
102 | - <hashTree/> | ||
103 | - <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="true"> | ||
104 | - <collectionProp name="Asserion.test_strings"> | ||
105 | - <stringProp name="1450572480">JFIF</stringProp> | ||
106 | - </collectionProp> | ||
107 | - <stringProp name="TestPlan.comments"></stringProp> | ||
108 | - <stringProp name="Assertion.test_field">Assertion.response_data</stringProp> | ||
109 | - <boolProp name="Assertion.assume_success">false</boolProp> | ||
110 | - <intProp name="Assertion.test_type">16</intProp> | ||
111 | - </ResponseAssertion> | ||
112 | - <hashTree/> | 139 | + </hashTree> |
113 | </hashTree> | 140 | </hashTree> |
114 | <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="固定TPM" enabled="true"> | 141 | <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="固定TPM" enabled="true"> |
115 | <stringProp name="TestPlan.comments"></stringProp> | 142 | <stringProp name="TestPlan.comments"></stringProp> |
116 | <doubleProp> | 143 | <doubleProp> |
117 | <name>throughput</name> | 144 | <name>throughput</name> |
118 | - <value>6000</value> | 145 | + <value>60000</value> |
119 | <savedValue>0.0</savedValue> | 146 | <savedValue>0.0</savedValue> |
120 | </doubleProp> | 147 | </doubleProp> |
121 | <intProp name="calcMode">2</intProp> | 148 | <intProp name="calcMode">2</intProp> |
-
Please register or login to post a comment