Python笔记
默认文件编码(UTF-8)
Squish 假设所有 test.py
文件都是 UTF-8 编码。
如果您预计将在 squishide
之外编辑此类文件,我们建议在每个 test.py
文件的开始处放置以下行
# -*- coding: utf-8 -*-
这仅仅是一个注释,但具有 Python 意识的编辑器会注意到它,并将正确地使用 Squish 预期的 UTF-8 编码加载和保存,结果如此。
其他文本编辑器(不识别上述表示)通常必须显式配置以使用 UTF-8 编码保存 Squish 测试脚本。
字符串返回值的默认类型(Unicode)
对于 Python 2.x,Squish API 函数返回字符串始终返回类型为 unicode
的字符串,而不是 str
。因此,要检查类型,请使用 isinstance(string, unicode)
或 isinstance(string, basestring)
。
Squish 的 Python 模块
Squish 的特定于 Python 的扩展模块将自动通过在挂接到或启动 AUT 之后内部执行以下语句进行加载
import test
import testData
import object
import objectMap
import squishinfo
from squish import *
由 squish
模块暴露的(函数、类等)对象取决于当前连接的应用程序。如果没有连接到应用程序(通过 ApplicationContext startApplication(autName) 或 ApplicationContext attachToApplication(autName)),则此模块中的大多数对象将是缺失的,直到连接到应用程序。
这意味着除非您正在开发自己的独立 Python 模块,否则不需要您自己导入它们。有关在您自己的 Python 模块或包中使用上述模块的信息,请参阅在 Python 模块/包中使用 Squish 函数。
Squish 隐藏的 Python 符号
squish
模块的通配符导入(from squish import *
)意味着一些 Python 的内置对象被具有相同名称但完全不同行为的 Squish 对象隐藏。
Squish 隐藏的对象有 object
、bool
、int
、long
和 type
。
但是,这种隐藏仅发生在测试脚本本身中(仅在执行测试用例时,而不是在使用 squishtest
模块时)。这意味着它不会在标准或自定义 Python 模块和包中使用。
在调用 startApplication()
或 attachToApplication()
之后,可以恢复一些原始符号。
import sys # Check if Python 3: if sys.version_info[0] == 3: import builtins else: # Make Python 2 look like Python 3: import __builtin__ as builtins def main(): startApplication("aut") restore_python_builtins() def restore_python_builtins(): global bool global int global long global pytype del bool del int del long pytype = builtins.type
不建议恢复 object
和 type
,因为它们用于 Squish 记录的代码片段中。
Squish 的 bool 与 Python 的 bool
Squish 的 bool
代表在包装器的 C 和 C++ 代码中用于 bool 的 Squish 类型。
与其他隐藏符号一样,要访问 Python 的 bool
类型,可以从模块 __builtin__
(Python 2)或 builtins
(Python 3)使用它。
Squish 的 int 与 Python 的 int
Squish 的 int
代表在包装器的 C 和 C++ 代码中用于整数的 Squish 类型。
与其他隐藏符号一样,要访问 Python 的 int
类型,可以从模块 __builtin__
(Python 2)或 builtins
(Python 3)使用它。
import sys sys.path.append("my/path")
import squish
from squish import *
import squish def do_something(): squish.activateItem(squish.waitForObject(":Some_Menu"), "File")
- 从
squishide
- 从squishrunner命令行
- 从使用
squishtest
模块的Python主程序。
Python 模块 squishtest
尝试通过提供完整的 Squish API 来复刻 squishrunner 的功能。成员被注入到这个模块中,就像它们通常被注入到 Squish 测试套件的全球命名空间一样。类似地,在调用 startApplication
或 attachToApplication
之后,适当的版本特定 API(例如 Qt、Mac、Windows、Web、Java)会动态地注入到模块中。
详细的设置步骤以及示例 Python 脚本可以在 这篇知识库文章 中找到。
Python 语言文档
除了 Squish 扩展 API,还提供了完整的 Python 语言功能和模块以供脚本化使用。《Python 文档》页面提供了对当前版本和旧版本的 Python 文档的链接。如果你更喜欢书籍,一本好的 Python 3 书是 Mark Summerfield 著的《Programming in Python 3》。
©2024 Qt 公司有限公司。此处的文档贡献包括各自所有者的版权。
本提供的文档受 GNU 自由文档许可 1.3 版本 的条款许可,由自由软件基金会发布。
Qt 和相关标志是芬兰和/或其他国家 Qt 公司的商标。所有其他商标均为各自所有者的财产。