mirror of https://github.com/OpenVidu/openvidu.git
openvidu-test-e2e: remove unnecessary webdriver-manager. Use new Selenium Manager
parent
863f633c64
commit
5abd19deca
|
@ -101,12 +101,6 @@
|
||||||
<groupId>io.appium</groupId>
|
<groupId>io.appium</groupId>
|
||||||
<artifactId>java-client</artifactId>
|
<artifactId>java-client</artifactId>
|
||||||
<version>${version.appium}</version>
|
<version>${version.appium}</version>
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
<artifactId>spring-context</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
|
@ -3,22 +3,16 @@ package io.openvidu.test.browsers;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
|
||||||
import org.openqa.selenium.WebElement;
|
|
||||||
|
|
||||||
import io.appium.java_client.AppiumDriver;
|
import io.appium.java_client.AppiumDriver;
|
||||||
import io.appium.java_client.android.AndroidOptions;
|
import io.appium.java_client.android.options.UiAutomator2Options;
|
||||||
import io.appium.java_client.remote.MobilePlatform;
|
|
||||||
|
|
||||||
public class AndroidAppUser extends BrowserUser {
|
public class AndroidAppUser extends BrowserUser {
|
||||||
|
|
||||||
public AndroidAppUser(String userName, int timeOfWaitInSeconds, String appPath) {
|
public AndroidAppUser(String userName, int timeOfWaitInSeconds, String appPath) {
|
||||||
super(userName, timeOfWaitInSeconds);
|
super(userName, timeOfWaitInSeconds);
|
||||||
|
|
||||||
AndroidOptions options = new AndroidOptions();
|
UiAutomator2Options options = new UiAutomator2Options();
|
||||||
options.setAutomationName("UiAutomator2");
|
|
||||||
options.setPlatformVersion("12.0");
|
options.setPlatformVersion("12.0");
|
||||||
options.setPlatformName(MobilePlatform.ANDROID);
|
|
||||||
options.setAutomationName("UiAutomator2");
|
|
||||||
options.setDeviceName("Android device");
|
options.setDeviceName("Android device");
|
||||||
options.setAutoWebview(true);
|
options.setAutoWebview(true);
|
||||||
options.setApp(appPath);
|
options.setApp(appPath);
|
||||||
|
@ -29,7 +23,7 @@ public class AndroidAppUser extends BrowserUser {
|
||||||
} catch (MalformedURLException e) {
|
} catch (MalformedURLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
this.driver = new AppiumDriver<WebElement>(url, options);
|
this.driver = new AppiumDriver(url, options);
|
||||||
|
|
||||||
this.configureDriver();
|
this.configureDriver();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,78 +0,0 @@
|
||||||
package io.openvidu.test.browsers;
|
|
||||||
|
|
||||||
import java.net.MalformedURLException;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.openqa.selenium.UnexpectedAlertBehaviour;
|
|
||||||
import org.openqa.selenium.firefox.FirefoxOptions;
|
|
||||||
import org.openqa.selenium.firefox.FirefoxProfile;
|
|
||||||
import org.openqa.selenium.remote.RemoteWebDriver;
|
|
||||||
|
|
||||||
import io.appium.java_client.android.AndroidDriver;
|
|
||||||
import io.appium.java_client.remote.MobileCapabilityType;
|
|
||||||
import io.appium.java_client.remote.MobilePlatform;
|
|
||||||
|
|
||||||
public class AndroidFirefoxUser extends BrowserUser {
|
|
||||||
|
|
||||||
public AndroidFirefoxUser(String userName, int timeOfWaitInSeconds) {
|
|
||||||
super(userName, timeOfWaitInSeconds);
|
|
||||||
|
|
||||||
FirefoxOptions options = new FirefoxOptions();
|
|
||||||
options.setCapability(MobileCapabilityType.PLATFORM_VERSION, "12.0");
|
|
||||||
options.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
|
|
||||||
options.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Appium");
|
|
||||||
|
|
||||||
URL url = null;
|
|
||||||
try {
|
|
||||||
url = new URL("http://172.17.0.1:4723/wd/hub");
|
|
||||||
} catch (MalformedURLException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
AndroidDriver<?> driver = new AndroidDriver<>(url, options);
|
|
||||||
driver.installApp("/opt/openvidu-cache/firefox-91-4-0.apk");
|
|
||||||
driver.quit();
|
|
||||||
|
|
||||||
options.setAcceptInsecureCerts(true);
|
|
||||||
options.setUnhandledPromptBehaviour(UnexpectedAlertBehaviour.IGNORE);
|
|
||||||
|
|
||||||
FirefoxProfile profile = new FirefoxProfile();
|
|
||||||
// This flag avoids granting the access to the camera
|
|
||||||
profile.setPreference("media.navigator.permission.disabled", true);
|
|
||||||
// This flag force to use fake user media (synthetic video of multiple color)
|
|
||||||
profile.setPreference("media.navigator.streams.fake", true);
|
|
||||||
// These flags allows controlling Firefox remotely
|
|
||||||
profile.setPreference("devtools.debugger.remote-enabled", true);
|
|
||||||
|
|
||||||
options.setCapability(MobileCapabilityType.DEVICE_NAME, "Android device");
|
|
||||||
options.setCapability(MobileCapabilityType.BROWSER_NAME, "firefox");
|
|
||||||
options.setCapability(MobileCapabilityType.PLATFORM_NAME, "linux");
|
|
||||||
options.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Gecko");
|
|
||||||
|
|
||||||
options.setCapability("appium:automationName", "Gecko");
|
|
||||||
options.setCapability("marionette", true);
|
|
||||||
options.setCapability("appium:marionette", true);
|
|
||||||
options.setCapability("androidStorage", "app");
|
|
||||||
options.setCapability("appium:androidStorage", "app");
|
|
||||||
|
|
||||||
Map<String, Object> mozFirefoxOptions = new HashMap<>();
|
|
||||||
mozFirefoxOptions.put("androidPackage", "org.mozilla.firefox");
|
|
||||||
mozFirefoxOptions.put("androidDeviceSerial", "emulator-5554");
|
|
||||||
mozFirefoxOptions.put("binary", "/Applications/Firefox.app");
|
|
||||||
options.setCapability("moz:firefoxOptions", mozFirefoxOptions);
|
|
||||||
|
|
||||||
long initTime = System.currentTimeMillis();
|
|
||||||
try {
|
|
||||||
this.driver = new RemoteWebDriver(url, options);
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("{}", e);
|
|
||||||
}
|
|
||||||
log.info("Remote web driver for Firefox Android initialized after {} ms",
|
|
||||||
System.currentTimeMillis() - initTime);
|
|
||||||
|
|
||||||
this.configureDriver();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -72,17 +72,6 @@
|
||||||
<artifactId>spring-boot-starter-test</artifactId>
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
<version>${version.spring-boot}</version>
|
<version>${version.spring-boot}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>io.github.bonigarcia</groupId>
|
|
||||||
<artifactId>webdrivermanager</artifactId>
|
|
||||||
<version>5.3.1</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.seleniumhq.selenium</groupId>
|
<groupId>org.seleniumhq.selenium</groupId>
|
||||||
<artifactId>selenium-java</artifactId>
|
<artifactId>selenium-java</artifactId>
|
||||||
|
|
|
@ -43,14 +43,12 @@ import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
|
|
||||||
import io.github.bonigarcia.wdm.WebDriverManager;
|
|
||||||
import io.openvidu.java.client.OpenVidu;
|
import io.openvidu.java.client.OpenVidu;
|
||||||
import io.openvidu.java.client.OpenViduHttpException;
|
import io.openvidu.java.client.OpenViduHttpException;
|
||||||
import io.openvidu.java.client.OpenViduJavaClientException;
|
import io.openvidu.java.client.OpenViduJavaClientException;
|
||||||
import io.openvidu.java.client.VideoCodec;
|
import io.openvidu.java.client.VideoCodec;
|
||||||
import io.openvidu.test.browsers.AndroidAppUser;
|
import io.openvidu.test.browsers.AndroidAppUser;
|
||||||
import io.openvidu.test.browsers.AndroidChromeUser;
|
import io.openvidu.test.browsers.AndroidChromeUser;
|
||||||
import io.openvidu.test.browsers.AndroidFirefoxUser;
|
|
||||||
import io.openvidu.test.browsers.BrowserUser;
|
import io.openvidu.test.browsers.BrowserUser;
|
||||||
import io.openvidu.test.browsers.ChromeUser;
|
import io.openvidu.test.browsers.ChromeUser;
|
||||||
import io.openvidu.test.browsers.EdgeUser;
|
import io.openvidu.test.browsers.EdgeUser;
|
||||||
|
@ -197,21 +195,6 @@ public class OpenViduTestE2e {
|
||||||
return android;
|
return android;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static void prepareBrowserDrivers(Set<BrowserNames> browsers) {
|
|
||||||
if (browsers.contains(BrowserNames.CHROME) && !isRemote(BrowserNames.CHROME)) {
|
|
||||||
WebDriverManager.chromedriver().setup();
|
|
||||||
}
|
|
||||||
if (browsers.contains(BrowserNames.FIREFOX) && !isRemote(BrowserNames.FIREFOX)) {
|
|
||||||
WebDriverManager.firefoxdriver().setup();
|
|
||||||
}
|
|
||||||
if (browsers.contains(BrowserNames.OPERA) && !isRemote(BrowserNames.OPERA)) {
|
|
||||||
WebDriverManager.operadriver().setup();
|
|
||||||
}
|
|
||||||
if (browsers.contains(BrowserNames.EDGE) && !isRemote(BrowserNames.EDGE)) {
|
|
||||||
WebDriverManager.edgedriver().setup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static void cleanFoldersAndSetUpOpenViduJavaClient() {
|
protected static void cleanFoldersAndSetUpOpenViduJavaClient() {
|
||||||
try {
|
try {
|
||||||
log.info("Cleaning folder /opt/openvidu/recordings");
|
log.info("Cleaning folder /opt/openvidu/recordings");
|
||||||
|
@ -401,18 +384,6 @@ public class OpenViduTestE2e {
|
||||||
}
|
}
|
||||||
browserUser = new AndroidChromeUser("TestUser", 50);
|
browserUser = new AndroidChromeUser("TestUser", 50);
|
||||||
break;
|
break;
|
||||||
case "androidFirefox":
|
|
||||||
container = androidContainer("budtmo/docker-android-x86-12.0:latest", 4294967296L);
|
|
||||||
setupBrowserAux(BrowserNames.ANDROID, container, false);
|
|
||||||
try {
|
|
||||||
// Download geckodriver and place in PATH at /usr/bin/
|
|
||||||
container.execInContainer("bash", "-c",
|
|
||||||
"wget https://github.com/mozilla/geckodriver/releases/download/v0.30.0/geckodriver-v0.30.0-linux64.tar.gz && tar -xf geckodriver*.tar.gz && rm geckodriver*.tar.gz && mv geckodriver /usr/bin/.");
|
|
||||||
} catch (UnsupportedOperationException | IOException | InterruptedException e) {
|
|
||||||
log.error("Error running command in Android container");
|
|
||||||
}
|
|
||||||
browserUser = new AndroidFirefoxUser("TestUser", 50);
|
|
||||||
break;
|
|
||||||
case "androidApp":
|
case "androidApp":
|
||||||
container = androidContainer("budtmo/docker-android-x86-12.0:latest", 4294967296L);
|
container = androidContainer("budtmo/docker-android-x86-12.0:latest", 4294967296L);
|
||||||
setupBrowserAux(BrowserNames.ANDROID, container, false);
|
setupBrowserAux(BrowserNames.ANDROID, container, false);
|
||||||
|
|
|
@ -50,7 +50,6 @@ import io.openvidu.java.client.OpenViduHttpException;
|
||||||
import io.openvidu.java.client.OpenViduRole;
|
import io.openvidu.java.client.OpenViduRole;
|
||||||
import io.openvidu.java.client.Recording;
|
import io.openvidu.java.client.Recording;
|
||||||
import io.openvidu.java.client.Session;
|
import io.openvidu.java.client.Session;
|
||||||
import io.openvidu.test.browsers.utils.BrowserNames;
|
|
||||||
import io.openvidu.test.browsers.utils.CustomHttpClient;
|
import io.openvidu.test.browsers.utils.CustomHttpClient;
|
||||||
import io.openvidu.test.browsers.utils.Unzipper;
|
import io.openvidu.test.browsers.utils.Unzipper;
|
||||||
|
|
||||||
|
@ -62,7 +61,6 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
protected static void setupAll() {
|
protected static void setupAll() {
|
||||||
checkFfmpegInstallation();
|
checkFfmpegInstallation();
|
||||||
loadEnvironmentVariables();
|
loadEnvironmentVariables();
|
||||||
prepareBrowserDrivers(new HashSet<>(Arrays.asList(BrowserNames.CHROME)));
|
|
||||||
cleanFoldersAndSetUpOpenViduJavaClient();
|
cleanFoldersAndSetUpOpenViduJavaClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,6 @@ import java.io.File;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -81,7 +80,6 @@ import io.openvidu.java.client.Session;
|
||||||
import io.openvidu.java.client.SessionProperties;
|
import io.openvidu.java.client.SessionProperties;
|
||||||
import io.openvidu.java.client.VideoCodec;
|
import io.openvidu.java.client.VideoCodec;
|
||||||
import io.openvidu.test.browsers.BrowserUser;
|
import io.openvidu.test.browsers.BrowserUser;
|
||||||
import io.openvidu.test.browsers.utils.BrowserNames;
|
|
||||||
import io.openvidu.test.browsers.utils.CustomHttpClient;
|
import io.openvidu.test.browsers.utils.CustomHttpClient;
|
||||||
import io.openvidu.test.browsers.utils.RecordingUtils;
|
import io.openvidu.test.browsers.utils.RecordingUtils;
|
||||||
import io.openvidu.test.browsers.utils.layout.CustomLayoutHandler;
|
import io.openvidu.test.browsers.utils.layout.CustomLayoutHandler;
|
||||||
|
@ -103,8 +101,6 @@ public class OpenViduTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
protected static void setupAll() throws Exception {
|
protected static void setupAll() throws Exception {
|
||||||
checkFfmpegInstallation();
|
checkFfmpegInstallation();
|
||||||
loadEnvironmentVariables();
|
loadEnvironmentVariables();
|
||||||
prepareBrowserDrivers(new HashSet<>(Arrays.asList(BrowserNames.CHROME, BrowserNames.FIREFOX,
|
|
||||||
BrowserNames.EDGE /* , BrowserNames.OPERA, BrowserNames.ANDROID */)));
|
|
||||||
cleanFoldersAndSetUpOpenViduJavaClient();
|
cleanFoldersAndSetUpOpenViduJavaClient();
|
||||||
getDefaultTranscodingValues();
|
getDefaultTranscodingValues();
|
||||||
}
|
}
|
||||||
|
@ -173,7 +169,7 @@ public class OpenViduTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
log.info("Android emulator ready after {} seconds", (System.currentTimeMillis() - initTime) / 1000);
|
log.info("Android emulator ready after {} seconds", (System.currentTimeMillis() - initTime) / 1000);
|
||||||
log.info("One2One Ionic Android");
|
log.info("One2One Ionic Android");
|
||||||
|
|
||||||
AppiumDriver<WebElement> appiumDriver = (AppiumDriver) user.getDriver();
|
AppiumDriver appiumDriver = (AppiumDriver) user.getDriver();
|
||||||
appiumDriver.findElement(By.cssSelector("#settings-button")).click();
|
appiumDriver.findElement(By.cssSelector("#settings-button")).click();
|
||||||
Thread.sleep(500);
|
Thread.sleep(500);
|
||||||
WebElement urlInput = appiumDriver.findElement(By.cssSelector("#openvidu-url"));
|
WebElement urlInput = appiumDriver.findElement(By.cssSelector("#openvidu-url"));
|
||||||
|
|
4
pom.xml
4
pom.xml
|
@ -51,7 +51,7 @@
|
||||||
<version.openvidu.test.e2e>1.1.1</version.openvidu.test.e2e>
|
<version.openvidu.test.e2e>1.1.1</version.openvidu.test.e2e>
|
||||||
|
|
||||||
<version.junit>5.9.1</version.junit>
|
<version.junit>5.9.1</version.junit>
|
||||||
<version.selenium>4.6.0</version.selenium>
|
<version.selenium>4.7.2</version.selenium>
|
||||||
<version.mockito.core>4.9.0</version.mockito.core>
|
<version.mockito.core>4.9.0</version.mockito.core>
|
||||||
<version.powermock>2.0.9</version.powermock>
|
<version.powermock>2.0.9</version.powermock>
|
||||||
<version.janino>3.1.9</version.janino>
|
<version.janino>3.1.9</version.janino>
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
<version.gson>2.10</version.gson>
|
<version.gson>2.10</version.gson>
|
||||||
<version.jcodec>0.2.5</version.jcodec>
|
<version.jcodec>0.2.5</version.jcodec>
|
||||||
<version.testcontainers>1.17.6</version.testcontainers>
|
<version.testcontainers>1.17.6</version.testcontainers>
|
||||||
<version.appium>7.6.0</version.appium>
|
<version.appium>8.3.0</version.appium>
|
||||||
<version.stringsimilarity>2.0.0</version.stringsimilarity>
|
<version.stringsimilarity>2.0.0</version.stringsimilarity>
|
||||||
|
|
||||||
<version.compiler.plugin>3.10.1</version.compiler.plugin>
|
<version.compiler.plugin>3.10.1</version.compiler.plugin>
|
||||||
|
|
Loading…
Reference in New Issue