Compartilhar via


Testando aplicativos da Windows Store com testes de UI codificados

Use testes de IU codificados para verificar os aplicativos da Windows Store.

Criar um aplicativo simples da Windows Store

  1. Se desejar executar testes de IU codificados no aplicativo da Windows Store baseado em XAML, é preciso definir uma propriedade de automação única que identifique cada controle.

    No menu Ferramentas, aponte para Opções e escolha Editor de Texto, XAML e Diversos.

    Marque a caixa de seleção para nomear automaticamente elementos interativos na criação.

    Opções diversas XAML

  2. Crie um novo projeto para um aplicativo da Windows Store baseado em XAML usando um modelo Visual C# ou Visual Basic.

    Criar um aplicativo da Windows Store em branco (XAML)

  3. No Gerenciador de Soluções, abra MainPage.xaml.Na Caixa de Ferramentas, arraste um controle de botão e um controle de caixa de texto para a superfície do design.

    Criar um aplicativo da Windows Store

  4. Clique duas vezes no controle de botão e adicione o código a seguir:

    private void button_Click_1(object sender, RoutedEventArgs e)
    {
        this.textBox.Text = this.button.Name;
    }
    
    Public NotInheritable Class MainPage
        Inherits Page
    
        Private Sub button_Click(sender As Object, e As RoutedEventArgs) Handles Button.Click
            Me.textBox.Text = Me.button.Name
        End Sub
    End Class
    
  5. Pressione F5 para executar o aplicativo da Windows Store.

Crie e execute um teste de IU codificado no aplicativo da Windows Store

  1. Crie um novo projeto de teste de IU codificado para o aplicativo da Windows Store.

    Novo projeto de interface do usuário tet codificado (aplicativos da Windows Store)

  2. Escolha editar o mapa de interface do usuário usando a ferramenta de fios.

    Escolha o mapa de interface do usuário de editar ou adicionar asserções

  3. Use a ferramenta de fios no Construtor de Teste de IU Codificado para selecionar o bloco de aplicativos, clique com o botão direito do mouse em AutomationId e escolha Copiar Valor para a Área de Transferência.O valor na área de transferência será usado mais tarde para gravar a ação para ativar o aplicativo para teste.

    Copiar AutomationId para área de transferência

  4. No aplicativo da Windows Store em execução, use a ferramenta de fios para selecionar o controle de botão e o controle de caixa de texto.Depois de adicionar cada controle, escolha o botão Adicionar controle ao mapa de controle da IU na barra de ferramentas do Construtor de Teste de IU Codificado.

    Adicionar o controle ao mapa de interface do usuário

  5. Escolha o botão Gerar Código na barra de ferramentas do Construtor de Teste de IU Codificado e escolha Gerar para criar código para alterações no mapa de controle da IU.

    Gerar código para o mapa de interface do usuário

  6. Escolha o botão para definir um valor na caixa de texto.

    Clique em controle de botão para definir o valor da caixa de texto

  7. Use a ferramenta de fios para selecionar o controle de caixa de texto e selecione a propriedade Texto.

    Selecione a propriedade Text

  8. Adicione uma asserção.Ela será usada no teste para verificar se o valor está correto.

    Escolha testbox com fios e adicionar asserção

  9. Adicione e gere o código para a asserção.

    Gerar código para a declaração de caixa de texto

  10. Visual C#

    No Gerenciador de Soluções, abra o arquivo UIMap.Designer.cs para exibir o código adicionado aos controles e ao método assert.

    Visual Basic

    No Gerenciador de Soluções, abra o arquivo CodedUITest1.vb e, no código do método de teste CodedUITestMethod1(), clique com o botão direito do mouse na chamada para o método de asserção automaticamente adicionado Me.UIMap.AssertMethod1() e escolha Ir para Definição.Isso abrirá o arquivo UIMap.Designer.vb no editor de código para ser possível exibir o código adicionado aos controles e ao método assert.

    Observação de cuidadoCuidado

    Não modifique o arquivo UIMap.designer.cs ou UIMap.Designer.vb diretamente.Se fizer isso, as alterações no arquivo serão substituídas sempre que o teste for gerado.

    Método assert

    public void AssertMethod1()
    {
        #region Variable Declarations
        XamlEdit uITextBoxEdit = this.UIApp1Window.UITextBoxEdit;
        #endregion
    
        // Verify that the 'Text' property of 'textBox' text box equals 'button'
        Assert.AreEqual(this.AssertMethod3ExpectedValues.UITextBoxEditText, uITextBoxEdit.Text);
    }
    
    Public Sub AssertMethod1()
        Dim uITextBoxEdit As XamlEdit = Me.UIApp2Window.UITextBoxEdit
    
        'Verify that the 'Text' property of 'textBox' text box equals 'button'
        Assert.AreEqual(Me.AssertMethod1ExpectedValues.UITextBoxEditText, uITextBoxEdit.Text)
    End Sub
    

    Controles

    #region Properties
    public XamlButton UIButtonButton
    {
        get
        {
            if ((this.mUIButtonButton == null))
            {
                this.mUIButtonButton = new XamlButton(this);
                #region Search Criteria
                this.mUIButtonButton.SearchProperties[XamlButton.PropertyNames.AutomationId] = "button";
                this.mUIButtonButton.WindowTitles.Add("App1");
                #endregion
            }
            return this.mUIButtonButton;
        }
    }
    
    public XamlEdit UITextBoxEdit
    {
        get
        {
            if ((this.mUITextBoxEdit == null))
            {
                this.mUITextBoxEdit = new XamlEdit(this);
                #region Search Criteria
                this.mUITextBoxEdit.SearchProperties[XamlEdit.PropertyNames.AutomationId] = "textBox";
                this.mUITextBoxEdit.WindowTitles.Add("App1");
                #endregion
            }
            return this.mUITextBoxEdit;
        }
    }
    #endregion
    
    #region Fields
    private XamlButton mUIButtonButton;
    
    private XamlEdit mUITextBoxEdit;
    #endregion
    
    #Region "Properties"
    Public ReadOnly Property UIButtonButton() As XamlButton
        Get
            If (Me.mUIButtonButton Is Nothing) Then
                Me.mUIButtonButton = New XamlButton(Me)
                Me.mUIButtonButton.SearchProperties(XamlButton.PropertyNames.AutomationId) = "button"
                Me.mUIButtonButton.WindowTitles.Add("App2")
            End If
            Return Me.mUIButtonButton
        End Get
    End Property
    
    Public ReadOnly Property UITextBoxEdit() As XamlEdit
        Get
            If (Me.mUITextBoxEdit Is Nothing) Then
                Me.mUITextBoxEdit = New XamlEdit(Me)
                Me.mUITextBoxEdit.SearchProperties(XamlEdit.PropertyNames.AutomationId) = "textBox"
                Me.mUITextBoxEdit.WindowTitles.Add("App2")
            End If
            Return Me.mUITextBoxEdit
        End Get
    End Property
    #End Region
    
    #Region "Fields"
    Private mUIButtonButton As XamlButton
    
    Private mUITextBoxEdit As XamlEdit
    #End Region
    
  11. No Gerenciador de Soluções, abra o arquivo CodedUITest1.cs ou CodedUITest1.vb.Agora, é possível adicionar código ao método CodedUTTestMethod1 para as ações necessárias para executar o teste usando os controles adicionados ao UIMap:

    1. Ative o aplicativo da Windows Store usando a propriedade de ID de automação copiada anteriormente na área de transferência.

      XamlWindow.Launch("8ebca7c4-effe-4c86-9998-068daccee452_cyrqexqw8cc7c!App")
      
      XamlWindow myAppWindow = XamlWindow.Launch("7254db3e-20a7-424e-8e05-7c4dabf4f28d_cyrqexqw8cc7c!App");
      
    2. Adicione um gesto para tocar no controle de botão:

      Gesture.Tap(this.UIMap.UIApp1Window. UIButtonButton);
      
      Gesture.Tap(Me.UIMap.UIApp2Window. UIButtonButton)
      
    3. Verifique se a chamada ao método de asserção gerada automaticamente vem depois da inicialização do aplicativo e do gesto de toque no botão:

      this.UIMap.AssertMethod1();
      
      Me.UIMap.AssertMethod1()
      

    Depois de adicionar o código, o método de teste CodedUITestMethod1 deve aparecer da seguinte maneira:

    [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.
    
        // Launch the app.
        XamlWindow myAppWindow = XamlWindow.Launch("7254db3e-20a7-424e-8e05-7c4dabf4f28d_cyrqexqw8cc7c!App");
    
        // Tap the button.
        Gesture.Tap(this.UIMap.UIApp1Window.UIButtonButton);
    
        this.UIMap.AssertMethod1();
    }
    
    <CodedUITest(CodedUITestType.WindowsStore)>
    Public Class CodedUITest1
    
        <TestMethod()>
        Public Sub 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.
            '
    
            ' Launch the app.
            XamlWindow.Launch("8ebca7c4-effe-4c86-9998-068daccee452_cyrqexqw8cc7c!App")
    
            '// Tap the button.
            Gesture.Tap(Me.UIMap.UIApp2Window.UIButtonButton)
    
            Me.UIMap.AssertMethod1()
        End Sub
    
  12. Compile seu teste e execute-o usando o gerenciador de testes.

    Executar o teste de IU codificado do Gerenciador de testes

    O aplicativo da Windows Store é ativado, o botão da ação de tocar está concluído e a propriedade Texto da caixa de texto é preenchida e validada usando o método assert.

    Executando o teste de UI codificado

    Depois da conclusão do teste, o gerenciador de testes exibe que o teste foi aprovado.

    Passou no teste exibe no Gerenciador de testes

Perguntas e respostas

  • P: Por que não vejo a opção de registrar meu teste de IU codificado no diálogo Gerar Código para Teste de IU Codificado?

    R: Não há suporte para a opção de registrar em aplicativos da Windows Store.

  • P: Posso criar um teste de IU codificado para meus aplicativos da Windows Store com base em WinJS?

    R: Não. Somente aplicativos baseados em XAML são compatíveis.

  • P: Posso criar testes de IU codificados para meus aplicativos da Windows Store em um sistema que não esteja executando o Windows 8?

    R: Não, o modelo de Projeto de teste de IU codificado (aplicativos da Windows Store) está disponível apenas no Windows 8.

  • P: Por que não posso modificar o código do arquivo UIMap.Designer?

    R: Todas as alterações de código que você fez no arquivo UIMapDesigner.cs serão substituídas cada vez que você gerenciar o código usando o UIMap - Coded UI Test Builder.Se você tiver de modificar um método gravado, copie-o para o arquivo UIMap.cs e renomeie-o.O arquivo UIMap.cs pode ser usado para substituir métodos e propriedades no arquivo UIMapDesigner.cs.Você deve remover a referência para o método original no arquivo Coded UITest.cs e substituí-la pelo nome do método renomeado.

Consulte também

Conceitos

Verificando código pela Automação da Interface do Usuário

Definir uma propriedade de automação exclusiva para controles da Windows Store para teste