Cadre de test du Kit de développement logiciel (SDK) Power Query partie 7 - Guide du pipeline
Cette référence en plusieurs parties couvre l’installation et l’exécution d’une suite standard de tests pour les développeurs de connecteurs Power Query. La référence est destinée à être effectuée de manière séquentielle pour vous assurer que votre environnement est configuré pour tester votre connecteur personnalisé.
Ce guide vous fournit les étapes nécessaires à la configuration d’un pipeline pour le cadre de test du Kit de développement logiciel (SDK) Power Query.
Dans cette section, vous allez :
- Vue d'ensemble de la configuration du pipeline
- Configurer un agent de pipeline
- Découvrez comment configurer le connecteur, y compris la configuration du pilote et des identifiants
- Exécuter les tests pour vérifier votre connecteur d’extension
- Générer le rapport de l’exécution de la série de tests
Guide de configuration du pipeline pour les connecteurs Power Query
Ce guide vous fournit les étapes nécessaires à la configuration d’un pipeline pour le cadre de test du Kit de développement logiciel (SDK) Power Query. À un niveau élevé, il nécessite la configuration d’un agent, la configuration du connecteur testé, y compris les pilotes configurés, la configuration des identifiants pour PQTest avec le mécanisme d’authentification pris en charge, l’exécution des tests et la création de rapports sur les résultats. Ce document utilise Azure Pipelines et les ressources pour tous ses exemples. Toutefois, ces concepts peuvent être appliqués à d’autres architectures de pipeline.
Le pipeline utilise la structure suivante :
- Récupérez les tests à partir d’un référentiel.
- Récupérez et/ou définissez les identifiants pour accéder à la source de données à l’aide du mécanisme d’authentification pris en charge.
- Exécutez les tests récupérés à l’étape précédente.
- Mettez à jour les résultats et les journaux.
La documentation Azure Pipelines décrit comment configurer un pipeline de base. Reportez-vous aux sections suivantes pour obtenir des conseils sur la configuration de ces fonctionnalités.
- Conditions préalables associées à l’agent
- Mise en réseau
- Autorisations
- PQTest
- Pilotes
- Informations d'identification
- Scripts
- Accès automatisé aux identifiants
- Exécution de tests
- Automatisation des scripts
Conditions préalables associées à l’agent
L’agent de pipeline doit inclure le Kit de développement logiciel (SDK) Power Query et être configuré pour pouvoir exécuter PQTest. Cette configuration inclut l’accès à la source de données et au gestionnaire d'informations d'identification appropriés, le cas échéant.
Ces exigences peuvent toutes être remplies à l’aide d’un agent autohébergé. Azure Pipelines peut fournir des agents hébergés par Microsoft, mais ces agents sont peu susceptibles de contenir le Kit de développement logiciel (SDK) Power Query et il peut y avoir des obstacles réseau à prendre en compte. L’utilisation d’une machine virtuelle ou d’un ordinateur physique en tant qu’agent de pipeline peut s’assurer que PQTest peut se connecter à votre source de données.
Mise en réseau
Pour exécuter des tests de connecteur, l’agent doit pouvoir accéder à la source de données appropriée. Les sources de données cloud (par exemple, Snowflake et Google Big Query) sont probablement facilement accessibles, mais les sources de données locales (par exemple, SAP BW et SQL Server) nécessitent davantage de configurations. Ces configurations peuvent exiger que l’agent soit connecté au même réseau virtuel, que le pare-feu de l’agent autorise les ports appropriés, et ainsi de suite.
Autorisations
Si votre intention est d’extraire automatiquement les identifiants d’un coffre de clés, l’agent a besoin d’une méthode pour ce faire. La méthode recommandée consiste à définir une identité managée pour une machine virtuelle et à attribuer les autorisations nécessaires au coffre de clés.
PQTest
L’exécutable PQTest doit être installé sur l’agent. La méthode recommandée consiste à télécharger le package NuGet du Kit de développement logiciel (SDK) Power Query et à le décompresser sur l’agent.
L’exécutable PQTest se trouve dans le dossier Packages NuGet \tools. Utilisez l’argument --help pour afficher des informations d’aide pour PQTest.exe et vous familiariser avec ses commandes.
Pilotes
Pour les connecteurs ODBC, tous les pilotes doivent être ajoutés à un dossier Pilotes ODBC au chemin d'accès suivant :
<power_query_sdk_extension_path>\Microsoft.PowerQuery.SdkTools.2.xxx.x\tools\ODBC Drivers<drivers>
Par exemple pour le pilote Contoso, le chemin d'accès peut être le suivant :
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
Informations d'identification
Les identifiants sont transmises à PQTest à l’aide de l’extension Visual Studio Code ou de la commande set-credential via la ligne de commande. Une fois définies, ces identifiants peuvent être réutilisées pour plusieurs exécutions de test.
Selon le type d’authentification, ces identifiants peuvent être définies une seule fois (nom d’utilisateur/mot de passe) ou mises à jour (jeton d’actualisation OAuth2). L’ancien cas peut être configuré facilement à l’aide de l’interface Visual Studio Code. Ce dernier cas peut être accompli en créant un script.
Scripts
PQTest peut être utilisé entièrement à partir de la ligne de commande, ce qui permet l’automatisation par le biais de scripts.
Accès automatisé aux identifiants
Pour automatiser l’accès aux identifiants pour PQTest, nous vous recommandons d’utiliser un coffre de clés. De cette façon, les identifiants peuvent être actualisées facilement et peuvent être scriptées.
- La première étape consiste à permettre d'accéder à l'identité managée de l'agent.
- Vous pouvez ensuite appeler une API Rest pour accéder aux données.
Maintenant que vous avez un moyen d’obtenir des secrets, vous pouvez les ajouter au cache d’informations d’identification de PQTest.
Utilisez la commande credential-template pour créer un modèle JSON. Ce modèle contient du texte de l'espace réservé (
$$USERNAME$$
,$$REFRESH_TOKEN$$
, et ainsi de suite), qui peut être modifié dynamiquement par le biais de fonctions de remplacement de chaîne.$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)
Transmettez le modèle JSON modifié à la commande set-credential à l’aide d'un pipe (|) ou d'une entrée (<).
$jsonCredential | & $pqTestExe set-credential -e $extensionFile -q $queryFile
Maintenant que les identifiants sont définis, les tests peuvent être exécutés.
Remarque : la commande list-credential peut être utilisée pour confirmer que les identifiants sont correctement définis.
Exécution de tests
Les tests peuvent être exécutés via la commande à l’aide de la commande comparer. Par exemple, pour exécuter un test unique :
.\PQTest.exe compare -e <connector file> -q <query file> -p
Pour exécuter plusieurs tests :
.\PQTest.exe compare -e <connector file> -q <query folder> -sq <base query file> -p
Automatisation des scripts
Les scripts peuvent être automatisés en les exécutant à partir d’une tâche de pipeline. Pour Azure Pipelines, la tâche PowerShell peut être utilisée :
# 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'
Conclusion
Cette section vous a montré comment configurer et configurer le pipeline pour utiliser le cadre de test du Kit de développement logiciel (SDK) Power Query, à l’aide de la suite de tests fournie et de vos propres tests pour valider votre connecteur d’extension.
Dans l’ensemble, vous devez maintenant être en mesure de modifier de manière fiable votre extension et de la valider pendant le développement et la publication.