forked from springside/springside4
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
springside#238 使用JMeter对Showcase进行性能测试,完成Restful部分
- Loading branch information
1 parent
eecea81
commit a2d38af
Showing
7 changed files
with
490 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
@echo off | ||
echo [INFO] Use maven jetty-plugin run the project. | ||
|
||
cd %~dp0 | ||
cd .. | ||
|
||
set MAVEN_OPTS=%MAVEN_OPTS% -XX:MaxPermSize=128m -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m | ||
call mvn jetty:run -Djetty.port=8080 | ||
|
||
cd bin | ||
pause |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
showcase-rest: 3038 TPS | ||
showcase-rest-xml: 3006 TPS | ||
showcase-rest-shiro:1344 TPS | ||
showcase-jaxrs: 2609 TPS |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,143 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<jmeterTestPlan version="1.2" properties="2.4" jmeter="2.9 r1437961"> | ||
<hashTree> | ||
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="测试计划" enabled="true"> | ||
<stringProp name="TestPlan.comments">测试CXF JAXRS Restful Service,返回JSON格式数据</stringProp> | ||
<boolProp name="TestPlan.functional_mode">false</boolProp> | ||
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp> | ||
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true"> | ||
<collectionProp name="Arguments.arguments"/> | ||
</elementProp> | ||
<stringProp name="TestPlan.user_define_classpath"></stringProp> | ||
</TestPlan> | ||
<hashTree> | ||
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="线程组" 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> | ||
<stringProp name="LoopController.loops">2000</stringProp> | ||
</elementProp> | ||
<stringProp name="ThreadGroup.num_threads">50</stringProp> | ||
<stringProp name="ThreadGroup.ramp_time">1</stringProp> | ||
<longProp name="ThreadGroup.start_time">1374592894000</longProp> | ||
<longProp name="ThreadGroup.end_time">1374592894000</longProp> | ||
<boolProp name="ThreadGroup.scheduler">false</boolProp> | ||
<stringProp name="ThreadGroup.duration"></stringProp> | ||
<stringProp name="ThreadGroup.delay"></stringProp> | ||
</ThreadGroup> | ||
<hashTree> | ||
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP请求默认值" enabled="true"> | ||
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true"> | ||
<collectionProp name="Arguments.arguments"/> | ||
</elementProp> | ||
<stringProp name="HTTPSampler.domain">localhost</stringProp> | ||
<stringProp name="HTTPSampler.port">8080</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"></stringProp> | ||
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp> | ||
<stringProp name="HTTPSampler.concurrentPool">4</stringProp> | ||
</ConfigTestElement> | ||
<hashTree/> | ||
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP请求" enabled="true"> | ||
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true"> | ||
<collectionProp name="Arguments.arguments"/> | ||
</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">/showcase/cxf/jaxrs/user/1.json</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> | ||
</HTTPSamplerProxy> | ||
<hashTree> | ||
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="true"> | ||
<collectionProp name="Asserion.test_strings"> | ||
<stringProp name="49586">200</stringProp> | ||
</collectionProp> | ||
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp> | ||
<boolProp name="Assertion.assume_success">false</boolProp> | ||
<intProp name="Assertion.test_type">8</intProp> | ||
</ResponseAssertion> | ||
<hashTree/> | ||
</hashTree> | ||
<Summariser guiclass="SummariserGui" testclass="Summariser" testname="生成概要结果" enabled="true"/> | ||
<hashTree/> | ||
<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="false"> | ||
<boolProp name="ResultCollector.error_logging">false</boolProp> | ||
<objProp> | ||
<name>saveConfig</name> | ||
<value class="SampleSaveConfiguration"> | ||
<time>true</time> | ||
<latency>true</latency> | ||
<timestamp>true</timestamp> | ||
<success>true</success> | ||
<label>true</label> | ||
<code>true</code> | ||
<message>true</message> | ||
<threadName>true</threadName> | ||
<dataType>true</dataType> | ||
<encoding>false</encoding> | ||
<assertions>true</assertions> | ||
<subresults>true</subresults> | ||
<responseData>false</responseData> | ||
<samplerData>false</samplerData> | ||
<xml>false</xml> | ||
<fieldNames>false</fieldNames> | ||
<responseHeaders>false</responseHeaders> | ||
<requestHeaders>false</requestHeaders> | ||
<responseDataOnError>false</responseDataOnError> | ||
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> | ||
<assertionsResultsToSave>0</assertionsResultsToSave> | ||
<bytes>true</bytes> | ||
</value> | ||
</objProp> | ||
<stringProp name="filename"></stringProp> | ||
</ResultCollector> | ||
<hashTree/> | ||
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="察看结果树" enabled="false"> | ||
<boolProp name="ResultCollector.error_logging">false</boolProp> | ||
<objProp> | ||
<name>saveConfig</name> | ||
<value class="SampleSaveConfiguration"> | ||
<time>true</time> | ||
<latency>true</latency> | ||
<timestamp>true</timestamp> | ||
<success>true</success> | ||
<label>true</label> | ||
<code>true</code> | ||
<message>true</message> | ||
<threadName>true</threadName> | ||
<dataType>true</dataType> | ||
<encoding>false</encoding> | ||
<assertions>true</assertions> | ||
<subresults>true</subresults> | ||
<responseData>false</responseData> | ||
<samplerData>false</samplerData> | ||
<xml>false</xml> | ||
<fieldNames>false</fieldNames> | ||
<responseHeaders>false</responseHeaders> | ||
<requestHeaders>false</requestHeaders> | ||
<responseDataOnError>false</responseDataOnError> | ||
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> | ||
<assertionsResultsToSave>0</assertionsResultsToSave> | ||
<bytes>true</bytes> | ||
</value> | ||
</objProp> | ||
<stringProp name="filename"></stringProp> | ||
</ResultCollector> | ||
<hashTree/> | ||
</hashTree> | ||
</hashTree> | ||
</hashTree> | ||
</jmeterTestPlan> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<jmeterTestPlan version="1.2" properties="2.4" jmeter="2.9 r1437961"> | ||
<hashTree> | ||
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="测试计划" enabled="true"> | ||
<stringProp name="TestPlan.comments">测试Spring MVC Restful Service,Shiro的安全控制,返回JSON格式数据</stringProp> | ||
<boolProp name="TestPlan.functional_mode">false</boolProp> | ||
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp> | ||
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true"> | ||
<collectionProp name="Arguments.arguments"/> | ||
</elementProp> | ||
<stringProp name="TestPlan.user_define_classpath"></stringProp> | ||
</TestPlan> | ||
<hashTree> | ||
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="线程组" 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> | ||
<stringProp name="LoopController.loops">2000</stringProp> | ||
</elementProp> | ||
<stringProp name="ThreadGroup.num_threads">50</stringProp> | ||
<stringProp name="ThreadGroup.ramp_time">1</stringProp> | ||
<longProp name="ThreadGroup.start_time">1374592894000</longProp> | ||
<longProp name="ThreadGroup.end_time">1374592894000</longProp> | ||
<boolProp name="ThreadGroup.scheduler">false</boolProp> | ||
<stringProp name="ThreadGroup.duration"></stringProp> | ||
<stringProp name="ThreadGroup.delay"></stringProp> | ||
</ThreadGroup> | ||
<hashTree> | ||
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP请求默认值" enabled="true"> | ||
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true"> | ||
<collectionProp name="Arguments.arguments"/> | ||
</elementProp> | ||
<stringProp name="HTTPSampler.domain">localhost</stringProp> | ||
<stringProp name="HTTPSampler.port">8080</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"></stringProp> | ||
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp> | ||
<stringProp name="HTTPSampler.concurrentPool">4</stringProp> | ||
</ConfigTestElement> | ||
<hashTree/> | ||
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP信息头管理器" enabled="true"> | ||
<collectionProp name="HeaderManager.headers"> | ||
<elementProp name="" elementType="Header"> | ||
<stringProp name="Header.name">Authorization</stringProp> | ||
<stringProp name="Header.value">Basic YWRtaW46YWRtaW4=</stringProp> | ||
</elementProp> | ||
</collectionProp> | ||
<stringProp name="TestPlan.comments">当验证Shiro保护的Secure API时使用</stringProp> | ||
</HeaderManager> | ||
<hashTree/> | ||
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP请求" enabled="true"> | ||
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true"> | ||
<collectionProp name="Arguments.arguments"/> | ||
</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">/showcase/api/secure/v1/user/1.json</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> | ||
</HTTPSamplerProxy> | ||
<hashTree> | ||
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="true"> | ||
<collectionProp name="Asserion.test_strings"> | ||
<stringProp name="49586">200</stringProp> | ||
</collectionProp> | ||
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp> | ||
<boolProp name="Assertion.assume_success">false</boolProp> | ||
<intProp name="Assertion.test_type">8</intProp> | ||
</ResponseAssertion> | ||
<hashTree/> | ||
</hashTree> | ||
<Summariser guiclass="SummariserGui" testclass="Summariser" testname="生成概要结果" enabled="true"/> | ||
<hashTree/> | ||
<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="false"> | ||
<boolProp name="ResultCollector.error_logging">false</boolProp> | ||
<objProp> | ||
<name>saveConfig</name> | ||
<value class="SampleSaveConfiguration"> | ||
<time>true</time> | ||
<latency>true</latency> | ||
<timestamp>true</timestamp> | ||
<success>true</success> | ||
<label>true</label> | ||
<code>true</code> | ||
<message>true</message> | ||
<threadName>true</threadName> | ||
<dataType>true</dataType> | ||
<encoding>false</encoding> | ||
<assertions>true</assertions> | ||
<subresults>true</subresults> | ||
<responseData>false</responseData> | ||
<samplerData>false</samplerData> | ||
<xml>false</xml> | ||
<fieldNames>false</fieldNames> | ||
<responseHeaders>false</responseHeaders> | ||
<requestHeaders>false</requestHeaders> | ||
<responseDataOnError>false</responseDataOnError> | ||
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> | ||
<assertionsResultsToSave>0</assertionsResultsToSave> | ||
<bytes>true</bytes> | ||
</value> | ||
</objProp> | ||
<stringProp name="filename"></stringProp> | ||
</ResultCollector> | ||
<hashTree/> | ||
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="察看结果树" enabled="false"> | ||
<boolProp name="ResultCollector.error_logging">false</boolProp> | ||
<objProp> | ||
<name>saveConfig</name> | ||
<value class="SampleSaveConfiguration"> | ||
<time>true</time> | ||
<latency>true</latency> | ||
<timestamp>true</timestamp> | ||
<success>true</success> | ||
<label>true</label> | ||
<code>true</code> | ||
<message>true</message> | ||
<threadName>true</threadName> | ||
<dataType>true</dataType> | ||
<encoding>false</encoding> | ||
<assertions>true</assertions> | ||
<subresults>true</subresults> | ||
<responseData>false</responseData> | ||
<samplerData>false</samplerData> | ||
<xml>false</xml> | ||
<fieldNames>false</fieldNames> | ||
<responseHeaders>false</responseHeaders> | ||
<requestHeaders>false</requestHeaders> | ||
<responseDataOnError>false</responseDataOnError> | ||
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> | ||
<assertionsResultsToSave>0</assertionsResultsToSave> | ||
<bytes>true</bytes> | ||
</value> | ||
</objProp> | ||
<stringProp name="filename"></stringProp> | ||
</ResultCollector> | ||
<hashTree/> | ||
</hashTree> | ||
</hashTree> | ||
</hashTree> | ||
</jmeterTestPlan> |
Oops, something went wrong.