Платформа тестирования пакета SDK Для Power Query 7. Руководство по конвейеру
Эта многокомпонентная ссылка охватывает настройку и выполнение стандартного набора тестов для разработчиков соединителей Power Query. Ссылка предназначена для последовательного выполнения, чтобы убедиться, что ваша среда настроена для тестирования пользовательского соединителя.
В этом руководстве приведены шаги, необходимые для настройки конвейера для платформы тестирования пакета SDK Для Power Query.
В этом разделе выполняются следующие действия:
- Общие сведения о настройке конвейера
- Настройка агента конвейера
- Узнайте, как настроить соединитель, включая настройку драйверов и учетных данных
- Запуск тестов для проверки соединителя расширения
- Создание отчета тестового запуска
Руководство по настройке конвейера для соединителей Power Query
В этом руководстве приведены шаги, необходимые для настройки конвейера для платформы тестирования пакета SDK Для Power Query. На высоком уровне требуется настройка агента, настройка проверяемого соединителя, включая все драйверы, настроенные, настройка учетных данных для PQTest с поддерживаемым механизмом проверки подлинности, выполнение тестов и создание отчетов о результатах. В этом документе используются Azure Pipelines и ресурсы для всех его примеров. Однако эти понятия можно применять к другим архитектурам конвейера.
Конвейер использует следующую структуру:
- Извлеките тесты из репозитория.
- Получение и/или установка учетных данных для доступа к источнику данных с помощью поддерживаемого механизма проверки подлинности.
- Запустите тесты, полученные на предыдущем шаге.
- Обновите результаты и журналы.
В документации по Azure Pipelines описывается настройка базового конвейера. Дополнительные сведения о настройке этих функций см. в следующих разделах.
- Предварительные требования агента
- Сеть
- Разрешения
- PQTest
- Драйверы
- Подтверждение компетенции
- Сценарии
- Автоматический доступ к учетным данным
- Выполнение тестов
- Автоматизация сценариев
Предварительные требования агента
Агент конвейера должен включать пакет SDK Power Query и настроить для запуска PQTest. Эта конфигурация включает доступ к соответствующему источнику данных и диспетчеру учетных данных, если это применимо.
Эти требования можно выполнить с помощью локального агента. Azure Pipelines может предоставлять агенты, размещенные Корпорацией Майкрософт, но эти агенты вряд ли содержат пакет SDK Power Query и могут возникнуть сетевые препятствия для рассмотрения. Использование виртуальной машины или физического компьютера в качестве агента конвейера может обеспечить подключение PQTest к источнику данных.
Сеть
Чтобы выполнить тесты соединителя, агент должен иметь доступ к соответствующему источнику данных. Облачные источники данных (например, Snowflake и Google Big Query), скорее всего, легко доступны, однако локальные источники данных (например, SAP BW и SQL Server) нуждаются в дополнительных конфигурациях. Эти конфигурации могут потребовать, чтобы агент был подключен к одной виртуальной сети, брандмауэр агента разрешает правильные порты и т. д.
Разрешения
Если вы намерены автоматически извлекать учетные данные из хранилища ключей, агенту нужен метод для этого. Рекомендуемый метод — задать управляемое удостоверение для виртуальной машины и назначить необходимые разрешения хранилищу ключей.
PQTest
Исполняемый файл PQTest должен быть установлен на агент. Рекомендуемый метод — скачать пакет NuGet пакета NuGet пакета SDK Power Query и распакуть его на агент.
Исполняемый файл PQTest можно найти в папке пакетов NuGet \tools. Используйте аргумент --help, чтобы отобразить сведения о справке для PQTest.exe и ознакомиться с его командами.
Драйверы
Для соединителей ODBC все драйверы необходимо добавить в папку драйверов ODBC по следующему пути:
<>power_query_sdk_extension_path\Microsoft.PowerQuery.SdkTools.2.xxx.x\tools\ODBC Driver driver<>
Например, для драйвера Contoso путь может быть следующим:
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
Подтверждение компетенции
Учетные данные передаются в PQTest с помощью расширения Visual Studio Code или команды set-credential через командную строку. После установки эти учетные данные можно повторно использовать для нескольких тестовых запусков.
В зависимости от типа проверки подлинности эти учетные данные могут быть заданы только один раз (имя пользователя или пароль) или обновляться (маркер обновления OAuth2). Бывший вариант можно легко настроить с помощью интерфейса Visual Studio Code. Последний случай можно выполнить путем создания скрипта.
Сценарии
PQTest можно использовать полностью из командной строки, которая обеспечивает автоматизацию с помощью скриптов.
Автоматический доступ к учетным данным
Чтобы автоматизировать доступ к учетным данным для PQTest, рекомендуется использовать хранилище ключей. Таким образом, учетные данные можно легко обновить, и его можно запланировать.
- Первым шагом является предоставление доступа к управляемому удостоверению агента.
- Затем можно вызвать REST API для доступа к данным.
Теперь, когда у вас есть способ получить секреты, их можно добавить в кэш учетных данных PQTest.
Используйте команду credential-template для создания шаблона JSON. Этот шаблон содержит замещающий текст (
$$USERNAME$$
,$$REFRESH_TOKEN$$
и т. д.), который можно динамически изменять с помощью функций замены строк.$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)
Передайте измененный шаблон JSON команде set-credential с помощью канала (|) или входных данных (<).
$jsonCredential | & $pqTestExe set-credential -e $extensionFile -q $queryFile
Теперь, когда заданы учетные данные, можно выполнять тесты.
Примечание. Для подтверждения правильного задания учетных данных можно использовать команду list-credential.
Выполнение тестов
Тесты можно выполнять с помощью команды сравнения . Например, чтобы выполнить один тест, выполните следующую команду:
.\PQTest.exe compare -e <connector file> -q <query file> -p
Чтобы выполнить несколько тестов, выполните следующую команду:
.\PQTest.exe compare -e <connector file> -q <query folder> -sq <base query file> -p
Автоматизация сценариев
Скрипты можно автоматизировать, выполнив их из задачи конвейера. Для Azure Pipelines можно использовать задачу PowerShell:
# 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'
Заключение
В этом разделе показано, как настроить и настроить конвейер для использования платформы тестов пакета SDK Power Query, используя предоставленный набор тестов, а также собственные тесты для проверки соединителя расширения.
В целом теперь вы сможете надежно вносить изменения в расширение и проверять его во время разработки и выпуска.