我试图在SquishIDE上编写一个python测试来测试一个QT应用程序。我可以用压榨的方法记录测试,但我不知道如何用手写同样的测试?在
下面是记录的测试
def main():
startApplication("hmi")
mouseClick(waitForObject(":Setup_Text"), 18, 5, 0, Qt.LeftButton)
activateItem(waitForObjectItem(":_QMenu", "Monitor setup X"))
mouseClick(waitForObject(":_Rectangle"), 33, 31, 0, Qt.LeftButton)
activateItem(waitForObjectItem(":_QMenu", "ECG X"))
mouseClick(waitForObject(":_Rectangle_2"), 65, 66, 0, Qt.LeftButton)
sendEvent("QCloseEvent", waitForObject(":_QDeclarativeView"))
您需要在startApplication行之后设置一个断点。在它下面打个盹儿。在
一旦程序中断,几秒钟后,应用程序对象窗口将填充对象映射/层次结构。从这个层次结构中,可以线性方式访问对象。每次你展开一个对象来看到它的子对象,那就更深了一层。在
例如,假设我在“应用程序对象”窗口中看到的是一个可单击的右箭头,标记为: ->;主声明视图
然后我点击它,它就展开了:
|主声明视图
->;某个按钮
我访问SomeButton及其属性如下:
myButton=findObject(“:MainDeclarativeView.SomeButton“)
注意MainDeclarativeView前面的冒号和指定SomeButton是MainDeclarativeView的子对象的句点。现在,如果你这样做了:
鼠标单击(我的按钮)
你可以点击它。您也可以将waitForObject作为findObject的参数,然后将“:Main…”放在waitForObject中,但根据我的经验,这并没有什么不同。如果在“应用程序对象”菜单中看不到对象,则无法找到该对象并将其作为对象分配给变量。在
从现在起,您可以通过myButton访问SomeButton的属性,例如
showMeX=myButton.x
希望有帮助
就我个人而言,我使用类来定义PageObjects(借鉴cumber/selenium的思想), 包装器来定义小部件的功能 和decorators,用于登录和加载要测试的模块。 这样可以最大限度地重用代码,并将维护开销降至最低。在
这也意味着测试可以在编写任何代码之前创建,只要开发人员理解合理地命名小部件并预先定义它们。在
那么在你的测试中:
^{pr2}$这里不是详细描述方法的地方,但是如果您阅读:
UI Tests with Cucumber (5 part blob series) <http://www.cheezyworld.com/2010/11/09/ui-tests-not-brittle/>
\u(Ruby)Selenium on PageObjects <http://code.google.com/p/selenium/wiki/PageObjects>
(Java)你将了解所使用的原则。在
使用屏幕截图验证点来帮助您确定什么是什么。如果您在“应用程序对象”窗口中单击某个对象的复选框,它们将(最终)填充到Spy页上的单独选项卡中。在
相关问题 更多 >
编程相关推荐