Coded UI Test Automation Framework-zelfstudie

Anonim

Een typische software-automatisering Testen vereist een automatiseringstool zoals Selenium en QTP. De gecodeerde gebruikersinterface is vergelijkbaar met deze tools en kan met name handig zijn voor functionele tests.

Coded UI Test (CUIT) gebruikt Visual Studio IDE om scripts te schrijven, aangezien de opname kan worden gedaan met Visual Studio.

In deze tutorial leer je-

  • Wat is een gecodeerde UI-test (CUIT)?
  • Gecodeerde UI-testfuncties
  • Gecodeerde UI-test (CUIT) ondersteunde technologieën
  • Waarom gecodeerde gebruikersinterface gebruiken voor testautomatisering
  • Gecodeerde UI-tests (CUIT) maken
  • Inhoud van een gecodeerde UI-test
  • Hoe een gecodeerde UI-test uit te voeren
  • Best practices voor Coded UI Test (CUIT)
  • Vergelijking van gecodeerde UI-test Vs. Selenium versus QTP

Wat is een gecodeerde UI-test (CUIT)?

CUIT zijn geautomatiseerde tests die uw applicatie aansturen via de gebruikersinterface (UI). Vandaar de naam gecodeerde UI-tests (CUITs). Deze tests omvatten functionele testen van de UI-besturingselementen. Het controleert de functionaliteit van de hele applicatie inclusief de gebruikersinterface.

Gecodeerde UI-testfuncties

Gecodeerde gebruikersinterface-functies zijn onder meer

  • Functioneel testen
  • Genereer code in VB / C #
  • Geïntegreerd met ALM-verhaal
    • Bouw, implementeer en test in het lab of als onderdeel van een build
    • Lokale, externe runs, gegevensverzameling
  • Rijke uitbreidbaarheid
  • Opzettelijk opnemen en veerkrachtig afspelen

Gecodeerde UI-test (CUIT) ondersteunde technologieën

Met een gecodeerde gebruikersinterface kan een applicatie met een gebruikersinterface (User Interface) eenvoudig worden getest. De applicatie kan zowel venster- als webgebaseerd zijn.

Gecodeerde gebruikersinterface ondersteunt technologieën zoals

  • Op vensters gebaseerde desktop-applicaties
  • Webservices (SOAP, ASPX, enz.)
  • Window Phone-applicaties
  • WPF (Windows Presentation Foundation)
  • Webapplicaties (HTML, Silverlight, HTML5)

Waarom gecodeerde gebruikersinterface gebruiken voor testautomatisering

De reden waarom een ​​gecodeerde gebruikersinterface voor testautomatisering de voorkeur heeft

  • Ontwikkelaars en softwaretesters kunnen effectief samenwerken met dezelfde tools / taal.
  • Het ondersteunt zowel websites als Windows-projecten.
  • Het elementidentificatiemechanisme is een geweldige functie in de gecodeerde gebruikersinterface. Het ondersteunt ook synchronisatie
  • De afspeelengine ondersteunt functies zoals 'WaitForControlExist', 'WaitForReadyLevel', enz.
  • Met behulp van 'Tests Agents' kunnen automatiseringstests worden uitgevoerd op externe machines
  • Automatiseringsteams kunnen geavanceerde tests ontwikkelen met behulp van een gecodeerde gebruikersinterface met een gelaagd raamwerk
  • Softwaretesters kunnen uitzonderingen vastleggen en het resultaat effectief registreren met behulp van log4net.dll
  • Gecodeerde UI-tool ondersteunt beschrijvende programmering. Hiermee kunnen softwaretesters scenario's automatiseren op basis van objecteigenschappen
  • Het ondersteunt AJAX-besturingselementen.

Gecodeerde UI-tests (CUIT) maken

Om gecodeerde UI-tests te maken, kunt u dit op de volgende manieren doen.

  • Genereren op basis van een bestaande actieopname (converteren van handmatige testopname)
  • Een geheel nieuwe gecodeerde UI-test maken
  • Code helemaal opnieuw schrijven

Inhoud van een gecodeerde UI-test

Wanneer u een gecodeerde UI-test maakt, maakt de gecodeerde UI-testbouwer een kaart. Dit omvat de te testen gebruikersinterface, testmethoden, parameters, beweringen, enz. Voor elke test wordt ook een klassenbestand gemaakt.

het dossier Inhoud Bewerkbaar
UIMap.Designer.cs Declaratiesectie UIMap Class Methods Properties Nee
UIMap.cs UIMap-klasse (gedeeltelijk) Ja
CodedUITest1.cs CodeUITest1 klasse Methode Eigenschappen Ja
UIMap.uitest De XML-kaart van de gebruikersinterface voor de test. Het wordt alleen bewerkt via de UI Map-editor Nee
  1. UIMap.Designer.cs : De ontwerper bevat de codeweergave van de UIMap. Het wordt gegenereerd wanneer een tester enige UI-interactie registreert of wanneer sommige objecten handmatig aan de UIMap worden toegevoegd.
  2. UIMap.cs : Elke wijziging of aanpassing aan de UIMap wordt in dit bestand opgeslagen. In eerste instantie is dit bestand leeg en kan het later worden ingevuld. Als wijzigingen rechtstreeks in het bestand UIMap.designer.cs worden aangebracht, zorg er dan voor dat het niet wordt vastgelegd, anders gaan alle wijzigingen verloren.
  • CodedUITest1.cs : Dit bestand bevat gecodeerde UI- testklasse , testmethoden, aanroep van beweringen en aanroepen van methoden. Alle beweringen en methoden worden standaard aangeroepen vanuit dit bestand.
  • UIMap.uitest : Het is een XML-weergave van de UIMap-klasse. Het bevat vensters, besturingselementen, eigenschappen, methoden, acties en beweringen. Het wordt alleen bewerkt via de UI Map-editor

Hoe een gecodeerde UI-test uit te voeren

Gecodeerde gebruikersinterface heeft twee verschillende manieren om een ​​test voor uw toepassing uit te voeren.

  1. Gecodeerde gebruikersinterface opnemen en afspelen of
  2. Gecodeerde gebruikersinterface Handcodering

U moet de volgende stap volgen om een ​​gecodeerde UI-test uit te voeren,

  1. Maak een gecodeerd UI-testproject
  2. Voeg een gecodeerd UI-testbestand toe
  3. Leg een reeks acties vast
  4. Controleer de waarden in UI-velden, zoals tekstvakken
  5. Bekijk de gegenereerde testcode
  6. Voeg meer acties en beweringen toe
  7. Bewerk de details van de testactiviteiten en de beweringen
  8. Voer de test uit

Best practices voor Coded UI Test (CUIT)

Hier zijn enkele praktische tips voor een gecodeerde UI-test,

  • Gebruik waar mogelijk de Coded UI Test Builder
  • Probeer het bestand UIMap.designer.cs niet rechtstreeks te wijzigen. Anders worden de wijzigingen die u in het bestand hebt aangebracht, overschreven
  • Maak uw test als een reeks geregistreerde methoden
  • Elke geregistreerde methode moet werken op een enkele pagina, formulier of dialoogvenster. Maak ook een nieuwe testmethode voor elk nieuw formulier, pagina of dialoogvenster
  • Wanneer u een methode maakt, gebruikt u in plaats van de standaardnaam een ​​betekenisvolle naam van de methode. Een betekenisvolle naam helpt het doel van de methode te identificeren
  • Beperk, indien mogelijk, elke geregistreerde methode tot minder dan 10 acties. Deze benadering maakt het gemakkelijker om een ​​methode te vervangen als de gebruikersinterface verandert.
  • Gebruik de gecodeerde UI-testbouwer om een ​​bewering te creëren. Het voegt automatisch een assertiemethode toe aan het UIMap.Designer.cs-bestand.
  • Registreer de testmethoden / beweringsmethoden opnieuw als de gebruikersinterface de getroffen secties van een bestaande testmethode wijzigt of opnieuw registreert.
  • Als u rechtstreeks codeert met de API, gebruik dan de methoden en eigenschappen in de klassen die zijn gemaakt in het bestand UIMap.Designer.cs. Deze lessen zullen uw werk betrouwbaarder en gemakkelijker maken, en zullen u helpen productiever te zijn.

Vergelijking van gecodeerde UI-test Vs. Selenium versus QTP

Hieronder vindt u de vergelijkingstabel van de gecodeerde UI-test met andere automatiseringstools.

  • Selenium ondersteunt geen WPF- of Windows-applicaties
  • Visual Studio Coded UI ondersteunt zowel het testen van Window Store-applicaties als het testen van Window Phone-applicaties. Geen enkele andere tool ondersteunt dit.
  • Test complete ondersteunt Window Application, maar vereist dat een plug-in wordt geïnstalleerd.

Overzicht:

  • Geautomatiseerde tests die uw applicatie aansturen via de gebruikersinterface (UI), worden gecodeerde UI-tests (CUIT's) genoemd.
  • Gecodeerde gebruikersinterface ondersteunt technologieën zoals webservices, Windows Phone-applicaties, webapplicaties, enz.
  • Met een gecodeerde gebruikersinterface kunnen ontwikkelaars en softwaretesters effectief samenwerken met dezelfde tools / taal
  • Inhoud of een bestand gemaakt tijdens het gebruik van de gecodeerde gebruikersinterface omvat
    • UIMap.Designer.cs
    • UIMap.cs
    • CodedUITest1.cs
    • UIMap.uitest