diff --git a/pom.xml b/pom.xml
index 8fad05e..aff5239 100644
--- a/pom.xml
+++ b/pom.xml
@@ -211,8 +211,7 @@
                     <artifactId>maven-surefire-plugin</artifactId>
                     <configuration>
                          <suiteXmlFiles>
-                            <suiteXmlFile>src/main/resources/testng.xml</suiteXmlFile>
-                           
+                            <suiteXmlFile>src/main/resources/testng.xml</suiteXmlFile>                          
                         </suiteXmlFiles>
                     </configuration>
                 </plugin>
diff --git a/src/main/resources/testng.xml b/src/main/resources/testng.xml
index 96c6017..68fa8e2 100644
--- a/src/main/resources/testng.xml
+++ b/src/main/resources/testng.xml
@@ -16,9 +16,12 @@
       <class name="com.mjitech.qa.test.UploadImageList" />
     </classes>
   </test>
+  
   <test name="WeiXin Interface">
-  	<class name="com.mjitech.qa.test.GetPagedMainpageData"></class>
-  </test>
+  	<classes>
+  		<class name="com.mjitech.qa.test.GetPagedMainpageData"></class>
+  	</classes>
+  </test> 
   <listeners>
   	<listener class-name="org.uncommons.reportng.HTMLReporter" />
   	<listener class-name="org.uncommons.reportng.JUnitXMLReporter" />
diff --git a/test-output/Suite/Flat Interface.html b/test-output/Suite/Flat Interface.html
index fabf3ed..ce4946c 100644
--- a/test-output/Suite/Flat Interface.html
+++ b/test-output/Suite/Flat Interface.html
@@ -57,9 +57,9 @@ function toggleAllBoxes() {
 <tr>
 <td>Tests passed/Failed/Skipped:</td><td>4/0/0</td>
 </tr><tr>
-<td>Started on:</td><td>Thu Aug 09 13:57:36 CST 2018</td>
+<td>Started on:</td><td>Fri Sep 28 19:57:23 CST 2018</td>
 </tr>
-<tr><td>Total time:</td><td>0 seconds (363 ms)</td>
+<tr><td>Total time:</td><td>0 seconds (189 ms)</td>
 </tr><tr>
 <td>Included groups:</td><td></td>
 </tr><tr>
@@ -75,6 +75,11 @@ function toggleAllBoxes() {
 <td><b>Instance</b></td>
 </tr>
 <tr>
+<td title='com.mjitech.qa.test.UploadImageList.fault()'><b>fault</b><br>Test class: com.mjitech.qa.test.UploadImageList</td>
+<td></td>
+<td>0</td>
+<td>com.mjitech.qa.test.UploadImageList@101df177</td></tr>
+<tr>
 <td title='com.mjitech.qa.test.GetMachineData.getMachineData()'><b>getMachineData</b><br>Test class: com.mjitech.qa.test.GetMachineData</td>
 <td></td>
 <td>0</td>
@@ -89,11 +94,6 @@ function toggleAllBoxes() {
 <td></td>
 <td>0</td>
 <td>com.mjitech.qa.test.UpdateDoorClose@2f490758</td></tr>
-<tr>
-<td title='com.mjitech.qa.test.UploadImageList.upload_image_list()'><b>upload_image_list</b><br>Test class: com.mjitech.qa.test.UploadImageList</td>
-<td></td>
-<td>0</td>
-<td>com.mjitech.qa.test.UploadImageList@101df177</td></tr>
 </table><p>
 </body>
 </html>
\ No newline at end of file
diff --git a/test-output/Suite/Flat Interface.xml b/test-output/Suite/Flat Interface.xml
index 2bea51f..1390e9e 100644
--- a/test-output/Suite/Flat Interface.xml
+++ b/test-output/Suite/Flat Interface.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated by org.testng.reporters.JUnitXMLReporter -->
-<testsuite hostname="YLMF-1711181457" name="Flat Interface" tests="4" failures="0" timestamp="9 Aug 2018 05:57:36 GMT" time="0.363" errors="0">
-  <testcase name="getMachineData" time="0.087" classname="com.mjitech.qa.test.GetMachineData"/>
-  <testcase name="list_fault" time="0.038" classname="com.mjitech.qa.test.ListFault"/>
-  <testcase name="update_close_door" time="0.026" classname="com.mjitech.qa.test.UpdateDoorClose"/>
-  <testcase name="upload_image_list" time="0.205" classname="com.mjitech.qa.test.UploadImageList"/>
+<testsuite hostname="YLMF-1711181457" name="Flat Interface" tests="4" failures="0" timestamp="28 Sep 2018 11:57:23 GMT" time="0.189" errors="0">
+  <testcase name="getMachineData" time="0.069" classname="com.mjitech.qa.test.GetMachineData"/>
+  <testcase name="list_fault" time="0.039" classname="com.mjitech.qa.test.ListFault"/>
+  <testcase name="update_close_door" time="0.031" classname="com.mjitech.qa.test.UpdateDoorClose"/>
+  <testcase name="fault" time="0.04" classname="com.mjitech.qa.test.UploadImageList"/>
 </testsuite> <!-- Flat Interface -->
diff --git a/test-output/Suite/WeiXin Interface.html b/test-output/Suite/WeiXin Interface.html
new file mode 100644
index 0000000..0044356
--- /dev/null
+++ b/test-output/Suite/WeiXin Interface.html
@@ -0,0 +1,131 @@
+<html>
+<head>
+<title>TestNG:  WeiXin Interface</title>
+<link href="../testng.css" rel="stylesheet" type="text/css" />
+<link href="../my-testng.css" rel="stylesheet" type="text/css" />
+
+<style type="text/css">
+.log { display: none;} 
+.stack-trace { display: none;} 
+</style>
+<script type="text/javascript">
+<!--
+function flip(e) {
+  current = e.style.display;
+  if (current == 'block') {
+    e.style.display = 'none';
+    return 0;
+  }
+  else {
+    e.style.display = 'block';
+    return 1;
+  }
+}
+
+function toggleBox(szDivId, elem, msg1, msg2)
+{
+  var res = -1;  if (document.getElementById) {
+    res = flip(document.getElementById(szDivId));
+  }
+  else if (document.all) {
+    // this is the way old msie versions work
+    res = flip(document.all[szDivId]);
+  }
+  if(elem) {
+    if(res == 0) elem.innerHTML = msg1; else elem.innerHTML = msg2;
+  }
+
+}
+
+function toggleAllBoxes() {
+  if (document.getElementsByTagName) {
+    d = document.getElementsByTagName('div');
+    for (i = 0; i < d.length; i++) {
+      if (d[i].className == 'log') {
+        flip(d[i]);
+      }
+    }
+  }
+}
+
+// -->
+</script>
+
+</head>
+<body>
+<h2 align='center'>WeiXin Interface</h2><table border='1' align="center">
+<tr>
+<td>Tests passed/Failed/Skipped:</td><td>1/1/0</td>
+</tr><tr>
+<td>Started on:</td><td>Fri Sep 28 19:57:23 CST 2018</td>
+</tr>
+<tr><td>Total time:</td><td>0 seconds (654 ms)</td>
+</tr><tr>
+<td>Included groups:</td><td></td>
+</tr><tr>
+<td>Excluded groups:</td><td></td>
+</tr>
+</table><p/>
+<small><i>(Hover the method name to see the test class name)</i></small><p/>
+<table width='100%' border='1' class='invocation-failed'>
+<tr><td colspan='4' align='center'><b>FAILED TESTS</b></td></tr>
+<tr><td><b>Test method</b></td>
+<td width="30%"><b>Exception</b></td>
+<td width="10%"><b>Time (seconds)</b></td>
+<td><b>Instance</b></td>
+</tr>
+<tr>
+<td title='com.mjitech.qa.test.GetPagedMainpageData.get_paged_mainpage_data()'><b>get_paged_mainpage_data</b><br>Test class: com.mjitech.qa.test.GetPagedMainpageData</td>
+<td><div><pre>java.lang.AssertionError: expected [true] but found [false]
+	at com.mjitech.qa.test.GetPagedMainpageData.get_paged_mainpage_data(GetPagedMainpageData.java:61)
+... Removed 29 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace1026871825", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace1026871825'><pre>java.lang.AssertionError: expected [true] but found [false]
+	at org.testng.Assert.fail(Assert.java:94)
+	at org.testng.Assert.failNotEquals(Assert.java:494)
+	at org.testng.Assert.assertEquals(Assert.java:123)
+	at org.testng.Assert.assertEquals(Assert.java:286)
+	at org.testng.Assert.assertEquals(Assert.java:296)
+	at com.mjitech.qa.test.GetPagedMainpageData.get_paged_mainpage_data(GetPagedMainpageData.java:61)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
+	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
+	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
+	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
+	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
+	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
+	at org.testng.TestRunner.privateRun(TestRunner.java:767)
+	at org.testng.TestRunner.run(TestRunner.java:617)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:240)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
+	at org.testng.TestNG.run(TestNG.java:1057)
+	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
+	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)
+	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)
+</pre></div></td>
+<td>0</td>
+<td>com.mjitech.qa.test.GetPagedMainpageData@32464a14</td></tr>
+</table><p>
+<table width='100%' border='1' class='invocation-passed'>
+<tr><td colspan='4' align='center'><b>PASSED TESTS</b></td></tr>
+<tr><td><b>Test method</b></td>
+<td width="30%"><b>Exception</b></td>
+<td width="10%"><b>Time (seconds)</b></td>
+<td><b>Instance</b></td>
+</tr>
+<tr>
+<td title='com.mjitech.qa.test.GetPagedMainpageData.test_login_with_openid()'><b>test_login_with_openid</b><br>Test class: com.mjitech.qa.test.GetPagedMainpageData</td>
+<td></td>
+<td>0</td>
+<td>com.mjitech.qa.test.GetPagedMainpageData@32464a14</td></tr>
+</table><p>
+</body>
+</html>
\ No newline at end of file
diff --git a/test-output/Suite/WeiXin Interface.xml b/test-output/Suite/WeiXin Interface.xml
new file mode 100644
index 0000000..0fcf0e6
--- /dev/null
+++ b/test-output/Suite/WeiXin Interface.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated by org.testng.reporters.JUnitXMLReporter -->
+<testsuite hostname="YLMF-1711181457" name="WeiXin Interface" tests="2" failures="1" timestamp="28 Sep 2018 11:57:24 GMT" time="0.654" errors="0">
+  <testcase name="test_login_with_openid" time="0.14" classname="com.mjitech.qa.test.GetPagedMainpageData"/>
+  <testcase name="get_paged_mainpage_data" time="0.508" classname="com.mjitech.qa.test.GetPagedMainpageData">
+    <failure type="java.lang.AssertionError" message="expected [true] but found [false]">
+      <![CDATA[java.lang.AssertionError: expected [true] but found [false]
+	at com.mjitech.qa.test.GetPagedMainpageData.get_paged_mainpage_data(GetPagedMainpageData.java:61)
+... Removed 29 stack frames]]>
+    </failure>
+  </testcase> <!-- get_paged_mainpage_data -->
+</testsuite> <!-- WeiXin Interface -->
diff --git a/test-output/Suite/mobile-micoo prgoram-login.html b/test-output/Suite/mobile-micoo prgoram-login.html
index b4b75e2..4e353a7 100644
--- a/test-output/Suite/mobile-micoo prgoram-login.html
+++ b/test-output/Suite/mobile-micoo prgoram-login.html
@@ -57,9 +57,9 @@ function toggleAllBoxes() {
 <tr>
 <td>Tests passed/Failed/Skipped:</td><td>5/1/0</td>
 </tr><tr>
-<td>Started on:</td><td>Thu Aug 09 13:57:36 CST 2018</td>
+<td>Started on:</td><td>Fri Sep 28 19:57:22 CST 2018</td>
 </tr>
-<tr><td>Total time:</td><td>0 seconds (588 ms)</td>
+<tr><td>Total time:</td><td>0 seconds (872 ms)</td>
 </tr><tr>
 <td>Included groups:</td><td></td>
 </tr><tr>
@@ -111,8 +111,8 @@ function toggleAllBoxes() {
 <td title='com.mjitech.qa.test.VaildateLoginName.VaildateLoginNameByDabao()'><b>VaildateLoginNameByDabao</b><br>Test class: com.mjitech.qa.test.VaildateLoginName</td>
 <td><div><pre>org.testng.TestNGException: 
 DataProvider should be static: public java.lang.Object[][] com.mjitech.qa.data.VaildateLoginNameData.vaildateLoginName()
-... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace530653666", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
-<div class='stack-trace' id='stack-trace530653666'><pre>org.testng.TestNGException: 
+... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace2030538903", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace2030538903'><pre>org.testng.TestNGException: 
 DataProvider should be static: public java.lang.Object[][] com.mjitech.qa.data.VaildateLoginNameData.vaildateLoginName()
 	at org.testng.internal.Parameters.findDataProvider(Parameters.java:331)
 	at org.testng.internal.Parameters.findDataProvider(Parameters.java:265)
diff --git a/test-output/Suite/mobile-micoo prgoram-login.xml b/test-output/Suite/mobile-micoo prgoram-login.xml
index 16ac3e4..06f187d 100644
--- a/test-output/Suite/mobile-micoo prgoram-login.xml
+++ b/test-output/Suite/mobile-micoo prgoram-login.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated by org.testng.reporters.JUnitXMLReporter -->
-<testsuite hostname="YLMF-1711181457" name="mobile-micoo prgoram-login" tests="6" failures="0" timestamp="9 Aug 2018 05:57:36 GMT" time="0.588" errors="0">
+<testsuite hostname="YLMF-1711181457" name="mobile-micoo prgoram-login" tests="6" failures="0" timestamp="28 Sep 2018 11:57:23 GMT" time="0.872" errors="0">
   <testcase name="VaildateLoginNameByDabao" time="0.004" classname="com.mjitech.qa.test.VaildateLoginName">
     <skipped/>
   </testcase> <!-- VaildateLoginNameByDabao -->
-  <testcase name="login" time="0.44" classname="com.mjitech.qa.test.Login"/>
-  <testcase name="login" time="0.032" classname="com.mjitech.qa.test.Login"/>
-  <testcase name="login" time="0.028" classname="com.mjitech.qa.test.Login"/>
-  <testcase name="login" time="0.033" classname="com.mjitech.qa.test.Login"/>
-  <testcase name="login" time="0.029" classname="com.mjitech.qa.test.Login"/>
+  <testcase name="login" time="0.573" classname="com.mjitech.qa.test.Login"/>
+  <testcase name="login" time="0.081" classname="com.mjitech.qa.test.Login"/>
+  <testcase name="login" time="0.064" classname="com.mjitech.qa.test.Login"/>
+  <testcase name="login" time="0.07" classname="com.mjitech.qa.test.Login"/>
+  <testcase name="login" time="0.057" classname="com.mjitech.qa.test.Login"/>
 </testsuite> <!-- mobile-micoo prgoram-login -->
diff --git a/test-output/Suite/testng-failed.xml b/test-output/Suite/testng-failed.xml
index 52ce355..bfac41a 100644
--- a/test-output/Suite/testng-failed.xml
+++ b/test-output/Suite/testng-failed.xml
@@ -14,4 +14,14 @@
       </class> <!-- com.mjitech.qa.test.VaildateLoginName -->
     </classes>
   </test> <!-- mobile-micoo prgoram-login(failed) -->
+  <test name="WeiXin Interface(failed)">
+    <classes>
+      <class name="com.mjitech.qa.test.GetPagedMainpageData">
+        <methods>
+          <include name="test_login_with_openid"/>
+          <include name="get_paged_mainpage_data"/>
+        </methods>
+      </class> <!-- com.mjitech.qa.test.GetPagedMainpageData -->
+    </classes>
+  </test> <!-- WeiXin Interface(failed) -->
 </suite> <!-- Failed suite [Suite] -->
diff --git a/test-output/emailable-report.html b/test-output/emailable-report.html
index 8272803..7daefbe 100644
--- a/test-output/emailable-report.html
+++ b/test-output/emailable-report.html
@@ -1,33 +1,6 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>TestNG Report</title><style type="text/css">table {margin-bottom:10px;border-collapse:collapse;empty-cells:show}th,td {border:1px solid #009;padding:.25em .5em}th {vertical-align:bottom}td {vertical-align:top}table a {font-weight:bold}.stripe td {background-color: #E6EBF9}.num {text-align:right}.passedodd td {background-color: #3F3}.passedeven td {background-color: #0A0}.skippedodd td {background-color: #DDD}.skippedeven td {background-color: #CCC}.failedodd td,.attn {background-color: #F33}.failedeven td,.stripe .attn {background-color: #D00}.stacktrace {white-space:pre;font-family:monospace}.totop {font-size:85%;text-align:center;border-bottom:2px solid #000}</style></head><body><table><tr><th>Test</th><th># Passed</th><th># Skipped</th><th># Failed</th><th>Time (ms)</th><th>Included Groups</th><th>Excluded Groups</th></tr><tr><th colspan="7">Default suite</th></tr><tr><td><a href="#t0">Default test</a></td><td class="num">0</td><td class="num attn">1</td><td class="num attn">1</td><td class="num">647</td><td></td><td></td></tr></table><table><thead><tr><th>Class</th><th>Method</th><th>Start</th><th>Time (ms)</th></tr></thead><tbody><tr><th colspan="4">Default suite</th></tr></tbody><tbody id="t0"><tr><th colspan="4">Default test &#8212; failed</th></tr><tr class="failedeven"><td rowspan="1">com.mjitech.qa.test.GetPagedMainpageData</td><td><a href="#m0">test_login_with_openid</a></td><td rowspan="1">1538130660946</td><td rowspan="1">619</td></tr><tr><th colspan="4">Default test &#8212; skipped</th></tr><tr class="skippedeven"><td rowspan="1">com.mjitech.qa.test.GetPagedMainpageData</td><td><a href="#m1">get_paged_mainpage_data</a></td><td rowspan="1">1538130661574</td><td rowspan="1">1</td></tr></tbody></table><h2>Default test</h2><h3 id="m0">com.mjitech.qa.test.GetPagedMainpageData#test_login_with_openid</h3><table class="result"><tr><th>Exception</th></tr><tr><td><div class="stacktrace">java.lang.AssertionError: expected [true] but found [false]
-	at org.testng.Assert.fail(Assert.java:94)
-	at org.testng.Assert.failNotEquals(Assert.java:494)
-	at org.testng.Assert.assertEquals(Assert.java:123)
-	at org.testng.Assert.assertEquals(Assert.java:286)
-	at org.testng.Assert.assertEquals(Assert.java:296)
-	at com.mjitech.qa.test.GetPagedMainpageData.test_login_with_openid(GetPagedMainpageData.java:33)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:498)
-	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
-	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
-	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
-	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
-	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
-	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
-	at org.testng.TestRunner.privateRun(TestRunner.java:767)
-	at org.testng.TestRunner.run(TestRunner.java:617)
-	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
-	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
-	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
-	at org.testng.SuiteRunner.run(SuiteRunner.java:240)
-	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
-	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
-	at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
-	at org.testng.TestNG.run(TestNG.java:1057)
-	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
-	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)
-	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)
-</div></td></tr></table><p class="totop"><a href="#summary">back to summary</a></p><h3 id="m1">com.mjitech.qa.test.GetPagedMainpageData#get_paged_mainpage_data</h3><table class="result"></table><p class="totop"><a href="#summary">back to summary</a></p></body></html>
\ No newline at end of file
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>TestNG Report</title><style type="text/css">table {margin-bottom:10px;border-collapse:collapse;empty-cells:show}th,td {border:1px solid #009;padding:.25em .5em}th {vertical-align:bottom}td {vertical-align:top}table a {font-weight:bold}.stripe td {background-color: #E6EBF9}.num {text-align:right}.passedodd td {background-color: #3F3}.passedeven td {background-color: #0A0}.skippedodd td {background-color: #DDD}.skippedeven td {background-color: #CCC}.failedodd td,.attn {background-color: #F33}.failedeven td,.stripe .attn {background-color: #D00}.stacktrace {white-space:pre;font-family:monospace}.totop {font-size:85%;text-align:center;border-bottom:2px solid #000}</style></head><body><table><tr><th>Test</th><th># Passed</th><th># Skipped</th><th># Failed</th><th>Time (ms)</th><th>Included Groups</th><th>Excluded Groups</th></tr><tr><th colspan="7">Suite</th></tr><tr><td><a href="#t0">mobile-micoo prgoram-login</a></td><td class="num">5</td><td class="num">0</td><td class="num attn">1</td><td class="num">872</td><td></td><td></td></tr><tr class="stripe"><td><a href="#t1">Flat Interface</a></td><td class="num">4</td><td class="num">0</td><td class="num">0</td><td class="num">189</td><td></td><td></td></tr><tr><td><a href="#t2">WeiXin Interface</a></td><td class="num">1</td><td class="num">0</td><td class="num attn">1</td><td class="num">654</td><td></td><td></td></tr><tr><th>Total</th><th class="num">10</th><th class="num">0</th><th class="num attn">2</th><th class="num">1,715</th><th colspan="2"></th></tr></table><table><thead><tr><th>Class</th><th>Method</th><th>Start</th><th>Time (ms)</th></tr></thead><tbody><tr><th colspan="4">Suite</th></tr></tbody><tbody id="t0"><tr><th colspan="4">mobile-micoo prgoram-login &#8212; failed</th></tr><tr class="failedeven"><td rowspan="1">com.mjitech.qa.test.VaildateLoginName</td><td><a href="#m0">VaildateLoginNameByDabao</a></td><td rowspan="1">1538135842366</td><td rowspan="1">0</td></tr><tr><th colspan="4">mobile-micoo prgoram-login &#8212; passed</th></tr><tr class="passedeven"><td rowspan="5">com.mjitech.qa.test.Login</td><td><a href="#m1">login</a></td><td rowspan="5">1538135842376</td><td rowspan="5">573</td></tr><tr class="passedeven"><td><a href="#m2">login</a></td></tr><tr class="passedeven"><td><a href="#m3">login</a></td></tr><tr class="passedeven"><td><a href="#m4">login</a></td></tr><tr class="passedeven"><td><a href="#m5">login</a></td></tr></tbody><tbody id="t1"><tr><th colspan="4">Flat Interface &#8212; passed</th></tr><tr class="passedeven"><td rowspan="1">com.mjitech.qa.test.GetMachineData</td><td><a href="#m6">getMachineData</a></td><td rowspan="1">1538135843255</td><td rowspan="1">69</td></tr><tr class="passedodd"><td rowspan="1">com.mjitech.qa.test.ListFault</td><td><a href="#m7">list_fault</a></td><td rowspan="1">1538135843327</td><td rowspan="1">39</td></tr><tr class="passedeven"><td rowspan="1">com.mjitech.qa.test.UpdateDoorClose</td><td><a href="#m8">update_close_door</a></td><td rowspan="1">1538135843368</td><td rowspan="1">31</td></tr><tr class="passedodd"><td rowspan="1">com.mjitech.qa.test.UploadImageList</td><td><a href="#m9">fault</a></td><td rowspan="1">1538135843400</td><td rowspan="1">40</td></tr></tbody><tbody id="t2"><tr><th colspan="4">WeiXin Interface &#8212; failed</th></tr><tr class="failedeven"><td rowspan="1">com.mjitech.qa.test.GetPagedMainpageData</td><td><a href="#m10">get_paged_mainpage_data</a></td><td rowspan="1">1538135843593</td><td rowspan="1">508</td></tr><tr><th colspan="4">WeiXin Interface &#8212; passed</th></tr><tr class="passedeven"><td rowspan="1">com.mjitech.qa.test.GetPagedMainpageData</td><td><a href="#m11">test_login_with_openid</a></td><td rowspan="1">1538135843451</td><td rowspan="1">140</td></tr></tbody></table><h2>mobile-micoo prgoram-login</h2><h3 id="m0">com.mjitech.qa.test.VaildateLoginName#VaildateLoginNameByDabao</h3><table class="result"><tr><th>Exception</th></tr><tr><td><div class="stacktrace">org.testng.TestNGException: 
+DataProvider should be static: public java.lang.Object[][] com.mjitech.qa.data.VaildateLoginNameData.vaildateLoginName()
+... Removed 22 stack frames</div></td></tr></table><p class="totop"><a href="#summary">back to summary</a></p><h3 id="m1">com.mjitech.qa.test.Login#login</h3><table class="result"><tr class="param"><th>Parameter #1</th><th>Parameter #2</th></tr><tr class="param stripe"><td>fenjian</td><td>yier34wu6</td></tr></table><p class="totop"><a href="#summary">back to summary</a></p><h3 id="m2">com.mjitech.qa.test.Login#login</h3><table class="result"><tr class="param"><th>Parameter #1</th><th>Parameter #2</th></tr><tr class="param stripe"><td>dabao</td><td>yier34wu6</td></tr></table><p class="totop"><a href="#summary">back to summary</a></p><h3 id="m3">com.mjitech.qa.test.Login#login</h3><table class="result"><tr class="param"><th>Parameter #1</th><th>Parameter #2</th></tr><tr class="param stripe"><td>peisong</td><td>yier34wu6</td></tr></table><p class="totop"><a href="#summary">back to summary</a></p><h3 id="m4">com.mjitech.qa.test.Login#login</h3><table class="result"><tr class="param"><th>Parameter #1</th><th>Parameter #2</th></tr><tr class="param stripe"><td>gangwang@mjitech.com</td><td>1234456</td></tr></table><p class="totop"><a href="#summary">back to summary</a></p><h3 id="m5">com.mjitech.qa.test.Login#login</h3><table class="result"><tr class="param"><th>Parameter #1</th><th>Parameter #2</th></tr><tr class="param stripe"><td>jiqikuguan</td><td>yier34wu6</td></tr></table><p class="totop"><a href="#summary">back to summary</a></p><h2>Flat Interface</h2><h3 id="m6">com.mjitech.qa.test.GetMachineData#getMachineData</h3><table class="result"></table><p class="totop"><a href="#summary">back to summary</a></p><h3 id="m7">com.mjitech.qa.test.ListFault#list_fault</h3><table class="result"></table><p class="totop"><a href="#summary">back to summary</a></p><h3 id="m8">com.mjitech.qa.test.UpdateDoorClose#update_close_door</h3><table class="result"></table><p class="totop"><a href="#summary">back to summary</a></p><h3 id="m9">com.mjitech.qa.test.UploadImageList#fault</h3><table class="result"></table><p class="totop"><a href="#summary">back to summary</a></p><h2>WeiXin Interface</h2><h3 id="m10">com.mjitech.qa.test.GetPagedMainpageData#get_paged_mainpage_data</h3><table class="result"><tr><th>Exception</th></tr><tr><td><div class="stacktrace">java.lang.AssertionError: expected [true] but found [false]
+	at com.mjitech.qa.test.GetPagedMainpageData.get_paged_mainpage_data(GetPagedMainpageData.java:61)
+... Removed 29 stack frames</div></td></tr></table><p class="totop"><a href="#summary">back to summary</a></p><h3 id="m11">com.mjitech.qa.test.GetPagedMainpageData#test_login_with_openid</h3><table class="result"></table><p class="totop"><a href="#summary">back to summary</a></p></body></html>
\ No newline at end of file
diff --git a/test-output/html/overview.html b/test-output/html/overview.html
index e2d9609..7764734 100644
--- a/test-output/html/overview.html
+++ b/test-output/html/overview.html
@@ -11,7 +11,7 @@
 <body>
 <div id="meta">
   Generated by <a href="http://www.testng.org" target="_top">TestNG</a> with <a href="http://reportng.dev.java.net" target="_top">ReportNG</a>
-  at 13:57 CST on ������ 09 ���� 2018
+  at 19:57 CST on ������ 28 ���� 2018
   <br /><span id="systemInfo">acer@YLMF-1711181457&nbsp;/&nbsp;Java 1.8.0_144 (Oracle Corporation)&nbsp;/&nbsp;Windows 10 10.0 (amd64)</span>
 </div>
 
@@ -39,7 +39,7 @@
       <a href="suite1_test1_results.html">mobile-micoo prgoram-login</a>
     </td>
     <td class="duration">
-      0.562s
+      0.845s
     </td>
 
         <td class="passed number">5</td>
@@ -58,7 +58,7 @@
       <a href="suite1_test2_results.html">Flat Interface</a>
     </td>
     <td class="duration">
-      0.356s
+      0.179s
     </td>
 
         <td class="passed number">4</td>
@@ -72,17 +72,36 @@
           </td>
   </tr>
     
+    <tr class="test">
+    <td class="test">
+      <a href="suite1_test3_results.html">WeiXin Interface</a>
+    </td>
+    <td class="duration">
+      0.648s
+    </td>
+
+        <td class="passed number">1</td>
+    
+        <td class="zero number">0</td>
+    
+        <td class="failed number">1</td>
+    
+    <td class="passRate">
+            50%
+          </td>
+  </tr>
+    
     <tr class="suite">
     <td colspan="2" class="totalLabel">Total</td>
 
-        <td class="passed number">9</td>
+        <td class="passed number">10</td>
     
         <td class="zero number">0</td>
     
-        <td class="failed number">1</td>
+        <td class="failed number">2</td>
     
     <td class="passRate suite">
-            90%
+            83%
           </td>
 
   </tr>
diff --git a/test-output/html/suite1_test1_results.html b/test-output/html/suite1_test1_results.html
index 0593f72..e110e15 100644
--- a/test-output/html/suite1_test1_results.html
+++ b/test-output/html/suite1_test1_results.html
@@ -12,7 +12,7 @@
 <body>
 <h1>mobile-micoo prgoram-login</h1>
 <p>
-  Test duration: 0.562s
+  Test duration: 0.845s
 </p>
 
 
@@ -77,11 +77,11 @@ DataProvider should be static: public java.lang.Object[][] com.mjitech.qa.data.V
                   login
       </td>
   <td class="duration">
-    0.440s
+    0.064s
   </td>
   <td class="result">
         
-          <i>Method arguments: </i><span class="arguments">"fenjian", "yier34wu6"</span><br />
+          <i>Method arguments: </i><span class="arguments">"peisong", "yier34wu6"</span><br />
     
         
 
@@ -92,11 +92,11 @@ DataProvider should be static: public java.lang.Object[][] com.mjitech.qa.data.V
                   login
       </td>
   <td class="duration">
-    0.029s
+    0.070s
   </td>
   <td class="result">
         
-          <i>Method arguments: </i><span class="arguments">"gangwang@mjitech.com", "1234456"</span><br />
+          <i>Method arguments: </i><span class="arguments">"jiqikuguan", "yier34wu6"</span><br />
     
         
 
@@ -107,11 +107,11 @@ DataProvider should be static: public java.lang.Object[][] com.mjitech.qa.data.V
                   login
       </td>
   <td class="duration">
-    0.033s
+    0.057s
   </td>
   <td class="result">
         
-          <i>Method arguments: </i><span class="arguments">"jiqikuguan", "yier34wu6"</span><br />
+          <i>Method arguments: </i><span class="arguments">"gangwang@mjitech.com", "1234456"</span><br />
     
         
 
@@ -122,11 +122,11 @@ DataProvider should be static: public java.lang.Object[][] com.mjitech.qa.data.V
                   login
       </td>
   <td class="duration">
-    0.028s
+    0.081s
   </td>
   <td class="result">
         
-          <i>Method arguments: </i><span class="arguments">"peisong", "yier34wu6"</span><br />
+          <i>Method arguments: </i><span class="arguments">"dabao", "yier34wu6"</span><br />
     
         
 
@@ -137,11 +137,11 @@ DataProvider should be static: public java.lang.Object[][] com.mjitech.qa.data.V
                   login
       </td>
   <td class="duration">
-    0.032s
+    0.573s
   </td>
   <td class="result">
         
-          <i>Method arguments: </i><span class="arguments">"dabao", "yier34wu6"</span><br />
+          <i>Method arguments: </i><span class="arguments">"fenjian", "yier34wu6"</span><br />
     
         
 
diff --git a/test-output/html/suite1_test2_results.html b/test-output/html/suite1_test2_results.html
index 1033a73..9d77634 100644
--- a/test-output/html/suite1_test2_results.html
+++ b/test-output/html/suite1_test2_results.html
@@ -12,7 +12,7 @@
 <body>
 <h1>Flat Interface</h1>
 <p>
-  Test duration: 0.356s
+  Test duration: 0.179s
 </p>
 
 
@@ -30,7 +30,7 @@
                   getMachineData
       </td>
   <td class="duration">
-    0.087s
+    0.069s
   </td>
   <td class="result">
         
@@ -48,7 +48,7 @@
                   list_fault
       </td>
   <td class="duration">
-    0.038s
+    0.039s
   </td>
   <td class="result">
         
@@ -66,7 +66,7 @@
                   update_close_door
       </td>
   <td class="duration">
-    0.026s
+    0.031s
   </td>
   <td class="result">
         
@@ -81,10 +81,10 @@
             
 <tr>
   <td class="method">
-                  upload_image_list
+                  fault
       </td>
   <td class="duration">
-    0.205s
+    0.040s
   </td>
   <td class="result">
         
diff --git a/test-output/html/suite1_test3_results.html b/test-output/html/suite1_test3_results.html
new file mode 100644
index 0000000..a5d9e5b
--- /dev/null
+++ b/test-output/html/suite1_test3_results.html
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="" lang="">
+<head>
+  <title>Test Results Report - WeiXin Interface</title>
+  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+  <meta name="description" content="TestNG unit test results." />
+  <link href="reportng.css" rel="stylesheet" type="text/css" />
+    <script type="text/javascript" src="reportng.js"></script>
+</head>
+<body>
+<h1>WeiXin Interface</h1>
+<p>
+  Test duration: 0.648s
+</p>
+
+
+
+  <table class="resultsTable">
+    <tr><th colspan="3" class="header failed">Failed Tests</th></tr>
+          <tr>
+        <td colspan="3" class="group">com.mjitech.qa.test.GetPagedMainpageData</td>
+      </tr>
+            
+<tr>
+  <td class="method">
+                  get_paged_mainpage_data
+      </td>
+  <td class="duration">
+    0.508s
+  </td>
+  <td class="result">
+        
+    
+        
+
+        <a href="javascript:toggleElement('exception-0', 'block')" title="Click to expand/collapse"><b>java.lang.AssertionError: expected [true] but found [false]</b></a><br />
+    <div class="stackTrace" id="exception-0">
+              org.testng.Assert.fail(Assert.java:94)<br />
+              org.testng.Assert.failNotEquals(Assert.java:494)<br />
+              org.testng.Assert.assertEquals(Assert.java:123)<br />
+              org.testng.Assert.assertEquals(Assert.java:286)<br />
+              org.testng.Assert.assertEquals(Assert.java:296)<br />
+              com.mjitech.qa.test.GetPagedMainpageData.get_paged_mainpage_data(GetPagedMainpageData.java:61)<br />
+              sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
+              sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)<br />
+              sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br />
+              java.lang.reflect.Method.invoke(Method.java:498)<br />
+              org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)<br />
+              org.testng.internal.Invoker.invokeMethod(Invoker.java:714)<br />
+              org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)<br />
+              org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)<br />
+              org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)<br />
+              org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)<br />
+              org.testng.TestRunner.privateRun(TestRunner.java:767)<br />
+              org.testng.TestRunner.run(TestRunner.java:617)<br />
+              org.testng.SuiteRunner.runTest(SuiteRunner.java:334)<br />
+              org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)<br />
+              org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)<br />
+              org.testng.SuiteRunner.run(SuiteRunner.java:240)<br />
+              org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)<br />
+              org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)<br />
+              org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)<br />
+              org.testng.TestNG.runSuitesLocally(TestNG.java:1149)<br />
+              org.testng.TestNG.run(TestNG.java:1057)<br />
+              org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)<br />
+              org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)<br />
+              org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)<br />
+                </div>
+      </td>
+</tr>
+      </table>
+
+
+  <table class="resultsTable">
+    <tr><th colspan="3" class="header passed">Passed Tests</th></tr>
+          <tr>
+        <td colspan="3" class="group">com.mjitech.qa.test.GetPagedMainpageData</td>
+      </tr>
+            
+<tr>
+  <td class="method">
+                  test_login_with_openid
+      </td>
+  <td class="duration">
+    0.140s
+  </td>
+  <td class="result">
+        
+    
+        
+
+      </td>
+</tr>
+      </table>
+  
+</body>
+</html>
diff --git a/test-output/html/suites.html b/test-output/html/suites.html
index 925724a..1af4cdc 100644
--- a/test-output/html/suites.html
+++ b/test-output/html/suites.html
@@ -40,6 +40,13 @@
                           <a href="suite1_test2_results.html" target="main">Flat Interface</a>
       </td>
     </tr>
+        
+                <tr>
+      <td class="test">
+                <span class="failureIndicator" title="Some tests failed.">&#x2718;</span>
+                <a href="suite1_test3_results.html" target="main">WeiXin Interface</a>
+      </td>
+    </tr>
           </tbody>
   </table>
 </body>
diff --git a/test-output/index.html b/test-output/index.html
index 09f4826..9b20059 100644
--- a/test-output/index.html
+++ b/test-output/index.html
@@ -23,7 +23,7 @@
     <div class="top-banner-root">
       <span class="top-banner-title-font">Test results</span>
       <br/>
-      <span class="top-banner-font-1">1 suite, 1 failed test</span>
+      <span class="top-banner-font-1">1 suite, 2 failed tests</span>
     </div> <!-- top-banner-root -->
     <div class="navigator-root">
       <div class="navigator-suite-header">
@@ -36,8 +36,8 @@
       <div class="suite">
         <div class="rounded-window">
           <div class="suite-header light-rounded-window-top">
-            <a href="#" class="navigator-link" panel-name="suite-Default_suite">
-              <span class="suite-name border-failed">Default suite</span>
+            <a href="#" class="navigator-link" panel-name="suite-Suite">
+              <span class="suite-name border-failed">Suite</span>
             </a> <!-- navigator-link -->
           </div> <!-- suite-header light-rounded-window-top -->
           <div class="navigator-suite-content">
@@ -47,37 +47,37 @@
             <div class="suite-section-content">
               <ul>
                 <li>
-                  <a href="#" class="navigator-link " panel-name="test-xml-Default_suite">
-                    <span>C:\Users\Administrator\AppData\Local\Temp\testng-eclipse--559773559\testng-customsuite.xml</span>
+                  <a href="#" class="navigator-link " panel-name="test-xml-Suite">
+                    <span>G:\code\mjitechauto\src\main\resources\testng.xml</span>
                   </a> <!-- navigator-link  -->
                 </li>
                 <li>
-                  <a href="#" class="navigator-link " panel-name="testlist-Default_suite">
-                    <span class="test-stats">1 test</span>
+                  <a href="#" class="navigator-link " panel-name="testlist-Suite">
+                    <span class="test-stats">3 tests</span>
                   </a> <!-- navigator-link  -->
                 </li>
                 <li>
-                  <a href="#" class="navigator-link " panel-name="group-Default_suite">
+                  <a href="#" class="navigator-link " panel-name="group-Suite">
                     <span>0 groups</span>
                   </a> <!-- navigator-link  -->
                 </li>
                 <li>
-                  <a href="#" class="navigator-link " panel-name="times-Default_suite">
+                  <a href="#" class="navigator-link " panel-name="times-Suite">
                     <span>Times</span>
                   </a> <!-- navigator-link  -->
                 </li>
                 <li>
-                  <a href="#" class="navigator-link " panel-name="reporter-Default_suite">
+                  <a href="#" class="navigator-link " panel-name="reporter-Suite">
                     <span>Reporter output</span>
                   </a> <!-- navigator-link  -->
                 </li>
                 <li>
-                  <a href="#" class="navigator-link " panel-name="ignored-methods-Default_suite">
+                  <a href="#" class="navigator-link " panel-name="ignored-methods-Suite">
                     <span>Ignored methods</span>
                   </a> <!-- navigator-link  -->
                 </li>
                 <li>
-                  <a href="#" class="navigator-link " panel-name="chronological-Default_suite">
+                  <a href="#" class="navigator-link " panel-name="chronological-Suite">
                     <span>Chronological view</span>
                   </a> <!-- navigator-link  -->
                 </li>
@@ -90,35 +90,85 @@
               <div class="suite-section-content">
                 <ul>
                   <li>
-                    <span class="method-stats">2 methods, 1 failed,  1 skipped,  </span>
+                    <span class="method-stats">12 methods, 2 failed,   10 passed</span>
                   </li>
                   <li>
                     <span class="method-list-title failed">Failed methods</span>
                     <span class="show-or-hide-methods failed">
-                      <a href="#" panel-name="suite-Default_suite" class="hide-methods failed suite-Default_suite"> (hide)</a> <!-- hide-methods failed suite-Default_suite -->
-                      <a href="#" panel-name="suite-Default_suite" class="show-methods failed suite-Default_suite"> (show)</a> <!-- show-methods failed suite-Default_suite -->
+                      <a href="#" panel-name="suite-Suite" class="hide-methods failed suite-Suite"> (hide)</a> <!-- hide-methods failed suite-Suite -->
+                      <a href="#" panel-name="suite-Suite" class="show-methods failed suite-Suite"> (show)</a> <!-- show-methods failed suite-Suite -->
                     </span>
-                    <div class="method-list-content failed suite-Default_suite">
+                    <div class="method-list-content failed suite-Suite">
                       <span>
                         <img width="3%" src="failed.png"/>
-                        <a href="#" class="method navigator-link" panel-name="suite-Default_suite" title="com.mjitech.qa.test.GetPagedMainpageData" hash-for-method="test_login_with_openid">test_login_with_openid</a> <!-- method navigator-link -->
+                        <a href="#" class="method navigator-link" panel-name="suite-Suite" title="com.mjitech.qa.test.VaildateLoginName" hash-for-method="VaildateLoginNameByDabao">VaildateLoginNameByDabao</a> <!-- method navigator-link -->
                       </span>
                       <br/>
-                    </div> <!-- method-list-content failed suite-Default_suite -->
+                      <span>
+                        <img width="3%" src="failed.png"/>
+                        <a href="#" class="method navigator-link" panel-name="suite-Suite" title="com.mjitech.qa.test.GetPagedMainpageData" hash-for-method="get_paged_mainpage_data">get_paged_mainpage_data</a> <!-- method navigator-link -->
+                      </span>
+                      <br/>
+                    </div> <!-- method-list-content failed suite-Suite -->
                   </li>
                   <li>
-                    <span class="method-list-title skipped">Skipped methods</span>
-                    <span class="show-or-hide-methods skipped">
-                      <a href="#" panel-name="suite-Default_suite" class="hide-methods skipped suite-Default_suite"> (hide)</a> <!-- hide-methods skipped suite-Default_suite -->
-                      <a href="#" panel-name="suite-Default_suite" class="show-methods skipped suite-Default_suite"> (show)</a> <!-- show-methods skipped suite-Default_suite -->
+                    <span class="method-list-title passed">Passed methods</span>
+                    <span class="show-or-hide-methods passed">
+                      <a href="#" panel-name="suite-Suite" class="hide-methods passed suite-Suite"> (hide)</a> <!-- hide-methods passed suite-Suite -->
+                      <a href="#" panel-name="suite-Suite" class="show-methods passed suite-Suite"> (show)</a> <!-- show-methods passed suite-Suite -->
                     </span>
-                    <div class="method-list-content skipped suite-Default_suite">
+                    <div class="method-list-content passed suite-Suite">
+                      <span>
+                        <img width="3%" src="passed.png"/>
+                        <a href="#" class="method navigator-link" panel-name="suite-Suite" title="com.mjitech.qa.test.UploadImageList" hash-for-method="fault">fault</a> <!-- method navigator-link -->
+                      </span>
+                      <br/>
+                      <span>
+                        <img width="3%" src="passed.png"/>
+                        <a href="#" class="method navigator-link" panel-name="suite-Suite" title="com.mjitech.qa.test.GetMachineData" hash-for-method="getMachineData">getMachineData</a> <!-- method navigator-link -->
+                      </span>
+                      <br/>
+                      <span>
+                        <img width="3%" src="passed.png"/>
+                        <a href="#" class="method navigator-link" panel-name="suite-Suite" title="com.mjitech.qa.test.ListFault" hash-for-method="list_fault">list_fault</a> <!-- method navigator-link -->
+                      </span>
+                      <br/>
+                      <span>
+                        <img width="3%" src="passed.png"/>
+                        <a href="#" class="method navigator-link" panel-name="suite-Suite" title="com.mjitech.qa.test.Login" hash-for-method="login(fenjian, yier34wu6)">login(fenjian, yier34wu6)</a> <!-- method navigator-link -->
+                      </span>
+                      <br/>
+                      <span>
+                        <img width="3%" src="passed.png"/>
+                        <a href="#" class="method navigator-link" panel-name="suite-Suite" title="com.mjitech.qa.test.Login" hash-for-method="login(dabao, yier34wu6)">login(dabao, yier34wu6)</a> <!-- method navigator-link -->
+                      </span>
+                      <br/>
                       <span>
-                        <img width="3%" src="skipped.png"/>
-                        <a href="#" class="method navigator-link" panel-name="suite-Default_suite" title="com.mjitech.qa.test.GetPagedMainpageData" hash-for-method="get_paged_mainpage_data">get_paged_mainpage_data</a> <!-- method navigator-link -->
+                        <img width="3%" src="passed.png"/>
+                        <a href="#" class="method navigator-link" panel-name="suite-Suite" title="com.mjitech.qa.test.Login" hash-for-method="login(peisong, yier34wu6)">login(peisong, yier34wu6)</a> <!-- method navigator-link -->
                       </span>
                       <br/>
-                    </div> <!-- method-list-content skipped suite-Default_suite -->
+                      <span>
+                        <img width="3%" src="passed.png"/>
+                        <a href="#" class="method navigator-link" panel-name="suite-Suite" title="com.mjitech.qa.test.Login" hash-for-method="login(gangwang@mjitech.com, 1234456)">login(gangwang@mjitech.com, 1234456)</a> <!-- method navigator-link -->
+                      </span>
+                      <br/>
+                      <span>
+                        <img width="3%" src="passed.png"/>
+                        <a href="#" class="method navigator-link" panel-name="suite-Suite" title="com.mjitech.qa.test.Login" hash-for-method="login(jiqikuguan, yier34wu6)">login(jiqikuguan, yier34wu6)</a> <!-- method navigator-link -->
+                      </span>
+                      <br/>
+                      <span>
+                        <img width="3%" src="passed.png"/>
+                        <a href="#" class="method navigator-link" panel-name="suite-Suite" title="com.mjitech.qa.test.GetPagedMainpageData" hash-for-method="test_login_with_openid">test_login_with_openid</a> <!-- method navigator-link -->
+                      </span>
+                      <br/>
+                      <span>
+                        <img width="3%" src="passed.png"/>
+                        <a href="#" class="method navigator-link" panel-name="suite-Suite" title="com.mjitech.qa.test.UpdateDoorClose" hash-for-method="update_close_door">update_close_door</a> <!-- method navigator-link -->
+                      </span>
+                      <br/>
+                    </div> <!-- method-list-content passed suite-Suite -->
                   </li>
                 </ul>
               </div> <!-- suite-section-content -->
@@ -129,58 +179,29 @@
     </div> <!-- navigator-root -->
     <div class="wrapper">
       <div class="main-panel-root">
-        <div panel-name="suite-Default_suite" class="panel Default_suite">
-          <div class="suite-Default_suite-class-failed">
+        <div panel-name="suite-Suite" class="panel Suite">
+          <div class="suite-Suite-class-failed">
             <div class="main-panel-header rounded-window-top">
               <img src="failed.png"/>
-              <span class="class-name">com.mjitech.qa.test.GetPagedMainpageData</span>
+              <span class="class-name">com.mjitech.qa.test.VaildateLoginName</span>
             </div> <!-- main-panel-header rounded-window-top -->
             <div class="main-panel-content rounded-window-bottom">
               <div class="method">
                 <div class="method-content">
-                  <a name="test_login_with_openid">
-                  </a> <!-- test_login_with_openid -->
-                  <span class="method-name">test_login_with_openid</span>
-                  <div class="stack-trace">java.lang.AssertionError: expected [true] but found [false]
-	at org.testng.Assert.fail(Assert.java:94)
-	at org.testng.Assert.failNotEquals(Assert.java:494)
-	at org.testng.Assert.assertEquals(Assert.java:123)
-	at org.testng.Assert.assertEquals(Assert.java:286)
-	at org.testng.Assert.assertEquals(Assert.java:296)
-	at com.mjitech.qa.test.GetPagedMainpageData.test_login_with_openid(GetPagedMainpageData.java:33)
-	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
-	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.lang.reflect.Method.invoke(Method.java:498)
-	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
-	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
-	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
-	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
-	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
-	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
-	at org.testng.TestRunner.privateRun(TestRunner.java:767)
-	at org.testng.TestRunner.run(TestRunner.java:617)
-	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
-	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
-	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
-	at org.testng.SuiteRunner.run(SuiteRunner.java:240)
-	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
-	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
-	at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
-	at org.testng.TestNG.run(TestNG.java:1057)
-	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
-	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)
-	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)
-
+                  <a name="VaildateLoginNameByDabao">
+                  </a> <!-- VaildateLoginNameByDabao -->
+                  <span class="method-name">VaildateLoginNameByDabao</span>
+                  <div class="stack-trace">org.testng.TestNGException: 
+DataProvider should be static: public java.lang.Object[][] com.mjitech.qa.data.VaildateLoginNameData.vaildateLoginName()
+... Removed 22 stack frames
 </div> <!-- stack-trace -->
                 </div> <!-- method-content -->
               </div> <!-- method -->
             </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-failed -->
-          <div class="suite-Default_suite-class-skipped">
+          </div> <!-- suite-Suite-class-failed -->
+          <div class="suite-Suite-class-failed">
             <div class="main-panel-header rounded-window-top">
-              <img src="skipped.png"/>
+              <img src="failed.png"/>
               <span class="class-name">com.mjitech.qa.test.GetPagedMainpageData</span>
             </div> <!-- main-panel-header rounded-window-top -->
             <div class="main-panel-content rounded-window-bottom">
@@ -189,107 +210,353 @@
                   <a name="get_paged_mainpage_data">
                   </a> <!-- get_paged_mainpage_data -->
                   <span class="method-name">get_paged_mainpage_data</span>
+                  <div class="stack-trace">java.lang.AssertionError: expected [true] but found [false]
+	at com.mjitech.qa.test.GetPagedMainpageData.get_paged_mainpage_data(GetPagedMainpageData.java:61)
+... Removed 29 stack frames
+</div> <!-- stack-trace -->
+                </div> <!-- method-content -->
+              </div> <!-- method -->
+            </div> <!-- main-panel-content rounded-window-bottom -->
+          </div> <!-- suite-Suite-class-failed -->
+          <div class="suite-Suite-class-passed">
+            <div class="main-panel-header rounded-window-top">
+              <img src="passed.png"/>
+              <span class="class-name">com.mjitech.qa.test.ListFault</span>
+            </div> <!-- main-panel-header rounded-window-top -->
+            <div class="main-panel-content rounded-window-bottom">
+              <div class="method">
+                <div class="method-content">
+                  <a name="list_fault">
+                  </a> <!-- list_fault -->
+                  <span class="method-name">list_fault</span>
+                </div> <!-- method-content -->
+              </div> <!-- method -->
+            </div> <!-- main-panel-content rounded-window-bottom -->
+          </div> <!-- suite-Suite-class-passed -->
+          <div class="suite-Suite-class-passed">
+            <div class="main-panel-header rounded-window-top">
+              <img src="passed.png"/>
+              <span class="class-name">com.mjitech.qa.test.UpdateDoorClose</span>
+            </div> <!-- main-panel-header rounded-window-top -->
+            <div class="main-panel-content rounded-window-bottom">
+              <div class="method">
+                <div class="method-content">
+                  <a name="update_close_door">
+                  </a> <!-- update_close_door -->
+                  <span class="method-name">update_close_door</span>
                 </div> <!-- method-content -->
               </div> <!-- method -->
             </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-skipped -->
-        </div> <!-- panel Default_suite -->
-        <div panel-name="test-xml-Default_suite" class="panel">
+          </div> <!-- suite-Suite-class-passed -->
+          <div class="suite-Suite-class-passed">
+            <div class="main-panel-header rounded-window-top">
+              <img src="passed.png"/>
+              <span class="class-name">com.mjitech.qa.test.Login</span>
+            </div> <!-- main-panel-header rounded-window-top -->
+            <div class="main-panel-content rounded-window-bottom">
+              <div class="method">
+                <div class="method-content">
+                  <a name="login(fenjian, yier34wu6)">
+                  </a> <!-- login(fenjian, yier34wu6) -->
+                  <span class="method-name">login</span>
+                  <span class="parameters">(fenjian, yier34wu6)</span>
+                </div> <!-- method-content -->
+              </div> <!-- method -->
+              <div class="method">
+                <div class="method-content">
+                  <a name="login(dabao, yier34wu6)">
+                  </a> <!-- login(dabao, yier34wu6) -->
+                  <span class="method-name">login</span>
+                  <span class="parameters">(dabao, yier34wu6)</span>
+                </div> <!-- method-content -->
+              </div> <!-- method -->
+              <div class="method">
+                <div class="method-content">
+                  <a name="login(peisong, yier34wu6)">
+                  </a> <!-- login(peisong, yier34wu6) -->
+                  <span class="method-name">login</span>
+                  <span class="parameters">(peisong, yier34wu6)</span>
+                </div> <!-- method-content -->
+              </div> <!-- method -->
+              <div class="method">
+                <div class="method-content">
+                  <a name="login(gangwang@mjitech.com, 1234456)">
+                  </a> <!-- login(gangwang@mjitech.com, 1234456) -->
+                  <span class="method-name">login</span>
+                  <span class="parameters">(gangwang@mjitech.com, 1234456)</span>
+                </div> <!-- method-content -->
+              </div> <!-- method -->
+              <div class="method">
+                <div class="method-content">
+                  <a name="login(jiqikuguan, yier34wu6)">
+                  </a> <!-- login(jiqikuguan, yier34wu6) -->
+                  <span class="method-name">login</span>
+                  <span class="parameters">(jiqikuguan, yier34wu6)</span>
+                </div> <!-- method-content -->
+              </div> <!-- method -->
+            </div> <!-- main-panel-content rounded-window-bottom -->
+          </div> <!-- suite-Suite-class-passed -->
+          <div class="suite-Suite-class-passed">
+            <div class="main-panel-header rounded-window-top">
+              <img src="passed.png"/>
+              <span class="class-name">com.mjitech.qa.test.UploadImageList</span>
+            </div> <!-- main-panel-header rounded-window-top -->
+            <div class="main-panel-content rounded-window-bottom">
+              <div class="method">
+                <div class="method-content">
+                  <a name="fault">
+                  </a> <!-- fault -->
+                  <span class="method-name">fault</span>
+                </div> <!-- method-content -->
+              </div> <!-- method -->
+            </div> <!-- main-panel-content rounded-window-bottom -->
+          </div> <!-- suite-Suite-class-passed -->
+          <div class="suite-Suite-class-passed">
+            <div class="main-panel-header rounded-window-top">
+              <img src="passed.png"/>
+              <span class="class-name">com.mjitech.qa.test.GetPagedMainpageData</span>
+            </div> <!-- main-panel-header rounded-window-top -->
+            <div class="main-panel-content rounded-window-bottom">
+              <div class="method">
+                <div class="method-content">
+                  <a name="test_login_with_openid">
+                  </a> <!-- test_login_with_openid -->
+                  <span class="method-name">test_login_with_openid</span>
+                </div> <!-- method-content -->
+              </div> <!-- method -->
+            </div> <!-- main-panel-content rounded-window-bottom -->
+          </div> <!-- suite-Suite-class-passed -->
+          <div class="suite-Suite-class-passed">
+            <div class="main-panel-header rounded-window-top">
+              <img src="passed.png"/>
+              <span class="class-name">com.mjitech.qa.test.GetMachineData</span>
+            </div> <!-- main-panel-header rounded-window-top -->
+            <div class="main-panel-content rounded-window-bottom">
+              <div class="method">
+                <div class="method-content">
+                  <a name="getMachineData">
+                  </a> <!-- getMachineData -->
+                  <span class="method-name">getMachineData</span>
+                </div> <!-- method-content -->
+              </div> <!-- method -->
+            </div> <!-- main-panel-content rounded-window-bottom -->
+          </div> <!-- suite-Suite-class-passed -->
+        </div> <!-- panel Suite -->
+        <div panel-name="test-xml-Suite" class="panel">
           <div class="main-panel-header rounded-window-top">
-            <span class="header-content">C:\Users\Administrator\AppData\Local\Temp\testng-eclipse--559773559\testng-customsuite.xml</span>
+            <span class="header-content">G:\code\mjitechauto\src\main\resources\testng.xml</span>
           </div> <!-- main-panel-header rounded-window-top -->
           <div class="main-panel-content rounded-window-bottom">
             <pre>
 &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
 &lt;!DOCTYPE suite SYSTEM &quot;http://testng.org/testng-1.0.dtd&quot;&gt;
-&lt;suite name=&quot;Default suite&quot;&gt;
-  &lt;test verbose=&quot;2&quot; name=&quot;Default test&quot;&gt;
+&lt;suite name=&quot;Suite&quot;&gt;
+  &lt;listeners&gt;
+    &lt;listener class-name=&quot;org.uncommons.reportng.HTMLReporter&quot;/&gt;
+    &lt;listener class-name=&quot;org.uncommons.reportng.JUnitXMLReporter&quot;/&gt;
+  &lt;/listeners&gt;
+  &lt;test name=&quot;mobile-micoo prgoram-login&quot;&gt;
+    &lt;classes&gt;
+      &lt;class name=&quot;com.mjitech.qa.test.VaildateLoginName&quot;/&gt;
+      &lt;class name=&quot;com.mjitech.qa.test.Login&quot;/&gt;
+    &lt;/classes&gt;
+  &lt;/test&gt; &lt;!-- mobile-micoo prgoram-login --&gt;
+  &lt;test name=&quot;Flat Interface&quot;&gt;
+    &lt;classes&gt;
+      &lt;class name=&quot;com.mjitech.qa.test.GetMachineData&quot;/&gt;
+      &lt;class name=&quot;com.mjitech.qa.test.ListFault&quot;/&gt;
+      &lt;class name=&quot;com.mjitech.qa.test.UpdateDoorClose&quot;/&gt;
+      &lt;class name=&quot;com.mjitech.qa.test.UploadImageList&quot;/&gt;
+    &lt;/classes&gt;
+  &lt;/test&gt; &lt;!-- Flat Interface --&gt;
+  &lt;test name=&quot;WeiXin Interface&quot;&gt;
     &lt;classes&gt;
       &lt;class name=&quot;com.mjitech.qa.test.GetPagedMainpageData&quot;/&gt;
     &lt;/classes&gt;
-  &lt;/test&gt; &lt;!-- Default test --&gt;
-&lt;/suite&gt; &lt;!-- Default suite --&gt;
+  &lt;/test&gt; &lt;!-- WeiXin Interface --&gt;
+&lt;/suite&gt; &lt;!-- Suite --&gt;
             </pre>
           </div> <!-- main-panel-content rounded-window-bottom -->
         </div> <!-- panel -->
-        <div panel-name="testlist-Default_suite" class="panel">
+        <div panel-name="testlist-Suite" class="panel">
           <div class="main-panel-header rounded-window-top">
-            <span class="header-content">Tests for Default suite</span>
+            <span class="header-content">Tests for Suite</span>
           </div> <!-- main-panel-header rounded-window-top -->
           <div class="main-panel-content rounded-window-bottom">
             <ul>
               <li>
-                <span class="test-name">Default test (1 class)</span>
+                <span class="test-name">mobile-micoo prgoram-login (2 classes)</span>
+              </li>
+              <li>
+                <span class="test-name">Flat Interface (4 classes)</span>
+              </li>
+              <li>
+                <span class="test-name">WeiXin Interface (1 class)</span>
               </li>
             </ul>
           </div> <!-- main-panel-content rounded-window-bottom -->
         </div> <!-- panel -->
-        <div panel-name="group-Default_suite" class="panel">
+        <div panel-name="group-Suite" class="panel">
           <div class="main-panel-header rounded-window-top">
-            <span class="header-content">Groups for Default suite</span>
+            <span class="header-content">Groups for Suite</span>
           </div> <!-- main-panel-header rounded-window-top -->
           <div class="main-panel-content rounded-window-bottom">
           </div> <!-- main-panel-content rounded-window-bottom -->
         </div> <!-- panel -->
-        <div panel-name="times-Default_suite" class="panel">
+        <div panel-name="times-Suite" class="panel">
           <div class="main-panel-header rounded-window-top">
-            <span class="header-content">Times for Default suite</span>
+            <span class="header-content">Times for Suite</span>
           </div> <!-- main-panel-header rounded-window-top -->
           <div class="main-panel-content rounded-window-bottom">
             <div class="times-div">
               <script type="text/javascript">
-suiteTableInitFunctions.push('tableData_Default_suite');
-function tableData_Default_suite() {
+suiteTableInitFunctions.push('tableData_Suite');
+function tableData_Suite() {
 var data = new google.visualization.DataTable();
 data.addColumn('number', 'Number');
 data.addColumn('string', 'Method');
 data.addColumn('string', 'Class');
 data.addColumn('number', 'Time (ms)');
-data.addRows(2);
+data.addRows(12);
 data.setCell(0, 0, 0)
-data.setCell(0, 1, 'test_login_with_openid')
-data.setCell(0, 2, 'com.mjitech.qa.test.GetPagedMainpageData')
-data.setCell(0, 3, 619);
+data.setCell(0, 1, 'login')
+data.setCell(0, 2, 'com.mjitech.qa.test.Login')
+data.setCell(0, 3, 573);
 data.setCell(1, 0, 1)
 data.setCell(1, 1, 'get_paged_mainpage_data')
 data.setCell(1, 2, 'com.mjitech.qa.test.GetPagedMainpageData')
-data.setCell(1, 3, 1);
-window.suiteTableData['Default_suite']= { tableData: data, tableDiv: 'times-div-Default_suite'}
+data.setCell(1, 3, 508);
+data.setCell(2, 0, 2)
+data.setCell(2, 1, 'test_login_with_openid')
+data.setCell(2, 2, 'com.mjitech.qa.test.GetPagedMainpageData')
+data.setCell(2, 3, 140);
+data.setCell(3, 0, 3)
+data.setCell(3, 1, 'login')
+data.setCell(3, 2, 'com.mjitech.qa.test.Login')
+data.setCell(3, 3, 81);
+data.setCell(4, 0, 4)
+data.setCell(4, 1, 'login')
+data.setCell(4, 2, 'com.mjitech.qa.test.Login')
+data.setCell(4, 3, 70);
+data.setCell(5, 0, 5)
+data.setCell(5, 1, 'getMachineData')
+data.setCell(5, 2, 'com.mjitech.qa.test.GetMachineData')
+data.setCell(5, 3, 69);
+data.setCell(6, 0, 6)
+data.setCell(6, 1, 'login')
+data.setCell(6, 2, 'com.mjitech.qa.test.Login')
+data.setCell(6, 3, 64);
+data.setCell(7, 0, 7)
+data.setCell(7, 1, 'login')
+data.setCell(7, 2, 'com.mjitech.qa.test.Login')
+data.setCell(7, 3, 57);
+data.setCell(8, 0, 8)
+data.setCell(8, 1, 'fault')
+data.setCell(8, 2, 'com.mjitech.qa.test.UploadImageList')
+data.setCell(8, 3, 40);
+data.setCell(9, 0, 9)
+data.setCell(9, 1, 'list_fault')
+data.setCell(9, 2, 'com.mjitech.qa.test.ListFault')
+data.setCell(9, 3, 39);
+data.setCell(10, 0, 10)
+data.setCell(10, 1, 'update_close_door')
+data.setCell(10, 2, 'com.mjitech.qa.test.UpdateDoorClose')
+data.setCell(10, 3, 31);
+data.setCell(11, 0, 11)
+data.setCell(11, 1, 'VaildateLoginNameByDabao')
+data.setCell(11, 2, 'com.mjitech.qa.test.VaildateLoginName')
+data.setCell(11, 3, 0);
+window.suiteTableData['Suite']= { tableData: data, tableDiv: 'times-div-Suite'}
 return data;
 }
               </script>
-              <span class="suite-total-time">Total running time: 620 ms</span>
-              <div id="times-div-Default_suite">
-              </div> <!-- times-div-Default_suite -->
+              <span class="suite-total-time">Total running time: 1 seconds</span>
+              <div id="times-div-Suite">
+              </div> <!-- times-div-Suite -->
             </div> <!-- times-div -->
           </div> <!-- main-panel-content rounded-window-bottom -->
         </div> <!-- panel -->
-        <div panel-name="reporter-Default_suite" class="panel">
+        <div panel-name="reporter-Suite" class="panel">
           <div class="main-panel-header rounded-window-top">
-            <span class="header-content">Reporter output for Default suite</span>
+            <span class="header-content">Reporter output for Suite</span>
           </div> <!-- main-panel-header rounded-window-top -->
           <div class="main-panel-content rounded-window-bottom">
           </div> <!-- main-panel-content rounded-window-bottom -->
         </div> <!-- panel -->
-        <div panel-name="ignored-methods-Default_suite" class="panel">
+        <div panel-name="ignored-methods-Suite" class="panel">
           <div class="main-panel-header rounded-window-top">
             <span class="header-content">0 ignored methods</span>
           </div> <!-- main-panel-header rounded-window-top -->
           <div class="main-panel-content rounded-window-bottom">
           </div> <!-- main-panel-content rounded-window-bottom -->
         </div> <!-- panel -->
-        <div panel-name="chronological-Default_suite" class="panel">
+        <div panel-name="chronological-Suite" class="panel">
           <div class="main-panel-header rounded-window-top">
             <span class="header-content">Methods in chronological order</span>
           </div> <!-- main-panel-header rounded-window-top -->
           <div class="main-panel-content rounded-window-bottom">
             <div class="chronological-class">
+              <div class="chronological-class-name">com.mjitech.qa.test.Login</div> <!-- chronological-class-name -->
+              <div class="test-method">
+                <span class="method-name">login(fenjian, yier34wu6)</span>
+                <span class="method-start">0 ms</span>
+              </div> <!-- test-method -->
+              <div class="test-method">
+                <span class="method-name">login(dabao, yier34wu6)</span>
+                <span class="method-start">575 ms</span>
+              </div> <!-- test-method -->
+              <div class="test-method">
+                <span class="method-name">login(peisong, yier34wu6)</span>
+                <span class="method-start">657 ms</span>
+              </div> <!-- test-method -->
+              <div class="test-method">
+                <span class="method-name">login(jiqikuguan, yier34wu6)</span>
+                <span class="method-start">722 ms</span>
+              </div> <!-- test-method -->
+              <div class="test-method">
+                <span class="method-name">login(gangwang@mjitech.com, 1234456)</span>
+                <span class="method-start">794 ms</span>
+              </div> <!-- test-method -->
+            </div> <!-- chronological-class -->
+            <div class="chronological-class">
+              <div class="chronological-class-name">com.mjitech.qa.test.GetMachineData</div> <!-- chronological-class-name -->
+              <div class="test-method">
+                <span class="method-name">getMachineData</span>
+                <span class="method-start">879 ms</span>
+              </div> <!-- test-method -->
+            </div> <!-- chronological-class -->
+            <div class="chronological-class">
+              <div class="chronological-class-name">com.mjitech.qa.test.ListFault</div> <!-- chronological-class-name -->
+              <div class="test-method">
+                <span class="method-name">list_fault</span>
+                <span class="method-start">951 ms</span>
+              </div> <!-- test-method -->
+            </div> <!-- chronological-class -->
+            <div class="chronological-class">
+              <div class="chronological-class-name">com.mjitech.qa.test.UpdateDoorClose</div> <!-- chronological-class-name -->
+              <div class="test-method">
+                <span class="method-name">update_close_door</span>
+                <span class="method-start">992 ms</span>
+              </div> <!-- test-method -->
+            </div> <!-- chronological-class -->
+            <div class="chronological-class">
+              <div class="chronological-class-name">com.mjitech.qa.test.UploadImageList</div> <!-- chronological-class-name -->
+              <div class="test-method">
+                <span class="method-name">fault</span>
+                <span class="method-start">1024 ms</span>
+              </div> <!-- test-method -->
+            </div> <!-- chronological-class -->
+            <div class="chronological-class">
               <div class="chronological-class-name">com.mjitech.qa.test.GetPagedMainpageData</div> <!-- chronological-class-name -->
               <div class="test-method">
+                <span class="method-name">test_login_with_openid</span>
+                <span class="method-start">1075 ms</span>
+              </div> <!-- test-method -->
+              <div class="test-method">
                 <img src="failed.png">
                 </img>
-                <span class="method-name">test_login_with_openid</span>
-                <span class="method-start">0 ms</span>
+                <span class="method-name">get_paged_mainpage_data</span>
+                <span class="method-start">1217 ms</span>
               </div> <!-- test-method -->
           </div> <!-- main-panel-content rounded-window-bottom -->
         </div> <!-- panel -->
diff --git a/test-output/junitreports/TEST-com.mjitech.qa.test.GetMachineData.xml b/test-output/junitreports/TEST-com.mjitech.qa.test.GetMachineData.xml
index 92ef0cf..bca88b1 100644
--- a/test-output/junitreports/TEST-com.mjitech.qa.test.GetMachineData.xml
+++ b/test-output/junitreports/TEST-com.mjitech.qa.test.GetMachineData.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated by org.testng.reporters.JUnitReportReporter -->
-<testsuite hostname="YLMF-1711181457" name="com.mjitech.qa.test.GetMachineData" tests="1" failures="0" timestamp="21 Aug 2018 07:27:34 GMT" time="0.534" errors="0">
-  <testcase name="getMachineData" time="0.534" classname="com.mjitech.qa.test.GetMachineData"/>
+<testsuite hostname="YLMF-1711181457" name="com.mjitech.qa.test.GetMachineData" tests="1" failures="0" timestamp="28 Sep 2018 11:57:24 GMT" time="0.069" errors="0">
+  <testcase name="getMachineData" time="0.069" classname="com.mjitech.qa.test.GetMachineData"/>
 </testsuite> <!-- com.mjitech.qa.test.GetMachineData -->
diff --git a/test-output/junitreports/TEST-com.mjitech.qa.test.GetPagedMainpageData.xml b/test-output/junitreports/TEST-com.mjitech.qa.test.GetPagedMainpageData.xml
index 49565ba..6b47d11 100644
--- a/test-output/junitreports/TEST-com.mjitech.qa.test.GetPagedMainpageData.xml
+++ b/test-output/junitreports/TEST-com.mjitech.qa.test.GetPagedMainpageData.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated by org.testng.reporters.JUnitReportReporter -->
-<testsuite hostname="YLMF-1711181457" name="com.mjitech.qa.test.GetPagedMainpageData" tests="2" failures="1" timestamp="28 Sep 2018 10:31:01 GMT" time="0.620" errors="1">
-  <testcase name="get_paged_mainpage_data" time="0.001" classname="com.mjitech.qa.test.GetPagedMainpageData"/>
-  <testcase name="test_login_with_openid" time="0.619" classname="com.mjitech.qa.test.GetPagedMainpageData">
+<testsuite hostname="YLMF-1711181457" name="com.mjitech.qa.test.GetPagedMainpageData" tests="2" failures="0" timestamp="28 Sep 2018 11:57:24 GMT" time="0.648" errors="1">
+  <testcase name="get_paged_mainpage_data" time="0.508" classname="com.mjitech.qa.test.GetPagedMainpageData">
     <error type="java.lang.AssertionError" message="expected [true] but found [false]">
       <![CDATA[java.lang.AssertionError: expected [true] but found [false]
 	at org.testng.Assert.fail(Assert.java:94)
@@ -10,7 +9,7 @@
 	at org.testng.Assert.assertEquals(Assert.java:123)
 	at org.testng.Assert.assertEquals(Assert.java:286)
 	at org.testng.Assert.assertEquals(Assert.java:296)
-	at com.mjitech.qa.test.GetPagedMainpageData.test_login_with_openid(GetPagedMainpageData.java:33)
+	at com.mjitech.qa.test.GetPagedMainpageData.get_paged_mainpage_data(GetPagedMainpageData.java:61)
 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
@@ -37,5 +36,6 @@
 	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)
 ]]>
     </error>
-  </testcase> <!-- test_login_with_openid -->
+  </testcase> <!-- get_paged_mainpage_data -->
+  <testcase name="test_login_with_openid" time="0.140" classname="com.mjitech.qa.test.GetPagedMainpageData"/>
 </testsuite> <!-- com.mjitech.qa.test.GetPagedMainpageData -->
diff --git a/test-output/junitreports/TEST-com.mjitech.qa.test.ListFault.xml b/test-output/junitreports/TEST-com.mjitech.qa.test.ListFault.xml
index 2889d5f..cb51df2 100644
--- a/test-output/junitreports/TEST-com.mjitech.qa.test.ListFault.xml
+++ b/test-output/junitreports/TEST-com.mjitech.qa.test.ListFault.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated by org.testng.reporters.JUnitReportReporter -->
-<testsuite hostname="YLMF-1711181457" name="com.mjitech.qa.test.ListFault" tests="1" failures="0" timestamp="9 Aug 2018 05:57:37 GMT" time="0.038" errors="0">
-  <testcase name="list_fault" time="0.038" classname="com.mjitech.qa.test.ListFault"/>
+<testsuite hostname="YLMF-1711181457" name="com.mjitech.qa.test.ListFault" tests="1" failures="0" timestamp="28 Sep 2018 11:57:24 GMT" time="0.039" errors="0">
+  <testcase name="list_fault" time="0.039" classname="com.mjitech.qa.test.ListFault"/>
 </testsuite> <!-- com.mjitech.qa.test.ListFault -->
diff --git a/test-output/junitreports/TEST-com.mjitech.qa.test.Login.xml b/test-output/junitreports/TEST-com.mjitech.qa.test.Login.xml
index 906ab53..d06e325 100644
--- a/test-output/junitreports/TEST-com.mjitech.qa.test.Login.xml
+++ b/test-output/junitreports/TEST-com.mjitech.qa.test.Login.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated by org.testng.reporters.JUnitReportReporter -->
-<testsuite hostname="YLMF-1711181457" name="com.mjitech.qa.test.Login" tests="5" failures="0" timestamp="9 Aug 2018 05:57:37 GMT" time="0.562" errors="0">
-  <testcase name="login" time="0.032" classname="com.mjitech.qa.test.Login"/>
-  <testcase name="login" time="0.028" classname="com.mjitech.qa.test.Login"/>
-  <testcase name="login" time="0.440" classname="com.mjitech.qa.test.Login"/>
-  <testcase name="login" time="0.033" classname="com.mjitech.qa.test.Login"/>
-  <testcase name="login" time="0.029" classname="com.mjitech.qa.test.Login"/>
+<testsuite hostname="YLMF-1711181457" name="com.mjitech.qa.test.Login" tests="5" failures="0" timestamp="28 Sep 2018 11:57:24 GMT" time="0.845" errors="0">
+  <testcase name="login" time="0.573" classname="com.mjitech.qa.test.Login"/>
+  <testcase name="login" time="0.081" classname="com.mjitech.qa.test.Login"/>
+  <testcase name="login" time="0.064" classname="com.mjitech.qa.test.Login"/>
+  <testcase name="login" time="0.057" classname="com.mjitech.qa.test.Login"/>
+  <testcase name="login" time="0.070" classname="com.mjitech.qa.test.Login"/>
 </testsuite> <!-- com.mjitech.qa.test.Login -->
diff --git a/test-output/junitreports/TEST-com.mjitech.qa.test.UpdateDoorClose.xml b/test-output/junitreports/TEST-com.mjitech.qa.test.UpdateDoorClose.xml
index 93a92c9..685c72f 100644
--- a/test-output/junitreports/TEST-com.mjitech.qa.test.UpdateDoorClose.xml
+++ b/test-output/junitreports/TEST-com.mjitech.qa.test.UpdateDoorClose.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated by org.testng.reporters.JUnitReportReporter -->
-<testsuite hostname="YLMF-1711181457" name="com.mjitech.qa.test.UpdateDoorClose" tests="1" failures="0" timestamp="9 Aug 2018 05:57:37 GMT" time="0.026" errors="0">
-  <testcase name="update_close_door" time="0.026" classname="com.mjitech.qa.test.UpdateDoorClose"/>
+<testsuite hostname="YLMF-1711181457" name="com.mjitech.qa.test.UpdateDoorClose" tests="1" failures="0" timestamp="28 Sep 2018 11:57:24 GMT" time="0.031" errors="0">
+  <testcase name="update_close_door" time="0.031" classname="com.mjitech.qa.test.UpdateDoorClose"/>
 </testsuite> <!-- com.mjitech.qa.test.UpdateDoorClose -->
diff --git a/test-output/junitreports/TEST-com.mjitech.qa.test.UploadImageList.xml b/test-output/junitreports/TEST-com.mjitech.qa.test.UploadImageList.xml
index 18998ef..07b62cb 100644
--- a/test-output/junitreports/TEST-com.mjitech.qa.test.UploadImageList.xml
+++ b/test-output/junitreports/TEST-com.mjitech.qa.test.UploadImageList.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated by org.testng.reporters.JUnitReportReporter -->
-<testsuite hostname="YLMF-1711181457" name="com.mjitech.qa.test.UploadImageList" tests="1" failures="0" timestamp="17 Aug 2018 14:06:09 GMT" time="0.453" errors="0">
-  <testcase name="fault" time="0.453" classname="com.mjitech.qa.test.UploadImageList"/>
+<testsuite hostname="YLMF-1711181457" name="com.mjitech.qa.test.UploadImageList" tests="1" failures="0" timestamp="28 Sep 2018 11:57:24 GMT" time="0.040" errors="0">
+  <testcase name="fault" time="0.040" classname="com.mjitech.qa.test.UploadImageList"/>
 </testsuite> <!-- com.mjitech.qa.test.UploadImageList -->
diff --git a/test-output/junitreports/TEST-com.mjitech.qa.test.VaildateLoginName.xml b/test-output/junitreports/TEST-com.mjitech.qa.test.VaildateLoginName.xml
index a056d80..4619740 100644
--- a/test-output/junitreports/TEST-com.mjitech.qa.test.VaildateLoginName.xml
+++ b/test-output/junitreports/TEST-com.mjitech.qa.test.VaildateLoginName.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated by org.testng.reporters.JUnitReportReporter -->
-<testsuite hostname="YLMF-1711181457" name="com.mjitech.qa.test.VaildateLoginName" tests="1" failures="1" timestamp="9 Aug 2018 05:57:37 GMT" time="0.000" errors="0">
+<testsuite hostname="YLMF-1711181457" name="com.mjitech.qa.test.VaildateLoginName" tests="1" failures="1" timestamp="28 Sep 2018 11:57:24 GMT" time="0.000" errors="0">
   <testcase name="VaildateLoginNameByDabao" time="0.000" classname="com.mjitech.qa.test.VaildateLoginName">
     <failure type="org.testng.TestNGException" message="
 DataProvider should be static: public java.lang.Object[][] com.mjitech.qa.data.VaildateLoginNameData.vaildateLoginName()">
diff --git a/test-output/old/Suite/Flat Interface.properties b/test-output/old/Suite/Flat Interface.properties
index e569d9e..9badf76 100644
--- a/test-output/old/Suite/Flat Interface.properties
+++ b/test-output/old/Suite/Flat Interface.properties
@@ -1 +1 @@
-[SuiteResult context=mobile-micoo prgoram-login][SuiteResult context=Flat Interface]
\ No newline at end of file
+[SuiteResult context=mobile-micoo prgoram-login][SuiteResult context=Flat Interface][SuiteResult context=WeiXin Interface]
\ No newline at end of file
diff --git a/test-output/old/Suite/WeiXin Interface.properties b/test-output/old/Suite/WeiXin Interface.properties
new file mode 100644
index 0000000..9badf76
--- /dev/null
+++ b/test-output/old/Suite/WeiXin Interface.properties
@@ -0,0 +1 @@
+[SuiteResult context=mobile-micoo prgoram-login][SuiteResult context=Flat Interface][SuiteResult context=WeiXin Interface]
\ No newline at end of file
diff --git a/test-output/old/Suite/classes.html b/test-output/old/Suite/classes.html
index a03d101..bd9a34a 100644
--- a/test-output/old/Suite/classes.html
+++ b/test-output/old/Suite/classes.html
@@ -33,7 +33,7 @@
 </tr>
 <tr>
 <td>&nbsp;</td>
-<td>upload_image_list</td>
+<td>fault</td>
 <td>&nbsp;</td></tr>
 <tr>
 <td align='center' colspan='3'>@BeforeClass</td>
@@ -135,4 +135,30 @@
 <tr>
 <td align='center' colspan='3'>@AfterClass</td>
 </tr>
+<tr>
+<td>com.mjitech.qa.test.GetPagedMainpageData</td>
+<td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr>
+<td align='center' colspan='3'>@Test</td>
+</tr>
+<tr>
+<td>&nbsp;</td>
+<td>get_paged_mainpage_data</td>
+<td>&nbsp;</td></tr>
+<tr>
+<td>&nbsp;</td>
+<td>test_login_with_openid</td>
+<td>&nbsp;</td></tr>
+<tr>
+<td align='center' colspan='3'>@BeforeClass</td>
+</tr>
+<tr>
+<td align='center' colspan='3'>@BeforeMethod</td>
+</tr>
+<tr>
+<td align='center' colspan='3'>@AfterMethod</td>
+</tr>
+<tr>
+<td align='center' colspan='3'>@AfterClass</td>
+</tr>
 </table>
diff --git a/test-output/old/Suite/methods-alphabetical.html b/test-output/old/Suite/methods-alphabetical.html
index 10504f7..b4c11fc 100644
--- a/test-output/old/Suite/methods-alphabetical.html
+++ b/test-output/old/Suite/methods-alphabetical.html
@@ -1,22 +1,26 @@
 <h2>Methods run, sorted chronologically</h2><h3>&gt;&gt; means before, &lt;&lt; means after</h3><p/><br/><em>Suite</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
 <table border="1">
 <tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
-<tr bgcolor="a96097">  <td>18/08/09 13:57:36</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="GetMachineData.getMachineData()[pri:0, instance:com.mjitech.qa.test.GetMachineData@166fa74d]">getMachineData</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="89aadb">  <td>18/08/09 13:57:36</td>   <td>90</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="ListFault.list_fault()[pri:0, instance:com.mjitech.qa.test.ListFault@1188e820]">list_fault</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="ea97a2">  <td>18/08/09 13:57:36</td>   <td>-587</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="ea97a2">  <td>18/08/09 13:57:36</td>   <td>-147</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="ea97a2">  <td>18/08/09 13:57:36</td>   <td>-113</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="ea97a2">  <td>18/08/09 13:57:36</td>   <td>-84</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="ea97a2">  <td>18/08/09 13:57:36</td>   <td>-51</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="a9f8ae">  <td>18/08/09 13:57:36</td>   <td>128</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="UpdateDoorClose.update_close_door()[pri:0, instance:com.mjitech.qa.test.UpdateDoorClose@2f490758]">update_close_door</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="90f889">  <td>18/08/09 13:57:36</td>   <td>155</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="UploadImageList.upload_image_list()[pri:0, instance:com.mjitech.qa.test.UploadImageList@101df177]">upload_image_list</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
+<tr bgcolor="90f889">  <td>18/09/28 19:57:23</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="UploadImageList.fault()[pri:0, instance:com.mjitech.qa.test.UploadImageList@101df177]">fault</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="a96097">  <td>18/09/28 19:57:23</td>   <td>-145</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="GetMachineData.getMachineData()[pri:0, instance:com.mjitech.qa.test.GetMachineData@166fa74d]">getMachineData</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="838e9f">  <td>18/09/28 19:57:23</td>   <td>193</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="GetPagedMainpageData.get_paged_mainpage_data()[pri:0, instance:com.mjitech.qa.test.GetPagedMainpageData@32464a14]">get_paged_mainpage_data</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="89aadb">  <td>18/09/28 19:57:23</td>   <td>-73</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="ListFault.list_fault()[pri:0, instance:com.mjitech.qa.test.ListFault@1188e820]">list_fault</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="ea97a2">  <td>18/09/28 19:57:22</td>   <td>-1024</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="ea97a2">  <td>18/09/28 19:57:22</td>   <td>-449</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="ea97a2">  <td>18/09/28 19:57:23</td>   <td>-367</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="ea97a2">  <td>18/09/28 19:57:23</td>   <td>-302</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="ea97a2">  <td>18/09/28 19:57:23</td>   <td>-230</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="838e9f">  <td>18/09/28 19:57:23</td>   <td>51</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="GetPagedMainpageData.test_login_with_openid()[pri:0, instance:com.mjitech.qa.test.GetPagedMainpageData@32464a14]">test_login_with_openid</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="a9f8ae">  <td>18/09/28 19:57:23</td>   <td>-32</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="UpdateDoorClose.update_close_door()[pri:0, instance:com.mjitech.qa.test.UpdateDoorClose@2f490758]">update_close_door</td> 
+  <td>main@341853399</td>   <td></td> </tr>
 </table>
diff --git a/test-output/old/Suite/methods.html b/test-output/old/Suite/methods.html
index ef26dd2..01b4079 100644
--- a/test-output/old/Suite/methods.html
+++ b/test-output/old/Suite/methods.html
@@ -1,22 +1,26 @@
 <h2>Methods run, sorted chronologically</h2><h3>&gt;&gt; means before, &lt;&lt; means after</h3><p/><br/><em>Suite</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
 <table border="1">
 <tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
-<tr bgcolor="ea97a2">  <td>18/08/09 13:57:36</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="ea97a2">  <td>18/08/09 13:57:36</td>   <td>440</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="ea97a2">  <td>18/08/09 13:57:36</td>   <td>474</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="ea97a2">  <td>18/08/09 13:57:36</td>   <td>503</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="ea97a2">  <td>18/08/09 13:57:36</td>   <td>536</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="a96097">  <td>18/08/09 13:57:36</td>   <td>587</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="GetMachineData.getMachineData()[pri:0, instance:com.mjitech.qa.test.GetMachineData@166fa74d]">getMachineData</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="89aadb">  <td>18/08/09 13:57:36</td>   <td>677</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="ListFault.list_fault()[pri:0, instance:com.mjitech.qa.test.ListFault@1188e820]">list_fault</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="a9f8ae">  <td>18/08/09 13:57:36</td>   <td>715</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="UpdateDoorClose.update_close_door()[pri:0, instance:com.mjitech.qa.test.UpdateDoorClose@2f490758]">update_close_door</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
-<tr bgcolor="90f889">  <td>18/08/09 13:57:36</td>   <td>742</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="UploadImageList.upload_image_list()[pri:0, instance:com.mjitech.qa.test.UploadImageList@101df177]">upload_image_list</td> 
-  <td>main@1678854096</td>   <td></td> </tr>
+<tr bgcolor="ea97a2">  <td>18/09/28 19:57:22</td>   <td>0</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="ea97a2">  <td>18/09/28 19:57:22</td>   <td>575</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="ea97a2">  <td>18/09/28 19:57:23</td>   <td>657</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="ea97a2">  <td>18/09/28 19:57:23</td>   <td>722</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="ea97a2">  <td>18/09/28 19:57:23</td>   <td>794</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]">login</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="a96097">  <td>18/09/28 19:57:23</td>   <td>879</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="GetMachineData.getMachineData()[pri:0, instance:com.mjitech.qa.test.GetMachineData@166fa74d]">getMachineData</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="89aadb">  <td>18/09/28 19:57:23</td>   <td>951</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="ListFault.list_fault()[pri:0, instance:com.mjitech.qa.test.ListFault@1188e820]">list_fault</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="a9f8ae">  <td>18/09/28 19:57:23</td>   <td>992</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="UpdateDoorClose.update_close_door()[pri:0, instance:com.mjitech.qa.test.UpdateDoorClose@2f490758]">update_close_door</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="90f889">  <td>18/09/28 19:57:23</td>   <td>1024</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="UploadImageList.fault()[pri:0, instance:com.mjitech.qa.test.UploadImageList@101df177]">fault</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="838e9f">  <td>18/09/28 19:57:23</td>   <td>1075</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="GetPagedMainpageData.test_login_with_openid()[pri:0, instance:com.mjitech.qa.test.GetPagedMainpageData@32464a14]">test_login_with_openid</td> 
+  <td>main@341853399</td>   <td></td> </tr>
+<tr bgcolor="838e9f">  <td>18/09/28 19:57:23</td>   <td>1217</td> <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td title="GetPagedMainpageData.get_paged_mainpage_data()[pri:0, instance:com.mjitech.qa.test.GetPagedMainpageData@32464a14]">get_paged_mainpage_data</td> 
+  <td>main@341853399</td>   <td></td> </tr>
 </table>
diff --git a/test-output/old/Suite/mobile-micoo prgoram-login.properties b/test-output/old/Suite/mobile-micoo prgoram-login.properties
index e569d9e..9badf76 100644
--- a/test-output/old/Suite/mobile-micoo prgoram-login.properties
+++ b/test-output/old/Suite/mobile-micoo prgoram-login.properties
@@ -1 +1 @@
-[SuiteResult context=mobile-micoo prgoram-login][SuiteResult context=Flat Interface]
\ No newline at end of file
+[SuiteResult context=mobile-micoo prgoram-login][SuiteResult context=Flat Interface][SuiteResult context=WeiXin Interface]
\ No newline at end of file
diff --git a/test-output/old/Suite/testng.xml.html b/test-output/old/Suite/testng.xml.html
index ea8d963..77f2a0b 100644
--- a/test-output/old/Suite/testng.xml.html
+++ b/test-output/old/Suite/testng.xml.html
@@ -1 +1 @@
-<html><head><title>testng.xml for Suite</title></head><body><tt>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;
<br/>&lt;!DOCTYPE&nbsp;suite&nbsp;SYSTEM&nbsp;"http://testng.org/testng-1.0.dtd"&gt;
<br/>&lt;suite&nbsp;name="Suite"&gt;
<br/>&nbsp;&nbsp;&lt;listeners&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;listener&nbsp;class-name="org.uncommons.reportng.HTMLReporter"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;listener&nbsp;class-name="org.uncommons.reportng.JUnitXMLReporter"/&gt;
<br/>&nbsp;&nbsp;&lt;/listeners&gt;
<br/>&nbsp;&nbsp;&lt;test&nbsp;name="mobile-micoo&nbsp;prgoram-login"&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;classes&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="com.mjitech.qa.test.VaildateLoginName"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="com.mjitech.qa.test.Login"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/classes&gt;
<br/>&nbsp;&nbsp;&lt;/test&gt;&nbsp;&lt;!--&nbsp;mobile-micoo&nbsp;prgoram-login&nbsp;--&gt;
<br/>&nbsp;&nbsp;&lt;test&nbsp;name="Flat&nbsp;Interface"&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;classes&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="com.mjitech.qa.test.GetMachineData"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="com.mjitech.qa.test.ListFault"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="com.mjitech.qa.test.UpdateDoorClose"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="com.mjitech.qa.test.UploadImageList"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/classes&gt;
<br/>&nbsp;&nbsp;&lt;/test&gt;&nbsp;&lt;!--&nbsp;Flat&nbsp;Interface&nbsp;--&gt;
<br/>&lt;/suite&gt;&nbsp;&lt;!--&nbsp;Suite&nbsp;--&gt;
<br/></tt></body></html>
\ No newline at end of file
+<html><head><title>testng.xml for Suite</title></head><body><tt>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;
<br/>&lt;!DOCTYPE&nbsp;suite&nbsp;SYSTEM&nbsp;"http://testng.org/testng-1.0.dtd"&gt;
<br/>&lt;suite&nbsp;name="Suite"&gt;
<br/>&nbsp;&nbsp;&lt;listeners&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;listener&nbsp;class-name="org.uncommons.reportng.HTMLReporter"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;listener&nbsp;class-name="org.uncommons.reportng.JUnitXMLReporter"/&gt;
<br/>&nbsp;&nbsp;&lt;/listeners&gt;
<br/>&nbsp;&nbsp;&lt;test&nbsp;name="mobile-micoo&nbsp;prgoram-login"&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;classes&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="com.mjitech.qa.test.VaildateLoginName"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="com.mjitech.qa.test.Login"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/classes&gt;
<br/>&nbsp;&nbsp;&lt;/test&gt;&nbsp;&lt;!--&nbsp;mobile-micoo&nbsp;prgoram-login&nbsp;--&gt;
<br/>&nbsp;&nbsp;&lt;test&nbsp;name="Flat&nbsp;Interface"&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;classes&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="com.mjitech.qa.test.GetMachineData"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="com.mjitech.qa.test.ListFault"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="com.mjitech.qa.test.UpdateDoorClose"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="com.mjitech.qa.test.UploadImageList"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/classes&gt;
<br/>&nbsp;&nbsp;&lt;/test&gt;&nbsp;&lt;!--&nbsp;Flat&nbsp;Interface&nbsp;--&gt;
<br/>&nbsp;&nbsp;&lt;test&nbsp;name="WeiXin&nbsp;Interface"&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;classes&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;name="com.mjitech.qa.test.GetPagedMainpageData"/&gt;
<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/classes&gt;
<br/>&nbsp;&nbsp;&lt;/test&gt;&nbsp;&lt;!--&nbsp;WeiXin&nbsp;Interface&nbsp;--&gt;
<br/>&lt;/suite&gt;&nbsp;&lt;!--&nbsp;Suite&nbsp;--&gt;
<br/></tt></body></html>
\ No newline at end of file
diff --git a/test-output/old/Suite/toc.html b/test-output/old/Suite/toc.html
index e5c352c..8732115 100644
--- a/test-output/old/Suite/toc.html
+++ b/test-output/old/Suite/toc.html
@@ -8,9 +8,9 @@
 <h3><p align="center">Results for<br/><em>Suite</em></p></h3>
 <table border='1' width='100%'>
 <tr valign='top'>
-<td>2 tests</td>
-<td><a target='mainFrame' href='classes.html'>6 classes</a></td>
-<td>6 methods:<br/>
+<td>3 tests</td>
+<td><a target='mainFrame' href='classes.html'>7 classes</a></td>
+<td>8 methods:<br/>
 &nbsp;&nbsp;<a target='mainFrame' href='methods.html'>chronological</a><br/>
 &nbsp;&nbsp;<a target='mainFrame' href='methods-alphabetical.html'>alphabetical</a><br/>
 &nbsp;&nbsp;<a target='mainFrame' href='methods-not-run.html'>not run (0)</a></td>
@@ -22,6 +22,14 @@
 </tr></table>
 <table width='100%' class='test-failed'>
 <tr><td>
+<table style='width: 100%'><tr><td valign='top'>WeiXin Interface (1/1/0)</td><td valign='top' align='right'>
+  <a href='WeiXin Interface.html' target='mainFrame'>Results</a>
+</td></tr></table>
+</td></tr><p/>
+</table>
+
+<table width='100%' class='test-failed'>
+<tr><td>
 <table style='width: 100%'><tr><td valign='top'>mobile-micoo prgoram-login (5/1/0)</td><td valign='top' align='right'>
   <a href='mobile-micoo prgoram-login.html' target='mainFrame'>Results</a>
 </td></tr></table>
diff --git a/test-output/old/index.html b/test-output/old/index.html
index e8e5010..4625bcd 100644
--- a/test-output/old/index.html
+++ b/test-output/old/index.html
@@ -4,6 +4,6 @@
 </head><body>
 <h2><p align='center'>Test results</p></h2>
 <table border='1' width='100%' class='main-page'><tr><th>Suite</th><th>Passed</th><th>Failed</th><th>Skipped</th><th>testng.xml</th></tr>
-<tr align='center' class='invocation-failed'><td><em>Total</em></td><td><em>0</em></td><td><em>1</em></td><td><em>1</em></td><td>&nbsp;</td></tr>
-<tr align='center' class='invocation-failed'><td><a href='Default suite/index.html'>Default suite</a></td>
-<td>0</td><td>1</td><td>1</td><td><a href='Default suite/testng.xml.html'>Link</a></td></tr></table></body></html>
+<tr align='center' class='invocation-failed'><td><em>Total</em></td><td><em>10</em></td><td><em>2</em></td><td><em>0</em></td><td>&nbsp;</td></tr>
+<tr align='center' class='invocation-failed'><td><a href='Suite/index.html'>Suite</a></td>
+<td>10</td><td>2</td><td>0</td><td><a href='Suite/testng.xml.html'>Link</a></td></tr></table></body></html>
diff --git a/test-output/testng-failed.xml b/test-output/testng-failed.xml
index 25498c2..bfac41a 100644
--- a/test-output/testng-failed.xml
+++ b/test-output/testng-failed.xml
@@ -1,7 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
-<suite name="Failed suite [Default suite]">
-  <test name="Default test(failed)">
+<suite name="Failed suite [Suite]">
+  <listeners>
+    <listener class-name="org.uncommons.reportng.HTMLReporter"/>
+    <listener class-name="org.uncommons.reportng.JUnitXMLReporter"/>
+  </listeners>
+  <test name="mobile-micoo prgoram-login(failed)">
+    <classes>
+      <class name="com.mjitech.qa.test.VaildateLoginName">
+        <methods>
+          <include name="VaildateLoginNameByDabao"/>
+        </methods>
+      </class> <!-- com.mjitech.qa.test.VaildateLoginName -->
+    </classes>
+  </test> <!-- mobile-micoo prgoram-login(failed) -->
+  <test name="WeiXin Interface(failed)">
     <classes>
       <class name="com.mjitech.qa.test.GetPagedMainpageData">
         <methods>
@@ -10,5 +23,5 @@
         </methods>
       </class> <!-- com.mjitech.qa.test.GetPagedMainpageData -->
     </classes>
-  </test> <!-- Default test(failed) -->
-</suite> <!-- Failed suite [Default suite] -->
+  </test> <!-- WeiXin Interface(failed) -->
+</suite> <!-- Failed suite [Suite] -->
diff --git a/test-output/testng-results.xml b/test-output/testng-results.xml
index 5f23165..7414c78 100644
--- a/test-output/testng-results.xml
+++ b/test-output/testng-results.xml
@@ -1,13 +1,166 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<testng-results skipped="1" failed="1" total="2" passed="0">
+<testng-results skipped="0" failed="2" total="12" passed="10">
   <reporter-output>
   </reporter-output>
-  <suite name="Default suite" duration-ms="647" started-at="2018-09-28T10:31:00Z" finished-at="2018-09-28T10:31:01Z">
+  <suite name="Suite" duration-ms="1747" started-at="2018-09-28T11:57:22Z" finished-at="2018-09-28T11:57:24Z">
     <groups>
     </groups>
-    <test name="Default test" duration-ms="647" started-at="2018-09-28T10:31:00Z" finished-at="2018-09-28T10:31:01Z">
+    <test name="mobile-micoo prgoram-login" duration-ms="872" started-at="2018-09-28T11:57:22Z" finished-at="2018-09-28T11:57:23Z">
+      <class name="com.mjitech.qa.test.Login">
+        <test-method status="PASS" signature="login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]" name="login" duration-ms="573" started-at="2018-09-28T19:57:22Z" data-provider="loginFenJian" finished-at="2018-09-28T19:57:22Z">
+          <params>
+            <param index="0">
+              <value>
+                <![CDATA[fenjian]]>
+              </value>
+            </param>
+            <param index="1">
+              <value>
+                <![CDATA[yier34wu6]]>
+              </value>
+            </param>
+          </params>
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- login -->
+        <test-method status="PASS" signature="login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]" name="login" duration-ms="81" started-at="2018-09-28T19:57:22Z" data-provider="loginFenJian" finished-at="2018-09-28T19:57:23Z">
+          <params>
+            <param index="0">
+              <value>
+                <![CDATA[dabao]]>
+              </value>
+            </param>
+            <param index="1">
+              <value>
+                <![CDATA[yier34wu6]]>
+              </value>
+            </param>
+          </params>
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- login -->
+        <test-method status="PASS" signature="login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]" name="login" duration-ms="64" started-at="2018-09-28T19:57:23Z" data-provider="loginFenJian" finished-at="2018-09-28T19:57:23Z">
+          <params>
+            <param index="0">
+              <value>
+                <![CDATA[peisong]]>
+              </value>
+            </param>
+            <param index="1">
+              <value>
+                <![CDATA[yier34wu6]]>
+              </value>
+            </param>
+          </params>
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- login -->
+        <test-method status="PASS" signature="login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]" name="login" duration-ms="70" started-at="2018-09-28T19:57:23Z" data-provider="loginFenJian" finished-at="2018-09-28T19:57:23Z">
+          <params>
+            <param index="0">
+              <value>
+                <![CDATA[jiqikuguan]]>
+              </value>
+            </param>
+            <param index="1">
+              <value>
+                <![CDATA[yier34wu6]]>
+              </value>
+            </param>
+          </params>
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- login -->
+        <test-method status="PASS" signature="login(java.lang.String, java.lang.String)[pri:0, instance:com.mjitech.qa.test.Login@69379752]" name="login" duration-ms="57" started-at="2018-09-28T19:57:23Z" data-provider="loginFenJian" finished-at="2018-09-28T19:57:23Z">
+          <params>
+            <param index="0">
+              <value>
+                <![CDATA[gangwang@mjitech.com]]>
+              </value>
+            </param>
+            <param index="1">
+              <value>
+                <![CDATA[1234456]]>
+              </value>
+            </param>
+          </params>
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- login -->
+      </class> <!-- com.mjitech.qa.test.Login -->
+      <class name="com.mjitech.qa.test.VaildateLoginName">
+        <test-method status="FAIL" signature="VaildateLoginNameByDabao(java.lang.String)[pri:0, instance:com.mjitech.qa.test.VaildateLoginName@7dc222ae]" name="VaildateLoginNameByDabao" duration-ms="0" started-at="2018-09-28T19:57:22Z" data-provider="vaildateLoginName" finished-at="2018-09-28T19:57:22Z">
+          <exception class="org.testng.TestNGException">
+            <message>
+              <![CDATA[
+DataProvider should be static: public java.lang.Object[][] com.mjitech.qa.data.VaildateLoginNameData.vaildateLoginName()]]>
+            </message>
+            <full-stacktrace>
+              <![CDATA[org.testng.TestNGException: 
+DataProvider should be static: public java.lang.Object[][] com.mjitech.qa.data.VaildateLoginNameData.vaildateLoginName()
+	at org.testng.internal.Parameters.findDataProvider(Parameters.java:331)
+	at org.testng.internal.Parameters.findDataProvider(Parameters.java:265)
+	at org.testng.internal.Parameters.handleParameters(Parameters.java:417)
+	at org.testng.internal.Invoker.handleParameters(Invoker.java:1383)
+	at org.testng.internal.Invoker.createParameters(Invoker.java:1075)
+	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1180)
+	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
+	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
+	at org.testng.TestRunner.privateRun(TestRunner.java:767)
+	at org.testng.TestRunner.run(TestRunner.java:617)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:240)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
+	at org.testng.TestNG.run(TestNG.java:1057)
+	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
+	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)
+	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)
+]]>
+            </full-stacktrace>
+          </exception> <!-- org.testng.TestNGException -->
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- VaildateLoginNameByDabao -->
+      </class> <!-- com.mjitech.qa.test.VaildateLoginName -->
+    </test> <!-- mobile-micoo prgoram-login -->
+    <test name="Flat Interface" duration-ms="189" started-at="2018-09-28T11:57:23Z" finished-at="2018-09-28T11:57:23Z">
+      <class name="com.mjitech.qa.test.ListFault">
+        <test-method status="PASS" signature="list_fault()[pri:0, instance:com.mjitech.qa.test.ListFault@1188e820]" name="list_fault" duration-ms="39" started-at="2018-09-28T19:57:23Z" finished-at="2018-09-28T19:57:23Z">
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- list_fault -->
+      </class> <!-- com.mjitech.qa.test.ListFault -->
+      <class name="com.mjitech.qa.test.UploadImageList">
+        <test-method status="PASS" signature="fault()[pri:0, instance:com.mjitech.qa.test.UploadImageList@101df177]" name="fault" duration-ms="40" started-at="2018-09-28T19:57:23Z" finished-at="2018-09-28T19:57:23Z">
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- fault -->
+      </class> <!-- com.mjitech.qa.test.UploadImageList -->
+      <class name="com.mjitech.qa.test.GetMachineData">
+        <test-method status="PASS" signature="getMachineData()[pri:0, instance:com.mjitech.qa.test.GetMachineData@166fa74d]" name="getMachineData" duration-ms="69" started-at="2018-09-28T19:57:23Z" finished-at="2018-09-28T19:57:23Z">
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- getMachineData -->
+      </class> <!-- com.mjitech.qa.test.GetMachineData -->
+      <class name="com.mjitech.qa.test.UpdateDoorClose">
+        <test-method status="PASS" signature="update_close_door()[pri:0, instance:com.mjitech.qa.test.UpdateDoorClose@2f490758]" name="update_close_door" duration-ms="31" started-at="2018-09-28T19:57:23Z" finished-at="2018-09-28T19:57:23Z">
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- update_close_door -->
+      </class> <!-- com.mjitech.qa.test.UpdateDoorClose -->
+    </test> <!-- Flat Interface -->
+    <test name="WeiXin Interface" duration-ms="654" started-at="2018-09-28T11:57:23Z" finished-at="2018-09-28T11:57:24Z">
       <class name="com.mjitech.qa.test.GetPagedMainpageData">
-        <test-method status="FAIL" signature="test_login_with_openid()[pri:0, instance:com.mjitech.qa.test.GetPagedMainpageData@6043cd28]" name="test_login_with_openid" duration-ms="619" started-at="2018-09-28T18:31:00Z" finished-at="2018-09-28T18:31:01Z">
+        <test-method status="PASS" signature="test_login_with_openid()[pri:0, instance:com.mjitech.qa.test.GetPagedMainpageData@32464a14]" name="test_login_with_openid" duration-ms="140" started-at="2018-09-28T19:57:23Z" finished-at="2018-09-28T19:57:23Z">
+          <reporter-output>
+          </reporter-output>
+        </test-method> <!-- test_login_with_openid -->
+        <test-method status="FAIL" signature="get_paged_mainpage_data()[pri:0, instance:com.mjitech.qa.test.GetPagedMainpageData@32464a14]" name="get_paged_mainpage_data" duration-ms="508" started-at="2018-09-28T19:57:23Z" depends-on-methods="com.mjitech.qa.test.GetPagedMainpageData.test_login_with_openid" finished-at="2018-09-28T19:57:24Z">
           <exception class="java.lang.AssertionError">
             <message>
               <![CDATA[expected [true] but found [false]]]>
@@ -19,7 +172,7 @@
 	at org.testng.Assert.assertEquals(Assert.java:123)
 	at org.testng.Assert.assertEquals(Assert.java:286)
 	at org.testng.Assert.assertEquals(Assert.java:296)
-	at com.mjitech.qa.test.GetPagedMainpageData.test_login_with_openid(GetPagedMainpageData.java:33)
+	at com.mjitech.qa.test.GetPagedMainpageData.get_paged_mainpage_data(GetPagedMainpageData.java:61)
 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
@@ -49,12 +202,8 @@
           </exception> <!-- java.lang.AssertionError -->
           <reporter-output>
           </reporter-output>
-        </test-method> <!-- test_login_with_openid -->
-        <test-method status="SKIP" signature="get_paged_mainpage_data()[pri:0, instance:com.mjitech.qa.test.GetPagedMainpageData@6043cd28]" name="get_paged_mainpage_data" duration-ms="1" started-at="2018-09-28T18:31:01Z" depends-on-methods="com.mjitech.qa.test.GetPagedMainpageData.test_login_with_openid" finished-at="2018-09-28T18:31:01Z">
-          <reporter-output>
-          </reporter-output>
         </test-method> <!-- get_paged_mainpage_data -->
       </class> <!-- com.mjitech.qa.test.GetPagedMainpageData -->
-    </test> <!-- Default test -->
-  </suite> <!-- Default suite -->
+    </test> <!-- WeiXin Interface -->
+  </suite> <!-- Suite -->
 </testng-results>
diff --git a/test-output/xml/com.mjitech.qa.test.GetMachineData_results.xml b/test-output/xml/com.mjitech.qa.test.GetMachineData_results.xml
index 5e6c828..fb84bf8 100644
--- a/test-output/xml/com.mjitech.qa.test.GetMachineData_results.xml
+++ b/test-output/xml/com.mjitech.qa.test.GetMachineData_results.xml
@@ -4,10 +4,10 @@
            failures="0"
            errors="0"
            skipped="0"
-           time="0.087">
+           time="0.069">
   <properties />
   
   
-            <testcase name="getMachineData" time="0.087" classname="com.mjitech.qa.test.GetMachineData" />
+            <testcase name="getMachineData" time="0.069" classname="com.mjitech.qa.test.GetMachineData" />
       
 </testsuite>
diff --git a/test-output/xml/com.mjitech.qa.test.GetPagedMainpageData_results.xml b/test-output/xml/com.mjitech.qa.test.GetPagedMainpageData_results.xml
new file mode 100644
index 0000000..b38d279
--- /dev/null
+++ b/test-output/xml/com.mjitech.qa.test.GetPagedMainpageData_results.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite name="WeiXin Interface"
+           tests="2"
+           failures="1"
+           errors="0"
+           skipped="0"
+           time="0.648">
+  <properties />
+            <testcase name="get_paged_mainpage_data" time="0.508" classname="com.mjitech.qa.test.GetPagedMainpageData">
+                <failure type="java.lang.AssertionError"
+                  message="expected [true] but found [false]"
+              >
+<![CDATA[java.lang.AssertionError: expected [true] but found [false]
+  org.testng.Assert.fail(Assert.java:94)
+  org.testng.Assert.failNotEquals(Assert.java:494)
+  org.testng.Assert.assertEquals(Assert.java:123)
+  org.testng.Assert.assertEquals(Assert.java:286)
+  org.testng.Assert.assertEquals(Assert.java:296)
+  com.mjitech.qa.test.GetPagedMainpageData.get_paged_mainpage_data(GetPagedMainpageData.java:61)
+  sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+  sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+  sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+  java.lang.reflect.Method.invoke(Method.java:498)
+  org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
+  org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
+  org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
+  org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
+  org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
+  org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
+  org.testng.TestRunner.privateRun(TestRunner.java:767)
+  org.testng.TestRunner.run(TestRunner.java:617)
+  org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
+  org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
+  org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
+  org.testng.SuiteRunner.run(SuiteRunner.java:240)
+  org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+  org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
+  org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
+  org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
+  org.testng.TestNG.run(TestNG.java:1057)
+  org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
+  org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)
+  org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)
+]]>
+      </failure>
+
+          </testcase>
+  
+  
+            <testcase name="test_login_with_openid" time="0.140" classname="com.mjitech.qa.test.GetPagedMainpageData" />
+      
+</testsuite>
diff --git a/test-output/xml/com.mjitech.qa.test.ListFault_results.xml b/test-output/xml/com.mjitech.qa.test.ListFault_results.xml
index e3a0ffa..02c74ee 100644
--- a/test-output/xml/com.mjitech.qa.test.ListFault_results.xml
+++ b/test-output/xml/com.mjitech.qa.test.ListFault_results.xml
@@ -4,10 +4,10 @@
            failures="0"
            errors="0"
            skipped="0"
-           time="0.038">
+           time="0.039">
   <properties />
   
   
-            <testcase name="list_fault" time="0.038" classname="com.mjitech.qa.test.ListFault" />
+            <testcase name="list_fault" time="0.039" classname="com.mjitech.qa.test.ListFault" />
       
 </testsuite>
diff --git a/test-output/xml/com.mjitech.qa.test.Login_results.xml b/test-output/xml/com.mjitech.qa.test.Login_results.xml
index 93c3f1f..1b91d79 100644
--- a/test-output/xml/com.mjitech.qa.test.Login_results.xml
+++ b/test-output/xml/com.mjitech.qa.test.Login_results.xml
@@ -4,14 +4,14 @@
            failures="0"
            errors="0"
            skipped="0"
-           time="0.562">
+           time="0.845">
   <properties />
   
   
-            <testcase name="login" time="0.032" classname="com.mjitech.qa.test.Login" />
-                <testcase name="login" time="0.028" classname="com.mjitech.qa.test.Login" />
-                <testcase name="login" time="0.440" classname="com.mjitech.qa.test.Login" />
-                <testcase name="login" time="0.033" classname="com.mjitech.qa.test.Login" />
-                <testcase name="login" time="0.029" classname="com.mjitech.qa.test.Login" />
+            <testcase name="login" time="0.573" classname="com.mjitech.qa.test.Login" />
+                <testcase name="login" time="0.081" classname="com.mjitech.qa.test.Login" />
+                <testcase name="login" time="0.064" classname="com.mjitech.qa.test.Login" />
+                <testcase name="login" time="0.057" classname="com.mjitech.qa.test.Login" />
+                <testcase name="login" time="0.070" classname="com.mjitech.qa.test.Login" />
       
 </testsuite>
diff --git a/test-output/xml/com.mjitech.qa.test.UpdateDoorClose_results.xml b/test-output/xml/com.mjitech.qa.test.UpdateDoorClose_results.xml
index 7c7fc17..db140fb 100644
--- a/test-output/xml/com.mjitech.qa.test.UpdateDoorClose_results.xml
+++ b/test-output/xml/com.mjitech.qa.test.UpdateDoorClose_results.xml
@@ -4,10 +4,10 @@
            failures="0"
            errors="0"
            skipped="0"
-           time="0.026">
+           time="0.031">
   <properties />
   
   
-            <testcase name="update_close_door" time="0.026" classname="com.mjitech.qa.test.UpdateDoorClose" />
+            <testcase name="update_close_door" time="0.031" classname="com.mjitech.qa.test.UpdateDoorClose" />
       
 </testsuite>
diff --git a/test-output/xml/com.mjitech.qa.test.UploadImageList_results.xml b/test-output/xml/com.mjitech.qa.test.UploadImageList_results.xml
index cd6de27..e996790 100644
--- a/test-output/xml/com.mjitech.qa.test.UploadImageList_results.xml
+++ b/test-output/xml/com.mjitech.qa.test.UploadImageList_results.xml
@@ -4,10 +4,10 @@
            failures="0"
            errors="0"
            skipped="0"
-           time="0.205">
+           time="0.040">
   <properties />
   
   
-            <testcase name="upload_image_list" time="0.205" classname="com.mjitech.qa.test.UploadImageList" />
+            <testcase name="fault" time="0.040" classname="com.mjitech.qa.test.UploadImageList" />
       
 </testsuite>