如何在Coded UI VS2013中创建页面对象模型框架

时间:2014-10-03 14:32:34

标签: c# coded-ui-tests

我尝试从头开始为我正在测试的网站创建一个Coded Ui框架。

我知道通过找到我可以使用的免费版本(例如Cuite)可能有更好的方法来解决这个问题,但我想从一开始就知道它是如何工作的,并且对它正在做的事情充满信心。 / p>

这是我设置的内容。

我有一个主编码的UI目录,我创建了一个PageObjects文件夹,该文件夹与Properties和References目录(存储库)位于同一级别。

Page Objects目录包含每个PAGE的子文件夹(E.G. Home,Registration,Sign Up,Contact Us .. e.c.t。)

每个Sub文件夹都有一个" .uitest"文件(例如Home.uitest,Registration.uitest) 在主文件夹中,有一个仍然存在的UIMap.uitest文件。

Page_Objects
------- Home_Page
----------------- NavigateToThe_Home_Page.cs
----------------- RefreshThe_Home_Page.cs
----------------- SelectLinksOnMenuItem_Home_Page.cs
----------------- PAginateThroughInformation_Home_Page.cs
----------------- Home_Page.cs
---------------------------- Home_Page.Designer.cs
---------------------------- Home_Page (partial)
----------------- Home_Page.uitest
------- Registration
----------------- Registration.cs
---------------------------- Registration.Designer.cs
---------------------------- Registration (partial)
----------------- Registration.uitest
UIMap.uitest

这似乎是在一个程度上工作,但是当我从一个目录运行测试时,我仍然遇到问题,(Home)在另一个目录中(注册甚至回到根目录)。

我只想知道使用此流程的最佳方式,因为我无法找到有关如何执行此操作的明确定义。

我是自动化方面的新手,所以在向我解释时请保持简单。

非常感谢

菲尔

1 个答案:

答案 0 :(得分:2)

没有唯一的页面对象模型,因为不需要所有页面对象模型框架都相同。所以你可以使用页面对象创建自己的框架。

我建议你做我做的事,

(1)创建一个类测试方法(也许你已经拥有它)。说它是 CodedUI.cs

(2)您说您已经拥有.uitest文件,因此请确保为每个uimap.cs提供唯一名称

     *HomeUIMap.cs  
     *RegistrationUIMap.cs  
     *ContactUs.cs

(3)现在为codedUI.cs类中的所有uimap.cs创建对象

     *HomeUIMap HomeObj = new HomeUIMap();  
     *RegistrationUIMap RegObj = new RegistrationUIMap(); 
     *ContactUsUIMap ContactUsObj = new ContactUsUIMap(); 

(4)现在你按照你想要的顺序使用对象调用每个页面的函数

例:
        * HomeObj.NavigateToHome();
        * HomeObj.RefreshHomePage();

希望你现在有了一个主意。