使用jmeter录制脚本,将登录和登录后操作(此处以添加日志为例)放到不同线程时,无登录操作的线程提示{“code“:302,“msg“:“请先登录!“}

Posted 叶不修233

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用jmeter录制脚本,将登录和登录后操作(此处以添加日志为例)放到不同线程时,无登录操作的线程提示{“code“:302,“msg“:“请先登录!“}相关的知识,希望对你有一定的参考价值。

使用jmeter录制脚本,将登录和登录后操作(此处以添加日志为例)放到不同线程时,无登录操作的线程提示【{“code“:302,“msg“:“请先登录!“}】

一、以【悟空crm】系统的进入首页,登录,发日志,退出功能为例

【成功标志】

运行成功后查看结果树,均无报错提示,进入【悟空crm】,刷新发现已经成功添加对应日志
在这里插入图片描述

在这里插入图片描述

【问题描述】

使用jmeter工具录制脚本,保存运行之后查看结果树。
当【进入首页、登录、查看日志、添加日志、退出】位于同一个线程组内时运行无异常。
但将其分为两个线程组,线程组1放【进入首页、登录】功能,线程组2放【查看日志、添加日志、退出】功能,运行后线程组1无异常,但线程组2下的接口会提示【{“code“:302,“msg“:“请先登录!“}】,添加日志失败。
在这里插入图片描述

【分析原因】

因为整个流程分为两个线程组,线程组1的登录状态没有保留到线程组2,因此线程组2提示请登录。

【解决办法】

将参数【Admin-Token】定义为全局变量

(1)打开jmeter内置的函数助手
在这里插入图片描述

(2)定义一个全局变量,命名为【Token】,复制函数助手生成的字符串
在这里插入图片描述

(3)在线程1的登录接口下添加一个【BeanShell 后置处理程序】,复制函数助手中生成的字符串,粘贴到【BeanShell 后置处理程序】的脚本框中
在这里插入图片描述

(4)在测试计划下添加属性显示,查看刚刚定义的全局变量【Token】是否设置成功
在这里插入图片描述

在这里插入图片描述

(5)复制线程组1中的【HTTP信息头管理器】到线程组2目录下,修改参数【Admin-Token】赋值为刚刚定义的全局变量【Token】,赋值格式为【${__P(全局变量名称,)}】
在这里插入图片描述

*** (6)保存后运行,查看结果树,状态码【“code”:0,"】,进入悟空crm网站,发现已经成功添加日志。***
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

以上是关于使用jmeter录制脚本,将登录和登录后操作(此处以添加日志为例)放到不同线程时,无登录操作的线程提示{“code“:302,“msg“:“请先登录!“}的主要内容,如果未能解决你的问题,请参考以下文章

badboy录制的登录脚本在jmeter中登录不成功

jmeter压力测试的简单实例+badboy脚本录制(一个简单的网页用户登录测试的结果)

JMeter--参数化

Jmeter参数化

JMeter学习-参数化

JMeter学习参数化