diff --git a/dubbo-samples-configcenter/dubbo-samples-configcenter-apollo/case-configuration.yml b/dubbo-samples-configcenter/dubbo-samples-configcenter-apollo/case-configuration.yml
index d715f8e..c5ceaa2 100644
--- a/dubbo-samples-configcenter/dubbo-samples-configcenter-apollo/case-configuration.yml
+++ b/dubbo-samples-configcenter/dubbo-samples-configcenter-apollo/case-configuration.yml
@@ -14,45 +14,36 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from: app-builtin-zookeeper.yml
 timeout: 120
 
-props:
-  project_name: dubbo-samples-configcenter-apollo
-  main_class: org.apache.dubbo.samples.configcenter.ApolloProvider
-  zookeeper_port: 2181
-  dubbo_port: 20880
-  apollo_address: apollo-quick-start
-  apollo_port: 8080
-
 services:
-  ${project_name}:
+  dubbo-samples-configcenter-apollo:
     type: app
     basedir: .
-    mainClass: ${main_class}
+    mainClass: org.apache.dubbo.samples.configcenter.ApolloProvider
     systemProps:
-      - apollo.address=${apollo_address}
-      - apollo.port=${apollo_port}
+      - apollo.address=apollo-quick-start
+      - apollo.port=8080
     waitPortsBeforeRun:
-      - ${apollo_address}:${apollo_port}
+      - apollo-quick-start:8080
     checkTimeout: 100
 
-  ${project_name}-test:
+  dubbo-samples-configcenter-apollo-test:
     type: test
     basedir: .
     tests:
       - "**/*IT.class"
     systemProps:
-      - zookeeper.address=${project_name}
-      - zookeeper.port=${zookeeper_port}
-      - dubbo.address=${project_name}
-      - dubbo.port=${dubbo_port}
+      - zookeeper.address=dubbo-samples-configcenter-apollo
+      - zookeeper.port=2181
+      - dubbo.address=dubbo-samples-configcenter-apollo
+      - dubbo.port=20880
     waitPortsBeforeRun:
-      - ${project_name}:${zookeeper_port}
-      - ${project_name}:${dubbo_port}
+      - dubbo-samples-configcenter-apollo:2181
+      - dubbo-samples-configcenter-apollo:20880
     checkTimeout: 100
     depends_on:
-      - ${project_name}
+      - dubbo-samples-configcenter-apollo
   
   apollo-quick-start:
     image: nobodyiam/apollo-quick-start
@@ -72,7 +63,7 @@
 #    ports:
 #      - "13306:3306"
     volumes:
-      - ./classes/docker/sql:/docker-entrypoint-initdb.d
+      - ${_basedir}/src/main/resources/docker/sql:/docker-entrypoint-initdb.d
 #      - ./sql_data:/var/lib/mysql
 #    volumes_from:
 #      - apollo-dbdata
diff --git a/dubbo-samples-rest/pom.xml b/dubbo-samples-rest/pom.xml
index d80004d..85a7429 100644
--- a/dubbo-samples-rest/pom.xml
+++ b/dubbo-samples-rest/pom.xml
@@ -184,6 +184,13 @@
         <dependency>
             <groupId>io.swagger</groupId>
             <artifactId>swagger-jaxrs</artifactId>
+            <exclusions>
+                <!-- fix javax.ws.rs conflicts, exclude jsr311-api, use jboss-jaxrs-api_2.0 -->
+                <exclusion>
+                    <artifactId>jsr311-api</artifactId>
+                    <groupId>javax.ws.rs</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>
diff --git a/dubbo-samples-transaction/case-configuration.yml b/dubbo-samples-transaction/case-configuration.yml
new file mode 100644
index 0000000..dc18ef8
--- /dev/null
+++ b/dubbo-samples-transaction/case-configuration.yml
@@ -0,0 +1,104 @@
+# 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.
+
+# global system props for all service
+systemProps:
+  - mysql.address=seata-mysql
+  - mysql.port=3306
+
+services:
+  zookeeper:
+    image: zookeeper:latest
+    expose:
+      - 2181
+
+  seata-mysql:
+    image: mysql:5.7
+    environment:
+      - MYSQL_DATABASE=seata-demo
+      - MYSQL_ROOT_PASSWORD=helloworld
+    expose:
+      - 3306
+    volumes:
+      - ${_basedir}/src/main/resources/docker/mysql/sql:/docker-entrypoint-initdb.d
+
+  seata-server:
+    #build: ${_basedir}/src/main/resources/docker/seata
+    #removeOnExit: true
+    image: seataio/seata-server:latest
+    volumes:
+      - ${_basedir}/src/main/resources/docker/seata/conf:/root/seata-config
+    expose:
+      - 8091
+    depends_on:
+      - seata-mysql
+
+  storage-service:
+    type: app
+    basedir: .
+    mainClass: org.apache.dubbo.samples.starter.DubboStorageServiceStarter
+    systemProps:
+      - zookeeper.address=zookeeper
+      - zookeeper.port=2181
+    waitPortsBeforeRun:
+      - zookeeper:2181
+    expose:
+      - 20882
+    depends_on:
+      - seata-mysql
+
+  account-service:
+    type: app
+    basedir: .
+    mainClass: org.apache.dubbo.samples.starter.DubboAccountServiceStarter
+    systemProps:
+      - zookeeper.address=zookeeper
+      - zookeeper.port=2181
+    waitPortsBeforeRun:
+      - zookeeper:2181
+    expose:
+      - 20881
+    depends_on:
+      - seata-mysql
+
+  order-service:
+    type: app
+    basedir: .
+    mainClass: org.apache.dubbo.samples.starter.DubboOrderServiceStarter
+    systemProps:
+      - zookeeper.address=zookeeper
+      - zookeeper.port=2181
+    waitPortsBeforeRun:
+      - zookeeper:2181
+    expose:
+      - 20883
+    depends_on:
+      - seata-mysql
+
+  transaction-test:
+    type: test
+    basedir: .
+    tests:
+      - "**/*IT.class"
+    systemProps:
+      - zookeeper.address=zookeeper
+      - zookeeper.port=2181
+    waitPortsBeforeRun:
+      - zookeeper:2181
+      - storage-service:20882
+      - account-service:20881
+      - order-service:20883
+
diff --git a/dubbo-samples-transaction/src/main/resources/jdbc.properties b/dubbo-samples-transaction/src/main/resources/jdbc.properties
index 3b13f61..03d2dda 100644
--- a/dubbo-samples-transaction/src/main/resources/jdbc.properties
+++ b/dubbo-samples-transaction/src/main/resources/jdbc.properties
@@ -13,17 +13,17 @@
 #  See the License for the specific language governing permissions and
 #  limitations under the License.
 #
-jdbc.account.url=jdbc:mysql://localhost:3306/seata-demo
+jdbc.account.url=jdbc:mysql://${mysql.address:127.0.0.1}:3306/seata-demo
 jdbc.account.username=root
 jdbc.account.password=helloworld
 jdbc.account.driver=com.mysql.jdbc.Driver
 # storage db config
-jdbc.storage.url=jdbc:mysql://localhost:3306/seata-demo
+jdbc.storage.url=jdbc:mysql://${mysql.address:127.0.0.1}:3306/seata-demo
 jdbc.storage.username=root
 jdbc.storage.password=helloworld
 jdbc.storage.driver=com.mysql.jdbc.Driver
 # order db config
-jdbc.order.url=jdbc:mysql://localhost:3306/seata-demo
+jdbc.order.url=jdbc:mysql://${mysql.address:127.0.0.1}:3306/seata-demo
 jdbc.order.username=root
 jdbc.order.password=helloworld
 jdbc.order.driver=com.mysql.jdbc.Driver
diff --git a/dubbo-samples-transaction/src/main/resources/spring/dubbo-account-service.xml b/dubbo-samples-transaction/src/main/resources/spring/dubbo-account-service.xml
index 12de164..96bfa98 100644
--- a/dubbo-samples-transaction/src/main/resources/spring/dubbo-account-service.xml
+++ b/dubbo-samples-transaction/src/main/resources/spring/dubbo-account-service.xml
@@ -56,7 +56,7 @@
     </bean>
 
     <dubbo:application name="dubbo-demo-account-service"/>
-    <dubbo:registry address="zookeeper://localhost:2181" />
+    <dubbo:registry address="zookeeper://${zookeeper.address:127.0.0.1}:2181" />
     <dubbo:protocol name="dubbo" port="20881"/>
     <dubbo:service interface="org.apache.dubbo.samples.service.AccountService" ref="service" timeout="10000"/>
 
diff --git a/dubbo-samples-transaction/src/main/resources/spring/dubbo-order-service.xml b/dubbo-samples-transaction/src/main/resources/spring/dubbo-order-service.xml
index 15eb3c4..100e018 100644
--- a/dubbo-samples-transaction/src/main/resources/spring/dubbo-order-service.xml
+++ b/dubbo-samples-transaction/src/main/resources/spring/dubbo-order-service.xml
@@ -56,7 +56,7 @@
     </bean>
 
     <dubbo:application name="dubbo-demo-order-service"/>
-    <dubbo:registry address="zookeeper://localhost:2181" />
+    <dubbo:registry address="zookeeper://${zookeeper.address:127.0.0.1}:2181" />
     <dubbo:protocol name="dubbo" port="20883"/>
     <dubbo:service interface="org.apache.dubbo.samples.service.OrderService" ref="service" timeout="10000"/>
 
diff --git a/dubbo-samples-transaction/src/main/resources/spring/dubbo-storage-service.xml b/dubbo-samples-transaction/src/main/resources/spring/dubbo-storage-service.xml
index e450e4c..56c739c 100644
--- a/dubbo-samples-transaction/src/main/resources/spring/dubbo-storage-service.xml
+++ b/dubbo-samples-transaction/src/main/resources/spring/dubbo-storage-service.xml
@@ -56,7 +56,7 @@
     </bean>
 
     <dubbo:application name="dubbo-demo-storage-service"/>
-    <dubbo:registry address="zookeeper://localhost:2181"/>
+    <dubbo:registry address="zookeeper://${zookeeper.address:127.0.0.1}:2181"/>
     <dubbo:protocol name="dubbo" port="20882"/>
     <dubbo:service interface="org.apache.dubbo.samples.service.StorageService" ref="service" timeout="10000"/>
 
diff --git a/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/AbstractRunningGenerator.java b/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/AbstractRunningGenerator.java
index 4ed7101..453dedc 100644
--- a/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/AbstractRunningGenerator.java
+++ b/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/AbstractRunningGenerator.java
@@ -51,7 +51,6 @@
         generateAdditionFiles(configuration);
 
         final Map<String, Object> root = configuration.toMap();
-        root.put("running_script", runningScript(configuration));
 
         String scriptPath = configuration.outputDir() + File.separator + "scenario.sh";
         try (FileWriter writer = new FileWriter(new File(scriptPath))) {
@@ -64,5 +63,4 @@
 
     public abstract void generateAdditionFiles(IConfiguration configuration) throws GenerateFailedException;
 
-    public abstract String runningScript(IConfiguration configuration);
 }
diff --git a/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/ConfigurationImpl.java b/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/ConfigurationImpl.java
index 34533a9..d444e3c 100644
--- a/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/ConfigurationImpl.java
+++ b/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/ConfigurationImpl.java
@@ -47,6 +47,8 @@
     public static final String SAMPLE_TEST_IMAGE = "dubbo/sample-test";
     public static final String DUBBO_APP_DIR = "/usr/local/dubbo/app";
     public static final String DUBBO_LOG_DIR = "/usr/local/dubbo/logs";
+
+    //ENV
     public static final String ENV_SERVICE_NAME = "SERVICE_NAME";
     public static final String ENV_SERVICE_TYPE = "SERVICE_TYPE";
     public static final String ENV_APP_MAIN_CLASS = "APP_MAIN_CLASS";
@@ -59,6 +61,11 @@
     public static final String ENV_DEBUG_OPTS = "DEBUG_OPTS";
     public static final String ENV_SCENARIO_HOME = "SCENARIO_HOME";
 
+    //PROPS
+    public static final String PROP_BASEDIR = "_basedir";
+    public static final String PROP_SCENARIO_HOME = "_scenario_home";
+    public static final String PROP_SCENARIO_NAME = "_scenario_name";
+
     private static final Logger logger = LoggerFactory.getLogger(ConfigurationImpl.class);
     private final CaseConfiguration configuration;
     private String scenarioHome;
@@ -134,6 +141,10 @@
         String configYaml = readFully(configureFile);
         CaseConfiguration tmpConfiguration = parseConfiguration(configYaml);
         Map<String, String> props = tmpConfiguration.getProps();
+        if (props == null) {
+            props = new HashMap<>();
+        }
+        configProps(props);
 
         // process 'from', load parent config
         CaseConfiguration parentConfiguration = null;
@@ -142,9 +153,11 @@
             CaseConfiguration tmpParentConfiguration = parseConfiguration(parentConfigYaml);
 
             //merge props, overwrite parent props
-            Map<String, String> newProps = new HashMap<>(tmpParentConfiguration.getProps());
-            newProps.putAll(props);
-            props = newProps;
+            if (tmpParentConfiguration.getProps() != null) {
+                Map<String, String> newProps = new HashMap<>(tmpParentConfiguration.getProps());
+                newProps.putAll(props);
+                props = newProps;
+            }
 
             // replace variables '${...}'
             String newParentConfigYaml = replaceHolders(parentConfigYaml, props);
@@ -174,6 +187,12 @@
         return caseConfiguration;
     }
 
+    private void configProps(Map<String, String> props) {
+        props.put(PROP_BASEDIR, configBasedir);
+        props.put(PROP_SCENARIO_HOME, scenarioHome);
+        props.put(PROP_SCENARIO_NAME, scenarioName);
+    }
+
     private List<String> mergeSystemProps(List<String> parentSystemProps, List<String> childSystemProps) {
         List<String> newSystemProps = new ArrayList<>(parentSystemProps != null ? parentSystemProps : Collections.emptyList());
         if (childSystemProps != null) {
@@ -556,6 +575,7 @@
             String imageName = dependency.getImage();
             service.setName(name);
             service.setImageName(imageName);
+            service.setBuild(dependency.getBuild());
             service.setHostname(dependency.getHostname());
             service.setExpose(dependency.getExpose());
             service.setPorts(dependency.getPorts());
diff --git a/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/DockerComposeRunningGenerator.java b/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/DockerComposeRunningGenerator.java
index b7e17a5..fabdc8f 100644
--- a/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/DockerComposeRunningGenerator.java
+++ b/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/DockerComposeRunningGenerator.java
@@ -58,18 +58,4 @@
             LOGGER.error("", e);
         }
     }
-
-    @Override
-    public String runningScript(IConfiguration configuration) {
-        final Map<String, Object> root = configuration.toMap();
-
-        StringWriter out = new StringWriter();
-
-        try {
-            cfg.getTemplate("compose-start-script.template").process(root, out);
-        } catch (Exception e) {
-            LOGGER.error("Failed to generate running script.", e);
-        }
-        return out.toString();
-    }
 }
diff --git a/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/vo/DockerService.java b/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/vo/DockerService.java
index 124976d..0af47b7 100644
--- a/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/vo/DockerService.java
+++ b/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/vo/DockerService.java
@@ -22,6 +22,8 @@
 public class DockerService {
     private String name;
     private String imageName;
+    // docker-compose build dir
+    private String build;
     private String hostname;
     private boolean removeOnExit;
     private List<String> links;
@@ -49,6 +51,14 @@
         this.imageName = imageName;
     }
 
+    public String getBuild() {
+        return build;
+    }
+
+    public void setBuild(String build) {
+        this.build = build;
+    }
+
     public String getHostname() {
         return hostname;
     }
@@ -134,6 +144,7 @@
         return "DockerService{" +
                 "name='" + name + '\'' +
                 ", imageName='" + imageName + '\'' +
+                ", build='" + build + '\'' +
                 ", hostname='" + hostname + '\'' +
                 ", removeOnExit=" + removeOnExit +
                 ", links=" + links +
diff --git a/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/vo/ServiceComponent.java b/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/vo/ServiceComponent.java
index 8490618..e4b2c42 100644
--- a/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/vo/ServiceComponent.java
+++ b/test/dubbo-scenario-builder/src/main/java/org/apache/dubbo/scenario/builder/vo/ServiceComponent.java
@@ -22,6 +22,8 @@
 
 public class ServiceComponent {
     private String image;
+    // docker-compose build dir
+    private String build;
     private String hostname;
     private String version;
     private boolean removeOnExit = false;
@@ -231,10 +233,19 @@
         this.ports = ports;
     }
 
+    public String getBuild() {
+        return build;
+    }
+
+    public void setBuild(String build) {
+        this.build = build;
+    }
+
     @Override
     public String toString() {
         return "ServiceComponent{" +
                 "image='" + image + '\'' +
+                ", build='" + build + '\'' +
                 ", hostname='" + hostname + '\'' +
                 ", version='" + version + '\'' +
                 ", removeOnExit=" + removeOnExit +
diff --git a/test/dubbo-scenario-builder/src/main/resources/compose-start-script.template b/test/dubbo-scenario-builder/src/main/resources/compose-start-script.template
deleted file mode 100644
index 6c438b5..0000000
--- a/test/dubbo-scenario-builder/src/main/resources/compose-start-script.template
+++ /dev/null
@@ -1,18 +0,0 @@
-<#--
-  ~ 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.
--->
-
-
diff --git a/test/dubbo-scenario-builder/src/main/resources/docker-compose.template b/test/dubbo-scenario-builder/src/main/resources/docker-compose.template
index 1211966..bdba61f 100644
--- a/test/dubbo-scenario-builder/src/main/resources/docker-compose.template
+++ b/test/dubbo-scenario-builder/src/main/resources/docker-compose.template
@@ -23,8 +23,13 @@
 services:
 <#list services as service>
     ${service.name}:
+        <#if service.imageName?has_content>
         image: ${service.imageName}
+        </#if>
         hostname: ${service.hostname}
+        <#if service.build?has_content>
+        build: ${service.build}
+        </#if>
         <#if service.volumes??>
         volumes:
         <#list service.volumes as volume>
diff --git a/test/dubbo-scenario-builder/src/main/resources/scenario.sh b/test/dubbo-scenario-builder/src/main/resources/scenario.sh
index 0376a69..757e89d 100644
--- a/test/dubbo-scenario-builder/src/main/resources/scenario.sh
+++ b/test/dubbo-scenario-builder/src/main/resources/scenario.sh
@@ -107,7 +107,7 @@
 
 # complete pull fail interactive by <<< "NN"
 echo "[$scenario_name] Starting containers .." | tee -a $scenario_log
-docker-compose -p ${project_name} -f ${compose_file} up -d --no-build 2>&1 <<< "NN" | tee -a $scenario_log > /dev/null
+docker-compose -p ${project_name} -f ${compose_file} up -d 2>&1 <<< "NNN" | tee -a $scenario_log > /dev/null
 
 sleep 2
 redirect_container_logs
diff --git a/test/kill-tests.sh b/test/kill-tests.sh
index 3736033..8dbd904 100755
--- a/test/kill-tests.sh
+++ b/test/kill-tests.sh
@@ -11,6 +11,9 @@
 echo "Killing docker logs procs .."
 ps -ef | grep "docker logs" | grep -v grep  | awk '{ print $2 }' | xargs -I {} kill {}
 
+echo "Killing docker-compose .."
+ps -ef | grep "docker-compose" | grep "dubbo-samples" | grep -v grep  | awk '{ print $2 }' | xargs -I {} kill {}
+
 echo "Killing dubbo containers .."
 docker ps -a | grep dubbo | awk '{ print $1}' | xargs -I {} docker kill {}
 
diff --git a/test/quick-start_cn.md b/test/quick-start_cn.md
index f5e82a4..00165db 100644
--- a/test/quick-start_cn.md
+++ b/test/quick-start_cn.md
@@ -101,7 +101,7 @@
 
 `from: app-builtin-zookeeper.yml` : 指定使用`app-builtin-zookeeper.yml`模板，解析时自动将模板的内容合并到当前配置文件。
 
-`props` : 配置文件内部的变量，自动替换模板中的变量占位符。
+`props` : 配置文件内部的变量，自动替换模板中的变量占位符。如要使用全局变量请参考"全局变量"小节。
 
 `project_name` : 工程名称变量，同时也是dubbo provider 服务名。
 
@@ -241,6 +241,18 @@
       - dubbo-samples-chain-middle:20881
 ```
 
+#### 全局变量
+
+`case-configuration.yml`支持的全局变量如下，可以直接使用：
+
+| 名称 | 描述 | 例子 |
+| ---- | --- | --- |
+| `_basedir` | `case-configuration.yml` 配置文件所在的目录 | 用于指定容器挂载的配置文件路径，如挂载mysql的初始化sql脚本目录：${_basedir}/src/main/resources/docker/sql:/docker-entrypoint-initdb.d |
+| `_scenario_home`| scenario home，默认位于${_basedir}/target | |
+| `_scenario_name`| scenario name，默认为${_basedir}的目录名（basename） | |
+
+**注意**：volumes挂载的相对目录是scenario home(即${_basedir}/target)，不方便访问工程源码目录。
+如果要挂载工程源码的目录，推荐使用${_basedir}/src/main/resources/xxx的形式，提高可读性.
 
 #### 转换测试案例
 
