Esempio n. 1
0
        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...");
        }
Esempio n. 4
0
        /// <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));
        }