Кодированный пользовательский интерфейс WebTest, печатные символы иногда опускаются в полях редактирования - PullRequest
3 голосов
/ 15 марта 2012

** ПОСТ ОБНОВЛЕНО **

Для тестирования системы и интеграции в среде Microsoft Dynamics мы используем кодированный пользовательский интерфейс Visual Studio 2010.Я неопытный пользователь Visual Studio, но у меня есть опыт автоматизации тестирования.

Всякий раз, когда VS-Coded-UI-тест печатает текст в полях редактирования, происходит изменение, которое должен выполнять один из символов, который долженбыть набранным опущено.Поле адреса типа Beverly Hills 90210 может легко стать Beverly ills 90210, что нарушит мои тесты.Это случается примерно в 1 из 200 символов (образованное предположение).

Кто-нибудь испытывал это раньше?И где может быть проблема: скорость ввода VS, сломанный драйвер клавиатуры, сбой браузера, чтобы он не мог правильно получать ввод текста, что-то еще?

И есть ли возможность снизить скорость наборатест-драйвера в VS-кодированном интерфейсе?

ОБНОВЛЕНИЕ , 2012-05-24: Все еще не найдено решение.Сейчас я использую обходной путь, который уменьшает изменение сбоя, но он все еще не идеален.

Обход кода (да, он грязный):

// put this method in a base class or easy accessable component
protected void ExecuteWithRetry(Action method, int maxRetryCount = 2)
{
    try
    {
        method();
    }
    catch (Exception)
    {
        if (maxRetryCount > 0)
        {
            ExecuteWithRetry(method, maxRetryCount - 1);
        }
        else
        {
            throw;
        }
    }
}

Всякий раз, когда я используюкусок кода, в котором установлено текстовое поле, я вызываю его с помощью этого метода:

UIMap.SetUserfieldsParams.EnterAddress = @"555 Sunset Boulevard";
UIMap.SetUserfieldsParams.EnterZIP = @"90210";
ExecuteWithRetry(UIMap.SetUserfields);

UPDATE , 2012-06-18: Кажется, это вызвано использованием олицетворения, которое мы используем,Пользователь, вошедший в наше веб-приложение, напрямую извлекается из сервера AD по имени пользователя, запустившего IE.Запустив IE с помощью олицетворения, мы можем проводить наши тесты с другими пользователями без (ручного) выхода из системы и входа в Windows.Мы используем олицетворение, используя Process.Start(ProcessStartInfo startInfo) в пространстве имен System.Diagnostics.Process

1 Ответ

3 голосов
/ 15 марта 2012

Мое первое предположение состоит в том, что это происходит потому, что он печатает быстро, и ваше приложение не готово получить следующий ключ. Вы можете изменить время между вводимыми ключами, используя KeyBoard.SendKeysDelay, по умолчанию на моем компьютере, по крайней мере, 10 мс.

Вы случайно отключили ошибку "Продолжить при ошибке"? Я немного удивлен, что вы не получаете исключение, которое останавливает тест в тот момент, когда вводится значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...