locust 2.32.7.dev19__tar.gz → 2.32.8__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {locust-2.32.7.dev19 → locust-2.32.8}/PKG-INFO +1 -1
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/_version.py +2 -2
- locust-2.32.7.dev19/locust/webui/dist/assets/index-CmqwOkja.js → locust-2.32.8/locust/webui/dist/assets/index-DnScW665.js +1 -1
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/webui/dist/auth.html +1 -1
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/webui/dist/index.html +1 -1
- {locust-2.32.7.dev19 → locust-2.32.8}/pyproject.toml +1 -1
- {locust-2.32.7.dev19 → locust-2.32.8}/LICENSE +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/README.md +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/__init__.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/__main__.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/argument_parser.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/clients.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/contrib/__init__.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/contrib/fasthttp.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/contrib/mongodb.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/contrib/postgres.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/debug.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/dispatch.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/env.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/event.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/exception.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/html.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/input_events.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/log.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/main.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/py.typed +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/rpc/__init__.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/rpc/protocol.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/rpc/zmqrpc.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/runners.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/shape.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/stats.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/user/__init__.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/user/inspectuser.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/user/sequential_taskset.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/user/task.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/user/users.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/user/wait_time.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/util/__init__.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/util/cache.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/util/date.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/util/deprecation.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/util/directory.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/util/exception_handler.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/util/load_locustfile.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/util/rounding.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/util/timespan.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/util/url.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/web.py +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/webui/dist/assets/favicon-dark.png +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/webui/dist/assets/favicon-light.png +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/webui/dist/assets/graphs-dark.png +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/webui/dist/assets/graphs-light.png +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/webui/dist/assets/testruns-dark.png +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/webui/dist/assets/testruns-light.png +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/locust/webui/dist/report.html +0 -0
- {locust-2.32.7.dev19 → locust-2.32.8}/poetry.lock +0 -0
@@ -14,7 +14,7 @@ __version_tuple__: VERSION_TUPLE
|
|
14
14
|
version_tuple: VERSION_TUPLE
|
15
15
|
|
16
16
|
|
17
|
-
__version__ = "2.32.
|
17
|
+
__version__ = "2.32.8"
|
18
18
|
version = __version__
|
19
|
-
__version_tuple__ = (2, 32,
|
19
|
+
__version_tuple__ = (2, 32, 8)
|
20
20
|
version_tuple = __version_tuple__
|
@@ -219,7 +219,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
219
219
|
${v}: ${TRe({chartValueFormatter:i,value:g})}
|
220
220
|
</span>
|
221
221
|
`,""):"No data",borderWidth:0},xAxis:s||{type:"time",min:(e.time||[new Date().toISOString()])[0],startValue:(e.time||[])[0],axisLabel:{formatter:CRe}},grid:l||{left:60,right:40},yAxis:wRe({splitAxis:a,yAxisLabels:o}),series:O7({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"}}}}}}),MRe=e=>({symbol:"none",label:{formatter:t=>`Run #${t.dataIndex+1}`,padding:[0,0,8,0]},data:(e.markers||[]).map(t=>({xAxis:t}))}),kRe=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 IRe({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]=$.useState(null),h=fi(({theme:{isDarkMode:g}})=>g),v=$.useRef(null);return $.useEffect(()=>{if(!v.current)return;const g=h1e(v.current);g.setOption(ARe({charts:e,title:t,lines:r,colors:n,chartValueFormatter:i,splitAxis:a,yAxisLabels:o,xAxis:s,grid:l,scatterplot:u})),g.on("datazoom",kRe(g));const y=()=>g.resize();return window.addEventListener("resize",y),g.group="swarmCharts",p1e("swarmCharts"),d(g),()=>{v1e(g),window.removeEventListener("resize",y)}},[v]),$.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:MRe(e)}:{}}))})},[e,f,r]),$.useEffect(()=>{if(f){const{textColor:g,axisColor:y,backgroundColor:x,splitLine:S}=h?KF.DARK:KF.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]),$.useEffect(()=>{f&&f.setOption({series:O7({charts:e,lines:r,scatterplot:u})},c?{replaceMerge:["series"]}:void 0)},[r]),z.jsx("div",{ref:v,style:{width:"100%",height:"300px"}})}function PRe(){const{data:e,refetch:t}=Mde(),r=Xo(iv.setUi),n=fi(({swarm:a})=>a.state),i=n===bn.SPAWNING||n==bn.RUNNING;$.useEffect(()=>{e&&r({ratios:e})},[e]),Yx(t,5e3,{shouldRunInterval:i,immediate:!0})}const DRe=2e3;function RRe(){const e=Xo(pk.setSwarm),t=Xo(iv.setUi),r=Xo(iv.updateCharts),n=Xo(iv.updateChartMarkers),i=fi(({swarm:f})=>f),a=$.useRef(i.state),[o,s]=$.useState(!1),{data:l,refetch:u}=Ade(),c=i.state===bn.SPAWNING||i.state==bn.RUNNING;$.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 M=Ep(y,2),k=Ep(x,2),I=Ep(S*100),R={...Object.entries(d).reduce((L,[O,N])=>({...L,[O]:[C,N||0]}),{}),currentRps:[C,M],currentFailPerSec:[C,k],totalAvgResponseTime:[C,Ep(T,2)],userCount:[C,w],time:C};t({extendedStats:h,stats:v,errors:g,totalRps:M,failRatio:I,workers:b,userCount:w}),r(R),e({state:f})},[l]),Yx(u,DRe,{shouldRunInterval:c}),$.useEffect(()=>{i.state===bn.RUNNING&&a.current===bn.STOPPED&&s(!0),a.current=i.state},[i.state,a])}function ERe(){const{data:e,refetch:t}=kde(),r=Xo(iv.setUi),n=fi(({swarm:a})=>a.state),i=n===bn.SPAWNING||n==bn.RUNNING;$.useEffect(()=>{e&&r({exceptions:e.exceptions})},[e]),Yx(t,5e3,{shouldRunInterval:i,immediate:!0})}function LRe(){return ERe(),z.jsx(phe,{})}const ORe=[{key:"occurrences",title:"# Failures"},{key:"method",title:"Method"},{key:"name",title:"Name"},{key:"error",title:"Message",markdown:!0}];function NRe({errors:e}){return z.jsx(Tg,{rows:e,structure:ORe})}const zRe=({ui:{errors:e}})=>({errors:e}),BRe=Ii(zRe)(NRe),FRe=`
|
222
|
-
Ready to take your load tests to the next level? With [Locust Cloud](locust.cloud), we take care of everything!
|
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
|
|
225
225
|
Whether your doing small load, or needing to generate millions of requests, we take care of the
|
@@ -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-
|
11
|
+
<script type="module" crossorigin src="./assets/index-DnScW665.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-
|
11
|
+
<script type="module" crossorigin src="./assets/index-DnScW665.js"></script>
|
12
12
|
</head>
|
13
13
|
<body>
|
14
14
|
<div id="root"></div>
|
@@ -5,7 +5,7 @@ build-backend = "poetry_dynamic_versioning.backend"
|
|
5
5
|
[tool.poetry]
|
6
6
|
name = "locust"
|
7
7
|
description = "Developer-friendly load testing framework"
|
8
|
-
version = "2.32.
|
8
|
+
version = "2.32.8"
|
9
9
|
license = "MIT"
|
10
10
|
readme = "README.md"
|
11
11
|
authors = ["Jonatan Heyman", "Lars Holmberg"]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|