Browse Source

Merge pull request #9269 from volodymyr-babak/edge/test-stability

Edge tests stability improvements
pull/9283/head
Andrew Shvayka 3 years ago
committed by GitHub
parent
commit
a613b51815
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      application/src/test/java/org/thingsboard/server/edge/AbstractEdgeTest.java
  2. 6
      application/src/test/java/org/thingsboard/server/edge/AssetEdgeTest.java
  3. 2
      application/src/test/java/org/thingsboard/server/edge/CustomerEdgeTest.java
  4. 2
      application/src/test/java/org/thingsboard/server/edge/DashboardEdgeTest.java
  5. 2
      application/src/test/java/org/thingsboard/server/edge/DeviceEdgeTest.java
  6. 2
      application/src/test/java/org/thingsboard/server/edge/EdgeTest.java
  7. 2
      application/src/test/java/org/thingsboard/server/edge/EntityViewEdgeTest.java
  8. 2
      application/src/test/java/org/thingsboard/server/edge/RuleChainEdgeTest.java
  9. 2
      application/src/test/java/org/thingsboard/server/edge/UserEdgeTest.java
  10. 1
      application/src/test/java/org/thingsboard/server/edge/imitator/EdgeImitator.java
  11. 2
      application/src/test/resources/application-test.properties
  12. 5
      dao/src/test/resources/sql/system-test-psql.sql

3
application/src/test/java/org/thingsboard/server/edge/AbstractEdgeTest.java

@ -102,7 +102,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
@TestPropertySource(properties = {
"edges.enabled=true",
"queue.rule-engine.stats.enabled=false"
"queue.rule-engine.stats.enabled=false",
"edges.storage.sleep_between_batches=1000"
})
abstract public class AbstractEdgeTest extends AbstractControllerTest {

6
application/src/test/java/org/thingsboard/server/edge/AssetEdgeTest.java

@ -96,7 +96,7 @@ public class AssetEdgeTest extends AbstractEdgeTest {
edgeImitator.expectMessageAmount(1);
doDelete("/api/asset/" + savedAsset.getUuidId())
.andExpect(status().isOk());
Assert.assertTrue(edgeImitator.waitForMessages(1));
Assert.assertTrue(edgeImitator.waitForMessages(5));
// create asset #2 and assign to edge
edgeImitator.expectMessageAmount(2);
@ -262,9 +262,9 @@ public class AssetEdgeTest extends AbstractEdgeTest {
private Asset saveAssetOnCloudAndVerifyDeliveryToEdge() throws Exception {
// create asset and assign to edge
Asset savedAsset = saveAsset(StringUtils.randomAlphanumeric(15));
edgeImitator.expectMessageAmount(1); // asset message
edgeImitator.expectMessageAmount(2); // asset and asset profile messages
doPost("/api/edge/" + edge.getUuidId()
+ "/asset/" + savedAsset.getUuidId(), Device.class);
+ "/asset/" + savedAsset.getUuidId(), Asset.class);
Assert.assertTrue(edgeImitator.waitForMessages());
Optional<AssetUpdateMsg> assetUpdateMsgOpt = edgeImitator.findMessageByType(AssetUpdateMsg.class);
Assert.assertTrue(assetUpdateMsgOpt.isPresent());

2
application/src/test/java/org/thingsboard/server/edge/CustomerEdgeTest.java

@ -42,7 +42,7 @@ public class CustomerEdgeTest extends AbstractEdgeTest {
Customer customer = new Customer();
customer.setTitle("Edge Customer");
Customer savedCustomer = doPost("/api/customer", customer, Customer.class);
Assert.assertFalse(edgeImitator.waitForMessages(1));
Assert.assertFalse(edgeImitator.waitForMessages(5));
// assign edge to customer
edgeImitator.expectMessageAmount(2);

2
application/src/test/java/org/thingsboard/server/edge/DashboardEdgeTest.java

@ -99,7 +99,7 @@ public class DashboardEdgeTest extends AbstractEdgeTest {
edgeImitator.expectMessageAmount(1);
doDelete("/api/dashboard/" + savedDashboard.getUuidId())
.andExpect(status().isOk());
Assert.assertTrue(edgeImitator.waitForMessages(1));
Assert.assertTrue(edgeImitator.waitForMessages(5));
// create dashboard #2 and assign to edge
edgeImitator.expectMessageAmount(1);

2
application/src/test/java/org/thingsboard/server/edge/DeviceEdgeTest.java

@ -106,7 +106,7 @@ public class DeviceEdgeTest extends AbstractEdgeTest {
edgeImitator.expectMessageAmount(1);
doDelete("/api/device/" + savedDevice.getUuidId())
.andExpect(status().isOk());
Assert.assertTrue(edgeImitator.waitForMessages(1));
Assert.assertTrue(edgeImitator.waitForMessages(5));
// create device #2 and assign to edge
edgeImitator.expectMessageAmount(2);

2
application/src/test/java/org/thingsboard/server/edge/EdgeTest.java

@ -39,7 +39,7 @@ public class EdgeTest extends AbstractEdgeTest {
Customer customer = new Customer();
customer.setTitle("Edge Customer");
Customer savedCustomer = doPost("/api/customer", customer, Customer.class);
Assert.assertFalse(edgeImitator.waitForMessages(1));
Assert.assertFalse(edgeImitator.waitForMessages(5));
// assign edge to customer
edgeImitator.expectMessageAmount(2);

2
application/src/test/java/org/thingsboard/server/edge/EntityViewEdgeTest.java

@ -105,7 +105,7 @@ public class EntityViewEdgeTest extends AbstractEdgeTest {
edgeImitator.expectMessageAmount(1);
doDelete("/api/entityView/" + savedEntityView.getUuidId())
.andExpect(status().isOk());
Assert.assertTrue(edgeImitator.waitForMessages(1));
Assert.assertTrue(edgeImitator.waitForMessages(5));
// create entity view #2 and assign to edge
edgeImitator.expectMessageAmount(1);

2
application/src/test/java/org/thingsboard/server/edge/RuleChainEdgeTest.java

@ -229,6 +229,6 @@ public class RuleChainEdgeTest extends AbstractEdgeTest {
edgeImitator.expectMessageAmount(1);
doDelete("/api/ruleChain/" + savedRuleChain.getUuidId())
.andExpect(status().isOk());
Assert.assertTrue(edgeImitator.waitForMessages(1));
Assert.assertTrue(edgeImitator.waitForMessages(5));
}
}

2
application/src/test/java/org/thingsboard/server/edge/UserEdgeTest.java

@ -120,7 +120,7 @@ public class UserEdgeTest extends AbstractEdgeTest {
Customer customer = new Customer();
customer.setTitle("Edge Customer");
Customer savedCustomer = doPost("/api/customer", customer, Customer.class);
Assert.assertFalse(edgeImitator.waitForMessages(1));
Assert.assertFalse(edgeImitator.waitForMessages(5));
// assign edge to customer
edgeImitator.expectMessageAmount(2);

1
application/src/test/java/org/thingsboard/server/edge/imitator/EdgeImitator.java

@ -173,6 +173,7 @@ public class EdgeImitator {
}
private ListenableFuture<List<Void>> processDownlinkMsg(DownlinkMsg downlinkMsg) {
log.trace("processDownlinkMsg: {}", downlinkMsg);
List<ListenableFuture<Void>> result = new ArrayList<>();
if (downlinkMsg.getAdminSettingsUpdateMsgCount() > 0) {
for (AdminSettingsUpdateMsg adminSettingsUpdateMsg : downlinkMsg.getAdminSettingsUpdateMsgList()) {

2
application/src/test/resources/application-test.properties

@ -11,8 +11,6 @@ transport.lwm2m.security.trust-credentials.keystore.store_file=lwm2m/credentials
# Edge disabled to speed up the context init. Will be enabled by @TestPropertySource in respective tests
edges.enabled=false
edges.storage.no_read_records_sleep=500
edges.storage.sleep_between_batches=500
actors.rpc.submit_strategy=BURST
queue.rule-engine.stats.enabled=true

5
dao/src/test/resources/sql/system-test-psql.sql

@ -1,5 +1,2 @@
--PostgreSQL specific truncate to fit constraints
TRUNCATE TABLE device_credentials, device, device_profile, asset, asset_profile, ota_package, rule_node_state, rule_node, rule_chain, alarm_comment, alarm, entity_alarm;
-- Decrease seq_id column to make sure to cover cases of new sequential cycle during the tests
ALTER SEQUENCE edge_event_seq_id_seq MAXVALUE 256;
TRUNCATE TABLE device_credentials, device, device_profile, asset, asset_profile, ota_package, rule_node_state, rule_node, rule_chain, alarm_comment, alarm, entity_alarm;
Loading…
Cancel
Save