AutoIt的页/窗口对象模型

问题描述 投票:1回答:1

我想问一下,如果我们还可以在AutoIt中实现了页/窗口对象模型?我的项目分配的大多数是在网络自动化和我使用webdriver的硒与框架使用Page对象模型。目前,我分配到GUI自动化项目。我想实现这样的做法也是在AutoIt中如果可行的话,这样我可以重用的对象的其他类。我们计划使用了AutoIt独立。我注意到,大多数在互联网上提供的例子是在每个类/脚本创建的对象。

你的见解高度赞赏。

谢谢!

user-interface testing automation autoit testautomationfx
1个回答
1
投票

一般:

使用页面对象模型(POM)的设计模式是不退出好可行与的AutoIt这种常见的做法。当然,你可以创建一个的AutoIt对象结构也是如此,但它不适合的语言。无论如何,一些POM的目标可以与测试结构的下面的例子中建议来实现。

请注意:

既然你不提供有关测试(AUT)申请足够的信息,我解释的基本结构。实现取决于您的应用程序(SWING / RCP,WinForm的等)。同样重要的是,你需要为你的页面对象识别哪些工具支持。除了WinForm的,可以通过ControlCommand功能AutoIt的得以控制,它的使用UIASpy或au3_uiautomation作为辅助工具,取之有道。

这是了解硒在上下文中POM结构的优势。我通常包括与行为驱动开发BDD(黄瓜或小黄瓜SpecFlow语法)的测试例描述,但是这将不会是示例的一部分在这里。

实施例的结构:

enter image description here

该结构由下测试计算和VlcPlayer两个应用程序。双方共同遵循的结构PageObjects和测试。你应该尝试devide在很多子页面对象(文件),以保持良好的概貌。此子应该是测试文件夹/子文件夹类似。

在测试区,您可以包括几个测试阶段,或根据您的测试目标(验收/ UI测试,只是功能冒烟测试等)测试类别。这也是控制由分隔符包装文件,TestCaseExecutionOrder.au3执行顺序是一个好主意。这应该存在于所有测试类别,以避免它们的混合。

此包装AU3文件包含函数调用,它的处理开始/控制。

方法说明:

  • TestCaseExecutionOrder.au3 调用它们的测试案例子文件夹中(菜单,PlaylistContentArea,SideNavigation)的功能。 测试用例NiceName包括一些测试步骤。 这些测试步骤已被纳入由脚本/文件: #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语句到文件。这是非常方便的。

我希望这能帮到您。

© www.soinside.com 2019 - 2024. All rights reserved.