Substituir ações de teste de componente

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 6 min. de leitura
  • Altere as propriedades de teste de um componente de página específico usando atributos HTML que são específicos para Automated Test Framework.

    Antes de Iniciar

    Função necessária: administrador

    Por Que e Quando Desempenhar Esta Tarefa

    Quando Automated Test Framework recupera um componente, ele determina quais interações ele suporta, por exemplo, se é um componente configurável ou clicável. Se o componente for configurável, Automated Test Framework determinará o tipo de campo que pode ser definido. Se Automated Test Framework determinar incorretamente as ações ou os tipos de campo do seu componente personalizado, ou se o seu componente contiver vários elementos DOM que devem ser tratados como uma entidade, defina-os explicitamente usando atributos HTML específicos para Automated Test Framework.

    Como usar atributos sn-atf-clickable e sn-atf-settable

    Use os atributos sn-atf-clickable e sn-atf-settable para especificar que um elemento e seus elementos secundários devem ser tratados como um componente clicável ou configurável personalizado.

    Antes de Iniciar

    Função necessária: administrador

    Procedimento

    1. Abra a página de IU personalizada que você deseja testar.
    2. Adicione o atributo sn-atf-clickable ou sn-atf-settable ao elemento que está sendo testado.
      <div sn-atf-clickable="true" sn-atf-disabled id="customClickable">
      	<button id="customButton">Click me</button>
      </div>
      <div sn-atf-settable="true" id="customSettable" sn-atf-component-value="A default value">
      	<input id="customInput" value="A default value"></input>
      </div>
      Nota:
      Você pode usar o atributo sn-atf-clickable ou sn-atf-settable para especificar se um elemento deve ser tratado como um componente clicável ou configurável personalizado. Você não pode usar ambos os atributos no mesmo elemento.
    3. Use o atributo sn-atf-clickable ou sn-atf-settable.
      • sn-atf-clickable: se você adicionou o atributo sn-atf-clickable, o ATF clicará no componente enviando um evento sn-atf-click para o elemento DOM com o atributo sn-atf-clickable. Você deve adicionar um ouvinte de eventos (por exemplo, usando addEventListener) a este elemento DOM e implementar sua lógica de clique personalizada para o componente. Você pode interagir com um componente clicável personalizado usando a etapa de teste Clicar no componente.
        Tabela 1. Atributos de componente clicável
        Nome de atributo Descrição
        sn-atf-disabled A presença deste atributo opcional (independentemente do seu valor) informa ao ATF que este componente está desabilitado
        Nota:
        Se este atributo estiver ausente, o ATF considerará que este componente está habilitado por padrão.
        sn-atf-component-value Uma cadeia de caracteres ou objeto JSON que informa ao ATF o valor atual deste componente
      • sn-atf-settable: se você adicionou o atributo sn-atf-settable, o ATF definirá o valor do componente enviando um evento sn-atf-setvalue para o elemento DOM com o atributo sn-atf-settable. Você deve adicionar um ouvinte de eventos (por exemplo, usando addEventListener) a este elemento DOM e implementar sua lógica de valor de conjunto personalizado para o componente. O valor que precisa ser definido pode ser acessado com event.detail.newvalue. O argumento do evento é passado para o manipulador de eventos. Você pode interagir com um componente configurável personalizado usando a etapa de teste Definir valores de componente.
        Tabela 2. Atributos do componente configurável
        Nome de atributo Descrição
        sn-atf-disabled A presença deste atributo opcional (independentemente do seu valor) informa ao ATF que este componente está desabilitado.
        Nota:
        Se este atributo estiver ausente, o ATF considerará que este componente está habilitado por padrão.
        sn-atf-component-value Uma cadeia de caracteres ou objeto JSON que informa ao ATF o valor atual deste componente.
        sn-atf-data-type Tipo opcional de campo a ser apresentado ao usuário ao criar uma etapa. O padrão é cadeia de caracteres. Por exemplo, glide_date_time, reference, booliano etc.
        sn-atf-data-type-params Objeto JSON com mais detalhes de tipo de dados.

    Exemplo

    //A custom clickable component
    
    <div sn-atf-clickable="true" sn-atf-disabled id="customClickable">
    	<button id="customButton">Click me</button>
    </div>
    <script>
    	var customClickableDiv = document.getElementById("customClickable");
    	customClickableDiv.addEventListener('sn-atf-click', function() {
    		document.getElementById('customButton').click();
    	});
    </script>
    //A custom settable component
    
    <div sn-atf-settable="true" id="customSettable" sn-atf-component-value="A default value">
    	<input id="customInput" value="A default value"></input>
    </div>
    <script>
    	var customSettableDiv = document.getElementById("customSettable");
    	customSettableDiv.addEventListener('sn-atf-setvalue', function(event) {
    		var newValue = event.detail.newValue;
    		document.getElementById("customInput").value = newValue;
    	});
    </script>

    Como usar o atributo sn-atf-class

    Use o atributo sn-atf-class para especificar o objeto JavaScript a ser usado ao testar um componente clicável ou configurável personalizado. Grave um objeto JavaScript personalizado para especificar as ações de teste disponíveis para um componente personalizado.

    Antes de Iniciar

    Função necessária: administrador

    Por Que e Quando Desempenhar Esta Tarefa

    Os designers de teste podem especificar manualmente as ações de teste disponíveis para um componente personalizado escrevendo um objeto JavaScript personalizado e atribuindo ao componente um atributo sn-atf-class. Defina o valor do atributo como o nome do objeto JavaScript que contém as ações de teste do componente. Os componentes personalizados testáveis devem ser clicáveis ou configuráveis, e essa classificação determina as funções e propriedades que seu objeto JavaScript requer. Consulte Etapas de teste da IU personalizada para obter os requisitos do componente de página testável.

    Procedimento

    1. Abra a página de IU personalizada que você deseja testar.
    2. Adicione o atributo sn-atf-class ao elemento que está sendo testado e defina o valor com o nome do objeto JavaScript incorporado na página que lida com as funções getValue(), setValue(), click() ou isDisabled().
      <div sn-atf-class="MyClickableComponent">
          <label for="a_clickable_checkbox">MyClickableComponent</label>
          <input type="checkbox" id="a_clickable_checkbox" checked="true"/>
      </div>
    3. Crie o objeto JavaScript especificado no atributo sn-atf-class e adicione as funções e o atributo necessários para identificar o componente de página personalizada como um componente de página clicável ou configurável.
      Tabela 3. Funções do componente clicável
      Nome da função Descrição
      inicializar () Obtém os valores iniciais do componente. Insira:
      $super(element, area)
      clique () Seleciona o componente. Retorna um objeto JSON com estas propriedades:

      sucesso: verdadeiro se for possível clicar no componente.

      Nota:
      Aciona o mecanismo de espera inteligente da etapa de teste de IU.
      getValue() Obtém o valor do elemento. Retorna um objeto JSON com estas propriedades:
      • sucesso: verdadeiro se o valor for recuperado.
      • resultado: o valor do componente.
      estáDesativado() Se o componente está desabilitado. Retorna um objeto JSON com estas propriedades:
      • sucesso: verdadeiro se o componente estiver desabilitado.
      • resultado: verdadeiro se o componente estiver desabilitado.
      Tabela 4. Funções do componente configurável
      Nome da função Descrição
      inicializar () Obtém os valores iniciais do componente. Insira:
      $super(element, area)
      setValue(newValue) Define o valor do componente. Veja o segundo exemplo abaixo. Retorna um objeto JSON com estas propriedades:

      sucesso: verdadeiro se o valor estiver definido.

      Nota:
      Aciona o mecanismo de espera inteligente da etapa de teste de IU.
      getValue() Obtém o valor do elemento. Retorna um objeto JSON com estas propriedades:
      • sucesso: verdadeiro se o valor for recuperado.
      • resultado: o valor do componente.
      estáDesativado() Se o componente está desabilitado. Retorna um objeto JSON com estas propriedades:
      • sucesso: verdadeiro se o componente estiver desabilitado.
      • resultado: verdadeiro se o componente estiver desabilitado.
      Tabela 5. Atributo de componente configurável
      Nome de atributo Descrição
      isSettable: verdadeiro Identifica o componente como um componente de página configurável.
    4. Ao criar seu componente personalizado no Jelly, adicione<g2:atf_only> marcadores em torno do objeto JavaScript especificado no atributo sn-atf-class .
      Esses marcadores garantem que o sistema execute somente o objeto JavaScript durante o teste automatizado.

    Exemplo

    //A custom clickable component
    
    <form>
         <div sn-atf-class="MyClickableComponent">
             <label for="a_clickable_checkbox">MyClickableComponent</label>
             <input type="checkbox" id="a_clickable_checkbox" checked="true"/>
         </div>
    </form>
    <script>
    var MyClickableComponent = {
    
        // The constructor must have this signature, but you can perform additional setup after the $super(element, area) call
        initialize: function($super, element, area) {
            $super(element, area);
        },
    
        click: function() {
            document.getElementById('a_clickable_checkbox').click();
            return {success: true};
        },
    
        // The function returns an object with a result attribute of type String
        getValue: function() {
            var isChecked = document.getElementById('a_clickable_checkbox').checked ? "true" : "false";
            return {success: true, result: isChecked};
        },
    
        // The function returns an object with a result attribute of type Boolean
        isDisabled: function() {
            if (document.getElementById('a_clickable_checkbox').disabled)
                return {success: true, result: true};
    
            return {success: true, result: false};
        },
    
    };
    </script>
    //A custom settable component
    
    <form>
        <div sn-atf-class="MySettableComponent">
            <label for="a_settable_checkbox">MySettableComponent</label>
            <input type="checkbox" id="a_settable_checkbox" checked="true"/>
        </div>
    </form>
    <script>
    var MySettableComponent = {
    
        // This attribute is required for settable components
        isSettable: true,
    
        // The constructor must have this signature, but you can perform additional setup after the $super(element, area) call
        initialize: function($super, element, area) {
            $super(element, area);
        },
    
        // The value parameter is a string
        setValue: function(value) {
            document.getElementById('a_settable_checkbox').checked = (value == "true");
            return {success: true};
        },
    
        // The function returns an object with a result attribute of type String
        getValue: function() {
            var isChecked = document.getElementById('a_settable_checkbox').checked ? "true" : "false";
            return {success: true, result: isChecked};
        },
    
        // The function returns an object with a result attribute of type Boolean
        isDisabled: function() {
            if (document.getElementById('a_settable_checkbox').disabled)
                return {success: true, result: true};
    
            return {success: true, result: false};
        },
    
    };
    </script>

    Seletor de referência e registro

    Use etapas de IU personalizadas para manipular os valores das diretivas angulares sn-reference-picker e sn-record-picker. O valor em um seletor de referência retorna o sys_id do registro escolhido. O valor em um seletor de registro retorna o campo de valor escolhido para esse seletor de registro. Ambos os elementos podem ser definidos selecionando um registro para definir como seu valor.