Jmeter将响应数据值保存到变量中,并使用CSV文件中的其他值覆盖它

时间:2016-12-19 17:07:42

标签: scripting jmeter beanshell

在Jmeter中是否可以获取变量(例如${variable_1}在regex的帮助下从HTTP请求的响应主体接收到的值,读取一些.csv文件并找到行(假设所有行都有不同的值),它们与${variable_1}的精确值相同,然后读取此行中的下一个单元格(几乎.csv文件只包含2列),无论有什么值,都会覆盖它到${variable_1}?我被告知在BeanShell的帮助下这是可能的,但我并不熟悉它中的脚本。非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

你走了:

 @Styles.Render("~/Content/bootstrapcss")
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
<script type="text/javascript">
   $.widget.bridge('uibutton', $.ui.button);
   $.widget.bridge('uitooltip', $.ui.tooltip);
</script>
@Scripts.Render("~/bundles/jqueryval")    
@Scripts.Render("~/bundles/bootstrapjs")

<script type="text/javascript">
    $(document).uitooltip({
        items: ".input-validation-error",
        content: function () {
            return $("[data-valmsg-for='" + $(this).attr('id') +  "']").text();
        }
    });
</script>

演示:

JMeter Beanshell Demo

有关在JMeter测试中使用脚本的详细信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component文章。

另外请注意,Beanshell有一些严重的性能缺陷,并且与使用Java 7+语法(泛型,labmdas,多次捕获等)编写的代码不兼容。如果你在setUp线程组中的某个地方使用一个线程更改变量 - 这很好,但如果线程数很高和/或CSV文件很大 - 最好考虑使用JSR223 Sampler and Groovy language