我会问你一些问题,如何使用java编程将终端输出导出到txt文件。因为我想使用webdriver自动测试日志 这是我的代码。
public class Test5
{
private static WebDriver webDriver;
public static void main(String[] args) throws AWTException, InterruptedException, JSchException, IOException
{
String host = "host";
String user = "user";
String password = "password";
String command1 = "ssh app@host.com";
String userPC = System.getProperty("user.name");
String path = "/home/" + userPC + "/Desktop/ScreenShot/Downloads/";
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", path);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk",
"application/pdf, text/csv, application/csv, application/octet-stream, text/plain, text/pdf, application/vnd.google-earth.kml+xml");
webDriver = new FirefoxDriver(profile);
Link links = Link.trd;
webDriver.get("http://app." + links + ".ams:8080/admin/loginservice.do");
Thread.sleep(1500);
webDriver.close();
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "No");
//config.put("PreferredAuthentications", "password");
JSch jsch = new JSch();
com.jcraft.jsch.Session session = jsch.getSession(user, host, 22);
session.setPassword(password);
session.setConfig(config);
//session.setConfig("PreferredAuthentications", "password");
session.connect();
Channel channel = session.openChannel("shell");
channel.connect();
Expect expect = new ExpectBuilder()
.withOutput(channel.getOutputStream())
.withInputs(channel.getInputStream(), channel.getExtInputStream())
.withEchoOutput(System.out)
.withEchoInput(System.err)
.build();
expect.sendLine("less /app/logs/jboss/server.log > qwetest103.txt");
Thread.sleep(1000);
PrintStream out = new PrintStream(new FileOutputStream("/home/"+userPC+"/Desktop/ScreenShot/Log/text.txt"));
System.setOut(out);
String format = "jpg";
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage screenFullImage = robot.createScreenCapture(screenRect);
ImageIO.write(screenFullImage, format, new File("/home/"+userPC+"/Desktop/ScreenShot/Log/Log"+new Date()+".png"));
}
}
你可以帮助我解决我的问题吗?
此致
答案 0 :(得分:0)
这很容易。写下面的代码:
PrintStream out = new PrintStream(new FileOutputStream("/urlocation/output.txt"));
System.setOut(out);
这会将控制台输出保存到名为output.txt的文本文件中。 希望它会对你有所帮助。
还有一件事,
你把这两行放在那里,它会在该行之后将控制台日志记录到文件中。如果你把这两行放在最上面,它会捕获从那里到文件的所有日志。在声明webdriver之前写下这两行。