1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/EdgexFoundry-edgex-taf

Клонировать/Скачать
run-tests-on-local.md 9.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 05:37 9300ea3

Как запустить функциональный и интеграционный тесты на локальном компьютере

Запустите тесты, используя Python или контейнер Docker (используя образ edgex-taf-common). Ваш выбор будет зависеть от того, есть ли у вас необходимые библиотеки Robot Framework или вы готовы их установить. Если вы предпочитаете не устанавливать библиотеки для тестирования, возможно, предпочтительнее использовать контейнер edgex-taf-common.

Предварительные требования Клонируйте проект edgex-taf из EdgeX Foundry в качестве шаблона:

cd ${HOME}
git clone https://github.com/edgexfoundry/edgex-taf.git

Использование контейнера Docker для запуска тестов

Конфигурация переменных

# Required variables
export WORK_DIR=${HOME}/edgex-taf
export REGISTRY_SERVICE=${REGISTRY_SERVICE}
export USE_DB=${TEST_DB}

Запуск теста с помощью сценария оболочки с аргументами

Использование сценария оболочки для запуска тестов займёт некоторое время. Он содержит этапы развёртывания, запуска тестов и завершения работы.

# Аргументы для run-tests.sh
${ARCH}: x86_64 | arm64
${SECURITY_SERVICE_NEEDED}: false | true
${REGISTRY_SERVICE}: Consul | Keeper
${TEST_STRATEGY}: functional-test | integration-test
${TEST_SERVICE}: all (default) | device-virtual | device-modbus | ${directory} under TAF/testScenarios/functionalTest/API | mqtt (integration-test) | redis (integration-test)
${DEPLOY_SERVICES}: no-deployment(Если службы edgex развёрнуты на месте, используйте «no-deployment». В противном случае оставьте его пустым.)
${TEST_DB}: postgres | redis
cd ${WORK_DIR}/TAF/utils/scripts/docker

sh run-tests.sh ${ARCH} ${SECURITY_SERVICE_NEEDED} ${TEST_STRATEGY} ${TEST_SERVICE} ${DEPLOY_SERVICES}

# Если используется x86_64, нет необходимости в безопасности, выберите функциональный тест, выберите «api» для test_service и службы edgex развернуты на месте, это должно быть:
например, sh run-tests.sh x86_64 false functional-test api no-deployment
# Если используется x86_64, нет необходимости в безопасности, примите для интеграционного теста, выберите «mqtt» для test_service и службы edgex не развёрнуты на месте, это должно быть:
например, sh run-tests.sh x86_64 false integration-test mqtt

Просмотр отчёта о тестировании

Откройте файл отчёта в браузере: ${WORK_DIR}/TAF/testArtifacts/reports/cp-edgex/api-test.html

Запуск тестов с использованием Python Пожалуйста, удалите каталог ${WORK_DIR}/TAF/testArtifacts/reports/edgex с помощью sudo, если он существует.

Настройка необходимых библиотек

  1. Установите предварительные пакеты: Скачайте pip3 и выполните эту команду:
    sudo apt-get install python3-pip
  2. Установите TAF common:
    cd ${HOME}/edgex-taf
    git clone https://github.com/edgexfoundry/edgex-taf-common.git
    
    # Установите зависимость lib
    pip3 install -r ./edgex-taf-common/requirements.txt
    
    # Установите edgex-taf-common как lib
    pip3 install ./edgex-taf-common
  3. Подготовьте тестовую среду:
    # Аргументы для get-compose-file.sh
    ${ARCH}: x86_64 | arm64
    ${USE_SECURITY}: - (false) | -security- (true)
    ${USE_SHA1}: main
    ${TEST_STRATEGY}: functional-test | integration-test
    
    # Получите последний файл docker-compose
    cd ${HOME}/edgex-taf/TAF/utils/scripts/docker
    sh get-compose-file.sh ${USE_ARCH} ${USE_SECURITY} ${USE_SHA1} ${TEST_STRATEGY}
    # например, sh get-compose-file.sh x86_64 - main functional-test
    
    # Экспортируйте следующие переменные среды.
    export WORK_DIR=${HOME}/edgex-taf
    export SECURITY_SERVICE_NEEDED=false
    export COMPOSE_IMAGE=docker:26.0.1

Запустите тесты

Просмотрите отчёт о тесте после завершения команды Python, иначе отчёт будет переопределён после выполнения следующей команды. Откройте файл отчёта в браузере: ${WORK_DIR}/TAF/testArtifacts/reports/cp-edgex/api-test.html.

  1. Измените каталог на ${HOME}/edgex-taf

  2. Разверните edgex: Пропущено, если службы edgex уже развёрнуты

    # Этот шаг может занять некоторое время, если образы edgex отсутствуют на машине
    python3 -m TUC --exclude Skipped --include deploy-base-service -u deploy.robot -p default
  3. Запустите тест

    Запустите функциональное тестирование API:
    • Обратите внимание: при запуске функционального теста будет получен случай: IntervalactionGET006 сбой. Для этого случая необходимо перезапустить службу.
    • Для основных данных, основных метаданных... Поддержка уведомлений и планировщика поддержки:
# ${ServiceDir}: Пожалуйста, используйте имя каталога под TAF/testScenarios/functionalTest/API

# Перед запуском службы, пожалуйста, экспортируйте следующие переменные.
export EDGEX_SECURITY_SECRET_STORE=false
export REGISTRY_SERVICE=${REGISTRY_SERVICE}

# Выполните тестовую команду
python3 -m TUC --exclude Skipped -u functionalTest/API/${ServiceDir} -p default

Для службы APP:

# Требуется Consul. Скрипты будут изменять конфигурацию службы APP.
# Использовано 2 профиля, функциональные тесты и http-экспорт.

# Перед запуском службы APP, пожалуйста, экспортируйте следующие переменные.
export EDGEX_SECURY_SECRET_STORE=false
export REGISTRY_SERVICE=${REGISTRY_SERVICE}
export SERVICE_PORT=59705 (для функциональных тестов)
export SERVICE_PORT=59704 (для http-экспорта)

# Выполнить тестовую команду
export SECURITY_SERVICE_NEEDED=false  # Иначе получите ошибку ErrSecretsPOST004.
python3 -m TUC --exclude Skipped -u functionalTest/API/app-service -p default

Служба устройства:

# Перед запуском службы устройства, пожалуйста, экспортируйте следующие переменные.
export EDGEX_SECURITY_SECRET_STORE=false
export REGISTRY_SERVICE=${REGISTRY_SERVICE}

# Измените значение ProfilesDir в configuration.toml под ${HOME}/edgex-taf/TAF/config/${profile}
ProfilesDir = ${HOME}/edgex-taf/TAF/config/${profile}

# Запустите службу устройства с параметром configDir
--configDir=${HOME}/edgex-taf/TAF/config/${profile}

# Выполните тестовую команду
python3 -m TUC --exclude Skipped -u functionalTest/device-service -p ${profile}

# ${profile}: Используйте имя каталога под TAF/config, которое зависит от того, какую службу нужно протестировать. Примеры: device-virtual или device-modbus

Запуск интеграционного тестирования:

Поддерживается только развёртывание служб edgex через файл docker-compose.

Запустите тест с MQTT-шиной:

python3 -m TUC --exclude Skipped --include mqtt-bus -u deploy.robot -p default
python3 -m TUC --exclude Skipped --include MessageBus=MQTT -u integrationTest -p device-virtual --name MQTT-bus

Запустите тест с Redis-шиной:

python3 -m TUC --exclude Skipped --include redis-bus -u deploy.robot -p default
python3 -m TUC --exclude Skilled --include MessageBus=REDIS -u integrationTest -p device-virtual --name REDIS-bus

Завершение работы edgex:

python3 -m TUC --exclude Skipped --include shutdown-edgex -u shutdown.robot -p default

Пример отчёта о тестировании

Пример на уровне набора тестов

image

Пример уровня тестового случая

image

Пример ключевого уровня

image

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/EdgexFoundry-edgex-taf.git
git@api.gitlife.ru:oschina-mirror/EdgexFoundry-edgex-taf.git
oschina-mirror
EdgexFoundry-edgex-taf
EdgexFoundry-edgex-taf
main