Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
pentaLiker
DolphinScheduler
提交
c82758c5
DolphinScheduler
项目概览
pentaLiker
/
DolphinScheduler
与 Fork 源项目一致
Fork自
apache / DolphinScheduler
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
DolphinScheduler
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
c82758c5
编写于
3月 17, 2020
作者:
X
xingchun-chen
提交者:
GitHub
3月 17, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
e2e add the case of deleting user and tenant (#2210)
* add e2e
上级
7dd126da
变更
25
隐藏空白更改
内联
并排
Showing
25 changed file
with
415 addition
and
141 deletion
+415
-141
e2e/src/test/java/org/apache/dolphinscheduler/base/BaseDriver.java
...est/java/org/apache/dolphinscheduler/base/BaseDriver.java
+5
-3
e2e/src/test/java/org/apache/dolphinscheduler/base/BaseTest.java
.../test/java/org/apache/dolphinscheduler/base/BaseTest.java
+8
-9
e2e/src/test/java/org/apache/dolphinscheduler/data/LoginData.java
...test/java/org/apache/dolphinscheduler/data/LoginData.java
+1
-1
e2e/src/test/java/org/apache/dolphinscheduler/data/project/CreatWorkflowData.java
...ache/dolphinscheduler/data/project/CreatWorkflowData.java
+1
-1
e2e/src/test/java/org/apache/dolphinscheduler/data/project/CreateProjectData.java
...ache/dolphinscheduler/data/project/CreateProjectData.java
+2
-2
e2e/src/test/java/org/apache/dolphinscheduler/data/project/CreateWorkflowData.java
...che/dolphinscheduler/data/project/CreateWorkflowData.java
+73
-0
e2e/src/test/java/org/apache/dolphinscheduler/data/security/TenantManageData.java
...ache/dolphinscheduler/data/security/TenantManageData.java
+2
-8
e2e/src/test/java/org/apache/dolphinscheduler/data/security/UserManageData.java
...apache/dolphinscheduler/data/security/UserManageData.java
+1
-4
e2e/src/test/java/org/apache/dolphinscheduler/locator/project/CreateWorkflowLocator.java
...lphinscheduler/locator/project/CreateWorkflowLocator.java
+63
-6
e2e/src/test/java/org/apache/dolphinscheduler/locator/security/TenantManageLocator.java
...olphinscheduler/locator/security/TenantManageLocator.java
+7
-1
e2e/src/test/java/org/apache/dolphinscheduler/locator/security/UserManageLocator.java
.../dolphinscheduler/locator/security/UserManageLocator.java
+3
-0
e2e/src/test/java/org/apache/dolphinscheduler/page/LoginPage.java
...test/java/org/apache/dolphinscheduler/page/LoginPage.java
+11
-3
e2e/src/test/java/org/apache/dolphinscheduler/page/project/CreateProjectPage.java
...ache/dolphinscheduler/page/project/CreateProjectPage.java
+6
-5
e2e/src/test/java/org/apache/dolphinscheduler/page/project/CreateWorkflowPage.java
...che/dolphinscheduler/page/project/CreateWorkflowPage.java
+72
-17
e2e/src/test/java/org/apache/dolphinscheduler/page/security/TenantManagePage.java
...ache/dolphinscheduler/page/security/TenantManagePage.java
+17
-9
e2e/src/test/java/org/apache/dolphinscheduler/page/security/UserManagePage.java
...apache/dolphinscheduler/page/security/UserManagePage.java
+17
-8
e2e/src/test/java/org/apache/dolphinscheduler/testcase/LoginTest.java
.../java/org/apache/dolphinscheduler/testcase/LoginTest.java
+12
-23
e2e/src/test/java/org/apache/dolphinscheduler/testcase/deleteData/DeleteTenantTest.java
...olphinscheduler/testcase/deleteData/DeleteTenantTest.java
+37
-0
e2e/src/test/java/org/apache/dolphinscheduler/testcase/deleteData/DeleteUserTest.java
.../dolphinscheduler/testcase/deleteData/DeleteUserTest.java
+36
-0
e2e/src/test/java/org/apache/dolphinscheduler/testcase/project/CreateProjectTest.java
.../dolphinscheduler/testcase/project/CreateProjectTest.java
+5
-2
e2e/src/test/java/org/apache/dolphinscheduler/testcase/project/CreateWorkflowTest.java
...dolphinscheduler/testcase/project/CreateWorkflowTest.java
+7
-3
e2e/src/test/java/org/apache/dolphinscheduler/testcase/security/TenantManageTest.java
.../dolphinscheduler/testcase/security/TenantManageTest.java
+8
-3
e2e/src/test/java/org/apache/dolphinscheduler/testcase/security/UserManageTest.java
...he/dolphinscheduler/testcase/security/UserManageTest.java
+5
-3
e2e/suite.xml
e2e/suite.xml
+0
-18
e2e/testng.xml
e2e/testng.xml
+16
-12
未找到文件。
e2e/src/test/java/org/apache/dolphinscheduler/base/BaseDriver.java
浏览文件 @
c82758c5
...
@@ -19,6 +19,7 @@ package org.apache.dolphinscheduler.base;
...
@@ -19,6 +19,7 @@ package org.apache.dolphinscheduler.base;
import
org.apache.dolphinscheduler.constant.TestConstant
;
import
org.apache.dolphinscheduler.constant.TestConstant
;
import
org.apache.dolphinscheduler.util.PropertiesReader
;
import
org.apache.dolphinscheduler.util.PropertiesReader
;
import
org.openqa.selenium.Cookie
;
import
org.openqa.selenium.JavascriptExecutor
;
import
org.openqa.selenium.JavascriptExecutor
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.chrome.ChromeDriver
;
import
org.openqa.selenium.chrome.ChromeDriver
;
...
@@ -35,7 +36,7 @@ public class BaseDriver {
...
@@ -35,7 +36,7 @@ public class BaseDriver {
/**
/**
* driver
* driver
*/
*/
private
WebDriver
driver
;
private
static
WebDriver
driver
;
/**
/**
* chrome driver path
* chrome driver path
...
@@ -88,6 +89,7 @@ public class BaseDriver {
...
@@ -88,6 +89,7 @@ public class BaseDriver {
chromeOptions
.
setPageLoadStrategy
(
PageLoadStrategy
.
NONE
);
chromeOptions
.
setPageLoadStrategy
(
PageLoadStrategy
.
NONE
);
chromeOptions
.
addArguments
(
"--no-sandbox"
);
chromeOptions
.
addArguments
(
"--no-sandbox"
);
chromeOptions
.
addArguments
(
"--disable-dev-shm-usage"
);
chromeOptions
.
addArguments
(
"--disable-dev-shm-usage"
);
//Browser client running requires annotation --headless
chromeOptions
.
addArguments
(
"--headless"
);
chromeOptions
.
addArguments
(
"--headless"
);
chromeOptions
.
addArguments
(
"--disable-gpu"
);
chromeOptions
.
addArguments
(
"--disable-gpu"
);
chromeOptions
.
addArguments
(
"--whitelisted-ips"
);
chromeOptions
.
addArguments
(
"--whitelisted-ips"
);
...
@@ -120,7 +122,7 @@ public class BaseDriver {
...
@@ -120,7 +122,7 @@ public class BaseDriver {
*
*
* @return driver
* @return driver
*/
*/
public
WebDriver
getDriver
()
{
public
static
WebDriver
getDriver
()
{
return
driver
;
return
driver
;
}
}
...
@@ -141,7 +143,7 @@ public class BaseDriver {
...
@@ -141,7 +143,7 @@ public class BaseDriver {
public
void
closeBrowser
()
throws
InterruptedException
{
public
void
closeBrowser
()
throws
InterruptedException
{
// JS Show a pop-up box to indicate the end of the test
// JS Show a pop-up box to indicate the end of the test
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
((
JavascriptExecutor
)
driver
).
executeScript
(
"alert('Test completed, browser closes after 3s')"
);
//
((JavascriptExecutor) driver).executeScript("alert('Test completed, browser closes after 3s')");
Thread
.
sleep
(
TestConstant
.
THREE_THOUSANG
);
Thread
.
sleep
(
TestConstant
.
THREE_THOUSANG
);
if
(
driver
!=
null
)
{
if
(
driver
!=
null
)
{
driver
.
quit
();
driver
.
quit
();
...
...
e2e/src/test/java/org/apache/dolphinscheduler/base/BaseTest.java
浏览文件 @
c82758c5
...
@@ -17,7 +17,6 @@
...
@@ -17,7 +17,6 @@
package
org.apache.dolphinscheduler.base
;
package
org.apache.dolphinscheduler.base
;
import
org.apache.dolphinscheduler.page.LoginPage
;
import
org.apache.dolphinscheduler.util.PropertiesReader
;
import
org.apache.dolphinscheduler.util.PropertiesReader
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebDriver
;
import
org.testng.annotations.*
;
import
org.testng.annotations.*
;
...
@@ -28,6 +27,7 @@ import java.util.Properties;
...
@@ -28,6 +27,7 @@ import java.util.Properties;
/**
/**
* base test class
* base test class
*/
*/
@Test
(
groups
={
"functionTests"
})
public
class
BaseTest
{
public
class
BaseTest
{
/**
/**
* properties
* properties
...
@@ -43,7 +43,7 @@ public class BaseTest {
...
@@ -43,7 +43,7 @@ public class BaseTest {
/**
/**
* driver
* driver
*/
*/
public
WebDriver
driver
;
public
static
WebDriver
driver
;
/**
/**
* Executed before executing a test suite
* Executed before executing a test suite
...
@@ -54,7 +54,7 @@ public class BaseTest {
...
@@ -54,7 +54,7 @@ public class BaseTest {
*/
*/
@BeforeSuite
(
alwaysRun
=
true
)
@BeforeSuite
(
alwaysRun
=
true
)
@Parameters
({
"propertiesPath"
})
@Parameters
({
"propertiesPath"
})
public
void
beforeSuite
(
@Optional
(
"src/test/resources/config/config.properties"
)
String
propertiesPath
)
throws
IO
Exception
{
public
void
beforeSuite
(
@Optional
(
"src/test/resources/config/config.properties"
)
String
propertiesPath
)
throws
Exception
{
// read properties
// read properties
properties
=
PropertiesReader
.
readProperties
(
propertiesPath
);
properties
=
PropertiesReader
.
readProperties
(
propertiesPath
);
}
}
...
@@ -70,14 +70,13 @@ public class BaseTest {
...
@@ -70,14 +70,13 @@ public class BaseTest {
driver
=
baseDriver
.
getDriver
();
driver
=
baseDriver
.
getDriver
();
}
}
/**
/**
* Executed before executing a class method in a test case
* Executed before executing a class method in a test case
*/
*/
@BeforeClass
(
alwaysRun
=
true
)
@BeforeClass
(
alwaysRun
=
true
)
public
void
setUp
()
throws
IOException
,
InterruptedException
{
public
void
setUp
()
throws
Exception
{
LoginPage
loginPage
=
new
LoginPage
(
driver
);
loginPage
.
jumpPage
();
loginPage
.
login
();
}
}
...
@@ -85,7 +84,7 @@ public class BaseTest {
...
@@ -85,7 +84,7 @@ public class BaseTest {
* Execute after executing a class method in a test case
* Execute after executing a class method in a test case
*/
*/
@AfterClass
(
alwaysRun
=
true
)
@AfterClass
(
alwaysRun
=
true
)
public
void
afterClass
()
{
public
void
afterClass
()
throws
InterruptedException
{
// logout
// logout
}
}
...
@@ -102,6 +101,6 @@ public class BaseTest {
...
@@ -102,6 +101,6 @@ public class BaseTest {
* Execute after executing a testsuite
* Execute after executing a testsuite
*/
*/
@AfterSuite
(
alwaysRun
=
true
)
@AfterSuite
(
alwaysRun
=
true
)
public
void
afterSuite
()
{
public
void
afterSuite
()
throws
InterruptedException
{
}
}
}
}
\ No newline at end of file
e2e/src/test/java/org/apache/dolphinscheduler/data/LoginData.java
浏览文件 @
c82758c5
...
@@ -39,5 +39,5 @@ public class LoginData {
...
@@ -39,5 +39,5 @@ public class LoginData {
*/
*/
public
static
final
String
PASSWORD
=
PropertiesReader
.
getKey
(
"PASSWORD"
);
public
static
final
String
PASSWORD
=
PropertiesReader
.
getKey
(
"PASSWORD"
);
public
static
final
String
TENANT
=
"
Tenant Manage
- DolphinScheduler"
;
public
static
final
String
TENANT
=
"
租户管理
- DolphinScheduler"
;
}
}
e2e/src/test/java/org/apache/dolphinscheduler/data/project/CreatWorkflowData.java
浏览文件 @
c82758c5
...
@@ -18,7 +18,7 @@ package org.apache.dolphinscheduler.data.project;
...
@@ -18,7 +18,7 @@ package org.apache.dolphinscheduler.data.project;
public
class
CreatWorkflowData
{
public
class
CreatWorkflowData
{
//input shell task name
//input shell task name
public
static
final
String
SHELL_TASK_NAME
=
"shell task description test"
;
public
static
final
String
SHELL_TASK_NAME
=
"shell task description test
1
"
;
//input shell task description
//input shell task description
public
static
final
String
SHELL_TASK_DESCRIPTION
=
"shell task description test"
;
public
static
final
String
SHELL_TASK_DESCRIPTION
=
"shell task description test"
;
...
...
e2e/src/test/java/org/apache/dolphinscheduler/data/project/CreatProjectData.java
→
e2e/src/test/java/org/apache/dolphinscheduler/data/project/Creat
e
ProjectData.java
浏览文件 @
c82758c5
...
@@ -16,9 +16,9 @@
...
@@ -16,9 +16,9 @@
*/
*/
package
org.apache.dolphinscheduler.data.project
;
package
org.apache.dolphinscheduler.data.project
;
public
class
CreatProjectData
{
public
class
Creat
e
ProjectData
{
// create project name
// create project name
public
static
final
String
PROJECT_NAME
=
"selenium_project"
;
public
static
final
String
PROJECT_NAME
=
"selenium_project
_3
"
;
// create project description
// create project description
public
static
final
String
DESCRIPTION
=
"test create project description"
;
public
static
final
String
DESCRIPTION
=
"test create project description"
;
// project page title
// project page title
...
...
e2e/src/test/java/org/apache/dolphinscheduler/data/project/CreateWorkflowData.java
0 → 100644
浏览文件 @
c82758c5
/*
* 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.data.project
;
public
class
CreateWorkflowData
{
/**
* create workflow data
*/
//input shell task name
public
static
final
String
SHELL_TASK_NAME
=
"shell_task_selenium_5"
;
//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"
;
//create workflow title
public
static
final
String
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"
;
}
e2e/src/test/java/org/apache/dolphinscheduler/data/security/TenantManageData.java
浏览文件 @
c82758c5
...
@@ -20,18 +20,12 @@
...
@@ -20,18 +20,12 @@
*/
*/
package
org.apache.dolphinscheduler.data.security
;
package
org.apache.dolphinscheduler.data.security
;
import
org.apache.dolphinscheduler.data.LoginData
;
public
class
TenantManageData
{
public
class
TenantManageData
{
/**
* Tenant URL
*/
public
static
final
String
TENANAT_URL
=
LoginData
.
URL
+
"/ui/#/security/tenant"
;
/**
/**
* Tenant Code
* Tenant Code
*/
*/
public
static
final
String
TENANAT_CODE
=
"dolphinscheduler_tenant_code
2
"
;
public
static
final
String
TENANAT_CODE
=
"dolphinscheduler_tenant_code
15
"
;
/**
/**
* Tenant Name
* Tenant Name
...
@@ -48,7 +42,7 @@ public class TenantManageData {
...
@@ -48,7 +42,7 @@ public class TenantManageData {
*/
*/
public
static
final
String
DESCRIPTION
=
"creat tenant test"
;
public
static
final
String
DESCRIPTION
=
"creat tenant test"
;
public
static
final
String
TENANAT_MANAGE
=
"
Tenant Manage
- DolphinScheduler"
;
public
static
final
String
TENANAT_MANAGE
=
"
租户管理
- DolphinScheduler"
;
...
...
e2e/src/test/java/org/apache/dolphinscheduler/data/security/UserManageData.java
浏览文件 @
c82758c5
...
@@ -16,12 +16,9 @@
...
@@ -16,12 +16,9 @@
*/
*/
package
org.apache.dolphinscheduler.data.security
;
package
org.apache.dolphinscheduler.data.security
;
import
org.apache.dolphinscheduler.data.LoginData
;
public
class
UserManageData
{
public
class
UserManageData
{
public
static
final
String
USER_URL
=
LoginData
.
URL
+
"/ui/#/security/users"
;
public
static
final
String
USERNAME
=
"selenium_5"
;
public
static
final
String
USERNAME
=
"selenium111"
;
public
static
final
String
PASSWORD
=
"123456qwe"
;
public
static
final
String
PASSWORD
=
"123456qwe"
;
...
...
e2e/src/test/java/org/apache/dolphinscheduler/locator/project/CreateWorkflowLocator.java
浏览文件 @
c82758c5
...
@@ -20,12 +20,20 @@ package org.apache.dolphinscheduler.locator.project;
...
@@ -20,12 +20,20 @@ package org.apache.dolphinscheduler.locator.project;
import
org.openqa.selenium.By
;
import
org.openqa.selenium.By
;
public
class
CreateWorkflowLocator
{
public
class
CreateWorkflowLocator
{
/**
* jump workflow define page
*/
// click project name
// click project name
public
static
final
By
CLICK_PROJECT_NAME
=
By
.
xpath
(
"//span/a"
);
public
static
final
By
CLICK_PROJECT_NAME
=
By
.
xpath
(
"//span/a"
);
// click workflow define
// click workflow define
public
static
final
By
CLICK_WORKFLOW_DEFINE
=
By
.
xpath
(
"//li/span"
);
public
static
final
By
CLICK_WORKFLOW_DEFINE
=
By
.
xpath
(
"//li/span"
);
/**
* create workflow
*/
// click create workflow button
// click create workflow button
public
static
final
By
CLICK_CREATE_WORKFLOW_BUTTON
=
By
.
xpath
(
"//button/span"
);
public
static
final
By
CLICK_CREATE_WORKFLOW_BUTTON
=
By
.
xpath
(
"//button/span"
);
...
@@ -96,15 +104,15 @@ public class CreateWorkflowLocator {
...
@@ -96,15 +104,15 @@ public class CreateWorkflowLocator {
public
static
final
By
INPUT_CUSTOM_PARAMETERS
=
By
.
xpath
(
"//div[2]/div/div/div/div/div/input"
);
public
static
final
By
INPUT_CUSTOM_PARAMETERS
=
By
.
xpath
(
"//div[2]/div/div/div/div/div/input"
);
//input custom parameters value
//input custom parameters value
public
static
final
By
INPUT_CUSTOM_PARAMETERS_VALUE
=
By
.
xpath
(
"//div[2]/input"
);
public
static
final
By
INPUT_CUSTOM_PARAMETERS_VALUE
=
By
.
xpath
(
"//div[2]/
div/div/div/div[1]/div[2]/
input"
);
//click add custom parameters
//click
to
add custom parameters
public
static
final
By
CLICK_ADD_CUSTOM_PARAMETERS
=
By
.
xpath
(
"//span[2]/a/em"
);
public
static
final
By
CLICK_ADD_CUSTOM_PARAMETERS
=
By
.
xpath
(
"//
div[2]/div/div/div/div/
span[2]/a/em"
);
//input add custom parameters
//input
to
add custom parameters
public
static
final
By
INPUT_ADD_CUSTOM_PARAMETERS
=
By
.
xpath
(
"//div[2]/div/div/div/div[2]/div/input"
);
public
static
final
By
INPUT_ADD_CUSTOM_PARAMETERS
=
By
.
xpath
(
"//div[2]/div/div/div/div[2]/div
[1]
/input"
);
//input add custom parameters value
//input
to
add custom parameters value
public
static
final
By
INPUT_ADD_CUSTOM_PARAMETERS_VALUE
=
By
.
xpath
(
"//div[2]/div[2]/input"
);
public
static
final
By
INPUT_ADD_CUSTOM_PARAMETERS_VALUE
=
By
.
xpath
(
"//div[2]/div[2]/input"
);
//delete custom parameters
//delete custom parameters
...
@@ -112,4 +120,53 @@ public class CreateWorkflowLocator {
...
@@ -112,4 +120,53 @@ public class CreateWorkflowLocator {
//click submit button
//click submit button
public
static
final
By
CLICK_SUBMIT_BUTTON
=
By
.
xpath
(
"//button[2]/span"
);
public
static
final
By
CLICK_SUBMIT_BUTTON
=
By
.
xpath
(
"//button[2]/span"
);
/**
* save workflow
*/
//click save workflow button
public
static
final
By
CLICK_SAVE_WORKFLOW_BUTTON
=
By
.
xpath
(
"//button/span"
);
//input workflow name
public
static
final
By
INPUT_WORKFLOW_NAME
=
By
.
xpath
(
"//input"
);
//input workflow description
public
static
final
By
INPUT_WORKFLOW_DESCRIPTION
=
By
.
xpath
(
"//textarea"
);
//select tenant
public
static
final
By
CLICK_TENANT
=
By
.
xpath
(
"//div[4]/div/div/div/input"
);
public
static
final
By
SELECT_TENANT
=
By
.
xpath
(
"//div[2]/div/div/div/ul/li/span"
);
//click workflow timeout alarm
public
static
final
By
CLICK_WORKFLOW_TIMEOUT_ALARM
=
By
.
xpath
(
"//span[2]/span/span"
);
//input workflow timeout
public
static
final
By
INPUT_WORKFLOW_TIMEOUT
=
By
.
xpath
(
"//span/div/input"
);
//click workflow global parameters
public
static
final
By
CLICK_WORKFLOW_GLOBAL_PARAMETERS
=
By
.
xpath
(
"//span/a/em"
);
//input workflow global parameters
public
static
final
By
INPUT_WORKFLOW_GLOBAL_PARAMETERS
=
By
.
xpath
(
"//div[8]/div/div/div/div/input"
);
//input workflow global parameters value
public
static
final
By
INPUT_WORKFLOW_GLOBAL_PARAMETERS_VALUES
=
By
.
xpath
(
"//div[2]/input"
);
//click to add workflow global parameters
public
static
final
By
CLICK_ADD_WORKFLOW_GLOBAL_PARAMETERS
=
By
.
xpath
(
"//span[2]/a/em"
);
//input to add workflow global parameters
public
static
final
By
INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS
=
By
.
xpath
(
"//div[8]/div/div/div[2]/div/input"
);
//input to add workflow global parameters value
public
static
final
By
INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS_VALUES
=
By
.
xpath
(
"//div[2]/div[2]/input"
);
//delete workflow global parameters value
public
static
final
By
CLICK_DELETE_WORKFLOW_GLOBAL_PARAMETERS
=
By
.
xpath
(
"//div[2]/span/a/em"
);
//click add button
public
static
final
By
CLICK_ADD_BUTTON
=
By
.
xpath
(
"//button[2]/span"
);
}
}
e2e/src/test/java/org/apache/dolphinscheduler/locator/security/TenantManageLocator.java
浏览文件 @
c82758c5
...
@@ -19,7 +19,9 @@ package org.apache.dolphinscheduler.locator.security;
...
@@ -19,7 +19,9 @@ package org.apache.dolphinscheduler.locator.security;
import
org.openqa.selenium.By
;
import
org.openqa.selenium.By
;
public
class
TenantManageLocator
{
public
class
TenantManageLocator
{
public
static
final
By
CREATE_TENANT_BUTTON
=
By
.
xpath
(
"//button[@class='ans-btn ans-btn-ghost ans-btn-small']"
);
public
static
final
By
TENANT_MANAGE
=
By
.
xpath
(
"//div[2]/div/a/div/a/span"
);
public
static
final
By
CREATE_TENANT_BUTTON
=
By
.
xpath
(
"//button/span"
);
public
static
final
By
TENANT_INPUT_CODE
=
By
.
xpath
(
"//div[2]/div/div/div[2]/div/input"
);
public
static
final
By
TENANT_INPUT_CODE
=
By
.
xpath
(
"//div[2]/div/div/div[2]/div/input"
);
...
@@ -30,4 +32,8 @@ public class TenantManageLocator{
...
@@ -30,4 +32,8 @@ public class TenantManageLocator{
public
static
final
By
DESCRIPTION
=
By
.
xpath
(
"//textarea"
);
public
static
final
By
DESCRIPTION
=
By
.
xpath
(
"//textarea"
);
public
static
final
By
SUBMIT_BUTTON
=
By
.
xpath
(
"//div[3]/button[2]/span"
);
public
static
final
By
SUBMIT_BUTTON
=
By
.
xpath
(
"//div[3]/button[2]/span"
);
public
static
final
By
DELETE_TENANT_BUTTON
=
By
.
xpath
(
"//div[3]/div[1]/div/table/tr[2]/td[8]/span/button"
);
public
static
final
By
CONFIRM_DELETE_TENANT_BUTTON
=
By
.
xpath
(
"//div[2]/div/button[2]/span"
);
}
}
e2e/src/test/java/org/apache/dolphinscheduler/locator/security/UserManageLocator.java
浏览文件 @
c82758c5
...
@@ -42,4 +42,7 @@ public class UserManageLocator {
...
@@ -42,4 +42,7 @@ public class UserManageLocator {
public
static
final
By
SUBMIT
=
By
.
xpath
(
"//div[3]/button[2]/span"
);
public
static
final
By
SUBMIT
=
By
.
xpath
(
"//div[3]/button[2]/span"
);
public
static
final
By
DELETE_USER_BUTTON
=
By
.
xpath
(
"//span[2]/button/i"
);
public
static
final
By
CONFIRM_DELETE_USER_BUTTON
=
By
.
xpath
(
"//div[2]/div/button[2]/span"
);
}
}
e2e/src/test/java/org/apache/dolphinscheduler/page/LoginPage.java
浏览文件 @
c82758c5
...
@@ -21,6 +21,7 @@ import org.apache.dolphinscheduler.constant.TestConstant;
...
@@ -21,6 +21,7 @@ import org.apache.dolphinscheduler.constant.TestConstant;
import
org.apache.dolphinscheduler.data.LoginData
;
import
org.apache.dolphinscheduler.data.LoginData
;
import
org.apache.dolphinscheduler.locator.LoginLocator
;
import
org.apache.dolphinscheduler.locator.LoginLocator
;
import
org.apache.dolphinscheduler.util.RedisUtil
;
import
org.apache.dolphinscheduler.util.RedisUtil
;
import
org.openqa.selenium.Cookie
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebDriver
;
...
@@ -38,18 +39,25 @@ public class LoginPage extends PageCommon {
...
@@ -38,18 +39,25 @@ public class LoginPage extends PageCommon {
/**
/**
* jump page
* jump page
*/
*/
public
void
jumpPage
()
{
public
void
jumpPage
Enlish
()
{
System
.
out
.
println
(
"jump login page"
);
System
.
out
.
println
(
"jump
to English
login page"
);
super
.
jumpPage
(
LoginData
.
URL
);
super
.
jumpPage
(
LoginData
.
URL
);
Cookie
cookie
=
new
Cookie
(
"language"
,
"en_US"
,
"/"
,
null
);
driver
.
manage
().
addCookie
(
cookie
);
}
}
public
void
jumpPageChinese
()
{
super
.
jumpPage
(
LoginData
.
URL
);
Cookie
cookie
=
new
Cookie
(
"language"
,
"zh_CN"
,
"/"
,
null
);
driver
.
manage
().
addCookie
(
cookie
);
}
/**
/**
* login
* login
*
*
* @return Whether to enter the specified page after searching
* @return Whether to enter the specified page after searching
*/
*/
public
boolean
login
()
throws
InterruptedException
{
public
boolean
login
()
throws
InterruptedException
{
System
.
out
.
println
(
"LoginPage"
);
// login data
// login data
sendInput
(
LoginLocator
.
LOGIN_INPUT_USER
,
LoginData
.
USER
);
sendInput
(
LoginLocator
.
LOGIN_INPUT_USER
,
LoginData
.
USER
);
sendInput
(
LoginLocator
.
LOGIN_INPUT_PASSWORD
,
LoginData
.
PASSWORD
);
sendInput
(
LoginLocator
.
LOGIN_INPUT_PASSWORD
,
LoginData
.
PASSWORD
);
...
...
e2e/src/test/java/org/apache/dolphinscheduler/page/project/CreateProjectPage.java
浏览文件 @
c82758c5
...
@@ -18,7 +18,7 @@ package org.apache.dolphinscheduler.page.project;
...
@@ -18,7 +18,7 @@ package org.apache.dolphinscheduler.page.project;
import
org.apache.dolphinscheduler.common.PageCommon
;
import
org.apache.dolphinscheduler.common.PageCommon
;
import
org.apache.dolphinscheduler.constant.TestConstant
;
import
org.apache.dolphinscheduler.constant.TestConstant
;
import
org.apache.dolphinscheduler.data.project.CreatProjectData
;
import
org.apache.dolphinscheduler.data.project.Creat
e
ProjectData
;
import
org.apache.dolphinscheduler.locator.project.CreateProjectLocator
;
import
org.apache.dolphinscheduler.locator.project.CreateProjectLocator
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebDriver
;
...
@@ -26,6 +26,7 @@ public class CreateProjectPage extends PageCommon {
...
@@ -26,6 +26,7 @@ public class CreateProjectPage extends PageCommon {
public
CreateProjectPage
(
WebDriver
driver
)
{
public
CreateProjectPage
(
WebDriver
driver
)
{
super
(
driver
);
super
(
driver
);
}
}
/**
/**
* jump page
* jump page
*/
*/
...
@@ -36,7 +37,7 @@ public class CreateProjectPage extends PageCommon {
...
@@ -36,7 +37,7 @@ public class CreateProjectPage extends PageCommon {
}
}
/**
/**
* creatTenant
* creat
e
Tenant
*
*
* @return Whether to enter the specified page after creat tenant
* @return Whether to enter the specified page after creat tenant
*/
*/
...
@@ -46,13 +47,13 @@ public class CreateProjectPage extends PageCommon {
...
@@ -46,13 +47,13 @@ public class CreateProjectPage extends PageCommon {
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
// input create project data
// input create project data
sendInput
(
CreateProjectLocator
.
PROJECT_NAME
,
CreatProjectData
.
PROJECT_NAME
);
sendInput
(
CreateProjectLocator
.
PROJECT_NAME
,
Creat
e
ProjectData
.
PROJECT_NAME
);
sendInput
(
CreateProjectLocator
.
PROJECT_DESCRIPTION
,
CreatProjectData
.
DESCRIPTION
);
sendInput
(
CreateProjectLocator
.
PROJECT_DESCRIPTION
,
Creat
e
ProjectData
.
DESCRIPTION
);
// click submit button
// click submit button
clickButton
(
CreateProjectLocator
.
SUBMIT_BUTTON
);
clickButton
(
CreateProjectLocator
.
SUBMIT_BUTTON
);
// Whether to enter the specified page after submit
// Whether to enter the specified page after submit
return
ifTitleContains
(
CreatProjectData
.
PROJECT_TITLE
);
return
ifTitleContains
(
Creat
e
ProjectData
.
PROJECT_TITLE
);
}
}
}
}
e2e/src/test/java/org/apache/dolphinscheduler/page/project/CreateWorkflowPage.java
浏览文件 @
c82758c5
...
@@ -18,7 +18,7 @@ package org.apache.dolphinscheduler.page.project;
...
@@ -18,7 +18,7 @@ package org.apache.dolphinscheduler.page.project;
import
org.apache.dolphinscheduler.common.PageCommon
;
import
org.apache.dolphinscheduler.common.PageCommon
;
import
org.apache.dolphinscheduler.constant.TestConstant
;
import
org.apache.dolphinscheduler.constant.TestConstant
;
import
org.apache.dolphinscheduler.data.project.CreatWorkflowData
;
import
org.apache.dolphinscheduler.data.project.Creat
e
WorkflowData
;
import
org.apache.dolphinscheduler.locator.project.CreateWorkflowLocator
;
import
org.apache.dolphinscheduler.locator.project.CreateWorkflowLocator
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebDriver
;
...
@@ -26,29 +26,33 @@ public class CreateWorkflowPage extends PageCommon {
...
@@ -26,29 +26,33 @@ public class CreateWorkflowPage extends PageCommon {
public
CreateWorkflowPage
(
WebDriver
driver
)
{
public
CreateWorkflowPage
(
WebDriver
driver
)
{
super
(
driver
);
super
(
driver
);
}
}
/**
/**
* jump page
* jump
create workflow
page
*/
*/
public
boolean
createWorkflow
()
throws
InterruptedException
{
public
boolean
createWorkflow
()
throws
InterruptedException
{
System
.
out
.
println
(
"Click on the project name to jump to the project homepage"
);
// click project name
// click project name
clickElement
(
CreateWorkflowLocator
.
CLICK_PROJECT_NAME
);
clickElement
(
CreateWorkflowLocator
.
CLICK_PROJECT_NAME
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
System
.
out
.
println
(
"Click on workflow define"
);
// click workflow define
// click workflow define
clickElement
(
CreateWorkflowLocator
.
CLICK_WORKFLOW_DEFINE
);
clickElement
(
CreateWorkflowLocator
.
CLICK_WORKFLOW_DEFINE
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
System
.
out
.
println
(
"Click create workflow button"
);
// click create workflow button
// click create workflow button
clickElement
(
CreateWorkflowLocator
.
CLICK_CREATE_WORKFLOW_BUTTON
);
clickElement
(
CreateWorkflowLocator
.
CLICK_CREATE_WORKFLOW_BUTTON
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
System
.
out
.
println
(
"drag shell task"
);
//drag shell_task
//drag shell_task
dragAndDrop
(
CreateWorkflowLocator
.
MOUSE_DOWN_AT_SHELL
,
CreateWorkflowLocator
.
MOUSE_MOVE_SHELL_AT_DAG
);
dragAndDrop
(
CreateWorkflowLocator
.
MOUSE_DOWN_AT_SHELL
,
CreateWorkflowLocator
.
MOUSE_MOVE_SHELL_AT_DAG
);
//input shell task _name
//input shell task _name
sendInput
(
CreateWorkflowLocator
.
INPUT_SHELL_TASK_NAME
,
CreatWorkflowData
.
SHELL_TASK_NAME
);
sendInput
(
CreateWorkflowLocator
.
INPUT_SHELL_TASK_NAME
,
Creat
e
WorkflowData
.
SHELL_TASK_NAME
);
//click stop run type
//click stop run type
clickElement
(
CreateWorkflowLocator
.
CLICK_STOP_RUN_TYPE
);
clickElement
(
CreateWorkflowLocator
.
CLICK_STOP_RUN_TYPE
);
...
@@ -57,7 +61,7 @@ public class CreateWorkflowPage extends PageCommon {
...
@@ -57,7 +61,7 @@ public class CreateWorkflowPage extends PageCommon {
clickElement
(
CreateWorkflowLocator
.
CLICK_NORMAL_RUN_TYPE
);
clickElement
(
CreateWorkflowLocator
.
CLICK_NORMAL_RUN_TYPE
);
//input shell task description
//input shell task description
sendInput
(
CreateWorkflowLocator
.
INPUT_SHELL_TASK_DESCRIPTION
,
CreatWorkflowData
.
SHELL_TASK_DESCRIPTION
);
sendInput
(
CreateWorkflowLocator
.
INPUT_SHELL_TASK_DESCRIPTION
,
Creat
e
WorkflowData
.
SHELL_TASK_DESCRIPTION
);
//select task priority
//select task priority
clickElement
(
CreateWorkflowLocator
.
CLICK_TASK_PRIORITY
);
clickElement
(
CreateWorkflowLocator
.
CLICK_TASK_PRIORITY
);
...
@@ -73,19 +77,15 @@ public class CreateWorkflowPage extends PageCommon {
...
@@ -73,19 +77,15 @@ public class CreateWorkflowPage extends PageCommon {
//select failed retry interval
//select failed retry interval
clickElement
(
CreateWorkflowLocator
.
SELECT_FAIL_RETRIES_INTERVAL
);
clickElement
(
CreateWorkflowLocator
.
SELECT_FAIL_RETRIES_INTERVAL
);
//click timeout alarm
//click timeout alarm
clickElement
(
CreateWorkflowLocator
.
CLICK_TIMEOUT_ALARM
);
clickElement
(
CreateWorkflowLocator
.
CLICK_TIMEOUT_ALARM
);
//select timeout fail
//select timeout fail
clickElement
(
CreateWorkflowLocator
.
SELECT_TIMEOUT_FAIL
);
clickElement
(
CreateWorkflowLocator
.
SELECT_TIMEOUT_FAIL
);
//cancel timeout alarm
//cancel timeout alarm
clickElement
(
CreateWorkflowLocator
.
CANCEL_TIMEOUT_ALARM
);
clickElement
(
CreateWorkflowLocator
.
CANCEL_TIMEOUT_ALARM
);
//select timeout alarm
//select timeout alarm
clickElement
(
CreateWorkflowLocator
.
SELECT_TIMEOUT_ALARM
);
clickElement
(
CreateWorkflowLocator
.
SELECT_TIMEOUT_ALARM
);
...
@@ -94,10 +94,10 @@ public class CreateWorkflowPage extends PageCommon {
...
@@ -94,10 +94,10 @@ public class CreateWorkflowPage extends PageCommon {
clearInput
(
CreateWorkflowLocator
.
SELECT_TIMEOUT
);
clearInput
(
CreateWorkflowLocator
.
SELECT_TIMEOUT
);
//input timeout
//input timeout
sendInput
(
CreateWorkflowLocator
.
SELECT_TIMEOUT
,
Creat
WorkflowData
.
INPUT_TIMEOUT
);
sendInput
(
CreateWorkflowLocator
.
SELECT_TIMEOUT
,
Create
WorkflowData
.
INPUT_TIMEOUT
);
//click codeMirror and input script
//click codeMirror and input script
inputCodeMirror
(
CreateWorkflowLocator
.
CLICK_CODE_MIRROR
,
CreateWorkflowLocator
.
INPUT_SCRIPT
,
Creat
WorkflowData
.
SHELL_SCRIPT
);
inputCodeMirror
(
CreateWorkflowLocator
.
CLICK_CODE_MIRROR
,
CreateWorkflowLocator
.
INPUT_SCRIPT
,
Create
WorkflowData
.
SHELL_SCRIPT
);
scrollToElementBottom
();
scrollToElementBottom
();
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
...
@@ -105,10 +105,10 @@ public class CreateWorkflowPage extends PageCommon {
...
@@ -105,10 +105,10 @@ public class CreateWorkflowPage extends PageCommon {
clickElement
(
CreateWorkflowLocator
.
CLICK_CUSTOM_PARAMETERS
);
clickElement
(
CreateWorkflowLocator
.
CLICK_CUSTOM_PARAMETERS
);
//input custom parameters
//input custom parameters
sendInput
(
CreateWorkflowLocator
.
INPUT_CUSTOM_PARAMETERS
,
CreatWorkflowData
.
INPUT_CUSTOM_PARAMETERS
);
sendInput
(
CreateWorkflowLocator
.
INPUT_CUSTOM_PARAMETERS
,
Creat
e
WorkflowData
.
INPUT_CUSTOM_PARAMETERS
);
//input custom parameters value
//input custom parameters value
sendInput
(
CreateWorkflowLocator
.
INPUT_CUSTOM_PARAMETERS_VALUE
,
CreatWorkflowData
.
INPUT_CUSTOM_PARAMETERS_VALUE
);
sendInput
(
CreateWorkflowLocator
.
INPUT_CUSTOM_PARAMETERS_VALUE
,
Creat
e
WorkflowData
.
INPUT_CUSTOM_PARAMETERS_VALUE
);
//click add custom parameters
//click add custom parameters
clickElement
(
CreateWorkflowLocator
.
CLICK_ADD_CUSTOM_PARAMETERS
);
clickElement
(
CreateWorkflowLocator
.
CLICK_ADD_CUSTOM_PARAMETERS
);
...
@@ -117,10 +117,10 @@ public class CreateWorkflowPage extends PageCommon {
...
@@ -117,10 +117,10 @@ public class CreateWorkflowPage extends PageCommon {
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
//input add custom parameters
//input add custom parameters
sendInput
(
CreateWorkflowLocator
.
INPUT_ADD_CUSTOM_PARAMETERS
,
Creat
WorkflowData
.
INPUT_ADD_CUSTOM_PARAMETERS
);
sendInput
(
CreateWorkflowLocator
.
INPUT_ADD_CUSTOM_PARAMETERS
,
Create
WorkflowData
.
INPUT_ADD_CUSTOM_PARAMETERS
);
//input add custom parameters value
//input add custom parameters value
sendInput
(
CreateWorkflowLocator
.
INPUT_ADD_CUSTOM_PARAMETERS_VALUE
,
Creat
WorkflowData
.
INPUT_ADD_CUSTOM_PARAMETERS_VALUE
);
sendInput
(
CreateWorkflowLocator
.
INPUT_ADD_CUSTOM_PARAMETERS_VALUE
,
Create
WorkflowData
.
INPUT_ADD_CUSTOM_PARAMETERS_VALUE
);
//click delete custom parameters
//click delete custom parameters
clickElement
(
CreateWorkflowLocator
.
CLICK_DELETE_CUSTOM_PARAMETERS
);
clickElement
(
CreateWorkflowLocator
.
CLICK_DELETE_CUSTOM_PARAMETERS
);
...
@@ -129,9 +129,64 @@ public class CreateWorkflowPage extends PageCommon {
...
@@ -129,9 +129,64 @@ public class CreateWorkflowPage extends PageCommon {
//click submit button
//click submit button
clickElement
(
CreateWorkflowLocator
.
CLICK_SUBMIT_BUTTON
);
clickElement
(
CreateWorkflowLocator
.
CLICK_SUBMIT_BUTTON
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
System
.
out
.
println
(
"Task node set up successfully"
);
System
.
out
.
println
(
"move to Dag Element "
);
moveToDragElement
(
CreateWorkflowLocator
.
MOUSE_MOVE_SHELL_AT_DAG
,-
300
,-
100
);
moveToDragElement
(
CreateWorkflowLocator
.
MOUSE_MOVE_SHELL_AT_DAG
,-
300
,-
100
);
return
ifTitleContains
(
CreatWorkflowData
.
WORKFLOW_TITLE
);
return
ifTitleContains
(
CreateWorkflowData
.
WORKFLOW_TITLE
);
}
/**
* save workflow
*/
public
boolean
saveWorkflow
()
throws
InterruptedException
{
System
.
out
.
println
(
"start to save workflow "
);
//click save workflow button
clickElement
(
CreateWorkflowLocator
.
CLICK_SAVE_WORKFLOW_BUTTON
);
//input workflow name
sendInput
(
CreateWorkflowLocator
.
INPUT_WORKFLOW_NAME
,
CreateWorkflowData
.
INPUT_WORKFLOW_NAME
);
//input workflow description
sendInput
(
CreateWorkflowLocator
.
INPUT_WORKFLOW_DESCRIPTION
,
CreateWorkflowData
.
INPUT_WORKFLOW_DESCRIPTION
);
//select tenant
clickElement
(
CreateWorkflowLocator
.
CLICK_TENANT
);
clickElement
(
CreateWorkflowLocator
.
SELECT_TENANT
);
//click workflow timeout alarm
clickElement
(
CreateWorkflowLocator
.
CLICK_WORKFLOW_TIMEOUT_ALARM
);
clearInput
(
CreateWorkflowLocator
.
INPUT_WORKFLOW_TIMEOUT
);
//input workflow timeout
sendInput
(
CreateWorkflowLocator
.
INPUT_WORKFLOW_TIMEOUT
,
CreateWorkflowData
.
INPUT_WORKFLOW_TIMEOUT
);
//click workflow global parameters
clickElement
(
CreateWorkflowLocator
.
CLICK_WORKFLOW_GLOBAL_PARAMETERS
);
//input workflow global parameters
sendInput
(
CreateWorkflowLocator
.
INPUT_WORKFLOW_GLOBAL_PARAMETERS
,
CreateWorkflowData
.
INPUT_WORKFLOW_GLOBAL_PARAMETERS
);
//input workflow global parameters value
sendInput
(
CreateWorkflowLocator
.
INPUT_WORKFLOW_GLOBAL_PARAMETERS_VALUES
,
CreateWorkflowData
.
INPUT_WORKFLOW_GLOBAL_PARAMETERS_VALUES
);
//click to add workflow global parameters
clickElement
(
CreateWorkflowLocator
.
CLICK_ADD_WORKFLOW_GLOBAL_PARAMETERS
);
//input to add workflow global parameters
sendInput
(
CreateWorkflowLocator
.
INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS
,
CreateWorkflowData
.
INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS
);
//input to add workflow global parameters value
sendInput
(
CreateWorkflowLocator
.
INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS_VALUES
,
CreateWorkflowData
.
INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS_VALUES
);
//delete workflow global parameters value
clickElement
(
CreateWorkflowLocator
.
CLICK_DELETE_WORKFLOW_GLOBAL_PARAMETERS
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
//click add button
clickElement
(
CreateWorkflowLocator
.
CLICK_ADD_BUTTON
);
System
.
out
.
println
(
"submit workflow"
);
return
ifTitleContains
(
CreateWorkflowData
.
WORKFLOW_TITLE
);
}
}
}
}
e2e/src/test/java/org/apache/dolphinscheduler/page/security/TenantManagePage.java
浏览文件 @
c82758c5
...
@@ -34,15 +34,6 @@ public class TenantManagePage extends PageCommon {
...
@@ -34,15 +34,6 @@ public class TenantManagePage extends PageCommon {
super
(
driver
);
super
(
driver
);
}
}
/**
* jump page
*/
public
void
jumpPage
()
{
System
.
out
.
println
(
"jump tenant page"
);
super
.
jumpPage
(
TenantManageData
.
TENANAT_URL
);
}
/**
/**
* createTenant
* createTenant
*
*
...
@@ -50,6 +41,7 @@ public class TenantManagePage extends PageCommon {
...
@@ -50,6 +41,7 @@ public class TenantManagePage extends PageCommon {
*/
*/
public
boolean
createTenant
()
throws
InterruptedException
{
public
boolean
createTenant
()
throws
InterruptedException
{
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
clickButton
(
TenantManageLocator
.
TENANT_MANAGE
);
//create tenant
//create tenant
clickButton
(
TenantManageLocator
.
CREATE_TENANT_BUTTON
);
clickButton
(
TenantManageLocator
.
CREATE_TENANT_BUTTON
);
...
@@ -66,4 +58,20 @@ public class TenantManagePage extends PageCommon {
...
@@ -66,4 +58,20 @@ public class TenantManagePage extends PageCommon {
// Whether to enter the specified page after submit
// Whether to enter the specified page after submit
return
ifTitleContains
(
TenantManageData
.
TENANAT_MANAGE
);
return
ifTitleContains
(
TenantManageData
.
TENANAT_MANAGE
);
}
}
public
boolean
deleteTenant
()
throws
InterruptedException
{
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
clickButton
(
TenantManageLocator
.
TENANT_MANAGE
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
// click delete button
clickButton
(
TenantManageLocator
.
DELETE_TENANT_BUTTON
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
//click confirm delete button
clickButton
(
TenantManageLocator
.
CONFIRM_DELETE_TENANT_BUTTON
);
// Whether to enter the specified page after submit
return
ifTitleContains
(
TenantManageData
.
TENANAT_MANAGE
);
}
}
}
e2e/src/test/java/org/apache/dolphinscheduler/page/security/UserManagePage.java
浏览文件 @
c82758c5
...
@@ -26,16 +26,9 @@ public class UserManagePage extends PageCommon {
...
@@ -26,16 +26,9 @@ public class UserManagePage extends PageCommon {
public
UserManagePage
(
WebDriver
driver
)
{
public
UserManagePage
(
WebDriver
driver
)
{
super
(
driver
);
super
(
driver
);
}
}
/**
* jump page
*/
public
void
jumpPage
()
{
System
.
out
.
println
(
"jump tenant page"
);
super
.
jumpPage
(
UserManageData
.
USER_URL
);
}
/**
/**
* creatTenant
* creat
e
Tenant
*
*
* @return Whether to enter the specified page after creat tenant
* @return Whether to enter the specified page after creat tenant
*/
*/
...
@@ -64,4 +57,20 @@ public class UserManagePage extends PageCommon {
...
@@ -64,4 +57,20 @@ public class UserManagePage extends PageCommon {
// Whether to enter the specified page after submit
// Whether to enter the specified page after submit
return
ifTitleContains
(
UserManageData
.
USER_MANAGE
);
return
ifTitleContains
(
UserManageData
.
USER_MANAGE
);
}
}
public
boolean
deleteUser
()
throws
InterruptedException
{
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
// click user manage
clickElement
(
UserManageLocator
.
CLICK_USER_MANAGE
);
Thread
.
sleep
(
TestConstant
.
ONE_THOUSANG
);
// click delete user button
clickButton
(
UserManageLocator
.
DELETE_USER_BUTTON
);
// click confirm delete button
clickButton
(
UserManageLocator
.
CONFIRM_DELETE_USER_BUTTON
);
// Whether to enter the specified page after submit
return
ifTitleContains
(
UserManageData
.
USER_MANAGE
);
}
}
}
e2e/src/test/java/org/apache/dolphinscheduler/testcase/LoginTest.java
浏览文件 @
c82758c5
/*
* 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.testcase
;
package
org.apache.dolphinscheduler.testcase
;
import
org.apache.dolphinscheduler.base.BaseTest
;
import
org.apache.dolphinscheduler.page.LoginPage
;
import
org.apache.dolphinscheduler.page.LoginPage
;
import
org.testng.Assert
;
import
org.testng.annotations.Test
;
import
org.testng.annotations.Test
;
import
static
org
.
apache
.
dolphinscheduler
.
base
.
BaseTest
.
driver
;
public
class
LoginTest
extends
BaseTest
{
@Test
(
groups
={
"functionTests"
,
"login"
})
public
class
LoginTest
{
private
LoginPage
loginPage
;
private
LoginPage
loginPage
;
@Test
(
description
=
"LoginTest"
,
priority
=
1
)
@Test
(
description
=
"LoginTest"
,
priority
=
1
)
public
void
testLogin
()
throws
InterruptedException
{
public
void
testLogin
()
throws
InterruptedException
{
// init login page
loginPage
=
new
LoginPage
(
driver
);
loginPage
=
new
LoginPage
(
driver
);
System
.
out
.
println
(
"==================================="
);
System
.
out
.
println
(
"jump to Chinese login page"
);
loginPage
.
jumpPageChinese
();
// enter login page
System
.
out
.
println
(
"start login"
);
loginPage
.
jumpPage
();
assert
loginPage
.
login
();
System
.
out
.
println
(
"end login"
);
System
.
out
.
println
(
"==================================="
);
//assert login page
assert
loginPage
.
login
();
}
}
}
}
e2e/src/test/java/org/apache/dolphinscheduler/testcase/deleteData/DeleteTenantTest.java
0 → 100644
浏览文件 @
c82758c5
/*
* 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.testcase.deleteData
;
import
org.apache.dolphinscheduler.base.BaseTest
;
import
org.apache.dolphinscheduler.page.security.TenantManagePage
;
import
org.testng.annotations.Test
;
public
class
DeleteTenantTest
extends
BaseTest
{
private
TenantManagePage
tenantManagePage
;
@Test
(
groups
={
"functionTests"
},
dependsOnGroups
=
{
"login"
,
"createTenant"
},
description
=
"DeleteTenantTest"
)
public
void
testDeleteTenant
()
throws
InterruptedException
{
tenantManagePage
=
new
TenantManagePage
(
driver
);
//assert tenant manage page
System
.
out
.
println
(
"start delete tenant"
);
assert
tenantManagePage
.
deleteTenant
();
System
.
out
.
println
(
"end delete tenant"
);
System
.
out
.
println
(
"==================================="
);
}
}
e2e/src/test/java/org/apache/dolphinscheduler/testcase/deleteData/DeleteUserTest.java
0 → 100644
浏览文件 @
c82758c5
/*
* 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.testcase.deleteData
;
import
org.apache.dolphinscheduler.base.BaseTest
;
import
org.apache.dolphinscheduler.page.security.UserManagePage
;
import
org.testng.annotations.Test
;
public
class
DeleteUserTest
extends
BaseTest
{
private
UserManagePage
userManagePage
;
@Test
(
groups
={
"functionTests"
},
dependsOnGroups
=
{
"login"
,
"user"
},
description
=
"DeleteUserTest"
)
public
void
testDeleteUser
()
throws
InterruptedException
{
userManagePage
=
new
UserManagePage
(
driver
);
//assert user manage page
System
.
out
.
println
(
"start delete user"
);
assert
userManagePage
.
deleteUser
();
System
.
out
.
println
(
"end delete user"
);
System
.
out
.
println
(
"==================================="
);
}
}
e2e/src/test/java/org/apache/dolphinscheduler/testcase/project/CreateProjectTest.java
浏览文件 @
c82758c5
...
@@ -23,13 +23,16 @@ import org.testng.annotations.Test;
...
@@ -23,13 +23,16 @@ import org.testng.annotations.Test;
public
class
CreateProjectTest
extends
BaseTest
{
public
class
CreateProjectTest
extends
BaseTest
{
private
CreateProjectPage
createProjectPage
;
private
CreateProjectPage
createProjectPage
;
@Test
(
description
=
"TenantTest"
,
priority
=
1
)
@Test
(
groups
={
"functionTests"
},
dependsOnGroups
=
{
"login"
},
description
=
"CreateProjectTest"
,
priority
=
4
)
public
void
test
UserManage
()
throws
InterruptedException
{
public
void
test
CreateProject
()
throws
InterruptedException
{
createProjectPage
=
new
CreateProjectPage
(
driver
);
createProjectPage
=
new
CreateProjectPage
(
driver
);
// enter user manage page
// enter user manage page
createProjectPage
.
jumpProjectManagePage
();
createProjectPage
.
jumpProjectManagePage
();
//assert user manage page
//assert user manage page
System
.
out
.
println
(
"start create project"
);
assert
createProjectPage
.
createProject
();
assert
createProjectPage
.
createProject
();
System
.
out
.
println
(
"end create project"
);
System
.
out
.
println
(
"==================================="
);
}
}
}
}
...
...
e2e/src/test/java/org/apache/dolphinscheduler/testcase/project/CreateWorkflowTest.java
浏览文件 @
c82758c5
...
@@ -26,12 +26,16 @@ public class CreateWorkflowTest extends BaseTest {
...
@@ -26,12 +26,16 @@ public class CreateWorkflowTest extends BaseTest {
private
CreateProjectPage
createProjectPage
;
private
CreateProjectPage
createProjectPage
;
@Test
(
description
=
"CreateWorkflowTest"
,
priority
=
1
)
@Test
(
groups
={
"functionTests"
},
dependsOnGroups
=
{
"login"
},
description
=
"CreateWorkflowTest"
,
priority
=
5
)
public
void
CreateWorkflowTest
()
throws
InterruptedException
{
public
void
testCreateWorkflow
()
throws
InterruptedException
{
createProjectPage
=
new
CreateProjectPage
(
driver
);
createProjectPage
=
new
CreateProjectPage
(
driver
);
createProjectPage
.
jumpProjectManagePage
();
createProjectPage
.
jumpProjectManagePage
();
createWorkflowPage
=
new
CreateWorkflowPage
(
driver
);
createWorkflowPage
=
new
CreateWorkflowPage
(
driver
);
//assert create workflow
System
.
out
.
println
(
"start create workflow"
);
assert
createWorkflowPage
.
createWorkflow
();
assert
createWorkflowPage
.
createWorkflow
();
assert
createWorkflowPage
.
saveWorkflow
();
System
.
out
.
println
(
"end create workflow"
);
System
.
out
.
println
(
"==================================="
);
}
}
}
}
e2e/src/test/java/org/apache/dolphinscheduler/testcase/security/TenantManageTest.java
浏览文件 @
c82758c5
...
@@ -20,15 +20,20 @@ import org.apache.dolphinscheduler.base.BaseTest;
...
@@ -20,15 +20,20 @@ import org.apache.dolphinscheduler.base.BaseTest;
import
org.apache.dolphinscheduler.page.security.TenantManagePage
;
import
org.apache.dolphinscheduler.page.security.TenantManagePage
;
import
org.testng.annotations.Test
;
import
org.testng.annotations.Test
;
public
class
TenantManageTest
extends
BaseTest
{
public
class
TenantManageTest
extends
BaseTest
{
private
TenantManagePage
tenantManagePage
;
private
TenantManagePage
tenantManagePage
;
@Test
(
description
=
"TenantTest"
,
priority
=
1
)
@Test
(
groups
={
"functionTests"
,
"createTenant"
},
dependsOnGroups
=
{
"login"
},
description
=
"TenantManageTest"
)
public
void
testTenantManage
()
throws
InterruptedException
{
public
void
testTenantManage
()
throws
InterruptedException
{
tenantManagePage
=
new
TenantManagePage
(
driver
);
tenantManagePage
=
new
TenantManagePage
(
driver
);
// enter tenant manage page
tenantManagePage
.
jumpPage
();
//assert tenant manage page
//assert tenant manage page
System
.
out
.
println
(
"start create tenant"
);
assert
tenantManagePage
.
createTenant
();
assert
tenantManagePage
.
createTenant
();
System
.
out
.
println
(
"end create tenant"
);
System
.
out
.
println
(
"==================================="
);
}
}
}
}
e2e/src/test/java/org/apache/dolphinscheduler/testcase/security/UserManageTest.java
浏览文件 @
c82758c5
...
@@ -23,12 +23,14 @@ import org.testng.annotations.Test;
...
@@ -23,12 +23,14 @@ import org.testng.annotations.Test;
public
class
UserManageTest
extends
BaseTest
{
public
class
UserManageTest
extends
BaseTest
{
private
UserManagePage
userManagePage
;
private
UserManagePage
userManagePage
;
@Test
(
description
=
"TenantTest"
,
priority
=
1
)
@Test
(
groups
={
"functionTests"
,
"user"
},
dependsOnGroups
=
{
"login"
},
description
=
"UserManageTest"
)
public
void
testUserManage
()
throws
InterruptedException
{
public
void
testUserManage
()
throws
InterruptedException
{
userManagePage
=
new
UserManagePage
(
driver
);
userManagePage
=
new
UserManagePage
(
driver
);
// enter user manage page
userManagePage
.
jumpPage
();
//assert user manage page
//assert user manage page
System
.
out
.
println
(
"start create user"
);
assert
userManagePage
.
createUser
();
assert
userManagePage
.
createUser
();
System
.
out
.
println
(
"end create user"
);
System
.
out
.
println
(
"==================================="
);
}
}
}
}
e2e/suite.xml
已删除
100644 → 0
浏览文件 @
7dd126da
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite
name=
"e2e Test Suite"
parallel=
"tests"
thread-count=
"2"
>
<!-- create tenant -->
<test
name=
"create-tenant"
preserve-order=
"true"
>
<classes>
<class
name=
"org.apache.dolphinscheduler.testcase.security.TenantManageTest"
>
</class>
</classes>
</test>
<!-- create user -->
<test
name=
"create-user"
preserve-order=
"true"
>
<classes>
<class
name=
"org.apache.dolphinscheduler.testcase.security.UserManageTest"
>
</class>
</classes>
</test>
</suite>
\ No newline at end of file
e2e/testng.xml
浏览文件 @
c82758c5
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite
name=
"dolphinscheduler_e2e"
parallel=
"false"
>
<suite
name=
"dolphinscheduler_e2e"
parallel=
"true"
>
<test
name=
"dolphinscheduler_test"
>
<test
name=
"dolphinscheduler_test"
preserve-order=
"true"
>
<!--<packages>-->
<groups>
<!--<!–<package name="org.apache.dolphinscheduler.testcase.security.TenantManageTest"/>–>-->
<run>
<!--<package name="org.apache.dolphinscheduler.testcase.security.*"/>-->
<include
name=
"functionTests"
/>
<!--</packages>-->
</run>
</groups>
<classes>
<classes>
<class
name=
"org.apache.dolphinscheduler.testcase.security.TenantManageTest"
></class>
<class
name=
"org.apache.dolphinscheduler.testcase.LoginTest"
></class>
<class
name=
"org.apache.dolphinscheduler.testcase.security.TenantManageTest"
></class>
<class
name=
"org.apache.dolphinscheduler.testcase.security.UserManageTest"
></class>
<!--<class name="org.apache.dolphinscheduler.testcase.project.CreateProjectTest"></class>-->
<!--<!–<class name="org.apache.dolphinscheduler.testcase.project.CreateWorkflowTest"></class>–>-->
<class
name=
"org.apache.dolphinscheduler.testcase.deleteData.DeleteTenantTest"
></class>
<class
name=
"org.apache.dolphinscheduler.testcase.deleteData.DeleteUserTest"
></class>
</classes>
</classes>
</test>
</test>
<!--<suite-files>-->
<!--<suite-file path="suite.xml"/>-->
<!--</suite-files>-->
<listeners>
<listeners>
<listener
class-name=
"org.uncommons.reportng.HTMLReporter"
/>
<listener
class-name=
"org.uncommons.reportng.HTMLReporter"
/>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录