locust 2.33.3.dev15__py3-none-any.whl → 2.33.3.dev19__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
locust/_version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '2.33.3.dev15'
21
- __version_tuple__ = version_tuple = (2, 33, 3, 'dev15')
20
+ __version__ = version = '2.33.3.dev19'
21
+ __version_tuple__ = version_tuple = (2, 33, 3, 'dev19')
@@ -1,4 +1,4 @@
1
- var RY=Object.defineProperty;var EY=(e,t,r)=>t in e?RY(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var m_=(e,t,r)=>EY(e,typeof t!="symbol"?t+"":t,r);function LY(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const i in n)if(i!=="default"&&!(i in e)){const a=Object.getOwnPropertyDescriptor(n,i);a&&Object.defineProperty(e,i,a.get?a:{enumerable:!0,get:()=>n[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();function ki(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function OY(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}),r}var y_={exports:{}},Oh={},x_={exports:{}},Ot={};/**
1
+ var RY=Object.defineProperty;var EY=(e,t,r)=>t in e?RY(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var m_=(e,t,r)=>EY(e,typeof t!="symbol"?t+"":t,r);function LY(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const i in n)if(i!=="default"&&!(i in e)){const a=Object.getOwnPropertyDescriptor(n,i);a&&Object.defineProperty(e,i,a.get?a:{enumerable:!0,get:()=>n[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();function ki(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function OY(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var r=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}),r}var y_={exports:{}},Oh={},x_={exports:{}},Ot={};/**
2
2
  * @license React
3
3
  * react.production.min.js
4
4
  *
@@ -218,7 +218,7 @@ PERFORMANCE OF THIS SOFTWARE.
218
218
  <span style="color:${h};">
219
219
  ${v}:&nbsp${URe({chartValueFormatter:i,value:g})}
220
220
  </span>
221
- `,""):"No data",borderWidth:0},xAxis:s||{type:"time",min:(e.time||[new Date().toISOString()])[0],startValue:(e.time||[])[0],axisLabel:{formatter:jRe}},grid:l||{left:60,right:40},yAxis:WRe({splitAxis:a,yAxisLabels:o}),series:G7({charts:e,lines:r,scatterplot:u}),color:n,toolbox:{right:10,feature:{dataZoom:{title:{zoom:"Zoom Select",back:"Zoom Reset"},yAxisIndex:!1},saveAsImage:{name:t.replace(/\s+/g,"_").toLowerCase()+"_"+new Date().getTime()/1e3,title:"Download as PNG",emphasis:{iconStyle:{textPosition:"left"}}}}}}),qRe=e=>({symbol:"none",label:{formatter:t=>`Run #${t.dataIndex+1}`,padding:[0,0,8,0]},data:(e.markers||[]).map(t=>({xAxis:t}))}),XRe=e=>t=>{const{batch:r}=t;if(!r)return;const[{start:n,startValue:i,end:a}]=r,o=n>0&&a<=100||i>0;e.setOption({dataZoom:[{type:"slider",show:o}]})};function ZRe({charts:e,title:t,lines:r,colors:n,chartValueFormatter:i,splitAxis:a,yAxisLabels:o,xAxis:s,grid:l,scatterplot:u,shouldReplaceMergeLines:c=!1}){const[f,d]=G.useState(null),h=fi(({theme:{isDarkMode:g}})=>g),v=G.useRef(null);return G.useEffect(()=>{if(!v.current)return;const g=L1e(v.current);g.setOption(YRe({charts:e,title:t,lines:r,colors:n,chartValueFormatter:i,splitAxis:a,yAxisLabels:o,xAxis:s,grid:l,scatterplot:u})),g.on("datazoom",XRe(g));const y=()=>g.resize();return window.addEventListener("resize",y),g.group="swarmCharts",O1e("swarmCharts"),d(g),()=>{N1e(g),window.removeEventListener("resize",y)}},[v]),G.useEffect(()=>{const g=r.every(({key:y})=>!!e[y]);f&&g&&f.setOption({series:r.map(({key:y,yAxisIndex:x,...S},b)=>({...S,data:e[y],...a?{yAxisIndex:x||b}:{},...b===0?{markLine:qRe(e)}:{}}))})},[e,f,r]),G.useEffect(()=>{if(f){const{textColor:g,axisColor:y,backgroundColor:x,splitLine:S}=h?tV.DARK:tV.LIGHT;f.setOption({backgroundColor:x,textStyle:{color:g},title:{textStyle:{color:g}},legend:{icon:"circle",inactiveColor:g,textStyle:{color:g}},tooltip:{backgroundColor:x,textStyle:{color:g}},xAxis:{axisLine:{lineStyle:{color:y}}},yAxis:{axisLine:{lineStyle:{color:y}},splitLine:{lineStyle:{color:S}}}})}},[f,h]),G.useEffect(()=>{f&&f.setOption({series:G7({charts:e,lines:r,scatterplot:u})},c?{replaceMerge:["series"]}:void 0)},[r]),N.jsx("div",{ref:v,style:{width:"100%",height:"300px"}})}function KRe(){const{data:e,refetch:t}=Ude(),r=Zo(av.setUi),n=fi(({swarm:a})=>a.state),i=n===bn.SPAWNING||n==bn.RUNNING;G.useEffect(()=>{e&&r({ratios:e})},[e]),qx(t,5e3,{shouldRunInterval:i,immediate:!0})}const QRe=2e3;function JRe(){const e=Zo(yk.setSwarm),t=Zo(av.setUi),r=Zo(av.updateCharts),n=Zo(av.updateChartMarkers),i=fi(({swarm:f})=>f),a=G.useRef(i.state),[o,s]=G.useState(!1),{data:l,refetch:u}=jde(),c=i.state===bn.SPAWNING||i.state==bn.RUNNING;G.useEffect(()=>{if(!l)return;const{state:f,currentResponseTimePercentiles:d,extendedStats:h,stats:v,errors:g,totalRps:y,totalFailPerSec:x,failRatio:S,workers:b,userCount:w,totalAvgResponseTime:T}=l,C=new Date().toISOString();o&&(s(!1),n(C));const A=Lp(y,2),k=Lp(x,2),I=Lp(S*100),R={...Object.entries(d).reduce((L,[O,z])=>({...L,[O]:[C,z||0]}),{}),currentRps:[C,A],currentFailPerSec:[C,k],totalAvgResponseTime:[C,Lp(T,2)],userCount:[C,w],time:C};t({extendedStats:h,stats:v,errors:g,totalRps:A,failRatio:I,workers:b,userCount:w}),r(R),e({state:f})},[l]),qx(u,QRe,{shouldRunInterval:c}),G.useEffect(()=>{i.state===bn.RUNNING&&a.current===bn.STOPPED&&s(!0),a.current=i.state},[i.state,a])}function eEe(){const{data:e,refetch:t}=Yde(),r=Zo(av.setUi),n=fi(({swarm:a})=>a.state),i=n===bn.SPAWNING||n==bn.RUNNING;G.useEffect(()=>{e&&r({exceptions:e.exceptions})},[e]),qx(t,5e3,{shouldRunInterval:i,immediate:!0})}function tEe(){return eEe(),N.jsx(Rhe,{})}const rEe=[{key:"occurrences",title:"# Failures"},{key:"method",title:"Method"},{key:"name",title:"Name"},{key:"error",title:"Message",markdown:!0}];function nEe({errors:e}){return N.jsx(Tg,{rows:e,structure:rEe})}const iEe=({ui:{errors:e}})=>({errors:e}),aEe=Ii(iEe)(nEe),oEe=`
221
+ `,""):"No data",borderWidth:0},xAxis:s||{type:"time",min:(e.time||[new Date().toISOString()])[0],startValue:(e.time||[])[0],splitNumber:window.innerWidth<900?2:7,minInterval:1,axisLabel:{formatter:jRe}},grid:l||{left:60,right:40},yAxis:WRe({splitAxis:a,yAxisLabels:o}),series:G7({charts:e,lines:r,scatterplot:u}),color:n,toolbox:{right:10,feature:{dataZoom:{title:{zoom:"Zoom Select",back:"Zoom Reset"},yAxisIndex:!1},saveAsImage:{name:t.replace(/\s+/g,"_").toLowerCase()+"_"+new Date().getTime()/1e3,title:"Download as PNG",emphasis:{iconStyle:{textPosition:"left"}}}}},legend:{top:25}}),qRe=e=>({symbol:"none",label:{formatter:t=>`Run #${t.dataIndex+1}`,padding:[0,0,8,0]},data:(e.markers||[]).map(t=>({xAxis:t}))}),XRe=e=>t=>{const{batch:r}=t;if(!r)return;const[{start:n,startValue:i,end:a}]=r,o=n>0&&a<=100||i>0;e.setOption({dataZoom:[{type:"slider",show:o}]})};function ZRe({charts:e,title:t,lines:r,colors:n,chartValueFormatter:i,splitAxis:a,yAxisLabels:o,xAxis:s,grid:l,scatterplot:u,shouldReplaceMergeLines:c=!1}){const[f,d]=G.useState(null),h=fi(({theme:{isDarkMode:g}})=>g),v=G.useRef(null);return G.useEffect(()=>{if(!v.current)return;const g=L1e(v.current);g.setOption(YRe({charts:e,title:t,lines:r,colors:n,chartValueFormatter:i,splitAxis:a,yAxisLabels:o,xAxis:s,grid:l,scatterplot:u})),g.on("datazoom",XRe(g));const y=()=>{g.resize(),g.setOption({xAxis:{splitNumber:window.innerWidth<900?2:7}})};return window.addEventListener("resize",y),g.group="swarmCharts",O1e("swarmCharts"),d(g),()=>{N1e(g),window.removeEventListener("resize",y)}},[v]),G.useEffect(()=>{const g=r.every(({key:y})=>!!e[y]);f&&g&&f.setOption({series:r.map(({key:y,yAxisIndex:x,...S},b)=>({...S,data:e[y],...a?{yAxisIndex:x||b}:{},...b===0?{markLine:qRe(e)}:{}}))})},[e,f,r]),G.useEffect(()=>{if(f){const{textColor:g,axisColor:y,backgroundColor:x,splitLine:S}=h?tV.DARK:tV.LIGHT;f.setOption({backgroundColor:x,textStyle:{color:g},title:{textStyle:{color:g}},legend:{icon:"circle",inactiveColor:g,textStyle:{color:g}},tooltip:{backgroundColor:x,textStyle:{color:g}},xAxis:{axisLine:{lineStyle:{color:y}}},yAxis:{axisLine:{lineStyle:{color:y}},splitLine:{lineStyle:{color:S}}}})}},[f,h]),G.useEffect(()=>{f&&f.setOption({series:G7({charts:e,lines:r,scatterplot:u})},c?{replaceMerge:["series"]}:void 0)},[r]),N.jsx("div",{ref:v,style:{width:"100%",height:"300px"}})}function KRe(){const{data:e,refetch:t}=Ude(),r=Zo(av.setUi),n=fi(({swarm:a})=>a.state),i=n===bn.SPAWNING||n==bn.RUNNING;G.useEffect(()=>{e&&r({ratios:e})},[e]),qx(t,5e3,{shouldRunInterval:i,immediate:!0})}const QRe=2e3;function JRe(){const e=Zo(yk.setSwarm),t=Zo(av.setUi),r=Zo(av.updateCharts),n=Zo(av.updateChartMarkers),i=fi(({swarm:f})=>f),a=G.useRef(i.state),[o,s]=G.useState(!1),{data:l,refetch:u}=jde(),c=i.state===bn.SPAWNING||i.state==bn.RUNNING;G.useEffect(()=>{if(!l)return;const{state:f,currentResponseTimePercentiles:d,extendedStats:h,stats:v,errors:g,totalRps:y,totalFailPerSec:x,failRatio:S,workers:b,userCount:w,totalAvgResponseTime:T}=l,C=new Date().toISOString();o&&(s(!1),n(C));const A=Lp(y,2),k=Lp(x,2),I=Lp(S*100),R={...Object.entries(d).reduce((L,[O,z])=>({...L,[O]:[C,z||0]}),{}),currentRps:[C,A],currentFailPerSec:[C,k],totalAvgResponseTime:[C,Lp(T,2)],userCount:[C,w],time:C};t({extendedStats:h,stats:v,errors:g,totalRps:A,failRatio:I,workers:b,userCount:w}),r(R),e({state:f})},[l]),qx(u,QRe,{shouldRunInterval:c}),G.useEffect(()=>{i.state===bn.RUNNING&&a.current===bn.STOPPED&&s(!0),a.current=i.state},[i.state,a])}function eEe(){const{data:e,refetch:t}=Yde(),r=Zo(av.setUi),n=fi(({swarm:a})=>a.state),i=n===bn.SPAWNING||n==bn.RUNNING;G.useEffect(()=>{e&&r({exceptions:e.exceptions})},[e]),qx(t,5e3,{shouldRunInterval:i,immediate:!0})}function tEe(){return eEe(),N.jsx(Rhe,{})}const rEe=[{key:"occurrences",title:"# Failures"},{key:"method",title:"Method"},{key:"name",title:"Name"},{key:"error",title:"Message",markdown:!0}];function nEe({errors:e}){return N.jsx(Tg,{rows:e,structure:rEe})}const iEe=({ui:{errors:e}})=>({errors:e}),aEe=Ii(iEe)(nEe),oEe=`
222
222
  Ready to take your load tests to the next level? With [Locust Cloud](https://locust.cloud), we take care of everything!
223
223
 
224
224
 
@@ -8,7 +8,7 @@
8
8
  <meta name="theme-color" content="#000000" />
9
9
 
10
10
  <title>{{ auth_title | default("Locust") }}</title>
11
- <script type="module" crossorigin src="./assets/index-Dv3EcGUO.js"></script>
11
+ <script type="module" crossorigin src="./assets/index-B5kHPwXy.js"></script>
12
12
  </head>
13
13
  <body>
14
14
  <div id="root"></div>
@@ -8,7 +8,7 @@
8
8
  <meta name="theme-color" content="#000000" />
9
9
 
10
10
  <title>Locust</title>
11
- <script type="module" crossorigin src="./assets/index-Dv3EcGUO.js"></script>
11
+ <script type="module" crossorigin src="./assets/index-B5kHPwXy.js"></script>
12
12
  </head>
13
13
  <body>
14
14
  <div id="root"></div>
@@ -9,7 +9,7 @@
9
9
  <meta name="theme-color" content="#000000" />
10
10
 
11
11
  <title>Locust</title>
12
- <script type="module" crossorigin>function v8(t,e){for(var r=0;r<e.length;r++){const n=e[r];if(typeof n!="string"&&!Array.isArray(n)){for(const i in n)if(i!=="default"&&!(i in t)){const a=Object.getOwnPropertyDescriptor(n,i);a&&Object.defineProperty(t,i,a.get?a:{enumerable:!0,get:()=>n[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();function Xc(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function g8(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var r=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}),r}var A_={exports:{}},Qf={},M_={exports:{}},pt={};/**
12
+ <script type="module" crossorigin>function v8(t,e){for(var r=0;r<e.length;r++){const n=e[r];if(typeof n!="string"&&!Array.isArray(n)){for(const i in n)if(i!=="default"&&!(i in t)){const a=Object.getOwnPropertyDescriptor(n,i);a&&Object.defineProperty(t,i,a.get?a:{enumerable:!0,get:()=>n[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();function Xc(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function g8(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var e=t.default;if(typeof e=="function"){var r=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}),r}var A_={exports:{}},Qf={},M_={exports:{}},pt={};/**
13
13
  * @license React
14
14
  * react.production.min.js
15
15
  *
@@ -220,7 +220,7 @@ PERFORMANCE OF THIS SOFTWARE.
220
220
  <span style="color:${d};">
221
221
  ${v}:&nbsp${DSe({chartValueFormatter:i,value:y})}
222
222
  </span>
223
- `,""):"No data",borderWidth:0},xAxis:s||{type:"time",min:(t.time||[new Date().toISOString()])[0],startValue:(t.time||[])[0],axisLabel:{formatter:MSe}},grid:l||{left:60,right:40},yAxis:ASe({splitAxis:a,yAxisLabels:o}),series:y$({charts:t,lines:r,scatterplot:u}),color:n,toolbox:{right:10,feature:{dataZoom:{title:{zoom:"Zoom Select",back:"Zoom Reset"},yAxisIndex:!1},saveAsImage:{name:e.replace(/\s+/g,"_").toLowerCase()+"_"+new Date().getTime()/1e3,title:"Download as PNG",emphasis:{iconStyle:{textPosition:"left"}}}}}}),PSe=t=>({symbol:"none",label:{formatter:e=>`Run #${e.dataIndex+1}`,padding:[0,0,8,0]},data:(t.markers||[]).map(e=>({xAxis:e}))}),ISe=t=>e=>{const{batch:r}=e;if(!r)return;const[{start:n,startValue:i,end:a}]=r,o=n>0&&a<=100||i>0;t.setOption({dataZoom:[{type:"slider",show:o}]})},ESe=oq;function LSe({charts:t,title:e,lines:r,colors:n,chartValueFormatter:i,splitAxis:a,yAxisLabels:o,xAxis:s,grid:l,scatterplot:u,shouldReplaceMergeLines:c=!1}){const[f,h]=Q.useState(null),d=ESe(({theme:{isDarkMode:y}})=>y),v=Q.useRef(null);return Q.useEffect(()=>{if(!v.current)return;const y=yle(v.current);y.setOption(kSe({charts:t,title:e,lines:r,colors:n,chartValueFormatter:i,splitAxis:a,yAxisLabels:o,xAxis:s,grid:l,scatterplot:u})),y.on("datazoom",ISe(y));const m=()=>y.resize();return window.addEventListener("resize",m),y.group="swarmCharts",mle("swarmCharts"),h(y),()=>{_le(y),window.removeEventListener("resize",m)}},[v]),Q.useEffect(()=>{const y=r.every(({key:m})=>!!t[m]);f&&y&&f.setOption({series:r.map(({key:m,yAxisIndex:_,...S},w)=>({...S,data:t[m],...a?{yAxisIndex:_||w}:{},...w===0?{markLine:PSe(t)}:{}}))})},[t,f,r]),Q.useEffect(()=>{if(f){const{textColor:y,axisColor:m,backgroundColor:_,splitLine:S}=d?I5.DARK:I5.LIGHT;f.setOption({backgroundColor:_,textStyle:{color:y},title:{textStyle:{color:y}},legend:{icon:"circle",inactiveColor:y,textStyle:{color:y}},tooltip:{backgroundColor:_,textStyle:{color:y}},xAxis:{axisLine:{lineStyle:{color:m}}},yAxis:{axisLine:{lineStyle:{color:m}},splitLine:{lineStyle:{color:S}}}})}},[f,d]),Q.useEffect(()=>{f&&f.setOption({series:y$({charts:t,lines:r,scatterplot:u})},c?{replaceMerge:["series"]}:void 0)},[r]),ne.jsx("div",{ref:v,style:{width:"100%",height:"300px"}})}const RSe=zl.percentilesToChart?zl.percentilesToChart.map(t=>({name:`${t*100}th percentile`,key:`responseTimePercentile${t}`})):[],OSe=["#ff9f00","#9966CC","#8A2BE2","#8E4585","#E0B0FF","#C8A2C8","#E6E6FA"],NSe=[{title:"Total Requests per Second",lines:[{name:"RPS",key:"currentRps"},{name:"Failures/s",key:"currentFailPerSec"}],colors:["#00ca5a","#ff6d6d"]},{title:"Response Times (ms)",lines:RSe,colors:OSe},{title:"Number of Users",lines:[{name:"Number of Users",key:"userCount"}],colors:["#0099ff"]}];function m$({charts:t}){return NSe.map((e,r)=>ne.jsx(LSe,{...e,charts:t},`swarm-chart-${r}`))}const zSe=({ui:{charts:t}})=>({charts:t});Jd(zSe)(m$);function BSe(t){return(t*100).toFixed(1)+"%"}function KC({classRatio:t}){return ne.jsx("ul",{children:Object.entries(t).map(([e,{ratio:r,tasks:n}])=>ne.jsxs("li",{children:[`${BSe(r)} ${e}`,n&&ne.jsx(KC,{classRatio:n})]},`nested-ratio-${e}`))})}function _$({ratios:{perClass:t,total:e}}){return!t&&!e?null:ne.jsxs("div",{children:[t&&ne.jsxs(ne.Fragment,{children:[ne.jsx("h3",{children:"Ratio Per Class"}),ne.jsx(KC,{classRatio:t})]}),e&&ne.jsxs(ne.Fragment,{children:[ne.jsx("h3",{children:"Total Ratio"}),ne.jsx(KC,{classRatio:e})]})]})}const FSe=({ui:{ratios:t}})=>({ratios:t});Jd(FSe)(_$);const Ew={DARK:"dark",LIGHT:"light"},x$=localStorage.theme===Ew.DARK||!("theme"in localStorage)&&window.matchMedia("(prefers-color-scheme: dark)").matches?Ew.DARK:Ew.LIGHT,VSe={isDarkMode:!1},GSe=GZ({name:"theme",initialState:VSe,reducers:{setIsDarkMode:(t,{payload:e})=>{t.isDarkMode=e}}}),HSe=GSe.reducer,$Se=t=>gT({palette:{mode:t,primary:{main:"#15803d"},success:{main:"#00C853"}},components:{MuiCssBaseline:{styleOverrides:{":root":{"--footer-height":"40px"},p:{margin:0},ul:{paddingLeft:"16px"}}}}}),WSe=$Se(window.theme||x$),USe=(window.theme||x$)==="dark",jSe=[{key:"method",title:"Type"},{key:"name",title:"Name"},{key:"numRequests",title:"# Requests"},{key:"numFailures",title:"# Fails"},{key:"avgResponseTime",title:"Average (ms)",round:2},{key:"minResponseTime",title:"Min (ms)"},{key:"maxResponseTime",title:"Max (ms)"},{key:"avgContentLength",title:"Average size (bytes)",round:2},{key:"totalRps",title:"RPS",round:2},{key:"totalFailPerSec",title:"Failures/s",round:2}],YSe=EZ({reducer:kB({theme:HSe}),preloadedState:{theme:{isDarkMode:USe}}});function XSe({locustfile:t,showDownloadLink:e,startTime:r,endTime:n,duration:i,charts:a,host:o,exceptionsStatistics:s,requestsStatistics:l,failuresStatistics:u,responseTimeStatistics:c,tasks:f}){return ne.jsx(qq,{store:YSe,children:ne.jsxs(Z7,{theme:WSe,children:[ne.jsx(EY,{}),ne.jsxs(DY,{maxWidth:"lg",sx:{my:4},children:[ne.jsxs(Yn,{sx:{display:"flex",justifyContent:"space-between",alignItems:"flex-end"},children:[ne.jsx(Qr,{component:"h1",noWrap:!0,sx:{fontWeight:700},variant:"h3",children:"Locust Test Report"}),e&&ne.jsx(AB,{href:`?download=1&theme=${window.theme}`,children:"Download the Report"})]}),ne.jsxs(Yn,{sx:{my:2},children:[ne.jsxs(Yn,{sx:{display:"flex",columnGap:.5},children:[ne.jsx(Qr,{fontWeight:600,children:"During:"}),ne.jsxs(Qr,{children:[qC(r)," - ",qC(n)," (",i,")"]})]}),ne.jsxs(Yn,{sx:{display:"flex",columnGap:.5},children:[ne.jsx(Qr,{fontWeight:600,children:"Target Host:"}),ne.jsx(Qr,{children:o||"None"})]}),ne.jsxs(Yn,{sx:{display:"flex",columnGap:.5},children:[ne.jsx(Qr,{fontWeight:600,children:"Script:"}),ne.jsx(Qr,{children:t})]})]}),ne.jsxs(Yn,{sx:{display:"flex",flexDirection:"column",rowGap:4},children:[ne.jsxs(Yn,{children:[ne.jsx(Qr,{component:"h2",mb:1,noWrap:!0,variant:"h4",children:"Request Statistics"}),ne.jsx(R3,{stats:l,tableStructure:jSe})]}),!!c.length&&ne.jsxs(Yn,{children:[ne.jsx(Qr,{component:"h2",mb:1,noWrap:!0,variant:"h4",children:"Response Time Statistics"}),ne.jsx(vte,{responseTimes:c})]}),ne.jsxs(Yn,{children:[ne.jsx(Qr,{component:"h2",mb:1,noWrap:!0,variant:"h4",children:"Failures Statistics"}),ne.jsx(L3,{errors:u})]}),!!s.length&&ne.jsxs(Yn,{children:[ne.jsx(Qr,{component:"h2",mb:1,noWrap:!0,variant:"h4",children:"Exceptions Statistics"}),ne.jsx(E3,{exceptions:s})]}),ne.jsxs(Yn,{children:[ne.jsx(Qr,{component:"h2",mb:1,noWrap:!0,variant:"h4",children:"Charts"}),ne.jsx(m$,{charts:a})]}),ne.jsxs(Yn,{children:[ne.jsx(Qr,{component:"h2",mb:1,noWrap:!0,variant:"h4",children:"Final ratio"}),ne.jsx(_$,{ratios:f})]})]})]})]})})}const ZSe=C8.createRoot(document.getElementById("root"));ZSe.render(ne.jsx(A8,{fallbackRender:D8,children:ne.jsx(XSe,{...E8})}));</script>
223
+ `,""):"No data",borderWidth:0},xAxis:s||{type:"time",min:(t.time||[new Date().toISOString()])[0],startValue:(t.time||[])[0],splitNumber:window.innerWidth<900?2:7,minInterval:1,axisLabel:{formatter:MSe}},grid:l||{left:60,right:40},yAxis:ASe({splitAxis:a,yAxisLabels:o}),series:y$({charts:t,lines:r,scatterplot:u}),color:n,toolbox:{right:10,feature:{dataZoom:{title:{zoom:"Zoom Select",back:"Zoom Reset"},yAxisIndex:!1},saveAsImage:{name:e.replace(/\s+/g,"_").toLowerCase()+"_"+new Date().getTime()/1e3,title:"Download as PNG",emphasis:{iconStyle:{textPosition:"left"}}}}},legend:{top:25}}),PSe=t=>({symbol:"none",label:{formatter:e=>`Run #${e.dataIndex+1}`,padding:[0,0,8,0]},data:(t.markers||[]).map(e=>({xAxis:e}))}),ISe=t=>e=>{const{batch:r}=e;if(!r)return;const[{start:n,startValue:i,end:a}]=r,o=n>0&&a<=100||i>0;t.setOption({dataZoom:[{type:"slider",show:o}]})},ESe=oq;function LSe({charts:t,title:e,lines:r,colors:n,chartValueFormatter:i,splitAxis:a,yAxisLabels:o,xAxis:s,grid:l,scatterplot:u,shouldReplaceMergeLines:c=!1}){const[f,h]=Q.useState(null),d=ESe(({theme:{isDarkMode:y}})=>y),v=Q.useRef(null);return Q.useEffect(()=>{if(!v.current)return;const y=yle(v.current);y.setOption(kSe({charts:t,title:e,lines:r,colors:n,chartValueFormatter:i,splitAxis:a,yAxisLabels:o,xAxis:s,grid:l,scatterplot:u})),y.on("datazoom",ISe(y));const m=()=>{y.resize(),y.setOption({xAxis:{splitNumber:window.innerWidth<900?2:7}})};return window.addEventListener("resize",m),y.group="swarmCharts",mle("swarmCharts"),h(y),()=>{_le(y),window.removeEventListener("resize",m)}},[v]),Q.useEffect(()=>{const y=r.every(({key:m})=>!!t[m]);f&&y&&f.setOption({series:r.map(({key:m,yAxisIndex:_,...S},w)=>({...S,data:t[m],...a?{yAxisIndex:_||w}:{},...w===0?{markLine:PSe(t)}:{}}))})},[t,f,r]),Q.useEffect(()=>{if(f){const{textColor:y,axisColor:m,backgroundColor:_,splitLine:S}=d?I5.DARK:I5.LIGHT;f.setOption({backgroundColor:_,textStyle:{color:y},title:{textStyle:{color:y}},legend:{icon:"circle",inactiveColor:y,textStyle:{color:y}},tooltip:{backgroundColor:_,textStyle:{color:y}},xAxis:{axisLine:{lineStyle:{color:m}}},yAxis:{axisLine:{lineStyle:{color:m}},splitLine:{lineStyle:{color:S}}}})}},[f,d]),Q.useEffect(()=>{f&&f.setOption({series:y$({charts:t,lines:r,scatterplot:u})},c?{replaceMerge:["series"]}:void 0)},[r]),ne.jsx("div",{ref:v,style:{width:"100%",height:"300px"}})}const RSe=zl.percentilesToChart?zl.percentilesToChart.map(t=>({name:`${t*100}th percentile`,key:`responseTimePercentile${t}`})):[],OSe=["#ff9f00","#9966CC","#8A2BE2","#8E4585","#E0B0FF","#C8A2C8","#E6E6FA"],NSe=[{title:"Total Requests per Second",lines:[{name:"RPS",key:"currentRps"},{name:"Failures/s",key:"currentFailPerSec"}],colors:["#00ca5a","#ff6d6d"]},{title:"Response Times (ms)",lines:RSe,colors:OSe},{title:"Number of Users",lines:[{name:"Number of Users",key:"userCount"}],colors:["#0099ff"]}];function m$({charts:t}){return NSe.map((e,r)=>ne.jsx(LSe,{...e,charts:t},`swarm-chart-${r}`))}const zSe=({ui:{charts:t}})=>({charts:t});Jd(zSe)(m$);function BSe(t){return(t*100).toFixed(1)+"%"}function KC({classRatio:t}){return ne.jsx("ul",{children:Object.entries(t).map(([e,{ratio:r,tasks:n}])=>ne.jsxs("li",{children:[`${BSe(r)} ${e}`,n&&ne.jsx(KC,{classRatio:n})]},`nested-ratio-${e}`))})}function _$({ratios:{perClass:t,total:e}}){return!t&&!e?null:ne.jsxs("div",{children:[t&&ne.jsxs(ne.Fragment,{children:[ne.jsx("h3",{children:"Ratio Per Class"}),ne.jsx(KC,{classRatio:t})]}),e&&ne.jsxs(ne.Fragment,{children:[ne.jsx("h3",{children:"Total Ratio"}),ne.jsx(KC,{classRatio:e})]})]})}const FSe=({ui:{ratios:t}})=>({ratios:t});Jd(FSe)(_$);const Ew={DARK:"dark",LIGHT:"light"},x$=localStorage.theme===Ew.DARK||!("theme"in localStorage)&&window.matchMedia("(prefers-color-scheme: dark)").matches?Ew.DARK:Ew.LIGHT,VSe={isDarkMode:!1},GSe=GZ({name:"theme",initialState:VSe,reducers:{setIsDarkMode:(t,{payload:e})=>{t.isDarkMode=e}}}),HSe=GSe.reducer,$Se=t=>gT({palette:{mode:t,primary:{main:"#15803d"},success:{main:"#00C853"}},components:{MuiCssBaseline:{styleOverrides:{":root":{"--footer-height":"40px"},p:{margin:0},ul:{paddingLeft:"16px"}}}}}),WSe=$Se(window.theme||x$),USe=(window.theme||x$)==="dark",jSe=[{key:"method",title:"Type"},{key:"name",title:"Name"},{key:"numRequests",title:"# Requests"},{key:"numFailures",title:"# Fails"},{key:"avgResponseTime",title:"Average (ms)",round:2},{key:"minResponseTime",title:"Min (ms)"},{key:"maxResponseTime",title:"Max (ms)"},{key:"avgContentLength",title:"Average size (bytes)",round:2},{key:"totalRps",title:"RPS",round:2},{key:"totalFailPerSec",title:"Failures/s",round:2}],YSe=EZ({reducer:kB({theme:HSe}),preloadedState:{theme:{isDarkMode:USe}}});function XSe({locustfile:t,showDownloadLink:e,startTime:r,endTime:n,duration:i,charts:a,host:o,exceptionsStatistics:s,requestsStatistics:l,failuresStatistics:u,responseTimeStatistics:c,tasks:f}){return ne.jsx(qq,{store:YSe,children:ne.jsxs(Z7,{theme:WSe,children:[ne.jsx(EY,{}),ne.jsxs(DY,{maxWidth:"lg",sx:{my:4},children:[ne.jsxs(Yn,{sx:{display:"flex",justifyContent:"space-between",alignItems:"flex-end"},children:[ne.jsx(Qr,{component:"h1",noWrap:!0,sx:{fontWeight:700},variant:"h3",children:"Locust Test Report"}),e&&ne.jsx(AB,{href:`?download=1&theme=${window.theme}`,children:"Download the Report"})]}),ne.jsxs(Yn,{sx:{my:2},children:[ne.jsxs(Yn,{sx:{display:"flex",columnGap:.5},children:[ne.jsx(Qr,{fontWeight:600,children:"During:"}),ne.jsxs(Qr,{children:[qC(r)," - ",qC(n)," (",i,")"]})]}),ne.jsxs(Yn,{sx:{display:"flex",columnGap:.5},children:[ne.jsx(Qr,{fontWeight:600,children:"Target Host:"}),ne.jsx(Qr,{children:o||"None"})]}),ne.jsxs(Yn,{sx:{display:"flex",columnGap:.5},children:[ne.jsx(Qr,{fontWeight:600,children:"Script:"}),ne.jsx(Qr,{children:t})]})]}),ne.jsxs(Yn,{sx:{display:"flex",flexDirection:"column",rowGap:4},children:[ne.jsxs(Yn,{children:[ne.jsx(Qr,{component:"h2",mb:1,noWrap:!0,variant:"h4",children:"Request Statistics"}),ne.jsx(R3,{stats:l,tableStructure:jSe})]}),!!c.length&&ne.jsxs(Yn,{children:[ne.jsx(Qr,{component:"h2",mb:1,noWrap:!0,variant:"h4",children:"Response Time Statistics"}),ne.jsx(vte,{responseTimes:c})]}),ne.jsxs(Yn,{children:[ne.jsx(Qr,{component:"h2",mb:1,noWrap:!0,variant:"h4",children:"Failures Statistics"}),ne.jsx(L3,{errors:u})]}),!!s.length&&ne.jsxs(Yn,{children:[ne.jsx(Qr,{component:"h2",mb:1,noWrap:!0,variant:"h4",children:"Exceptions Statistics"}),ne.jsx(E3,{exceptions:s})]}),ne.jsxs(Yn,{children:[ne.jsx(Qr,{component:"h2",mb:1,noWrap:!0,variant:"h4",children:"Charts"}),ne.jsx(m$,{charts:a})]}),ne.jsxs(Yn,{children:[ne.jsx(Qr,{component:"h2",mb:1,noWrap:!0,variant:"h4",children:"Final ratio"}),ne.jsx(_$,{ratios:f})]})]})]})]})})}const ZSe=C8.createRoot(document.getElementById("root"));ZSe.render(ne.jsx(A8,{fallbackRender:D8,children:ne.jsx(XSe,{...E8})}));</script>
224
224
  </head>
225
225
  {% endraw %}
226
226
  <body>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: locust
3
- Version: 2.33.3.dev15
3
+ Version: 2.33.3.dev19
4
4
  Summary: Developer-friendly load testing framework
5
5
  Project-URL: homepage, https://locust.io/
6
6
  Project-URL: repository, https://github.com/locustio/locust
@@ -1,6 +1,6 @@
1
1
  locust/__init__.py,sha256=aWeuBPUxONjwNm1xp4v8L4BO14SuYLjscIiwJVX1Ui4,1746
2
2
  locust/__main__.py,sha256=vBQ82334kX06ImDbFlPFgiBRiLIinwNk3z8Khs6hd74,31
3
- locust/_version.py,sha256=PjlBFw2KA8mCGeXJaNxqJQTRgihgz7ssvYosX3Yc7rc,528
3
+ locust/_version.py,sha256=UkfT4JFGvCeh3LPeTER2_ozzKiEgKeVGA_DSm5Suvzs,528
4
4
  locust/argument_parser.py,sha256=ruSJcY4ouERwVopHvHDK-obQD6nlRKDqjLLwje2SH9k,32806
5
5
  locust/clients.py,sha256=LHAYjaoRjMXwdOB8KBUYRH9-8Uk4F8NvUsDy5UTxKkA,19352
6
6
  locust/debug.py,sha256=7CCm8bIg44uGH2wqBlo1rXBzV2VzwPicLxLewz8r5CQ,5099
@@ -41,18 +41,18 @@ locust/util/load_locustfile.py,sha256=hn70KcIG8jHmZyuKv2pcEmwgWtOEu24Efeji1KRYNU
41
41
  locust/util/rounding.py,sha256=5haxR8mKhATqag6WvPby-MSRRgIw5Ob6thbyvMYZM7o,92
42
42
  locust/util/timespan.py,sha256=Y0LtnhUq2Mq19p04u0XtBlYQ_-S2cRvwRdgru8W9WhA,986
43
43
  locust/util/url.py,sha256=s_W2PCxvxTWxWX0yUvp-8VBuQm881KwI5X9iifogZG4,321
44
- locust/webui/dist/auth.html,sha256=l8QPtMbXQ9HxdWS8tzoV36L-vLWHMKdGfVoB0MSYLLc,678
45
- locust/webui/dist/index.html,sha256=L65HmJaw3k3qIu29QMijtS0lA27zLJ5ulGi6X1l5U1M,654
46
- locust/webui/dist/report.html,sha256=16ZPMkEJMxfNvORWRktXhp_UmVF_SZP40H_DWrDOhdY,1474164
44
+ locust/webui/dist/auth.html,sha256=O0qOjF5dVFxH8uUbQbRMhjXMagCWTA95qi9w06prLQU,678
45
+ locust/webui/dist/index.html,sha256=Y3rxShYCjMsyNza9MURMy5-x-YjiUEgMOfhku9UEkCw,654
46
+ locust/webui/dist/report.html,sha256=AAfma8mZHnUS-cri6Vei2k9Aq2crhDlPbpNEWCE-kvI,1474335
47
47
  locust/webui/dist/assets/favicon-dark.png,sha256=6zVkRtiRfU45qQGvEhf1cq2nNauFs_JW5SI79wT0YkM,2437
48
48
  locust/webui/dist/assets/favicon-light.png,sha256=VdG2GZyeTCOML7xfievupBP4EhmHoUqlVCw-tXqkvxU,2468
49
49
  locust/webui/dist/assets/graphs-dark.png,sha256=_nS7sWe2ozG1vb3Gy_3Qv6bE0-xxlAvnRlxvDyBCIR0,282277
50
50
  locust/webui/dist/assets/graphs-light.png,sha256=7L6pOehXqCojQclzeP91l-LskFQAw_nKbYOdFKvDWPQ,348913
51
- locust/webui/dist/assets/index-Dv3EcGUO.js,sha256=XIyj-RrXCtCZ74HSnvnsi-I0UvnhoJS4Nxpqe5CaJPc,1687295
51
+ locust/webui/dist/assets/index-B5kHPwXy.js,sha256=g35lOMutKX6jyY_oKztpXs8XYmeB9jt1OPG0PEPjQgQ,1687466
52
52
  locust/webui/dist/assets/testruns-dark.png,sha256=np6MvpgJ2gkKQ66SOmukLtjsMtHqTSr5dNfza-2XtCo,267621
53
53
  locust/webui/dist/assets/testruns-light.png,sha256=iLAxBZh3kRsfGkcB1-1KSAbFgGji43IqiUrYuJlUoPk,276839
54
- locust-2.33.3.dev15.dist-info/METADATA,sha256=J8y4T-maM1IXhzjmwv2Syac26m5OL5Zs3gyw3ANM-BY,9638
55
- locust-2.33.3.dev15.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
56
- locust-2.33.3.dev15.dist-info/entry_points.txt,sha256=RAdt8Ku-56m7bFjmdj-MBhbF6h4NX7tVODR9QNnOg0E,44
57
- locust-2.33.3.dev15.dist-info/licenses/LICENSE,sha256=5hnz-Vpj0Z3kSCQl0LzV2hT1TLc4LHcbpBp3Cy-EuyM,1110
58
- locust-2.33.3.dev15.dist-info/RECORD,,
54
+ locust-2.33.3.dev19.dist-info/METADATA,sha256=CwQAU8swhMZtDQzUfuMiT3GGARhCH82PvV2bIAQ-6xg,9638
55
+ locust-2.33.3.dev19.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
56
+ locust-2.33.3.dev19.dist-info/entry_points.txt,sha256=RAdt8Ku-56m7bFjmdj-MBhbF6h4NX7tVODR9QNnOg0E,44
57
+ locust-2.33.3.dev19.dist-info/licenses/LICENSE,sha256=5hnz-Vpj0Z3kSCQl0LzV2hT1TLc4LHcbpBp3Cy-EuyM,1110
58
+ locust-2.33.3.dev19.dist-info/RECORD,,