错误解决——使用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
在这里插入图片描述

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
JMeter是常用的性能测试工具,它的录制脚本功能可以方便地把用户在浏览器中的操作自动化成为测试脚本录制脚本功能通常是在测试过程中,需要进行一些基本的测试场景时使用使用录制脚本功能可以大大减轻测试人员的工作负担,提高测试效率。 使用JMeter5.5录制脚本,我们需要做以下几个步骤: 步骤1:准备工作: a. 一款浏览器; b. 安装好JMeter,打开jmeter.bat文件运行程序; 步骤2:配置JMeter: a. 点击【Add】添加Thread Group,并配置线程组信息; b. 点击Thread Group,右键选择【Add】,选择“Recording Controller”,新建; c. 点击“HTTP(S) Test Script Recorder”选项,点击【Add】, 选择【Recording Controller】并添加; d. 配置HTTP(S) Test Script Recorder,设置端口(HTTP(S) Test Script Recorder默认使用端口为8888,但如果该端口被占用,需要设置一个新的端口),设置Target Controller(设置一个Recording Controller,该Recording Controller将会存放所有录制下来的求); 步骤3:启动浏览器的代理服务器: a. 打开浏览器的代理设置,输入对应的本地代理服务器和端口(通常为localhost:8888),然后保存设置; b. 如何在Chrome下打开代理服务器:进入“设置”-“高级”-“系统”-“打开你的计算机代理设置”-“局域网设置”-“代理服务器”-“HTTP:localhost”,输入端口号; 步骤4:录制脚本: a. 点击HTTP(S) Test Script Recorder进入它的控制面板,点击Start按钮,开始录制; b. 在浏览器中访问要进行测试的网站; c. 录制结束后,在Recording Controller下,检查录制到的求,进行必要的修改,如添加断言、添加参数等; 步骤5:运行脚本: a. 配置好即将要进行测试的代理服务器; b. 启动线程组; c. 等待测试结果出现。 综上所述,JMeter5.5录制脚本功能是非常实用的,它可以把用户在浏览器中的操作自动化成为测试脚本,大大减轻测试人员的工作负担,并提高测试效率。如果您在进行性能测试时需要进行一些基本的测试场景,那就不妨试试JMeter5.5录制脚本吧。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值