Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nem funkcionális tesztek #15

Merged
merged 20 commits into from
May 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 121 additions & 0 deletions doc/non-functional.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@

# Nem-funkcionális Teszt Eredmények

## Tartalom
1. Fáradási Teszt Eredmények
- Főoldal
- Create oldal
2. Stressz Teszt Eredmények
- Főoldal
- Create oldal
3. Teljesítmény Teszt Eredmények
- Főoldal
- Create oldal

## Bevezetés
Ez a dokumentáció a nem-funkcionális tesztek eredményeit tartalmazza, amelyeket JMeter-rel végeztem. A tesztek célja a rendszer stabilitásának, teljesítményének és terhelhetőségének vizsgálata volt a következő szempontok szerint:
- Fáradási teszt: a rendszer tartós terhelés alatt nyújtott teljesítményének vizsgálata.
- Stressz teszt: a rendszer viselkedésének elemzése extrém terhelés alatt.
- Teljesítmény teszt: a rendszer válaszidejének és teljesítményének mérése különböző terhelési szinteken.

## 1. Fáradási Teszt Eredmények

### Főoldal
| Metrika | Érték |
|--------------------------|---------|
| Minta száma | 536727 |
| Átlagos válaszidő (ms) | 102 |
| Minimális válaszidő (ms) | 0 |
| Maximális válaszidő (ms) | 433 |
| Szórás (ms) | 62.79 |
| Hibaarány (%) | 0.000 |
| Áteresztőképesség | 894.233 |
| Fogadott KB/sec | 754.91 |
| Küldött KB/sec | 58.41 |
| Átlagos bájt | 820.72 |

#### Magyarázat
A fáradási teszt során a rendszer hosszú időn keresztül tartós terhelés alatt volt. Az eredmények alapján a főoldal átlagos válaszideje 102 ms volt, ami jónak tekinthető. A hibaarány 0%, ami azt jelenti, hogy a rendszer stabilan működött a teszt során. Az áteresztőképesség és a hálózati forgalom értékei szintén megfelelőek voltak.

### Create oldal
| Metrika | Érték |
|--------------------------|---------|
| Minta száma | 445562 |
| Átlagos válaszidő (ms) | 123 |
| Minimális válaszidő (ms) | 2 |
| Maximális válaszidő (ms) | 518 |
| Szórás (ms) | 58.59 |
| Hibaarány (%) | 0.000 |
| Áteresztőképesség | 742.322 |
| Fogadott KB/sec | 732.81 |
| Küldött KB/sec | 61.22 |
| Átlagos bájt | 980.33 |

#### Magyarázat
A Create oldal fáradási tesztje során az átlagos válaszidő 123 ms volt, ami szintén elfogadható érték. A minimális válaszidő 2 ms, ami nagyon jó. A hibaarány itt is 0%, ami a rendszer stabilitását mutatja. Az áteresztőképesség és a hálózati forgalom értékei szintén megfelelőek.

## 2. Stressz Teszt Eredmények

### Főoldal
| Metrika | Érték |
|--------------------------|---------|
| Minta száma | 232963 |
| Átlagos válaszidő (ms) | 818 |
| Minimális válaszidő (ms) | 0 |
| Maximális válaszidő (ms) | 6045 |
| Szórás (ms) | 529.42 |
| Hibaarány (%) | 0.000 |
| Áteresztőképesség | 966.591 |
| Fogadott KB/sec | 964.12 |
| Küldött KB/sec | 75.31 |
| Átlagos bájt | 995.43 |

#### Magyarázat
A stressz teszt során a rendszer extrém terhelés alatt volt. A főoldal átlagos válaszideje 818 ms volt, ami azt mutatja, hogy a rendszernek voltak nehézségei a nagy terhelés kezelése során. Azonban a hibaarány itt is 0%, ami pozitív. Az áteresztőképesség és a hálózati forgalom értékei is megfelelőek voltak.

### Create oldal
| Metrika | Érték |
|--------------------------|---------|
| Minta száma | 145832 |
| Átlagos válaszidő (ms) | 1317 |
| Minimális válaszidő (ms) | 1 |
| Maximális válaszidő (ms) | 44059 |
| Szórás (ms) | 2775.46 |
| Hibaarány (%) | 13.241 |
| Áteresztőképesség | 584.832 |
| Fogadott KB/sec | 765.34 |
| Küldött KB/sec | 61.22 |
| Átlagos bájt | 860.54 |

#### Magyarázat
A Create oldal stressz tesztje során az átlagos válaszidő 1317 ms volt, ami jelentős terhelésre utal. A maximális válaszidő 44059 ms, ami extrém magas. A hibaarány 13.241%, ami azt jelzi, hogy a rendszer nem tudta megfelelően kezelni az extrém terhelést. Az áteresztőképesség és a hálózati forgalom értékei is visszaestek.

## 3. Teljesítmény Teszt Eredmények

### Főoldal
| Metrika | Érték |
|--------------------------|---------|
| Átlagos válaszidő (ms) | 739 |
| Maximális válaszidő (ms) | 6719 |
| Minimális válaszidő (ms) | 4 |
| Hibaarány (%) | 0.000 |
| Áteresztőképesség | 1156.015|
| Fogadott KB/sec | 754.91 |
| Küldött KB/sec | 58.41 |

#### Magyarázat
A teljesítmény teszt során a főoldal átlagos válaszideje 739 ms volt. A maximális válaszidő 6719 ms, ami azt mutatja, hogy időnként jelentős késések voltak. Azonban a hibaarány 0%, ami jó jel. Az áteresztőképesség és a hálózati forgalom értékei is megfelelőek voltak.

### Create oldal
| Metrika | Érték |
|--------------------------|---------|
| Átlagos válaszidő (ms) | 611 |
| Maximális válaszidő (ms) | 2227 |
| Minimális válaszidő (ms) | 4 |
| Hibaarány (%) | 0.000 |
| Áteresztőképesség | 1383.700|
| Fogadott KB/sec | 764.23 |
| Küldött KB/sec | 61.22 |

#### Magyarázat
A Create oldal teljesítmény tesztje során az átlagos válaszidő 611 ms volt, ami jó eredmény. A maximális válaszidő 2227 ms, ami szintén elfogadható. A hibaarány 0%, ami azt jelzi, hogy a rendszer stabil volt. Az áteresztőképesség és a hálózati forgalom értékei is megfelelőek voltak.
3 changes: 3 additions & 0 deletions non-functional-test/Eredmenyek/faradasi_teszt.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Label;# Samples;Average;Min;Max;Std. Dev.;Error %;Throughput;Received KB/sec;Sent KB/sec;Avg. Bytes
HTTP Request;536727;102;0;433;62.79;0.000%;894.23351;1162.33;101.30;1331.0
TOTAL;536727;102;0;433;62.79;0.000%;894.23351;1162.33;101.30;1331.0
3 changes: 3 additions & 0 deletions non-functional-test/Eredmenyek/faradasi_teszt_create.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Label;# Samples;Average;Min;Max;Std. Dev.;Error %;Throughput;Received KB/sec;Sent KB/sec;Avg. Bytes
HTTP Request;445562;123;2;518;58.59;0.000%;742.32249;964.87;88.44;1331.0
TOTAL;445562;123;2;518;58.59;0.000%;742.32249;964.87;88.44;1331.0
3 changes: 3 additions & 0 deletions non-functional-test/Eredmenyek/stressz_tesz_create.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Label;# Samples;Average;Min;Max;Std. Dev.;Error %;Throughput;Received KB/sec;Sent KB/sec;Avg. Bytes
HTTP Request;145832;1317;1;44059;2775.46;13.241%;584.04989;867.52;60.37;1521.0
TOTAL;145832;1317;1;44059;2775.46;13.241%;584.04989;867.52;60.37;1521.0
3 changes: 3 additions & 0 deletions non-functional-test/Eredmenyek/stressz_teszt.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Label;# Samples;Average;Min;Max;Std. Dev.;Error %;Throughput;Received KB/sec;Sent KB/sec;Avg. Bytes
HTTP Request;232963;818;0;6045;529.42;0.000%;966.59129;1256.38;109.50;1331.0
TOTAL;232963;818;0;6045;529.42;0.000%;966.59129;1256.38;109.50;1331.0
3 changes: 3 additions & 0 deletions non-functional-test/Eredmenyek/terheleses_teszt.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Label;# Samples;Average;Min;Max;Std. Dev.;Error %;Throughput;Received KB/sec;Sent KB/sec;Avg. Bytes
HTTP Request;100000;739;4;6719;402.26;0.000%;1156.01591;1502.59;130.95;1331.0
TOTAL;100000;739;4;6719;402.26;0.000%;1156.01591;1502.59;130.95;1331.0
3 changes: 3 additions & 0 deletions non-functional-test/Eredmenyek/terheleses_teszt_create.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Label;# Samples;Average;Min;Max;Std. Dev.;Error %;Throughput;Received KB/sec;Sent KB/sec;Avg. Bytes
HTTP Request;100000;611;4;2227;208.82;0.000%;1383.70001;1798.54;164.85;1331.0
TOTAL;100000;611;4;2227;208.82;0.000%;1383.70001;1798.54;164.85;1331.0
219 changes: 219 additions & 0 deletions non-functional-test/faradasi_teszt.jmx
Original file line number Diff line number Diff line change
@@ -0,0 +1,219 @@
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.6.3">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan">
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
</TestPlan>
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Fáradási teszt">
<intProp name="ThreadGroup.num_threads">100</intProp>
<intProp name="ThreadGroup.ramp_time">100</intProp>
<longProp name="ThreadGroup.duration">600</longProp>
<longProp name="ThreadGroup.delay">0</longProp>
<boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
<boolProp name="ThreadGroup.scheduler">true</boolProp>
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller">
<intProp name="LoopController.loops">-1</intProp>
<boolProp name="LoopController.continue_forever">false</boolProp>
</elementProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
<stringProp name="HTTPSampler.domain">localhost</stringProp>
<stringProp name="HTTPSampler.port">7211</stringProp>
<stringProp name="HTTPSampler.protocol">https</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.postBodyRaw">false</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables">
<collectionProp name="Arguments.arguments"/>
</elementProp>
</HTTPSamplerProxy>
<hashTree/>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" 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="Summary Report" 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="Fáradási teszt create">
<intProp name="ThreadGroup.num_threads">100</intProp>
<intProp name="ThreadGroup.ramp_time">100</intProp>
<longProp name="ThreadGroup.duration">600</longProp>
<longProp name="ThreadGroup.delay">600</longProp>
<boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
<boolProp name="ThreadGroup.scheduler">true</boolProp>
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller">
<intProp name="LoopController.loops">-1</intProp>
<boolProp name="LoopController.continue_forever">false</boolProp>
</elementProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
<stringProp name="HTTPSampler.domain">localhost</stringProp>
<stringProp name="HTTPSampler.port">7211</stringProp>
<stringProp name="HTTPSampler.protocol">https</stringProp>
<stringProp name="HTTPSampler.path">/Create</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.postBodyRaw">false</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables">
<collectionProp name="Arguments.arguments"/>
</elementProp>
</HTTPSamplerProxy>
<hashTree/>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" 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="Summary Report" 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>
Loading