程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> BeanShell在人工測試與管理之中的應用

BeanShell在人工測試與管理之中的應用

編輯:J2EE

JUnit 單元測試學深入人心的同時,也發現它對用戶交互測試無能為力:

TestCase 允許測試人員作動態的修改

可以在Test Case 中實現一個測試參數輸入功能(UI 或參數配置文件)來解決這個問題,但實現這些功能的代價與重復工作量會很大。

TestCase 可以方便地重復使用、組合、保存

不是所有所有測試環境下,都容許打開一個重量級的 Java IDE 編寫有嚴格規范的 Java 代碼。這就是腳本語言受歡迎的原因。

BeanShell 可以較好解決以上問題。

1.BeanShell基本:

bsh.Interpreter 是beanShell 的主要接口。

以下可以實現一個簡單的Java Shell:

public class TestInt {
public static void main(String[] args) {
bsh.Interpreter.main(args);
}
}
 

結果:

BeanShell 2.0b4 - by Pat NIEmeyer ([email protected])

bsh % System.out.println("Hello BeanShell");

Hello BeanShell

bsh %

你也可以用以下代碼實現同樣的功能,代碼中可以比較明顯地看出其結構:

public static void main(String[] args) {
Reader in = new InputStreamReader( System.in );
PrintStream out = System.out;
PrintStream err = System.err;
boolean interactive = true;;
bsh.Interpreter i = new Interpreter( in, out, err, interactive );
i.run();//線程在這裡阻塞讀System.in
}
 

1.1.BeanShell上下文(Context/Namespace):

public static void main(String[] args) throws Throwable {
Reader in = new InputStreamReader( System.in );
PrintStream out = System.out;
PrintStream err = System.err;
boolean interactive = true;;
bsh.Interpreter i = new Interpreter( in, out, err, interactive );
Collection theObjectReadyForShellUser = new ArrayList();
theObjectReadyForShellUser.add("Str1");
i.set("myObject", theObjectReadyForShellUser);
i.run();
}
 

用戶的UI:

BeanShell 2.0b4 - by Pat NIEmeyer ([email protected])

bsh % System.out.println( myObject.get(0) );

Str1

bsh %

Shell的上下文在測試中特別有用。想一下,如果將上面的“theObjectReadyForShellUser”換成一個預先為測試用戶生成的RMI本地接口存根,由測試用戶調用相應的存根方法。這可應用於動態測試,也可以應用於系統的遠程管理。

1.2.靜態Java代碼與動態Java代碼的組合使用。

public static void main(String[] args) throws Throwable {
Reader in = new InputStreamReader( System.in );
PrintStream out = System.out;
PrintStream err = System.err;
boolean interactive = true;;
bsh.Interpreter i = new Interpreter( in, out, err, interactive );
//show a dialog for user to input command.
String command = JOptionPane.showInputDialog( "Input Command(s)" );
i.eval( command );//Run the command
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved