Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Модуль тестирования устарел и будет удален в будущем выпуске. Используйте примеры Power Platform Playwright для возможностей автоматизации тестирования в службах Power Platform и Dynamics 365.
В этом руководстве приведены пошаговые инструкции по настройке аутентификации в Test Engine. Краткий обзор вариантов аутентификации см. в разделе Аутентификация в Test Engine.
Начало работы с аутентификацией
Test Engine поддерживает два метода аутентификации для веб-тестов приложений на основе холста и модели:
- StorageState — простая настройка по умолчанию для индивидуальной разработки (для веб-тестирования приложений на основе холста и на основе модели)
- Dataverse — командный подход для совместного использования тестовых пользователей, а также CI/CD (для веб-тестов приложений на основе холста и на основе модели)
Для провайдера PowerFx и прямых тестов Dataverse аутентификация обрабатывается по-разному. Эти тесты получают маркеры доступа непосредственно из сеанса Azure CLI с помощью команд az для получения маркеров доступа к ресурсам. Перед запуском подобных тестов убедитесь, что вы вошли в систему с помощью az login --allow-no-subscriptions.
Быстрая настройка: аутентификация StorageState
Аутентификация StorageState — самый простой способ начать работу. Он использует API защиты данных Windows для безопасного хранения маркеров проверки подлинности на локальном компьютере.
Шаг 1. Запуск теста с аутентификацией по умолчанию
Выполните следующую команду PowerShell, заменив параметры, начинающиеся с your.
pac test run `
--provider canvas `
--test-plan-file your-test-plan.yaml `
--tenant your-tenant-id `
--environment-id your-environment-id
Замечание
Параметр pac test run--user-auth в этом примере не используется, поскольку поставщиком по умолчанию является StorageState. Вы можете включить его, если хотите.
Шаг 2. Выполнение интерактивного входа
Введите данные вашей учетной записи тестового пользователя
- Автоматически откроется окно браузера
- Выполните вход с использованием учетной записи тестового пользователя
- При необходимости подтвердите запрос на MFA и согласие
- Выберите "Оставаться в системе" при появлении соответствующего запроса
Ваша аутентификация теперь сохранена.
- Test Engine безопасно сохраняет вашу аутентификацию
- При последующих тестовых запусках сохраненное состояние будет использоваться без необходимости входа в систему
- Маркеры обновляются автоматически при необходимости
Командная настройка: аутентификация Dataverse
Аутентификация Dataverse идеально подходит для команд и конвейеров CI/CD. Она предполагает безопасное хранение в Dataverse состояний аутентифицированных пользователей, зашифрованных с помощью сертификатов X.509.
Шаг 1. Загрузка и импорт решения Test Engine
- Загрузите решение Power Platform с https://aka.ms/TestEngineAuth.
- Войдите в Power Apps.
- Выберите целевую среду.
- Перейдите в раздел Решения и выберите Импорт решения.
- Следуйте указаниям мастера, чтобы отправить и установить решение Test Engine.
Шаг 2. Создание сертификата для шифрования
В случае самозаверяющего сертификата (только для разработки) выполните следующий скрипт PowerShell:
$Params = @{
DnsName = @("testengine", "testengine")
CertStoreLocation = "Cert:\CurrentUser\My"
NotAfter = (Get-Date).AddMonths(6)
KeyAlgorithm = "RSA"
KeyLength = 2048
}
New-SelfSignedCertificate @Params
Для рабочих сред используйте сертификат, выданный центром сертификации вашего предприятия.
Шаг 3. Настройка тестового пользователя
Чтобы настроить тестового пользователя, выполните следующие действия:
Откройте терминал и выйдите из всех существующих сеансов:
# Clear Power Platform CLI credentials pac auth clear # Clear Azure CLI credentials az logoutВойдите с помощью Azure CLI (требуется для проверки подлинности Dataverse):
az login --allow-no-subscriptionsЗадайте имя вашего сертификата как переменную среды PowerShell с именем
DataProtectionCertificateName:$env:DataProtectionCertificateName = "CN=testengine"Запустите тест с аутентификацией Dataverse:
pac test run ` --provider canvas ` --user-auth Dataverse ` --auth Certstore ` --test-plan-file testplan.yaml ` --tenant your-tenant-id ` --environment-id your-environment-idЗамечание
В отличие от StorageState, в этом случае необходимо использовать параметр
--user-authсо значениемDataverse.При появлении соответствующего запроса выполните интерактивный вход в систему.
Настройка субъектов-служб (для CI/CD)
Для автоматизированного тестирования в конвейерах CI/CD вместо интерактивных учетных записей пользователей можно использовать субъекты-службы.
Шаг 1. Создание регистрации приложения в Microsoft Entra ID
Выполните следующие действия, чтобы создать регистрацию приложения в Microsoft Entra ID.
- Войдите в Центр администрирования Microsoft Entra
- Перейдите к Applications>Регистрация приложений
- Выберите Новую регистрацию
- Введите имя (например, "Автоматизация Test Engine")
- Оставьте параметры по умолчанию и выберите Зарегистрировать
- После создания скопируйте Идентификатор приложения (клиента) и Идентификатор каталога (клиента)
Шаг 2. Настройка разрешений API для Dataverse
Выполните следующие действия, чтобы настроить разрешения API для Dataverse.
- В регистрации перейдите в раздел Приложения API
- Выберите "Добавить разрешение"
- Выберите API, которые использует моя организация
- Найдите и выберите Dataverse
- Выбор делегированных разрешений
- Установите флажок user_impersonation
- Нажмите кнопку Добавить разрешения.
- Нажмите Предоставить согласие администратора.
Шаг 3. Создание секрета клиента
Выполните следующие действия, чтобы создать секрет клиента.
- Перейти к Сертификаты и секреты
- Выберите Новый секрет клиента
- Добавьте описание и выберите срок действия
- Сразу же скопируйте Значение секрета (вы больше не сможете его увидеть)
Шаг 4. Добавление пользователя приложения в Dataverse
Выполните следующие действия, чтобы добавить пользователя приложения в Dataverse.
- Откройте центр администрирования Power Platform
- Выберите среду
- Выберите Параметры>Пользователи + разрешения>Пользователи приложений
- Выберите Новый пользователь приложения
- Найдите и выберите свое приложение
- Назначьте соответствующее подразделение и роли безопасности (включая роль "Пользователь Test Engine")
- Сохранить изменения
Шаг 5. Настройка конвейера CI/CD
Добавьте в конвейер следующие переменные:
AZURE_CLIENT_ID: (your application ID)
AZURE_CLIENT_SECRET: (your client secret)
AZURE_TENANT_ID: (your tenant ID)
DataProtectionCertificateValue: (base64 encoded certificate)
ENVIRONMENT_URL: (your Dataverse environment URL)
Для Azure DevOps безопасно храните их в Variable Groups с соответствующими разрешениями.
Аутентификация для тестов PowerFx и прямых тестов Dataverse
Для тестов поставщика PowerFx и прямых тестов Dataverse аутентификация работает иначе, чем для веб-тестов.
Как работает аутентификация PowerFx/Dataverse
- Модуль тестирования использует Azure CLI для получения маркера доступа для конкретного ресурса
- Этот маркер используется для аутентификации непосредственно в API Dataverse
- Браузерная или веб-аутентификация не требуется
Настройка аутентификации PowerFx/Dataverse
Убедитесь, что Azure CLI установлена и обновлена:
winget install -e --id Microsoft.AzureCLI # Or update it if already installed az upgradeВойдите с помощью Azure CLI:
# The --allow-no-subscriptions flag is important as you may not have Azure subscriptions az login --allow-no-subscriptionsЗапустите тест с поставщиком PowerFx:
pac test run ` --provider powerfx ` --test-plan-file testplan.yaml ` --tenant your-tenant-id ` --environment-id your-environment-id ` --domain "https://your-environment.crm.dynamics.com"
Устранение неполадок аутентификации
В этом разделе содержится информация об устранении неполадок аутентификации в Test Engine.
Распространенные проблемы со StorageState
Проблема: при каждом запуске появляется запрос на аутентификацию.
- Решение: проверьте, установили ли вы флажок Оставаться в системе при входе в систему.
Проблема: ошибка
Cannot access secure storage.- Решение: убедитесь, что у вас есть соответствующий доступ к папке вашего профиля пользователя.
Распространенные проблемы с аутентификацией Dataverse
Проблема: ошибка
Certificate not found.- Решение: убедитесь, что имя сертификата точно соответствует имени в вашем хранилище сертификатов.
Проблема: ошибка
Unable to connect to Dataverse.-
Solution. Убедитесь, что Azure CLI входит в систему с помощью
az login --allow-no-subscriptions.
-
Solution. Убедитесь, что Azure CLI входит в систему с помощью
Проблема: ошибка
Access deniedс субъектом-службой.- Решение: убедитесь, что приложение имеет необходимые разрешения в Dataverse и соответствующие роли безопасности.
Распространенные проблемы с аутентификацией PowerFx/Dataverse
Проблема: ошибка
Unable to obtain access token-
Solution: Убедитесь, что вы вошли в систему, используя Azure CLI
az account get-access-token
-
Solution: Убедитесь, что вы вошли в систему, используя Azure CLI
Задача: отказано в доступе к Dataverse (
Access denied)- Решение: убедитесь, что у вошедшего в систему пользователя есть соответствующие разрешения в среде Dataverse
Проблема: истечение срока действия маркера во время длительных тестовых запусков
- Решение: используйте субъект-службу с более длительным сроком действия маркера или выполняйте повторную аутентификацию на этапах тестирования
Статьи по теме
Архитектура безопасности аутентификации
Тестовые приложения Canvas
Тестирование приложений на основе моделей
Тестирование расширений Dataverse