Проблемы при создании веб-теста для проверки логинов - PullRequest
1 голос
/ 14 марта 2011

Мне нужна помощь с закодированным веб-тестом.

Я создал закодированный веб-тест, чтобы узнать, сколько учетных записей действительно для входа в мое приложение.У меня много аккаунтов (2000+), и мне нужно знать, какие из них действительны.По сути, я записал веб-тест, который просматривает URL-адрес и ищет определенный текст, который появляется на странице после входа в систему.Затем я создал XML-файл, содержащий все имена учетных записей и пароли, и установил его в качестве источника данных учетных данных.Затем изменил testrun.testrunconfig, указав «один тест на строку источника данных», чтобы тест выполнялся для каждой строки в файле XML.
После этого я преобразовал тест в «закодированный» веб-тест.Все идет нормально.Проблема возникает, когда я пытаюсь создать файл (чтобы программно добавить успешные логины в файл).У меня есть StreamWriter, объявленный в частном порядке, и я пытаюсь инициализировать его в конструкторе тестов, но при этом выдается ошибка: «не удалось запустить веб-тестирование xxx на агенте yyy: исключение было вызвано целью вызова».Я пытался инициализировать поток в той же строке, где он объявлен, но я получаю те же результаты.

Кто-нибудь имеет какие-либо идеи о том, как я могу выполнить желаемый тест?Я знаю, что могу выполнить это без закодированного веб-теста, но для сбора информации об успешном входе в систему мне нужно построчно переходить в результат теста и смотреть, какие из них прошли.Если у кого-то есть идея получше, она очень приветствуется!

С наилучшими пожеланиями
Бето

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

Я бы следовал предложению agentnega запустить тест локально, чтобы получить более четкое сообщение об ошибке. Возможно, что-то не так с путем к файлу.

Кроме того, я бы сохранял тест как записанный, а не преобразовывал его в кодированный. Я бы установил переменную контекста для пути к файлу, который будет иметь успешные имена входа в конце, предпочтительно относительно каталога тестового развертывания. Затем напишите класс плагина запроса, производный от WebTestRequestPlugin, и переопределите метод PostRequest () аналогично этому:

public override void PostRequest(object sender, PostRequestEventArgs e)
{
    if(Outcome.Pass == e.Request.Outcome)
    {
        string path = Path.Combine(e.WebTest.Context["$TestDeploymentDir"].ToString(), e.WebTest.Context["logins.txt"].ToString());

        StreamWriter sw = null;
        if (!File.Exists(path)) 
        {
            sw = File.CreateText(path);
        }
        else
        {
            sw = File.AppendText(path);
        }
        sw.WriteLine(e.WebTest.Context["Username"]);
    }
}
0 голосов
/ 01 июня 2011

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

В вашем коде должна быть ошибка, которая вызывает это исключение во время выполнения.

Вместо использования контроллера / агента RIG, попробуйте сначала запустить тест локально, чтобы вы могли получить лучшее сообщение об ошибке, чем универсальное «не удалось запустить веб-тест».

В качестве альтернативы, если вы разместили код, возможно, кто-то может обнаружить ошибку.

...