Strukturen i CUITs

CodedUI_strukturAlle CUITs (Coded UI Tests) som bliver oprettet via Visual Studios Coded UI Test Builder indeholder som minimum disse 4 filer:

 

CodedUITest1.*

UIMap.uitest

UIMap.Designer.*

UIMap.*

 

CodedUITest1.*

CodedUITest1-filen indeholder selve testcasen [TestMethod]:

[TestMethod]
public void CodedUITestMethod1()
{
    // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
    this.UIMap.Open_TestingIT();
}

samt initiering- [TestInitialize()], der afvikles inden selve testcase TestMethod og oprydningsmetoderne [TestCleanup()], der afvikles efter testcasen er afsluttet – uanset om testen afvikles succesfuldt eller fejler:

#region Additional test attributes
// You can use the following additional attributes as you write your tests:

////Use TestInitialize to run code before running each test 
[TestInitialize()]
public void MyTestInitialize()
{        
    // Start Browser and go to web page 'http://www.testingit.dk'
    BrowserWindow Browser = BrowserWindow.Launch(new System.Uri(this.StartBrowserParams.Url));
}

////Use TestCleanup to run code after each test has run
//[TestCleanup()]
public void MyTestCleanup()
{        
    #region Variable Declarations
    BrowserWindow uICodedUITestingITInteWindow = this.UICodedUITestingITInteWindow;
    #endregion

    // Perform Close on Browser
    uICodedUITestingITInteWindow.Close();
}

UIMap.uitest

Denne fil indeholder alle de handlinger (UI Actions), der bliver optaget via Coded UI Test Builder’en og bliver automatisk genereret af Coded UI Test Builder’en. UIMap.iutest-filen indeholder også identifikationen til de kontroller, du benytter i applikationen, der testes på: eks. en knap, en tekst eller et link.

Filen er i sin struktur en XML-fil, men når den vises i Visual Studio bliver den vist mere læsbart:

UIMap.uitest : IU Actions:

UIMAP_uitest_UI_Actions

UIMap.uitest : UI Control Map

UIMAP_uitest_UI_Control_Map

 

UIMap.designer.*

UIMap.designer.*-filen bliver dannet automatisk ud fra UIMap.iutest-filen, når du benytter Coded UI Test Builder’en, og repræsenterer kodesiden af testen. UIMap.designer-filen indeholder metoder og egenskaber (alle optaget via Coded UI Test Builder’en), der benyttes i selve testen (CodedUITest1.*).

Nedenstående er et eksempel på en metode fra UIMap.designer.*-filen:

public void Testautomatisering()
{
    #region Variable Declarations
    HtmlHyperlink uICodedUIHyperlink = this.UIJBUnitedSiderForsideWindow.UITestingITfordikvalitDocument.UIMainnavmenuCustom.UICodedUIHyperlink;
    #endregion

    // Click 'Coded UI' link
    Mouse.Click(uICodedUIHyperlink, new Point(54, 17));
}

Følgende er et eksempel på egenskab-sektionen (properties):

public HtmlHyperlink UICodedUIHyperlink
{
    get
    {
        if ((this.mUICodedUIHyperlink == null))
        {
            this.mUICodedUIHyperlink = new HtmlHyperlink(this);
            #region Search Criteria
            this.mUICodedUIHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Id] = null;
            this.mUICodedUIHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Name] = null;
            this.mUICodedUIHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Target] = null;
            this.mUICodedUIHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.InnerText] = "Coded UI";
            this.mUICodedUIHyperlink.FilterProperties[HtmlHyperlink.PropertyNames.AbsolutePath] = "/testautomatisering/coded-ui/";
            this.mUICodedUIHyperlink.FilterProperties[HtmlHyperlink.PropertyNames.Title] = null;
            this.mUICodedUIHyperlink.FilterProperties[HtmlHyperlink.PropertyNames.Href] = "http://www.testingit.dk/testautomatisering/coded-ui/";
            this.mUICodedUIHyperlink.FilterProperties[HtmlHyperlink.PropertyNames.Class] = null;
            this.mUICodedUIHyperlink.FilterProperties[HtmlHyperlink.PropertyNames.ControlDefinition] = "href=\"http://www.testingit.dk/testautoma";
            this.mUICodedUIHyperlink.FilterProperties[HtmlHyperlink.PropertyNames.TagInstance] = "9";
            this.mUICodedUIHyperlink.WindowTitles.Add("Testing IT | – fordi kvalitet tæller……");
            #endregion
        }
        return this.mUICodedUIHyperlink;
    }
}

 

UIMap.*

Som udgangspunkt indeholder UIMap.*-filen ingen ting – hverken metoder eller egenskaber.

Formålet med UIMap.*-filen er, at her kan du selv kode dine egne metoder og egenskaber, som du efterfølgende kan benytte i CodedUITest1.

UIMap.* bliver ikke påvirket af Coded UI Test Builder’en.

Data Driven test – testdata fra fil

Da testdata kan ændre sig over tid, er det en god ide, at skille testdata ud fra selve testscriptet. En af muligheder er at flytte data ud i et datasæt/fil.

 

Nedenstående viser hvilke step du skal igennem:

  1. Tilføj tekst-filen “data.csv” til testen
  2. Under menupunktet File vælg Advanced Save Options og sæt encoding til Unicode (UTF-8 without signature) – Codepage 65001 as the encoding
  3. Ret data.csv property: Copy to Output Directory = Copy if newer
  4. Skift [TestMethod] i testfilen med: [DataSource(“Microsoft.VisualStudio.TestTools.DataSource.CSV”, “|DataDirectory|\\data.csv”, “data#csv”, DataAccessMethod.Sequential), DeploymentItem(“data.csv”), TestMethod]
  5. Ret i testen således at data fra data.csv bliver brugt: this.UIMap….. = TestContext.DataRow[“Felt1”].ToString();

 

Coded UI Tests (CUITs)

Når vi snakker om værktøjer til testautomatisering af brugergrænsefladetest, er det ofte HP Unified Functional Testing eller Selenium, der bliver brugt.

Men Microsoft har også et produkt til at teste brugergrænsefladen: Visual Studio.

De test vi kan lave med Visual Studios testautomatiseringsværk til User Interface-test kaldes for Coded UI Tests (CUITs).

Microsoft_CUITs (Kilde Microsoft – Developer Network)