1

我正在使用 squish 来测试一个 qt 应用程序。问题是 squish 不支持线程:

http://kb.froglogic.com/display/KB/Article+-+Using+Threads+in+Python

但是,我需要使用线程,因为我需要通过 tcp 定期与被测应用程序通信。

我有一个脚本,它在其主线程中执行以下操作:

squishtest.waitForObject(":My_Button")
squishtest.waitForObject(":My_Button")

这些 squish 命令将关闭我启动应用程序时弹出的两个对话框。虽然,每个 squish 命令都在执行,但我确实注意到我的所有 tcp 线程(threading.Thread)都被阻塞,直到 squish 命令返回。如果线程以这种方式被阻塞,我无法测试被测应用程序。因此我觉得我可以使用多处理模块来解决这个问题,所以我尝试了:

p = Process(target = squishtest.waitForObject, args = (":My_Button",))
p.start()
p.join()

但是当我尝试时,这很好用:

p = Process(target = squishtest.waitForObject, args = (":My_Button",))
p.start()
p.join()

p = Process(target = squishtest.waitForObject, args = (":My_Button",))
p.start()
p.join()

我在执行 python 的命令行上看到以下文本:

RemoteInspector(0x0x8702b28)::type: Invalid class id 493 for appid 156850424

这是什么意思?

然后,为了它,我尝试了这个:

p = Process(target = squishtest.waitForObject, args = (":My_Button",))
p.start()
p.join()

squishtest.waitForObject(":My_Button")

这次我还从 python 得到了一个核心转储:

RemoteInspector(0x0x81b5ac8)::type: Invalid class id 493 for appid 156850440
Aborted (core dumped)

这里可能有什么问题?我解决 squish 阻塞我的线程这一事实的方法是否明智?你能建议另一种方法吗?

我正在使用python 2.6。

4

0 回答 0