Udostępnij za pośrednictwem


Wstrzymywanie kodowanych testów użytkownika dla określonych zdarzeń podczas odtwarzania

W zakodowanej odtwarzania test interfejsu użytkownika można poinstruować test czekać na niektóre zdarzenia, takie jak okna są wyświetlane, pasek postępu zniknięcie i tak dalej.Aby to zrobić, użyj odpowiedniej metody UITestControl.WaitForControlXXX(), zgodnie z opisem w poniższej tabeli.Na przykład kodowane jako test interfejsu użytkownika, który czeka, aż formantu, który ma zostać włączone za pomocą WaitForControlEnabled metoda, zobacz Wskazówki: tworzenie, edytowanie i obsługa kodowanego testu interfejsu użytkownika.

Wymagania

  • Visual Studio Ultimate, Visual Studio Premium
PoradaPorada

Można również dodać opóźnienia poprzedzające działania, korzystając z edytora kodowane testów interfejsu użytkownika.Aby uzyskać więcej informacji, zobacz Porady: wstawianie opóźnienia przed akcją UI za pomocą edytora kodowanego testu interfejsu użytkownika.

Metody UITestControl.WaitForControlXXX()

Metody UITestControl.WaitForControlXXX()

Opis

[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlReady ]

Czeka na formantu ma być gotowy do przyjęcia, myszy i klawiszy na klawiaturze.Silnik niejawnie wywołuje takiego interfejsu API dla wszystkich akcji, poczekaj, aż formant będzie gotowa przed wykonaniem każdej operacji.Jednak w niektórych ezoterycznych scenariuszu może mieć do czynienia z jawnym wywołaniem.

[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlEnabled ]

Czeka na formant ma być włączony, jeśli Kreator robi niektóre asynchronicznego sprawdzania poprawności danych wejściowych przez nawiązywanie połączeń z serwerem.Na przykład, możesz metoda czekać na Dalej przycisk kreatora, aby być (włączone).Na przykład tej metody, zobacz Wskazówki: tworzenie, edytowanie i obsługa kodowanego testu interfejsu użytkownika.

[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlExist ]

Czeka na formant ma się pojawiać w interfejsie użytkownika.Na przykład po aplikacji zrobił sprawdzania poprawności parametrów są spodziewa się okno dialogowe błędu.Czas wykonywania sprawdzania poprawności jest zmienna.Ta metoda umożliwia poczekaj, aż okno dialogowe błędu.

[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlNotExist ]

Czeka na formancie znikną z interfejsu użytkownika.Na przykład można czekać na zniknięcie pasek postępu.

[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlPropertyEqual(System.String,System.Object) ]

Czeka na określonej właściwości formantu Aby mieć danej wartości.Na przykład czekać na tekst stanu zmienić na Sporządzono.

[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlPropertyNotEqual(System.String,System.Object) ]

Czeka na określonej właściwości formantu aby przeciwnej określonej wartości.Na przykład, poczekać na pola edycji nie może być tylko do odczytu, to znaczy edytowalny.

[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlCondition(System.Predicate{Microsoft.VisualStudio.TestTools.UITesting.UITestControl}) ]

Czeka dla określonego predykat zwraca się true.To może służyć do złożonych oczekiwania operacji (np. warunków OR) na użycie danego formantu.Na przykład, może czekać, aż tekst stanie jest udało się lub nie powiodło się jak pokazano w poniższym kodzie:

// Define the method to evaluate the condition 
private static bool IsStatusDone(UITestControl control) 
{ 
    WinText statusText = control as WinText; 
    return statusText.DisplayText == "Succeeded" || statusText.DisplayText == "Failed"; 
} 
// In test method, wait till the method evaluates to true 
statusText.WaitForControlCondition(IsStatusDone);

[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForCondition``1(``0,System.Predicate{``0}) ]

Poprzednie metody to wystąpienie metody UITestControl.Ta metoda jest statyczna metoda.Ta metoda też czeka na określony predykat stanie się true , ale może służyć do złożonych oczekiwania operacji (np. warunków OR) dla kilku formantów.Na przykład, może czekać, aż tekst stanie jest udało się lub dopóki nie pojawi się komunikat o błędzie, jak pokazano w poniższym kodzie:

// Define the method to evaluate the condition 
private static bool IsStatusDoneOrError(UITestControl[] controls) 
{ 
    WinText statusText = controls[0] as WinText; 
    WinWindow errorDialog = controls[1] as WinWindow; 
    return statusText.DisplayText == "Succeeded" || errorDialog.Exists; 
} 
// In test method, wait till the method evaluates to true 
UITestControl.WaitForCondition<UITestControl[]>(new UITestControl[] { statusText, errorDialog }, IsStatusDoneOrError); 

Wszystkie te metody mają po zachowanie:

  • Metody zwracają wartość PRAWDA, jeśli czas oczekiwania przekracza udanych, jak i wartość false, jeśli czas oczekiwania nie powiodło się.

  • Niejawna limit czasu dla operacji oczekiwania jest określony przez WaitForReadyTimeout właściwość.Wartością domyślną tej właściwości wynosi 60 000 milisekund (jednej minuty).

  • Metody masz przeciążenie podjęcie jawne limit czasu w milisekundach.Jednak podczas operacji oczekiwania skutkuje niejawnego wyszukiwania dla formantu lub, jeżeli aplikacja jest zajęta, czas rzeczywisty oczekiwania może być więcej niż określony limit czasu.

Poprzednie funkcje są potężnym i elastycznym i powinny spełniać prawie wszystkie warunki.Jednakże w przypadku tych metod nie spełniają potrzeb i trzeba albo kod Wait, lub Sleep w kodzie, zaleca się użycie Playback.Wait() zamiast Thread.Sleep() interfejsu API.Przyczyny tego są:

  • Można użyć ThinkTimeMultiplierwłaściwość, aby modyfikować za pomocą trybu uśpienia.Domyślnie ta zmienna ma wartość 1, ale można zwiększać lub zmniejszać, to aby zmienić czas oczekiwania w całym kodzie.Na przykład jeśli testujesz specjalnie nad powolnej sieci lub w innym przypadku z niską wydajnością, można zmienić tej zmiennej w jednym miejscu (lub nawet w pliku konfiguracyjnym), 1.5, aby dodać, że 50% dodatkowych czekać na wszystkich miejscach.

  • Playback.Wait() wewnętrznie wywołuje Thread.Sleep() (po powyżej obliczeń) w mniejsze kawałki w pętli for podczas sprawdzania operacji cancel\break użytkownika.Innymi słowy Playback.Wait() pozwala anulować odtwarzania przed końcem podczas oczekiwania, podczas gdy tryb uśpienia może nie lub wyjątek.

PoradaPorada

Edytor kodowane Test interfejs użytkownika pozwala łatwo modyfikować zakodowanej testów interfejsu użytkownika.Korzystając z edytora kodowane przetestować interfejsu użytkownika, można zlokalizować, przeglądać i edytować swoje metody badań.Można również edytować działania interfejsu użytkownika i odpowiadającymi im formantami w planie kontroli interfejsu użytkownika.Aby uzyskać więcej informacji, zobacz Edycja zakodowanych testów interfejsu użytkownika za pomocą edytora kodowanych testów interfejsu użytkownika.

Wskazówki

Aby uzyskać więcej informacji, zobacz testów na nieprzerwane z Visual Studio 2012-Rozdział 5: Automatyzacja testy systemu

Zobacz też

Zadania

Wskazówki: tworzenie, edytowanie i obsługa kodowanego testu interfejsu użytkownika

Porady: wstawianie opóźnienia przed akcją UI za pomocą edytora kodowanego testu interfejsu użytkownika

Koncepcje

Weryfikowanie kodu przy użyciu automatyzacji interfejsu użytkownika

Anatomia kodowanego testu interfejsu użytkownika

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

Inne zasoby

Tworzenie zakodowanej testy interfejsu użytkownika