public void InitializeTests() { Tuple <TestConfiguration, ConcurrentTestConfiguration> configs = TestHelper.InitializeTest(_log); _config = configs.Item1; _concurrentConfig = configs.Item2; }
public void TranscribeCallHttpTriggerOpenSpeechRepositoryConcurrentRuns() { ConcurrentTestConfiguration testConfiguration = ConcurrentTestConfiguration.Load(@".\TestConfigurations\TranscribeCall\multiThreaded\testconfig_test1.json"); FunctionSettings functionSettings = FunctionSettings.Load(@".\functionSettings.json"); using (HttpClient httpClient = new HttpClient()) { string accessToken = AzureADHelper.GetAccessTokenAsync(functionSettings.Authority, functionSettings.ApplicationId, functionSettings.ClientSecret, functionSettings.ResourceId).Result; if (accessToken == null) { throw new Exception("Could not obtain access token!"); } httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); Task[] threads = new Task[testConfiguration.NumberOfThreads]; for (int i = 0; i < testConfiguration.NumberOfThreads; i++) { threads[i] = Task.Run( new Action( () => TranscribeCallRunnerAsync(httpClient, functionSettings, testConfiguration.TestConfigurationQueue).Wait())); } _log.LogInformation("Waiting on threads..."); Task.WaitAll(threads); _log.LogInformation("All threads completed..."); } }
public void TranscribeCallImplementationOpenSpeechRepositoryConcurrentRuns() { ConcurrentTestConfiguration testConfiguration = ConcurrentTestConfiguration.Load(@".\TestConfigurations\TranscribeCall\concurrent\testconfig_test1.json"); Task[] threads = new Task[testConfiguration.NumberOfThreads]; for (int i = 0; i < testConfiguration.NumberOfThreads; i++) { threads[i] = Task.Run( new Action( () => TranscribeCallRunnerLocal(testConfiguration.TestConfigurationQueue))); } _log.LogInformation("Waiting on threads..."); Task.WaitAll(threads); _log.LogInformation("All threads completed..."); }
/// <summary> /// Initializes test. /// </summary> /// <param name="log">Trace logger instance.</param> /// <param name="reset">Flag indicating if previous run information should be cleared from tracking file.</param> /// <returns>A tuple with sequential and concurrent test configuration information.</returns> public static Tuple <TestConfiguration, ConcurrentTestConfiguration> InitializeTest(ConsoleLogger log, bool reset = false) { log.LogInformation($"Loading test configuration from '{GlobalTestConstants.TestConfigurationFilePath}'..."); TestConfiguration config = TestConfiguration.Load(GlobalTestConstants.TestConfigurationFilePath); log.LogInformation($"Loading concurrent test configuration from '{GlobalTestConstants.ConcurrentTestConfigurationFilePath}'..."); ConcurrentTestConfiguration concurrentConfig = ConcurrentTestConfiguration.Load(GlobalTestConstants.ConcurrentTestConfigurationFilePath); if (!string.IsNullOrWhiteSpace(config.CallSid) && reset) { log.LogInformation("Previous run information present. Clearing out previous information..."); config.CallSid = null; config.RecordingUri = null; config.Save(GlobalTestConstants.TestConfigurationFilePath); log.LogInformation("Test configuration saved to clean state."); } bool uncleanTestConfig = false; foreach (TestConfiguration configuration in concurrentConfig.TestConfigurationQueue) { if (!string.IsNullOrWhiteSpace(configuration.CallSid) && reset) { uncleanTestConfig = true; log.LogInformation("Previous run information present. Clearing out previous information..."); configuration.CallSid = null; configuration.RecordingUri = null; } if (uncleanTestConfig) { concurrentConfig.Save(GlobalTestConstants.ConcurrentTestConfigurationFilePath); log.LogInformation("Test configuration saved to clean state."); } } return(new Tuple <TestConfiguration, ConcurrentTestConfiguration>(config, concurrentConfig)); }