Komponententestaktionen überschreiben

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 6 Minuten Lesedauer
  • Ändern Sie die Testeigenschaften einer bestimmten Seitenkomponente mithilfe von HTML-Attributen, die spezifisch für sind Automated Test Framework.

    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 FrameworkBestimmt fälschlicherweise die Aktionen oder Feldtypen Ihrer anwenderdefinierten Komponente, oder Ihre Komponente enthält mehrere DOM-Elemente, die als eine Entität behandelt werden sollen. Legen Sie sie explizit mit HTML-Attributen fest, die spezifisch für sind Automated Test Framework.

    Mit den Attributen „sn-atf-clickable“ und „sn-atf-setable“

    Verwenden sn-atf-anklickbar Und sn-atf-einstellbar Attribute, um anzugeben, dass ein Element und seine untergeordneten Elemente als anwenderdefinierte anklickbare oder anwenderdefinierte 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 hinzu sn-atf-anklickbar Oder sn-atf-einstellbar Attribut für das zu testende Element.
      <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 beide verwenden sn-atf-anklickbar Oder sn-atf-einstellbar Attribut, das angibt, ob ein Element als anwenderdefinierte anklickbare oder anwenderdefinierte einstellbare Komponente behandelt werden soll. Sie können nicht beide Attribute für dasselbe Element verwenden.
    3. Verwenden Sie entweder sn-atf-anklickbar Oder sn-atf-einstellbar Attribut.
      • sn-atf-anklickbar : Wenn Sie hinzugefügt haben sn-atf-anklickbar Attribut: ATF klickt auf die Komponente, indem ein gesendet wird sn-atf-Klick Ereignis zum DOM-Element mit sn-atf-anklickbar Attribut. Sie sollten einen Ereignis-Listener hinzufügen (z. B. mit AddEventListener ) Zu diesem DOM-Element und implementieren Sie Ihre anwenderdefinierte Klicklogik für die Komponente. Sie können mit einer anwenderdefinierten anklickbaren Komponente interagieren Klicken Sie Auf Komponente Testschritt.
        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, berücksichtigt ATF, dass diese Komponente standardmäßig aktiviert ist.
        sn-atf-component-value Eine Zeichenfolge oder ein JSON-Objekt, das ATF den aktuellen Wert dieser Komponente angibt
      • sn-atf-einstellbar : Wenn Sie hinzugefügt haben sn-atf-einstellbar Attribut, ATF legt den Komponentenwert fest, indem ein gesendet wird sn-atf-setvalue Ereignis zum DOM-Element mit sn-atf-einstellbar Attribut. Sie sollten einen Ereignis-Listener hinzufügen (z. B. mit AddEventListener ) Zu diesem DOM-Element und implementieren Sie Ihre anwenderdefinierte Wertlogik für die Komponente. Der Wert, der festgelegt werden muss, kann mit aufgerufen werden event.detail.newvalue . Die Ereignis Argument wird an Ihren Ereignis-Handler übergeben. Sie können mit einer anwenderdefinierten einstellbaren Komponente interagieren Legen Sie Komponentenwerte Fest Testschritt.
        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, berücksichtigt ATF, dass diese Komponente standardmäßig aktiviert ist.
        sn-atf-component-value Eine Zeichenfolge oder ein JSON-Objekt, das ATF den aktuellen Wert dieser Komponente angibt.
        sn-atf-Datentyp Optionaler Feldtyp, der dem Anwender beim Erstellen eines Schritts angezeigt werden soll. Standardmäßig ist „Zeichenfolge“ festgelegt. Beispiel: Glide_date_time , Referenz, boolescher Wert 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>

    Mit dem Attribut „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 hinzu sn-atf-class Attribut für das zu testende Element, 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 in angegebene JavaScript-Objekt sn-atf-class Attribut und fügen Sie die Funktionen und das Attribut hinzu, die erforderlich sind, um Ihre anwenderdefinierte Seitenkomponente entweder als anklickbare oder einstellbare Seitenkomponente zu identifizieren.
      Tabelle : 3. Funktionen für anklickbare Komponenten
      Funktionsname Beschreibung
      Initialisieren () Ruft die Anfangswerte der Komponente ab. Geben Sie Folgendes ein:
      $super(element, area)
      Klick() 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.
      IsDisabled() 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.
      IsDisabled() 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: Wahr 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 anwenderdefinierte UI-Schritte, um die Werte von zu bearbeiten sn-reference-Picker Und sn-Datensatzauswahl Angular-Direktiven. Der Wert in einer Referenzauswahl gibt zurück sys_ID Des ausgewählten Datensatzes. Der Wert in einer Datensatzauswahl gibt das Wertfeld zurück, das für diese Datensatzauswahl ausgewählt wurde. Beide Elemente können festgelegt werden, indem ein Datensatz ausgewählt wird, der als Wert festgelegt werden soll.