Udostępnij za pośrednictwem


Tworzenie kodowanego testu interfejsu użytkownika opartego na danych

Aby przetestować różne warunki, można uruchomić testów wielokrotnie przy użyciu wartości różnych parametrów.Opartych na danych interfejsu użytkownika kodowane testy są dogodny w tym celu.Określ wartości parametrów w źródle danych, a każdego wiersza w źródle danych jest iteracji kodowanych testów interfejsu użytkownika.Ogólny wynik testu będą oparte na wynik dla wszystkich iteracji.Na przykład jeśli jeden test iteracji nie powiedzie się, ogólną wynik testu jest awarii.

Wymagania

  • Visual Studio Ultimate, Visual Studio Premium

Tworzenie testu opartych na danych zakodowanych interfejsu użytkownika

Ten przykład tworzy kodowane test interfejsu użytkownika, który działa w aplikacji Kalkulator systemu Windows.Usługa razem dodaje dwie liczby i używa assertion potwierdzenie, że suma jest poprawna.Następnie obiekt assertion i wartości parametrów dla dwóch liczb są zakodowane staje się opartych na danych i przechowywane w pliku wartości rozdzielanych przecinkami (CSV).

Krok 1 - Tworzenie kodowanych testów interfejsu użytkownika

  1. Utwórz projekt.

    Utwórz projekt testu kodowane interfejsu użytkownika

  2. Wybierz do rejestrowania akcji.

    Zarejestruje akcje

  3. Otwórz aplikację kalkulatora i rozpocząć rejestrowanie testu.

    Zarejestruj akcje

  4. Dodaj 1 i 2, wstrzymać Rejestrator i wygenerować metody.Firma Microsoft będzie później Zastąp wartości danych wejściowych użytkownika z wartościami z pliku danych.

    Metoda Genetate

    Zamknij Konstruktora testu.Metoda jest dodany do testu:

            [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.AddNumbers();
    
            }
    
  5. Użyj AddNumbers() metody umożliwia sprawdzenie, czy test jest uruchomiony.Umieść kursor w metodzie badania umieszczonym, otwórz menu kontekstowe i wybierz opcję Uruchom testy.(Skrótu klawiaturowego: Ctrl + R, T).

    Wynik testu, który pokazuje, jeśli test powodzeniem lub niepowodzeniem jest wyświetlany w oknie Eksploratora testów.Aby otworzyć okno Eksploratora testów z testu menu, wybierz polecenie Windows a następnie wybierz Eksploratora testów.

  6. Ponieważ źródło danych umożliwia także wartości parametrów assertion — które są używane w teście można zweryfikować wartości oczekiwane — Przyjrzyjmy Dodaj assertion, aby sprawdzić, czy suma dwóch liczb jest poprawna.Umieść kursor w metodzie badania umieszczonym, otwórz menu kontekstowe i wybierz opcję generowania kodu dla kodowane testowanie interfejsu użytkownika, a następnie Użyj kodowanych interfejsu użytkownika testowanie konstruktora.

    Mapowanie kontrolkę tekstu w programie Kalkulator, który wyświetla sumę.

    Mapa kontroli tekst interfejsu użytkownika

  7. Dodaj obiekt assertion, który sprawdza, czy wartość sumy jest poprawna.Wybierz Wyświetlany_tekst właściwość, która ma wartość 3 a następnie wybierz Dodaj Assertion.Użyj AreEqual porównania i sprawdź, czy wartość porównania jest 3.

    Skonfiguruj potwierdzenia

  8. Po skonfigurowaniu obiekt assertion, ponownie wygenerować kod z konstruktora.Tworzy nową metodę weryfikacji.

    Generowanie metodę potwierdzenia

    Ponieważ ValidateSum Metoda weryfikuje wyniki AddNumbers metody, przenieś go do dolnej krawędzi bloku kodu.

            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.AddNumbers();
                this.UIMap.ValidateSum();
    
            }
    
  9. Należy sprawdzić, czy test jest uruchomiony przy użyciu ValidateSum() metody.Umieść kursor w metodzie badania umieszczonym, otwórz menu kontekstowe i wybierz opcję Uruchom testy.(Klawiatury skrót: Ctrl + R, T).

    W tym momencie wartości parametrów są definiowane w ich metod jako stałe.Następnie Załóżmy Tworzenie zestawu danych, aby nasze testów opartych na danych.

Krok 2 — Tworzenie zestawu danych

  1. Dodaj plik tekstowy do projektu dataDrivenSample o nazwie data.csv.

    Dodawanie pliku wartości oddzielonych przecinkami do projektu

  2. Wypełnij plik CSV zawierający następujące dane:

    Num1

    Num2

    Suma

    3

    4

    7

    5

    6

    11

    6

    8

    14

    Po dodaniu danych, plik powinno wyglądać w sposób następujący:

    Wypełnij.Plik CSV z danymi

  3. Należy zapisać plik CSV przy użyciu prawidłowego kodowania.Na pliku menu, wybierz polecenie Zaawansowane opcje zapisywania i wybierz polecenie Unicode (UTF-8 bez podpisu) — strony kodowej 65001 jako kodowania.

  4. Plik CSV, należy skopiować do katalogu wyjściowego lub nie można uruchomić test.Okno właściwości do skopiowania go.

    Wdrażanie.Plik CSV

    Teraz, kiedy zostały utworzone w zestawie danych, Przyjrzyjmy powiązać dane testu.

Krok 3 — Dodaj powiązanie źródła danych

  1. Aby powiązać ze źródłem danych, należy dodać DataSource atrybutu w istniejących [TestMethod] atrybut, który znajduje się bezpośrednio powyżej metody.

            [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\data.csv", "data#csv", DataAccessMethod.Sequential), DeploymentItem("data.csv"), 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.AddNumbers();
                this.UIMap.ValidateSum();
    
            }
    

    Źródło danych jest teraz dostępny do użycia w tej metody.

    PoradaPorada

    Zobacz Przykłady atrybutu źródła danych w Q & sekcję przykłady przy użyciu inne typy źródeł danych, takich jak XML, SQL Express i programu Excel.

  2. Uruchom test.

    Zauważ, że przebiegi testów za pomocą trzech iteracji.Jest to spowodowane źródła danych, która została powiązana zawiera trzy wiersze danych.Jednak będzie też widoczna czy test jest nadal przy użyciu wartości parametrów stałych i dodawanie 1 + 2 i 3 sumy za każdym razem.

    Firma Microsoft będzie skonfiguruj testu, aby użyć wartości w pliku źródła danych.

Krok 4 — użycie danych w kodowanych testów interfejsu użytkownika

  1. Dodaj using Microsoft.VisualStudio.TestTools.UITesting.WinControls do początku pliku CodedUITest.cs:

    using System;
    using System.Collections.Generic;
    using System.Text.RegularExpressions;
    using System.Windows.Input;
    using System.Windows.Forms;
    using System.Drawing;
    using Microsoft.VisualStudio.TestTools.UITesting;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using Microsoft.VisualStudio.TestTools.UITest.Extension;
    using Keyboard = Microsoft.VisualStudio.TestTools.UITesting.Keyboard;
    using Microsoft.VisualStudio.TestTools.UITesting.WinControls;
    
  2. Dodaj TestContext.DataRow[] w CodedUITestMethod1() metody, które będą stosowane wartości ze źródła danych.Wartości źródła danych musi zostać zastąpiona w stałych przypisany do kontrolki UIMap przy użyciu formantów SearchProperties:

            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.UICalculatorWindow.UIItemWindow.UIItem1Button.SearchProperties[WinButton.PropertyNames.Name] = TestContext.DataRow["Num1"].ToString(); 
                this.UIMap.UICalculatorWindow.UIItemWindow21.UIItem2Button.SearchProperties[WinButton.PropertyNames.Name] = TestContext.DataRow["Num2"].ToString();
                this.UIMap.AddNumbers();
                this.UIMap.ValidateSumExpectedValues.UIItem2TextDisplayText = TestContext.DataRow["Sum"].ToString();
                this.UIMap.ValidateSum();
    
            }
    

    Aby ustalić właściwości wyszukiwania, które dane do kodu, za pomocą edytora kodowanych testów interfejsu użytkownika.

    • Otwórz plik UIMap.uitest.

      Otwórz Edytor testu kodowane interfejsu użytkownika

    • Wybierz akcję interfejsu użytkownika i obserwować odpowiadające im mapowanie kontroli interfejsu użytkownika.Zwróć uwagę, jak mapowanie odnosi się do kodu, na przykład this.UIMap.UICalculatorWindow.UIItemWindow.UIItem1Button.

      Za pomocą edytora kodowanych testów interfejsu użytkownika z kodu

    • W oknie dialogowym właściwości Otwórz Właściwości wyszukiwania.Właściwości wyszukiwania Nazwa wartość to, co jest zmieniany w kodzie przy użyciu źródła danych.Na przykład SearchProperties jest przypisany wartości w pierwszej kolumnie każdy wiersz danych: UIItem1Button.SearchProperties[WinButton.PropertyNames.Name] = TestContext.DataRow["Num1"].ToString();.Dla trzech iteracji, zmieni się ten test Nazwa wartości właściwości wyszukiwania do 3, a następnie 5, a na końcu 6.

      Użyj właściwości wyszukiwania, aby pomagać w kodowania

  3. Zapisz rozwiązanie.

Krok 5 — Uruchom test opartych na danych

  • Sprawdź, czy test jest teraz opartych na danych, należy ponownie uruchomić test.

    Powinno być widoczne przebieg testu za pomocą trzech iteracji, używając wartości z pliku CSV.Sprawdzanie poprawności powinno ono działać również i test powinien być wyświetlany jako przekazanym Eksploratora testów.

Wskazówki

Aby uzyskać dodatkowe informacje, zobacz testowania dla dostarczania ciągłego z programu Visual Studio 2012 w rozdziale 2: testowania jednostek: testowanie wewnątrz i testowania dla dostarczania ciągłego z programu Visual Studio 2012 w rozdziale 5: Automatyzowanie testów systemowych

Pytania i odpowiedzi

Jakie są atrybuty źródła danych na inne typy źródeł danych, takich jak SQL Express lub XML?

Skopiować je do kodu i wprowadzając niezbędne dostosowania służy przykładowe ciągi źródła danych w tabeli poniżej.

Typ źródła daty

Atrybutu źródła danych

CSV

[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\data.csv", "data#csv", DataAccessMethod.Sequential), DeploymentItem("data.csv"), TestMethod]

Excel

DataSource("System.Data.Odbc", "Dsn=ExcelFiles;Driver={Microsoft Excel Driver (*.xls)};dbq=|DataDirectory|\\Data.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), DeploymentItem("Sheet1.xls"), TestMethod]

Przypadek testowy w programie Team Foundation Server

[DataSource("Microsoft.VisualStudio.TestTools.DataSource.TestCase", "http://vlm13261329:8080/tfs/DefaultCollection;Agile", "30", DataAccessMethod.Sequential), TestMethod]

XML

[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\data.xml", "Iterations", DataAccessMethod.Sequential), DeploymentItem("data.xml"), TestMethod]

SQL Express

[DataSource("System.Data.SqlClient", "Data Source=.\\sqlexpress;Initial Catalog=tempdb;Integrated Security=True", "Data", DataAccessMethod.Sequential), TestMethod]

Pyt mogę używać testów opartych na danych na mojej aplikacji systemu Windows Phone?

A: Yes.Opartych na danych testów kodowanych interfejsu użytkownika dla systemu Windows Phone można definiować przy użyciu atrybutu DataRow metody testu.W przykładzie następujących, x i y wartości 1 i 2 można używać do pierwszej iteracji i wartość -1 -2 dla drugiego iteracji testu.

[DataRow(1, 2, DisplayName = "Add positive numbers")]
[DataRow(-1, -2, DisplayName = "Add negative numbers")]
[TestMethod]
public void DataDrivingDemo_MyTestMethod(int x, int y)

Aby uzyskać więcej informacji, zobacz opartych na danych użyj kodowanych testów interfejsu użytkownika w aplikacji Windows Phone.

Pyt.: Dlaczego nie można zmodyfikować kod w pliku UIMap.Designer

ODP kod wprowadzonych zmian w pliku UIMapDesigner.cs zostaną zastąpione za każdym razem, gdy generowanie kodu za pomocą UIMap - kodowanych konstruktora testów interfejsu użytkownika.W tym przykładzie, a w większości przypadków można nawiązać zmiany kodu, niezbędne do włączenia test używać źródła danych do pliku kodu źródłowego testu (czyli CodedUITest1.cs).

Jeśli trzeba zmodyfikować nagraną metodę, należy skopiować ją do pliku UIMap.cs i zmienić jej nazwę.Plik UIMap.cs może służyć do zastępowania metod i właściwości w pliku UIMapDesigner.cs.Musisz usunąć odwołanie do oryginalnej metody w pliku Coded UITest.cs, a następnie zastąpić je zmienioną nazwą metody.

Zobacz też

Informacje

UIMap

Assert

Koncepcje

Weryfikowanie kodu przy użyciu automatyzacji interfejsu użytkownika

Najlepsze praktyki dotyczące kodowanych testów interfejsu użytkownika

Obsługiwane konfiguracje oraz platformy zakodowanych testów interfejsu użytkownika i nagrywania akcji

Inne zasoby

Tworzenie kodowane testy interfejsu użytkownika