Browse Source

[test-2995][e2e]Optimize waiting time (#3571)

* 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
 

Co-authored-by: chenxingchun <438044805@qq.com>
pull/3/MERGE
xingchun-chen 4 years ago committed by GitHub
parent
commit
eade9db22f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      e2e/src/test/java/org/apache/dolphinscheduler/data/project/ProjectData.java
  2. 12
      e2e/src/test/java/org/apache/dolphinscheduler/data/project/WorkflowDefineData.java
  3. 14
      e2e/src/test/java/org/apache/dolphinscheduler/data/security/AlertManageData.java
  4. 6
      e2e/src/test/java/org/apache/dolphinscheduler/data/security/QueueManageData.java
  5. 4
      e2e/src/test/java/org/apache/dolphinscheduler/data/security/TokenManageData.java
  6. 3
      e2e/src/test/java/org/apache/dolphinscheduler/data/security/UserManageData.java
  7. 3
      e2e/src/test/java/org/apache/dolphinscheduler/locator/project/ProcessInstanceLocator.java
  8. 3
      e2e/src/test/java/org/apache/dolphinscheduler/locator/project/ProjectLocator.java
  9. 15
      e2e/src/test/java/org/apache/dolphinscheduler/locator/project/WorkflowDefineLocator.java
  10. 3
      e2e/src/test/java/org/apache/dolphinscheduler/locator/security/AlertManageLocator.java
  11. 2
      e2e/src/test/java/org/apache/dolphinscheduler/locator/security/QueueManageLocator.java
  12. 2
      e2e/src/test/java/org/apache/dolphinscheduler/locator/security/TenantManageLocator.java
  13. 4
      e2e/src/test/java/org/apache/dolphinscheduler/locator/security/TokenManageLocator.java
  14. 6
      e2e/src/test/java/org/apache/dolphinscheduler/locator/security/UserManageLocator.java
  15. 1
      e2e/src/test/java/org/apache/dolphinscheduler/page/project/ProcessInstancePage.java
  16. 5
      e2e/src/test/java/org/apache/dolphinscheduler/page/project/ProjectPage.java
  17. 8
      e2e/src/test/java/org/apache/dolphinscheduler/page/project/RunWorkflowPage.java
  18. 21
      e2e/src/test/java/org/apache/dolphinscheduler/page/project/WorkflowDefinePage.java
  19. 17
      e2e/src/test/java/org/apache/dolphinscheduler/page/security/AlertManagePage.java
  20. 23
      e2e/src/test/java/org/apache/dolphinscheduler/page/security/QueueManagePage.java
  21. 6
      e2e/src/test/java/org/apache/dolphinscheduler/page/security/TenantManagePage.java
  22. 35
      e2e/src/test/java/org/apache/dolphinscheduler/page/security/TokenManagePage.java
  23. 16
      e2e/src/test/java/org/apache/dolphinscheduler/page/security/UserManagePage.java
  24. 2
      e2e/src/test/java/org/apache/dolphinscheduler/testcase/testSecurity/TestTokenManage.java
  25. 2
      e2e/src/test/java/org/apache/dolphinscheduler/testcase/testSecurity/TestUserManage.java
  26. 30
      e2e/testng.xml

3
e2e/src/test/java/org/apache/dolphinscheduler/data/project/ProjectData.java

@ -17,6 +17,9 @@
package org.apache.dolphinscheduler.data.project; package org.apache.dolphinscheduler.data.project;
public class ProjectData { public class ProjectData {
public static final String CREATE_PROJECT_BUTTON = "创建项目";
// create project name // create project name
public static final String PROJECT_NAME = "selenium_project_1"; public static final String PROJECT_NAME = "selenium_project_1";
// create project description // create project description

12
e2e/src/test/java/org/apache/dolphinscheduler/data/project/WorkflowDefineData.java

@ -20,6 +20,9 @@ public class WorkflowDefineData {
/** /**
* create workflow data * create workflow data
*/ */
public static final String workflow_define = "工作流定义";
//input shell task name //input shell task name
public static final String SHELL_TASK_NAME = "shell_task_selenium_1"; public static final String SHELL_TASK_NAME = "shell_task_selenium_1";
@ -74,4 +77,13 @@ public class WorkflowDefineData {
//input to add workflow global parameters value //input to add workflow global parameters value
public static final String INPUT_ADD_WORKFLOW_GLOBAL_PARAMETERS_VALUES = "selenium_global_parameters_value_2"; 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 = "下线";
} }

14
e2e/src/test/java/org/apache/dolphinscheduler/data/security/AlertManageData.java

@ -17,18 +17,14 @@
package org.apache.dolphinscheduler.data.security; package org.apache.dolphinscheduler.data.security;
public class AlertManageData { public class AlertManageData {
/** //Alert Name
* Alert Name
*/
public static final String ALERT_NAME = "selenium_alert_Name"; public static final String ALERT_NAME = "selenium_alert_Name";
/** public static final String CREATE_ALERT = "创建告警组";
* Alert Type
*/ // Alert Type
public static final String ALERT_TYPE = "邮件"; public static final String ALERT_TYPE = "邮件";
/** //Alert Description
* Alert Description
*/
public static final String DESCRIPTION = "create alert test"; public static final String DESCRIPTION = "create alert test";
public static final String ALERT_MANAGE = "告警组管理 - DolphinScheduler"; public static final String ALERT_MANAGE = "告警组管理 - DolphinScheduler";

6
e2e/src/test/java/org/apache/dolphinscheduler/data/security/QueueManageData.java

@ -22,6 +22,8 @@ public class QueueManageData {
*/ */
public static final String QUEUE_NAME = "selenium_queue_name"; public static final String QUEUE_NAME = "selenium_queue_name";
public static final String CREATE_QUEUE = "创建队列";
/** /**
* Create Queue Value * Create Queue Value
*/ */
@ -30,12 +32,12 @@ public class QueueManageData {
/** /**
* Edit Queue Name * Edit Queue Name
*/ */
public static final String EDIT_QUEUE_NAME = "_edit"; public static final String EDIT_QUEUE_NAME = "selenium_queue_value_edit";
/** /**
* Edit Queue Value * Edit Queue Value
*/ */
public static final String EDIT_QUEUE_VALUE = "_edit"; public static final String EDIT_QUEUE_VALUE = "selenium_queue_value_edit";
public static final String QUEUE_MANAGE = "队列管理 - DolphinScheduler"; public static final String QUEUE_MANAGE = "队列管理 - DolphinScheduler";

4
e2e/src/test/java/org/apache/dolphinscheduler/data/security/TokenManageData.java

@ -18,7 +18,11 @@ package org.apache.dolphinscheduler.data.security;
public class TokenManageData { public class TokenManageData {
public static final String TOKEN_MANAGE = "令牌管理 - DolphinScheduler"; 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 DATE = "2038-06-10 00:00:00";
public static final String NAME = "admin";
} }

3
e2e/src/test/java/org/apache/dolphinscheduler/data/security/UserManageData.java

@ -31,6 +31,9 @@ public class UserManageData {
public static final String USER_MANAGE = "用户管理 - DolphinScheduler"; public static final String USER_MANAGE = "用户管理 - DolphinScheduler";
public static final String CREATE_USER_BUTTON = "创建用户";
/** /**
* edit user * edit user
*/ */

3
e2e/src/test/java/org/apache/dolphinscheduler/locator/project/ProcessInstanceLocator.java

@ -20,6 +20,9 @@ import org.openqa.selenium.By;
public class ProcessInstanceLocator { public class ProcessInstanceLocator {
// jump Process Instance page // jump Process Instance page
// process instance state is success
public static final By PROCESS_INSTANCE_SUCCESS_STATE = By.xpath("//table/tr[2]/td[4]/span/em[@title['data-original-title']='成功']");
//click Process Instance name //click Process Instance name
public static final By CLICK_PROCESS_INSTANCE_NAME = By.xpath("//div[4]/div/ul/li[2]"); public static final By CLICK_PROCESS_INSTANCE_NAME = By.xpath("//div[4]/div/ul/li[2]");

3
e2e/src/test/java/org/apache/dolphinscheduler/locator/project/ProjectLocator.java

@ -34,6 +34,9 @@ public class ProjectLocator {
//submit button //submit button
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");
// project name
public static final By LIST_PROJECT_NAME = By.xpath("//table/tr[2]/td[2]/span/a");
//delete project button //delete project button
public static final By DELETE_PROJECT_BUTTON = By.xpath("//div[3]/div[1]/div/table/tr[2]/td[9]/span/button"); public static final By DELETE_PROJECT_BUTTON = By.xpath("//div[3]/div[1]/div/table/tr[2]/td[9]/span/button");

15
e2e/src/test/java/org/apache/dolphinscheduler/locator/project/WorkflowDefineLocator.java

@ -49,10 +49,10 @@ public class WorkflowDefineLocator {
public static final By INPUT_SHELL_TASK_NAME = By.xpath("//input"); public static final By INPUT_SHELL_TASK_NAME = By.xpath("//input");
//click stop run type //click stop run type
public static final By CLICK_STOP_RUN_TYPE = By.xpath("//label[2]/span/input"); public static final By CLICK_STOP_RUN_TYPE = By.xpath("//label[2]/span[1]/input");
//click normal run type //click normal run type
public static final By CLICK_NORMAL_RUN_TYPE = By.xpath("//span/input"); public static final By CLICK_NORMAL_RUN_TYPE = By.xpath("//label[1]/span[1]/input");
//input shell task description //input shell task description
public static final By INPUT_SHELL_TASK_DESCRIPTION = By.xpath("//label/div/textarea"); public static final By INPUT_SHELL_TASK_DESCRIPTION = By.xpath("//label/div/textarea");
@ -182,23 +182,24 @@ public class WorkflowDefineLocator {
/** /**
* online workflow * online workflow
*/ */
public static final By WORKFLOW_STATE = By.xpath("//table/tr[2]/td[4]/span");
// click online workflow button // click online workflow button
public static final By CLICK_ONLINE_WORKFLOW_BUTTON = By.xpath("//div[1]/div/table/tr[2]/td[10]/button[4]"); public static final By CLICK_ONLINE_WORKFLOW_BUTTON = By.xpath("//button[@title['data-original-title']='上线']");
/** /**
* offline workflow * offline workflow
*/ */
// click offline workflow button // click offline workflow button
public static final By CLICK_OFFLINE_WORKFLOW_BUTTON = By.xpath("//div[1]/div/table/tr[2]/td[10]/button[4]"); public static final By CLICK_OFFLINE_WORKFLOW_BUTTON = By.xpath("//button[@title['data-original-title']='下线']");
/** /**
* delete workflow * delete workflow
*/ */
//click delete workflow button //click delete workflow button
public static final By DELETE_WORKFLOW_BOTTOM = By.xpath("//div[3]/div[1]/div/table/tr[2]/td[10]/span/button"); public static final By DELETE_WORKFLOW_BOTTOM = By.xpath("//table/tr[2]/td[10]/span/button");
//click confirm delete workflow button //click confirm delete workflow button
public static final By CONFIRM_DELETE_WORKFLOW_BOTTOM = By.xpath("//div[2]/div/button[2]/span"); public static final By CONFIRM_DELETE_WORKFLOW_BOTTOM = By.xpath("//div[2]/div/button[2]/span");
} }

3
e2e/src/test/java/org/apache/dolphinscheduler/locator/security/AlertManageLocator.java

@ -28,8 +28,9 @@ public class AlertManageLocator {
public static final By INPUT_ALERT_DESCRIPTION = By.xpath("//textarea"); public static final By INPUT_ALERT_DESCRIPTION = By.xpath("//textarea");
public static final By SUBMIT_ALERT = By.xpath("//div[3]/button[2]/span"); public static final By SUBMIT_ALERT = By.xpath("//div[3]/button[2]/span");
public static final By ALERT_NAME = By.xpath("//table/tr[2]/td[2]/span");
//delete alert locator //delete alert locator
public static final By DELETE_ALERT_BUTTON = By.xpath("//span/button"); public static final By DELETE_ALERT_BUTTON = By.xpath("//span/button");
public static final By CONFIRM_DELETE_ALERT_BUTTON = By.xpath("//div[2]/div/button[2]/span"); public static final By CONFIRM_DELETE_ALERT_BUTTON = By.xpath("//div[2]/div/button[2]/span");
} }

2
e2e/src/test/java/org/apache/dolphinscheduler/locator/security/QueueManageLocator.java

@ -26,6 +26,8 @@ public class QueueManageLocator {
public static final By INPUT_QUEUE_VALUE = By.xpath("//div[2]/div[2]/div/input"); public static final By INPUT_QUEUE_VALUE = By.xpath("//div[2]/div[2]/div/input");
public static final By SUBMIT_QUEUE = By.xpath("//button[2]/span"); public static final By SUBMIT_QUEUE = By.xpath("//button[2]/span");
public static final By LIST_QUEUE_NAME = By.xpath("//table/tr[2]/td[2]/span");
//edit queue locator //edit queue locator
public static final By CLICK_EDIT_QUEUE = By.xpath("//td[6]/button/i"); public static final By CLICK_EDIT_QUEUE = By.xpath("//td[6]/button/i");
} }

2
e2e/src/test/java/org/apache/dolphinscheduler/locator/security/TenantManageLocator.java

@ -38,4 +38,6 @@ public class TenantManageLocator{
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 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"); public static final By CONFIRM_DELETE_TENANT_BUTTON = By.xpath("//div[2]/div/button[2]/span");
public static final By TENANT_CODE_FIRST = By.xpath("//table/tr[2]/td[2]/span");
} }

4
e2e/src/test/java/org/apache/dolphinscheduler/locator/security/TokenManageLocator.java

@ -30,7 +30,11 @@ public class TokenManageLocator {
public static final By CLICK_SUBMIT_BUTTON = By.xpath("//div[3]/button[2]/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 //edit token
public static final By TOKEN = By.xpath("//table/tr[2]/td[1]/span");
public static final By CLICK_EDIT_BUTTON = By.xpath("//div[3]/div[1]/div/table/tr[2]/td[7]/button/i"); public static final By CLICK_EDIT_BUTTON = By.xpath("//div[3]/div[1]/div/table/tr[2]/td[7]/button/i");
//delete token //delete token

6
e2e/src/test/java/org/apache/dolphinscheduler/locator/security/UserManageLocator.java

@ -52,13 +52,15 @@ public class UserManageLocator {
/** /**
* edit user * edit user
*/ */
public static final By USER_NAME = By.xpath("//table/tr[2]/td[2]/span");
public static final By EDIT_GENERAL_USER_BUTTON = By.xpath("//div[3]/div[1]/div/table/tr[2]/td[11]/button"); public static final By EDIT_GENERAL_USER_BUTTON = By.xpath("//div[3]/div[1]/div/table/tr[2]/td[11]/button");
public static final By EDIT_ADMIN_USER_BUTTON = By.xpath("//div[3]/div[1]/div/table/tr[3]/td[11]/button"); public static final By EDIT_ADMIN_USER_BUTTON = By.xpath("//div[3]/div[1]/div/table/tr[3]/td[11]/button");
/** /**
* delete user * delete user
*/ */
public static final By DELETE_USER_BUTTON = By.xpath("//div[3]/div[1]/div/table/tr[2]/td[11]/span[2]/button"); public static final By DELETE_USER_BUTTON = By.xpath("//table/tr[3]/td[11]/span[2]/button");
public static final By CONFIRM_DELETE_USER_BUTTON = By.xpath("//div[2]/div/button[2]/span"); public static final By CONFIRM_DELETE_USER_BUTTON = By.xpath("//tr[3]/td[11]/span[2]/div/div[2]/div/button[2]/span");
} }

1
e2e/src/test/java/org/apache/dolphinscheduler/page/project/ProcessInstancePage.java

@ -34,6 +34,7 @@ public class ProcessInstancePage extends PageCommon {
public boolean rerunWorkflowPage() throws InterruptedException { public boolean rerunWorkflowPage() throws InterruptedException {
Thread.sleep(2000); Thread.sleep(2000);
clickTopElement(ProcessInstanceLocator.CLICK_PROCESS_INSTANCE_NAME); clickTopElement(ProcessInstanceLocator.CLICK_PROCESS_INSTANCE_NAME);
locateElement(ProcessInstanceLocator.PROCESS_INSTANCE_SUCCESS_STATE);
clickTopElement(ProcessInstanceLocator.CLICK_RERUN_BUTTON); clickTopElement(ProcessInstanceLocator.CLICK_RERUN_BUTTON);
return ifTitleContains(ProcessInstanceData.PROCESS_INSTANCE_TITLE); return ifTitleContains(ProcessInstanceData.PROCESS_INSTANCE_TITLE);
} }

5
e2e/src/test/java/org/apache/dolphinscheduler/page/project/ProjectPage.java

@ -32,7 +32,6 @@ public class ProjectPage extends PageCommon {
*/ */
public boolean jumpProjectManagePage() throws InterruptedException { public boolean jumpProjectManagePage() throws InterruptedException {
clickTopElement(ProjectLocator.PROJECT_MANAGE); clickTopElement(ProjectLocator.PROJECT_MANAGE);
Thread.sleep(TestConstant.ONE_THOUSAND);
return ifTitleContains(ProjectData.PROJECT_TITLE); return ifTitleContains(ProjectData.PROJECT_TITLE);
} }
@ -42,7 +41,7 @@ public class ProjectPage extends PageCommon {
* @return Whether to enter the specified page after create project * @return Whether to enter the specified page after create project
*/ */
public boolean createProject() throws InterruptedException { public boolean createProject() throws InterruptedException {
Thread.sleep(500); ifTextExists(ProjectLocator.CREATE_PROJECT_BUTTON,ProjectData.CREATE_PROJECT_BUTTON);
clickElement(ProjectLocator.CREATE_PROJECT_BUTTON); clickElement(ProjectLocator.CREATE_PROJECT_BUTTON);
// input create project data // input create project data
@ -53,7 +52,7 @@ public class ProjectPage extends PageCommon {
clickButton(ProjectLocator.SUBMIT_BUTTON); clickButton(ProjectLocator.SUBMIT_BUTTON);
// Whether to enter the specified page after submit // Whether to enter the specified page after submit
return ifTitleContains(ProjectData.PROJECT_TITLE); return ifTextExists(ProjectLocator.LIST_PROJECT_NAME,ProjectData.PROJECT_NAME);
} }
/** /**

8
e2e/src/test/java/org/apache/dolphinscheduler/page/project/RunWorkflowPage.java

@ -18,7 +18,9 @@ package org.apache.dolphinscheduler.page.project;
import org.apache.dolphinscheduler.common.PageCommon; import org.apache.dolphinscheduler.common.PageCommon;
import org.apache.dolphinscheduler.data.project.RunWorkflowData; import org.apache.dolphinscheduler.data.project.RunWorkflowData;
import org.apache.dolphinscheduler.data.project.WorkflowDefineData;
import org.apache.dolphinscheduler.locator.project.RunWorkflowLocator; import org.apache.dolphinscheduler.locator.project.RunWorkflowLocator;
import org.apache.dolphinscheduler.locator.project.WorkflowDefineLocator;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
public class RunWorkflowPage extends PageCommon { public class RunWorkflowPage extends PageCommon {
@ -27,17 +29,17 @@ public class RunWorkflowPage extends PageCommon {
} }
public boolean runWorkflow() throws InterruptedException { public boolean runWorkflow() throws InterruptedException {
// Determine whether the workflow status is online
ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE, WorkflowDefineData.WORKFLOW_ONLINE_STATE);
// click run workflow button // click run workflow button
System.out.println("Click run workflow button"); System.out.println("Click run workflow button");
Thread.sleep(1000);
clickButton(RunWorkflowLocator.CLICK_RUN_WORKFLOW_BUTTON); clickButton(RunWorkflowLocator.CLICK_RUN_WORKFLOW_BUTTON);
Thread.sleep(1000);
clickElement(RunWorkflowLocator.SELECT_FAILURE_STRATEGY_END); clickElement(RunWorkflowLocator.SELECT_FAILURE_STRATEGY_END);
clickElement(RunWorkflowLocator.SELECT_FAILURE_STRATEGY_CONTINUE); clickElement(RunWorkflowLocator.SELECT_FAILURE_STRATEGY_CONTINUE);
clickElement(RunWorkflowLocator.CLICK_NOTICE_STRATEGY); clickElement(RunWorkflowLocator.CLICK_NOTICE_STRATEGY);
clickElement(RunWorkflowLocator.SELECT_NOTICE_STRATEGY); clickElement(RunWorkflowLocator.SELECT_NOTICE_STRATEGY);
Thread.sleep(500);
clickElement(RunWorkflowLocator.CLICK_PROCESS_PRIORITY); clickElement(RunWorkflowLocator.CLICK_PROCESS_PRIORITY);
clickElement(RunWorkflowLocator.SELECT_PROCESS_PRIORITY_HIGHEST); clickElement(RunWorkflowLocator.SELECT_PROCESS_PRIORITY_HIGHEST);
clickElement(RunWorkflowLocator.CLICK_WORKER_GROUP); clickElement(RunWorkflowLocator.CLICK_WORKER_GROUP);

21
e2e/src/test/java/org/apache/dolphinscheduler/page/project/WorkflowDefinePage.java

@ -18,7 +18,9 @@ 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.ProjectData;
import org.apache.dolphinscheduler.data.project.WorkflowDefineData; import org.apache.dolphinscheduler.data.project.WorkflowDefineData;
import org.apache.dolphinscheduler.locator.project.ProjectLocator;
import org.apache.dolphinscheduler.locator.project.WorkflowDefineLocator; import org.apache.dolphinscheduler.locator.project.WorkflowDefineLocator;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
@ -32,9 +34,12 @@ public class WorkflowDefinePage extends PageCommon {
*/ */
public boolean jumpWorkflowPage() throws InterruptedException { public boolean jumpWorkflowPage() throws InterruptedException {
ifTextExists(ProjectLocator.LIST_PROJECT_NAME, ProjectData.PROJECT_NAME);
// click project name // click project name
clickElement(WorkflowDefineLocator.CLICK_PROJECT_NAME); clickElement(WorkflowDefineLocator.CLICK_PROJECT_NAME);
Thread.sleep(TestConstant.ONE_THOUSAND);
ifTextExists(WorkflowDefineLocator.CLICK_WORKFLOW_DEFINE,WorkflowDefineData.workflow_define);
System.out.println("Click on workflow define to jump to workflow define page"); System.out.println("Click on workflow define to jump to workflow define page");
// click workflow define // click workflow define
@ -126,7 +131,6 @@ public class WorkflowDefinePage extends PageCommon {
//click submit button //click submit button
clickElement(WorkflowDefineLocator.CLICK_SUBMIT_BUTTON); clickElement(WorkflowDefineLocator.CLICK_SUBMIT_BUTTON);
Thread.sleep(TestConstant.ONE_THOUSAND);
System.out.println("Task node set up successfully"); System.out.println("Task node set up successfully");
System.out.println("move to Dag Element "); System.out.println("move to Dag Element ");
moveToDragElement(WorkflowDefineLocator.MOUSE_MOVE_SHELL_AT_DAG,-300,-100); moveToDragElement(WorkflowDefineLocator.MOUSE_MOVE_SHELL_AT_DAG,-300,-100);
@ -185,7 +189,6 @@ public class WorkflowDefinePage extends PageCommon {
//delete workflow global parameters value //delete workflow global parameters value
clickElement(WorkflowDefineLocator.CLICK_DELETE_WORKFLOW_GLOBAL_PARAMETERS); clickElement(WorkflowDefineLocator.CLICK_DELETE_WORKFLOW_GLOBAL_PARAMETERS);
Thread.sleep(TestConstant.ONE_THOUSAND);
//click add button //click add button
System.out.println("submit workflow"); System.out.println("submit workflow");
@ -197,6 +200,9 @@ public class WorkflowDefinePage extends PageCommon {
public boolean onlineWorkflow() throws InterruptedException { public boolean onlineWorkflow() throws InterruptedException {
clickElement(WorkflowDefineLocator.CLICK_WORKFLOW_DEFINE); clickElement(WorkflowDefineLocator.CLICK_WORKFLOW_DEFINE);
// Determine whether the workflow status is offline
ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE,WorkflowDefineData.WORKFLOW_OFFLINE_STATE);
// click online button // click online button
System.out.println("Click online workflow button"); System.out.println("Click online workflow button");
clickButton(WorkflowDefineLocator.CLICK_ONLINE_WORKFLOW_BUTTON); clickButton(WorkflowDefineLocator.CLICK_ONLINE_WORKFLOW_BUTTON);
@ -207,9 +213,11 @@ public class WorkflowDefinePage extends PageCommon {
public boolean offlineWorkflow() throws InterruptedException { public boolean offlineWorkflow() throws InterruptedException {
clickElement(WorkflowDefineLocator.CLICK_WORKFLOW_DEFINE); clickElement(WorkflowDefineLocator.CLICK_WORKFLOW_DEFINE);
// Determine whether the workflow status is online
ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE,WorkflowDefineData.WORKFLOW_ONLINE_STATE);
// click offline button // click offline button
System.out.println("offline workflow"); System.out.println("offline workflow");
Thread.sleep(500);
clickButton(WorkflowDefineLocator.CLICK_OFFLINE_WORKFLOW_BUTTON); clickButton(WorkflowDefineLocator.CLICK_OFFLINE_WORKFLOW_BUTTON);
return ifTitleContains(WorkflowDefineData.WORKFLOW_TITLE); return ifTitleContains(WorkflowDefineData.WORKFLOW_TITLE);
@ -218,8 +226,11 @@ public class WorkflowDefinePage extends PageCommon {
public boolean deleteWorkflow() throws InterruptedException { public boolean deleteWorkflow() throws InterruptedException {
//click delete workflow //click delete workflow
Thread.sleep(500);
clickElement(WorkflowDefineLocator.CLICK_WORKFLOW_DEFINE); clickElement(WorkflowDefineLocator.CLICK_WORKFLOW_DEFINE);
// Determine whether the workflow status is offline
ifTextExists(WorkflowDefineLocator.WORKFLOW_STATE,WorkflowDefineData.WORKFLOW_OFFLINE_STATE);
clickButton(WorkflowDefineLocator.DELETE_WORKFLOW_BOTTOM); clickButton(WorkflowDefineLocator.DELETE_WORKFLOW_BOTTOM);
//click confirm delete project //click confirm delete project

17
e2e/src/test/java/org/apache/dolphinscheduler/page/security/AlertManagePage.java

@ -31,22 +31,21 @@ public class AlertManagePage extends PageCommon {
} }
/** /**
* createTenant * create alert
* *
* @return Whether to enter the specified page after create tenant * @return Whether to enter the specified page after create tenant
*/ */
public boolean createAlert() throws InterruptedException { public boolean createAlert() throws InterruptedException {
// click alert manage // click alert manage
Thread.sleep(500);
System.out.println("start click alert manage button"); System.out.println("start click alert manage button");
clickElement(AlertManageLocator.CLICK_ALERT_MANAGE); clickElement(AlertManageLocator.CLICK_ALERT_MANAGE);
Thread.sleep(500);
//determine whether the create alert button exists
ifTextExists(AlertManageLocator.CLICK_CREATE_ALERT,AlertManageData.CREATE_ALERT);
// click create alert button // click create alert button
System.out.println("start click create alert button"); System.out.println("start click create alert button");
clickElement(AlertManageLocator.CLICK_CREATE_ALERT); clickElement(AlertManageLocator.CLICK_CREATE_ALERT);
Thread.sleep(500);
// input alert data // input alert data
System.out.println("start input alert "); System.out.println("start input alert ");
sendInput(AlertManageLocator.INPUT_ALERT_NAME, AlertManageData.ALERT_NAME); sendInput(AlertManageLocator.INPUT_ALERT_NAME, AlertManageData.ALERT_NAME);
@ -61,15 +60,17 @@ public class AlertManagePage extends PageCommon {
clickButton(AlertManageLocator.SUBMIT_ALERT); clickButton(AlertManageLocator.SUBMIT_ALERT);
// Whether to enter the specified page after submit // Whether to enter the specified page after submit
return ifTitleContains(AlertManageData.ALERT_MANAGE); return ifTextExists(AlertManageLocator.ALERT_NAME, AlertManageData.ALERT_NAME);
} }
public boolean deleteAlert() throws InterruptedException { public boolean deleteAlert() throws InterruptedException {
// click user manage // click alert manage
clickElement(AlertManageLocator.CLICK_ALERT_MANAGE); clickElement(AlertManageLocator.CLICK_ALERT_MANAGE);
// click delete user button ifTextExists(AlertManageLocator.ALERT_NAME, AlertManageData.ALERT_NAME);
// click delete alert button
clickButton(AlertManageLocator.DELETE_ALERT_BUTTON); clickButton(AlertManageLocator.DELETE_ALERT_BUTTON);
// click confirm delete button // click confirm delete button

23
e2e/src/test/java/org/apache/dolphinscheduler/page/security/QueueManagePage.java

@ -37,15 +37,15 @@ public class QueueManagePage extends PageCommon {
*/ */
public boolean createQueue() throws InterruptedException { public boolean createQueue() throws InterruptedException {
// click queue manage // click queue manage
Thread.sleep(500);
System.out.println("start click queue manage button"); System.out.println("start click queue manage button");
clickElement(QueueManageLocator.CLICK_QUEUE_MANAGE); clickElement(QueueManageLocator.CLICK_QUEUE_MANAGE);
Thread.sleep(500);
//determine whether the create queue button exists
ifTextExists(QueueManageLocator.CLICK_CREATE_QUEUE,QueueManageData.CREATE_QUEUE);
// click create queue button // click create queue button
System.out.println("start click create queue button"); System.out.println("start click create queue button");
clickElement(QueueManageLocator.CLICK_CREATE_QUEUE); clickButton(QueueManageLocator.CLICK_CREATE_QUEUE);
Thread.sleep(500);
// input queue data // input queue data
System.out.println("start input queue"); System.out.println("start input queue");
@ -57,7 +57,7 @@ public class QueueManagePage extends PageCommon {
clickButton(QueueManageLocator.SUBMIT_QUEUE); clickButton(QueueManageLocator.SUBMIT_QUEUE);
// Whether to enter the specified page after submit // Whether to enter the specified page after submit
return ifTitleContains(QueueManageData.QUEUE_MANAGE); return ifTextExists(QueueManageLocator.LIST_QUEUE_NAME, QueueManageData.QUEUE_NAME);
} }
@ -68,22 +68,21 @@ public class QueueManagePage extends PageCommon {
*/ */
public boolean editQueue() throws InterruptedException { public boolean editQueue() throws InterruptedException {
// click queue manage // click queue manage
Thread.sleep(1000);
clickElement(QueueManageLocator.CLICK_QUEUE_MANAGE); clickElement(QueueManageLocator.CLICK_QUEUE_MANAGE);
Thread.sleep(1000);
ifTextExists(QueueManageLocator.LIST_QUEUE_NAME, QueueManageData.QUEUE_NAME);
// click edit queue button // click edit queue button
clickElement(QueueManageLocator.CLICK_EDIT_QUEUE); clickButton(QueueManageLocator.CLICK_EDIT_QUEUE);
Thread.sleep(1000);
// input queue data // input queue data
sendInput(QueueManageLocator.INPUT_QUEUE_NAME, QueueManageData.EDIT_QUEUE_NAME); clearSendInput(QueueManageLocator.INPUT_QUEUE_NAME, QueueManageData.EDIT_QUEUE_NAME);
sendInput(QueueManageLocator.INPUT_QUEUE_VALUE, QueueManageData.EDIT_QUEUE_VALUE); clearSendInput(QueueManageLocator.INPUT_QUEUE_VALUE, QueueManageData.EDIT_QUEUE_VALUE);
// click button // click button
clickButton(QueueManageLocator.SUBMIT_QUEUE); clickButton(QueueManageLocator.SUBMIT_QUEUE);
// Whether to enter the specified page after submit // Whether to enter the specified page after submit
return ifTitleContains(QueueManageData.QUEUE_MANAGE); return ifTextExists(QueueManageLocator.LIST_QUEUE_NAME, QueueManageData.EDIT_QUEUE_NAME);
} }
} }

6
e2e/src/test/java/org/apache/dolphinscheduler/page/security/TenantManagePage.java

@ -46,7 +46,7 @@ public class TenantManagePage extends PageCommon {
* @return Whether to enter the specified page after create tenant * @return Whether to enter the specified page after create tenant
*/ */
public boolean createTenant() throws InterruptedException { public boolean createTenant() throws InterruptedException {
clickButton(TenantManageLocator.TENANT_MANAGE); clickElement(TenantManageLocator.TENANT_MANAGE);
//create tenant //create tenant
clickButton(TenantManageLocator.CREATE_TENANT_BUTTON); clickButton(TenantManageLocator.CREATE_TENANT_BUTTON);
@ -61,11 +61,11 @@ public class TenantManagePage extends PageCommon {
clickButton(TenantManageLocator.SUBMIT_BUTTON); clickButton(TenantManageLocator.SUBMIT_BUTTON);
// Whether to enter the specified page after submit // Whether to enter the specified page after submit
return ifTitleContains(TenantManageData.TENANT_MANAGE); return ifTextExists(TenantManageLocator.TENANT_CODE_FIRST, TenantManageData.TENANT_CODE);
} }
public boolean deleteTenant() throws InterruptedException { public boolean deleteTenant() throws InterruptedException {
clickButton(TenantManageLocator.TENANT_MANAGE); clickElement(TenantManageLocator.TENANT_MANAGE);
// click delete button // click delete button
clickButton(TenantManageLocator.DELETE_TENANT_BUTTON); clickButton(TenantManageLocator.DELETE_TENANT_BUTTON);

35
e2e/src/test/java/org/apache/dolphinscheduler/page/security/TokenManagePage.java

@ -27,26 +27,24 @@ public class TokenManagePage extends PageCommon {
} }
/** /**
* createTenant * create token
* *
* @return Whether to enter the specified page after creat tenant * @return Whether to enter the specified page after create tenant
*/ */
public boolean createToken() throws InterruptedException { public boolean createToken() throws InterruptedException {
//create token //create token
Thread.sleep(1000);
clickElement(TokenManageLocator.CLICK_TOKEN_MANAGE); clickElement(TokenManageLocator.CLICK_TOKEN_MANAGE);
Thread.sleep(1000);
//determine whether the create token button exists
ifTextExists(TokenManageLocator.CLICK_CREATE_TOKEN,TokenManageData.CREATE_TOKEN);
// click create token button // click create token button
clickButton(TokenManageLocator.CLICK_CREATE_TOKEN); clickButton(TokenManageLocator.CLICK_CREATE_TOKEN);
Thread.sleep(1000);
//selectDate(TokenManageLocator.js, TokenManageLocator.CLICK_TIME, TokenManageData.DATE);
clickButton(TokenManageLocator.SELECT_USER); clickButton(TokenManageLocator.SELECT_USER);
clickButton(TokenManageLocator.CLICK_GENERATE_TOKEN_BUTTON); clickButton(TokenManageLocator.CLICK_GENERATE_TOKEN_BUTTON);
Thread.sleep(2500); Thread.sleep(2000);
// click button // click button
clickButton(TokenManageLocator.CLICK_SUBMIT_BUTTON); clickButton(TokenManageLocator.CLICK_SUBMIT_BUTTON);
@ -55,21 +53,25 @@ public class TokenManagePage extends PageCommon {
return ifTitleContains(TokenManageData.TOKEN_MANAGE); return ifTitleContains(TokenManageData.TOKEN_MANAGE);
} }
/**
//edit token * edit token
*
* @return Whether to enter the specified page after edit tenant
*/
public boolean editToken() throws InterruptedException { public boolean editToken() throws InterruptedException {
// click token manage // edit token
clickElement(TokenManageLocator.CLICK_TOKEN_MANAGE); ifTextExists(TokenManageLocator.TOKEN, "1");
Thread.sleep(1000);
// click create token button // determine the existence of the editing token
locateElement(TokenManageLocator.EDIT_TOKEN_BUTTON);
// click edit token button
clickButton(TokenManageLocator.CLICK_EDIT_BUTTON); clickButton(TokenManageLocator.CLICK_EDIT_BUTTON);
Thread.sleep(1000);
clickButton(TokenManageLocator.SELECT_USER); clickButton(TokenManageLocator.SELECT_USER);
clickButton(TokenManageLocator.CLICK_GENERATE_TOKEN_BUTTON); clickButton(TokenManageLocator.CLICK_GENERATE_TOKEN_BUTTON);
Thread.sleep(2500); Thread.sleep(2000);
// click button // click button
clickButton(TokenManageLocator.CLICK_SUBMIT_BUTTON); clickButton(TokenManageLocator.CLICK_SUBMIT_BUTTON);
@ -83,7 +85,6 @@ public class TokenManagePage extends PageCommon {
public boolean deleteToken() throws InterruptedException { public boolean deleteToken() throws InterruptedException {
// click token manage // click token manage
clickElement(TokenManageLocator.CLICK_TOKEN_MANAGE); clickElement(TokenManageLocator.CLICK_TOKEN_MANAGE);
Thread.sleep(1000);
clickButton(TokenManageLocator.CLICK_DELETE_BUTTON); clickButton(TokenManageLocator.CLICK_DELETE_BUTTON);
clickButton(TokenManageLocator.CLICK_CONFIRM_DELETE_BUTTON); clickButton(TokenManageLocator.CLICK_CONFIRM_DELETE_BUTTON);

16
e2e/src/test/java/org/apache/dolphinscheduler/page/security/UserManagePage.java

@ -29,12 +29,15 @@ public class UserManagePage extends PageCommon {
/** /**
* create user * create user
* *
* @return Whether to enter the specified page after creat tenant * @return Whether to enter the specified page after create tenant
*/ */
public boolean createUser() throws InterruptedException { public boolean createUser() throws InterruptedException {
// click user manage // click user manage
clickElement(UserManageLocator.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);
// click create user button // click create user button
clickButton(UserManageLocator.CLICK_CREATE_USER_BUTTON); clickButton(UserManageLocator.CLICK_CREATE_USER_BUTTON);
@ -64,9 +67,11 @@ public class UserManagePage extends PageCommon {
//edit general user //edit general user
// click user manage // click user manage
System.out.println("start edit general user"); System.out.println("start edit general user");
Thread.sleep(500);
clickElement(UserManageLocator.CLICK_USER_MANAGE); clickElement(UserManageLocator.CLICK_USER_MANAGE);
//determine whether the general user exists
ifTextExists(UserManageLocator.USER_NAME,UserManageData.USERNAME);
// click edit user button // click edit user button
clickButton(UserManageLocator.EDIT_GENERAL_USER_BUTTON ); clickButton(UserManageLocator.EDIT_GENERAL_USER_BUTTON );
@ -97,13 +102,15 @@ public class UserManagePage extends PageCommon {
/** /**
* edit admin user * edit admin user
*/ */
public boolean editAdminlUser() throws InterruptedException { public boolean editAdminUser() throws InterruptedException {
//edit admin user //edit admin user
// click user manage // click user manage
System.out.println("start edit admin user"); System.out.println("start edit admin user");
Thread.sleep(500);
clickElement(UserManageLocator.CLICK_USER_MANAGE); clickElement(UserManageLocator.CLICK_USER_MANAGE);
//determine whether the general user edit success
ifTextExists(UserManageLocator.USER_NAME,UserManageData.EDIT_USERNAME);
// click edit user button // click edit user button
clickButton(UserManageLocator.EDIT_ADMIN_USER_BUTTON ); clickButton(UserManageLocator.EDIT_ADMIN_USER_BUTTON );
@ -115,7 +122,6 @@ public class UserManagePage extends PageCommon {
// click button // click button
clickButton(UserManageLocator.SUBMIT); clickButton(UserManageLocator.SUBMIT);
System.out.println("end edit admin user"); System.out.println("end edit admin user");
Thread.sleep(500);
// 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);
} }

2
e2e/src/test/java/org/apache/dolphinscheduler/testcase/testSecurity/TestTokenManage.java

@ -24,7 +24,7 @@ public class TestTokenManage extends BaseTest {
private TokenManagePage tokenManagePage; private TokenManagePage tokenManagePage;
@Test(groups={"functionTests","token"},dependsOnGroups = { "login" },description = "TestTokenManage") @Test(groups={"functionTests","token"},dependsOnGroups = { "login" },description = "TestTokenManage")
public void testUserManage() throws InterruptedException { public void testTokenManage() throws InterruptedException {
tokenManagePage = new TokenManagePage(driver); tokenManagePage = new TokenManagePage(driver);
//generate token //generate token
System.out.println("start create token"); System.out.println("start create token");

2
e2e/src/test/java/org/apache/dolphinscheduler/testcase/testSecurity/TestUserManage.java

@ -39,7 +39,7 @@ public class TestUserManage extends BaseTest {
//edit user //edit user
System.out.println("start edit user"); System.out.println("start edit user");
assert userManagePage.editGeneralUser(); assert userManagePage.editGeneralUser();
assert userManagePage.editAdminlUser(); assert userManagePage.editAdminUser();
System.out.println("end edit user"); System.out.println("end edit user");
System.out.println("==================================="); System.out.println("===================================");

30
e2e/testng.xml

@ -53,20 +53,20 @@
<class name="org.apache.dolphinscheduler.testcase.testProject.TestRunWorkflow"></class> <class name="org.apache.dolphinscheduler.testcase.testProject.TestRunWorkflow"></class>
<!-- <class name="org.apache.dolphinscheduler.testcase.testProject.TestTiming"> <!--<class name="org.apache.dolphinscheduler.testcase.testProject.TestTiming">-->
<methods> <!--<methods>-->
<include name="testCreateTiming" /> <!--<include name="testCreateTiming" />-->
<include name="testEditTiming" /> <!--<include name="testOnlineTiming" />-->
<include name="testOnlineTiming" /> <!--<include name="testOfflineTiming" />-->
<include name="testOfflineTiming" /> <!--<include name="testEditTiming" />-->
<include name="testDeleteTiming" /> <!--<include name="testDeleteTiming" />-->
</methods> <!--</methods>-->
</class> --> <!--</class>-->
<class name="org.apache.dolphinscheduler.testcase.testProject.TestProcessInstance"> <!--<class name="org.apache.dolphinscheduler.testcase.testProject.TestProcessInstance">-->
<methods> <!--<methods>-->
<include name="testRerun" /> <!--<include name="testRerun" />-->
</methods> <!--</methods>-->
</class> <!--</class>-->
<class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteWorkflow"> <class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteWorkflow">
<methods> <methods>
@ -78,7 +78,7 @@
<class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteProject"></class> <class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteProject"></class>
<class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteAlert"></class> <class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteAlert"></class>
<class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteToken"></class> <class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteToken"></class>
<!-- <class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteUser"></class>--> <class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteUser"></class>
<class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteTenant"></class> <class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteTenant"></class>
</classes> </classes>
</test> </test>

Loading…
Cancel
Save