diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ServiceTestController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ServiceTestController.java
index bf0497b..a39c063 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ServiceTestController.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ServiceTestController.java
@@ -29,8 +29,7 @@
 
     @RequestMapping(method = RequestMethod.POST)
     public Object test(@PathVariable String env, @RequestBody ServiceTestDTO serviceTestDTO) {
-        return genericService.invoke(serviceTestDTO.getService(), serviceTestDTO.getMethod(), serviceTestDTO.getParamaterTypes(), serviceTestDTO.getParams());
-//        return null;
+        return genericService.invoke(serviceTestDTO.getService(), serviceTestDTO.getMethod(), serviceTestDTO.getParameterTypes(), serviceTestDTO.getParams());
     }
 
     @RequestMapping(value = "/method", method = RequestMethod.GET)
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/model/dto/ServiceTestDTO.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/model/dto/ServiceTestDTO.java
index 7a398f7..14e25f4 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/model/dto/ServiceTestDTO.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/model/dto/ServiceTestDTO.java
@@ -3,7 +3,7 @@
 public class ServiceTestDTO {
     private String service;
     private String method;
-    private String[] paramaterTypes;
+    private String[] parameterTypes;
     private Object[] params;
 
     public String getService() {
@@ -22,12 +22,12 @@
         this.method = method;
     }
 
-    public String[] getParamaterTypes() {
-        return paramaterTypes;
+    public String[] getParameterTypes() {
+        return parameterTypes;
     }
 
-    public void setParamaterTypes(String[] paramaterTypes) {
-        this.paramaterTypes = paramaterTypes;
+    public void setParameterTypes(String[] parameterTypes) {
+        this.parameterTypes = parameterTypes;
     }
 
     public Object[] getParams() {
diff --git a/dubbo-admin-frontend/src/components/test/ServiceTest.vue b/dubbo-admin-frontend/src/components/test/ServiceTest.vue
index a9568ad..2d08265 100644
--- a/dubbo-admin-frontend/src/components/test/ServiceTest.vue
+++ b/dubbo-admin-frontend/src/components/test/ServiceTest.vue
@@ -110,7 +110,7 @@
         modal: {
           method: null,
           enable: false,
-          paramaterTypes: null,
+          parameterTypes: null,
           json: []
         }
       }
@@ -161,7 +161,7 @@
           method: item.name
         })
         this.modal.json = []
-        this.modal.paramaterTypes = item.parameterTypes
+        this.modal.parameterTypes = item.parameterTypes
         item.parameterTypes.forEach((i, index) => {
           this.modal.json.push(this.getType(i))
         })
@@ -175,7 +175,7 @@
         this.$axios.post('/test', {
           service: this.service.metadata.canonicalName,
           method: this.modal.method,
-          paramaterTypes: this.modal.paramaterTypes,
+          parameterTypes: this.modal.parameterTypes,
           params: this.modal.json
         }).then(response => {
           console.log(response)
