【发布时间】:2010-01-21 09:32:58
【问题描述】:
我正在运行测试,但我想同时运行 2 个函数。我有一个摄像头,我告诉它通过 suds 移动,然后我通过 SSH 登录到摄像头以检查摄像头设置的速度。当我检查速度时,相机已经停止,所以没有速度可用。有没有办法让这些功能同时运行以测试相机的速度。示例代码如下:
class VerifyPan(TestAbsoluteMove):
def runTest(self):
self.dest.PanTilt._x=350
# Runs soap move command
threading.Thread(target = SudsMove).start()
self.command = './ptzpanposition -c 0 -u degx10'
# Logs into camera and checks speed
TestAbsoluteMove.Ssh(self)
# Position of the camera verified through Ssh (No decimal point added to the Ssh value)
self.assertEqual(self.Value, '3500')
我现在已经尝试了下面提到的线程模块。线程不与函数 TestAbsoluteMove.Ssh() 同步运行。我还需要其他代码来完成这项工作吗?
我已经研究了将参数放入线程语句中,以表明线程在 Ssh() 函数时运行。有谁知道在这个语句中输入什么?
对不起,如果我没有正确解释。 “SudsMove”功能移动相机,“Ssh”功能登录相机并检查相机当前移动的速度。问题是当“Ssh”功能登录相机时已经停止。我需要两个函数并行运行,这样我就可以在相机仍在移动时检查它的速度。
谢谢
【问题讨论】:
-
您可以在移动相机时记录速度吗?也许到一个日志文件。你想达到什么目的?反正我觉得上面的测试没什么用。
-
编辑了我的答案以回答您的同步问题。
-
你看过我编辑的答案吗?有意义吗?
-
也许 ssh 需要很长时间才能打开连接 - 例如,相机可能会尝试进行 dns 查找。在这种情况下,您可能需要更改
TestAbsoluteMove.Ssh以使用已打开的连接。
标签: python testing multithreading function synchronization