JMeter BeanShell示例
翻译:https://blog.trigent.com/jmeter-blog-series-jmeter-beanshell-example 在这个例子中,我们将演示在Apache JMeter中使用BeanShell组件。我们将使用BeanShell脚本语言编写一个简单的测试用例。这些脚本将成为我们将为此示例配置的BeanShell组件的一部分。在我们看看不同BeanShell组件的用法之前,让我们来看看这个概念。 1.简介Apache JMeter是一个基于Java的开源工具,使您可以对应用程序执行功能,负载,性能和回归测试。应用程序可能在Web服务器上运行,也可能是独立的。它支持在包含静态和动态资源的客户端 - 服务器和Web模型上进行测试。它支持各种用于进行测试的协议,包括HTTP,HTTPS,JDBC,FTP,JMS,LDAP,SOAP等。 快速浏览一些功能:
1.1。什么是BeanShell?BeanShell是一种用Java编写的脚本语言。它是JSR-274规范的一部分。它在某种程度上是通过提供脚本功能对主流Java语言的扩展。它是一个嵌入式解释器,可识别强类型Java语法和脚本功能,如shell命令,松散类型和方法闭包(作为对象的功能)。BeanShell有助于快速开发和测试Java应用程序。可以将其用于快速或快速原型设计或快速测试小功能或过程。该脚本也可以嵌入Java代码中,并使用Interpreter API调用。 BeanShell还可以用作配置语言,因为它支持创建基于Java的变量,如字符串,数组,映射,集合和对象。它还支持所谓的脚本变量或松散类型的变量。BeanShell脚本也可以在外部文件中以独立模式编写,然后可以由Java程序加载和执行。BeanShell还提供了类似shell编程的UNIX概念。您可以在GUI shell中以交互方式提供BeanShell命令,并立即查看输出。 有关BeanShell的更多详细信息,请参阅官方网站http://www.beanshell.org 1.2。JMeter Beanshell组件JMeter提供了以下可用于编写BeanShell脚本的组件
这些组件中的每一个都允许您编写脚本来进行测试。JMeter将根据组件的生命周期顺序执行脚本。例如,它将首先调用PreProcessor然后调用Sampler,然后调用PostProcessor等。可以使用具有特定含义和上下文的线程局部变量在这些组件之间传递数据。每个组件都为您提供可在相应脚本中使用的预定义变量。 ? 下表显示了BeanShell组件使用的一些常见变量:
2. BeanShell示例我们现在将演示在JMeter中使用BeanShell。我们将采用一个简单的排序数组的测试用例。我们将定义以随机顺序存储的5个字母(a,b,c,d,e)的数组。我们将对数组的内容进行排序并将其转换为字符串。转换后,我们将删除不需要的字符并打印最终的字符串值。它应该输出‘abcde‘。
在安装JMeter之前,请确保已安装JDK 1.6或更高版本。使用此处的链接下载最新版本的JMeter?。在撰写本文时,JMeter的当前版本是2.13。要安装,只需将存档解压缩到您希望安装JMeter的主目录中。将JAVA_HOME环境变量设置为指向JDK根文件夹。解压缩归档后,导航到<JMeter_Home> / bin文件夹并运行该命令 2.1。配置BeanShell采样器在这个组件中,我们将对数组进行排序。但在我们对数组进行排序之前,需要对其进行初始化。在创建预处理器组件时,您将在下一节中看到初始化例程。我们首先创建BeanShell Sampler组件。我们将编写代码以在初始化例程之后对数组进行排序。右键单击Single User?ThreadGroup并选择Add?- >?Sampler?- >?BeanShell Sampler。 我们将采样器的名称提供为“阵列分类器”。所述复位解释字段值被保留为“假”。只有在配置了多个BeanShell采样器或者在循环中运行采样器时,才需要此字段。true的值将重置并为每个采样器创建一个新的BeanShell解释器实例。false的值将只创建一个BeanShell解释器,它将解释所有已配置采样器的脚本。从性能角度来看,如果长时间运行带有多个采样器的脚本,建议将此字段设置为true。该参数field允许您将参数传递给BeanShell脚本。它通常与外部BeanShell脚本文件一起使用,但如果您在此组件本身中编写脚本,则可以使用 2.2。配置BeanShell预处理器Beanshell PreProcessor将是您的采样器之前要执行的第一个组件。它成为执行初始化例程的良好候选者。我们将在此组件中初始化要排序的数组。右键单击Array Sorter?sampler并选择Add?- >?Pre Processors?- >?BeanShell PreProcessor。 我们将组件命名为“Array Initializer”。让我们看一下Script文本框字段中的代码。首先,我们声明并初始化名为的数组 首先,我们使用变量的 2.3。配置BeanShell PostProcessor所述的BeanShell PostProcessor中将去掉不必要的字符,如“[]”。该组件将更像一个过滤器。右键单击Array Sorter?sampler并选择Add?- >?Post Processors?- >?BeanShell PostProcessor。 我们将该组件命名为“Array Filter”。该脚本文本字段包含我们的字符串剥离不必要的字符代码。如果你还记得,那个字符串是由Array Sorter采样器存储为响应数据的。现在我们在这里取使用函数的字符串 2.4。配置BeanShell断言使用此组件,我们将最终结果值断言为‘abcde‘。右键单击Array Sorter?sampler并选择Add?- >?Assertions?- >?BeanShell Assertion。 使用该 3.结论BeanShell脚本语言为Java语言提供脚本功能。在JMeter中,您可以使用不同的BeanShell组件来编写测试脚本并执行相同的操作。每个组件都配备了有用的变量,可以在脚本中使用这些变量来执行控制流程。脚本功能为JMeter测试工具添加了强大而实用的维度。本文的目的是展示常见Beanshell组件的用法以及如何编写测试脚本来执行测试。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |