我想问一下,如果我们还可以在AutoIt中实现了页/窗口对象模型?我的项目分配的大多数是在网络自动化和我使用webdriver的硒与框架使用Page对象模型。目前,我分配到GUI自动化项目。我想实现这样的做法也是在AutoIt中如果可行的话,这样我可以重用的对象的其他类。我们计划使用了AutoIt独立。我注意到,大多数在互联网上提供的例子是在每个类/脚本创建的对象。
你的见解高度赞赏。
谢谢!
一般:
使用页面对象模型(POM)的设计模式是不退出好可行与的AutoIt这种常见的做法。当然,你可以创建一个的AutoIt对象结构也是如此,但它不适合的语言。无论如何,一些POM的目标可以与测试结构的下面的例子中建议来实现。
请注意:
既然你不提供有关测试(AUT)申请足够的信息,我解释的基本结构。实现取决于您的应用程序(SWING / RCP,WinForm的等)。同样重要的是,你需要为你的页面对象识别哪些工具支持。除了WinForm的,可以通过ControlCommand
功能AutoIt的得以控制,它的使用UIASpy或au3_uiautomation作为辅助工具,取之有道。
这是了解硒在上下文中POM结构的优势。我通常包括与行为驱动开发BDD(黄瓜或小黄瓜SpecFlow语法)的测试例描述,但是这将不会是示例的一部分在这里。
实施例的结构:
该结构由下测试计算和VlcPlayer两个应用程序。双方共同遵循的结构PageObjects和测试。你应该尝试devide在很多子页面对象(文件),以保持良好的概貌。此子应该是测试文件夹/子文件夹类似。
在测试区,您可以包括几个测试阶段,或根据您的测试目标(验收/ UI测试,只是功能冒烟测试等)测试类别。这也是控制由分隔符包装文件,TestCaseExecutionOrder.au3执行顺序是一个好主意。这应该存在于所有测试类别,以避免它们的混合。
此包装AU3文件包含函数调用,它的处理开始/控制。
方法说明:
#include-once ; this line is optional
#include "Menu\OpenFolder.au3"
测试步骤OpenFolder.au3(这是一个测试用例的一部分)包含函数(s)在该文件夹装载和那里的内容。
在该功能PageObject MenuItemMedia.au3将被载入/纳入由脚本/文件:
#include-once ; this line is optional
#include "..\..\..\PageObjects\Menu\MenuItemMedia.au3"
文件MenuItemMedia.au3应该只包含该区域和行动的识别机制。
这可能是找到菜单项媒体(如函数)。
或找到打开的文件夹的菜单项(如函数)等。
Func _findMenuItemMedia()
; do the recognition action
; ...
Return $oMenuItem
EndFunc
在测试步骤OpenFolder.au3这就要求_findMenuItemMedia()
这样的:
Global $oMedia = _findMenuItemMedia()
可以在.click
执行或类似.getText
等。测试用例应该只#include
这是必要的(测试步骤)的文件。测试步骤也应该只#include
必要的文件(页面对象)等。所以这是可能的,一旦调整识别功能,它可以在相应的测试步骤中使用。
结论:
当然,这是很难解释它以这种方式,但这种方式,你可以为Web测试做了类似的方式就像在硒。请注意,您properbly必须经常使用Global
变量。你必须确保正确includings,不要失去你的测试,这是基于面向对象的测试方法更加容易的概述。
我建议VS代码的使用,因为你可以从文件中跳跃在#include语句到文件。这是非常方便的。
我希望这能帮到您。