Inheritance: IPerformanceResult
コード例 #1
0
        public List<ScenarioResult> Run(int sampleSize)
        {
            Console.WriteLine("Generating Samples");
            List<TestEntity> testEntities = TestEntityHelpers.GenerateRandomTestEntities(sampleSize);
            List<ScenarioResult> runs = new List<ScenarioResult>();
            Stopwatch timer = new Stopwatch();
            foreach (var config in _configurations)
            {
                Console.WriteLine(String.Format("Starting configuration {0} - {1} at {2}",config.Technology, config.Name, DateTime.Now.ToShortTimeString()));
                _builder.SetUp((t) => { return true; });// no seed
                ScenarioResult run = new ScenarioResult {
                    SampleSize = testEntities.Count(),
                    ConfigurationName=config.Name,
                    Technology = config.Technology,
                    ScenarioName = Name,
                    Status = new AssertionPass()
                };


                long startMem = System.GC.GetTotalMemory(true);
                //set up
                timer.Restart();
                config.Setup();
                timer.Stop();
                run.SetupTime = timer.ElapsedMilliseconds;

                //execute
                timer.Restart();
                foreach (var e in testEntities)
                {
                    config.Add(e);
                }
                timer.Stop();
                run.ApplicationTime = timer.ElapsedMilliseconds;

                //commit
                timer.Restart();
                config.Commit();
                timer.Stop();
                run.CommitTime = timer.ElapsedMilliseconds;

                run.MemoryUsage = (System.GC.GetTotalMemory(true) - startMem);
                runs.Add(run);

                config.TearDown();

                Console.WriteLine("Asserting Database State");

				run.Status = _builder.Context.AssertDatabaseState(testEntities);

                Console.WriteLine("Tearing down");
                _builder.TearDown();
            }

            return runs;
        }
        public List<ScenarioResult> Run(int sampleSize)
        {
            Console.WriteLine("Generating Samples");
            List<TestEntity> testEntities = TestEntityHelpers.GenerateRandomTestEntities(sampleSize);
            testEntities = testEntities.Select(t => new TestEntity { TestDate = t.TestDate, TestString = t.TestString, TestInt = 1337 }).ToList() ;

            List<ScenarioResult> runs = new List<ScenarioResult>();
            Stopwatch timer = new Stopwatch();
            foreach (var config in _configurations)
            {
                Console.WriteLine(String.Format("Starting configuration {0} - {1} at {2}",config.Technology, config.Name, DateTime.Now.ToShortTimeString()));
                _builder.SetUp((t) => 
                {
                    foreach(var e in testEntities)
                    {
                        t.TestEntities.Add(e);
                    }
                    t.SaveChanges();
                    return true; 
                });// no seed
                ScenarioResult run = new ScenarioResult {
                    SampleSize = testEntities.Count(),
                    ConfigurationName=config.Name,
                    Technology = config.Technology,
                    ScenarioName = Name,
                    Status = "Passed",
                    CommitTime = 0
                };
                long startMem = System.GC.GetTotalMemory(true);
                //set up
                timer.Restart();
                config.Setup();
                timer.Stop();
                run.SetupTime = timer.ElapsedMilliseconds;

                //execute
                timer.Restart();
                var foundEntities = config.FindWhereTestIntIs(1337);
                timer.Stop();

                run.ApplicationTime = timer.ElapsedMilliseconds;

                run.MemoryUsage = (System.GC.GetTotalMemory(true) - startMem);
                runs.Add(run);
                config.TearDown();

                Console.WriteLine("Asserting Database State");

                //no changes too slow for large numbers
                //if (!_textContext.AssertDatabaseState(testEntities))
                //{
                //    run.Status = "Failed";
                //}
                if (testEntities.Count() != foundEntities.Count())
                {
                    run.Status = "Failed";
                }

                var fe = foundEntities.ToArray();
                for (int i = 0; i < testEntities.Count(); i++)
                {
                    if (fe[i].TestDate != testEntities[i].TestDate ||
                        fe[i].TestInt != testEntities[i].TestInt ||
                        fe[i].TestString != testEntities[i].TestString)
                    {
                        run.Status = "Failed";
                    }
                }
                //foreach (var entity in testEntities)
                //{
                //    if (!foundEntities.Where(t => t.TestDate == entity.TestDate && t.TestInt == entity.TestInt && t.TestString == entity.TestString).Any())
                //    {
                //        run.Status = "Failed";
                //    }
                //}

                Console.WriteLine("Tearing down");
                _builder.TearDown();
            }

            return runs;
        }
コード例 #3
0
        public List <ScenarioResult> Run(int sampleSize, CancellationToken cancellationToken)
        {
            Console.WriteLine("Generating Samples");
            List <TestEntity>     testEntities    = TestEntityHelpers.GenerateRandomTestEntities(sampleSize);
            List <TestEntity>     updatedEntities = TestEntityHelpers.GenerateRandomTestEntities(sampleSize);
            List <ScenarioResult> runs            = new List <ScenarioResult>();
            Stopwatch             timer           = new Stopwatch();

            foreach (var config in _configurationProvider.GetRandomisedRunnableConfigurations <IRunnableUpdateConfiguration>())
            {
                cancellationToken.ThrowIfCancellationRequested();
                _sender.Send(new ConfigurationChanged {
                    Technology = config.Technology, Name = config.Name
                });
                Console.WriteLine(String.Format("Starting configuration {0} - {1} at {2}", config.Technology, config.Name, DateTime.Now.ToShortTimeString()));
                _builder.SetUp((t) =>
                {
                    foreach (var e in testEntities)
                    {
                        t.TestEntities.Add(e);
                    }
                    t.SaveChanges();
                    return(true);
                });// no seed
                ScenarioResult run = new ScenarioResult {
                    SampleSize        = testEntities.Count(),
                    ConfigurationName = config.Name,
                    Technology        = config.Technology,
                    ScenarioName      = Name,
                    Status            = new AssertionPass()
                };

                cancellationToken.ThrowIfCancellationRequested();

                long startMem = System.GC.GetTotalMemory(true);
                //set up
                timer.Restart();
                config.Setup();
                timer.Stop();
                run.SetupTime = timer.ElapsedMilliseconds;

                cancellationToken.ThrowIfCancellationRequested();

                //execute
                timer.Restart();
                for (int i = 0; i < sampleSize; i++)
                {
                    config.Update(i + 1, updatedEntities[i].TestString, updatedEntities[i].TestInt, updatedEntities[i].TestDate);
                }
                timer.Stop();
                run.ApplicationTime = timer.ElapsedMilliseconds;

                cancellationToken.ThrowIfCancellationRequested();

                //commit
                timer.Restart();
                config.Commit();
                timer.Stop();
                run.CommitTime = timer.ElapsedMilliseconds;

                run.MemoryUsage = (System.GC.GetTotalMemory(true) - startMem);
                _sender.Send(new TimeResult {
                    ElapsedMilliseconds = run.ApplicationTime + run.CommitTime + run.SetupTime
                });
                _sender.Send(new MemoryResult {
                    ConsumedMemory = run.MemoryUsage
                });

                runs.Add(run);

                config.TearDown();

                Console.WriteLine("Asserting Database State");

                run.Status = _builder.Context.AssertDatabaseState(testEntities);

                _sender.Send(new ValidationResult {
                    Status = run.Status.ToShortString()
                });

                Console.WriteLine("Tearing down");
                _builder.TearDown();
            }

            return(runs);
        }
        public List<ScenarioResult> Run(int sampleSize, CancellationToken cancellationToken)
        {
            Console.WriteLine("Generating Samples");
            List<TestEntity> testEntities = TestEntityHelpers.GenerateRandomTestEntities(sampleSize);
            testEntities = testEntities.Select(t => new TestEntity { TestDate = t.TestDate, TestString = t.TestString, TestInt = 1337 }).ToList() ;

            List<ScenarioResult> runs = new List<ScenarioResult>();
            Stopwatch timer = new Stopwatch();
            foreach (var config in _configurationProvider.GetRandomisedRunnableConfigurations<IRunnableBulkSelectConfiguration>())
            {
                cancellationToken.ThrowIfCancellationRequested();

                _sender.Send(new ConfigurationChanged { Technology = config.Technology, Name = config.Name });
                Console.WriteLine(String.Format("Starting configuration {0} - {1} at {2}",config.Technology, config.Name, DateTime.Now.ToShortTimeString()));
                _builder.SetUp((t) => 
                {
                    foreach(var e in testEntities)
                    {
                        t.TestEntities.Add(e);
                    }
                    t.SaveChanges();
                    return true; 
                });// no seed
                ScenarioResult run = new ScenarioResult {
                    SampleSize = testEntities.Count(),
                    ConfigurationName=config.Name,
                    Technology = config.Technology,
                    ScenarioName = Name,
                    Status = new AssertionPass(),
                    CommitTime = 0
                };

                cancellationToken.ThrowIfCancellationRequested();

                long startMem = System.GC.GetTotalMemory(true);
                //set up
                timer.Restart();
                config.Setup();
                timer.Stop();
                run.SetupTime = timer.ElapsedMilliseconds;

                cancellationToken.ThrowIfCancellationRequested();

                //execute
                timer.Restart();
                var foundEntities = config.FindWhereTestIntIs(1337);
                timer.Stop();

                run.ApplicationTime = timer.ElapsedMilliseconds;

                run.MemoryUsage = (System.GC.GetTotalMemory(true) - startMem);
                runs.Add(run);
                _sender.Send(new TimeResult { ElapsedMilliseconds = run.ApplicationTime + run.CommitTime + run.SetupTime });
                _sender.Send(new MemoryResult { ConsumedMemory = run.MemoryUsage });

                config.TearDown();

                Console.WriteLine("Asserting Database State");

                //no changes too slow for large numbers
                //if (!_textContext.AssertDatabaseState(testEntities))
                //{
                //    run.Status = "Failed";
                //}

                cancellationToken.ThrowIfCancellationRequested();
                if (testEntities.Count() != foundEntities.Count())
                {
					run.Status = new AssertionFailForRecordCount() { ActualCount = testEntities.Count, ExpectedCount = foundEntities.Count() };
                }

                var fe = foundEntities.ToArray();
                for (int i = 0; i < testEntities.Count(); i++)
                {
                    if (fe[i].TestDate != testEntities[i].TestDate ||
                        fe[i].TestInt != testEntities[i].TestInt ||
                        fe[i].TestString != testEntities[i].TestString)
                    {
						run.Status = new AssertionFailForMismatch() { Actual = fe[i], Expected = testEntities[i] };
                    }
                }

                _sender.Send(new ValidationResult { Status = run.Status.ToShortString() });

                //foreach (var entity in testEntities)
                //{
                //    if (!foundEntities.Where(t => t.TestDate == entity.TestDate && t.TestInt == entity.TestInt && t.TestString == entity.TestString).Any())
                //    {
                //        run.Status = "Failed";
                //    }
                //}

                Console.WriteLine("Tearing down");
                _builder.TearDown();
            }

            return runs;
        }
        public List<ScenarioResult> Run(int sampleSize, CancellationToken cancellationToken)
        {
            Console.WriteLine("Generating Samples");
            List<TestEntity> testEntities = TestEntityHelpers.GenerateRandomTestEntities(sampleSize);
            List<ScenarioResult> runs = new List<ScenarioResult>();
            Stopwatch timer = new Stopwatch();
            foreach (var config in _configurationProvider.GetRandomisedRunnableConfigurations<IRunnableInsertConfiguration>())
            {
                cancellationToken.ThrowIfCancellationRequested();

                _sender.Send(new ConfigurationChanged { Technology = config.Technology, Name = config.Name });
                Console.WriteLine(String.Format("Starting configuration {0} - {1} at {2}",config.Technology, config.Name, DateTime.Now.ToShortTimeString()));
                _builder.SetUp((t) => { return true; });// no seed
                ScenarioResult run = new ScenarioResult {
                    SampleSize = testEntities.Count(),
                    ConfigurationName=config.Name,
                    Technology = config.Technology,
                    ScenarioName = Name,
                    Status = new AssertionPass()
                };

                cancellationToken.ThrowIfCancellationRequested();

                long startMem = System.GC.GetTotalMemory(true);
                //set up
                timer.Restart();
                config.Setup();
                timer.Stop();
                run.SetupTime = timer.ElapsedMilliseconds;

                cancellationToken.ThrowIfCancellationRequested();

                //execute
                timer.Restart();
                foreach (var e in testEntities)
                {
                    config.Add(e);
                }
                timer.Stop();
                run.ApplicationTime = timer.ElapsedMilliseconds;

                cancellationToken.ThrowIfCancellationRequested();

                //commit
                timer.Restart();
                config.Commit();
                timer.Stop();
                run.CommitTime = timer.ElapsedMilliseconds;

                run.MemoryUsage = (System.GC.GetTotalMemory(true) - startMem);
                runs.Add(run);
                _sender.Send(new TimeResult { ElapsedMilliseconds = run.ApplicationTime + run.CommitTime + run.SetupTime });
                _sender.Send(new MemoryResult { ConsumedMemory = run.MemoryUsage });

                config.TearDown();

                Console.WriteLine("Asserting Database State");

				run.Status = _builder.Context.AssertDatabaseState(testEntities);

                _sender.Send(new ValidationResult { Status = run.Status.ToShortString() });

                Console.WriteLine("Tearing down");
                _builder.TearDown();
            }

            return runs;
        }
        public List <ScenarioResult> Run(int sampleSize, CancellationToken cancellationToken)
        {
            Console.WriteLine("Generating Samples");
            List <TestEntity> testEntities = TestEntityHelpers.GenerateRandomTestEntities(sampleSize);

            testEntities = testEntities.Select(t => new TestEntity {
                TestDate = t.TestDate, TestString = t.TestString, TestInt = 1337
            }).ToList();

            List <ScenarioResult> runs  = new List <ScenarioResult>();
            Stopwatch             timer = new Stopwatch();

            foreach (var config in _configurationProvider.GetRandomisedRunnableConfigurations <IRunnableBulkSelectConfiguration>())
            {
                cancellationToken.ThrowIfCancellationRequested();

                _sender.Send(new ConfigurationChanged {
                    Technology = config.Technology, Name = config.Name
                });
                Console.WriteLine(String.Format("Starting configuration {0} - {1} at {2}", config.Technology, config.Name, DateTime.Now.ToShortTimeString()));
                _builder.SetUp((t) =>
                {
                    foreach (var e in testEntities)
                    {
                        t.TestEntities.Add(e);
                    }
                    t.SaveChanges();
                    return(true);
                });// no seed
                ScenarioResult run = new ScenarioResult {
                    SampleSize        = testEntities.Count(),
                    ConfigurationName = config.Name,
                    Technology        = config.Technology,
                    ScenarioName      = Name,
                    Status            = new AssertionPass(),
                    CommitTime        = 0
                };

                cancellationToken.ThrowIfCancellationRequested();

                long startMem = System.GC.GetTotalMemory(true);
                //set up
                timer.Restart();
                config.Setup();
                timer.Stop();
                run.SetupTime = timer.ElapsedMilliseconds;

                cancellationToken.ThrowIfCancellationRequested();

                //execute
                timer.Restart();
                var foundEntities = config.FindWhereTestIntIs(1337);
                timer.Stop();

                run.ApplicationTime = timer.ElapsedMilliseconds;

                run.MemoryUsage = (System.GC.GetTotalMemory(true) - startMem);
                runs.Add(run);
                _sender.Send(new TimeResult {
                    ElapsedMilliseconds = run.ApplicationTime + run.CommitTime + run.SetupTime
                });
                _sender.Send(new MemoryResult {
                    ConsumedMemory = run.MemoryUsage
                });

                config.TearDown();

                Console.WriteLine("Asserting Database State");

                //no changes too slow for large numbers
                //if (!_textContext.AssertDatabaseState(testEntities))
                //{
                //    run.Status = "Failed";
                //}

                cancellationToken.ThrowIfCancellationRequested();
                if (testEntities.Count() != foundEntities.Count())
                {
                    run.Status = new AssertionFailForRecordCount()
                    {
                        ActualCount = testEntities.Count, ExpectedCount = foundEntities.Count()
                    };
                }

                var fe = foundEntities.ToArray();
                for (int i = 0; i < testEntities.Count(); i++)
                {
                    if (fe[i].TestDate != testEntities[i].TestDate ||
                        fe[i].TestInt != testEntities[i].TestInt ||
                        fe[i].TestString != testEntities[i].TestString)
                    {
                        run.Status = new AssertionFailForMismatch()
                        {
                            Actual = fe[i], Expected = testEntities[i]
                        };
                    }
                }

                _sender.Send(new ValidationResult {
                    Status = run.Status.ToShortString()
                });

                //foreach (var entity in testEntities)
                //{
                //    if (!foundEntities.Where(t => t.TestDate == entity.TestDate && t.TestInt == entity.TestInt && t.TestString == entity.TestString).Any())
                //    {
                //        run.Status = "Failed";
                //    }
                //}

                Console.WriteLine("Tearing down");
                _builder.TearDown();
            }

            return(runs);
        }
        public List<ScenarioResult> Run(int sampleSize, CancellationToken cancellationToken)
        {
            Console.WriteLine("Generating Samples");
            List<TestEntity> testEntities = TestEntityHelpers.GenerateRandomTestEntities(sampleSize);

            List<ScenarioResult> runs = new List<ScenarioResult>();
            Stopwatch timer = new Stopwatch();
            foreach (var config in _configurationProvider.GetRandomisedRunnableConfigurations<IRunnableDiscreteSelectConfiguration>())
            {
                cancellationToken.ThrowIfCancellationRequested();
                _sender.Send(new ConfigurationChanged { Technology = config.Technology, Name = config.Name });
                Console.WriteLine(String.Format("Starting configuration {0} - {1} at {2}",config.Technology, config.Name, DateTime.Now.ToShortTimeString()));
                _builder.SetUp((t) => 
                {
                    foreach(var e in testEntities)
                    {
                        t.TestEntities.Add(e);
                    }
                    t.SaveChanges();
                    return true; 
                });// no seed
                ScenarioResult run = new ScenarioResult {
                    SampleSize = testEntities.Count(),
                    ConfigurationName=config.Name,
                    Technology = config.Technology,
                    ScenarioName = Name,
                    Status = new AssertionPass(),
                    CommitTime = 0
                };

                long startMem = System.GC.GetTotalMemory(true);
                //set up
                timer.Restart();
                config.Setup();
                timer.Stop();
                run.SetupTime = timer.ElapsedMilliseconds;

                cancellationToken.ThrowIfCancellationRequested();
                ////Warmup
                //var w = config.Find(1);

                //execute
                timer.Restart();
                for (int i = 0; i < sampleSize; i++)
                {
                    timer.Start();
                    var entity = config.Find(i+1);
                    timer.Stop();

                    if (entity == null || entity.TestInt != testEntities[i].TestInt || entity.TestDate != testEntities[i].TestDate || entity.TestString != testEntities[i].TestString)
                    {
						run.Status = new AssertionFailForMismatch() {
							Actual = entity,
							Expected = testEntities[i]
						};
                    }
                }
                timer.Stop();

                run.ApplicationTime = timer.ElapsedMilliseconds;

                run.MemoryUsage = (System.GC.GetTotalMemory(true) - startMem);

                _sender.Send(new TimeResult { ElapsedMilliseconds = run.ApplicationTime + run.CommitTime + run.SetupTime });
                _sender.Send(new MemoryResult { ConsumedMemory = run.MemoryUsage });
                runs.Add(run);
                config.TearDown();

                Console.WriteLine("Asserting Database State");

                //no changes
                run.Status = _textContext.AssertDatabaseState(testEntities);
                _sender.Send(new ValidationResult { Status = run.Status.ToShortString() });
                Console.WriteLine("Tearing down");
                _builder.TearDown();
            }

            return runs;
        }