2012-05-06 4 views
2

Недавно я начал работать над Selenium и QTP. Мне было поручено выполнить требование от группы тестирования, чтобы программно остановить QTP с помощью C#. Эта небольшая реализация является частью структуры, которую команда хочет внедрить.Остановить выполнение QTP с помощью C#

Я не уверен, что я делаю неправильно, но, согласно документации, то, что я делаю, должно технически работать, но это не так.

Я могу получить статус теста и т. Д., Но когда я пытаюсь остановить тест, все идет не так. QTP перестает отвечать на запросы, и я не могу даже вручную остановить тест. Ниже мой код:

Пример 1

QuickTest.Application qtp = new QuickTest.Application(); 
if (qtp.Test.IsRunning) 
{ 
    MessageBox.Show("Test is running"); // works 
    qtp.Test.Stop(); // qtp halts and i can't stop execution manually also 
} 

Пример 2

То же самое, что и выше, за исключением того, я пытаюсь подключиться к Qtp, используя следующее заявление:

var app = Marshal.ActivateObject("QuickTest.Application") as QuickTest.Application; 

Что я делаю неправильно?

+0

Пока никто не придумал решение, у меня его тоже нет, но такое же поведение QTP является для меня обычным явлением. Когда я выполняю тест (WinXP, QPT10, web addin), я не могу остановить или приостановить его с помощью кнопки остановки/паузы. Как только я нажал, QTP зависает, и я должен убить процесс. Работа, которую я использую, заключается в том, чтобы положить в точку останова (во время выполнения) часть, которую я знаю, будет проходить код. С точки останова я могу приостановить или остановить тест. Я не использую C# для взаимодействия с QTP, но, возможно, у него есть метод интерфейса COM для размещения или запуска точки останова? – AutomatedChaos

+0

@AutomatedChaos: спасибо за ваши комментарии. Я могу приостановить тестирование с помощью обходных решений, но не удастся остановить его. Я попросил своих членов команды спросить HP, если это известная проблема. я искал, но ничего не нашел. Я также новичок в C#, qtp, поэтому не уверен, что это ожидаемое поведение. –

+1

Ну, если вы новичок в QTP и C#, то вы действительно хотите прочитать эту статью [Создание прерывания события в QTP] (http://www.advancedqtp.com/wp-content/uploads/yassa/event-interrupt- в-qtp.pdf). Не _very_ связано с вашей проблемой, но это хорошее, учебное чтение и, возможно, это заставит вас придумать решение для вашей реальной проблемы. – AutomatedChaos

ответ

1

Как насчет того, чтобы убить процесс QTP вместо того, чтобы остановить выполнение? Решает ли ваша проблема.

Смежные вопросы