Power Query SDK-Testframework Teil 7 – Pipeline-Anleitung
Diese mehrteilige Referenz behandelt das Einrichten und Ausführen einer Standardsuite von Tests für Power Query-Konnektorentwickler. Der Verweis soll sequenziell durchgeführt werden, um sicherzustellen, dass Ihre Umgebung zum Testen des benutzerdefinierten Connectors eingerichtet ist.
Diese Anleitung enthält die Schritte, die zum Einrichten einer Pipeline für das Power Query SDK-Testframework erforderlich sind.
In diesem Abschnitt führen Sie folgende Schritte aus:
- Übersicht über das Einrichten der Pipeline
- Einrichten eines Pipeline-Agents
- Erfahren Sie, wie Sie den Connector konfigurieren, einschließlich Treiber- und Anmeldedatensetup
- Führen Sie die Tests aus, um den Erweiterungskonnektor zu überprüfen
- Generieren des Berichts des Testlaufs
Anleitung zum Einrichten von Pipelines für Power Query-Connectors
Diese Anleitung enthält die Schritte, die zum Einrichten einer Pipeline für das Power Query SDK-Testframework erforderlich sind. Auf hoher Ebene muss ein Agent eingerichtet, der getestete Connector konfiguriert werden, einschließlich aller Treibereinrichtung, Konfigurieren der Anmeldedaten für PQTest mit dem unterstützten Authentifizierungsmechanismus, Ausführen der Tests und Melden der Ergebnisse. In diesem Dokument werden Azure-Pipelines und -Ressourcen für alle Beispiele verwendet. Diese Konzepte können jedoch auf andere Pipelinearchitekturen angewendet werden.
Die Pipeline verwendet die folgende Struktur:
- Abrufen der Tests aus einem Repository.
- Rufen Sie die Anmeldedaten ab, und/oder legen Sie sie fest, um mithilfe des unterstützten Authentifizierungsmechanismus auf die Datenquelle zuzugreifen.
- Führen Sie die im vorherigen Schritt abgerufenen Tests aus.
- Aktualisieren Sie die Ergebnisse und Protokolle.
In der Dokumentation zu Azure Pipelines wird beschrieben, wie Sie eine einfache Pipeline einrichten. Weitere Informationen zum Einrichten dieser Features finden Sie in den folgenden Abschnitten.
- Agent-Voraussetzungen
- Netzwerk
- Berechtigungen
- PQTest
- Treiber
- Anmeldeinformationen
- Skripts
- Automatisierter Anmeldedatenzugriff
- Tests werden ausgeführt
- Automatisierungsskripts
Agent-Voraussetzungen
Der Pipeline-Agent muss das Power Query SDK enthalten und so konfiguriert sein, dass PQTest ausgeführt werden kann. Diese Konfiguration umfasst ggf. Zugriff auf die relevante Datenquelle und den Anmeldeinformationsverwaltung.
Diese Anforderungen können alle mit einem selbstgehosteten Agenten erfüllt werden. Azure-Pipelines können von Microsoft gehostete Agents bereitstellen, aber es ist unwahrscheinlich, dass diese Agents das Power Query SDK enthalten, und es kann zu berücksichtigende Netzwerkhürden geben. Die Verwendung einer virtuellen Maschine oder physischen Computers als Pipeline-Agent kann sicherstellen, dass PQTest eine Verbindung mit Ihrer Datenquelle herstellen kann.
Netzwerk
Zum Ausführen von Connectortests muss der Agent auf die relevante Datenquelle zugreifen können. Clouddatenquellen (z. B. Snowflake und Google BigQuery) sind leicht zugänglich, lokale Datenquellen (z. B. SAP BW und SQL Server) benötigen jedoch mehr Konfigurationen. Diese Konfigurationen können erfordern, dass Sie sicherstellen, dass der Agent mit demselben Virtual Network verbunden ist, die Firewall des Agents die richtigen Ports usw. zulässt.
Berechtigungen
Wenn Sie beabsichtigen, Anmeldedaten automatisch aus einem Schlüsseltresor abzurufen, benötigt der Agent eine Methode, um dies zu tun. Die empfohlene Methode besteht darin, eine verwaltete Identität für eine virtuelle Maschine festzulegen und dem Schlüsseltresor die erforderlichen Berechtigungen zuzuweisen.
PQTest
Die ausführbare PQTest-Datei muss auf dem Agent installiert sein. Die empfohlene Methode besteht darin, das NuGet-Paket des Power Query SDK herunterzuladen und auf den Agent zu entzippen.
Die ausführbare PQTest-Datei finden Sie im Ordner NuGet-Pakete \tools. Verwenden Sie das Argument --help, um Hilfeinformationen für PQTest.exe anzuzeigen und sich mit den zugehörigen Befehlen vertraut zu machen.
Treiber
Für ODBC-Connectors müssen alle Treiber zu einem ODBC-Treiberordner im folgenden Pfad hinzugefügt werden:
<power_query_sdk_extension_path>\Microsoft.PowerQuery.SdkTools.2.xxx.x\tools\ODBC Treiber<drivers>
Für Contoso-Treiber könnte der Pfad, beispielsweise, wie folgt sein:
C:\Users\ContosoUser.vscode\extensions\powerquery.vscode-powerquery-sdk-0.2.3-win32-x64.nuget\Microsoft.PowerQuery.SdkTools.2.126.3\tools\ODBC Driver\Contoso
Anmeldeinformationen
Anmeldedaten werden mithilfe der Visual Studio Code-Erweiterung oder des Befehls Set-Credential über die Befehlszeile an PQTest übergeben. Nach der Festlegung können diese Anmeldedaten für mehrere Testläufe wiederverwendet werden.
Je nach Authentifizierungstyp müssen diese Anmeldedaten möglicherweise nur einmal festgelegt werden (Nutzername/Passwort) oder aktualisiert (OAuth2-Aktualisierungstoken). Der frühere Fall kann mithilfe der Visual Studio Code-Schnittstelle problemlos eingerichtet werden. Letzterer Fall kann durch Erstellen eines Skripts erreicht werden.
Skripts
PQTest kann vollständig über die Befehlszeile verwendet werden, was die Automatisierung über Skripts ermöglicht.
Automatisierter Anmeldedatenzugriff
Um den Zugriff auf Anmeldedaten für PQTest zu automatisieren, empfehlen wir die Verwendung eines Schlüsseltresors. Auf diese Weise können Anmeldeinformationen leicht aktualisiert werden und es kann ein Skript erstellt werden.
- Der erste Schritt ist es, Zugriff auf die verwaltete Identität des Agents zu gewähren.
- Anschließend können Sie eine Rest-API aufrufen, um auf Daten zuzugreifen.
Nachdem Sie nun eine Möglichkeit haben, geheime Schlüssel abzurufen, können Sie sie dem Anmeldedatencache von PQTest hinzufügen.
Verwenden Sie den Befehl credential-template, um die JSON-Vorlage zu generieren. Diese Vorlage enthält Platzhaltertext (
$$USERNAME$$
,$$REFRESH_TOKEN$$
, usw.), der durch Zeichenfolgenersetzungsfunktionen dynamisch geändert werden kann.$keyVaultOutput = invoke-expression 'Get-AzKeyVaultSecret -VaultName $keyVaultName -Name $secretName -AsPlainText' $jsonTemplate = invoke-expression "$pqTestExe credential-template -e $extensionFile -q $queryFile -ak $authenticationType" $jsonCredential = $jsonTemplate.Replace('$$USERNAME$$', $credentialName) $jsonCredential = $jsonCredential.Replace('$$PASSWORD$$', $keyVaultOutput)
Übergeben Sie die geänderte JSON-Vorlage mithilfe von Weiterreichen (|) oder Eingabe (<) an den Befehl Set-Credential.
$jsonCredential | & $pqTestExe set-credential -e $extensionFile -q $queryFile
Nachdem die Anmeldedaten festgelegt wurden, können Tests ausgeführt werden.
Hinweis: Der Befehl „Anmeldeinformationen auflisten“ kann verwendet werden, um zu bestätigen, dass die Anmeldedaten ordnungsgemäß festgelegt sind.
Tests werden ausgeführt
Tests können mit dem Befehl Vergleichen ausgeführt werden. So führen Sie z. B. einen einzelnen Test aus:
.\PQTest.exe compare -e <connector file> -q <query file> -p
So führen Sie mehrere Tests aus:
.\PQTest.exe compare -e <connector file> -q <query folder> -sq <base query file> -p
Automatisierungsskripts
Skripts können automatisiert werden, indem sie aus einer Pipelineaufgabe ausgeführt werden. Für Azure-Pipelines kann die PowerShell-Aufgabe verwendet werden:
# Example Azure pipeline for running connector tests using PQTest.
# Azure Pipelines reference: https://aka.ms/yaml
trigger: none
pool:
name: SelfHosted-AgentPool
steps:
- task: PowerShell@2
inputs:
filePath: '<path_to_run_test_script>/RunConnectorTest.ps1'
displayName: 'Run Connector Tests'
Zusammenfassung
In diesem Abschnitt wurde gezeigt, wie Sie die Pipeline für die Verwendung des Power Query SDK-Testframeworks einrichten und konfigurieren, indem Sie die bereitgestellte Testsammlung und ihre eigenen Tests verwenden, um Ihren Erweiterungskonnektor zu überprüfen.
Insgesamt sollten Sie jetzt in der Lage sein, zuverlässig Änderungen an Ihrer Erweiterung vorzunehmen und sie während der Entwicklung und Veröffentlichung zu überprüfen.