Exemplo n.º 1
0
        private async void timer_Tick(object sender, EventArgs e)
        {
            if (_finished)
            {
                return;
            }

            try
            {
                TaskCreationResult result = DataStorage.GetData <TaskCreationResult>();
                List <KeyValuePair <int, int> > _valueList = new List <KeyValuePair <int, int> >();

                await DataStorage.RequestData(new RequestTaskInfo()
                {
                    TaskGroup = result.GroupNumber
                });

                TaskInfoClient task = DataStorage.GetData <TaskInfoClient>();

                if (task != null)
                {
                    durationControl.Text     = task.Duration.ToString();
                    betweenControl.Text      = task.RequestDuration.ToString();
                    timeoutControl.Text      = task.Timeout.ToString();
                    virtualUsersControl.Text = task.VirtualUsers.ToString();

                    switch (task.Strategy)
                    {
                    case TestingStrategy.DECREASING:
                        strategyControl.Text = "Генерация убывающей нагрузки";
                        break;

                    case TestingStrategy.INCREASING:
                        strategyControl.Text = "Генерация возрастающей нагрузки";
                        break;
                    }

                    switch (task.State)
                    {
                    case TaskState.ABORTED:
                        statusLabel.Content = "Выполнение задания было прервано сервером.";
                        _finished           = true;
                        break;

                    case TaskState.CREATED:
                        statusLabel.Content = "Задание создано. Ожидание начала выполнения.";
                        break;

                    case TaskState.RUNNING:
                        statusLabel.Content = "Задание выполняется.";
                        break;

                    case TaskState.FINISHED:
                        statusLabel.Content = "Задание завершено.";
                        _finished           = true;
                        break;
                    }

                    if (task.Points != null)
                    {
                        foreach (var point in task.Points)
                        {
                            _valueList.Add(new KeyValuePair <int, int>(point.x, point.y));
                        }

                        lineChart.DataContext = _valueList;
                    }
                }
            }
            catch (TimeoutException)
            {
                MessageBox.Show("Сервер не ответил вовремя.", "Ошибка");
                Close();
            }
            catch (SocketException)
            {
                MessageBox.Show("Соединение с сервером потеряно.", "Ошибка");
                Close();
            }
        }
Exemplo n.º 2
0
        private async void beginTestingButton_Click(object sender, RoutedEventArgs e)
        {
            DisableButtons();

            try
            {
                List <string>   URLs            = new List <string>();
                int             virtualUsers    = int.Parse(virtualUsersControl.Text);
                int             timeout         = int.Parse(timeoutControl.Text);
                int             requestDuration = int.Parse(betweenControl.Text);
                int             duration        = int.Parse(durationControl.Text);;
                TestingStrategy strategy        = (TestingStrategy)strategyControl.SelectedIndex;

                foreach (var item in urlListControl.Items)
                {
                    URLs.Add((string)item);
                }

                if (URLs.Count == 0)
                {
                    MessageBox.Show("Список URL-адресов пустой.", "Ошибка");
                    EnableButtons();
                    return;
                }

                if (virtualUsers < 1 || timeout < 1 || requestDuration < 1 || duration < 1)
                {
                    throw new FormatException();
                }

                TaskData data = new TaskData()
                {
                    _URLs           = URLs,
                    VirtualUsers    = virtualUsers,
                    Timeout         = timeout,
                    RequestDuration = requestDuration,
                    Duration        = duration,
                    Strategy        = strategy
                };

                await DataStorage.RequestData(data);

                TaskCreationResult result = DataStorage.GetData <TaskCreationResult>();

                if (result != null && result.GroupNumber != 0)
                {
                    MonitoringWindow window = new MonitoringWindow();
                    window.ShowDialog();
                }
                else
                {
                    MessageBox.Show("Сервер отказал в выполнении задания.", "Ошибка");
                }

                EnableButtons();
            }
            catch (FormatException)
            {
                MessageBox.Show("Данные введены не верно.", "Ошибка");
                EnableButtons();
            }
            catch (TimeoutException)
            {
                MessageBox.Show("Сервер не ответил вовремя.", "Ошибка");
                Close();
                return;
            }
            catch (SocketException)
            {
                MessageBox.Show("Сервер не ответил вовремя.", "Ошибка");
                Close();
                return;
            }
        }