Я совершенно тупик (и криптобитс scala c не помогает: -))
Я пытаюсь настроить тесты Гатлинга с использованием rabbitmq (ie I хочу отправить sh сообщений в кролика q и сколько времени потребуется, чтобы появиться во второй очереди) Я использую gatling-amqp-plugin , чтобы сделать это, так как gatling изначально не поддерживает amqp.
Чтобы сделать это более "интересным" для меня, я не кодирую в Scala и никогда не использовал gatling ....
Поэтому я взял "начало работы" project gatling-sbt-plugin-demo
Как только я убедился, что примеры нагрузочных тестов базы данных компьютера работают, я добавил новый пакет в проект и поместил пример PublishExample из проекта amqp (а также требуемый класс Utils)
У меня работает локальное изображение кролика docker ... это состав docker, который я использовал:
version: '3'
services:
rabbi:
image: rabbitmq:3.6-management
hostname: "rabbi"
expose:
- "5672"
ports:
- "15672:15672"
- "5672:5672"
environment:
RABBITMQ_DEFAULT_USER: "USER"
RABBITMQ_DEFAULT_PASS: "PASS"
RABBITMQ_DEFAULT_VHOST: "VOST"
Я тогда попытался запустить gatling, используя PublishExample
package rabbit
import io.gatling.core.Predef._
import io.gatling.core.structure.ScenarioBuilder
import ru.tinkoff.gatling.amqp.Predef._
import Utils._
import ru.tinkoff.gatling.amqp.protocol.AmqpProtocolBuilder
import scala.concurrent.duration._
class PublishExample extends Simulation {
val amqpConf: AmqpProtocolBuilder = amqp
.connectionFactory(
rabbitmq
.host("localhost")
.port(5672)
.username("USER")
.password("PASS")
.vhost("VOST")
)
.usePersistentDeliveryMode
val scn: ScenarioBuilder = scenario("AMQP test")
.feed(idFeeder)
.exec(
amqp("publish to exchange").publish
.directExchange("test_queue", "test_key")
.textMessage("Hello message - ${id}")
.messageId("${id}")
.priority(0)
.property("testheader", "testvalue")
)
setUp(
scn.inject(rampUsersPerSec(1) to 5 during (60 seconds), constantUsersPerSec(5) during (5 minutes))
).protocols(amqpConf)
.maxDuration(10 minutes)
}
И это ошибка, которую я получаю
* 102 2 *
Что именно я здесь делаю? Я пробовал различные изменения в конфигурациях хоста / vhost / directExchange, но я не могу понять, что я делаю неправильно !!!
Кроме того, это журналы Rabbit, когда я запускаю этот код выше:
rabbi_1 |
rabbi_1 | =INFO REPORT==== 26-Apr-2020::21:12:13 ===
rabbi_1 | accepting AMQP connection <0.619.0> (172.20.0.1:56118 -> 172.20.0.2:5672)
rabbi_1 |
rabbi_1 | =INFO REPORT==== 26-Apr-2020::21:12:13 ===
rabbi_1 | connection <0.619.0> (172.20.0.1:56118 -> 172.20.0.2:5672): user 'USER' authenticated and granted access to vhost 'VOST'
rabbi_1 |
rabbi_1 | =WARNING REPORT==== 26-Apr-2020::21:12:14 ===
rabbi_1 | closing AMQP connection <0.619.0> (172.20.0.1:56118 -> 172.20.0.2:5672, vhost: 'VOST', user: 'USER'):
rabbi_1 | client unexpectedly closed TCP connection
Итак, я знаю, что «подключаюсь» к кролику