From 42deff0dc7252d6bd6b2e965cfbcdcf22aee0632 Mon Sep 17 00:00:00 2001
From: xingchun-chen <55787491+xingchun-chen@users.noreply.github.com>
Date: Sat, 19 Sep 2020 23:07:23 +0800
Subject: [PATCH] =?UTF-8?q?[test-2559][e2e]=20test=20data=20configure=20is?=
=?UTF-8?q?olation=C2=A0=20(#3712)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Add task connection
* Optimize test cases
* Modify variable format
* Optimize test cases
* Update BrowserCommon.java
* Update BrowserCommon.java
* Update WorkflowDefineLocator.java
* Optimize waiting time
* Optimize wait time
* Optimize wait time
* Optimize wait time
* Optimize wait time
* Optimize wait time
* Optimize wait time
* Optimize wait time
* Optimize wait time
* Optimize wait time
* Optimize project wait time
* Optimize wait time
* Optimize wait time
* open timing testcase
* Optimize wait time
* Optimize wait time
* Optimize wait time
* Optimize wait time
* Optimize wait time
* Optimize wait time
* Optimize alert to save workflow
* Optimize alert to save workflow
* add yaml reader
* add yaml file
* [e2e] test data configure isolation
* [e2e] test data configure isolation
* [e2e] test data configure isolation
* [e2e] modify check code style
* [e2e] modify check code style
* [e2e] modify check code style
* [e2e] modify style AvoidStarImport
* [e2e] modify check code style
* [e2e] modify check code style
* [e2e] modify check code style
* [e2e] modify check code style
* [e2e] modify check code style
* [e2e] modify check code style
* [e2e] modify check code style
* [e2e] modify check code style
* [e2e] modify check code style
* [e2e] modify check code style
Co-authored-by: chenxingchun <438044805@qq.com>
---
e2e/pom.xml | 10 +++
.../dolphinscheduler/util/YmlReader.java | 45 +++++++++++
.../dolphinscheduler/base/BaseDriver.java | 1 -
.../dolphinscheduler/data/LoginData.java | 3 -
.../data/project/ProcessInstanceData.java | 12 +--
.../data/project/ProjectData.java | 16 ++--
.../data/project/RunWorkflowData.java | 19 ++---
.../data/project/TimingData.java | 25 ++----
.../data/project/WorkflowDefineData.java | 76 ++-----------------
.../data/security/AlertManageData.java | 18 ++---
.../data/security/QueueManageData.java | 31 ++------
.../data/security/TenantManageData.java | 30 ++------
.../data/security/TokenManageData.java | 15 ++--
.../data/security/UserManageData.java | 29 ++-----
.../project/WorkflowDefineLocator.java | 2 +
.../locator/security/TokenManageLocator.java | 6 +-
.../locator/security/UserManageLocator.java | 2 +
.../dolphinscheduler/page/LoginPage.java | 8 +-
.../page/project/ProcessInstancePage.java | 4 +-
.../page/project/ProjectPage.java | 15 ++--
.../page/project/RunWorkflowPage.java | 11 ++-
.../page/project/TimingPage.java | 31 ++++----
.../page/project/WorkflowDefinePage.java | 57 +++++++-------
.../page/security/AlertManagePage.java | 14 ++--
.../page/security/QueueManagePage.java | 18 +++--
.../page/security/TenantManagePage.java | 16 ++--
.../page/security/TokenManagePage.java | 14 ++--
.../page/security/UserManagePage.java | 33 ++++----
.../resources/testData/security_zh_cn.yml | 55 ++++++++++++++
.../resources/testData/workflow_zh_cn.yml | 63 +++++++++++++++
e2e/testng.xml | 2 +-
31 files changed, 369 insertions(+), 312 deletions(-)
create mode 100644 e2e/src/main/java/org/apache/dolphinscheduler/util/YmlReader.java
create mode 100644 e2e/src/test/resources/testData/security_zh_cn.yml
create mode 100644 e2e/src/test/resources/testData/workflow_zh_cn.yml
diff --git a/e2e/pom.xml b/e2e/pom.xml
index a5bdf69b41..fffbf8974e 100644
--- a/e2e/pom.xml
+++ b/e2e/pom.xml
@@ -87,6 +87,16 @@
commons-pool2
${commons-pool2.version}
+
+ org.jyaml
+ jyaml
+ 1.3
+
+
+ org.springframework
+ spring-core
+ 5.1.5.RELEASE
+
diff --git a/e2e/src/main/java/org/apache/dolphinscheduler/util/YmlReader.java b/e2e/src/main/java/org/apache/dolphinscheduler/util/YmlReader.java
new file mode 100644
index 0000000000..e2784eb0ff
--- /dev/null
+++ b/e2e/src/main/java/org/apache/dolphinscheduler/util/YmlReader.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.dolphinscheduler.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+
+import org.ho.yaml.Yaml;
+import org.springframework.core.io.DefaultResourceLoader;
+import org.springframework.core.io.Resource;
+
+/**
+ * read yml file
+ */
+public class YmlReader {
+ public static HashMap> map;
+ public String getDataYml(String filePath, String key1, String key2) {
+ Yaml yaml = new Yaml();
+ Resource resource = new DefaultResourceLoader().getResource("classpath:" + filePath + ".yml");
+ try {
+ InputStream inputStream = resource.getInputStream();
+ map = yaml.loadType(inputStream, HashMap.class);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ String data = map.get(key1).get(key2);
+ return data;
+ }
+}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/base/BaseDriver.java b/e2e/src/test/java/org/apache/dolphinscheduler/base/BaseDriver.java
index 23c98b4e46..73a8da2d62 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/base/BaseDriver.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/base/BaseDriver.java
@@ -23,7 +23,6 @@ import org.openqa.selenium.PageLoadStrategy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
-import org.openqa.selenium.remote.CapabilityType;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/data/LoginData.java b/e2e/src/test/java/org/apache/dolphinscheduler/data/LoginData.java
index e56df5a448..332b8000b6 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/data/LoginData.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/data/LoginData.java
@@ -28,7 +28,6 @@ public class LoginData {
*/
public static final String URL = PropertiesReader.getKey("LOGIN_URL");
-
/**
* Login username
*/
@@ -38,6 +37,4 @@ public class LoginData {
* Login password
*/
public static final String PASSWORD = PropertiesReader.getKey("PASSWORD");
-
- public static final String TENANT = "租户管理 - DolphinScheduler";
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/data/project/ProcessInstanceData.java b/e2e/src/test/java/org/apache/dolphinscheduler/data/project/ProcessInstanceData.java
index 7114851d25..fa827f6707 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/data/project/ProcessInstanceData.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/data/project/ProcessInstanceData.java
@@ -16,10 +16,12 @@
*/
package org.apache.dolphinscheduler.data.project;
-public class ProcessInstanceData {
- //Process Instance page title
- public static final String PROCESS_INSTANCE_TITLE = "工作流实例 - DolphinScheduler";
- public static final String RERUN_TYPE= "重跑";
-
+import org.apache.dolphinscheduler.util.YmlReader;
+public class ProcessInstanceData {
+ public String getProcessInstanceData(String param) {
+ YmlReader ymlReader = new YmlReader();
+ String processInstanceData = ymlReader.getDataYml("testData/workflow_zh_cn", "processInstance", param);
+ return processInstanceData;
+ }
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/data/project/ProjectData.java b/e2e/src/test/java/org/apache/dolphinscheduler/data/project/ProjectData.java
index 036a6771bd..22b44684bb 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/data/project/ProjectData.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/data/project/ProjectData.java
@@ -16,14 +16,12 @@
*/
package org.apache.dolphinscheduler.data.project;
-public class ProjectData {
-
- public static final String CREATE_PROJECT_BUTTON = "创建项目";
+import org.apache.dolphinscheduler.util.YmlReader;
- // create project name
- public static final String PROJECT_NAME = "selenium_project_1";
- // create project description
- public static final String DESCRIPTION = "test create project description";
- // project page title
- public static final String PROJECT_TITLE = "项目 - DolphinScheduler";
+public class ProjectData {
+ public String getProjectData(String param) {
+ YmlReader ymlReader = new YmlReader();
+ String projectData = ymlReader.getDataYml("testData/workflow_zh_cn", "projectManage", param);
+ return projectData;
+ }
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/data/project/RunWorkflowData.java b/e2e/src/test/java/org/apache/dolphinscheduler/data/project/RunWorkflowData.java
index 70112edd7a..7653f5a09d 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/data/project/RunWorkflowData.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/data/project/RunWorkflowData.java
@@ -16,17 +16,12 @@
*/
package org.apache.dolphinscheduler.data.project;
-public class RunWorkflowData {
- /**
- * run workflow data
- */
- //input shell task name
- public static final String RECIPIENT = "123456789@qq.com";
-
- //input shell task description
- public static final String Cc = "qwe12312sds@qq.com";
-
- public static final String RUN_WORKFLOW_TITLE = "工作流定义 - DolphinScheduler";
-
+import org.apache.dolphinscheduler.util.YmlReader;
+public class RunWorkflowData {
+ public String getRunWorkflowData(String param) {
+ YmlReader ymlReader = new YmlReader();
+ String runWorkflowData = ymlReader.getDataYml("testData/workflow_zh_cn", "runWorkflow", param);
+ return runWorkflowData;
+ }
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/data/project/TimingData.java b/e2e/src/test/java/org/apache/dolphinscheduler/data/project/TimingData.java
index e76852dd0c..87fbbd8c03 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/data/project/TimingData.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/data/project/TimingData.java
@@ -16,23 +16,12 @@
*/
package org.apache.dolphinscheduler.data.project;
-public class TimingData {
- /**
- * timing data
- */
- //input shell task name
- public static final String RECIPIENT = "test123456@qq.com";
-
- //input shell task description
- public static final String Cc = "test.123qwe@qq.com";
-
- public static final String EDIT_RECIPIENT = "test.edit123456@qq.com";
-
- public static final String EDIT_Cc = "test.edit123qwe@qq.com";
+import org.apache.dolphinscheduler.util.YmlReader;
- public static final String TIMING_OFFLINE_STATE = "下线";
-
- public static final String TIMING_ONLINE_STATE = "上线";
-
- public static final String TIMING_TITLE = "定时任务列表 - DolphinScheduler";
+public class TimingData {
+ public String getTimingData(String param) {
+ YmlReader ymlReader = new YmlReader();
+ String timingData = ymlReader.getDataYml("testData/workflow_zh_cn", "timing", param);
+ return timingData;
+ }
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/data/project/WorkflowDefineData.java b/e2e/src/test/java/org/apache/dolphinscheduler/data/project/WorkflowDefineData.java
index c9eb32e948..41b33e76fc 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/data/project/WorkflowDefineData.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/data/project/WorkflowDefineData.java
@@ -16,74 +16,12 @@
*/
package org.apache.dolphinscheduler.data.project;
-public class WorkflowDefineData {
- /**
- * create workflow data
- */
-
- public static final String workflow_define = "工作流定义";
-
- //input shell task name
- public static final String SHELL_TASK_NAME = "shell_task_selenium_1";
-
- //input shell task description
- public static final String SHELL_TASK_DESCRIPTION = "shell task description test";
-
- //input timeout
- public static final String INPUT_TIMEOUT = "60";
-
- //input shell script
- public static final String SHELL_SCRIPT = "echo 1111111";
-
- //input custom parameters
- public static final String INPUT_CUSTOM_PARAMETERS = "selenium_parameter";
-
- //input custom parameters value
- public static final String INPUT_CUSTOM_PARAMETERS_VALUE = "selenium_parameter_123";
-
- //input add custom parameters
- public static final String INPUT_ADD_CUSTOM_PARAMETERS = "selenium_parameter_delete";
-
- //input add custom parameters value
- public static final String INPUT_ADD_CUSTOM_PARAMETERS_VALUE = "selenium_parameter_delete_456";
-
- //workflow define title
- public static final String WORKFLOW_TITLE = "工作流定义 - DolphinScheduler";
-
- //create workflow title
- public static final String CREATE_WORKFLOW_TITLE = "创建流程定义 - DolphinScheduler";
-
-
- /**
- * save workflow data
- */
- //input workflow name
- public static final String INPUT_WORKFLOW_NAME = "selenium_shell_1";
-
- //input workflow description
- public static final String INPUT_WORKFLOW_DESCRIPTION = "test selenium_shell_1 description";
-
- //input workflow timeout
- public static final String INPUT_WORKFLOW_TIMEOUT = "30";
-
- //input workflow global parameters
- public static final String INPUT_WORKFLOW_GLOBAL_PARAMETERS = "selenium_global_parameters_1";
-
- //input workflow global parameters value
- public static final String INPUT_WORKFLOW_GLOBAL_PARAMETERS_VALUES = "selenium_global_parameters_value_1";
-
- //input to add workflow global parameters
- public static final String INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS = "selenium_global_parameters_2";
-
- //input to add workflow global parameters value
- public static final String INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS_VALUES = "selenium_global_parameters_value_2";
-
- /**
- * workflowDefine list
- */
- public static final String WORKFLOW_ONLINE_STATE = "上线";
-
- public static final String WORKFLOW_OFFLINE_STATE = "下线";
-
+import org.apache.dolphinscheduler.util.YmlReader;
+public class WorkflowDefineData {
+ public String getWorkflowDefineData(String param) {
+ YmlReader ymlReader = new YmlReader();
+ String workflowDefineData = ymlReader.getDataYml("testData/workflow_zh_cn", "workflowDefine", param);
+ return workflowDefineData;
+ }
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/data/security/AlertManageData.java b/e2e/src/test/java/org/apache/dolphinscheduler/data/security/AlertManageData.java
index ae996a209d..6bb2db4528 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/data/security/AlertManageData.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/data/security/AlertManageData.java
@@ -16,17 +16,13 @@
*/
package org.apache.dolphinscheduler.data.security;
-public class AlertManageData {
- //Alert Name
- public static final String ALERT_NAME = "selenium_alert_Name";
- public static final String CREATE_ALERT = "创建告警组";
-
- // Alert Type
- public static final String ALERT_TYPE = "邮件";
+import org.apache.dolphinscheduler.util.YmlReader;
- //Alert Description
- public static final String DESCRIPTION = "create alert test";
-
- public static final String ALERT_MANAGE = "告警组管理 - DolphinScheduler";
+public class AlertManageData {
+ public String getAlertData(String param) {
+ YmlReader ymlReader = new YmlReader();
+ String alertData = ymlReader.getDataYml("testData/security_zh_cn", "alertManage", param);
+ return alertData;
+ }
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/data/security/QueueManageData.java b/e2e/src/test/java/org/apache/dolphinscheduler/data/security/QueueManageData.java
index 46f0d834d1..4b721602be 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/data/security/QueueManageData.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/data/security/QueueManageData.java
@@ -16,29 +16,12 @@
*/
package org.apache.dolphinscheduler.data.security;
-public class QueueManageData {
- /**
- * Create Queue Name
- */
- public static final String QUEUE_NAME = "selenium_queue_name";
-
- public static final String CREATE_QUEUE = "创建队列";
-
- /**
- * Create Queue Value
- */
- public static final String QUEUE_VALUE = "selenium_queue_value";
-
- /**
- * Edit Queue Name
- */
- public static final String EDIT_QUEUE_NAME = "selenium_queue_value_edit";
-
- /**
- * Edit Queue Value
- */
- public static final String EDIT_QUEUE_VALUE = "selenium_queue_value_edit";
-
- public static final String QUEUE_MANAGE = "队列管理 - DolphinScheduler";
+import org.apache.dolphinscheduler.util.YmlReader;
+public class QueueManageData {
+ public String getQueueData(String param) {
+ YmlReader ymlReader = new YmlReader();
+ String queueData = ymlReader.getDataYml("testData/security_zh_cn", "queueManage", param);
+ return queueData;
+ }
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/data/security/TenantManageData.java b/e2e/src/test/java/org/apache/dolphinscheduler/data/security/TenantManageData.java
index 71e50e7150..0c9727799d 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/data/security/TenantManageData.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/data/security/TenantManageData.java
@@ -20,30 +20,12 @@
*/
package org.apache.dolphinscheduler.data.security;
+import org.apache.dolphinscheduler.util.YmlReader;
public class TenantManageData {
- /**
- * Tenant Code
- */
- public static final String TENANT_CODE = "selenium_tenant_code_1";
-
- /**
- * Tenant Name
- */
- public static final String TENANT_NAME = "selenium_tenant_Name";
-
- /**
- * Queue
- */
- public static final String QUEUE = "default";
-
- /**
- * Description
- */
- public static final String DESCRIPTION = "create tenant test";
-
- public static final String TENANT_MANAGE = "租户管理 - DolphinScheduler";
-
-
-
+ public String getTenantData(String param) {
+ YmlReader ymlReader = new YmlReader();
+ String tenantData = ymlReader.getDataYml("testData/security_zh_cn", "tenantManage", param);
+ return tenantData;
+ }
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/data/security/TokenManageData.java b/e2e/src/test/java/org/apache/dolphinscheduler/data/security/TokenManageData.java
index 9dd625ec25..10fdc25795 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/data/security/TokenManageData.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/data/security/TokenManageData.java
@@ -16,13 +16,12 @@
*/
package org.apache.dolphinscheduler.data.security;
-public class TokenManageData {
- public static final String TOKEN_MANAGE = "令牌管理 - DolphinScheduler";
- public static final String CREATE_TOKEN = "创建令牌";
-
- public static final String DATE = "2038-06-10 00:00:00";
- public static final String NAME = "admin";
-
-
+import org.apache.dolphinscheduler.util.YmlReader;
+public class TokenManageData {
+ public String getTokenData(String param) {
+ YmlReader ymlReader = new YmlReader();
+ String tokenData = ymlReader.getDataYml("testData/security_zh_cn", "tokenManage", param);
+ return tokenData;
+ }
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/data/security/UserManageData.java b/e2e/src/test/java/org/apache/dolphinscheduler/data/security/UserManageData.java
index ee7fc60bc4..699cce4568 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/data/security/UserManageData.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/data/security/UserManageData.java
@@ -16,29 +16,12 @@
*/
package org.apache.dolphinscheduler.data.security;
+import org.apache.dolphinscheduler.util.YmlReader;
public class UserManageData {
- /**
- * create user
- */
- public static final String USERNAME = "selenium_user_1";
-
- public static final String PASSWORD = "123456qwe";
-
- public static final String EMAIL = "123456789@qq.com";
-
- public static final String PHONE = "15811112222";
-
- public static final String USER_MANAGE = "用户管理 - DolphinScheduler";
-
- public static final String CREATE_USER_BUTTON = "创建用户";
-
-
- /**
- * edit user
- */
- public static final String EDIT_USERNAME = "selenium_user_edit";
- public static final String EDIT_PASSWORD = "123456qwe";
- public static final String EDIT_EMAIL = "123456_edit@qq.com";
- public static final String EDIT_PHONE = "15800001111";
+ public String getUserData(String param) {
+ YmlReader ymlReader = new YmlReader();
+ String userData = ymlReader.getDataYml("testData/security_zh_cn", "userManage", param);
+ return userData;
+ }
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/locator/project/WorkflowDefineLocator.java b/e2e/src/test/java/org/apache/dolphinscheduler/locator/project/WorkflowDefineLocator.java
index 01fdb39e4a..c851be3d0d 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/locator/project/WorkflowDefineLocator.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/locator/project/WorkflowDefineLocator.java
@@ -179,6 +179,8 @@ public class WorkflowDefineLocator {
//scroll to element bottom
public static final By SCROLL_BOTTOM = By.xpath("//span/a/em");
+ public static final By WORKFLOW_NAME = By.xpath("//table/tr[2]/td[3]/span/a");
+
/**
* online workflow
*/
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/locator/security/TokenManageLocator.java b/e2e/src/test/java/org/apache/dolphinscheduler/locator/security/TokenManageLocator.java
index d935dd54a0..e85807fa68 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/locator/security/TokenManageLocator.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/locator/security/TokenManageLocator.java
@@ -24,18 +24,18 @@ public class TokenManageLocator {
public static final By CLICK_CREATE_TOKEN = By.xpath("//div[2]/div/div[2]/div[2]/div/div[1]/button/span");
+ public static final By CREATE_TOKEN_POPUP = By.xpath("//div[5]/div/div[2]/div/div[1]/span");
+
public static final By SELECT_USER = By.xpath("//div[2]/div[2]/div/div/div/span/i");
public static final By CLICK_GENERATE_TOKEN_BUTTON = By.xpath("//div[3]/div[2]/button/span");
public static final By CLICK_SUBMIT_BUTTON = By.xpath("//div[3]/button[2]/span");
- public static final By EDIT_TOKEN_BUTTON = By.xpath("//table/tr[2]/td[7]/button");
-
//edit token
public static final By TOKEN = By.xpath("//table/tr[2]/td[1]/span");
+ public static final By EDIT_TOKEN_BUTTON = By.xpath("//table/tr[2]/td[7]/button");
- public static final By CLICK_EDIT_BUTTON = By.xpath("//div[3]/div[1]/div/table/tr[2]/td[7]/button/i");
//delete token
public static final By CLICK_DELETE_BUTTON = By.xpath("//div[3]/div[1]/div/table/tr[2]/td[7]/span/button");
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/locator/security/UserManageLocator.java b/e2e/src/test/java/org/apache/dolphinscheduler/locator/security/UserManageLocator.java
index ecfd285d60..80f9df20c0 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/locator/security/UserManageLocator.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/locator/security/UserManageLocator.java
@@ -49,6 +49,8 @@ public class UserManageLocator {
public static final By SUBMIT = By.xpath("//div[3]/button[2]/span");
+ public static final By USERNAME = By.xpath("//table/tr[2]/td[2]/span");
+
/**
* edit user
*/
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/page/LoginPage.java b/e2e/src/test/java/org/apache/dolphinscheduler/page/LoginPage.java
index 39bd152d0a..468938d342 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/page/LoginPage.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/page/LoginPage.java
@@ -18,13 +18,14 @@ package org.apache.dolphinscheduler.page;
import org.apache.dolphinscheduler.common.PageCommon;
import org.apache.dolphinscheduler.data.LoginData;
+import org.apache.dolphinscheduler.data.security.TenantManageData;
import org.apache.dolphinscheduler.locator.LoginLocator;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
-
-
public class LoginPage extends PageCommon {
+ TenantManageData tenantManageData = new TenantManageData();
+
/**
* Unique constructor
* @param driver driver
@@ -33,7 +34,6 @@ public class LoginPage extends PageCommon {
super(driver);
}
-
/**
* jump page
*/
@@ -65,6 +65,6 @@ public class LoginPage extends PageCommon {
moveToElement(LoginLocator.LOGIN_BUTTON_MOVE);
// Whether to enter the specified page after login
- return ifTitleContains(LoginData.TENANT);
+ return ifTitleContains(tenantManageData.getTenantData("tenantTitle"));
}
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/page/project/ProcessInstancePage.java b/e2e/src/test/java/org/apache/dolphinscheduler/page/project/ProcessInstancePage.java
index 8c251afc84..04124b467f 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/page/project/ProcessInstancePage.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/page/project/ProcessInstancePage.java
@@ -23,6 +23,8 @@ import org.apache.dolphinscheduler.data.project.ProcessInstanceData;
public class ProcessInstancePage extends PageCommon {
+ ProcessInstanceData processInstanceData = new ProcessInstanceData();
+
public ProcessInstancePage(WebDriver driver) {
super(driver);
}
@@ -36,7 +38,7 @@ public class ProcessInstancePage extends PageCommon {
clickTopElement(ProcessInstanceLocator.CLICK_PROCESS_INSTANCE_NAME);
locateElement(ProcessInstanceLocator.PROCESS_INSTANCE_SUCCESS_STATE);
clickTopElement(ProcessInstanceLocator.CLICK_RERUN_BUTTON);
- return ifTitleContains(ProcessInstanceData.PROCESS_INSTANCE_TITLE);
+ return ifTitleContains(processInstanceData.getProcessInstanceData("processInstanceTitle"));
}
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/page/project/ProjectPage.java b/e2e/src/test/java/org/apache/dolphinscheduler/page/project/ProjectPage.java
index 6a93094340..a450ec7121 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/page/project/ProjectPage.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/page/project/ProjectPage.java
@@ -17,12 +17,13 @@
package org.apache.dolphinscheduler.page.project;
import org.apache.dolphinscheduler.common.PageCommon;
-import org.apache.dolphinscheduler.constant.TestConstant;
import org.apache.dolphinscheduler.data.project.ProjectData;
import org.apache.dolphinscheduler.locator.project.ProjectLocator;
import org.openqa.selenium.WebDriver;
public class ProjectPage extends PageCommon {
+ ProjectData projectData = new ProjectData();
+
public ProjectPage(WebDriver driver) {
super(driver);
}
@@ -32,7 +33,7 @@ public class ProjectPage extends PageCommon {
*/
public boolean jumpProjectManagePage() throws InterruptedException {
clickTopElement(ProjectLocator.PROJECT_MANAGE);
- return ifTitleContains(ProjectData.PROJECT_TITLE);
+ return ifTitleContains(projectData.getProjectData("projectTitle"));
}
/**
@@ -41,18 +42,18 @@ public class ProjectPage extends PageCommon {
* @return Whether to enter the specified page after create project
*/
public boolean createProject() throws InterruptedException {
- ifTextExists(ProjectLocator.CREATE_PROJECT_BUTTON,ProjectData.CREATE_PROJECT_BUTTON);
+ ifTextExists(ProjectLocator.CREATE_PROJECT_BUTTON, projectData.getProjectData("createProjectButton"));
clickElement(ProjectLocator.CREATE_PROJECT_BUTTON);
// input create project data
- sendInput(ProjectLocator.PROJECT_NAME, ProjectData.PROJECT_NAME);
- sendInput(ProjectLocator.PROJECT_DESCRIPTION, ProjectData.DESCRIPTION);
+ sendInput(ProjectLocator.PROJECT_NAME, projectData.getProjectData("projectName"));
+ sendInput(ProjectLocator.PROJECT_DESCRIPTION, projectData.getProjectData("description"));
// click submit button
clickButton(ProjectLocator.SUBMIT_BUTTON);
// Whether to enter the specified page after submit
- return ifTextExists(ProjectLocator.LIST_PROJECT_NAME,ProjectData.PROJECT_NAME);
+ return ifTextExists(ProjectLocator.LIST_PROJECT_NAME, projectData.getProjectData("projectName"));
}
/**
@@ -68,6 +69,6 @@ public class ProjectPage extends PageCommon {
clickElement(ProjectLocator.CONFIRM_DELETE_PROJECT_BUTTON);
// Whether to enter the specified page after submit
- return ifTitleContains(ProjectData.PROJECT_TITLE);
+ return ifTitleContains(projectData.getProjectData("projectTitle"));
}
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/page/project/RunWorkflowPage.java b/e2e/src/test/java/org/apache/dolphinscheduler/page/project/RunWorkflowPage.java
index 921e593e44..c4b8a68dee 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/page/project/RunWorkflowPage.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/page/project/RunWorkflowPage.java
@@ -24,13 +24,16 @@ import org.apache.dolphinscheduler.locator.project.WorkflowDefineLocator;
import org.openqa.selenium.WebDriver;
public class RunWorkflowPage extends PageCommon {
+ RunWorkflowData runWorkflowData = new RunWorkflowData();
+ WorkflowDefineData workflowDefineData = new WorkflowDefineData();
+
public RunWorkflowPage(WebDriver driver) {
super(driver);
}
public boolean runWorkflow() throws InterruptedException {
// Determine whether the workflow status is online
- ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE, WorkflowDefineData.WORKFLOW_ONLINE_STATE);
+ ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE, runWorkflowData.getRunWorkflowData("online"));
// click run workflow button
System.out.println("Click run workflow button");
@@ -46,10 +49,10 @@ public class RunWorkflowPage extends PageCommon {
clickElement(RunWorkflowLocator.SELECT_WORKER_GROUP);
clickElement(RunWorkflowLocator.CLICK_NOTICE_GROUP);
clickElement(RunWorkflowLocator.SELECT_NOTICE_GROUP);
- sendInput(RunWorkflowLocator.INPUT_RECIPIENT, RunWorkflowData.RECIPIENT);
- sendInput(RunWorkflowLocator.INPUT_Cc,RunWorkflowData.Cc);
+ sendInput(RunWorkflowLocator.INPUT_RECIPIENT, runWorkflowData.getRunWorkflowData("recipient"));
+ sendInput(RunWorkflowLocator.INPUT_Cc, runWorkflowData.getRunWorkflowData("Cc"));
clickButton(RunWorkflowLocator.CLICK_RUNNING_BUTTON);
- return ifTitleContains(RunWorkflowData.RUN_WORKFLOW_TITLE);
+ return ifTitleContains(workflowDefineData.getWorkflowDefineData("workflowDefineTitle"));
}
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/page/project/TimingPage.java b/e2e/src/test/java/org/apache/dolphinscheduler/page/project/TimingPage.java
index 3febc545ff..37f3fdab2a 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/page/project/TimingPage.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/page/project/TimingPage.java
@@ -18,23 +18,24 @@ package org.apache.dolphinscheduler.page.project;
import org.apache.dolphinscheduler.common.PageCommon;
import org.apache.dolphinscheduler.data.project.TimingData;
-import org.apache.dolphinscheduler.data.project.WorkflowDefineData;
import org.apache.dolphinscheduler.locator.project.TimingLocator;
import org.apache.dolphinscheduler.locator.project.WorkflowDefineLocator;
import org.openqa.selenium.WebDriver;
public class TimingPage extends PageCommon {
+ TimingData timingData = new TimingData();
+
public TimingPage(WebDriver driver) {
super(driver);
}
-
/**
* create timing
*/
public boolean createTiming() throws InterruptedException {
+ flushPage();
// Determine whether the workflow status is online
- ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE, WorkflowDefineData.WORKFLOW_ONLINE_STATE);
+ ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE, timingData.getTimingData("online"));
// click timing button
System.out.println("Click timing button");
@@ -52,11 +53,11 @@ public class TimingPage extends PageCommon {
clickElement(TimingLocator.SELECT_WORKER_GROUP);
clickElement(TimingLocator.CLICK_NOTICE_GROUP);
clickElement(TimingLocator.SELECT_NOTICE_GROUP);
- sendInput(TimingLocator.INPUT_RECIPIENT, TimingData.RECIPIENT);
- sendInput(TimingLocator.INPUT_Cc,TimingData.Cc);
+ sendInput(TimingLocator.INPUT_RECIPIENT, timingData.getTimingData("recipient"));
+ sendInput(TimingLocator.INPUT_Cc, timingData.getTimingData("Cc"));
clickButton(TimingLocator.CLICK_CREATE_BUTTON);
- return ifTextExists(TimingLocator.TIMING_STATE, TimingData.TIMING_OFFLINE_STATE);
+ return ifTextExists(TimingLocator.TIMING_STATE, timingData.getTimingData("offline"));
}
/**
@@ -68,7 +69,7 @@ public class TimingPage extends PageCommon {
clickButton(TimingLocator.CLICK_TIMING_MANAGEMENT_BUTTON);
// Determine whether the workflow name exists
- ifTextExists(TimingLocator.WORKFLOW_NAME, WorkflowDefineData.INPUT_WORKFLOW_NAME);
+ ifTextExists(TimingLocator.WORKFLOW_NAME, timingData.getTimingData("offline"));
System.out.println("Click edit timing button");
clickButton(TimingLocator.CLICK_EDIT_TIMING_BUTTON);
@@ -85,11 +86,11 @@ public class TimingPage extends PageCommon {
clickElement(TimingLocator.SELECT_WORKER_GROUP);
clickElement(TimingLocator.CLICK_NOTICE_GROUP);
clickElement(TimingLocator.SELECT_NOTICE_GROUP);
- sendInput(TimingLocator.INPUT_RECIPIENT, TimingData.EDIT_RECIPIENT);
- sendInput(TimingLocator.INPUT_Cc,TimingData.EDIT_Cc);
+ sendInput(TimingLocator.INPUT_RECIPIENT, timingData.getTimingData("editRecipient"));
+ sendInput(TimingLocator.INPUT_Cc, timingData.getTimingData("editCc"));
clickButton(TimingLocator.CLICK_CREATE_BUTTON);
- return ifTitleContains(TimingData.TIMING_TITLE );
+ return ifTitleContains(timingData.getTimingData("timingTitle"));
}
@@ -99,13 +100,13 @@ public class TimingPage extends PageCommon {
public boolean onlineTiming() throws InterruptedException {
flushPage();
// Determine whether the timing is offline
- ifTextExists(TimingLocator.TIMING_MANAGEMENT_TIMING_STATE, TimingData.TIMING_OFFLINE_STATE);
+ ifTextExists(TimingLocator.TIMING_MANAGEMENT_TIMING_STATE, timingData.getTimingData("offline"));
// click online timing button
System.out.println("Click online timing button");
clickElement(TimingLocator.CLICK_ONLINE_TIMING_BUTTON);
- return ifTextExists(TimingLocator.TIMING_MANAGEMENT_TIMING_STATE, TimingData.TIMING_ONLINE_STATE);
+ return ifTextExists(TimingLocator.TIMING_MANAGEMENT_TIMING_STATE, timingData.getTimingData("online"));
}
@@ -115,13 +116,13 @@ public class TimingPage extends PageCommon {
public boolean offlineTiming() throws InterruptedException {
flushPage();
// Determine whether the timing is online
- ifTextExists(TimingLocator.TIMING_MANAGEMENT_TIMING_STATE, TimingData.TIMING_ONLINE_STATE);
+ ifTextExists(TimingLocator.TIMING_MANAGEMENT_TIMING_STATE, timingData.getTimingData("online"));
// click offline timing button
System.out.println("Click offline timing button");
clickElement(TimingLocator.CLICK_OFFLINE_TIMING_BUTTON);
- return ifTextExists(TimingLocator.TIMING_MANAGEMENT_TIMING_STATE, TimingData.TIMING_OFFLINE_STATE);
+ return ifTextExists(TimingLocator.TIMING_MANAGEMENT_TIMING_STATE, timingData.getTimingData("offline"));
}
@@ -131,7 +132,7 @@ public class TimingPage extends PageCommon {
*/
public boolean deleteTiming() throws InterruptedException {
// Determine whether the timing is offline
- ifTextExists(TimingLocator.TIMING_MANAGEMENT_TIMING_STATE, TimingData.TIMING_OFFLINE_STATE);
+ ifTextExists(TimingLocator.TIMING_MANAGEMENT_TIMING_STATE, timingData.getTimingData("offline"));
// click offline timing button
System.out.println("Click delete timing button");
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/page/project/WorkflowDefinePage.java b/e2e/src/test/java/org/apache/dolphinscheduler/page/project/WorkflowDefinePage.java
index 8826222189..72722d8f10 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/page/project/WorkflowDefinePage.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/page/project/WorkflowDefinePage.java
@@ -17,7 +17,6 @@
package org.apache.dolphinscheduler.page.project;
import org.apache.dolphinscheduler.common.PageCommon;
-import org.apache.dolphinscheduler.constant.TestConstant;
import org.apache.dolphinscheduler.data.project.ProjectData;
import org.apache.dolphinscheduler.data.project.WorkflowDefineData;
import org.apache.dolphinscheduler.locator.project.ProjectLocator;
@@ -25,6 +24,9 @@ import org.apache.dolphinscheduler.locator.project.WorkflowDefineLocator;
import org.openqa.selenium.WebDriver;
public class WorkflowDefinePage extends PageCommon {
+ WorkflowDefineData workflowDefineData = new WorkflowDefineData();
+ ProjectData projectData = new ProjectData();
+
public WorkflowDefinePage(WebDriver driver) {
super(driver);
}
@@ -34,18 +36,18 @@ public class WorkflowDefinePage extends PageCommon {
*/
public boolean jumpWorkflowPage() throws InterruptedException {
- ifTextExists(ProjectLocator.LIST_PROJECT_NAME, ProjectData.PROJECT_NAME);
+ ifTextExists(ProjectLocator.LIST_PROJECT_NAME, projectData.getProjectData("projectName"));
// click project name
clickElement(WorkflowDefineLocator.CLICK_PROJECT_NAME);
- ifTextExists(WorkflowDefineLocator.CLICK_WORKFLOW_DEFINE,WorkflowDefineData.workflow_define);
+ ifTextExists(WorkflowDefineLocator.CLICK_WORKFLOW_DEFINE,workflowDefineData.getWorkflowDefineData("workflowDefine"));
System.out.println("Click on workflow define to jump to workflow define page");
// click workflow define
clickElement(WorkflowDefineLocator.CLICK_WORKFLOW_DEFINE);
- return ifTitleContains(WorkflowDefineData.WORKFLOW_TITLE);
+ return ifTitleContains(workflowDefineData.getWorkflowDefineData("workflowDefineTitle"));
}
public boolean createWorkflow() throws InterruptedException {
@@ -58,8 +60,7 @@ public class WorkflowDefinePage extends PageCommon {
dragAndDrop(WorkflowDefineLocator.MOUSE_DOWN_AT_SHELL, WorkflowDefineLocator.MOUSE_MOVE_SHELL_AT_DAG);
//input shell task _name
- sendInput(WorkflowDefineLocator.INPUT_SHELL_TASK_NAME , WorkflowDefineData.SHELL_TASK_NAME);
-
+ sendInput(WorkflowDefineLocator.INPUT_SHELL_TASK_NAME, workflowDefineData.getWorkflowDefineData("shellTaskName"));
//click stop run type
clickElement(WorkflowDefineLocator.CLICK_STOP_RUN_TYPE);
@@ -67,7 +68,7 @@ public class WorkflowDefinePage extends PageCommon {
clickElement(WorkflowDefineLocator.CLICK_NORMAL_RUN_TYPE);
//input shell task description
- sendInput(WorkflowDefineLocator.INPUT_SHELL_TASK_DESCRIPTION , WorkflowDefineData.SHELL_TASK_DESCRIPTION);
+ sendInput(WorkflowDefineLocator.INPUT_SHELL_TASK_DESCRIPTION, workflowDefineData.getWorkflowDefineData("shellTaskDescription"));
//select task priority
clickElement(WorkflowDefineLocator.CLICK_TASK_PRIORITY);
@@ -100,20 +101,20 @@ public class WorkflowDefinePage extends PageCommon {
clearInput(WorkflowDefineLocator.SELECT_TIMEOUT);
//input timeout
- sendInput(WorkflowDefineLocator.SELECT_TIMEOUT, WorkflowDefineData.INPUT_TIMEOUT);
+ sendInput(WorkflowDefineLocator.SELECT_TIMEOUT, workflowDefineData.getWorkflowDefineData("taskTimeout"));
//click codeMirror and input script
- inputCodeMirror(WorkflowDefineLocator.CLICK_CODE_MIRROR, WorkflowDefineLocator.INPUT_SCRIPT, WorkflowDefineData.SHELL_SCRIPT);
+ inputCodeMirror(WorkflowDefineLocator.CLICK_CODE_MIRROR, WorkflowDefineLocator.INPUT_SCRIPT, workflowDefineData.getWorkflowDefineData("shellScript"));
scrollToElementBottom(WorkflowDefineLocator.SCROLL_BOTTOM);
//click custom parameters
clickElement(WorkflowDefineLocator.CLICK_CUSTOM_PARAMETERS);
//input custom parameters
- sendInput(WorkflowDefineLocator.INPUT_CUSTOM_PARAMETERS, WorkflowDefineData.INPUT_CUSTOM_PARAMETERS);
+ sendInput(WorkflowDefineLocator.INPUT_CUSTOM_PARAMETERS, workflowDefineData.getWorkflowDefineData("customParameter1"));
//input custom parameters value
- sendInput(WorkflowDefineLocator.INPUT_CUSTOM_PARAMETERS_VALUE, WorkflowDefineData.INPUT_CUSTOM_PARAMETERS_VALUE);
+ sendInput(WorkflowDefineLocator.INPUT_CUSTOM_PARAMETERS_VALUE, workflowDefineData.getWorkflowDefineData("customParameterValue1"));
//click add custom parameters
clickElement(WorkflowDefineLocator.CLICK_ADD_CUSTOM_PARAMETERS);
@@ -121,10 +122,10 @@ public class WorkflowDefinePage extends PageCommon {
scrollToElementBottom(WorkflowDefineLocator.SCROLL_BOTTOM);
//input add custom parameters
- sendInput(WorkflowDefineLocator.INPUT_ADD_CUSTOM_PARAMETERS, WorkflowDefineData.INPUT_ADD_CUSTOM_PARAMETERS);
+ sendInput(WorkflowDefineLocator.INPUT_ADD_CUSTOM_PARAMETERS, workflowDefineData.getWorkflowDefineData("customParameter2"));
//input add custom parameters value
- sendInput(WorkflowDefineLocator.INPUT_ADD_CUSTOM_PARAMETERS_VALUE, WorkflowDefineData.INPUT_ADD_CUSTOM_PARAMETERS_VALUE);
+ sendInput(WorkflowDefineLocator.INPUT_ADD_CUSTOM_PARAMETERS_VALUE, workflowDefineData.getWorkflowDefineData("customParameterValue2"));
//click delete custom parameters
clickElement(WorkflowDefineLocator.CLICK_DELETE_CUSTOM_PARAMETERS);
@@ -140,7 +141,7 @@ public class WorkflowDefinePage extends PageCommon {
clickButton(WorkflowDefineLocator.COPY_TASK);
clickButton(WorkflowDefineLocator.CLICK_LINE);
mouseMovePosition(WorkflowDefineLocator.LINE_SOURCES_TASK,WorkflowDefineLocator.LINE_TARGET_TASK);
- return ifTitleContains(WorkflowDefineData.CREATE_WORKFLOW_TITLE);
+ return ifTitleContains(workflowDefineData.getWorkflowDefineData("createWorkflowTitle"));
}
/**
@@ -153,10 +154,10 @@ public class WorkflowDefinePage extends PageCommon {
clickElement(WorkflowDefineLocator.CLICK_SAVE_WORKFLOW_BUTTON);
//input workflow name
- sendInput(WorkflowDefineLocator.INPUT_WORKFLOW_NAME, WorkflowDefineData.INPUT_WORKFLOW_NAME);
+ sendInput(WorkflowDefineLocator.INPUT_WORKFLOW_NAME, workflowDefineData.getWorkflowDefineData("workflowName"));
//input workflow description
- sendInput(WorkflowDefineLocator.INPUT_WORKFLOW_DESCRIPTION, WorkflowDefineData.INPUT_WORKFLOW_DESCRIPTION);
+ sendInput(WorkflowDefineLocator.INPUT_WORKFLOW_DESCRIPTION, workflowDefineData.getWorkflowDefineData("workflowDescription"));
//select tenant
clickElement(WorkflowDefineLocator.CLICK_TENANT);
@@ -167,25 +168,25 @@ public class WorkflowDefinePage extends PageCommon {
clearInput(WorkflowDefineLocator.INPUT_WORKFLOW_TIMEOUT);
//input workflow timeout
- sendInput(WorkflowDefineLocator.INPUT_WORKFLOW_TIMEOUT, WorkflowDefineData.INPUT_WORKFLOW_TIMEOUT);
+ sendInput(WorkflowDefineLocator.INPUT_WORKFLOW_TIMEOUT, workflowDefineData.getWorkflowDefineData("workflowTimeout"));
//click workflow global parameters
clickElement(WorkflowDefineLocator.CLICK_WORKFLOW_GLOBAL_PARAMETERS);
//input workflow global parameters
- sendInput(WorkflowDefineLocator.INPUT_WORKFLOW_GLOBAL_PARAMETERS, WorkflowDefineData.INPUT_WORKFLOW_GLOBAL_PARAMETERS);
+ sendInput(WorkflowDefineLocator.INPUT_WORKFLOW_GLOBAL_PARAMETERS, workflowDefineData.getWorkflowDefineData("globalParameter1"));
//input workflow global parameters value
- sendInput(WorkflowDefineLocator.INPUT_WORKFLOW_GLOBAL_PARAMETERS_VALUES, WorkflowDefineData.INPUT_WORKFLOW_GLOBAL_PARAMETERS_VALUES);
+ sendInput(WorkflowDefineLocator.INPUT_WORKFLOW_GLOBAL_PARAMETERS_VALUES, workflowDefineData.getWorkflowDefineData("globalParameterValue1"));
//click to add workflow global parameters
clickElement(WorkflowDefineLocator.CLICK_ADD_WORKFLOW_GLOBAL_PARAMETERS);
//input to add workflow global parameters
- sendInput(WorkflowDefineLocator.INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS, WorkflowDefineData.INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS);
+ sendInput(WorkflowDefineLocator.INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS, workflowDefineData.getWorkflowDefineData("globalParameter2"));
//input to add workflow global parameters value
- sendInput(WorkflowDefineLocator.INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS_VALUES, WorkflowDefineData.INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS_VALUES);
+ sendInput(WorkflowDefineLocator.INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS_VALUES, workflowDefineData.getWorkflowDefineData("globalParameterValue2"));
//delete workflow global parameters value
clickElement(WorkflowDefineLocator.CLICK_DELETE_WORKFLOW_GLOBAL_PARAMETERS);
@@ -194,33 +195,33 @@ public class WorkflowDefinePage extends PageCommon {
System.out.println("submit workflow");
clickButton(WorkflowDefineLocator.CLICK_ADD_BUTTON);
- return ifTitleContains(WorkflowDefineData.CREATE_WORKFLOW_TITLE);
+ return ifTitleContains(workflowDefineData.getWorkflowDefineData("createWorkflowTitle"));
}
public boolean onlineWorkflow() throws InterruptedException {
clickElement(WorkflowDefineLocator.CLICK_WORKFLOW_DEFINE);
// Determine whether the workflow status is offline
- ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE,WorkflowDefineData.WORKFLOW_OFFLINE_STATE);
+ ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE, workflowDefineData.getWorkflowDefineData("offline"));
// click online button
System.out.println("Click online workflow button");
clickButton(WorkflowDefineLocator.CLICK_ONLINE_WORKFLOW_BUTTON);
- return ifTitleContains(WorkflowDefineData.WORKFLOW_TITLE);
+ return ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE, workflowDefineData.getWorkflowDefineData("online"));
}
public boolean offlineWorkflow() throws InterruptedException {
clickElement(WorkflowDefineLocator.CLICK_WORKFLOW_DEFINE);
// Determine whether the workflow status is online
- ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE,WorkflowDefineData.WORKFLOW_ONLINE_STATE);
+ ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE, workflowDefineData.getWorkflowDefineData("online"));
// click offline button
System.out.println("offline workflow");
clickButton(WorkflowDefineLocator.CLICK_OFFLINE_WORKFLOW_BUTTON);
- return ifTitleContains(WorkflowDefineData.WORKFLOW_TITLE);
+ return ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE, workflowDefineData.getWorkflowDefineData("offline"));
}
@@ -229,7 +230,7 @@ public class WorkflowDefinePage extends PageCommon {
clickElement(WorkflowDefineLocator.CLICK_WORKFLOW_DEFINE);
// Determine whether the workflow status is offline
- ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE,WorkflowDefineData.WORKFLOW_OFFLINE_STATE);
+ ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE, workflowDefineData.getWorkflowDefineData("offline"));
clickButton(WorkflowDefineLocator.DELETE_WORKFLOW_BOTTOM);
@@ -237,6 +238,6 @@ public class WorkflowDefinePage extends PageCommon {
clickButton(WorkflowDefineLocator.CONFIRM_DELETE_WORKFLOW_BOTTOM);
// Whether to enter the specified page after submit
- return ifTitleContains(WorkflowDefineData.WORKFLOW_TITLE);
+ return ifTitleContains(workflowDefineData.getWorkflowDefineData("workflowDefineTitle"));
}
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/page/security/AlertManagePage.java b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/AlertManagePage.java
index 541251e0db..97e167ec29 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/page/security/AlertManagePage.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/AlertManagePage.java
@@ -22,6 +22,8 @@ import org.apache.dolphinscheduler.locator.security.AlertManageLocator;
import org.openqa.selenium.WebDriver;
public class AlertManagePage extends PageCommon {
+ AlertManageData alertManageData = new AlertManageData();
+
/**
* Unique constructor
* @param driver driver
@@ -41,26 +43,26 @@ public class AlertManagePage extends PageCommon {
clickElement(AlertManageLocator.CLICK_ALERT_MANAGE);
//determine whether the create alert button exists
- ifTextExists(AlertManageLocator.CLICK_CREATE_ALERT,AlertManageData.CREATE_ALERT);
+ ifTextExists(AlertManageLocator.CLICK_CREATE_ALERT,alertManageData.getAlertData("createAlert"));
// click create alert button
System.out.println("start click create alert button");
clickElement(AlertManageLocator.CLICK_CREATE_ALERT);
// input alert data
System.out.println("start input alert ");
- sendInput(AlertManageLocator.INPUT_ALERT_NAME, AlertManageData.ALERT_NAME);
+ sendInput(AlertManageLocator.INPUT_ALERT_NAME, alertManageData.getAlertData("alertName"));
clickElement(AlertManageLocator.CLICK_ALERT_TYPE);
clickElement(AlertManageLocator.SELECT_ALERT_EMAIL);
- sendInput(AlertManageLocator.INPUT_ALERT_DESCRIPTION, AlertManageData.DESCRIPTION);
+ sendInput(AlertManageLocator.INPUT_ALERT_DESCRIPTION, alertManageData.getAlertData("description"));
// click button
clickButton(AlertManageLocator.SUBMIT_ALERT);
// Whether to enter the specified page after submit
- return ifTextExists(AlertManageLocator.ALERT_NAME, AlertManageData.ALERT_NAME);
+ return ifTextExists(AlertManageLocator.ALERT_NAME, alertManageData.getAlertData("alertName"));
}
public boolean deleteAlert() throws InterruptedException {
@@ -68,7 +70,7 @@ public class AlertManagePage extends PageCommon {
// click alert manage
clickElement(AlertManageLocator.CLICK_ALERT_MANAGE);
- ifTextExists(AlertManageLocator.ALERT_NAME, AlertManageData.ALERT_NAME);
+ ifTextExists(AlertManageLocator.ALERT_NAME, alertManageData.getAlertData("alertName"));
// click delete alert button
clickButton(AlertManageLocator.DELETE_ALERT_BUTTON);
@@ -77,6 +79,6 @@ public class AlertManagePage extends PageCommon {
clickButton(AlertManageLocator.CONFIRM_DELETE_ALERT_BUTTON);
// Whether to enter the specified page after submit
- return ifTitleContains(AlertManageData.ALERT_MANAGE);
+ return ifTitleContains(alertManageData.getAlertData("alertTitle"));
}
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/page/security/QueueManagePage.java b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/QueueManagePage.java
index 368202e921..f6a55bb73b 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/page/security/QueueManagePage.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/QueueManagePage.java
@@ -22,6 +22,8 @@ import org.apache.dolphinscheduler.locator.security.QueueManageLocator;
import org.openqa.selenium.WebDriver;
public class QueueManagePage extends PageCommon {
+ QueueManageData queueManageData = new QueueManageData();
+
/**
* Unique constructor
* @param driver driver
@@ -41,7 +43,7 @@ public class QueueManagePage extends PageCommon {
clickElement(QueueManageLocator.CLICK_QUEUE_MANAGE);
//determine whether the create queue button exists
- ifTextExists(QueueManageLocator.CLICK_CREATE_QUEUE,QueueManageData.CREATE_QUEUE);
+ ifTextExists(QueueManageLocator.CLICK_CREATE_QUEUE, queueManageData.getQueueData("createQueueButton"));
// click create queue button
System.out.println("start click create queue button");
@@ -49,15 +51,15 @@ public class QueueManagePage extends PageCommon {
// input queue data
System.out.println("start input queue");
- sendInput(QueueManageLocator.INPUT_QUEUE_NAME, QueueManageData.QUEUE_NAME);
+ sendInput(QueueManageLocator.INPUT_QUEUE_NAME, queueManageData.getQueueData("queueName"));
- sendInput(QueueManageLocator.INPUT_QUEUE_VALUE, QueueManageData.QUEUE_VALUE);
+ sendInput(QueueManageLocator.INPUT_QUEUE_VALUE, queueManageData.getQueueData("queueValue"));
// click button
clickButton(QueueManageLocator.SUBMIT_QUEUE);
// Whether to enter the specified page after submit
- return ifTextExists(QueueManageLocator.LIST_QUEUE_NAME, QueueManageData.QUEUE_NAME);
+ return ifTextExists(QueueManageLocator.LIST_QUEUE_NAME, queueManageData.getQueueData("queueName"));
}
@@ -70,19 +72,19 @@ public class QueueManagePage extends PageCommon {
// click queue manage
clickElement(QueueManageLocator.CLICK_QUEUE_MANAGE);
- ifTextExists(QueueManageLocator.LIST_QUEUE_NAME, QueueManageData.QUEUE_NAME);
+ ifTextExists(QueueManageLocator.LIST_QUEUE_NAME, queueManageData.getQueueData("queueName"));
// click edit queue button
clickButton(QueueManageLocator.CLICK_EDIT_QUEUE);
// input queue data
- clearSendInput(QueueManageLocator.INPUT_QUEUE_NAME, QueueManageData.EDIT_QUEUE_NAME);
- clearSendInput(QueueManageLocator.INPUT_QUEUE_VALUE, QueueManageData.EDIT_QUEUE_VALUE);
+ clearSendInput(QueueManageLocator.INPUT_QUEUE_NAME, queueManageData.getQueueData("editQueueName"));
+ clearSendInput(QueueManageLocator.INPUT_QUEUE_VALUE, queueManageData.getQueueData("editQueueValue"));
// click button
clickButton(QueueManageLocator.SUBMIT_QUEUE);
// Whether to enter the specified page after submit
- return ifTextExists(QueueManageLocator.LIST_QUEUE_NAME, QueueManageData.EDIT_QUEUE_NAME);
+ return ifTextExists(QueueManageLocator.LIST_QUEUE_NAME, queueManageData.getQueueData("editQueueName"));
}
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/page/security/TenantManagePage.java b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/TenantManagePage.java
index 40d964fa33..44f45f1d2a 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/page/security/TenantManagePage.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/TenantManagePage.java
@@ -22,6 +22,8 @@ import org.apache.dolphinscheduler.locator.security.TenantManageLocator;
import org.openqa.selenium.WebDriver;
public class TenantManagePage extends PageCommon {
+ TenantManageData tenantManageData = new TenantManageData();
+
/**
* Unique constructor
* @param driver driver
@@ -37,7 +39,7 @@ public class TenantManagePage extends PageCommon {
*/
public boolean jumpSecurity() throws InterruptedException {
clickTopElement(TenantManageLocator.SECURITY_CENTER);
- return ifTitleContains(TenantManageData.TENANT_MANAGE);
+ return ifTitleContains(tenantManageData.getTenantData("tenantTitle"));
}
/**
@@ -52,16 +54,16 @@ public class TenantManagePage extends PageCommon {
clickButton(TenantManageLocator.CREATE_TENANT_BUTTON);
// tenant data
- sendInput(TenantManageLocator.TENANT_INPUT_CODE, TenantManageData.TENANT_CODE);
- sendInput(TenantManageLocator.TENANT_INPUT_NAME, TenantManageData.TENANT_NAME);
- sendInput(TenantManageLocator.QUEUE, TenantManageData.QUEUE);
- sendInput(TenantManageLocator.DESCRIPTION, TenantManageData.DESCRIPTION);
+ sendInput(TenantManageLocator.TENANT_INPUT_CODE, tenantManageData.getTenantData("tenantCode"));
+ sendInput(TenantManageLocator.TENANT_INPUT_NAME, tenantManageData.getTenantData("tenantName"));
+ sendInput(TenantManageLocator.QUEUE, tenantManageData.getTenantData("queue"));
+ sendInput(TenantManageLocator.DESCRIPTION, tenantManageData.getTenantData("description"));
// click button
clickButton(TenantManageLocator.SUBMIT_BUTTON);
// Whether to enter the specified page after submit
- return ifTextExists(TenantManageLocator.TENANT_CODE_FIRST, TenantManageData.TENANT_CODE);
+ return ifTextExists(TenantManageLocator.TENANT_CODE_FIRST, tenantManageData.getTenantData("tenantCode"));
}
public boolean deleteTenant() throws InterruptedException {
@@ -74,6 +76,6 @@ public class TenantManagePage extends PageCommon {
clickButton(TenantManageLocator.CONFIRM_DELETE_TENANT_BUTTON);
// Whether to enter the specified page after submit
- return ifTitleContains(TenantManageData.TENANT_MANAGE);
+ return ifTitleContains(tenantManageData.getTenantData("tenantTitle"));
}
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/page/security/TokenManagePage.java b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/TokenManagePage.java
index 61fb93c570..35a9377578 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/page/security/TokenManagePage.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/TokenManagePage.java
@@ -22,6 +22,8 @@ import org.apache.dolphinscheduler.locator.security.TokenManageLocator;
import org.openqa.selenium.WebDriver;
public class TokenManagePage extends PageCommon {
+ TokenManageData tokenManageData = new TokenManageData();
+
public TokenManagePage(WebDriver driver) {
super(driver);
}
@@ -36,11 +38,13 @@ public class TokenManagePage extends PageCommon {
clickElement(TokenManageLocator.CLICK_TOKEN_MANAGE);
//determine whether the create token button exists
- ifTextExists(TokenManageLocator.CLICK_CREATE_TOKEN,TokenManageData.CREATE_TOKEN);
+ ifTextExists(TokenManageLocator.CLICK_CREATE_TOKEN, tokenManageData.getTokenData("createTokenText"));
// click create token button
clickButton(TokenManageLocator.CLICK_CREATE_TOKEN);
+ ifTextExists(TokenManageLocator.CREATE_TOKEN_POPUP,tokenManageData.getTokenData("createTokenText"));
+
clickButton(TokenManageLocator.SELECT_USER);
clickButton(TokenManageLocator.CLICK_GENERATE_TOKEN_BUTTON);
@@ -50,7 +54,7 @@ public class TokenManagePage extends PageCommon {
clickButton(TokenManageLocator.CLICK_SUBMIT_BUTTON);
// Whether to enter the specified page after submit
- return ifTitleContains(TokenManageData.TOKEN_MANAGE);
+ return ifTitleContains(tokenManageData.getTokenData("tokenTitle"));
}
/**
@@ -66,7 +70,7 @@ public class TokenManagePage extends PageCommon {
locateElement(TokenManageLocator.EDIT_TOKEN_BUTTON);
// click edit token button
- clickButton(TokenManageLocator.CLICK_EDIT_BUTTON);
+ clickButton(TokenManageLocator.EDIT_TOKEN_BUTTON);
clickButton(TokenManageLocator.SELECT_USER);
@@ -77,7 +81,7 @@ public class TokenManagePage extends PageCommon {
clickButton(TokenManageLocator.CLICK_SUBMIT_BUTTON);
// Whether to enter the specified page after submit
- return ifTitleContains(TokenManageData.TOKEN_MANAGE);
+ return ifTitleContains(tokenManageData.getTokenData("tokenTitle"));
}
@@ -89,7 +93,7 @@ public class TokenManagePage extends PageCommon {
clickButton(TokenManageLocator.CLICK_DELETE_BUTTON);
clickButton(TokenManageLocator.CLICK_CONFIRM_DELETE_BUTTON);
- return ifTitleContains(TokenManageData.TOKEN_MANAGE);
+ return ifTitleContains(tokenManageData.getTokenData("tokenTitle"));
}
}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/page/security/UserManagePage.java b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/UserManagePage.java
index 367896a3cf..b489d12621 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/page/security/UserManagePage.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/UserManagePage.java
@@ -22,6 +22,8 @@ import org.apache.dolphinscheduler.locator.security.UserManageLocator;
import org.openqa.selenium.WebDriver;
public class UserManagePage extends PageCommon {
+ UserManageData userManageData = new UserManageData();
+
public UserManagePage(WebDriver driver) {
super(driver);
}
@@ -34,22 +36,21 @@ public class UserManagePage extends PageCommon {
public boolean createUser() throws InterruptedException {
// click user manage
clickElement(UserManageLocator.CLICK_USER_MANAGE);
-
//determine whether the create user button exists
- ifTextExists(UserManageLocator.CLICK_CREATE_USER_BUTTON,UserManageData.CREATE_USER_BUTTON);
+ ifTextExists(UserManageLocator.CLICK_CREATE_USER_BUTTON, userManageData.getUserData("createUserButton"));
// click create user button
clickButton(UserManageLocator.CLICK_CREATE_USER_BUTTON);
// input user data
- sendInput(UserManageLocator.INPUT_USERNAME, UserManageData.USERNAME);
- sendInput(UserManageLocator.INPUT_PASSWORD, UserManageData.PASSWORD);
+ sendInput(UserManageLocator.INPUT_USERNAME, userManageData.getUserData("userName"));
+ sendInput(UserManageLocator.INPUT_PASSWORD, userManageData.getUserData("password"));
clickButton(UserManageLocator.CLICK_TENANT);
clickButton(UserManageLocator.SELECT_TENANT);
clickButton(UserManageLocator.CLICK_QUEUE);
clickButton(UserManageLocator.SELECT_QUEUE);
- sendInput(UserManageLocator.INPUT_EMAIL, UserManageData.EMAIL);
- sendInput(UserManageLocator.INPUT_PHONE, UserManageData.PHONE);
+ sendInput(UserManageLocator.INPUT_EMAIL, userManageData.getUserData("email"));
+ sendInput(UserManageLocator.INPUT_PHONE, userManageData.getUserData("phone"));
clickElement(UserManageLocator.SELECT_STOP_STATE);
clickElement(UserManageLocator.SELECT_ENABLE_STATE);
@@ -57,7 +58,7 @@ public class UserManagePage extends PageCommon {
clickButton(UserManageLocator.SUBMIT);
// Whether to enter the specified page after submit
- return ifTitleContains(UserManageData.USER_MANAGE);
+ return ifTextExists(UserManageLocator.USERNAME, userManageData.getUserData("userName"));
}
/**
@@ -70,14 +71,14 @@ public class UserManagePage extends PageCommon {
clickElement(UserManageLocator.CLICK_USER_MANAGE);
//determine whether the general user exists
- ifTextExists(UserManageLocator.USER_NAME,UserManageData.USERNAME);
+ ifTextExists(UserManageLocator.USERNAME, userManageData.getUserData("userName"));
// click edit user button
clickButton(UserManageLocator.EDIT_GENERAL_USER_BUTTON );
// input user data
- clearSendInput(UserManageLocator.INPUT_USERNAME, UserManageData.EDIT_USERNAME);
- clearSendInput(UserManageLocator.INPUT_PASSWORD, UserManageData.EDIT_PASSWORD);
+ clearSendInput(UserManageLocator.INPUT_USERNAME, userManageData.getUserData("editUserName"));
+ clearSendInput(UserManageLocator.INPUT_PASSWORD, userManageData.getUserData("editPassword"));
clickButton(UserManageLocator.CLICK_TENANT);
clickButton(UserManageLocator.SELECT_TENANT);
@@ -85,8 +86,8 @@ public class UserManagePage extends PageCommon {
clickButton(UserManageLocator.CLICK_QUEUE);
clickButton(UserManageLocator.SELECT_QUEUE);
- clearSendInput(UserManageLocator.INPUT_EMAIL, UserManageData.EDIT_EMAIL);
- clearSendInput(UserManageLocator.INPUT_PHONE, UserManageData.EDIT_PHONE);
+ clearSendInput(UserManageLocator.INPUT_EMAIL, userManageData.getUserData("editEmail"));
+ clearSendInput(UserManageLocator.INPUT_PHONE, userManageData.getUserData("editPhone"));
clickElement(UserManageLocator.SELECT_STOP_STATE);
clickElement(UserManageLocator.SELECT_ENABLE_STATE);
@@ -96,7 +97,7 @@ public class UserManagePage extends PageCommon {
System.out.println("end edit general user");
// Whether to enter the specified page after submit
- return ifTitleContains(UserManageData.USER_MANAGE);
+ return ifTitleContains(userManageData.getUserData("userTitle"));
}
/**
@@ -109,7 +110,7 @@ public class UserManagePage extends PageCommon {
clickElement(UserManageLocator.CLICK_USER_MANAGE);
//determine whether the general user edit success
- ifTextExists(UserManageLocator.USER_NAME,UserManageData.EDIT_USERNAME);
+ ifTextExists(UserManageLocator.USER_NAME,userManageData.getUserData("editUserName"));
// click edit user button
clickButton(UserManageLocator.EDIT_ADMIN_USER_BUTTON );
@@ -123,7 +124,7 @@ public class UserManagePage extends PageCommon {
clickButton(UserManageLocator.SUBMIT);
System.out.println("end edit admin user");
// Whether to enter the specified page after submit
- return ifTitleContains(UserManageData.USER_MANAGE);
+ return ifTitleContains(userManageData.getUserData("userTitle"));
}
@@ -144,6 +145,6 @@ public class UserManagePage extends PageCommon {
clickButton(UserManageLocator.CONFIRM_DELETE_USER_BUTTON);
// Whether to enter the specified page after submit
- return ifTitleContains(UserManageData.USER_MANAGE);
+ return ifTitleContains(userManageData.getUserData("userTitle"));
}
}
diff --git a/e2e/src/test/resources/testData/security_zh_cn.yml b/e2e/src/test/resources/testData/security_zh_cn.yml
new file mode 100644
index 0000000000..89be444df5
--- /dev/null
+++ b/e2e/src/test/resources/testData/security_zh_cn.yml
@@ -0,0 +1,55 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+userManage:
+ userName: selenium_user_11111
+ password: 123456qwe
+ email: 123456789@qq.com
+ phone: '15811112222'
+ createUserButton: 创建用户
+ editUserName: selenium_user_edit
+ editPassword: 123456qwe@asd
+ editEmail: 123456_edit@qq.com
+ editPhone: '15800001111'
+ userTitle: 用户管理 - DolphinScheduler
+
+tenantManage:
+ tenantCode: selenium_tenant_code_1
+ tenantName: selenium_tenant_Name
+ queue: default
+ description: create tenant test
+ tenantTitle: 租户管理 - DolphinScheduler
+
+alertManage:
+ alertName: selenium_alert_Name
+ createAlert: 创建告警组
+ alertType: 邮件
+ description: create alert test
+ alertTitle: 告警组管理 - DolphinScheduler
+
+queueManage:
+ queueName: selenium_queue_name
+ queueValue: selenium_queue_value
+ createQueueButton: 创建队列
+ editQueueName: selenium_queue_value_edit
+ editQueueValue: selenium_queue_value_edit
+ queueTitle: 队列管理 - DolphinScheduler
+
+tokenManage:
+ tokenTitle: 令牌管理 - DolphinScheduler
+ createTokenText: 创建令牌
+ userName: admin
diff --git a/e2e/src/test/resources/testData/workflow_zh_cn.yml b/e2e/src/test/resources/testData/workflow_zh_cn.yml
new file mode 100644
index 0000000000..bb6dea7851
--- /dev/null
+++ b/e2e/src/test/resources/testData/workflow_zh_cn.yml
@@ -0,0 +1,63 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+projectManage:
+ createProjectButton: 创建项目
+ projectName: selenium_project_1
+ description: test create project description
+ projectTitle: 项目 - DolphinScheduler
+
+workflowDefine:
+ workflowDefine: 工作流定义
+ shellTaskName: shell_task_selenium_1
+ shellTaskDescription: shell task description test
+ taskTimeout: '60'
+ shellScript: echo "shell task test"
+ customParameter1: selenium_parameter
+ customParameterValue1: selenium_parameter_123
+ customParameter2: selenium_parameter_delete
+ customParameterValue2: selenium_parameter_delete_456
+ workflowDefineTitle: 工作流定义 - DolphinScheduler
+ createWorkflowTitle: 创建流程定义 - DolphinScheduler
+ workflowName: selenium_shell_1
+ workflowDescription: test selenium_shell_1 description
+ workflowTimeout: '30'
+ globalParameter1: selenium_global_parameters_1
+ globalParameterValue1: selenium_global_parameters_value_1
+ globalParameter2: selenium_global_parameters_2
+ globalParameterValue2: selenium_global_parameters_value_2
+ online: 上线
+ offline: 下线
+
+runWorkflow:
+ recipient: 123456789@qq.com
+ Cc: qwe12312sds@qq.com
+ online: 上线
+ offline: 下线
+
+timing:
+ recipient: test123456@qq.com
+ Cc: test.123qwe@qq.com
+ editRecipient: test.edit123456@qq.com
+ editCc: test.edit123qwe@qq.com
+ timingTitle: 定时任务列表 - DolphinScheduler
+ online: 上线
+ offline: 下线
+
+processInstance:
+ processInstanceTitle: 工作流实例 - DolphinScheduler
+ rerun: 重跑
diff --git a/e2e/testng.xml b/e2e/testng.xml
index e08c4da917..8a4791fea6 100644
--- a/e2e/testng.xml
+++ b/e2e/testng.xml
@@ -56,9 +56,9 @@
+
-