static void RequestTestTask() { try { TestTaskResponseBody responsedTask = ProjectManagerWebClient.RequestTestTask(); if (responsedTask == null) { Thread.Sleep(5000); } else { TryExecuteTask(responsedTask); } } catch (Exception) { Thread.Sleep(10000); } }
public virtual void ReadParameters(TestTaskResponseBody prm) { TaskId = prm.task; }
static void TryExecuteTask(TestTaskResponseBody data) { FabricateProgram programFabric = CustomProgram.FindProgram(data.program); try { if (programFabric == null) { throw new Exception(String.Format("Программа {0} не найдена", data.program)); } CustomProgram program = programFabric(); // Читаем настройки по-умолчанию string jsonText = File.ReadAllText(@"default.settings", System.Text.Encoding.UTF8); program.ReadParamsFromJson(jsonText); // Читаем параметры из тест-задачи program.ReadParameters(data); ProjectManagerWebClient.ApplyParamsToProgram(program); // Предварительная инициализация program.VerifyParameters(); program.WriteParametersToReport(); // Если на этом этапе все ок - отправляем серверу ПМ подтсверждение - что автотестировщик переходит в режим выполнения теста if (ProjectManagerWebClient.ConfirmTask(data.task)) { // Если подтверждение принято - начинаем тестирование try { program.Report.ProgramName = data.program; program.Report.StartTime = DateTime.UtcNow; program.BeforeRun(); program.Run(); program.Report.Success = true; } catch (Exception e) { program.Report.Success = false; program.Report.ErrorText = e.Message; program.OnError(e); } finally { try { program.AfterRun(); } finally { program.Report.FinishTime = DateTime.UtcNow; ProjectManagerWebClient.SendReport(program.Report); } } } } catch (Exception e) { ProjectManagerWebClient.RejectTestTask(data.task, e.Message); } }
public override void ReadParameters(TestTaskResponseBody prm) { base.ReadParameters(prm); Browser = prm.browser; HomeURL = prm.url; }