You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by lg...@apache.org on 2020/06/11 06:03:56 UTC

[incubator-dolphinscheduler] branch dev updated: e2e add queue testcase (#2949)

This is an automated email from the ASF dual-hosted git repository.

lgcareer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 87d0379  e2e add queue testcase (#2949)
87d0379 is described below

commit 87d03798954bebba714a817cf9d76d06defc3ba2
Author: xingchun-chen <55...@users.noreply.github.com>
AuthorDate: Thu Jun 11 14:03:47 2020 +0800

    e2e add queue testcase (#2949)
    
    * add LoginTest license
    
    * Delete useless packages
    
    * e2e add project and workflow case
    
    * e2e add project and workflow case
    
    * e2e add project and workflow case
    
    * e2e add project and workflow case
    
    * e2e add project and workflow case
    
    * e2e add project and workflow case
    
    * e2e add project and workflow case
    
    * e2e add project and workflow case
    
    * e2e add project and workflow case
    
    * e2e add project and workflow case
    
    * e2e add project and workflow case
    
    * e2e add project and workflow case
    
    * Update worker_group_id to worker_group in init.sql
    
    * Update worker_group_id to worker_group in init.sql
    
    * Update worker_group_id to worker_group
    
    * Increase dataX environment variable, sslTrust default value
    
    * modify dataX environment variable
    
    * update e2e chrome version
    
    * add alert manage testcase and Optimize test case execution order
    
    * add e2e to create and to  edit  queue
    
    * update e2e chrome version
    
    * add e2e token testcase
    
    * add e2e token testcase
    
    Co-authored-by: chenxingchun <43...@qq.com>
---
 .../dolphinscheduler/common/BrowserCommon.java     | 34 +++++---
 .../data/security/QueueManageData.java             | 42 ++++++++++
 .../data/security/TokenManageData.java             | 24 ++++++
 .../locator/security/QueueManageLocator.java       | 31 +++++++
 .../locator/security/TokenManageLocator.java       | 41 ++++++++++
 .../page/security/AlertManagePage.java             |  4 +-
 .../page/security/QueueManagePage.java             | 85 +++++++++++++++++++
 .../page/security/TokenManagePage.java             | 94 ++++++++++++++++++++++
 .../testcase/testDeleteData/TestDeleteToken.java   | 42 ++++++++++
 .../testcase/testSecurity/TestQueueManage.java     | 42 ++++++++++
 .../testcase/testSecurity/TestTokenManage.java     | 43 ++++++++++
 e2e/testng.xml                                     |  3 +
 12 files changed, 474 insertions(+), 11 deletions(-)

diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/common/BrowserCommon.java b/e2e/src/test/java/org/apache/dolphinscheduler/common/BrowserCommon.java
index 5ad085a..a7c1f7f 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/common/BrowserCommon.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/common/BrowserCommon.java
@@ -23,7 +23,7 @@ import org.openqa.selenium.interactions.Actions;
 import org.openqa.selenium.support.ui.ExpectedConditions;
 import org.openqa.selenium.support.ui.WebDriverWait;
 import redis.clients.jedis.Jedis;
-
+import org.openqa.selenium.JavascriptExecutor;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
@@ -115,6 +115,7 @@ public class BrowserCommon {
 
     /**
      * Click button element
+     *
      * @param locator By
      * @return clickButton
      */
@@ -128,12 +129,13 @@ public class BrowserCommon {
 
     /**
      * Click Navigation Bar element
+     *
      * @param locator By
      * @return clickButton
      */
     public void clickTopElement(By locator) {
         WebElement element = driver.findElement(locator);
-        JavascriptExecutor executor = (JavascriptExecutor)driver;
+        JavascriptExecutor executor = (JavascriptExecutor) driver;
         executor.executeScript("arguments[0].click();", element);
     }
 
@@ -164,6 +166,7 @@ public class BrowserCommon {
         inputElement.sendKeys(content);
         return inputElement;
     }
+
     /**
      * clear element
      *
@@ -182,9 +185,8 @@ public class BrowserCommon {
      *
      * @param codeMirrorLocator By codeMirror
      * @param codeMirrorLineLocator By codeMirrorLine
-
      */
-    public void inputCodeMirror(By codeMirrorLocator,By codeMirrorLineLocator,String content) {
+    public void inputCodeMirror(By codeMirrorLocator, By codeMirrorLineLocator, String content) {
         WebElement codeMirrorElement = locateElement(codeMirrorLocator);
         WebElement codeMirrorLineElement = locateElement(codeMirrorLineLocator);
         codeMirrorElement.click();
@@ -193,10 +195,11 @@ public class BrowserCommon {
 
     /**
      * move to element
+     *
      * @param locator BY
      * @return actions
      */
-    public Actions moveToElement(By locator){
+    public Actions moveToElement(By locator) {
         return actions.moveToElement(locateElement(locator));
     }
 
@@ -206,14 +209,14 @@ public class BrowserCommon {
      * @param source_locator BY
      * @param target_locator BY
      */
-    public void dragAndDrop(By source_locator, By target_locator){
+    public void dragAndDrop(By source_locator, By target_locator) {
         WebElement sourceElement = locateElement(source_locator);
         WebElement targetElement = locateElement(target_locator);
         actions.dragAndDrop(sourceElement, targetElement).perform();
         actions.release();
     }
 
-    public void moveToDragElement(By target_locator, int X, int Y){
+    public void moveToDragElement(By target_locator, int X, int Y) {
         WebElement targetElement = locateElement(target_locator);
         actions.dragAndDropBy(targetElement, X, Y).perform();
         actions.release();
@@ -249,9 +252,22 @@ public class BrowserCommon {
         return driver;
     }
 
+    /**
+     * select time
+     *
+     * @return WebElement
+     */
+    public WebElement selectDate(String js, By locator_time, String date) {
+        JavascriptExecutor removeAttribute = (JavascriptExecutor) driver;
+        removeAttribute.executeScript("var setDate=" + js + ";setDate.removeAttribute('readonly');");
+        WebElement dateElement = locateElement(locator_time);
 
-
-
+        //input date
+        dateElement.clear();
+        dateElement.sendKeys(Keys.HOME,Keys.chord(Keys.SHIFT,Keys.END));
+        dateElement.sendKeys(date);
+        return dateElement;
+    }
 
         /**
          * Multi-window switch handle, according to the handle number passed in
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/data/security/QueueManageData.java b/e2e/src/test/java/org/apache/dolphinscheduler/data/security/QueueManageData.java
new file mode 100644
index 0000000..9fa9568
--- /dev/null
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/data/security/QueueManageData.java
@@ -0,0 +1,42 @@
+/*
+ * 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.security;
+
+public class QueueManageData {
+    /**
+     * Create Queue Name
+     */
+    public static final String QUEUE_NAME = "selenium_queue_name";
+
+    /**
+     * Create Queue Value
+     */
+    public static final String QUEUE_VALUE = "selenium_queue_value";
+
+    /**
+     * Edit Queue Name
+     */
+    public static final String EDIT_QUEUE_NAME = "_edit";
+
+    /**
+     * Edit Queue Value
+     */
+    public static final String EDIT_QUEUE_VALUE = "_edit";
+
+    public static final String QUEUE_MANAGE = "队列管理 - DolphinScheduler";
+
+}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/data/security/TokenManageData.java b/e2e/src/test/java/org/apache/dolphinscheduler/data/security/TokenManageData.java
new file mode 100644
index 0000000..6b6370f
--- /dev/null
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/data/security/TokenManageData.java
@@ -0,0 +1,24 @@
+/*
+ * 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.security;
+
+public class TokenManageData {
+    public static final String TOKEN_MANAGE = "令牌管理 - DolphinScheduler";
+    public static final String DATE = "2038-06-10 00:00:00";
+
+
+}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/locator/security/QueueManageLocator.java b/e2e/src/test/java/org/apache/dolphinscheduler/locator/security/QueueManageLocator.java
new file mode 100644
index 0000000..ee7d399
--- /dev/null
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/locator/security/QueueManageLocator.java
@@ -0,0 +1,31 @@
+/*
+ * 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.locator.security;
+
+import org.openqa.selenium.By;
+
+public class QueueManageLocator {
+    //create queue locator
+    public static final By CLICK_QUEUE_MANAGE = By.xpath("//div[6]/div/a/div/a/span");
+    public static final By CLICK_CREATE_QUEUE = By.xpath("//button/span");
+    public static final By INPUT_QUEUE_NAME = By.xpath("//div[2]/div/div/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");
+
+    //edit queue locator
+    public static final By CLICK_EDIT_QUEUE = By.xpath("//td[6]/button/i");
+}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/locator/security/TokenManageLocator.java b/e2e/src/test/java/org/apache/dolphinscheduler/locator/security/TokenManageLocator.java
new file mode 100644
index 0000000..e7f7654
--- /dev/null
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/locator/security/TokenManageLocator.java
@@ -0,0 +1,41 @@
+/*
+ * 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.locator.security;
+
+import org.openqa.selenium.By;
+
+public class TokenManageLocator {
+    //create token
+    public static final By CLICK_TOKEN_MANAGE = By.xpath("//div[7]/div/a/div/a/span");
+
+    public static final By CLICK_CREATE_TOKEN = By.xpath("//div[2]/div/div[2]/div[2]/div/div[1]/button/span");
+
+    public static final By SELECT_USER = By.xpath("//div[2]/div[2]/div/div/div/span/i");
+
+    public static final By CLICK_GENERATE_TOKEN_BUTTON = By.xpath("//div[3]/div[2]/button/span");
+
+    public static final By CLICK_SUBMIT_BUTTON = By.xpath("//div[3]/button[2]/span");
+
+    //edit token
+    public static final By CLICK_EDIT_BUTTON = By.xpath("//div[3]/div[1]/div/table/tr[2]/td[7]/button/i");
+
+    //delete token
+    public static final By CLICK_DELETE_BUTTON = By.xpath("//div[3]/div[1]/div/table/tr[2]/td[7]/span/button");
+
+    public static final By CLICK_CONFIRM_DELETE_BUTTON = By.xpath("//div[2]/div/button[2]/span");
+
+}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/page/security/AlertManagePage.java b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/AlertManagePage.java
index eb3fa34..a205723 100644
--- a/e2e/src/test/java/org/apache/dolphinscheduler/page/security/AlertManagePage.java
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/AlertManagePage.java
@@ -38,11 +38,11 @@ public class AlertManagePage extends PageCommon {
     public boolean createAlert() throws InterruptedException {
         // click  alert manage
         clickElement(AlertManageLocator.CLICK_ALERT_MANAGE);
-        Thread.sleep(2000);
+        Thread.sleep(1000);
 
         // click  create alert button
         clickElement(AlertManageLocator.CLICK_CREATE_ALERT);
-        Thread.sleep(2000);
+        Thread.sleep(1000);
 
         // input alert data
         sendInput(AlertManageLocator.INPUT_ALERT_NAME, AlertManageData.ALERT_NAME);
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/page/security/QueueManagePage.java b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/QueueManagePage.java
new file mode 100644
index 0000000..33b7627
--- /dev/null
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/QueueManagePage.java
@@ -0,0 +1,85 @@
+/*
+ * 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.page.security;
+
+import org.apache.dolphinscheduler.common.PageCommon;
+import org.apache.dolphinscheduler.data.security.QueueManageData;
+import org.apache.dolphinscheduler.locator.security.QueueManageLocator;
+import org.openqa.selenium.WebDriver;
+
+public class QueueManagePage extends PageCommon {
+    /**
+     * Unique constructor
+     * @param driver driver
+     */
+    public QueueManagePage(WebDriver driver) {
+        super(driver);
+    }
+
+    /**
+     * create queue
+     *
+     * @return Whether to enter the specified page after create queue
+     */
+    public boolean createQueue() throws InterruptedException {
+        // click queue manage
+        clickElement(QueueManageLocator.CLICK_QUEUE_MANAGE);
+        Thread.sleep(1000);
+
+        // click  create queue button
+        clickElement(QueueManageLocator.CLICK_CREATE_QUEUE);
+        Thread.sleep(1000);
+
+        // input queue data
+        sendInput(QueueManageLocator.INPUT_QUEUE_NAME, QueueManageData.QUEUE_NAME);
+
+        sendInput(QueueManageLocator.INPUT_QUEUE_VALUE, QueueManageData.QUEUE_VALUE);
+
+        // click  button
+        clickButton(QueueManageLocator.SUBMIT_QUEUE);
+
+        // Whether to enter the specified page after submit
+        return ifTitleContains(QueueManageData.QUEUE_MANAGE);
+    }
+
+
+    /**
+     * edit queue
+     *
+     * @return Whether to enter the specified page after create queue
+     */
+    public boolean editQueue() throws InterruptedException {
+        // click queue manage
+        Thread.sleep(1000);
+        clickElement(QueueManageLocator.CLICK_QUEUE_MANAGE);
+        Thread.sleep(1000);
+
+        // click  edit queue button
+        clickElement(QueueManageLocator.CLICK_EDIT_QUEUE);
+        Thread.sleep(1000);
+
+        // input queue data
+        sendInput(QueueManageLocator.INPUT_QUEUE_NAME, QueueManageData.EDIT_QUEUE_NAME);
+        sendInput(QueueManageLocator.INPUT_QUEUE_VALUE, QueueManageData.EDIT_QUEUE_VALUE);
+
+        // click  button
+        clickButton(QueueManageLocator.SUBMIT_QUEUE);
+
+        // Whether to enter the specified page after submit
+        return ifTitleContains(QueueManageData.QUEUE_MANAGE);
+    }
+}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/page/security/TokenManagePage.java b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/TokenManagePage.java
new file mode 100644
index 0000000..2f8204a
--- /dev/null
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/page/security/TokenManagePage.java
@@ -0,0 +1,94 @@
+/*
+ * 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.page.security;
+
+import org.apache.dolphinscheduler.common.PageCommon;
+import org.apache.dolphinscheduler.data.security.TokenManageData;
+import org.apache.dolphinscheduler.locator.security.TokenManageLocator;
+import org.openqa.selenium.WebDriver;
+
+public class TokenManagePage extends PageCommon {
+    public TokenManagePage(WebDriver driver) {
+        super(driver);
+    }
+
+    /**
+     * createTenant
+     *
+     * @return Whether to enter the specified page after creat tenant
+     */
+    public boolean createToken() throws InterruptedException {
+        //create token
+        Thread.sleep(1000);
+        clickElement(TokenManageLocator.CLICK_TOKEN_MANAGE);
+        Thread.sleep(1000);
+
+        // click  create token button
+        clickButton(TokenManageLocator.CLICK_CREATE_TOKEN);
+        Thread.sleep(1000);
+
+        //selectDate(TokenManageLocator.js, TokenManageLocator.CLICK_TIME, TokenManageData.DATE);
+
+        clickButton(TokenManageLocator.SELECT_USER);
+
+        clickButton(TokenManageLocator.CLICK_GENERATE_TOKEN_BUTTON);
+        Thread.sleep(2500);
+
+        // click  button
+        clickButton(TokenManageLocator.CLICK_SUBMIT_BUTTON);
+
+        // Whether to enter the specified page after submit
+        return ifTitleContains(TokenManageData.TOKEN_MANAGE);
+    }
+
+
+    //edit token
+    public boolean editToken() throws InterruptedException {
+        // click  token manage
+        clickElement(TokenManageLocator.CLICK_TOKEN_MANAGE);
+        Thread.sleep(1000);
+
+        // click  create token button
+        clickButton(TokenManageLocator.CLICK_EDIT_BUTTON);
+        Thread.sleep(1000);
+
+        clickButton(TokenManageLocator.SELECT_USER);
+
+        clickButton(TokenManageLocator.CLICK_GENERATE_TOKEN_BUTTON);
+        Thread.sleep(2500);
+
+        // click  button
+        clickButton(TokenManageLocator.CLICK_SUBMIT_BUTTON);
+
+        // Whether to enter the specified page after submit
+        return ifTitleContains(TokenManageData.TOKEN_MANAGE);
+    }
+
+
+    //delete token
+    public boolean deleteToken() throws InterruptedException {
+        // click  token manage
+        clickElement(TokenManageLocator.CLICK_TOKEN_MANAGE);
+        Thread.sleep(1000);
+
+        clickButton(TokenManageLocator.CLICK_DELETE_BUTTON);
+        clickButton(TokenManageLocator.CLICK_CONFIRM_DELETE_BUTTON);
+
+        return ifTitleContains(TokenManageData.TOKEN_MANAGE);
+    }
+
+}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/testcase/testDeleteData/TestDeleteToken.java b/e2e/src/test/java/org/apache/dolphinscheduler/testcase/testDeleteData/TestDeleteToken.java
new file mode 100644
index 0000000..d524f00
--- /dev/null
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/testcase/testDeleteData/TestDeleteToken.java
@@ -0,0 +1,42 @@
+/*
+ * 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.testDeleteData;
+
+import org.apache.dolphinscheduler.base.BaseTest;
+import org.apache.dolphinscheduler.page.security.TenantManagePage;
+import org.apache.dolphinscheduler.page.security.TokenManagePage;
+import org.testng.annotations.Test;
+
+public class TestDeleteToken extends BaseTest {
+    private TokenManagePage tokenManagePage;
+    private TenantManagePage tenantManagePage;
+
+
+    @Test(groups = {"functionTests"}, dependsOnGroups = {"login", "token"}, description = "TestDeleteToken")
+    public void testUserManage() throws InterruptedException {
+        tenantManagePage = new TenantManagePage(driver);
+        System.out.println("jump to security to delete token");
+        tenantManagePage.jumpSecurity();
+
+        tokenManagePage = new TokenManagePage(driver);
+        //delete token
+        System.out.println("start delete token");
+        assert tokenManagePage.deleteToken();
+        System.out.println("end delete token");
+        System.out.println("===================================");
+    }
+}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/testcase/testSecurity/TestQueueManage.java b/e2e/src/test/java/org/apache/dolphinscheduler/testcase/testSecurity/TestQueueManage.java
new file mode 100644
index 0000000..3e33bb9
--- /dev/null
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/testcase/testSecurity/TestQueueManage.java
@@ -0,0 +1,42 @@
+/*
+ * 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.testSecurity;
+
+import org.apache.dolphinscheduler.base.BaseTest;
+import org.apache.dolphinscheduler.page.security.QueueManagePage;
+import org.testng.annotations.Test;
+
+
+public class TestQueueManage extends BaseTest {
+    private QueueManagePage queueManagePage;
+
+    @Test(groups={"functionTests","queue"},dependsOnGroups = { "login" },description = "TestQueueManage")
+    public void testTenantManage() throws InterruptedException {
+        queueManagePage = new QueueManagePage(driver);
+        //create queue
+        System.out.println("start create queue");
+        assert queueManagePage.createQueue();
+        System.out.println("end create queue");
+        System.out.println("===================================");
+
+        //edit queue
+        System.out.println("start edit queue");
+        assert queueManagePage.editQueue();
+        System.out.println("end edit queue");
+        System.out.println("===================================");
+    }
+}
diff --git a/e2e/src/test/java/org/apache/dolphinscheduler/testcase/testSecurity/TestTokenManage.java b/e2e/src/test/java/org/apache/dolphinscheduler/testcase/testSecurity/TestTokenManage.java
new file mode 100644
index 0000000..e46cf0d
--- /dev/null
+++ b/e2e/src/test/java/org/apache/dolphinscheduler/testcase/testSecurity/TestTokenManage.java
@@ -0,0 +1,43 @@
+/*
+ * 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.testSecurity;
+
+import org.apache.dolphinscheduler.base.BaseTest;
+import org.apache.dolphinscheduler.page.security.TokenManagePage;
+import org.testng.annotations.Test;
+
+public class TestTokenManage extends BaseTest {
+    private TokenManagePage tokenManagePage;
+
+    @Test(groups={"functionTests","token"},dependsOnGroups = { "login" },description = "TestTokenManage")
+    public void testUserManage() throws InterruptedException {
+        tokenManagePage = new TokenManagePage(driver);
+        //generate token
+        System.out.println("start create token");
+        assert tokenManagePage.createToken();
+        System.out.println("end create token");
+        System.out.println("===================================");
+
+
+        //edit token
+        System.out.println("start edit token");
+        assert tokenManagePage.editToken();
+        System.out.println("end edit token");
+        System.out.println("===================================");
+
+    }
+}
diff --git a/e2e/testng.xml b/e2e/testng.xml
index 5bd35bd..438d547 100644
--- a/e2e/testng.xml
+++ b/e2e/testng.xml
@@ -28,6 +28,8 @@
             <class name="org.apache.dolphinscheduler.testcase.testSecurity.TestTenantManage"></class>
             <class name="org.apache.dolphinscheduler.testcase.testSecurity.TestUserManage"></class>
             <class name="org.apache.dolphinscheduler.testcase.testSecurity.TestAlertManage"></class>
+            <class name="org.apache.dolphinscheduler.testcase.testSecurity.TestQueueManage"></class>
+            <class name="org.apache.dolphinscheduler.testcase.testSecurity.TestTokenManage"></class>
 
             <class name="org.apache.dolphinscheduler.testcase.testProject.TestCreateProject"></class>
             <class name="org.apache.dolphinscheduler.testcase.testProject.TestCreateWorkflow"></class>
@@ -35,6 +37,7 @@
             <class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteWorkflow"></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.TestDeleteToken"></class>
             <class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteUser"></class>
             <class name="org.apache.dolphinscheduler.testcase.testDeleteData.TestDeleteTenant"></class>
         </classes>