コード例 #1
0
        public static async Task <LoadTestThreadResults> RunThreadLoadTestsActuallyLoggingAsync(string endpoint, string logStashEndpoint, LoadTestThreadData threadData, CancellationToken ct)
        {
            Debug.Print("Entered RunThreadLoadTestsActuallyLoggingAsync.");

            var loadTestResults = new LoadTestThreadResults(threadData.ThreadID)
            {
            };

            // Logging Operations
            // =================================
            for (var inc = 0; inc < threadData.NumTimesToExecute; inc++)
            {
                var docStorageCallData = new SignalRCallData();
                var sw = Stopwatch.StartNew();
                try
                {
                    docStorageCallData = LogRandomEvent();

                    sw.Stop();
                    docStorageCallData.CallTimeMS = sw.ElapsedMilliseconds;
                    docStorageCallData.BytesPerMS = docStorageCallData.TotalBytes / (double)docStorageCallData.CallTimeMS;
                }
                catch (OperationCanceledException)
                {
                    throw;
                }
                catch (Exception)
                {
                    sw.Stop();
                    docStorageCallData.CallTimeMS = sw.ElapsedMilliseconds;
                    docStorageCallData.CallFailed = true;
                }
                loadTestResults.CallStats.Add(docStorageCallData);
                ct.ThrowIfCancellationRequested();
            }

            return(loadTestResults);
        }
コード例 #2
0
        public static async Task <LoadTestThreadResults> RunThreadLoadTestsSimulateLoggingAsync(string endpoint, string logStashEndpoint, LoadTestThreadData threadData, CancellationToken ct)
        {
            Debug.Print("Entered RunThreadLoadTestsAsync.");

            var loadTestResults = new LoadTestThreadResults(threadData.ThreadID)
            {
            };

            var target = new GDServiceTarget {
                GuaranteedDeliveryEndpoint = endpoint, NetworkJsonEndpoint = logStashEndpoint
            };

            Debug.Print("New GDServiceTarget Created.");

            // Logging Operations
            // =================================
            for (var inc = 0; inc < threadData.NumTimesToExecute; inc++)
            {
                var rnd  = new Random();
                var rInt = rnd.Next(0, threadData.TestDocuments.Count - 1);
                var currentTestDocument = threadData.TestDocuments[rInt];
                var docStorageCallData  = new SignalRCallData()
                {
                    TestDataName = currentTestDocument.Item1,
                    TotalBytes   = currentTestDocument.Item2.Length
                };

                var sw = Stopwatch.StartNew();
                try
                {
                    await target.WriteAsync(currentTestDocument.Item2);

                    sw.Stop();
                    docStorageCallData.CallTimeMS = sw.ElapsedMilliseconds;
                    docStorageCallData.BytesPerMS = docStorageCallData.TotalBytes / (double)docStorageCallData.CallTimeMS;
                }
                catch (OperationCanceledException)
                {
                    throw;
                }
                catch (Exception)
                {
                    sw.Stop();
                    docStorageCallData.CallTimeMS = sw.ElapsedMilliseconds;
                    docStorageCallData.CallFailed = true;
                }
                loadTestResults.CallStats.Add(docStorageCallData);
                ct.ThrowIfCancellationRequested();
            }

            return(loadTestResults);
        }