网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > 开源技术 > JUnit > BeanShell 在人工测试与管理中的应用  

BeanShell 在人工测试与管理中的应用

2007-08-06  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

JUnit 单元测试学深入人心的同时,也发现它对用户交互测试无能为力: 网管网www.bitscn.com

TestCase 允许测试人员作动态的修改
    可以在Test Case 中实现一个测试参数输入功能(UI 或参数配置文件)来解决这个问题,但实现这些功能的代价与重复工作量会很大。

网管下载dl.bitscn.com

TestCase 可以方便地重复使用、组合、保存
    不是所有所有测试环境下,都容许打开一个重量级的 Java IDE 编写有严格规范的 Java 代码。这就是脚本语言受欢迎的原因。

网管u家u.bitsCN.com

BeanShell 可以较好解决以上问题。 中国网管联盟bitsCN.com

1.BeanShell基本:
bsh.Interpreter beanShell 的主要接口。
网管网www_bitscn_com

以下可以实现一个简单的Java Shell: 中国网管联盟bitsCN.com


中国网管联盟bitsCN.com

public class TestInt {

网管论坛bbs_bitsCN_com

public static void main(String[] args) { 网管网www.bitscn.com

bsh.Interpreter.main(args);

网管bitscn_com

} 网管u家u.bitscn@com

} 网管网www.bitscn.com


网管u家u.bitscn@com

结果:

中国网管论坛bbs.bitsCN.com

BeanShell 2.0b4 - by Pat Niemeyer (pat@pat.net) 中国网管论坛bbs.bitsCN.com

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

网管网www.bitscn.com

Hello BeanShell 中国网管联盟bitsCN.com

bsh % 网管bitscn_com


网管u家u.bitscn@com

你也可以用以下代码实现同样的功能,代码中可以比较明显地看出其结构:

网管网www.bitscn.com

public static void main(String[] args) { 网管u家u.bitsCN.com

Reader in = new InputStreamReader( System.in );

网管u家u.bitsCN.com

PrintStream out = System.out; 网管联盟bitsCN@com

PrintStream err = System.err;

网管论坛bbs_bitsCN_com

boolean interactive = true;;

网管u家u.bitsCN.com

bsh.Interpreter i = new Interpreter( in, out, err, interactive );

网管联盟bitsCN_com

i.run();//线程在这里阻塞读System.in 网管网www_bitscn_com

} 网管u家u.bitscn@com

1.1.BeanShell上下文(Context/Namespace)

public static void main(String[] args) throws Throwable { 网管bitscn_com

Reader in = new InputStreamReader( System.in );

网管联盟bitsCN_com

PrintStream out = System.out; 网管网www.bitscn.com

PrintStream err = System.err;

网管下载dl.bitscn.com

boolean interactive = true;;

中国网管联盟bitsCN.com

bsh.Interpreter i = new Interpreter( in, out, err, interactive ); 网管u家u.bitscn@com

Collection theObjectReadyForShellUser = new ArrayList(); 网管下载dl.bitscn.com

theObjectReadyForShellUser.add("Str1");

网管u家u.bitscn@com

i.set("myObject", theObjectReadyForShellUser); 网管论坛bbs_bitsCN_com

i.run(); 网管联盟bitsCN@com

}
网管网www_bitscn_com



网管bitscn_com

用户的UI

网管网www_bitscn_com

BeanShell 2.0b4 - by Pat Niemeyer (pat@pat.net) 网管网www.bitscn.com

bsh % System.out.println( myObject.get(0) ); 网管下载dl.bitscn.com

Str1 网管u家u.bitscn@com

bsh % 网管联盟bitsCN_com


网管下载dl.bitscn.com

    Shell的上下文在测试中特别有用。想一下,如果将上面的“theObjectReadyForShellUser”换成一个预先为测试用户生成的RMI本地接口存根,由测试用户调用相应的存根方法。这可应用于动态测试,也可以应用于系统的远程管理。 网管u家u.bitscn@com


网管u家u.bitscn@com

1.2.静态Java代码与动态Java代码的组合使用。

public static void main(String[] args) throws Throwable { 网管bitscn_com

Reader in = new InputStreamReader( System.in ); 网管论坛bbs_bitsCN_com

PrintStream out = System.out;

中国网管联盟bitsCN.com

PrintStream err = System.err;

网管网www_bitscn_com

boolean interactive = true;; 网管u家u.bitsCN.com

bsh.Interpreter i = new Interpreter( in, out, err, interactive );

网管bitscn_com


网管联盟bitsCN@com

//show a dialog for user to input command.

网管网www.bitscn.com

String command = JOptionPane.showInputDialog( "Input Command(s)" );

网管u家u.bitsCN.com

网管论坛bbs_bitsCN_com

i.eval( command );//Run the command

网管联盟bitsCN_com

} 网管联盟bitsCN@com


TAGs应用   管理   测试   人工   可以   new   interactive   err   PrintStream    
 上一篇:JForum 2.1.7 源程序编译草记   下一篇:名词解释 什么是JUnit?
BeanShell 在人工测试与管理中的应用 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: