Beanshell脚本在JMeter中启动一次(测试计划的开始和结束)

Beanshell脚本在JMeter中启动一次(测试计划的开始和结束),jmeter,beanshell,test-plan,Jmeter,Beanshell,Test Plan,下午好 我会尽力向你解释清楚我的问题 上下文 我有一个JMeterTestPlan,它向服务器发送HTTP请求。我有一个Beanshell脚本来断言返回的每个不同的错误案例 302响应代码->确定 200响应代码-> 在每个错误200中,我检查响应数据字符串,看它是错误还是正确的情况。(用户错误(如用户没有正确的权限)为正常,但服务器不可用为错误,两者都有200作为响应代码。) 这是我的测试计划: 目标 由于只有一个断言脚本返回了几个错误,因此我无法区分每个错误,除非在ViewResult

下午好

我会尽力向你解释清楚我的问题

上下文 我有一个JMeterTestPlan,它向服务器发送HTTP请求。我有一个Beanshell脚本来断言返回的每个不同的错误案例

  • 302响应代码->确定
  • 200响应代码->
在每个错误200中,我检查响应数据字符串,看它是错误还是正确的情况。(用户错误(如用户没有正确的权限)为正常,但服务器不可用为错误,两者都有200作为响应代码。)

这是我的测试计划:

目标 由于只有一个断言脚本返回了几个错误,因此我无法区分每个错误,除非在
ViewResultTree
中解压断言。但我在启动测试时禁用了它,我将远程启动我的测试计划

我想手动统计每个错误。我的所有示例都在断言脚本中,并根据它们的内容转到正确的
if
块。我在每个块中增加一些变量(实际上是JMeter.properties)

int test = Integer.parseInt(props.getProperty("302"));
test++;
props.setProperty("302", ""+test);
我想在我的测试计划的末尾,在JFrame中显示所有这些变量,如下所示:

问题 我的问题是,我不知道如何在测试计划前后启动Beanshell脚本

我希望在发送任何示例之前启动第一个脚本,以便将所有属性变量初始化为0(否则,它们将保留最后一个测试计划的值)

并且,我想要第二个在测试计划完成后显示包含所有变量的框架。(目前它是一个JFrame,但不会保持这种状态。)

测试溶液 1) 对于我的第一个脚本,我在测试计划的开头将
计数器设置为0。
我使用它来检查我的测试是否已经开始,而不是使用
if控制器

我有一个前置处理器Beanshell,带有
props.set(“302”,“0”)其中“302”是我的属性,用于计算所有302响应代码

它可以正常工作,但我想知道是否有合适的方法来执行此操作。

2) 然后,对于我的第二个脚本,我尝试在
If控制器
中使用
${JMeterThread.last_sample_ok}
,但它没有像我预期的那样工作。如果我把它放在我的示例之后,它在所有OK断言之后开始,如果我把它放在测试计划的末尾,它永远不会被调用

在所有线程停止(即所有样本完成)后,如何运行beanshell脚本一次?

提前谢谢你,希望你能理解一切

JMeter和JMeter就是为了这个


将beanshell组件添加到setUp thread组中,以便在实际测试开始之前执行一些设置活动。同样,在测试执行完成后,tearDown线程组将运行。

我不知道我是如何做到的,在关于Jmeter的几个小时的文档之后,我从未看到过这一点。。。谢谢!发生:)写得很好的问题顺便说一句。