【发布时间】:2012-05-06 15:11:42
【问题描述】:
我最近开始研究 Selenium 和 QTP。我的任务是满足测试团队的要求,即使用 C# 以编程方式停止 QTP。这个小型实现是团队想要实施的框架的一部分。
我不确定我做错了什么,但根据文档,我正在做的事情在技术上应该可行,但事实并非如此。
我能够获得测试状态等,但是当我尝试停止测试时,一切都出错了。 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;
我做错了什么?
【问题讨论】:
-
到目前为止没有人提出解决方案,我也没有,但是 QTP 的相同行为对我来说很常见。当我执行测试(WinXP、QPT10、网络插件)时,我无法使用停止/暂停按钮停止或暂停它。一旦我按下它,QTP 就会挂起,我必须终止该进程。我使用的解决方法是在我知道代码流将通过的部分放置一个断点(在运行时)。从断点开始,我可以暂停或停止测试。我不使用 C# 与 QTP 交互,但它可能有一个 COM 接口方法来放置或触发断点?
-
@AutomatedChaos:感谢您的 cmets。我可以使用变通方法暂停测试,但没有运气停止它。我已经让我的团队成员询问惠普这是否是一个已知问题。我搜索但一无所获。我也是 c#、qtp 的新手,所以不确定这是否是预期的行为。
-
好吧,如果您是 QTP 和 C# 的新手,那么您肯定想阅读这篇文章 Creating an event interrupt in QTP。与您的问题没有非常相关,但它是一本很好的教育读物,也许它会促使您为您的实际问题提出解决方案。
-
感谢 AutomatedChaos。我设法找到了解决方案。在阅读了一些 .net 内容后,我向相关代码.com/contact/ 发送了消息,并收到了一个类库,其中包含我想要的部分 + c# 中的一些其他 c 样式代码。不知道那是做什么的。 :)