Exemplo n.º 1
0
        public void Start()
        {
            if (Interlocked.CompareExchange(ref _isBusy, 1, 0) != 0) return;

            Task.Run(() => Start(_context), _cancellationToken)
                            .ContinueWith(task =>
                            {
                                Result = task.IsFaulted || task.IsCanceled ? new LoadGeneratorResult() : task.Result;
                                Interlocked.Exchange(ref _isBusy, 0);
                            },
                            _cancellationToken);
        }
Exemplo n.º 2
0
        private LoadGeneratorResult Start(LoadTestContext context)
        {
            var result = new LoadGeneratorResult(starTime: DateTime.UtcNow);

            var testRunResults = new List<TestRunResult>();

            var test = (ITest)Activator.CreateInstance(_testType);

            test.Initialize();

            _loadTest.IncrementTotalThreads();

            context.StartEvent.WaitOne();

            while (!context.QuitEvent.WaitOne(0))
            {
                var testRunResult = new TestRunResult
                {
                    StartTime = DateTime.UtcNow
                };

                try
                {
                    testRunResult.TestResult = test.Execute();
                }
                catch
                {
                    testRunResult.TestResult = TestResult.Failure;
                }
                finally
                {
                    testRunResult.EndTime = DateTime.UtcNow;

                    _loadTest.IncrementTotalIterations();

                    if (testRunResult.TestResult.Failed) //todo: ?
                    {
                        _loadTest.IncrementTotalErrors();
                    }
                }

                testRunResults.Add(testRunResult);
            }

            result.TestRuns = testRunResults;

            result.EndTime = DateTime.UtcNow;

            return result;
        }
Exemplo n.º 3
0
        private LoadGeneratorResult Start(LoadTestContext context)
        {
            var result = new LoadGeneratorResult(starTime: DateTime.UtcNow);

            var testRunResults = new List <TestRunResult>();

            var test = (ITest)Activator.CreateInstance(_testType);

            test.Initialize();

            _loadTest.IncrementTotalThreads();

            context.StartEvent.WaitOne();

            while (!context.QuitEvent.WaitOne(0))
            {
                var testRunResult = new TestRunResult
                {
                    StartTime = DateTime.UtcNow
                };

                try
                {
                    testRunResult.TestResult = test.Execute();
                }
                catch
                {
                    testRunResult.TestResult = TestResult.Failure;
                }
                finally
                {
                    testRunResult.EndTime = DateTime.UtcNow;

                    _loadTest.IncrementTotalIterations();

                    if (testRunResult.TestResult.Failed) //todo: ?
                    {
                        _loadTest.IncrementTotalErrors();
                    }
                }

                testRunResults.Add(testRunResult);
            }

            result.TestRuns = testRunResults;

            result.EndTime = DateTime.UtcNow;

            return(result);
        }
Exemplo n.º 4
0
        public void Start()
        {
            if (Interlocked.CompareExchange(ref _isBusy, 1, 0) != 0)
            {
                return;
            }

            Task.Run(() => Start(_context), _cancellationToken)
            .ContinueWith(task =>
            {
                Result = task.IsFaulted || task.IsCanceled ? new LoadGeneratorResult() : task.Result;
                Interlocked.Exchange(ref _isBusy, 0);
            },
                          _cancellationToken);
        }