JMeter——运用BeanShell给自定义的变量动态赋值

来源:互联网 发布:天津市网络教育平台 编辑:程序博客网 时间:2024/04/30 07:11
1、先看一下我的用例结构:

JMeter——运用BeanShell给自定义的变量动态赋值 - 一切随缘 - 随缘

这个计划中定义了以下组件:

  • 用户自定义变量: 

JMeter——运用BeanShell给自定义的变量动态赋值 - 一切随缘 - 随缘

 

里面定义了2个变量,一个是us(注意,未对它初始化),一个变量名是:test ,值为:123456

  • 一个BeanShell Sampler:

JMeter——运用BeanShell给自定义的变量动态赋值 - 一切随缘 - 随缘

${test}表示传入BeanShell Sampler的参数,也就是我们前面定义的test参数,当然,如果需要传入多个参数,

一直写下去就可以,不需要标点隔开!

Script区域的2句话解释(java语法):

第一句将${test}的值转成String类型的(因为这里面对自定义参数复制只支持String)并赋值给xxx变量;

第二句, 将xxx变量的值在赋值给我们前面定义的变量us

  • 一个HttpRequest Sampler(index),

JMeter——运用BeanShell给自定义的变量动态赋值 - 一切随缘 - 随缘

  这里定义了一个http请求,我们要验证的就是最后的请求url是不是:tuan.qq.com/shanghai/123455
  • 一个对于index的相应断言,一个查看结果树的监听器。(这里略过)

下面就是见证奇迹的时候,我们来运行一下这个计划:

JMeter——运用BeanShell给自定义的变量动态赋值 - 一切随缘 - 随缘


从结果树中可以看出,我们果然把test变量的值传递给了us,

也许这时有人会问,这有什么用,我来细说,举个实际的场景:

我们需要测试访问某件商品的详情页的cgi,这是商品id我们不能写死某一个具体的id号,所以我们就得动态的从搜索或者列表页去取,从body中利用jmeter的正则提取器,把所有的商品id全给取出来,然后随机取一个放到我们事先定义好的变量:product_id(举个例子,不一定是这个名字)中,在把这个id拼到url中……

你想想,这是这个功能是不是派上用场了!当然,提取id的script你可以自己写喽,哈哈!

0 0