Open eliezercazares opened 2 years ago
Can you provide the json file by chance?
Can you provide the json file by chance?
Nothing to hide on it :D
{
"aggregate": {
"counters": {
"vusers.created_by_name.0": 600,
"vusers.created": 600,
"socketio.emit": 6280,
"errors.Error: websocket error": 600,
"vusers.failed": 600
},
"rates": {
"socketio.emit_rate": 100
},
"firstCounterAt": 1654195119273,
"firstHistogramAt": 1654195119316,
"lastCounterAt": 1654195179187,
"lastHistogramAt": 1654195179187,
"firstMetricAt": 1654195119273,
"lastMetricAt": 1654195179187,
"period": 1654195170000,
"summaries": {
"socketio.response_time": {
"min": 0,
"max": 1.6,
"count": 6280,
"p50": 0.1,
"median": 0.1,
"p75": 0.1,
"p90": 0.2,
"p95": 0.2,
"p99": 0.3,
"p999": 1
}
}
},
"intermediate": [
{
"counters": {
"vusers.created_by_name.0": 10,
"vusers.created": 10,
"socketio.emit": 10
},
"rates": {
"socketio.emit_rate": 10
},
"socketio.emit_rate": null,
"firstCounterAt": 1654195119273,
"firstHistogramAt": 1654195119316,
"lastCounterAt": 1654195119328,
"lastHistogramAt": 1654195119329,
"firstMetricAt": 1654195119273,
"lastMetricAt": 1654195119329,
"period": "1654195110000",
"summaries": {
"socketio.response_time": {
"min": 0.9,
"max": 1.2,
"count": 10,
"p50": 1,
"median": 1,
"p75": 1,
"p90": 1,
"p95": 1,
"p99": 1,
"p999": 1
}
}
},
{
"counters": {
"vusers.created_by_name.0": 100,
"vusers.created": 100,
"socketio.emit": 140
},
"rates": {
"socketio.emit_rate": 20
},
"socketio.emit_rate": null,
"firstCounterAt": 1654195120272,
"firstHistogramAt": 1654195120278,
"lastCounterAt": 1654195129336,
"lastHistogramAt": 1654195129336,
"firstMetricAt": 1654195120272,
"lastMetricAt": 1654195129336,
"period": "1654195120000",
"summaries": {
"socketio.response_time": {
"min": 0.1,
"max": 1.6,
"count": 140,
"p50": 0.3,
"median": 0.3,
"p75": 0.3,
"p90": 0.4,
"p95": 0.6,
"p99": 0.9,
"p999": 1
}
}
},
{
"counters": {
"vusers.created_by_name.0": 100,
"vusers.created": 100,
"socketio.emit": 480
},
"rates": {
"socketio.emit_rate": 50
},
"socketio.emit_rate": null,
"firstCounterAt": 1654195130272,
"firstHistogramAt": 1654195130280,
"lastCounterAt": 1654195139351,
"lastHistogramAt": 1654195139352,
"firstMetricAt": 1654195130272,
"lastMetricAt": 1654195139352,
"period": "1654195130000",
"summaries": {
"socketio.response_time": {
"min": 0.1,
"max": 0.8,
"count": 480,
"p50": 0.1,
"median": 0.1,
"p75": 0.2,
"p90": 0.2,
"p95": 0.2,
"p99": 0.3,
"p999": 0.4
}
}
},
{
"counters": {
"vusers.created_by_name.0": 100,
"vusers.created": 100,
"socketio.emit": 880
},
"rates": {
"socketio.emit_rate": 97
},
"socketio.emit_rate": null,
"firstCounterAt": 1654195140272,
"firstHistogramAt": 1654195140278,
"lastCounterAt": 1654195149911,
"lastHistogramAt": 1654195149911,
"firstMetricAt": 1654195140272,
"lastMetricAt": 1654195149911,
"period": "1654195140000",
"summaries": {
"socketio.response_time": {
"min": 0.1,
"max": 0.7,
"count": 880,
"p50": 0.1,
"median": 0.1,
"p75": 0.1,
"p90": 0.2,
"p95": 0.2,
"p99": 0.2,
"p999": 0.7
}
}
},
{
"counters": {
"vusers.created_by_name.0": 100,
"vusers.created": 100,
"socketio.emit": 1270
},
"rates": {
"socketio.emit_rate": 130
},
"socketio.emit_rate": null,
"firstCounterAt": 1654195150272,
"firstHistogramAt": 1654195150276,
"lastCounterAt": 1654195159847,
"lastHistogramAt": 1654195159847,
"firstMetricAt": 1654195150272,
"lastMetricAt": 1654195159847,
"period": "1654195150000",
"summaries": {
"socketio.response_time": {
"min": 0.1,
"max": 0.6,
"count": 1270,
"p50": 0.1,
"median": 0.1,
"p75": 0.1,
"p90": 0.2,
"p95": 0.2,
"p99": 0.2,
"p999": 0.4
}
}
},
{
"counters": {
"vusers.created_by_name.0": 100,
"vusers.created": 100,
"socketio.emit": 1680
},
"rates": {
"socketio.emit_rate": 170
},
"socketio.emit_rate": null,
"firstCounterAt": 1654195160272,
"firstHistogramAt": 1654195160277,
"lastCounterAt": 1654195169955,
"lastHistogramAt": 1654195169955,
"firstMetricAt": 1654195160272,
"lastMetricAt": 1654195169955,
"period": "1654195160000",
"summaries": {
"socketio.response_time": {
"min": 0,
"max": 0.4,
"count": 1680,
"p50": 0.1,
"median": 0.1,
"p75": 0.1,
"p90": 0.2,
"p95": 0.2,
"p99": 0.3,
"p999": 0.4
}
}
},
{
"counters": {
"vusers.created_by_name.0": 90,
"vusers.created": 90,
"socketio.emit": 1820,
"errors.Error: websocket error": 600,
"vusers.failed": 600
},
"rates": {
"socketio.emit_rate": 209
},
"socketio.emit_rate": null,
"firstCounterAt": 1654195170272,
"firstHistogramAt": 1654195170277,
"lastCounterAt": 1654195179187,
"lastHistogramAt": 1654195179187,
"firstMetricAt": 1654195170272,
"lastMetricAt": 1654195179187,
"period": "1654195170000",
"summaries": {
"socketio.response_time": {
"min": 0,
"max": 0.7,
"count": 1820,
"p50": 0.1,
"median": 0.1,
"p75": 0.1,
"p90": 0.2,
"p95": 0.2,
"p99": 0.2,
"p999": 0.3
}
}
}
]
}
Ill start looking at it, seems a lot is missing from the report output so at the very least ill add some nullchecks
Ill start looking at it, seems a lot is missing from the report output so at the very least ill add some nullchecks
I see... tbh I thought that was the standard output, I even added extendedMetrics to see if it improved in detail hehe.
This is my test, btw...
config:
extendedMetrics: true
target: "ws://localhost:50000"
ensure:
max: 2000 # fail if max response time exceeds x ms
maxErrorRate: 1 # fail if error rate exceeds 1%
socketio:
transports: ["websocket"]
processor: "./custom.js" # set a custom processor to load dynamic scenario data
phases:
- duration: 60 # Run phase for s seconds
arrivalRate: 10 # Create x virtual users per second
# rampTo: 15
name: "Loading users per second and ramping up their numbers for x seconds"
scenarios:
- engine: "socketio"
flow:
- function: "getScenarioData" # load variables
- emit:
channel: "setProfile"
data: "{{ setProfileData }}"
- think: 7 # do nothing for x seconds, then disconnect
- emit:
channel: "rejoinPlace"
data: "{{ rejoinPlace }}"
- think: 3 # do nothing for x seconds, then disconnect
- loop:
- emit:
channel: "messageSent"
data: "{{ messageSent }}"
- think: 3 # do nothing for x seconds, then disconnect
- emit:
channel: "messageReply"
data: "{{ messageSentReply }}"
- think: 2 # do nothing for x seconds, then disconnect
count: 10
Ah yeah, I dont have much support for sockets in general, certainly not socketio. I can look into the support required though.
Since it's reporting the error in summary.tsx, this is what I found corrects the issue.
At the bottom of the file near 'Overall Rating' change:
{Array(getEmptyStars()).fill(<i className="far fa-star text-muted"></i>)}
to:
{Array.from(Array(getEmptyStars()), (_, i) => <i key={i} className="far fa-star text-muted"></i>)}
Fill spits out a bunch of the spans, which require keys and fill can't generate keys, so... also, you can use .map() if you want instead of .from()
Since it's reporting the error in summary.tsx, this is what I found corrects the issue.
At the bottom of the file near 'Overall Rating' change:
{Array(getEmptyStars()).fill(<i className="far fa-star text-muted"></i>)}
to:
{Array.from(Array(getEmptyStars()), (_, i) => <i key={i} className="far fa-star text-muted"></i>)}
Fill spits out a bunch of the spans, which require keys and fill can't generate keys, so... also, you can use .map() if you want instead of .from()
Hi kumichou, I will give it a shot tonight... I guess this would be in Extended plugin source code, in file summary.tsx
Thanks so much for looking into this :)
I just ran into the same basic problem as you :) I fixed it in src/components/summary.tsx
Getting a few errors when uploading the file.
` react-jsx-dev-runtime.development.js:117 Warning: Each child in a list should have a unique "key" prop.
Check the render method of)
at Codes (codes.tsx:15:1)
at renderWithHooks (react-dom.development.js:14985:1)
at updateFunctionComponent (react-dom.development.js:17356:1)
at beginWork (react-dom.development.js:19063:1)
at HTMLUnknownElement.callCallback (react-dom.development.js:3945:1)
at Object.invokeGuardedCallbackDev (react-dom.development.js:3994:1)
at invokeGuardedCallback (react-dom.development.js:4056:1)
at beginWork$1 (react-dom.development.js:23964:1)
at performUnitOfWork (react-dom.development.js:22776:1)
errors.tsx:14 Uncaught TypeError: Cannot convert undefined or null to object
at Function.getOwnPropertyNames ()
at Errors (errors.tsx:14:1)
at renderWithHooks (react-dom.development.js:14985:1)
at updateFunctionComponent (react-dom.development.js:17356:1)
at beginWork (react-dom.development.js:19063:1)
at HTMLUnknownElement.callCallback (react-dom.development.js:3945:1)
at Object.invokeGuardedCallbackDev (react-dom.development.js:3994:1)
at invokeGuardedCallback (react-dom.development.js:4056:1)
at beginWork$1 (react-dom.development.js:23964:1)
at performUnitOfWork (react-dom.development.js:22776:1)
phases.tsx:11 Uncaught TypeError: Cannot read properties of undefined (reading 'length')
at Phases (phases.tsx:11:1)
at renderWithHooks (react-dom.development.js:14985:1)
at updateFunctionComponent (react-dom.development.js:17356:1)
at beginWork (react-dom.development.js:19063:1)
at HTMLUnknownElement.callCallback (react-dom.development.js:3945:1)
at Object.invokeGuardedCallbackDev (react-dom.development.js:3994:1)
at invokeGuardedCallback (react-dom.development.js:4056:1)
at beginWork$1 (react-dom.development.js:23964:1)
at performUnitOfWork (react-dom.development.js:22776:1)
at workLoopSync (react-dom.development.js:22707:1)
graph-latency.tsx:25 Uncaught TypeError: Cannot read properties of undefined (reading 'toString')
at graph-latency.tsx:25:1
at Array.forEach ()
at mapChartData (graph-latency.tsx:24:1)
at GraphLatency (graph-latency.tsx:85:1)
at renderWithHooks (react-dom.development.js:14985:1)
at updateFunctionComponent (react-dom.development.js:17356:1)
at beginWork (react-dom.development.js:19063:1)
at HTMLUnknownElement.callCallback (react-dom.development.js:3945:1)
at Object.invokeGuardedCallbackDev (react-dom.development.js:3994:1)
at invokeGuardedCallback (react-dom.development.js:4056:1)
graph-reqload.tsx:19 Uncaught TypeError: Cannot read properties of undefined (reading 'toString')
at graph-reqload.tsx:19:1
at Array.forEach ()
at mapChartData (graph-reqload.tsx:18:1)
at GraphReqLoad (graph-reqload.tsx:55:1)
at renderWithHooks (react-dom.development.js:14985:1)
at updateFunctionComponent (react-dom.development.js:17356:1)
at beginWork (react-dom.development.js:19063:1)
at HTMLUnknownElement.callCallback (react-dom.development.js:3945:1)
at Object.invokeGuardedCallbackDev (react-dom.development.js:3994:1)
at invokeGuardedCallback (react-dom.development.js:4056:1)
graph-codes.tsx:26 Uncaught TypeError: Cannot read properties of undefined (reading 'toString')
at graph-codes.tsx:26:1
at Array.forEach ()
at mapChartData (graph-codes.tsx:25:1)
at GraphCodes (graph-codes.tsx:110:1)
at renderWithHooks (react-dom.development.js:14985:1)
at updateFunctionComponent (react-dom.development.js:17356:1)
at beginWork (react-dom.development.js:19063:1)
at HTMLUnknownElement.callCallback (react-dom.development.js:3945:1)
at Object.invokeGuardedCallbackDev (react-dom.development.js:3994:1)
at invokeGuardedCallback (react-dom.development.js:4056:1)
graph-totalcodes.tsx:65 Uncaught TypeError: Cannot convert undefined or null to object
at Function.getOwnPropertyNames ()
at GraphTotalCodes (graph-totalcodes.tsx:65:1)
at renderWithHooks (react-dom.development.js:14985:1)
at updateFunctionComponent (react-dom.development.js:17356:1)
at beginWork (react-dom.development.js:19063:1)
at HTMLUnknownElement.callCallback (react-dom.development.js:3945:1)
at Object.invokeGuardedCallbackDev (react-dom.development.js:3994:1)
at invokeGuardedCallback (react-dom.development.js:4056:1)
at beginWork$1 (react-dom.development.js:23964:1)
at performUnitOfWork (react-dom.development.js:22776:1)
react-dom.development.js:20085 The above error occurred in the component:
Summary
. See https://reactjs.org/link/warning-keys for more information. at i at Summary (http://localhost:3000/static/js/bundle.js:3078:68) at ReportProvider (http://localhost:3000/static/js/bundle.js:3860:5) at PageHome at Routes (http://localhost:3000/static/js/bundle.js:68400:5) at Routing at div at div at div at div at Layout (http://localhost:3000/static/js/bundle.js:4541:5) at ThemeProvider (http://localhost:3000/static/js/bundle.js:3994:5) at Router (http://localhost:3000/static/js/bundle.js:68333:15) at BrowserRouter (http://localhost:3000/static/js/bundle.js:67809:5) at HostRouter printWarning @ react-jsx-dev-runtime.development.js:117 summary.tsx:97 Uncaught TypeError: Cannot read properties of undefined (reading 'mean') at Summary (summary.tsx:97:1) at renderWithHooks (react-dom.development.js:14985:1) at updateFunctionComponent (react-dom.development.js:17356:1) at beginWork (react-dom.development.js:19063:1) at HTMLUnknownElement.callCallback (react-dom.development.js:3945:1) at Object.invokeGuardedCallbackDev (react-dom.development.js:3994:1) at invokeGuardedCallback (react-dom.development.js:4056:1) at beginWork$1 (react-dom.development.js:23964:1) at performUnitOfWork (react-dom.development.js:22776:1) at workLoopSync (react-dom.development.js:22707:1) latency.tsx:16 Uncaught TypeError: Cannot read properties of undefined (reading 'min') at Latency (latency.tsx:16:1) at renderWithHooks (react-dom.development.js:14985:1) at updateFunctionComponent (react-dom.development.js:17356:1) at beginWork (react-dom.development.js:19063:1) at HTMLUnknownElement.callCallback (react-dom.development.js:3945:1) at Object.invokeGuardedCallbackDev (react-dom.development.js:3994:1) at invokeGuardedCallback (react-dom.development.js:4056:1) at beginWork$1 (react-dom.development.js:23964:1) at performUnitOfWork (react-dom.development.js:22776:1) at workLoopSync (react-dom.development.js:22707:1) codes.tsx:15 Uncaught TypeError: Cannot convert undefined or null to object at Function.getOwnPropertyNames (Consider adding an error boundary to your tree to customize error handling behavior. Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries. logCapturedError @ react-dom.development.js:20085 react-dom.development.js:20085 The above error occurred in the component:
Consider adding an error boundary to your tree to customize error handling behavior. Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries. logCapturedError @ react-dom.development.js:20085 react-dom.development.js:20085 The above error occurred in the component:
Consider adding an error boundary to your tree to customize error handling behavior. Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries. logCapturedError @ react-dom.development.js:20085 react-dom.development.js:20085 The above error occurred in the component:
Consider adding an error boundary to your tree to customize error handling behavior. Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries. logCapturedError @ react-dom.development.js:20085 react-dom.development.js:20085 The above error occurred in the component:
Consider adding an error boundary to your tree to customize error handling behavior. Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries. logCapturedError @ react-dom.development.js:20085 react-dom.development.js:20085 The above error occurred in the component:
Consider adding an error boundary to your tree to customize error handling behavior. Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries. logCapturedError @ react-dom.development.js:20085 react-dom.development.js:20085 The above error occurred in the component:
Consider adding an error boundary to your tree to customize error handling behavior. Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries. logCapturedError @ react-dom.development.js:20085 react-dom.development.js:20085 The above error occurred in the component:
Consider adding an error boundary to your tree to customize error handling behavior. Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries. logCapturedError @ react-dom.development.js:20085 react-dom.development.js:20085 The above error occurred in the component:
Consider adding an error boundary to your tree to customize error handling behavior. Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries. logCapturedError @ react-dom.development.js:20085 react-dom.development.js:67 Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function. at ReportProvider (http://localhost:3000/static/js/bundle.js:3860:5) at PageHome at Routes (http://localhost:3000/static/js/bundle.js:68400:5) at Routing at div at div at div at div at Layout (http://localhost:3000/static/js/bundle.js:4541:5) at ThemeProvider (http://localhost:3000/static/js/bundle.js:3994:5) at Router (http://localhost:3000/static/js/bundle.js:68333:15) at BrowserRouter (http://localhost:3000/static/js/bundle.js:67809:5) at HostRouter printWarning @ react-dom.development.js:67 react-dom.development.js:67 Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function. at LoaderPayload (http://localhost:3000/static/js/bundle.js:2421:68) at ReportProvider (http://localhost:3000/static/js/bundle.js:3860:5) at PageHome at Routes (http://localhost:3000/static/js/bundle.js:68400:5) at Routing at div at div at div at div at Layout (http://localhost:3000/static/js/bundle.js:4541:5) at ThemeProvider (http://localhost:3000/static/js/bundle.js:3994:5) at Router (http://localhost:3000/static/js/bundle.js:68333:15) at BrowserRouter (http://localhost:3000/static/js/bundle.js:67809:5) at HostRouter printWarning @ react-dom.development.js:67 `