JUnit 单元测试学深入人心的同时,也发现它对用户交互测试无能为力:
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 (pat@pat.net) 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 (pat@pat.net) 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 } |
分享到:
相关推荐
在本文中,我们将探讨如何利用BeanShell创建一个公式管理系统,它允许用户自定义、修改和删除公式,同时提供接口用于计算。 1. **BeanShell简介** BeanShell允许开发者编写Java脚本,并在运行时即时执行,无需编译...
- 在JMeter中,BeanShell组件允许用户在测试计划中嵌入Java代码,处理请求和响应数据,执行条件判断,以及实现更高级别的测试逻辑。 2. **BeanShell元件支持的变量和方法** - **vars**:这是一个变量对象,用于在...
在实际应用中,Beanshell 可用于自动化任务、单元测试、配置管理、元编程等场景。它的灵活性和易用性使其成为Java开发者的得力工具。例如,你可以在应用启动时用它加载配置文件,或者在运行时根据用户输入动态调整...
5. **使用BeanShell进行测试**:在软件测试中,BeanShell可以用来编写简单的测试脚本,模拟用户行为,验证应用程序的功能。 6. **结合其他Java工具**:BeanShell可以与Java的各种工具和库无缝集成,如Spring框架、...
在实际应用中,Beanshell 可用于自动化任务、配置管理、系统集成、快速原型开发等多个场景。例如,你可以用它来快速实现一个简单的计算器,编写脚本来处理复杂的数据分析任务,或者在Java应用中添加动态行为。 总之...
BeanShell允许我们在测试计划中执行自定义的Java代码。因此,我们可以用BeanShell脚本来调用POI库,实现对Excel文件的操作。 以下是使用BeanShell和POI读取Excel文件的基本步骤: 1. 将Apache POI库添加到JMeter的...
BeanShell在Java应用中常被用来进行快速原型开发、测试以及扩展,它提供了一种简单的方式来动态执行Java表达式、语句或者完整的脚本。 BeanShell的核心库包含在`bsh-core-2.0b4.jar`文件中,这是在根目录Bean/bin...
BeanShell 的设计目标是提供一个灵活、动态的工具,用于测试、原型设计、脚本以及对Java应用程序进行调试。由于其与Java语言的紧密集成,它可以在运行时动态地创建和修改Java对象,这在很多场景下都非常有用。 ...
2. 测试与调试:在测试阶段,可以使用 Beanshell 快速编写测试脚本,检查和验证应用的行为。 3. 自定义插件系统:Beanshell 可以作为动态加载插件的框架,用户可以通过编写脚本来扩展应用功能。 4. 配置管理:通过...
Beanshell 常用于系统管理、自动化测试、数据处理、日志分析等多个领域。其灵活性和与Java生态系统的紧密集成使得它成为开发人员的有力工具。 通过深入研究 Beanshell 的源码,你可以了解其如何解析和执行Java代码...
- **自动化测试:** 在自动化测试框架中,BeanShell 可用于生成和执行测试脚本。 - **配置和脚本化任务:** 在系统管理和运维中,它可以用来处理配置文件,执行定期任务等。 5. **源码学习价值** - **动态语言...
这个引擎使得开发者能够在应用程序中动态地引入脚本功能,进行测试、调试或者扩展程序的行为。在Java环境中,Beanshell 提供了一种简单、灵活的方式来实现动态语言的功能。 在 Beanshell 中,`bsh-2.0b4.jar` 是...
此外,BeanShell 还常被集成到其他Java应用中,例如服务器端脚本、自动化测试框架(如JMeter)或者作为通用的脚本引擎。 5. **特性**: - 动态性:BeanShell 允许在运行时创建和修改类、方法和变量。 - 自动类型...
在执行测试过程中,为了便于调试,你可以查看JMeter的日志文件,了解BeanShell脚本的执行情况以及`sign`的计算结果。通过这种方式,我们可以灵活地根据实际需求对HTTP请求的参数进行定制处理,确保测试更加贴近真实...
5. **类定义和加载**:Beanshell可以动态定义和加载类,这在进行元编程或测试时特别有用。 6. **异常处理**:与Java一样,Beanshell支持try-catch-finally结构来捕获和处理异常。 总之,Beanshell是一个强大的工具...
BeanShell允许你在运行时动态地解释和执行Java代码,这对于调试、测试或扩展应用程序非常有用。通过BeanShell,你可以: 1. **嵌入到应用程序中**:在你的Java应用中集成BeanShell,以便在运行时执行Java代码或添加...
请到...但不管怎样,如果你要让BeanShell与你的类与应用程序一起工作就必须将 BeanShell的jar文件加到classpath中。 你可以将BeanShell的jar 文件拖到JAVA_HOME的ext目录也可以直接加到classpath中。
2. **测试与调试**:在测试过程中,BeanShell可以用来快速编写测试脚本,检查特定功能的正确性。 3. **系统集成**:在自动化部署、监控和运维场景中,BeanShell可以作为Java环境下的脚本语言,实现自动化任务。 4....