提交 9926773c 编写于 作者: 小傅哥's avatar 小傅哥

feat:小傅哥 jmeter

上级
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### IntelliJ IDEA ###
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
*.iws
*.iml
*.ipr
### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
### Mac OS ###
.DS_Store
\ No newline at end of file
version: '3'
services:
# JMeter是一个功能强大的性能测试工具,可以模拟多种类型的负载,并提供详细的测试报告
# 官网:https://jmeter.apache.org/
# 脚本:jmeter -n -t one.jmx -l one.jtl
Jmeter:
image: justb4/jmeter:5.5
container_name: jmeter
restart: always
environment:
- DISPLAY=:0
- TZ=Europe/Paris
volumes:
- ./jmx/:/opt/apache-jmeter-5.5/jmx/
# ApacheBench是一个轻量级的HTTP性能测试工具
# 官网:https://httpd.apache.org/docs/2.4/programs/ab.html
# 脚本:ab -n 10 -c 2 http://localhost:8091/api/jmeter/query_order_info?orderId=100001
ApacheBench:
image: anantadwi13/rakyll-hey
container_name: ApacheBench
# Siege是常用的HTTP性能测试工具,可以模拟多个并发用户发送请求。
# siege -c10 -r1 -p http://IP:8091/api/jmeter/query_order_info?orderId=100001
# siege -c10 -r1 -p http://localhost:8091/api/jmeter/query_order_info?orderId=100001
Siege:
image: cloudsuitetest/siege:4.1.5
container_name: Siege
\ No newline at end of file
因为 它太大了无法显示 source diff 。你可以改为 查看blob
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.5">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="测试计划" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.tearDown_on_shutdown">true</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>
<OpenModelThreadGroup guiclass="OpenModelThreadGroupGui" testclass="OpenModelThreadGroup" testname="Open Model Thread Group" enabled="true">
<elementProp name="ThreadGroup.main_controller" elementType="OpenModelThreadGroupController"/>
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<stringProp name="OpenModelThreadGroup.schedule">${__groovy((1..10).collect { &quot;rate(&quot; + it*10 + &quot;/sec) random_arrivals(10 sec) pause(1 sec)&quot; }.join(&quot; &quot;))}</stringProp>
<stringProp name="OpenModelThreadGroup.random_seed"></stringProp>
</OpenModelThreadGroup>
<hashTree>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="查看结果树" enabled="true">
<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>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<url>true</url>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="汇总报告" enabled="true">
<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>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<url>true</url>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">127.0.0.1</stringProp>
<stringProp name="HTTPSampler.port">8091</stringProp>
<stringProp name="HTTPSampler.protocol">http</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/api/jmeter/query_order_info?orderId=100001</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>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="TestPlan.comments">Created from cURL on 2023-10-23T19:24:33.191123</stringProp>
</HTTPSamplerProxy>
<hashTree>
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP HeaderManager" enabled="true">
<collectionProp name="HeaderManager.headers">
<elementProp name="Accept" elementType="Header">
<stringProp name="Header.name">Accept</stringProp>
<stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7</stringProp>
</elementProp>
<elementProp name="Accept-Language" elementType="Header">
<stringProp name="Header.name">Accept-Language</stringProp>
<stringProp name="Header.value">zh-CN,zh;q=0.9,en;q=0.8</stringProp>
</elementProp>
<elementProp name="Cache-Control" elementType="Header">
<stringProp name="Header.name">Cache-Control</stringProp>
<stringProp name="Header.value">max-age=0</stringProp>
</elementProp>
<elementProp name="DNT" elementType="Header">
<stringProp name="Header.name">DNT</stringProp>
<stringProp name="Header.value">1</stringProp>
</elementProp>
<elementProp name="Sec-Fetch-Dest" elementType="Header">
<stringProp name="Header.name">Sec-Fetch-Dest</stringProp>
<stringProp name="Header.value">document</stringProp>
</elementProp>
<elementProp name="Sec-Fetch-Mode" elementType="Header">
<stringProp name="Header.name">Sec-Fetch-Mode</stringProp>
<stringProp name="Header.value">navigate</stringProp>
</elementProp>
<elementProp name="Sec-Fetch-Site" elementType="Header">
<stringProp name="Header.name">Sec-Fetch-Site</stringProp>
<stringProp name="Header.value">none</stringProp>
</elementProp>
<elementProp name="Sec-Fetch-User" elementType="Header">
<stringProp name="Header.name">Sec-Fetch-User</stringProp>
<stringProp name="Header.value">?1</stringProp>
</elementProp>
<elementProp name="Upgrade-Insecure-Requests" elementType="Header">
<stringProp name="Header.name">Upgrade-Insecure-Requests</stringProp>
<stringProp name="Header.value">1</stringProp>
</elementProp>
<elementProp name="User-Agent" elementType="Header">
<stringProp name="Header.name">User-Agent</stringProp>
<stringProp name="Header.value">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36</stringProp>
</elementProp>
<elementProp name="sec-ch-ua" elementType="Header">
<stringProp name="Header.name">sec-ch-ua</stringProp>
<stringProp name="Header.value">&quot;Chromium&quot;;v=&quot;116&quot;, &quot;Not)A;Brand&quot;;v=&quot;24&quot;, &quot;Google Chrome&quot;;v=&quot;116&quot;</stringProp>
</elementProp>
<elementProp name="sec-ch-ua-mobile" elementType="Header">
<stringProp name="Header.name">sec-ch-ua-mobile</stringProp>
<stringProp name="Header.value">?0</stringProp>
</elementProp>
<elementProp name="sec-ch-ua-platform" elementType="Header">
<stringProp name="Header.name">sec-ch-ua-platform</stringProp>
<stringProp name="Header.value">&quot;macOS&quot;</stringProp>
</elementProp>
<elementProp name="Accept-Encoding" elementType="Header">
<stringProp name="Header.name">Accept-Encoding</stringProp>
<stringProp name="Header.value">gzip, deflate</stringProp>
</elementProp>
</collectionProp>
<stringProp name="TestPlan.comments">Created from cURL on 2023-10-23T19:24:33.193631</stringProp>
</HeaderManager>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
</hashTree>
</jmeterTestPlan>
因为 它太大了无法显示 source diff 。你可以改为 查看blob
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.5">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="测试计划" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.tearDown_on_shutdown">true</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>
<OpenModelThreadGroup guiclass="OpenModelThreadGroupGui" testclass="OpenModelThreadGroup" testname="函数线程组" enabled="true">
<elementProp name="ThreadGroup.main_controller" elementType="OpenModelThreadGroupController"/>
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<stringProp name="OpenModelThreadGroup.schedule">rate(0/s) random_arrivals(10 s) rate(10/s)
random_arrivals(1 m) rate(10/s)</stringProp>
<stringProp name="OpenModelThreadGroup.random_seed"></stringProp>
</OpenModelThreadGroup>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">127.0.0.1</stringProp>
<stringProp name="HTTPSampler.port">8091</stringProp>
<stringProp name="HTTPSampler.protocol">http</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/api/jmeter/query_order_info?orderId=100001</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>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="TestPlan.comments">Created from cURL on 2023-10-23T19:24:33.191123</stringProp>
</HTTPSamplerProxy>
<hashTree>
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP HeaderManager" enabled="true">
<collectionProp name="HeaderManager.headers">
<elementProp name="Accept" elementType="Header">
<stringProp name="Header.name">Accept</stringProp>
<stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7</stringProp>
</elementProp>
<elementProp name="Accept-Language" elementType="Header">
<stringProp name="Header.name">Accept-Language</stringProp>
<stringProp name="Header.value">zh-CN,zh;q=0.9,en;q=0.8</stringProp>
</elementProp>
<elementProp name="Cache-Control" elementType="Header">
<stringProp name="Header.name">Cache-Control</stringProp>
<stringProp name="Header.value">max-age=0</stringProp>
</elementProp>
<elementProp name="DNT" elementType="Header">
<stringProp name="Header.name">DNT</stringProp>
<stringProp name="Header.value">1</stringProp>
</elementProp>
<elementProp name="Sec-Fetch-Dest" elementType="Header">
<stringProp name="Header.name">Sec-Fetch-Dest</stringProp>
<stringProp name="Header.value">document</stringProp>
</elementProp>
<elementProp name="Sec-Fetch-Mode" elementType="Header">
<stringProp name="Header.name">Sec-Fetch-Mode</stringProp>
<stringProp name="Header.value">navigate</stringProp>
</elementProp>
<elementProp name="Sec-Fetch-Site" elementType="Header">
<stringProp name="Header.name">Sec-Fetch-Site</stringProp>
<stringProp name="Header.value">none</stringProp>
</elementProp>
<elementProp name="Sec-Fetch-User" elementType="Header">
<stringProp name="Header.name">Sec-Fetch-User</stringProp>
<stringProp name="Header.value">?1</stringProp>
</elementProp>
<elementProp name="Upgrade-Insecure-Requests" elementType="Header">
<stringProp name="Header.name">Upgrade-Insecure-Requests</stringProp>
<stringProp name="Header.value">1</stringProp>
</elementProp>
<elementProp name="User-Agent" elementType="Header">
<stringProp name="Header.name">User-Agent</stringProp>
<stringProp name="Header.value">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36</stringProp>
</elementProp>
<elementProp name="sec-ch-ua" elementType="Header">
<stringProp name="Header.name">sec-ch-ua</stringProp>
<stringProp name="Header.value">&quot;Chromium&quot;;v=&quot;116&quot;, &quot;Not)A;Brand&quot;;v=&quot;24&quot;, &quot;Google Chrome&quot;;v=&quot;116&quot;</stringProp>
</elementProp>
<elementProp name="sec-ch-ua-mobile" elementType="Header">
<stringProp name="Header.name">sec-ch-ua-mobile</stringProp>
<stringProp name="Header.value">?0</stringProp>
</elementProp>
<elementProp name="sec-ch-ua-platform" elementType="Header">
<stringProp name="Header.name">sec-ch-ua-platform</stringProp>
<stringProp name="Header.value">&quot;macOS&quot;</stringProp>
</elementProp>
<elementProp name="Accept-Encoding" elementType="Header">
<stringProp name="Header.name">Accept-Encoding</stringProp>
<stringProp name="Header.value">gzip, deflate</stringProp>
</elementProp>
</collectionProp>
<stringProp name="TestPlan.comments">Created from cURL on 2023-10-23T19:24:33.193631</stringProp>
</HeaderManager>
<hashTree/>
</hashTree>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="查看结果树" enabled="true">
<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>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<url>true</url>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="RespTimeGraphVisualizer" testclass="ResultCollector" testname="响应时间图" enabled="true">
<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>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<url>true</url>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="汇总报告" enabled="true">
<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>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<url>true</url>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
</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>
<intProp name="LoopController.loops">-1</intProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">4</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<boolProp name="ThreadGroup.scheduler">true</boolProp>
<stringProp name="ThreadGroup.duration">300</stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
<boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
</ThreadGroup>
<hashTree>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="简单控制器" enabled="true"/>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">127.0.0.1</stringProp>
<stringProp name="HTTPSampler.port">8091</stringProp>
<stringProp name="HTTPSampler.protocol">http</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/api/jmeter/query_order_info?orderId=100001</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>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="TestPlan.comments">Created from cURL on 2023-10-24T09:33:24.435479</stringProp>
</HTTPSamplerProxy>
<hashTree>
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP HeaderManager" enabled="true">
<collectionProp name="HeaderManager.headers">
<elementProp name="Accept" elementType="Header">
<stringProp name="Header.name">Accept</stringProp>
<stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7</stringProp>
</elementProp>
<elementProp name="Accept-Language" elementType="Header">
<stringProp name="Header.name">Accept-Language</stringProp>
<stringProp name="Header.value">zh-CN,zh;q=0.9,en;q=0.8</stringProp>
</elementProp>
<elementProp name="Cache-Control" elementType="Header">
<stringProp name="Header.name">Cache-Control</stringProp>
<stringProp name="Header.value">max-age=0</stringProp>
</elementProp>
<elementProp name="DNT" elementType="Header">
<stringProp name="Header.name">DNT</stringProp>
<stringProp name="Header.value">1</stringProp>
</elementProp>
<elementProp name="Upgrade-Insecure-Requests" elementType="Header">
<stringProp name="Header.name">Upgrade-Insecure-Requests</stringProp>
<stringProp name="Header.value">1</stringProp>
</elementProp>
<elementProp name="User-Agent" elementType="Header">
<stringProp name="Header.name">User-Agent</stringProp>
<stringProp name="Header.value">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36</stringProp>
</elementProp>
<elementProp name="Accept-Encoding" elementType="Header">
<stringProp name="Header.name">Accept-Encoding</stringProp>
<stringProp name="Header.value">gzip, deflate</stringProp>
</elementProp>
</collectionProp>
<stringProp name="TestPlan.comments">Created from cURL on 2023-10-24T09:33:24.436497</stringProp>
</HeaderManager>
<hashTree/>
</hashTree>
</hashTree>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="查看结果树" enabled="true">
<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>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<url>true</url>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="RespTimeGraphVisualizer" testclass="ResultCollector" testname="响应时间图" enabled="true">
<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>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<url>true</url>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="汇总报告" enabled="true">
<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>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<url>true</url>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="图形结果" enabled="true">
<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>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<url>true</url>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="StatVisualizer" testclass="ResultCollector" testname="聚合报告" enabled="true">
<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>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<url>true</url>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
</jmeterTestPlan>
<mxfile host="Electron" modified="2023-10-24T03:22:17.214Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.2.8 Chrome/102.0.5005.167 Electron/19.0.15 Safari/537.36" etag="TpO9QgpBNdhJJQA0c2tK" version="20.2.8" type="device"><diagram id="EY9tojcpFrZK63zlljGt" name="第 1 页">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</diagram></mxfile>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.bugstack</groupId>
<artifactId>xfg-dev-tech-jmeter</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>xfg-dev-tech-app</module>
</modules>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.12</version>
<relativePath/>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.28</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>32.1.2-jre</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>xfg-dev-tech</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.7</version>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profileActive>dev</profileActive>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<profileActive>test</profileActive>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profileActive>prod</profileActive>
</properties>
</profile>
</profiles>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.bugstack</groupId>
<artifactId>xfg-dev-tech-jmeter</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>xfg-dev-tech-app</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
</dependencies>
<build>
<finalName>xfg-dev-tech-app</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/**</include>
</includes>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/**</include>
</includes>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.6</version>
<configuration>
<skipTests>true</skipTests>
<testFailureIgnore>false</testFailureIgnore>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>cn.bugstack.xfg.dev.tech.Application</mainClass>
<layout>JAR</layout>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package cn.bugstack.xfg.dev.tech;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Random;
@Slf4j
@SpringBootApplication
@Configurable
@RestController("mysql")
@RequestMapping("/api/jmeter/")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
/**
* http://127.0.0.1:8091/api/jmeter/query_order_info?orderId=100001
* @param orderId
*/
@RequestMapping(value = "query_order_info", method = RequestMethod.GET)
public String queryOrderInfo(@RequestParam String orderId) throws InterruptedException {
log.info("查询订单信息 orderId: {}", orderId);
// 180~220 随机休眠
Thread.sleep(new Random().nextInt(41) + 220);
return "您的订单信息查询完毕";
}
}
server:
port: 8091
# 日志
logging:
level:
root: info
config: classpath:logback-spring.xml
\ No newline at end of file
server:
port: 8091
# 日志
logging:
level:
root: info
config: classpath:logback-spring.xml
\ No newline at end of file
server:
port: 8091
# 日志
logging:
level:
root: info
config: classpath:logback-spring.xml
\ No newline at end of file
spring:
config:
name: xfg-dev-tech
profiles:
active: dev
<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
<configuration scan="true" scanPeriod="10 seconds">
<contextName>logback</contextName>
<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
<springProperty scope="context" name="log.path" source="logging.path"/>
<!-- 日志格式 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- 输出到控制台 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- 此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<encoder>
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0}%X{ServiceId} -%X{trace-id} %m%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--输出到文件-->
<!-- 时间滚动输出 level为 INFO 日志 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>./data/log/log_info.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0}%X{ServiceId} -%X{trace-id} %m%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>./data/log/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
</appender>
<!-- 时间滚动输出 level为 ERROR 日志 -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>./data/log/log_error.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0}%X{ServiceId} -%X{trace-id} %m%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>./data/log/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 日志文件保留天数【根据服务器预留,可自行调整】 -->
<maxHistory>7</maxHistory>
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
<!-- WARN 级别及以上 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
</appender>
<!-- 异步输出 -->
<appender name="ASYNC_FILE_INFO" class="ch.qos.logback.classic.AsyncAppender">
<!-- 队列剩余容量小于discardingThreshold,则会丢弃TRACT、DEBUG、INFO级别的日志;默认值-1,为queueSize的20%;0不丢失日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>8192</queueSize>
<!-- neverBlock:true 会丢失日志,但业务性能不受影响 -->
<neverBlock>true</neverBlock>
<!--是否提取调用者数据-->
<includeCallerData>false</includeCallerData>
<appender-ref ref="INFO_FILE"/>
</appender>
<appender name="ASYNC_FILE_ERROR" class="ch.qos.logback.classic.AsyncAppender">
<!-- 队列剩余容量小于discardingThreshold,则会丢弃TRACT、DEBUG、INFO级别的日志;默认值-1,为queueSize的20%;0不丢失日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>1024</queueSize>
<!-- neverBlock:true 会丢失日志,但业务性能不受影响 -->
<neverBlock>true</neverBlock>
<!--是否提取调用者数据-->
<includeCallerData>false</includeCallerData>
<appender-ref ref="ERROR_FILE"/>
</appender>
<!-- 开发环境:控制台打印 -->
<springProfile name="dev">
<logger name="com.nmys.view" level="debug"/>
</springProfile>
<root level="info">
<appender-ref ref="CONSOLE"/>
<!-- 异步日志-INFO -->
<appender-ref ref="ASYNC_FILE_INFO"/>
<!-- 异步日志-ERROR -->
<appender-ref ref="ASYNC_FILE_ERROR"/>
</root>
</configuration>
\ No newline at end of file
package cn.bugstack.xfg.dev.tech.test;
public class ApiTest {
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册