Jmeter如何关联参数,以下我们用登陆到退出做演示: Ps:初学者建议可以去下载discuz论坛安装在本机上,当然如果你有多部电脑,可以用一部做服务器,一部做测试机 首先,我们要知道,什么参数需要关联? 因为有一些请求发送后,服务器返回的值每次都不一样,如果这种情况下,我们再用旧的值去发送请求,服务器肯定会报错。由此可见,我们要在请求中去找需要关联的参数,让我们来看上面的脚本。 接下来,我们一起来找需要关联的参数: 上面的脚本录制完成后,我们先在控制器下面添加一个察看工作树监测器,然后运行一遍,可以看到,请求虽然显示成功,但在第三个请求的响应数据中系统已经提示错误信息了,之所以显示成功只不过是因为系统提供了一个提示错误的页面来响应你的请求而已,并不代表业务成功了。如下图显示: 既然我们知道第三个请求提示错误了,那我们就可以知道,第三个请求中有些参数需要关联,这时,我们回头再去看看第三个脚本 请求中有三个参数 Mod:logging Action:logout Formhash:650cf49c 很容易我们就可以看出,Mod和Action的值都是固定的名称,只有Formhash的值是用数字和字母组成的(一般需要关联的参数都是数字和字母不规则组成的),因此我们需要为Formhash的值建立关联,怎么关联呢?上面我们已经说过,之所以需要关联是因为有一些请求发送后,服务器返回的值每次都不一样,所以我们需要从上个请求的响应数据中去查找参数值 如图,我们在察看结果树中选择第二个请求,并查找第三个请求中的参数字段,查询结果显示:formhash=ef6daa76,与我们第三个请求中的值并不一样,难怪会提示错误了。 需要关联的参数找出来了,那么接下来的工作就是如何建立关联了,其实参数关联最难的部分就是找出需要关联的参数,建立关联就简单很多了,呵呵,废话有点多! 如上图,我们在第二个请求下方添加一个正则表达式提取器(选择请求,右键-添加-后置处理器-正则表达式处理器),然后把我们在第二个请求响应中得到的数据formhash=ef6daa76&复制下来粘贴到上图的正则表达式输入框中,当然这样还不够的,我们知道变化的部分是ef6daa76,所以我们需要用正则表达式来替换它,正确的结果应该是formhash=(.*?)&,我们用(.*?)来替换变化的部分,以下来看完整的填写 引用名称:formhash(可以随便输入,后面需要用到) 正则表达式:formhash=(.*?)&(用(.*?)来替换变化的部分) 模板:$1$ 匹配数字(0代表随机):0 缺省值:YES 好了,参数已经设置关联了,最后一步就是如何去应用了。我们将关联引用到我们的第三个请求中,如图所示 输入方式:${ formhash }---大括号里面的就是我们设置的引用名称。 关联到此就结束了,接下来我们再来运行一下脚本看看结果: 这次不再提示错误了,用户已经成功退出登录,参数关联成功,OH YE! |