Example #1
0
        /// <summary>
        /// Executes a fail over test scenario.
        /// </summary>
        /// <param name="serviceName">Uri containing the service name.</param>
        /// <param name="handler">Progress changed handler.</param>
        /// <param name="duration">Duration of the test.</param>
        /// <param name="stabilization">Duration of the stabilization period.</param>
        /// <param name="token">CancellationToken instance.</param>
        /// <returns>Task instance.</returns>
        private async Task ExecuteFailoverTestScenarioAsync(Uri serviceName, ProgressChangedEventHandler handler, TimeSpan stabilization, CancellationToken token)
        {
            Console.WriteLine($"Starting Failover scenario test on {serviceName.AbsoluteUri} lasting {_duration.TotalMinutes} minutes.");

            FailoverTestScenarioParameters ftsp = new FailoverTestScenarioParameters(PartitionSelector.RandomOf(serviceName), _duration, stabilization);

            FailoverTestScenario fts = new FailoverTestScenario(_client, ftsp);

            fts.ProgressChanged += handler;

            try
            {
                await fts.ExecuteAsync(token);
            }
            catch (AggregateException ex) { CommonExceptionHandler.OutputInnerExceptions(ex); }
            catch (Exception ex) { Console.WriteLine($"FaultTest.RunAsync Exception: {ex.Message} at {ex.StackTrace}"); }
        }
Example #2
0
        /// <summary>
        /// Executes a chaos over test scenario.
        /// </summary>
        /// <param name="serviceName">Uri containing the service name.</param>
        /// <param name="handler">Progress changed handler.</param>
        /// <param name="duration">Duration of the test.</param>
        /// <param name="stabilization">Duration of the stabilization period.</param>
        /// <param name="token">CancellationToken instance.</param>
        /// <returns>Task instance.</returns>
        private async Task ExecuteChaosTestScenarioAsync(Uri serviceName, ProgressChangedEventHandler handler, TimeSpan stabilization, CancellationToken token)
        {
            const int  MaxConcurrentFaults     = 3;
            const bool EnableMoveReplicaFaults = true;

            Console.WriteLine($"Starting chaos scenario test on {serviceName.AbsoluteUri} lasting {_duration.TotalMinutes} minutes.");

            ChaosTestScenarioParameters ctsp = new ChaosTestScenarioParameters(stabilization, MaxConcurrentFaults, EnableMoveReplicaFaults, _duration);
            ChaosTestScenario           cts  = new ChaosTestScenario(_client, ctsp);

            cts.ProgressChanged += handler;

            try
            {
                await cts.ExecuteAsync(token);
            }
            catch (AggregateException ex) { CommonExceptionHandler.OutputInnerExceptions(ex); }
            catch (Exception ex) { Console.WriteLine($"FaultTest.RunAsync Exception: {ex.Message} at {ex.StackTrace}"); }
        }