Komponententestaktionen überschreiben

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 6 Minuten Lesedauer
  • Ändern Sie die Testeigenschaften einer bestimmten Seitenkomponente mithilfe von Automated Test Framework -spezifischen HTML-Attributen.

    Vorbereitungen

    Erforderliche Rolle: admin

    Warum und wann dieser Vorgang ausgeführt wird

    Wenn Automated Test Framework eine Komponente abruft, bestimmt es die unterstützten Interaktionen, z. B. ob es sich um eine einstellbare oder anklickbare Komponente handelt. Wenn die Komponente einstellbar ist, bestimmt Automated Test Framework den Feldtyp, der eingestellt werden kann. Wenn Automated Test Framework die Aktionen oder Feldtypen Ihrer benutzerdefinierten Komponente falsch bestimmt oder Ihre Komponente mehrere DOM-Elemente enthält, die als eine Entität behandelt werden sollen, legen Sie sie explizit mit Automated Test Framework-spezifischen HTML-Attributen fest.

    Verwenden der Attribute sn-atf-clickable und sn-atf-settable

    Verwenden Sie die Attribute sn-atf-clickable und sn-atf-settable, um anzugeben, dass ein Element und seine untergeordneten Elemente als benutzerdefinierte anklickbare oder benutzerdefinierte einstellbare Komponente behandelt werden sollen.

    Vorbereitungen

    Erforderliche Rolle: admin

    Prozedur

    1. Öffnen Sie die benutzerdefinierte UI-Seite, die Sie testen möchten.
    2. Fügen Sie dem getesteten Element das Attribut sn-atf -clickable oder sn-atf-settable hinzu.
      <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>
      Hinweis:
      Sie können entweder das Attribut sn-atf-clickable oder sn-atf-settable verwenden, um anzugeben, ob ein Element als benutzerdefinierte anklickbare oder benutzerdefinierte einstellbare Komponente behandelt werden soll. Sie können nicht beide Attribute für dasselbe Element verwenden.
    3. Verwenden Sie entweder das Attribut sn-atf-clickable oder sn-atf-settable.
      • sn-atf-clickable: Wenn Sie das Attribut sn-atf-clickable hinzugefügt haben, klickt ATF auf die Komponente, indem ein sn-atf-click- Event mit dem Attribut sn-atf-clickable an das DOM-Element gesendet wird. Sie sollten diesem DOM-Element einen Event-Listener hinzufügen (z. B. mit addEventListener) und Ihre benutzerdefinierte Klicklogik für die Komponente implementieren. Sie können mit einer benutzerdefinierten anklickbaren Komponente über den Testschritt „Klickkomponente “ interagieren.
        Tabelle : 1. Anklickbare Komponentenattribute
        Attributname Beschreibung
        sn-atf-deaktiviert Das Vorhandensein dieses optionalen Attributs (unabhängig von seinem Wert) teilt ATF mit, dass diese Komponente deaktiviert ist
        Hinweis:
        Wenn dieses Attribut fehlt, geht ATF davon aus, dass diese Komponente standardmäßig aktiviert ist.
        sn-atf-component-value Eine Zeichenfolge oder ein JSON-Objekt, das ATF den aktuellen Wert dieser Komponente mitteilt
      • sn-atf-settable: Wenn Sie das Attribut sn- atf -settable hinzugefügt haben, legt ATF den Komponentenwert fest, indem ein sn-atf-setvalue- Event mit dem Attribut sn-atf-settable an das DOM-Element gesendet wird. Sie sollten diesem DOM-Element einen Event-Listener hinzufügen (z. B. mit addEventListener) und Ihre benutzerdefinierte Wertlogik für die Komponente implementieren. Auf den Wert, der festgelegt werden muss, kann mit event.detail.newvaluezugegriffen werden. Das Event -Argument wird an Ihren Event-Handler übergeben. Sie können mit einer benutzerdefinierten einstellbaren Komponente über den Testschritt „Komponentenwerte festlegen “ interagieren.
        Tabelle : 2. Einstellbare Komponentenattribute
        Attributname Beschreibung
        sn-atf-deaktiviert Das Vorhandensein dieses optionalen Attributs (unabhängig von seinem Wert) teilt ATF mit, dass diese Komponente deaktiviert ist.
        Hinweis:
        Wenn dieses Attribut fehlt, geht ATF davon aus, dass diese Komponente standardmäßig aktiviert ist.
        sn-atf-component-value Eine Zeichenfolge oder ein JSON-Objekt, das ATF den aktuellen Wert dieser Komponente mitteilt.
        sn-atf-data-type Optionaler Feldtyp, der dem Benutzer beim Erstellen eines Schritts angezeigt wird. Der Standardwert ist „string“. Beispiele: glide_date_time, Referenz, Boolean usw.
        sn-atf-data-type-params JSON-Objekt mit weiteren Datentypdetails.

    Beispiel

    //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>

    Verwenden des Attributs sn-atf-class

    Verwenden Sie das Attribut sn-atf-class, um das zu verwendende JavaScript-Objekt anzugeben, das beim Testen einer benutzerdefinierten anklickbaren oder einstellbaren Komponente verwendet werden soll. Schreiben Sie ein benutzerdefiniertes JavaScript-Objekt, um die für eine benutzerdefinierte Komponente verfügbaren Testaktionen anzugeben.

    Vorbereitungen

    Erforderliche Rolle: admin

    Warum und wann dieser Vorgang ausgeführt wird

    Testdesigner können die für eine benutzerdefinierte Komponente verfügbaren Testaktionen manuell festlegen, indem sie ein benutzerdefiniertes JavaScript-Objekt schreiben und der Komponente ein Attribut sn-atf-class zuweisen. Legen Sie den Wert des Attributs auf den Namen des JavaScript-Objekts fest, das die Komponententestaktionen enthält. Testbare benutzerdefinierte Komponenten müssen entweder anklickbar oder einstellbar sein. Diese Klassifizierung bestimmt die Funktionen und Eigenschaften, die Ihr JavaScript-Objekt benötigt. Siehe Testschritte für benutzerdefinierte UIs für Anforderungen an testbare Seitenkomponenten.

    Prozedur

    1. Öffnen Sie die benutzerdefinierte UI-Seite, die Sie testen möchten.
    2. Fügen Sie das Attribut sn-atf-class dem getesteten Element hinzu, und legen Sie den Wert auf den Namen des JavaScript-Objekts fest, das in die Seite eingebettet ist, die die Funktionen getValue(), setValue(), Click() oder isDisabled() verarbeitet.
      <div sn-atf-class="MyClickableComponent">
          <label for="a_clickable_checkbox">MyClickableComponent</label>
          <input type="checkbox" id="a_clickable_checkbox" checked="true"/>
      </div>
    3. Erstellen Sie das im Attribut sn-atf-class angegebene JavaScript-Objekt, und fügen Sie die Funktionen und das Attribut hinzu, die erforderlich sind, um Ihre benutzerdefinierte Seitenkomponente als anklickbare oder einstellbare Seitenkomponente zu identifizieren..

      A

      Tabelle : 3. Funktionen für anklickbare Komponenten
      Funktionsname Beschreibung
      initialisieren () Ruft die Anfangswerte der Komponente ab. Geben Sie Folgendes ein:
      $super(element, area)
      klicken() Wählt die Komponente aus. Gibt ein JSON-Objekt mit diesen Eigenschaften zurück:

      success: „true“, wenn auf die Komponente geklickt werden kann.

      Hinweis:
      Löst den intelligenten Wartemechanismus des UI-Testschritts aus.
      getValue () Ruft den Wert des Elements ab. Gibt ein JSON-Objekt mit diesen Eigenschaften zurück:
      • success: „true“, wenn der Wert abgerufen wird.
      • result: der Wert der Komponente.
      istDeaktiviert() Gibt an, ob die Komponente deaktiviert ist. Gibt ein JSON-Objekt mit diesen Eigenschaften zurück:
      • success: „true“, wenn die Komponente deaktiviert ist.
      • result: „true“, wenn die Komponente deaktiviert ist.
      Tabelle : 4. Funktionen für einstellbare Komponenten
      Funktionsname Beschreibung
      initialisieren () Ruft die Anfangswerte der Komponente ab. Geben Sie Folgendes ein:
      $super(element, area)
      setValue (newValue) Legt den Wert der Komponente fest. Siehe das zweite Beispiel unten. Gibt ein JSON-Objekt mit diesen Eigenschaften zurück:

      success: „true“, wenn die Wert festgelegt ist.

      Hinweis:
      Löst den intelligenten Wartemechanismus des UI-Testschritts aus.
      getValue () Ruft den Wert des Elements ab. Gibt ein JSON-Objekt mit diesen Eigenschaften zurück:
      • success: „true“, wenn der Wert abgerufen wird.
      • result: der Wert der Komponente.
      istDeaktiviert() Gibt an, ob die Komponente deaktiviert ist. Gibt ein JSON-Objekt mit diesen Eigenschaften zurück:
      • success: „true“, wenn die Komponente deaktiviert ist.
      • result: „true“, wenn die Komponente deaktiviert ist.
      Tabelle : 5. Attribut für einstellbare Komponenten
      Attributname Beschreibung
      isSettable: true Identifiziert die Komponente als einstellbare Seitenkomponente.
    4. Fügen Sie beim Erstellen Ihrer benutzerdefinierten Komponente in Jelly die Tags <g2:atf_only> um das im Attribut sn-atf-class angegebenen JavaScript-Objekt hinzu.
      Diese Tags stellen sicher, dass das System das JavaScript-Objekt nur während des automatisierten Tests ausführt.

    Beispiel

    //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>

    Referenz- und Datensatzauswahl

    Verwenden Sie benutzerdefinierte UI-Schritte, um die Werte der Winkelanweisungen sn-reference-picker und sn-record-picker zu bearbeiten. Der Wert in einer Referenzauswahl gibt die sys_id des ausgewählten Datensatzes zurück. Der Wert in einer Datensatzauswahl gibt das für diese Datensatzauswahl ausgewählte Wertfeld zurück. Beide Elemente können festgelegt werden, indem ein Datensatz ausgewählt wird, der als Wert festgelegt werden soll.