如何基于命令行自动化应用程序?

时间:2012-12-19 15:36:52

标签: shell batch-file automated-tests

我有一个基于Java的应用程序,我使用命令提示符运行。我目前正在手动测试它。我想自动化这个过程。我应该使用什么工具或脚本?

例如:

  1. 首先,我将运行java命令来运行.java文件。
  2. 我的申请会给我5个选项。例如
    一世。添加
    II。减去
    III。乘 IV。划分。
  3. 它应该选择其中一个选项并添加数字并使用预期结果验证结果。所有这些都将使用命令提示符完成。

3 个答案:

答案 0 :(得分:2)

我意识到你要求一个命令提示解决方案,但你真的应该研究JUnit。对于更多种类的测试条件,它将是一种更易于维护的解决方案。如果使用命令行,则必须解析所有输入和输出。为了真正测试你的代码,你不必经历命令行的中间步骤(stdin,stdout);你应该有运行Java代码的Java代码,因为它可以访问变量。

如果您确实使用命令行,则必须向我们提供有关程序运行方式的更多详细信息。这只是黑暗中的一击:

inputs.txt(这些是将输入您的程序的输入)

Add
4
6

test.bat

@ECHO OFF
:: I just assume that your program prompts for input and waits for stdin
java YourMainClass < inputs.txt > testOutput.txt 
:: Program prompts for an operation; "Add" is read from inputs.txt
:: Program prompts for values; "4" and "6" are read from inputs.txt
:: Program prints out the result, which is redirected to testOutput.txt
:: Now you have to read in the testOutput.txt file and look at the last line
FOR /F %%i IN (testOutput.txt) DO SET RESULT=%%i
:: The variable RESULT now contains your program's answer
:: Create a variable to compare your actual result with the expected result
SET EXPECTED=10
IF %RESULT% == %EXPECTED% ECHO "You were correct"
IF NOT %RESULT% == %EXPECTED% ECHO "You were not correct"

答案 1 :(得分:0)

您需要使用批处理文件。将命令放在记事本文件中并将其另存为.bat

如果它们不是本机批处理命令,但您可能需要更改某些内容,但在我确认之前您需要发布命令。

答案 2 :(得分:0)

标准输入可以输入java应用程序。如果你正在使用bash,可以像下面那样完成:

java myapp.java < test1

其中myapp.java是使用main方法的应用程序,test1是您的测试输入(普通的旧文本文件)。