From d4b88f802a0bd0d9adfcfd4b5cfb7df6049c614c Mon Sep 17 00:00:00 2001 From: volodymyr-babak Date: Wed, 4 Jan 2017 17:41:16 +0200 Subject: [PATCH] added connect-publish scenario --- docker/thingsboard/run_thingsboard.sh | 2 +- .../thingsboard/client/tools/TestParams.java | 2 +- .../client/tools/MqttSimulation.scala | 30 ++++++++++++++++--- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/docker/thingsboard/run_thingsboard.sh b/docker/thingsboard/run_thingsboard.sh index c41e53eb08..920d4ecb06 100755 --- a/docker/thingsboard/run_thingsboard.sh +++ b/docker/thingsboard/run_thingsboard.sh @@ -32,7 +32,7 @@ do done # Copying env variables into conf files -printenv | while read x; do echo export $x; done >> /usr/share/thingsboard/conf/thingsboard.conf +printenv | awk -F "=" '{print "export " $1 "='\''" $2 "'\''"}' >> /usr/share/thingsboard/conf/thingsboard.conf cat /usr/share/thingsboard/conf/thingsboard.conf diff --git a/tools/src/main/java/org/thingsboard/client/tools/TestParams.java b/tools/src/main/java/org/thingsboard/client/tools/TestParams.java index eb1328b61e..1286f5efd9 100644 --- a/tools/src/main/java/org/thingsboard/client/tools/TestParams.java +++ b/tools/src/main/java/org/thingsboard/client/tools/TestParams.java @@ -27,7 +27,7 @@ public class TestParams { static final String TEST_PROPERTIES = "test.properties"; static final long DEFAULT_TEST_DURATION = TimeUnit.MINUTES.toMillis(1); static final long DEFAULT_TEST_INTERVAL = TimeUnit.MILLISECONDS.toMillis(100); - static final int DEFAULT_DEVICE_COUNT = 100; + static final int DEFAULT_DEVICE_COUNT = 25; static final String DEFAULT_REST_URL = "http://localhost:8080"; static final String DEFAULT_MQTT_URLS = "tcp://localhost:1883"; static final String DEFAULT_USERNAME = "tenant@thingsboard.org"; diff --git a/tools/src/test/scala/org/thingsboard/client/tools/MqttSimulation.scala b/tools/src/test/scala/org/thingsboard/client/tools/MqttSimulation.scala index d82ed5b7d4..6002ede4bc 100644 --- a/tools/src/test/scala/org/thingsboard/client/tools/MqttSimulation.scala +++ b/tools/src/test/scala/org/thingsboard/client/tools/MqttSimulation.scala @@ -1,3 +1,18 @@ +/** + * Copyright © 2016 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ /** * Copyright © 2016 The Thingsboard Authors * @@ -27,14 +42,21 @@ class MqttSimulation extends Simulation { .host("tcp://localhost:1883") .userName("${deviceCredentialsId}") - val scn = scenario("MQTT Test") - .feed(csv("/tmp/mqtt.csv").circular) - .exec(mqtt("request") + val connect = exec(mqtt("connect") + .connect()) + + val publish = repeat(400) { + exec(mqtt("publish") .publish("v1/devices/me/telemetry", "{\"key1\":\"value1\", \"key2\":\"value2\"}", QoS.AT_LEAST_ONCE, retain = false)) + } + + val scn = scenario("Scenario Name") + .feed(csv("/tmp/mqtt.csv").circular) + .exec(connect, publish) setUp( scn - .inject(constantUsersPerSec(1000) during (5 seconds)) + .inject(constantUsersPerSec(25) during (1 seconds)) ).protocols(mqttConf) } \ No newline at end of file