openvidu-test-e2e: reduce tests flakyness with active waits

dependabot/npm_and_yarn/openvidu-testapp/elliptic-6.6.0
pabloFuente 2024-10-21 13:33:34 +02:00
parent 333436a90e
commit 9f4bcc827e
1 changed files with 13 additions and 13 deletions

View File

@ -445,19 +445,14 @@ public class OpenViduTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
// An enabled subscribed track increases its bytesReceived over time // An enabled subscribed track increases its bytesReceived over time
long bytesReceived = this.getSubscriberVideoBytesReceived(user, subscriberVideo); long bytesReceived = this.getSubscriberVideoBytesReceived(user, subscriberVideo);
Thread.sleep(500); this.waitUntilSubscriberBytesReceivedIncrease(user, subscriberVideo, bytesReceived);
Assertions.assertTrue(bytesReceived < this.getSubscriberVideoBytesReceived(user, subscriberVideo),
"Subscriber enabled should have increased its bytesReceived");
user.getDriver().findElement(By.id("close-dialog-btn")).click();
Thread.sleep(300);
// A disabled subscribed track does not increase its bytesReceived over time // A disabled subscribed track does not increase its bytesReceived over time
WebElement enableToggle = user.getDriver() WebElement enableToggle = user.getDriver()
.findElement(By.cssSelector("#openvidu-instance-1 .toggle-video-enabled")); .findElement(By.cssSelector("#openvidu-instance-1 .toggle-video-enabled"));
enableToggle.click(); enableToggle.click();
bytesReceived = this.getSubscriberVideoBytesReceived(user, subscriberVideo); bytesReceived = this.getSubscriberVideoBytesReceived(user, subscriberVideo);
Thread.sleep(1000); Thread.sleep(1250);
Assertions.assertEquals(bytesReceived, this.getSubscriberVideoBytesReceived(user, subscriberVideo), Assertions.assertEquals(bytesReceived, this.getSubscriberVideoBytesReceived(user, subscriberVideo),
"Subscriber disabled should have NOT increased its bytesReceived"); "Subscriber disabled should have NOT increased its bytesReceived");
@ -465,9 +460,7 @@ public class OpenViduTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
Thread.sleep(300); Thread.sleep(300);
enableToggle.click(); enableToggle.click();
Thread.sleep(500); this.waitUntilSubscriberBytesReceivedIncrease(user, subscriberVideo, bytesReceived);
Assertions.assertTrue(bytesReceived < this.getSubscriberVideoBytesReceived(user, subscriberVideo),
"Subscriber enabled should have increased its bytesReceived");
gracefullyLeaveParticipants(user, 2); gracefullyLeaveParticipants(user, 2);
} }
@ -514,8 +507,7 @@ public class OpenViduTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
this.waitUntilPublisherLayerActive(user, publisherVideo, "q", false); this.waitUntilPublisherLayerActive(user, publisherVideo, "q", false);
firstSubscriberToggle.click(); firstSubscriberToggle.click();
Assertions.assertTrue(bytesReceived < this.getSubscriberVideoBytesReceived(user, subscriberVideo1), this.waitUntilSubscriberBytesReceivedIncrease(user, subscriberVideo1, bytesReceived);
"Subscriber enabled should have increased its bytesReceived");
this.waitUntilPublisherLayerActive(user, publisherVideo, "f", true); this.waitUntilPublisherLayerActive(user, publisherVideo, "f", true);
this.waitUntilPublisherLayerActive(user, publisherVideo, "h", true); this.waitUntilPublisherLayerActive(user, publisherVideo, "h", true);
this.waitUntilPublisherLayerActive(user, publisherVideo, "q", true); this.waitUntilPublisherLayerActive(user, publisherVideo, "q", true);
@ -824,13 +816,14 @@ public class OpenViduTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
Assertions.assertTrue(user.getBrowserUser().assertAllElementsHaveTracks("video", false, true), Assertions.assertTrue(user.getBrowserUser().assertAllElementsHaveTracks("video", false, true),
"HTMLVideoElements were expected to have only one audio track"); "HTMLVideoElements were expected to have only one audio track");
// Some time for the subscriber's track to settle in one simulcasted resolution
Thread.sleep(3000); Thread.sleep(3000);
WebElement subscriberVideo = user.getDriver().findElement(By.cssSelector("#openvidu-instance-1 video.remote")); WebElement subscriberVideo = user.getDriver().findElement(By.cssSelector("#openvidu-instance-1 video.remote"));
int oldFrameWidth = this.getSubscriberVideoFrameWidth(user, subscriberVideo); int oldFrameWidth = this.getSubscriberVideoFrameWidth(user, subscriberVideo);
user.getBrowserUser().changeElementSize(subscriberVideo, 1000, 700); user.getBrowserUser().changeElementSize(subscriberVideo, 1000, 700);
Thread.sleep(2300); Thread.sleep(2000);
int newFrameWidth = this.getSubscriberVideoFrameWidth(user, subscriberVideo); int newFrameWidth = this.getSubscriberVideoFrameWidth(user, subscriberVideo);
Assertions.assertEquals(oldFrameWidth, newFrameWidth, Assertions.assertEquals(oldFrameWidth, newFrameWidth,
@ -1110,6 +1103,13 @@ public class OpenViduTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
} }
} }
private void waitUntilSubscriberBytesReceivedIncrease(OpenViduTestappUser user, WebElement videoElement,
final long previousBytesReceived) {
this.waitUntilAux(user, videoElement, () -> {
return this.getSubscriberVideoBytesReceived(user, videoElement) > previousBytesReceived;
}, "Timeout waiting for subscriber track to increase its bytesReceived from " + previousBytesReceived);
}
private void waitUntilPublisherLayerActive(OpenViduTestappUser user, final WebElement publisherVideo, private void waitUntilPublisherLayerActive(OpenViduTestappUser user, final WebElement publisherVideo,
final String rid, final boolean active) { final String rid, final boolean active) {
this.waitUntilAux(user, publisherVideo, () -> { this.waitUntilAux(user, publisherVideo, () -> {