Bladeren bron

记录脚本执行结果

LiHaoyu 5 jaren geleden
bovenliggende
commit
362bd8de46

+ 5 - 1
src/main/java/net/mooctest/www/android_auto_test/common/FuckingTest.java

@@ -20,7 +20,11 @@ public class FuckingTest {
         HashMap<String, Object> params = new HashMap<>(4);
         params.put("a", 1);
         params.put("b", 2);
-        GroovyExecutor.executeScript("add", params);
+        try {
+            GroovyExecutor.executeScript("add", params);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
 //        Inner i = new Inner();
 //        try {
 //            i.test2();

+ 10 - 19
src/main/java/net/mooctest/www/android_auto_test/groovy/GroovyExecutor.java

@@ -15,31 +15,22 @@ import java.util.Iterator;
  * @author henrylee
  */
 public class GroovyExecutor {
-    public static void executeMethod(String scriptName, String methodName, Object[] objects){
-        try {
-            GroovyScriptEngine scriptEngine = new GroovyScriptEngine("");
-            Class c = scriptEngine.loadScriptByName("scripts/" + scriptName);
-            //实例化 GroovyDemo 类
-            GroovyObject groovyObj = (GroovyObject) c.newInstance();
-            //调用 groovyDemo 成员方法
-            groovyObj.invokeMethod(methodName, objects);
-        }catch (Exception e){
-            e.printStackTrace();
-        }
+    public static void executeMethod(String scriptName, String methodName, Object[] objects) throws Exception{
+        GroovyScriptEngine scriptEngine = new GroovyScriptEngine("");
+        Class c = scriptEngine.loadScriptByName("scripts/" + scriptName);
+        //实例化 GroovyDemo 类
+        GroovyObject groovyObj = (GroovyObject) c.newInstance();
+        //调用 groovyDemo 成员方法
+        groovyObj.invokeMethod(methodName, objects);
     }
 
-    public static void executeScript(String scriptName, HashMap<String, Object> params){
+    public static void executeScript(String scriptName, HashMap<String, Object> params) throws Exception{
         Binding binding = new Binding();
         for (String key : params.keySet()) {
             Object value = params.get(key);
             binding.setVariable(key, value);
         }
-        try {
-            GroovyScriptEngine engine = new GroovyScriptEngine("");
-            Object result = engine.run("scripts/" + scriptName + ".groovy", binding);
-            System.out.println(result);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GroovyScriptEngine engine = new GroovyScriptEngine("");
+        engine.run("scripts/" + scriptName + ".groovy", binding);
     }
 }

+ 21 - 2
src/main/java/net/mooctest/www/android_auto_test/utils/CoverageTest.java

@@ -208,6 +208,17 @@ public class CoverageTest extends Thread{
         DeviceUtil.saveDeviceExecInfo(traceId, udid, infos);
     }
 
+    private void updateScriptExecuteResult(String content){
+        File scriptExecuteResult = new File(this.logPath + File.separator + "scriptExecuteResult.log");
+        try {
+            BufferedWriter writer = new BufferedWriter(new FileWriter(scriptExecuteResult, false));
+            writer.write(content);
+            writer.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
     private void createCoverageTestDir(){
         this.logPath = "tasks" + File.separator + traceId + File.separator + udid;
         File logDir = new File(this.logPath);
@@ -224,6 +235,8 @@ public class CoverageTest extends Thread{
         FileUtil.newFile(uninstallLog);
         FileUtil.newFile(coverInstallLog);
         FileUtil.newFile(execErrorLog);
+        File scriptExecuteResultLog = new File(this.logPath + File.separator + "scriptExecuteResult.log");
+        FileUtil.newFile(scriptExecuteResultLog);
 
         // 这里先创建一些测试脚本时才会创建的内容,是为了提供给报告生成服务一个兜底的东西
         // 设备执行信息
@@ -296,12 +309,18 @@ public class CoverageTest extends Thread{
     }
 
     private void executeScript(){
+        updateScriptExecuteResult("1");
         if (customScriptName == null) {
-            PrintUtil.print("use the default script " + udid, TAG, udid);
+            PrintUtil.print("use default script " + udid, TAG, udid);
             script = new DefaultScript(udid, driver, apkInfo, traceId);
             script.runAndroidAutoTest();
         }else {
-            GroovyExecutor.executeMethod(customScriptName, "test", new Object[]{driver});
+            PrintUtil.print("use custom script " + udid, TAG, udid);
+            try {
+                 GroovyExecutor.executeMethod(customScriptName, "test", new Object[]{driver});
+            }catch (Exception e){
+                updateScriptExecuteResult("0");
+            }
         }
     }