错误解决——使用jmeter录制登录脚本,可以运行,但登录失败,提示no cookies,或{“code“:302,“msg“:“请先登录!“}

Posted 叶不修233

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误解决——使用jmeter录制登录脚本,可以运行,但登录失败,提示no cookies,或{“code“:302,“msg“:“请先登录!“}相关的知识,希望对你有一定的参考价值。

一、以飞机订票系统【webtours】的登录功能为例

【成功标志】

运行成功后查看结果树,login接口的html网页界面应提示:【Welcone,用户名,to the Web Tours reservation pages.】

【问题描述】

使用jmeter工具录制脚本,保存运行之后查看结果树,发现运行成功,查看结果树login接口的HTML网页界面:无欢迎用户名进入字样,即登陆失败

【分析原因】

在请求中会有类似于认证信息的字段,每个用户、每个时间段等等产生的字段都不一致,如果完全按照录制脚本时的数据的话会导致一些认证过期,回放无法成功的问题,这时候需要做个标记,让jmeter理解这部分的内容不从录制好的脚本中获取,需要重新从网页中获取。

【解决办法】

(1)在带参数的login接口中找到参数【userSession】,确认每次登录该参数都会发生变化

(2)运行后在结果树中搜索这个参数【userSession】

(3)在上图查到参数【userSession】的接口下新增一个正则表达式提取器,如图所示设置

(4)编辑带参数的login接口中的参数【userSession】的值为刚刚定义的正则表达式的引用名称

(5)保存,运行,查看结果树,出现登陆成功界面

  • 注:此方法仅适用于使用工具【badboy】录制的jmeter脚本,当使用工具【jmeter】录制同样的登录脚本并进行同样操作时,登录仍然是不成功状态,原因暂时未知。

二、以【悟空crm】系统的【进入首页、登录、退出】功能为例

【成功标志】

运行成功后查看结果树,无异常提示

【问题描述】

运行成功后查看结果树,报状态码302,即网页已经重定项

【分析原因】

同上

【解决办法】

(1)在带报状态码302的接口中找到参数【Admin-Token】,确认每次登录该参数都会发生变化

(2)运行后在结果树中搜索这个参数【Admin-Token】,复制参数及值

(3)在搜索到参数【Admin-Token】的接口,即图示【/login-15】接口下添加一个正则表达式提取器,粘入刚刚复制的参数和值,将值替换为【(.?)】*

(4)在接口下找到内容最全的【HTTP信息头管理器】,找到参数【Admin-Token】,将其值替换为刚刚设置的正则表达式名称

(5)将设置好的【HTTP信息头管理器】放到整个线程组目录下,相当于作用为全局变量,同时将其他接口下的【HTTP信息头管理器】都删除

(6)再次运行,查看结果树,不再报302

以上是关于错误解决——使用jmeter录制登录脚本,可以运行,但登录失败,提示no cookies,或{“code“:302,“msg“:“请先登录!“}的主要内容,如果未能解决你的问题,请参考以下文章

jmeter录制APP时不能登录的问题

关于使用badboy录制jmeter时报脚本错误的解决方法

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

JMeter之代理服务器录制脚本

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

jmeter压测学习48- BadBoy录制web网站登录页面脚本