thingsboard-aplcache

added connect-publish scenario

1/4/2017 1:41:16 PM

Details

diff --git a/docker/thingsboard/run_thingsboard.sh b/docker/thingsboard/run_thingsboard.sh
index c41e53e..920d4ec 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 eb1328b..1286f5e 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 d82ed5b..6002ede 100644
--- a/tools/src/test/scala/org/thingsboard/client/tools/MqttSimulation.scala
+++ b/tools/src/test/scala/org/thingsboard/client/tools/MqttSimulation.scala
@@ -1,4 +1,19 @@
 /**
+ * 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
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
@@ -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