entaxy-public/features/README.ru.md

7.8 KiB
Raw Blame History

Установка фич (features)

Languages

English

Введение

Для установки фич понадобятся несколько шагов.

Использовать Java 8

Шаг 1: Сборка проекта

Необходимо локально собрать корневой проект:

mvn install

Шаг 2: Настройка брокера, БД и менеджера артефактов.

При использовании докера запустите Артемис

sudo docker run --rm -p 8161:8161 -p 61616:61616 -e ARTEMIS_USERNAME=entaxy -e ARTEMIS_PASSWORD=entaxy --name=artemis1 -d vromero/activemq-artemis

И запустите постгрес

sudo docker run --name entaxy_db -p 5432:5432 -v /etc/timezone:/etc/timezone:ro -e POSTGRES_PASSWORD=entaxy -e POSTGRES_USER=entaxy -e POSTGRES_DB=cache -d postgres

или Майкрософт Сиквел

sudo docker run --name mssql -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=entaxy' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-CU8-ubuntu

По умолчанию в проекте используется 2 базы данных: cache и esb_entaxy, Названия баз данных прописаны в конфигурациях соединений с бд org.ops4j.datasource-entaxy.esb.*.cfg

и осталось поднять nexus(необходимо для работы system-management)

sudo docker run -d -p 8081:8081 --name nexus sonatype/nexus3

Теперь смотрим админский пароль через команду:

docker exec nexus cat /nexus-data/admin.password

И далее заходим в админку через браузер на http://localhost:8081/. По умолчанию для работы требуется создать пользователя entaxy/entaxy и maven репозиторий с названием entaxy.

На Docker Toolbox могут возникнуть ошибки из-за нехватки памяти, решается изменением выделения памяти при запуске`

docker run -d -p 8081:8081 --name nexus -e INSTALL4J_ADD_VM_PARAMS="-Xms2g -Xmx2g -XX:MaxDirectMemorySize=3g" sonatype/nexus3

Шаг 3: Подготовка и запуск карафа

Скопировать в карафовский etc следующие файлы из репозитория entaxy-framework\features\src\main\cfg\

jre.properties 
org.apache.karaf.cellar.groups.cfg

Так же локальный нексус репозиторий необходимо добавить к стандартным репозиториям в файле org.ops4j.pax.url.mvn.cfg свойство org.ops4j.pax.url.mvn.repositories. Пользователь и название репозитория прописано в конфигурационном файле ru.entaxy.esb.deployer.nexus.cfg.`

Запуск Apache Karaf 4.x или новее

karaf

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

karaf clean

Шаг 4: Установка всех фич за один раз, используя командную строку карафа

shell:source <project-directory>/entaxy-framework/features/src/main/script/install.karaf
  • После требуется проверить конфигурации соединений с бд в файлах org.ops4j.datasource-entaxy.esb.*.cfg
  • Проверить адрес брокера в файле ru.entaxy.esb.cfg свойство ru.entaxy.esb.jms.url
  • Проверить адреса брокеров для моста в файле ru.entaxy.esb.system.bridge.cfg свойства jms.url.*
  • Заменить файл org.apache.karaf.cellar.groups.cfg

Шаг 4a: Или можно установить фичи вручную

Добавить необходимые фичи

feature:repo-add mvn:ru.entaxy.esb/karaf-features/LATEST/xml/features
feature:install liquibase-updater
feature:install entaxy-esb-api

Установить nsi

feature:install nsi

Установить permission

feature:install permission

Установить реестр систем

feature:install system-registry	

Установить тестовый профиль

install -s blueprint:mvn:ru.entaxy.esb.integration.esb.test.profiles/test-profiles/1.0-SNAPSHOT/xml/s_s1

Установить реестр групп систем

feature:install system-group-registry

Установить профиль группы систем

install -s blueprint:mvn:ru.entaxy.esb.integration.esb.test.profiles/test-profiles/1.0-SNAPSHOT/xml/g_fzd

Установить мост

feature:install bridge

Установить сервис управления учётными записями

feature:install basic-auth

Установить events

feature:install events

Для дев окружения может быть полезна команда watch

bundle:watch mvn:ru.entaxy.esb/nsi-esb/1.0-SNAPSHOT

Шаг 5: Проверка доступности сервиса через браузер, используя следующий адрес.

Подразумевается использование настроек по умолчанию для карафовского PAX Web, который для http настроен на порт 8181. Если Вы желаете использовать другой порт или https, то необходимо поменять настройки в ${KARAF_HOME}/etc/org.ops4j.pax.web.cfg. Непосредственное продолжение адреса после имени хоста и номера порта (в примере ниже cxf) можно настроить в файле org.apache.cxf.osgi.cfg. (Для более подробной информации по PAX Web перейдите по ссылке http://team.ops4j.org/wiki/display/paxweb/Pax+Web)

Шаг 6: Запуск SOAPUI или Postman

Отправка POST запроса на адрес

http://localhost:8181/cxf/xdto/NSI

Тестовый запрос:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xdto="http://www.entaxy.ru/xdto_NSI">
   <soap:Header/>
   <soap:Body>
      <xdto:GetMDMReferences/>
   </soap:Body>
</soap:Envelope>

Ответ сожержит GUID, скопируйте его и отправьте для получения результата:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xdto="http://www.entaxy.ru/xdto_NSI">
   <soap:Header/>
   <soap:Body>
      <xdto:GetResult>
         <xdto:RequestNumber>{GUID}</xdto:RequestNumber>
      </xdto:GetResult>
   </soap:Body>
</soap:Envelope>

Автотесты

https://learning.getpostman.com/docs/postman/collection_runs/command_line_integration_with_newman/

Установка

npm install -g newman

Запуск

cd test
newman run "Entaxy Integration Tests.postman_collection.json" -e "entaxy dev proxy.postman_environment.json"

Запуск нагрузочных тестов через Jmeter

В тестах прописана система s1, запросы направляются на 83 ноду

  • 1C-EXCHANGE_SEND_GET_ASK.jmx - запись и чтение с подтверждением последовательно
  • 1C-EXCHANGE_SEND_GET_ASK_ASYNC.jmx - запись и чтение с подтверждением в параллельных потоках

Можно запускать с машины 192.168.122.76

cd /opt/jenkins/.jenkins/workspace/test_master/test/jmeter
/opt/apache-jmeter-5.2.1/bin/jmeter.sh -n -t ./1C-EXCHANGE_SEND_GET_ASK_ASYNC.jmx