Sie können ein neues Jupyter-Notebook (*.ipynb) in JupyterHub erstellen, um Programmcode zur Darstellung, Analyse und Verarbeitung der Daten Ihrer Hardwareprodukten, Messungen, Tests usw. zu entwickeln.

Führen Sie vor dem Erstellen eines Jupyter-Notebooks die folgenden Arbeitsschritte aus:
  • Installieren Sie Jupyter Notebooks for SystemLink im NI-Paketmanager, um auf vordefinierte Jupyter-Notebooks zuzugreifen, die SystemLink-Python-APIs nutzen können.
  • Hängen Sie /niapis/python/index.html an Ihre SystemLink-Anwendungs-URL an, um auf die Python-APIs zugreifen zu können.
  • Lesen Sie mehr zur Benutzeroberfläche und Struktur eines Jupyter-Notebooks.
  • Installieren Sie Python-Bibliotheken, mit deren Hilfe Sie Ihre Datenanalyse und -verarbeitung verbessern möchten. NI empfiehlt die Verwendung des Python Package Index (PyPI), um Pakete zu erhalten.
  • Lesen Sie mehr zu integrierten „magic“-Befehlen, die mit dem IPython-Kernel aktiviert werden.
  1. Klicken Sie in der SystemLink-Webanwendung auf Jupyter.
  2. Klicken Sie unter Notebook auf Python 3.
    Daraufhin öffnet sich ein Jupyter-Notebook, und innerhalb des Notebooks wird Kernel zur Ausführung von Python gestartet.
  3. Geben Sie dem Notebook einen neuen Namen, der die Art des vom Notebook ausgeführten Berichts beschreibt.
  4. Importieren Sie in einer Codezelle die Python-Module, -Bibliotheken und -Widgets für Ihr interaktives Notebook.
    Sie können beispielsweise Programmcode zum Importieren von Pandas und Scrapbook für folgende Zwecke implementieren:
    • Zum Erstellen und Verarbeiten von Daten-Frames (Pandas).
    • Zum Ausführen eines Notebooks (Scrapbook).
    • Zum Erfassen von Notebook-Ergebnissen (Scrapbook).
    import copy
    import datetime
    import dateutil.parser
    import pandas as pd
    import scrapbook as sb
    from dateutil import tz
  5. Mit Hilfe einer der SystemLink-Python-APIs können Sie auf die Daten zugreifen, die Sie darstellen, anzeigen oder verarbeiten möchten.
    Verwenden Sie den folgenden Befehl, um vom SystemLink-Testüberwachungsdienst aus auf Daten zuzugreifen.
    from systemlink.clientconfig import get_configuration
    from systemlink.clients.nitestmonitor import *
  6. Stellen Sie eine Verbindung mit dem SystemLink-Server her.
    Wenn Sie einen Testüberwachungs-Client mit dem Server verbinden möchten, verwenden Sie den folgenden Befehl:
    http_client_config = get_configuration(route_name='nitestmonitor')
  7. Definieren Sie die Parameter und Metadaten für das Notebook.
    1. Definieren Sie die Parameter in einer Codezelle.
      Sie können Programmcode zu folgenden Zwecken implementieren:
      • Filtern Ihrer Testergebnisse nach einem bestimmten Zeitbereich.
      • Gruppieren Ihrer Testergebnisse nach dem Tag, an dem das Testsystem das Ergebnis erfasst hat.
      filter = 'startedWithin <= "30.0:0:0"'
      group_by = 'Day'
    2. Öffnen Sie in der rechten Seitenleiste den Fensterbereich Property Inspector.
    3. Fügen Sie im Codeblock Cell Metadata die Parameter, die Standardwerte der Parameter und die Ausgaben hinzu.
      Zum Hinzufügen dieser Informationen können Sie den folgenden Code implementieren:
      "papermill": {
              "parameters": {
                  "group_by": "Day",
                  "results_filter": "startedWithin <= \"30.0:0:0\"",
              }
          },
          "systemlink": {
              "namespaces": [
                  "ni-testmanagement"
              ],
              "outputs": [
                  {
                      "display_name": "This will show in dashboard output selector",
                      "id": "data_frame_output",
                      "type": "data_frame"
                  },
                  {
                      "display_name": "This will show in dashboard output selector",
                      "id": "scalar_output",
                      "type": "scalar"
                  }
              ],
              "parameters": [
                  {
                      "display_name": "Group By",
                      "id": "group_by",
                      "options": [
                          "Day",
                          "System",
                          "Test Program",
                          "Operator",
                          "Product"
                      ],
                      "type": "string"
                  },
                  {
                      "default_display": {
                          "startedWithin": {
                              "unit": "DAYS",
                              "value": 30
                          }
                      },
                      "display_name": "Results Filter",
                      "id": "results_filter",
                      "type": "test_monitor_result_query"
                  },
              ],
              "version": 2
          },
          "tags": [
              "parameters"
          ]
      }
    4. Geben Sie für namespaces mindestens einen der folgenden Namensräume ein, je nachdem, wo Sie Ihren Bericht anzeigen möchten:
      Namensraum Anzeige-Ort für Bericht
      ni-assetmanager Hardwareprodukte
      ni-testmanagement Testüberwachung
      Von Ihnen festgelegte Namensraum Jeder andere Client, der Namensräume zum Abfragen von Notebooks verwendet
    5. Geben Sie für Version eine der folgenden Versionen ein, je nachdem, wo Sie Ihr Notebook verwenden möchten:
      Ziel Version
      • Sie können Ihre Daten in "Testerkenntnisse" unter "Berichte" anzeigen.
      • Sie passen ein Notebook, das mit einer früheren Version von SystemLink installiert wurde, benutzerdefiniert an.
      1
      • Sie möchten mehrere Ausgaben mit einem Notebook ausgeben.
      • Sie möchten einen skalaren Ausgabetyp verwenden.
      • Sie möchten Ihre Daten in einem Dashboard anzeigen.
      2
  8. Stellen Sie eine Suchanfrage an einen SystemLink-Datendienst, um die Daten abzurufen, die Sie darstellen, analysieren oder verarbeiten möchten.
    Um eine Suchanfrage an den Testüberwachungsdienst zu stellen, um Testergebnisse in aufsteigender Reihenfolge zu erhalten, können Sie den folgenden Code verwenden
    results_api = ResultsApi(api_client=ApiClient(http_client_config))
    query = ResultsAdvancedQuery(filter=filter, order_by=[ResultSortDefinitionObject(field=ResultField.STARTED_AT)])
    query_response = await results_api.query_results_v2(post_body=query)
    results = query_response.results
    
    results_list = [result.to_dict() for result in results]
  9. Formatieren Sie die Daten in einem Pandas-Daten-Frame so, wie Sie die aus der Suchanfrage resultierenden Daten gruppieren möchten.
    Zum Gruppieren von Testergebnisse nach ihrem Status können Sie den folgenden Code verwenden:
    group_names = []
    for result in results_list:
        if grouping in result:
            group_names.append(result[grouping])
    
    formatted_results = {
        'id': [result['id'] for result in results_list],
        'status': [result['status']['status_type'] for result in results_list],
        grouping: group_names
    }
    
    df_results = pd.DataFrame.from_dict(formatted_results)
  10. Konfigurieren Sie, wie Sie die Daten darstellen, analysieren und verarbeiten möchten.

    Nachfolgend finden Sie einige Beispiele dafür, wie diese Daten konfiguriert werden können.

    • Ausfiltern der Ergebnisse, die nicht in Ihrem Bericht enthalten sein sollen
    • Konvertieren von Zeitstempeln
    • Berechnen von Daten in einem Zeitrahmen
    • Gruppieren von Daten auf eine besimmte Art und Weise
  11. Konvertieren Sie den Pandas-Daten-Frame in das Ausgabeformat eines SystemLink-Berichts.
    Um den Pandas-Data-Frame zu konvertieren, können Sie den folgenden Code verwenden:
    result.append({
        'type': 'data_frame',
        'id': 'data_frame_output', 
        data': [{
            'format': 'XY',
            'x': ['2018-11-17T00:00:00', '2018-11-18T00:00:00', ...],
            'y': [94.0, 89.9, ...]
        }],
        'config': {
            'title': 'Title',
            'graph': {
                'axis_labels': ['x-axis-label', 'y-axis-label'],
                'tick_labels': [{'x': 0, 'label': 'tick label 0', ... }],
                'orientation': 'VERTICAL',
                'plot_style': ['SCATTER'],
                'plot_color': ['blue']
            }
        }
    })
    Tipp Prüfen Sie den Wert der ID (data_frame_output), um sicherzustellen, dass die Testüberwachung die Ausgabe von Daten-Frames unterstützt. Der Wert muss in der Zelle und in den Code-Metadaten für die Parametercodezelle korrekt sein. Weitere Informationen finden Sie in Schritt 7 oben.
    Hinweis Wenn Sie das V2-Berichtsformat in einem Jupyter-Notebook verwenden, können Sie die Berichtsergebnisse nur auf einem Dashboard darstellen.
  12. Fügen Sie eine neue skalare Ausgabe hinzu.
    Zum Hinzufügen einer skalaren Ausgabe können Sie den folgenden Code verwenden:
    result.append({
        'type': 'scalar',
        'id': 'scalar_output',
        'config': {
            'title': 'Scalar Output Title'
        },
        'value': 3
    })
    Hinweis Weitere Informationen zum Hinzufügen einer skalaren Ausgabe finden Sie im Repository für SystemLink-Beispiele in GitHub.
  13. Protokollieren Sie die Ergebnisse mit Scrapbook.
    Zum Parsen der SystemLink-Webanwendung auf Ergebnisse können Sie den folgenden Code verwenden:
    sb.glue('result', result)
  14. Fügen Sie dem Notebook eine neue Zelle hinzu.
  15. Wählen Sie in der Symbolleiste Markdown aus dem Dropdown-Menü aus, um Dokumentation zu Ihrem Code zum Notebook hinzuzufügen.
  16. Wählen Sie in der Menüleiste Run » All Cells aus, um sicherzustellen, dass das Notebook Daten korrekt ausgibt und verarbeitet. Wenn das Notebook einen Fehler ausgibt, ergänzen Sie die Codezelle mit dem Fehler um import pdb; pdb.set_trace(). Durch Hinzufügen dieses Codes wird der integrierte Python-Debugger aktiviert.
  17. Klicken Sie auf Speichern.
  18. Optional: Um Ihr Notebook zu einem festgelegten Zeitpunkt auszuführen, erstellen Sie eine Analyse-Automatisierungsprozedur und fügen Sie einen geplanten Task hinzu.
Nachdem Sie Ihr Notebook erstellt haben, können Sie es als Datenquelle an eine Dashboard-Kachel binden. Durch Hinzufügen dieser Kachel zu einem Dashboard können Sie die Notebook-Ergebnisse überwachen. Weitere Informationen zur gemeinsamen Nutzung eines Notebooks finden Sie unter Gemeinsame Verwendung eines Jupyter-Notebooks.