我想自动化测试。为此,我在soapui的groovy中编写了一个脚本。现在我使用java代码调用该脚本。但我想传递用户给出的参数。我看到了一些像soapui脚本或脚本引擎的界面。这会有帮助吗?我知道我不应该在没有尝试任何事情的情况下问,但我不知道如何开始。请帮帮我
答案 0 :(得分:0)
我们假设src / test / groovy / com / ka / script.groovy中有一个脚本,src / test / java / com / ka / MyScriptTest.java中有一个测试
script.groovy
println "Hello ${name}"
name
MyScriptTest.java
package com.ka;
import groovy.lang.Binding;
import groovy.lang.GroovyShell;
import groovy.lang.Script;
import org.junit.Test;
import java.io.*;
public class MyScriptTest {
@Test
public void executeScript() {
Binding binding = new Binding();
binding.setVariable("name", "anonymous");
GroovyShell shell = new GroovyShell(binding);
Script script = shell.parse(getScript("./src/test/groovy/com/ka/script.groovy"));
ByteArrayOutputStream scriptOutput = new ByteArrayOutputStream();
PrintStream newOut = new PrintStream(scriptOutput);
PrintStream oldOut = System.out;
try {
System.setOut(newOut);
Object result = script.run();
System.out.println("result = " + result);
} finally {
System.setOut(oldOut);
}
System.out.println("script output = " + scriptOutput.toString());
}
private InputStreamReader getScript(String scriptPath) {
try {
return new InputStreamReader(new FileInputStream(scriptPath));
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
}
此处测试将name变量的值传递给脚本。这是你需要的,因为我不知道。