Screenshot addition on every test. Logger changed

pull/20/head
pabloFuente 2017-10-17 18:54:42 +02:00
parent 6737def885
commit 2f93a04cb2
3 changed files with 88 additions and 10 deletions

View File

@ -21,6 +21,8 @@ import static java.lang.invoke.MethodHandles.lookup;
import static org.slf4j.LoggerFactory.getLogger; import static org.slf4j.LoggerFactory.getLogger;
import static java.lang.System.getProperty; import static java.lang.System.getProperty;
import static org.openqa.selenium.OutputType.BASE64;
import java.util.List; import java.util.List;
import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.AfterEach;
@ -35,6 +37,7 @@ import org.junit.platform.runner.JUnitPlatform;
import org.junit.Assert; import org.junit.Assert;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.Keys; import org.openqa.selenium.Keys;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -73,7 +76,7 @@ public class OpenViduTestAppE2eTest {
static void setupAll() { static void setupAll() {
ChromeDriverManager.getInstance().setup(); ChromeDriverManager.getInstance().setup();
FirefoxDriverManager.getInstance().setup(); FirefoxDriverManager.getInstance().setup();
String appUrl = getProperty("app.url"); String appUrl = getProperty("app.url");
if (appUrl != null) { if (appUrl != null) {
APP_URL = appUrl; APP_URL = appUrl;
@ -96,7 +99,7 @@ public class OpenViduTestAppE2eTest {
@BeforeEach @BeforeEach
void setup() { void setup() {
this.user = new ChromeUser("TestUser", 45); this.user = new ChromeUser("TestUser", 100);
user.getDriver().get(APP_URL); user.getDriver().get(APP_URL);
@ -109,7 +112,7 @@ public class OpenViduTestAppE2eTest {
user.getEventManager().startPolling(); user.getEventManager().startPolling();
} }
@AfterEach @AfterEach
void dispose() { void dispose() {
user.dispose(); user.dispose();
@ -119,10 +122,18 @@ public class OpenViduTestAppE2eTest {
@DisplayName("One2One [Video + Audio]") @DisplayName("One2One [Video + Audio]")
void oneToOneVideoAudioSession() throws Exception { void oneToOneVideoAudioSession() throws Exception {
log.info("One2One [Video + Audio]");
user.getDriver().findElement(By.id("auto-join-checkbox")).click(); user.getDriver().findElement(By.id("auto-join-checkbox")).click();
user.getDriver().findElement(By.id("one2one-btn")).click(); user.getDriver().findElement(By.id("one2one-btn")).click();
user.getEventManager().waitUntilNumberOfEvent("videoPlaying", 4); user.getEventManager().waitUntilNumberOfEvent("videoPlaying", 4);
try {
System.out.println(getBase64Screenshot(user));
} catch (Exception e) {
e.printStackTrace();
}
Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")), Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")),
true, true)); true, true));
@ -143,6 +154,8 @@ public class OpenViduTestAppE2eTest {
@DisplayName("One2One [Audio]") @DisplayName("One2One [Audio]")
void oneToOneAudioSession() throws Exception { void oneToOneAudioSession() throws Exception {
log.info("One2One [Audio]");
user.getDriver().findElement(By.id("one2one-btn")).click(); user.getDriver().findElement(By.id("one2one-btn")).click();
List<WebElement> l1 = user.getDriver().findElements(By.className("send-video-checkbox")); List<WebElement> l1 = user.getDriver().findElements(By.className("send-video-checkbox"));
@ -160,6 +173,12 @@ public class OpenViduTestAppE2eTest {
user.getEventManager().waitUntilNumberOfEvent("videoElementCreated", 4); user.getEventManager().waitUntilNumberOfEvent("videoElementCreated", 4);
user.getEventManager().waitUntilNumberOfEvent("streamCreated", 1); user.getEventManager().waitUntilNumberOfEvent("streamCreated", 1);
user.getEventManager().waitUntilNumberOfEvent("videoPlaying", 4); user.getEventManager().waitUntilNumberOfEvent("videoPlaying", 4);
try {
System.out.println(getBase64Screenshot(user));
} catch (Exception e) {
e.printStackTrace();
}
Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")), Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")),
true, false)); true, false));
@ -178,6 +197,8 @@ public class OpenViduTestAppE2eTest {
@DisplayName("One2One [Video]") @DisplayName("One2One [Video]")
void oneToOneVideoSession() throws Exception { void oneToOneVideoSession() throws Exception {
log.info("One2One [Video]");
user.getDriver().findElement(By.id("one2one-btn")).click(); user.getDriver().findElement(By.id("one2one-btn")).click();
List<WebElement> l1 = user.getDriver().findElements(By.className("send-audio-checkbox")); List<WebElement> l1 = user.getDriver().findElements(By.className("send-audio-checkbox"));
@ -195,6 +216,12 @@ public class OpenViduTestAppE2eTest {
user.getEventManager().waitUntilNumberOfEvent("videoElementCreated", 4); user.getEventManager().waitUntilNumberOfEvent("videoElementCreated", 4);
user.getEventManager().waitUntilNumberOfEvent("streamCreated", 1); user.getEventManager().waitUntilNumberOfEvent("streamCreated", 1);
user.getEventManager().waitUntilNumberOfEvent("videoPlaying", 4); user.getEventManager().waitUntilNumberOfEvent("videoPlaying", 4);
try {
System.out.println(getBase64Screenshot(user));
} catch (Exception e) {
e.printStackTrace();
}
Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")), Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")),
false, true)); false, true));
@ -213,10 +240,18 @@ public class OpenViduTestAppE2eTest {
@DisplayName("One2Many [Video + Audio]") @DisplayName("One2Many [Video + Audio]")
void oneToManyVideoAudioSession() throws Exception { void oneToManyVideoAudioSession() throws Exception {
log.info("One2Many [Video + Audio]");
user.getDriver().findElement(By.id("auto-join-checkbox")).click(); user.getDriver().findElement(By.id("auto-join-checkbox")).click();
user.getDriver().findElement(By.id("one2many-btn")).click(); user.getDriver().findElement(By.id("one2many-btn")).click();
user.getEventManager().waitUntilNumberOfEvent("videoPlaying", 4); user.getEventManager().waitUntilNumberOfEvent("videoPlaying", 4);
try {
System.out.println(getBase64Screenshot(user));
} catch (Exception e) {
e.printStackTrace();
}
user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")), true, true); user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")), true, true);
@ -229,6 +264,8 @@ public class OpenViduTestAppE2eTest {
@DisplayName("Unique user remote subscription [Video + Audio]") @DisplayName("Unique user remote subscription [Video + Audio]")
void oneRemoteSubscription() throws Exception { void oneRemoteSubscription() throws Exception {
log.info("Unique user remote subscription [Video + Audio]");
user.getDriver().findElement(By.id("add-user-btn")).click(); user.getDriver().findElement(By.id("add-user-btn")).click();
user.getDriver().findElement(By.className("subscribe-remote-check")).click(); user.getDriver().findElement(By.className("subscribe-remote-check")).click();
user.getDriver().findElement(By.className("join-btn")).click(); user.getDriver().findElement(By.className("join-btn")).click();
@ -237,6 +274,12 @@ public class OpenViduTestAppE2eTest {
user.getEventManager().waitUntilNumberOfEvent("accessAllowed", 1); user.getEventManager().waitUntilNumberOfEvent("accessAllowed", 1);
user.getEventManager().waitUntilNumberOfEvent("videoElementCreated", 1); user.getEventManager().waitUntilNumberOfEvent("videoElementCreated", 1);
user.getEventManager().waitUntilNumberOfEvent("remoteVideoPlaying", 1); user.getEventManager().waitUntilNumberOfEvent("remoteVideoPlaying", 1);
try {
System.out.println(getBase64Screenshot(user));
} catch (Exception e) {
e.printStackTrace();
}
Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")), Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")),
true, true)); true, true));
@ -250,6 +293,8 @@ public class OpenViduTestAppE2eTest {
@DisplayName("Unique user remote subscription [ScreenShare + Audio]") @DisplayName("Unique user remote subscription [ScreenShare + Audio]")
void oneRemoteSubscriptionScreen() throws Exception { void oneRemoteSubscriptionScreen() throws Exception {
log.info("Unique user remote subscription [ScreenShare + Audio]");
user.getDriver().findElement(By.id("add-user-btn")).click(); user.getDriver().findElement(By.id("add-user-btn")).click();
user.getDriver().findElement(By.className("screen-radio")).click(); user.getDriver().findElement(By.className("screen-radio")).click();
user.getDriver().findElement(By.className("subscribe-remote-check")).click(); user.getDriver().findElement(By.className("subscribe-remote-check")).click();
@ -259,6 +304,12 @@ public class OpenViduTestAppE2eTest {
user.getEventManager().waitUntilNumberOfEvent("accessAllowed", 1); user.getEventManager().waitUntilNumberOfEvent("accessAllowed", 1);
user.getEventManager().waitUntilNumberOfEvent("videoElementCreated", 1); user.getEventManager().waitUntilNumberOfEvent("videoElementCreated", 1);
user.getEventManager().waitUntilNumberOfEvent("remoteVideoPlaying", 1); user.getEventManager().waitUntilNumberOfEvent("remoteVideoPlaying", 1);
try {
System.out.println(getBase64Screenshot(user));
} catch (Exception e) {
e.printStackTrace();
}
Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")), Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")),
true, true)); true, true));
@ -272,6 +323,8 @@ public class OpenViduTestAppE2eTest {
@DisplayName("Many2Many [Video + Audio]") @DisplayName("Many2Many [Video + Audio]")
void manyToManyVideoAudioSession() throws Exception { void manyToManyVideoAudioSession() throws Exception {
log.info("Many2Many [Video + Audio]");
WebElement addUser = user.getDriver().findElement(By.id("add-user-btn")); WebElement addUser = user.getDriver().findElement(By.id("add-user-btn"));
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
addUser.click(); addUser.click();
@ -287,6 +340,12 @@ public class OpenViduTestAppE2eTest {
user.getEventManager().waitUntilNumberOfEvent("videoElementCreated", 16); user.getEventManager().waitUntilNumberOfEvent("videoElementCreated", 16);
user.getEventManager().waitUntilNumberOfEvent("streamCreated", 6); user.getEventManager().waitUntilNumberOfEvent("streamCreated", 6);
user.getEventManager().waitUntilNumberOfEvent("videoPlaying", 16); user.getEventManager().waitUntilNumberOfEvent("videoPlaying", 16);
try {
System.out.println(getBase64Screenshot(user));
} catch (Exception e) {
e.printStackTrace();
}
Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")), Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")),
true, true)); true, true));
@ -312,6 +371,8 @@ public class OpenViduTestAppE2eTest {
@DisplayName("Secure Test") @DisplayName("Secure Test")
void secureTest() throws Exception { void secureTest() throws Exception {
log.info("Secure Test");
WebElement addUser = user.getDriver().findElement(By.id("add-user-btn")); WebElement addUser = user.getDriver().findElement(By.id("add-user-btn"));
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
addUser.click(); addUser.click();
@ -347,6 +408,12 @@ public class OpenViduTestAppE2eTest {
user.getEventManager().waitUntilNumberOfEvent("videoElementCreated", 16); user.getEventManager().waitUntilNumberOfEvent("videoElementCreated", 16);
user.getEventManager().waitUntilNumberOfEvent("streamCreated", 6); user.getEventManager().waitUntilNumberOfEvent("streamCreated", 6);
user.getEventManager().waitUntilNumberOfEvent("videoPlaying", 16); user.getEventManager().waitUntilNumberOfEvent("videoPlaying", 16);
try {
System.out.println(getBase64Screenshot(user));
} catch (Exception e) {
e.printStackTrace();
}
Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")), Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")),
true, true)); true, true));
@ -372,6 +439,8 @@ public class OpenViduTestAppE2eTest {
@DisplayName("Cross-Browser test") @DisplayName("Cross-Browser test")
void crossBrowserTest() throws Exception { void crossBrowserTest() throws Exception {
log.info("Cross-Browser test");
Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() { Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() {
public void uncaughtException(Thread th, Throwable ex) { public void uncaughtException(Thread th, Throwable ex) {
System.out.println("Uncaught exception: " + ex); System.out.println("Uncaught exception: " + ex);
@ -415,6 +484,12 @@ public class OpenViduTestAppE2eTest {
user.getDriver().findElement(By.className("join-btn")).click(); user.getDriver().findElement(By.className("join-btn")).click();
user.getEventManager().waitUntilNumberOfEvent("videoPlaying", 2); user.getEventManager().waitUntilNumberOfEvent("videoPlaying", 2);
try {
System.out.println(getBase64Screenshot(user));
} catch (Exception e) {
e.printStackTrace();
}
Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")), Assert.assertTrue(user.getEventManager().assertMediaTracks(user.getDriver().findElements(By.tagName("video")),
true, true)); true, true));
@ -432,4 +507,9 @@ public class OpenViduTestAppE2eTest {
} }
} }
private String getBase64Screenshot(BrowserUser user) throws Exception {
String screenshotBase64 = ((TakesScreenshot) user.getDriver()).getScreenshotAs(BASE64);
return "data:image/png;base64," + screenshotBase64;
}
} }

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<logger name="io.openvidu.test.e2e" level="INFO" />
</configuration>

View File

@ -1,7 +0,0 @@
org.slf4j.simpleLogger.defaultLogLevel=DEBUG
org.slf4j.simpleLogger.logFile=System.out
org.slf4j.simpleLogger.showDateTime=true
org.slf4j.simpleLogger.dateTimeFormat=[yyyy-MM-dd HH:mm:ss:SSS]
org.slf4j.simpleLogger.showThreadName=true
org.slf4j.simpleLogger.showLogName=true
org.slf4j.simpleLogger.showShortLogName=true