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()); }
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); }
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); })
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); }
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); }
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); }
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); }
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); }
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); }