Beispiel #1
0
        private TestSet buildTestSet(string testFileName, string url = "testUrl")
        {
            SetEnvironmentVariable(EnvVar.Browser, "chrome");
            SetEnvironmentVariable(EnvVar.Environment, "");
            SetEnvironmentVariable(EnvVar.TimeOutThreshold, "50");
            SetEnvironmentVariable(EnvVar.WarningThreshold, "50");
            SetEnvironmentVariable(EnvVar.URL, url);
            SetEnvironmentVariable(EnvVar.DataFile, $"{readFileLocation}{testFileName}");
            SetEnvironmentVariable(EnvVar.CsvSaveFileLocation, saveFileLocation);
            SetEnvironmentVariable(EnvVar.LogSaveFileLocation, saveFileLocation);
            SetEnvironmentVariable(EnvVar.ReportSaveFileLocation, saveFileLocation);
            SetEnvironmentVariable(EnvVar.ScreenshotSaveLocation, saveFileLocation);
            SetEnvironmentVariable(EnvVar.TestAutomationDriver, "selenium");
            SetEnvironmentVariable(EnvVar.TestSetDataType, "XML");
            SetEnvironmentVariable(EnvVar.TestSetDataArgs, $"{readFileLocation}{testFileName}");
            SetEnvironmentVariable(EnvVar.TestCaseDataType, GetEnvironmentVariable(EnvVar.TestSetDataType));
            SetEnvironmentVariable(EnvVar.TestStepDataType, GetEnvironmentVariable(EnvVar.TestCaseDataType));
            SetEnvironmentVariable(EnvVar.TestCaseDataArgs, GetEnvironmentVariable(EnvVar.TestSetDataArgs));
            SetEnvironmentVariable(EnvVar.TestStepDataArgs, GetEnvironmentVariable(EnvVar.TestCaseDataArgs));
            SetEnvironmentVariable(EnvVar.RespectRepeatFor, "true");
            SetEnvironmentVariable(EnvVar.RespectRunAODAFlag, "true");

            InformationObject.SetUp();
            TestSetBuilder builder = new TestSetBuilder();

            BuildAutomationDriver();

            return(builder.Build());
        }
Beispiel #2
0
        public TestSet BitTestSetInitGenerate()
        {
            var DIFF         = 250_000;
            var A_LIM        = 1_000_000_000_000;
            int bigTestCount = 4;
            var bigTestSet   = new TestSetBuilder()
                               .For(1, 4, (step_n, tsb) =>
            {
                tsb.For(1, 4, (step_q, tsb) =>
                {
                    int n = DIFF * step_n, q = DIFF * step_q;
                    tsb.AddTest()
                    .AddNumbers(n, q)
                    .GenerateNumbers(n, 1, A_LIM)
                    .For(1, q, (ind, testBuilder) => testBuilder
                         .GenerateNumber(1, A_LIM)
                         )
                    .BuildTest();
                    Console.WriteLine($"Substep {step_q} of {bigTestCount}");
                    return(tsb);
                });
                Console.WriteLine($"Step {step_n} of {bigTestCount}");
                return(tsb);
            })
                               .BuildTestSet();

            Directory.CreateDirectory("bigTests");
            bigTestSet.WriteToFiles((t, ind) => $"bigTests/big_test_{ind}.txt");
            return(bigTestSet);
        }
Beispiel #3
0
 public TestSet GenerateTests()
 {
     var testSet = new TestSetBuilder()
                   // Тесты для условия
                   .AddTest()
                   .AddNumbers(22)
                   .BuildTest()
                   .AddTest()
                   .AddNumbers(23)
                   .BuildTest()
                   .For(1, 8, (step, tsb) =>
     {
         int lim = 40;
         tsb     = tsb.AddTest()
                   .GenerateNumber(22, lim)
                   .BuildTest();
         Console.WriteLine($"Step {step} of {18}");
         return(tsb);
     })
                   .For(1, 10, (step, tsb) =>
     {
         tsb = tsb.AddTest()
               .GenerateNumber(40, 100)
               .BuildTest();
         Console.WriteLine($"Step {step} of {18}");
         return(tsb);
     })
                   .AddTest()
                   .AddNumbers(1000)
                   .BuildTest()
                   .For(1, 19, (step, tsb) =>
     {
         tsb = tsb.AddTest()
               .GenerateNumber(100, 1000)
               .BuildTest();
         Console.WriteLine($"Step {step} of {19}");
         return(tsb);
     })
                   .AddTest()
                   .AddNumbers(10_000)
                   .BuildTest()
                   .For(1, 19, (step, tsb) =>
     {
         tsb = tsb.AddTest()
               .GenerateNumber(1000, 10_000)
               .BuildTest();
         Console.WriteLine($"Step {step} of {19}");
         return(tsb);
     })
                   .AddTest()
                   .AddNumbers(100_000)
                   .BuildTest()
                   .For(1, 19, (step, tsb) =>
     {
         tsb = tsb.AddTest()
               .GenerateNumber(10_000, 100_000)
               .BuildTest();
         Console.WriteLine($"Step {step} of {19}");
         return(tsb);
     })
Beispiel #4
0
        public TestSet SimpleTestSetGenerate()
        {
            var N_LIM      = 1_000_000;
            var Q_LIM      = 1_000_000;
            var N_LIM_MIN  = 1_00_000;
            var Q_LIM_MIN  = 5_00_000;
            var DIFF       = 250_000;
            var A_LIM      = 1_000_000_000_000;
            int testCount  = 40;
            int simpleALIM = 1000;
            int simpleNLIM = 1000;
            int simpleQLIM = 1000;
            var testSet    = new TestSetBuilder()
                             .For(1, testCount, (step, tsb) =>
            {
                tsb.AddTest()
                .AddNumbers(simpleNLIM, simpleQLIM)
                .GenerateNumbers(simpleNLIM, 1, simpleALIM)
                .For(1, simpleQLIM, (ind, testBuilder) => testBuilder
                     .GenerateNumber(1, simpleALIM)
                     )
                .BuildTest();
                Console.WriteLine($"Step {step} of {testCount}");
                return(tsb);
            })
                             .BuildTestSet();

            return(testSet);
        }
Beispiel #5
0
        public TestSet GenerateTests()
        {
            long FIRST_LIM  = 15;
            long SECOND_LIM = 1000_000;
            long THIRD_LIM  = 1000_000_000_000_000;
            long LIM        = 1000_000_000_000_000_000;
            var  testSet    = new TestSetBuilder()
                              .AddTest()
                              .AddNumbers(1)
                              .BuildTest()
                              .AddTest()
                              .AddNumbers(2)
                              .BuildTest()
                              .AddTest()
                              .AddNumbers(3)
                              .BuildTest()
                              .For(1, 7, (step, tsb) =>
            {
                tsb.AddTest()
                .GenerateNumber(4, FIRST_LIM)
                .BuildTest();
                Console.WriteLine($"Step {step} of {7}");
                return(tsb);
            })
                              .For(1, 20, (step, tsb) =>
            {
                tsb.AddTest()
                .GenerateNumber(FIRST_LIM, SECOND_LIM)
                .BuildTest();
                Console.WriteLine($"Step {step} of {20}");
                return(tsb);
            })
                              .AddTest()
                              .AddNumbers(LIM)
                              .BuildTest()
                              .For(1, 29, (step, tsb) =>
            {
                tsb.AddTest()
                .GenerateNumber(SECOND_LIM, THIRD_LIM)
                .BuildTest();
                Console.WriteLine($"Step {step} of {29}");
                return(tsb);
            })
                              .For(1, 40, (step, tsb) =>
            {
                tsb.AddTest()
                .GenerateNumber(THIRD_LIM, LIM)
                .BuildTest();
                Console.WriteLine($"Step {step} of {40}");
                return(tsb);
            })
                              .BuildTestSet();

            return(testSet);
        }
Beispiel #6
0
        public TestSet BitTestSetInitGenerate()
        {
            var N_LIM_MIN      = 1_00_000;
            var Q_LIM_MIN      = 5_00_000;
            var A_LIM          = 1_000_000_000_000;
            var bigTestSetInit = new TestSetBuilder()
                                 .AddTest()
                                 .AddNumbers(N_LIM_MIN, Q_LIM_MIN)
                                 .GenerateNumbers(N_LIM_MIN, 1, A_LIM)
                                 .For(1, Q_LIM_MIN, (ind, testBuilder) => testBuilder
                                      .GenerateNumber(1, A_LIM)
                                      )
                                 .BuildTest()
                                 .BuildTestSet();

            return(bigTestSetInit);
        }
Beispiel #7
0
        public TestSet GenerateTests()
        {
            var testSet = new TestSetBuilder()
                          // Тесты для условия
                          .AddTest()
                          .AddNumbers(4, 3)
                          .AddStrings("stop")
                          .AddStrings("post")
                          .AddStrings("abcd")
                          .AddStrings("spot")
                          .BuildTest()
                          .AddTest()
                          .AddNumbers(16, 1)
                          .AddStrings("iamlordvoldemort")
                          .AddStrings("tommarvoloriddle")
                          .BuildTest()
                          .For(1, 18, (step, tsb) =>
            {
                int len    = 100;
                int q      = 10;
                var source = GeneratorHelper.GenerateLowerString(len);
                tsb        = tsb.AddTest()
                             .AddNumbers(len, q)
                             .AddStrings(source)
                             .For(1, q, (i, tb) =>
                {
                    return(new Random().NextBool()
                                ? tb.GenerateString(len, GeneratorHelper.LOWER_CASE_ALPHABET)
                                : tb.AddStrings(GeneratorHelper.Shake(source)));
                })
                             .BuildTest();
                Console.WriteLine($"Step {step} of {18}");
                return(tsb);
            })
                          .BuildTestSet();

            return(testSet);
        }
Beispiel #8
0
        public TestSet GenerateTests()
        {
            int FIRST_LIM  = 100;
            int SECOND_LIM = 1000;
            int VALUE_LIM  = 100_000_000;
            var testSet    = new TestSetBuilder()
                             // Тесты для условия
                             .AddTest()
                             .AddNumbers(1)
                             .AddNumbers(5)
                             .AddNumbers(1, 2, 3, 4, 5)
                             .BuildTest()
                             .AddTest()
                             .AddNumbers(2)
                             .AddNumbers(3)
                             .AddNumbers(1, 1, 1)
                             .AddNumbers(4)
                             .AddNumbers(1, 0, 0, 0)
                             .BuildTest()
                             // Краевые случаи на малых значениях
                             .AddTest()
                             .AddNumbers(1)
                             .AddNumbers(3)
                             .AddNumbers(1, 0, 1)
                             .BuildTest()
                             .AddTest()
                             .AddNumbers(1)
                             .AddNumbers(4)
                             .AddNumbers(1, 0, 0, 1)
                             .BuildTest()
                             .AddTest()
                             .AddNumbers(1)
                             .AddNumbers(3)
                             .AddNumbers(1, 1, 0)
                             .BuildTest()
                             .AddTest()
                             .AddNumbers(1)
                             .AddNumbers(4)
                             .AddNumbers(0, 0, 0, 4)
                             .BuildTest()
                             // Тесты, общим размером до 10 * 100
                             .For(1, 14, (step, tsb) =>
            {
                var cnt = 10;
                tsb.AddTest()
                .AddNumbers(cnt)
                .For(1, cnt, (q, test) => {
                    var circleCount = new Random().Next(2, FIRST_LIM);
                    return(test
                           .AddNumbers(circleCount)
                           .AddNumbers(Enumerable.Range(1, circleCount)
                                       .Select(i => new Random().NextBool()
                                        ? new Random().Next(0, circleCount)
                                        : new Random().Next(0, 3))
                                       .ToArray()
                                       ));
                })
                .BuildTest();
                Console.WriteLine($"Step {step} of {18}");
                return(tsb);
            })
                             // Тесты, общим размером до 10 * 100
                             .For(1, 30, (step, tsb) =>
            {
                var cnt = 100;
                tsb.AddTest()
                .AddNumbers(cnt)
                .For(1, cnt, (q, test) => {
                    var circleCount = new Random().Next(2, SECOND_LIM);
                    return(test
                           .AddNumbers(circleCount)
                           .AddNumbers(Enumerable.Range(1, circleCount)
                                       .Select(i => new Random().NextBool()
                                        ? new Random().Next(0, circleCount)
                                        : new Random().Next(0, 10))
                                       .ToArray()
                                       ));
                })
                .BuildTest();
                Console.WriteLine($"Step {step} of {30}");
                return(tsb);
            })
                             // Большой тест 100 * 1000
                             .AddTest()
                             .AddNumbers(100)
                             .For(1, 100, (q, test) => {
                var circleCount = 1000;
                var t           = test
                                  .AddNumbers(circleCount)
                                  .AddNumbers(Enumerable.Range(1, circleCount)
                                              .Select(i => new Random().NextBool()
                                    ? new Random().Next(0, circleCount)
                                    : new Random().Next(0, 10))
                                              .ToArray()
                                              );
                Console.WriteLine($"Big test step 100 * 1000");
                return(t);
            })
                             .BuildTest()
                             // Большой тест 10 * 10'000
                             .AddTest()
                             .AddNumbers(10)
                             .For(1, 10, (q, test) => {
                var circleCount = 10_000;
                var t           = test
                                  .AddNumbers(circleCount)
                                  .AddNumbers(Enumerable.Range(1, circleCount)
                                              .Select(i => new Random().NextBool()
                                    ? new Random().Next(0, circleCount)
                                    : new Random().Next(0, 10))
                                              .ToArray()
                                              );
                Console.WriteLine($"Big test step 10 * 10'000");
                return(t);
            })
                             .BuildTest()
                             // Большой тест 1 * 100'000
                             .AddTest()
                             .AddNumbers(1)
                             .For(1, 1, (q, test) => {
                var circleCount = 100_000;
                var t           = test
                                  .AddNumbers(circleCount)
                                  .AddNumbers(Enumerable.Range(1, circleCount)
                                              .Select(i => new Random().NextBool()
                                    ? new Random().Next(0, circleCount)
                                    : new Random().Next(0, 10))
                                              .ToArray()
                                              );
                Console.WriteLine($"Big test step 1 * 100'000");
                return(t);
            })
                             .BuildTest()
                             // Большой тест 1 * 100'000 c максимальными ограничениями
                             .AddTest()
                             .AddNumbers(1)
                             .For(1, 1, (q, test) => {
                var circleCount = 100_000;
                var t           = test
                                  .AddNumbers(circleCount)
                                  .AddNumbers(Enumerable.Range(1, circleCount)
                                              .Select(i => new Random().NextBool()
                                    ? VALUE_LIM
                                    : new Random().Next(0, 10))
                                              .ToArray()
                                              );
                Console.WriteLine($"Big test step 1 * 100'000");
                return(t);
            })
                             .BuildTest()
                             // Тесты, размером до 100 * 1000
                             .For(1, 46, (step, tsb) =>
            {
                var cnt = 100;
                tsb.AddTest()
                .AddNumbers(cnt)
                .For(1, cnt, (q, test) => {
                    var circleCount = new Random().Next(2, 1000);
                    return(test
                           .AddNumbers(circleCount)
                           .AddNumbers(Enumerable.Range(1, circleCount)
                                       .Select(i => new Random().NextBool()
                                        ? new Random().Next(0, circleCount)
                                        : new Random().Next(0, 10))
                                       .ToArray()
                                       ));
                })
                .BuildTest();
                Console.WriteLine($"Step {step} of {46}");
                return(tsb);
            })
                             .BuildTestSet();

            return(testSet);
        }
        /// <summary>
        /// The Main functionality.
        /// </summary>
        /// <param name="args">Arguments to be passed in.</param>
        /// <returns> 0 if no errors were met. </returns>
        public static int Main(string[] args)
        {
            bool errorParsing;
            int  resultCode = 0;

            errorParsing = ParseCommandLine(args);

            if (!errorParsing)
            {
                if (update.Equals("true"))
                {
                    Logger.Info("Checking for updates...");
                    if (CheckForUpdates(Assembly.GetExecutingAssembly().Location))
                    {
                        string newArgs = string.Join(" ", args.Select(x => string.Format("\"{0}\"", x)).ToList());
                        using (Process p = new Process())
                        {
                            ProcessStartInfo startInfo = new ProcessStartInfo
                            {
                                UseShellExecute        = false,
                                RedirectStandardOutput = false,
                                RedirectStandardError  = false,
                                FileName  = "AutoUpdater.exe",
                                Arguments = newArgs,
                            };

                            p.StartInfo = startInfo;
                            p.Start();
                        }

                        Thread.Sleep(5000);

                        // Closes the current process
                        Environment.Exit(0);
                    }
                    else
                    {
                        Logger.Info("Program is up to date");
                    }
                }

                errorParsing = ParseTestSetParameters();
                SetDefaultParameters();
            }

            Logger.Info($"Running AutomationFramework Version: {FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).ProductVersion}");

            if (!errorParsing)
            {
                // Set up all the parts.
                InformationObject.SetUp();

                TestSetBuilder setBuilder = new TestSetBuilder();
                TestSet        testSet    = setBuilder.Build();

                TestAutomationBuilder automationBuilder = new TestAutomationBuilder();
                automationBuilder.Build();

                // Run main program.
                DateTime start = DateTime.UtcNow;
                AutomationTestSetDriver.RunTestSet(testSet);

                RunAODA();

                DateTime end = DateTime.UtcNow;

                InformationObject.Reporter.Report();

                InformationObject.CSVLogger.AddResults($"Total, {Math.Abs((start - end).TotalSeconds)}");
                InformationObject.CSVLogger.WriteOutResults();

                string resultString = testSet.TestSetStatus.RunSuccessful ? "successful" : "not successful";
                Logger.Info($"Automation Testing Program has finished. It was {resultString}");
            }
            else
            {
                resultCode = 1;
            }

            Environment.Exit(resultCode);
            return(resultCode);
        }
Beispiel #10
0
        public TestSet GenerateTests()
        {
            long FIRST_LIM  = 15;
            long SECOND_LIM = 1000_000;
            long THIRD_LIM  = 1000_000_000_000_000;
            long LIM        = 1000_000_000_000_000_000;
            var  testSet    = new TestSetBuilder()
                              // Тесты из условий
                              .AddTest()
                              .AddNumbers(10, 5)
                              .BuildTest()
                              .AddTest()
                              .AddNumbers(3, 2)
                              .BuildTest()
                              // краевые случаи
                              // k < 5
                              .AddTest()
                              .AddNumbers(4, 3)
                              .BuildTest()
                              .AddTest()
                              .AddNumbers(8, 3)
                              .BuildTest()
                              .AddTest()
                              .AddNumbers(12, 3)
                              .BuildTest()
                              // k >= 5 && k < 10
                              .AddTest()
                              .AddNumbers(6, 5)
                              .BuildTest()
                              .AddTest()
                              .AddNumbers(8, 6)
                              .BuildTest()
                              .AddTest()
                              .AddNumbers(12, 6)
                              .BuildTest()
                              // k >= 10
                              .AddTest()
                              .AddNumbers(30, 10)
                              .BuildTest()
                              .AddTest()
                              .AddNumbers(30, 15)
                              .BuildTest()
                              .For(1, 10, (step, tsb) =>
            {
                tsb.AddTest(t =>
                {
                    var n = new Random().NextLong(1, FIRST_LIM);
                    var k = new Random().NextLong(1, n);
                    return(t.AddNumbers(n, k));
                })
                .BuildTest();
                Console.WriteLine($"Step {step} of {10}");
                return(tsb);
            })
                              .AddTest()
                              .AddNumbers(SECOND_LIM, SECOND_LIM / 2)
                              .BuildTest()
                              .For(1, 19, (step, tsb) =>
            {
                tsb.AddTest(t =>
                {
                    long n = new Random().NextLong(FIRST_LIM, SECOND_LIM);
                    long k = new Random().NextLong(1, n);
                    return(t.AddNumbers(n, k));
                })
                .BuildTest();
                Console.WriteLine($"Step {step} of {20}");
                return(tsb);
            })
                              .AddTest()
                              .AddNumbers(THIRD_LIM, THIRD_LIM / 2)
                              .BuildTest()
                              .For(1, 29, (step, tsb) =>
            {
                tsb.AddTest(t =>
                {
                    long n = new Random().NextLong(SECOND_LIM, THIRD_LIM);
                    long k = new Random().NextLong(1, n);
                    return(t.AddNumbers(n, k));
                })
                .BuildTest();
                Console.WriteLine($"Step {step} of {29}");
                return(tsb);
            })
                              .AddTest()
                              .AddNumbers(LIM, LIM / 2)
                              .BuildTest()
                              .For(1, 29, (step, tsb) =>
            {
                tsb.AddTest(t =>
                {
                    long n = new Random().NextLong(THIRD_LIM, LIM);
                    long k = new Random().NextLong(1, n);
                    return(t.AddNumbers(n, k));
                })
                .BuildTest();
                Console.WriteLine($"Step {step} of {29}");
                return(tsb);
            })
                              .BuildTestSet();

            return(testSet);
        }