Názorný postup: Vytváření, úpravy a udržování kódované Test uživatelského rozhraní
V tomto návodu vytvoříte jednoduchou aplikaci Windows Presentation Foundation (WPF) a ukazuje, jak vytvořit, upravit a udržovat kódované test uživatelského rozhraní.Návod obsahuje řešení pro opravování testů, které jsou podle různých problémů časování a ovládací prvek refaktoring.
Požadavky
V tomto návodu budete potřebovat:
- Visual Studio Ultimate nebo Visual Studio Premium.
Vytvoření jednoduchého WPF aplikace
Na soubor nabídky, přejděte na příkaz Novýa potom vyberte projektu.
Zobrazí se dialogové okno Nový projekt.
V nainstalovat podokně rozbalte **Visual C#**a potom vyberte Windows.
Nad prostředním podokně ověřte, že cílový rámec rozevíracího seznamu je nastavena na .NET Framework 4.5.
V prostředním podokně vyberte Aplikace WPF šablony.
V jméno textové pole, zadejte SimpleWPFApp.
Vyberte složku, kde bude projekt uložit.V umístění text zadejte název složky.
Klepněte na tlačítko OK.
WPF Designer pro aplikaci Visual Studio otevře a zobrazí MainWindow projektu.
Pokud panel není otevřený, otevřete jej.Zvolte zobrazení nabídky a pak zvolte nástrojů.
Ve skupinovém rámečku Všech ovládacích prvků WPF bodu, přetáhněte tlačítko, CheckBox a ProgressBar na MainWindow v návrhové ploše ovládací prvek.
Vyberte ovládací prvek tlačítko.V okně Vlastnosti změňte hodnotu obsahu vlastnost z tlačítko na Start.
Vyberte ovládací prvek ProgressBar.V okně Vlastnosti změňte hodnotu pro maximální vlastnost z 100 na 1000.
Vyberte ovládací prvek Checkbox.V okně vlastnosti zrušte zaškrtnutí políčka IsEnabled vlastnost.
Poklepejte na tlačítko Přidat vyberte událost.
MainWindow.xmal.cs se zobrazí v editoru kódu s kurzorem v nové události button1_Choose.
V horní části třídy MainWindow přidáte delegáta.Delegát se použije pro indikátor průběhu.Chcete-li přidat delegáta, přidejte následující kód:
private delegate void ProgressBarDelegate( System.Windows.DependencyProperty dp, Object value);
V metodě button1_Choose přidejte následující kód:
double progress = 0; ProgressBarDelegate updatePbDelegate = new ProgressBarDelegate(progressBar1.SetValue); do { progress ++; Dispatcher.Invoke(updatePbDelegate, System.Windows.Threading.DispatcherPriority.Background, new object[] { ProgressBar.ValueProperty, progress }); progressBar1.Value = progress; } while (progressBar1.Value != progressBar1.Maximum); checkBox1.IsEnabled = true;
Ověřte správně spustí aplikace WPF
Na ladění přejděte na příkaz Spuštění ladění nebo stiskněte klávesu F5.
Zvolte Start.
Během několika sekund indikátor průběhu musí být dokončen na 100 %.Zaškrtávací políčko řízení je nyní povoleno.
Zavřete SimpleWPFApp.
Vytvořit a spustit Test kódované uživatelského rozhraní pro SimpleWPFApp
V okně Průzkumník řešení klikněte pravým tlačítkem myši řešení, zvolte Přidat a potom vyberte Nový projekt.
Zobrazí se dialogové okno Přidat nový projekt.
V nainstalovat podokně rozbalte **Visual C#**a potom vyberte Test.
V prostředním podokně vyberte Kódované projekt testů UI šablony.
Klepněte na tlačítko OK.
V okně Průzkumník řešení nové kódované UI zkušební projekt s názvem CodedUITestProject1 je přidán do řešení...
Generování kódu pro kódované testovací uživatelské rozhraní zobrazí se dialogové okno.
Vyberte Zaznamenat akce, upravte mapování uživatelského rozhraní nebo přidat kontrolní výrazy a vyberte OK.
UIMap – kódované Tvůrce testu UI se zobrazí, a minimalizovat okno aplikace Visual Studio.
Další informace o možnosti v dialogovém okně naleznete v tématu Vytváření kódované testy uživatelského rozhraní.
Vyhledání a spuštění aplikace SimpleWPFApp, kterou jste vytvořili dříve.Ve výchozím nastavení aplikace bude umístěn na C:\Users\ <username> \Documents\Visual Studio 2012\Projects\SimpleWPFApp\SimpleWPFApp\bin\Debug\SimpleWPFApp.exe
Vytvoření zástupce na ploše pro aplikaci SimpleWPFApp.Pravým tlačítkem myši na SimpleWPFApp.exe a zvolte kopie.Na pracovní ploše klepněte pravým tlačítkem myši a zvolte Vložit zástupce.
Tip
Zástupce aplikace usnadňuje přidání nebo úprava testy kódované uživatelského rozhraní aplikace, protože umožňuje snadno spustit aplikace.Není nutné přecházet k němu.Budete muset znovu spustit aplikace v tomto návodu.
Zvolte Spustit záznam na UIMap – kódované Tvůrce testu uživatelského rozhraní.Během několika sekund bude připraven Tvůrce kódované Test uživatelského rozhraní.
Spusťte SimpleWPFApp.exe pomocí zástupce na ploše.
Na SimpleWPFApp, zvolte Start.
Během několika sekund indikátor průběhu musí být dokončen na 100 %.Zaškrtávací políčko řízení je nyní povoleno.
Zaškrtněte políčko ovládacího prvku CheckBox.
Ukončete aplikaci SimpleWPFApp.
Na UIMap - kódované Tvůrce testu UI, zvolte Generovat kód.
Zadejte název metody SimpleAppTest a zvolte Přidat a generovat.Během několika sekund test kódované uživatelského rozhraní zobrazí a je přidán do řešení.
UIMap – kódované zavřete Tvůrce testu uživatelského rozhraní.
Soubor CodedUITest1.cs se zobrazí v editoru kódu.
Spustit Test kódované uživatelského rozhraní
Vyhledejte v souboru CodedUITest1.cs CodedUITestMethod metodu, klepněte pravým tlačítkem myši a vyberte Spustit testy.
V průběhu kódované testovací uživatelské rozhraní je zobrazen SimpleWPFApp.To se provádí kroky, které v předchozí proceduře.Však při zkoušce se pokusí zaškrtněte políčko ovládacího prvku CheckBox, okno výsledky testování ukazuje, že test selhal.To je proto, že test se pokouší zaškrtněte políčko ale si není vědoma, že ovládací prvek CheckBox je zakázáno, dokud indikátor průběhu je dokončen na 100 %.Je možné vyřešit podobné problémy s použitím různých a UITestControl.WaitForControlXXX() metod, které jsou k dispozici pro kódované testování uživatelského rozhraní.Další postup si ukážeme použití WaitForControlEnabled() metodu k opravě problému, který způsobil tento test nezdaří.Další informace naleznete v tématu Provedení zkoušky uživatelského rozhraní pro určité události čekání kódované během přehrávání.
Upravit a znovu spusťte Test kódované uživatelského rozhraní
V okně Výsledky testování tlačítkem selhal test a klepněte na Výsledků pro testování zobrazit podrobnosti o.
CodedUITestMethod1 [výsledky] se zobrazí.
V Trasování zásobníku chyb oddílu, vyberte první odkaz vedle TestProject1.UIMap.SimpleAppTest().
Otevře soubor UIMap.Designer.cs s bodem chyba zvýrazněný kód:
// Select 'CheckBox' check box uICheckBoxCheckBox.Checked = this.SimpleAppTestParams.UICheckBoxCheckBoxChecked;
Chcete-li tento problém vyřešit, můžete provést kódované UI test čekat na povolení před pokračováním k tomuto řádku pomocí ovládacího prvku CheckBox WaitForControlEnabled() metoda.
Upozornění Úpravy souboru UIMap.Designer.cs.Při každém generování kódu pomocí UIMap - kódované Tvůrce testu uživatelského rozhraní, budou přepsány změny kódu, které jste provedli v souboru UIMapDesigner.cs.Máte-li upravit zaznamenané metodu, musíte zkopírovat do souboru UIMap.cs a přejmenujte jej.Soubor UIMap.cs lze použít k přepsání metody a vlastnosti v souboru UIMapDesigner.cs.Je třeba odebrat odkaz na původní metody v souboru UITest.cs kódované a nahraďte název přejmenované metody.
V Průzkumníku vyhledejte UIMap.uitest v kódované zkušebního projektu uživatelského rozhraní.
Otevření místní nabídky pro UIMap.uitest a zvolte Open.
Kódované testovací uživatelské rozhraní je zobrazeném v editoru testovat UI kódovány.Nyní můžete zobrazit a upravit kódované test uživatelského rozhraní.
V UI akce podokně, vyberte znovu zkompiluje zkušební metody, které chcete přesunout do souboru UIMap.cs nebo UIMap.vb pro usnadnění funkce vlastní kód, který nesmí být přepsány při testování kódu.
Zvolte Přesunout kód tlačítko na panelu nástrojů kódované Editor uživatelského rozhraní Test.
Zobrazí se dialogové okno Microsoft Visual Studio.Program jej upozorní, že metoda bude přesunuta ze souboru UIMap.uitest do souboru UIMap.cs a že jste již nebude možné upravit metodu pomocí Editoru uživatelského rozhraní Test kódované.Zvolte Ano.
Zkušební metoda je odebrána ze souboru UIMap.uitest a již se zobrazí v podokně Akce uživatelského rozhraní.Úprava přesunutý testovacího souboru, otevřete soubor UIMap.cs z Průzkumníku řešení.
Na Visual Studio nástrojů, zvolte Uložit.
Aktualizace na zkušební metody jsou uloženy v souboru UIMap.Designer.
Upozornění Po přesunutí metody je již nelze upravovat pomocí editoru kódované Test uživatelského rozhraní.Musíte přidat vlastní kód a udržovat ji pomocí editoru kódu.
Přejmenovat metody z SimpleAppTest() kModifiedSimpleAppTest()
Přidejte následující do souboru pomocí příkazu:
using Microsoft.VisualStudio.TestTools.UITesting.WpfControls;
Přidejte následující WaitForControlEnabled() metoda před problematický řádek kódu, které jsou identifikovány dříve:
uICheckBoxCheckBox.WaitForControlEnabled(); // Select 'CheckBox' check box uICheckBoxCheckBox.Checked = this.SimpleAppTestParams.UICheckBoxCheckBoxChecked;
Vyhledejte v souboru CodedUITest1.cs CodedUITestMethod metoda a buď poznámky, nebo přejmenovávat odkaz na původní metody SimpleAppTest() a nahradit ho novým ModifiedSimpleAppTest():
[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. // For more information on generated code, see https://go.microsoft.com/fwlink/?LinkId=179463 //this.UIMap.SimpleAppTest(); this.UIMap.ModifiedSimpleAppTest(); }
V nabídce Sestavení vyberte položku Sestavení řešení.
Klepněte pravým tlačítkem myši CodedUITestMethod metodu a vyberte Spustit testy.
Tentokrát kódované UI test úspěšně dokončí všechny kroky v testu a předaná se zobrazí v okně Výsledky testování.
Refaktorovat ovládacího prvku v SimpleWPFApp
V souboru MainWindow.xaml v návrháři vyberte ovládací prvek tlačítko.
V horní části okna vlastnosti, vyberte hodnotu button1 vedle tlačítko a změňte hodnotu na buttonA.
V nabídce Sestavení vyberte položku Sestavení řešení.
Na Test přejděte na příkaz Windows a pak zvolte Zobrazení Test.
Vyberte CodedUITestMethod1 pod Název Test sloupec a potom zvolte Spustit v panelu nástrojů.
Test nezdaří, protože kódované testovací uživatelské rozhraní nelze najít ovládací prvek tlačítko, který byl původně mapována v UIMap jako button1.Refaktoring může ovlivnit kódované UI zkoušky tímto způsobem.
V okně Výsledky testování tlačítkem selhal test a klepněte na Výsledků pro testování zobrazit podrobnosti o.
CodedUITestMethod1 [výsledky] se zobrazí.
V Trasování zásobníku chyb oddílu, vyberte první odkaz vedle TestProject1.UIMpa.SimpleAppTest().
Otevře se soubor UIMap.Designer.cs.Bod chyby zvýrazněna v kódu:
// Choose 'Start' button Mouse.Click(uIStartButton, new Point(27, 10));
Všimněte si, že použití řádku kódu v tomto postupu výše UiStartButton, což je název UIMap, dříve, než byl refactored.
Tento problém vyřešit, je UIMap přidat refactored ovládací prvek pomocí Tvůrce kódované Test uživatelského rozhraní.Chcete-li aktualizovat testovacího kódu pomocí kódu, jak je ukázáno v následujícím postupu.
Mapování Refactored řízení a upravit a znovu spusťte Test kódované uživatelského rozhraní
V souboru CodedUITest1.cs v CodedUITestMethod1() metodu, klepněte pravým tlačítkem myši, vyberte Generování kódu pro kódované testovací uživatelské rozhraní a pak zvolte Použití kódované UI Test Tvůrce.
UIMap – zobrazí se Tvůrce testu UI Coded.
Pomocí zástupce na ploše, kterou jste vytvořili dříve, spuštění aplikace SimpleWPFApp, kterou jste vytvořili dříve.
Na UIMap – Tvůrce testu UI Coded, tažením nástrojem křížek Start na SimpleWPFApp na tlačítko.
Start tlačítko je ohraničen modrý obdélník a Tvůrce kódované UI Test trvá několik sekund pro zpracování dat pro vybraný ovládací prvek a zobrazí vlastnosti ovládacích prvků.Všimněte si, že AutomationUId s názvem buttonA.
V dialogovém okně Vlastnosti pro ovládací prvek vyberte šipku v levém horním rohu rozbalte mapování uživatelského rozhraní ovládacího prvku.Všimněte si, že UIStartButton1 je zaškrtnuto.
V panelu nástrojů, zvolte ovládací prvek přidat do uživatelského rozhraní ovládacího prvku mapy.
Stav v dolní části okna ověří akce zobrazením vybraný ovládací prvek byl přidán do mapování uživatelského rozhraní ovládacího prvku.
Na UIMap – Tvůrce testu UI Coded, zvolte Generovat kód.
Tvůrce testu Coded uživatelského rozhraní – generovat kód se zobrazí s poznámku označující, že žádné nové metody je nutné a že kód bude vygenerován pouze změny mapování uživatelského rozhraní ovládacího prvku.
Zvolte Generovat.
Zavřete SimpleWPFApp.exe.
Zavřete UIMap – Tvůrce testu kódované uživatelského rozhraní.
UIMap – Tvůrce testu UI Coded trvá několik sekund zpracovat změny mapování uživatelského rozhraní ovládacího prvku.
V okně Průzkumník řešení otevřete soubor UIMap.Designer.cs.
V souboru UIMap.Designer.cs, pod konstruktor třídy generovaný kód UIMainWindow, rozbalte Vlastnosti oblasti.Všimněte si, že public WpfButton UIStartButton1 byla přidána vlastnost.
Ve vlastnosti UIStartButton1 rozbalte oblast kritérií hledání.Oznámení SearchProperties je nastavena na "buttonA":
public WpfButton UIStartButton1 { get { if ((this.mUIStartButton1 == null)) { this.mUIStartButton1 = new WpfButton(this); #region Search Criteria this.mUIStartButton1.SearchProperties[WpfButton.PropertyNames.AutomationId] = "buttonA"; this.mUIStartButton1.WindowTitles.Add("MainWindow"); #endregion } return this.mUIStartButton1; } }
Nyní můžete upravit kódované UI test použití nově připojených ovládacího prvku.Jak bylo uvedeno v předchozím postupu v případě, že chcete přepsat jakékoliv metody nebo vlastnosti v kódované testovací uživatelské rozhraní, musíte tak učinit v souboru UIMap.cs.
V souboru UIMap.cs přidejte konstruktor a zadejte SearchProperties vlastnost UIStartButton vlastnost, kterou chcete použít AutomationID vlastnosti s hodnotou"buttonA":
public UIMap() { this.UIMainWindowWindow.UIStartButton.SearchProperties[WpfButton.PropertyNames.AutomationId] = "buttonA"; }
V nabídce Sestavení vyberte položku Sestavení řešení.
Test zobrazení, vyberte CodedUITestMethod1 pod Název Test sloupec, klepněte v panelu nástrojů klepněte na tlačítko Spustit.
Tentokrát kódované UI test úspěšně dokončí všechny kroky v testu.V okně Výsledky testu se zobrazí stav předaná.
Externí zdroje
Videa
Ruce na laboratoře
Nejčastější dotazy
Kódované testy uživatelského rozhraní FAQ - 1
Kódované testy uživatelského rozhraní FAQ -2
Fórum
Visual Studio uživatelského rozhraní automatizace testování (včetně CodedUI)
Viz také
Koncepty
Ověřování kódu pomocí programových testů uživatelského rozhraní
Podporované konfigurace a platformy pro programové testy uživatelského rozhraní a zaznamenávání akcí