自动化多个UNQUISH安装或版本(QT,Web)的应用程序

最后编辑了

概述

可以在单个测试脚本中使用多个蜂鸣的版本,本文介绍了一个示例设置和工作流,为此使用qt qt和web quish,但 这些指令通常适用于单个测试脚本中使用的蜂鸣器版本的任何组合.

基本设置

记录

在Qt应用程序中录制

示例记录:

def 主要的():
    startApplication("addressbook")
    clickButton(names.address_Book_New_QToolButton)
test.py.

在Web应用程序中录制

示例记录:

import names

def 主要的():
    startBrowser("www.froglogic.com")
    clickLink(waitForObject(names.Customer_Login_A))
    clickLink(waitForObject(names.squ_A))
test.py.

现在必须将此录制集成到Qt测试套件的Quish中,这是一个简单的副本和粘贴操作,首先是:

import names

def 主要的():
    startApplication("addressbook")
    clickButton(names.address_Book_New_QToolButton)

    startBrowser("www.froglogic.com")
    clickLink(waitForObject(names.Customer_Login_A))
    clickLink(waitForObject(names.squ_A))
test.py.

然后我们添加这些行(相当于“startApplication()”但是对于网络浏览器):

testSettings.setWrappersForApplication("__squish__webhook", ("Web"))
ctx_web = startApplication("__squish__webhook", "localhost", 1234)

所以结果脚本如下所示:

import names

def 主要的():
    ctx_qt = startApplication("addressbook")
    clickButton(names.address_Book_New_QToolButton)

    testSettings.setWrappersForApplication("__squish__webhook", ("Web"))
    ctx_web = startApplication("__squish__webhook", "localhost", 1234)
    startBrowser("www.froglogic.com")
    clickLink(waitForObject(names.Customer_Login_A))
    clickLink(waitForObject(names.squ_A))
test.py.

如您所见,我们还修改了StartApplication()行以捕获返回值,这是Qt和Web应用程序的应用程序上下文。使用这些应用程序上下文,如果需要,我们可以通过使用它来在自动化之间切换。 setapplicationscontext()功能。

必须将Web Test Suite的脚本对象映射的条目复制到Qt TestSuite的脚本对象映射,否则对象映射中的查找将失败为Web部件记录的符号名称。

重播

"<squish_for_web>/bin/squishserver" --verbose --port 1234

您可以通过setapplicationContext()在应用程序上下文之间切换:

import names

def 主要的():
    ctx_qt = startApplication("myqtapp")

    ...

    testSettings.setWrappersForApplication("__squish__webhook", ("Web"))
    ctx_web = startApplication("__squish__webhook", "localhost", 1234)

    ...

    setApplicationContext(ctx_qt)

    ...
test.py.

更多的信息

在其他应用程序上录制

应用上下文

如何使用ApplicationContext从单个测试脚本测试多个AUT

如何使用ApplicationContext对象

setapplicationscontext()

CurrentApplicationContext()

applicationcontextlist()