public void _6_Meashure_Download_Speed()
        {
            var list = SqlServers.OrderByVersionDesc().ToList();

            Debug.WriteLine($"Download speed test of {list.Count} sql servers:{Environment.NewLine}{list.AsBullets()}");

            Debug.WriteLine("");
            Debug.WriteLine("Download speed Report (KB per second)");
            StringBuilder errors = new StringBuilder();

            foreach (var sqlRef in list)
            {
                var blockSize          = SqlServiceExtentions.IsLocalDbOrLocalServer(sqlRef.ConnectionString) ? 4096 : 1024;
                var supportedProtocols = sqlRef.ProbeTransports(timeoutMillisecs: TRANSPORT_PROBE_DURATION);
                foreach (var supportedProtocol in supportedProtocols)
                {
                    try
                    {
                        SqlSpeedMeasurement test     = new SqlSpeedMeasurement(supportedProtocol.ConnectionString);
                        decimal             kbPerSec = test.GetDownloadSpeed(limitIterations: 100000, blockSizeInKb: blockSize, limitMilliSeconds: TestEnvironment.SqlDownloadDuration);
                        var transport = GetTransportInfo(supportedProtocol.ConnectionString);
                        Debug.WriteLine($"{(kbPerSec.ToString("f1")).PadLeft(9)} : {sqlRef.DataSource} ({transport})");
                    }
                    catch (Exception ex)
                    {
                        errors.AppendFormat("{0} {1}", supportedProtocol.DataSource, ex.GetExeptionDigest()).AppendLine();
                    }
                }
            }

            if (errors.Length > 0)
            {
                Debug.WriteLine(Environment.NewLine + "SpeedTest failed" + Environment.NewLine + errors);
            }
        }
        public void _4_Meashure_Ping()
        {
            var list = SqlServers.OrderByVersionDesc().ToList();

            Debug.WriteLine($"Ping {list.Count} sql servers:{Environment.NewLine}{list.AsBullets()}");

            Debug.WriteLine("");
            Debug.WriteLine("Ping Report (milliseconds)");
            StringBuilder errors = new StringBuilder();

            foreach (var sqlRef in list)
            {
                var supportedProtocols = sqlRef.ProbeTransports(timeoutMillisecs: TRANSPORT_PROBE_DURATION);
                foreach (var supportedProtocol in supportedProtocols)
                {
                    try
                    {
                        SqlSpeedMeasurement test = new SqlSpeedMeasurement(supportedProtocol.ConnectionString);
                        decimal             msec = test.GetPing(limitCount: 100000, milliSecondsLimit: TestEnvironment.SqlPingDuration);
                        var transport            = GetTransportInfo(supportedProtocol.ConnectionString);
                        Debug.WriteLine($"{(msec.ToString("f2")).PadLeft(9)} : {sqlRef.DataSource} ({transport})");
                    }
                    catch (Exception ex)
                    {
                        errors.AppendFormat("{0} {1}", supportedProtocol.DataSource, ex.GetExeptionDigest()).AppendLine();
                    }
                }
            }

            if (errors.Length > 0)
            {
                Debug.WriteLine(Environment.NewLine + "SpeedTest failed" + Environment.NewLine + errors);
            }
        }