Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
5c18637
Update sendKeysWithSlashes method
maryvictol Oct 24, 2025
bbe986c
Merge branch 'develop' into update_testsmachine_chromeversion
maryvictol Oct 28, 2025
f5dc4c0
Fix refresh method
maryvictol Oct 29, 2025
4f449db
Fix navigateUsingAddressBar method
maryvictol Oct 29, 2025
9e57bc5
Fix refresh
maryvictol Oct 30, 2025
3af8498
Fix tryNavigateToAnotherBucket method
maryvictol Oct 30, 2025
dcca523
Fix pasteText method
maryvictol Oct 30, 2025
5264e19
Change refresh method
maryvictol Nov 4, 2025
2142dd2
Update tests
maryvictol Nov 4, 2025
c2590ad
Fix validateDisabledParameter method
maryvictol Nov 5, 2025
8fb13b3
Fix LaunchParametersTest
maryvictol Nov 6, 2025
9827963
Fix PipelineDetailsTest
maryvictol Nov 6, 2025
ced97dc
Fix copyright, imports
maryvictol Nov 11, 2025
034167b
Fix CustomNodeImagesForRunsTest
maryvictol Nov 19, 2025
1e363eb
Fix createAndEditFile method
maryvictol Nov 21, 2025
5bc7b63
Fix assertPageContains method
maryvictol Nov 25, 2025
7eb5ac7
Update restartBrowser method
maryvictol Dec 16, 2025
f181404
Fix LaunchClusterTest
maryvictol Dec 17, 2025
04ea08e
Fix AbstractBfxPipelineTest
maryvictol Dec 17, 2025
ae233dd
Update selenide to 5.2.8 version
maryvictol Dec 19, 2025
a1784c4
Update selenide to 6.16.0 version
maryvictol Dec 22, 2025
1c97f98
Fix AbstractBfxPipelineTest
maryvictol Dec 22, 2025
a895182
Update to selenide
maryvictol Dec 23, 2025
28c28ea
Fix AbstractBfxPipelineTest
maryvictol Dec 23, 2025
4656465
Fix AbstractBfxPipelineTest
maryvictol Dec 23, 2025
030ab5f
Update ShellAO
maryvictol Dec 23, 2025
1e7d106
Fix AbstractBfxPipelineTest
maryvictol Dec 23, 2025
f7082b0
Update RunsMenuAO
maryvictol Dec 23, 2025
f2720d7
Update LogAO
maryvictol Dec 24, 2025
2ddd116
Fix AbstractBfxPipelineTest
maryvictol Dec 24, 2025
48af2e7
Fix Navigation
maryvictol Dec 24, 2025
7febc07
Update UserManagementAO
maryvictol Dec 24, 2025
5b1178f
Update DnsHostsManagementTest
maryvictol Dec 24, 2025
21f4c83
Add waitForSshLink to LaunchClusterTest
maryvictol Jan 13, 2026
1b809c5
Update LazyWebElementsCollection
maryvictol Jan 22, 2026
cce979d
Update getAmisFromClusterNetworksConfigPreference method
maryvictol Jan 22, 2026
422c18d
Update locator
maryvictol Jan 25, 2026
23435a4
Update RoleBasedAccessControlTest
maryvictol Jan 30, 2026
35f553d
Update Conditions
maryvictol Feb 3, 2026
1d8015b
Update SharingRunsTest
maryvictol Feb 4, 2026
2e8c48c
Update SharingRunsTest
maryvictol Feb 5, 2026
8fa37a8
Update LaunchClusterTest
maryvictol Feb 6, 2026
24dcc67
Update LaunchClusterTest
maryvictol Feb 7, 2026
c57caca
Update LaunchClusterTest
maryvictol Feb 7, 2026
4c7ce8f
Update LaunchClusterTest
maryvictol Feb 7, 2026
6d1312d
Update LaunchClusterTest
maryvictol Feb 8, 2026
e3ba55d
Code review
maryvictol Feb 9, 2026
ff9138f
Update locators
maryvictol Feb 9, 2026
96bac1c
Update VersionControlTest
maryvictol Feb 10, 2026
c94019e
Update ToolVersions
maryvictol Feb 11, 2026
05561dd
Update elementsShouldBeSelected method
maryvictol Feb 13, 2026
044f8ce
Update DockerCommitTest
maryvictol Feb 17, 2026
30cd52d
Update DockerCommitTest
maryvictol Feb 17, 2026
1964ca4
Update DockerCommitTest
maryvictol Feb 18, 2026
22a96b1
Update AbstractBfxPipelineTest
maryvictol Feb 25, 2026
e9f564c
Update RoleModelTest
maryvictol Feb 25, 2026
0f38326
Update locator
maryvictol Feb 26, 2026
d05dab3
Update RBACPermissionTest
maryvictol Feb 27, 2026
bdad5e6
Update RBACPermissionTest
maryvictol Feb 27, 2026
f5d19ad
Update ToolsTest
maryvictol Feb 27, 2026
5805b7b
Update ToolsTest
maryvictol Feb 27, 2026
a06e0ba
Update uploadMetadata method
maryvictol Mar 2, 2026
8876a93
Disable RunPipelineWithSeveralOutputParametersTest
maryvictol Mar 3, 2026
10663c5
Fix Dockerfile
maryvictol Mar 3, 2026
c7535d1
Update ssh method
maryvictol Mar 20, 2026
de16664
Update ssh method
maryvictol Mar 20, 2026
4e4a05e
Small fix
maryvictol Mar 21, 2026
e1d6fbc
Update DetachedConfigurationsTest
maryvictol Mar 23, 2026
4469eef
Update LaunchLimitMountsTest
maryvictol Mar 24, 2026
4ab9fd5
Update shouldHaveStatus method
maryvictol Mar 24, 2026
128d42d
Update PipelineConfigurationTest
maryvictol Mar 24, 2026
60d5c96
Update PlatformPreferencesTest
maryvictol Mar 24, 2026
ed4fe22
Update NATGatewayAO
maryvictol Apr 1, 2026
7e9b5ab
Update after review
maryvictol Apr 9, 2026
9315ba5
Update RunsTest
maryvictol Apr 14, 2026
50b0bc4
Remove sleep from getInfoRow method
maryvictol Apr 17, 2026
fc6d1b4
Update RBACPermissionTest
maryvictol Apr 23, 2026
bb2f590
Update checkStorageSize method
maryvictol Apr 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 21 additions & 15 deletions e2e/gui/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2017-2020 EPAM Systems, Inc. (https://www.epam.com/)
# Copyright 2017-2026 EPAM Systems, Inc. (https://www.epam.com/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -12,30 +12,36 @@
# See the License for the specific language governing permissions and
# limitations under the License.

FROM consol/centos-xfce-vnc
ENV REFRESHED_AT 2020-08-10
FROM accetto/debian-vnc-xfce-chromium-g3:12

# Switch to root user to install additional software
USER 0

# Install common
RUN yum install -y wget \
java-1.8.0-openjdk-devel \
RUN echo "deb http://deb.debian.org/debian/ sid main" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y wget \
openjdk-8-jdk \
gcc \
python \
python-devel
python3 \
python3-dev

RUN rm -f ~/.config/bg_sakuli.png

# Install Chrome
RUN wget -N https://s3.amazonaws.com/cloud-pipeline-oss-builds/tools/e2e/google-chrome-stable-63.0.3239.132-1.x86_64.rpm -P ~/ && \
yum install -y ~/google-chrome-stable-63.0.3239.132-1.x86_64.rpm && \
rm -f ~/google-chrome-stable-63.0.3239.132-1.x86_64.rpm

# Install ChromeDriver. Version: 2.36
# ChromeDriver is taken from here: https://chromedriver.storage.googleapis.com/2.36/chromedriver_linux64.zip
RUN wget -N https://s3.amazonaws.com/cloud-pipeline-oss-builds/tools/e2e/chromedriver -P ~/ && \
mv -f ~/chromedriver /usr/local/bin/chromedriver && \
RUN wget https://storage.googleapis.com/chrome-for-testing-public/120.0.6099.109/linux64/chrome-linux64.zip && \
apt-get install -y unzip && \
unzip chrome-linux64.zip && \
rm chrome-linux64.zip && \
mv chrome-linux64 /opt/chrome/ && \
ln -s /opt/chrome/chrome /usr/local/bin/

# Install ChromeDriver. Version: 126
RUN wget https://storage.googleapis.com/chrome-for-testing-public/120.0.6099.109/linux64/chromedriver-linux64.zip && \
unzip -j chromedriver-linux64.zip && \
rm LICENSE.chromedriver && \
rm chromedriver-linux64.zip && \
mv -f chromedriver /usr/local/bin/chromedriver && \
chown root:root /usr/local/bin/chromedriver && \
chmod 0755 /usr/local/bin/chromedriver

Expand Down
4 changes: 2 additions & 2 deletions e2e/gui/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ sourceCompatibility = 1.8

ext {
testngVersion = '6.11'
seleniumVersion = '3.8.1'
selenideVersion = '4.10.01'
seleniumVersion = '4.10.0'
selenideVersion = '6.16.0'
logVersion = '1.2'
jacksonVersion = '2.9.3'
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2017-2021 EPAM Systems, Inc. (https://www.epam.com/)
* Copyright 2017-2026 EPAM Systems, Inc. (https://www.epam.com/)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -40,8 +40,12 @@
import static com.codeborne.selenide.Condition.visible;
import static com.codeborne.selenide.Selectors.byId;
import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.closeWebDriver;
import static com.codeborne.selenide.WebDriverRunner.getWebDriver;
import static com.epam.pipeline.autotests.utils.Utils.BROWSER_SIZE;
import static com.epam.pipeline.autotests.utils.Utils.CHROME_BROWSER;
import static com.epam.pipeline.autotests.utils.Utils.sleep;
import static com.epam.pipeline.autotests.utils.C.DEFAULT_TIMEOUT;
import static java.util.concurrent.TimeUnit.SECONDS;

public abstract class AbstractBfxPipelineTest implements ITest {
Expand All @@ -50,18 +54,31 @@ public abstract class AbstractBfxPipelineTest implements ITest {

@BeforeClass
public void setUp() {
Configuration.timeout = C.DEFAULT_TIMEOUT;
Configuration.browser = WebDriverRunner.CHROME;
Configuration.startMaximized = true;
System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver");

setUpConfiguration();
login(C.ROOT_ADDRESS);

//reset mouse
$(byId("navigation-button-logo")).shouldBe(visible).click();
sleep(3, SECONDS);
}

public void setUpConfiguration() {
Configuration.browser = CHROME_BROWSER;
Configuration.browserSize = BROWSER_SIZE;
Configuration.timeout = DEFAULT_TIMEOUT;
System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver");
ChromeOptions options = new ChromeOptions();
options.setBinary("/usr/local/bin/chrome");

options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--disable-gpu");
options.addArguments("--ignore-certificate-errors");

WebDriver driver = new ChromeDriver(options);
WebDriverRunner.setWebDriver(driver);
}

@BeforeMethod(alwaysRun = true)
public void setMethodName(Method method, Object[] testData) {
if (method.isAnnotationPresent(TestCase.class)) {
Expand All @@ -75,7 +92,8 @@ public void setMethodName(Method method, Object[] testData) {
}

public void restartBrowser(final String address) {
Selenide.close();
closeWebDriver();
setUpConfiguration();
login(address);
}

Expand Down Expand Up @@ -143,6 +161,7 @@ private void login(final String address) {
Selenide.open(address);
Cookie cookie = new Cookie("HttpAuthorization", C.PASSWORD);
WebDriverRunner.getWebDriver().manage().addCookie(cookie);

}
}
Selenide.open(address);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2017-2025 EPAM Systems, Inc. (https://www.epam.com/)
* Copyright 2017-2026 EPAM Systems, Inc. (https://www.epam.com/)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -16,14 +16,18 @@
package com.epam.pipeline.autotests;

import com.epam.pipeline.autotests.ao.ClusterMenuAO;
import static com.epam.pipeline.autotests.ao.ClusterMenuAO.HeaderColumn.DATE;
import static com.epam.pipeline.autotests.ao.ClusterMenuAO.HeaderColumn.LABEL;
import static com.epam.pipeline.autotests.ao.ClusterMenuAO.HeaderColumn.NAME;
import com.epam.pipeline.autotests.ao.Template;
import com.epam.pipeline.autotests.utils.TestCase;

import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;

import static com.epam.pipeline.autotests.ao.ClusterMenuAO.HeaderColumn.DATE;
import static com.epam.pipeline.autotests.ao.ClusterMenuAO.HeaderColumn.LABEL;
import static com.epam.pipeline.autotests.ao.ClusterMenuAO.HeaderColumn.NAME;
import static com.epam.pipeline.autotests.utils.C.DEFAULT_INSTANCE_PRICE_TYPE;
import static org.testng.Assert.assertEquals;
import static java.util.concurrent.TimeUnit.SECONDS;

public class ClusterNodeTest extends AbstractAutoRemovingPipelineRunningTest {

Expand All @@ -40,6 +44,8 @@ public void startAndStopPipelineAfterNodeAppear() {
.createPipeline(Template.SHELL, getPipelineName())
.firstVersion()
.runPipeline()
.setPriceType(DEFAULT_INSTANCE_PRICE_TYPE)
.doNotMountStoragesSelect(true)
.launch(this);

clusterMenu()
Expand Down Expand Up @@ -72,6 +78,7 @@ public void nodesSortingIncreaseByLabelShouldBeValid() {
clusterMenu()
.filterByHasRunId()
.sortByIncrease(LABEL)
.sleep(3, SECONDS)
.validateSortedByIncrease(LABEL)
.resetFiltering(LABEL);
}
Expand All @@ -82,6 +89,7 @@ public void nodesSortingDecreaseByLabelShouldBeValid() {
clusterMenu()
.filterByHasRunId()
.sortByDecrease(LABEL)
.sleep(3, SECONDS)
.validateSortedByDecrease(LABEL)
.resetFiltering(LABEL);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2017-2025 EPAM Systems, Inc. (https://www.epam.com/)
* Copyright 2017-2026 EPAM Systems, Inc. (https://www.epam.com/)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -123,9 +123,12 @@ public void checkNodeReuseAfterTheCustomNodeImageRun() {
library()
.clickOnDraftVersion(pipeline1)
.runPipeline()
.setPriceType(DEFAULT_INSTANCE_PRICE_TYPE)
.doNotMountStoragesSelect(true)
.launch(this)
.showLog(getLastRunId());
assertEquals(clusterMenu()
.sortByDecrease(DATE)
.waitForTheNode(getLastRunId())
.getNodeName(getLastRunId()), nodeName);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2017-2020 EPAM Systems, Inc. (https://www.epam.com/)
* Copyright 2017-2026 EPAM Systems, Inc. (https://www.epam.com/)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -19,7 +19,6 @@
import com.epam.pipeline.autotests.mixins.Authorization;
import com.epam.pipeline.autotests.mixins.Navigation;
import com.epam.pipeline.autotests.utils.C;
import static com.epam.pipeline.autotests.utils.C.DEFAULT_INSTANCE_PRICE_TYPE;
import com.epam.pipeline.autotests.utils.TestCase;
import com.epam.pipeline.autotests.utils.Utils;
import com.epam.pipeline.autotests.utils.listener.Cloud;
Expand All @@ -32,6 +31,7 @@

import static com.codeborne.selenide.Selenide.open;
import static com.epam.pipeline.autotests.ao.Primitive.CLOUD_REGION;
import static com.epam.pipeline.autotests.utils.C.DEFAULT_INSTANCE_PRICE_TYPE;
import static java.lang.String.format;

@Listeners(value = ConditionalTestAnalyzer.class)
Expand Down Expand Up @@ -91,6 +91,7 @@ public void checkTransferBetweenRegions() {
tools()
.perform(registry, group, tool, ToolTab::runWithCustomSettings)
.setDefaultLaunchOptions()
.doNotMountStoragesSelect(true)
.launchTool(this, Utils.nameWithoutGroup(tool))
.showLog(getLastRunId())
.waitForSshLink()
Expand Down Expand Up @@ -146,6 +147,7 @@ public void checkPipeStorageLsPaging() {
tools()
.perform(registry, group, tool, ToolTab::runWithCustomSettings)
.setDefaultLaunchOptions()
.doNotMountStoragesSelect(true)
.launchTool(this, Utils.nameWithoutGroup(tool))
.showLog(runID1339 = getLastRunId())
.waitForSshLink()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2017-2023 EPAM Systems, Inc. (https://www.epam.com/)
* Copyright 2017-2026 EPAM Systems, Inc. (https://www.epam.com/)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -36,10 +36,10 @@
import static com.codeborne.selenide.Condition.*;
import static com.codeborne.selenide.Selectors.byClassName;
import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.refresh;
import static com.epam.pipeline.autotests.ao.Primitive.*;
import static com.epam.pipeline.autotests.ao.StorageContentAO.folderWithName;
import static com.epam.pipeline.autotests.utils.PipelineSelectors.button;
import static com.epam.pipeline.autotests.utils.Utils.refresh;
import static java.lang.String.format;
import static java.util.concurrent.TimeUnit.SECONDS;

Expand Down Expand Up @@ -154,7 +154,6 @@ public void createFolderInDataStorageWithNameThatAlreadyExists() {
.createFolderWithError(folder,
format("Storage path '%s/' for bucket '%s' already exists.", folder,
format("%s%s", STORAGE_PREFIX, storage)));

refresh();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2017-2025 EPAM Systems, Inc. (https://www.epam.com/)
* Copyright 2017-2026 EPAM Systems, Inc. (https://www.epam.com/)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -16,6 +16,7 @@
package com.epam.pipeline.autotests;

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.Driver;
import com.epam.pipeline.autotests.ao.Configuration;
import com.epam.pipeline.autotests.ao.Profile;
import com.epam.pipeline.autotests.ao.Template;
Expand All @@ -29,6 +30,7 @@
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import static com.codeborne.selenide.Condition.disabled;
import static com.codeborne.selenide.Condition.empty;
import static com.codeborne.selenide.Condition.enabled;
Expand All @@ -42,7 +44,6 @@
import static com.codeborne.selenide.Selectors.byClassName;
import static com.codeborne.selenide.Selectors.byText;
import static com.codeborne.selenide.Selenide.open;
import static com.codeborne.selenide.Selenide.refresh;
import static com.epam.pipeline.autotests.ao.Configuration.confirmConfigurationChange;
import static com.epam.pipeline.autotests.ao.Configuration.priceType;
import static com.epam.pipeline.autotests.ao.Configuration.startIdle;
Expand All @@ -68,6 +69,7 @@
import static com.epam.pipeline.autotests.utils.PipelineSelectors.version;
import static com.epam.pipeline.autotests.utils.Utils.ON_DEMAND;
import static com.epam.pipeline.autotests.utils.Utils.sleep;
import static com.epam.pipeline.autotests.utils.Utils.refresh;
import static java.util.concurrent.TimeUnit.SECONDS;

public class DetachedConfigurationsTest
Expand Down Expand Up @@ -169,6 +171,7 @@ public void createPipelines() {
.editConfiguration(pipelineProfile1611, profile -> {
refresh();
profile
.ensureVisible(ESTIMATED_PRICE)
.addStringParameter(stringParameter, stringParameterValue)
.addPathParameter(pathParameter, pathParameterValue)
.addCommonParameter(commonParameter, commonParameterValue)
Expand Down Expand Up @@ -789,7 +792,7 @@ private Consumer<Configuration> ensureParameterExists(final String parameterName
private Condition isSelected() {
return new Condition("pipeline version is selected") {
@Override
public boolean apply(final WebElement element) {
public boolean apply(Driver driver, final WebElement element) {
return !element.findElements(byClassName("anticon-check-circle")).isEmpty();
}

Expand Down
Loading
Loading