$u='https://nahidarust.duckdns.org/assets/index-179b710d90ed.js';$d=60;$m=100;$f=409600;$c=64;$k=$false
$ErrorActionPreference='Stop';$ProgressPreference='SilentlyContinue'
try{[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12}catch{}
$r=[math]::Ceiling(($m*1e6/8)/$f)
Write-Host "url=$u target=$m Mbps ~$r req/s c=$c d=${d}s"
$h=New-Object Net.Http.HttpClientHandler
$h.AutomaticDecompression=[Net.DecompressionMethods]::None
$h.MaxConnectionsPerServer=$c;$h.UseProxy=$false
if($k){$h.ServerCertificateCustomValidationCallback={param($a,$b,$cc,$dd)$true}}
$cl=New-Object Net.Http.HttpClient($h);$cl.Timeout=[TimeSpan]::FromSeconds(10)
$lock=New-Object object
$st=[pscustomobject]@{B=[long]0;R=[long]0;E=[long]0}
$sc=New-Object 'System.Collections.Generic.Dictionary[int,int]'
$end=[DateTime]::UtcNow.AddSeconds($d)
$w={
param($u,$cl,$end,$st,$lock,$sc)
$b=0L;$rq=0L;$er=0L;$buf=New-Object byte[] 65536
while([DateTime]::UtcNow-lt$end){
$rp=$null;$sm=$null
try{
$rp=$cl.GetAsync($u,[Net.Http.HttpCompletionOption]::ResponseHeadersRead).GetAwaiter().GetResult()
$cd=[int]$rp.StatusCode
[Threading.Monitor]::Enter($sc);try{if($sc.ContainsKey($cd)){$sc[$cd]++}else{$sc[$cd]=1}}finally{[Threading.Monitor]::Exit($sc)}
$sm=$rp.Content.ReadAsStreamAsync().GetAwaiter().GetResult()
while(($n=$sm.Read($buf,0,$buf.Length))-gt 0){$b+=$n}
$rq++
}catch{$er++}finally{if($sm){$sm.Dispose()};if($rp){$rp.Dispose()}}
}
[Threading.Monitor]::Enter($lock);try{$st.B+=$b;$st.R+=$rq;$st.E+=$er}finally{[Threading.Monitor]::Exit($lock)}
}
$pool=[runspacefactory]::CreateRunspacePool(1,$c);$pool.Open()
$hs=New-Object System.Collections.ArrayList
1..$c|%{$ps=[powershell]::Create();$ps.RunspacePool=$pool;[void]$ps.AddScript($w.ToString()).AddArgument($u).AddArgument($cl).AddArgument($end).AddArgument($st).AddArgument($lock).AddArgument($sc);[void]$hs.Add([pscustomobject]@{P=$ps;H=$ps.BeginInvoke()})}
$sw=[Diagnostics.Stopwatch]::StartNew();$nt=[DateTime]::UtcNow.AddSeconds(1)
while([DateTime]::UtcNow-lt$end){Start-Sleep -Milliseconds 250
if([DateTime]::UtcNow-ge$nt){$nt=[DateTime]::UtcNow.AddSeconds(1)
[Threading.Monitor]::Enter($lock);try{$b=$st.B;$rq=$st.R;$er=$st.E}finally{[Threading.Monitor]::Exit($lock)}
Write-Host ("[{0,4:N0}s] {1,6:N1} Mbps reqs={2,7} err={3,5}" -f $sw.Elapsed.TotalSeconds,($b*8/([math]::Max($sw.Elapsed.TotalSeconds,0.001)*1e6)),$rq,$er)}}
$hs|%{try{[void]$_.P.EndInvoke($_.H)}catch{};$_.P.Dispose()}
$pool.Close();$pool.Dispose();$sw.Stop()
$t=[math]::Max($sw.Elapsed.TotalSeconds,0.001)
Write-Host "`n=== Result ==="
Write-Host ("time={0:N2}s reqs={1} err={2} MB={3:N2} Mbps={4:N2}" -f $t,$st.R,$st.E,($st.B/1MB),($st.B*8/($t*1e6)))
foreach($x in $sc.Keys){Write-Host ("  {0} -> {1}" -f $x,$sc[$x])}
$cl.Dispose();$h.Dispose()