Jmeter中的302重定向&自定义参数&csrfmiddlewaretoken接口实战!

前言

1.公司目前还有几个web项目是前后端不分离的,返回的内容不是那种json格式,返回的是一个HTML页面。

2.并且有些参数是隐藏在html里面的,需要先从html页面中取出隐藏参数(具体参数视项目而定),如:
__VIEWSTATE 、__VIEWSTATEGENERATOR
在这里插入图片描述

3.__VIEWSTATE 、__VIEWSTATEGENERATOR是每次在浏览器上打开登录首页的时候,会自动生成一个隐藏(hidden)的参数。

在这里插入图片描述

场景案例

1.登录接口需要用到隐藏参数

2.302重定向的登录接口

环境

1.JMeter5.1

步骤:

1.在登录之前我们必须先获取到:__VIEWSTATE 、__VIEWSTATEGENERATOR 这个2个参数的值。

先访问首页http://127.0.0.1:9000/Login.aspx/
创建一个请求
保证返回的结果里面能看到:__VIEWSTATE 、__VIEWSTATEGENERATOR 对应的值

在这里插入图片描述
返回的结果里面有了这个值后,接下来用 XPath 提取器提取出来

2.XPath 提取器

第一步:使用 xpath 表达式提取html页面数据,咱先在谷歌浏览器上定位调试一下,保证能正确定位到。

在这里插入图片描述
第二步:用 XPath 表达式提取
在这里插入图片描述
XPath 表达式提取参数说明:

  • Use Tidy:当需要处理的页面是HTML格式时,必须选中该选项,当需要处理的页面是XML或XHTML格式(例如,RSS返回)时,取消选中该选项。
  • 引用名称:参数的变量名称
  • XPath query:用于提取值的XPath表达式: //*[@name=’__VIEWSTATE’]/@value
  • 缺省值:取不到的时候默认值

APPly to:作用范围(返回内容的断言范围)

  • Main sample and sub-samples:作用于父节点的取样器及对应子节点的取样器
  • Main sample only:仅作用于父节点的取样器
  • Sub-samples only:仅作用于子节点的取样器
  • JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称)

参数关联

登录请求fiddler抓包参数如下:

在这里插入图片描述
填写请求参数,__VIEWSTATE 、__VIEWSTATEGENERATOR 对应的值使用上面一步提取出来的变量:$ {VIEWSTATE}、${VIEWSTATEGENERATOR}

在这里插入图片描述

添加头部管理器,
参数类型为:
Content-Type:application/x-www-form-urlencoded
Referer:http://127.0.0.1:9000/Login.aspx?Loginstatus=out (防盗链,这个参数视项目而定)

在这里插入图片描述
查看结果

查看请求结果,从结果里面可以看出:__VIEWSTATE 、__VIEWSTATEGENERATOR 这2个值已经传过来了。

在这里插入图片描述
响应数据中查看结果,结果为:尚未登录系统或登录已超时,这是因为缺少cookie 参数;

在这里插入图片描述
HTTP Cookie 管理器

我这里用的是:Jmeter5.1 版本,直接加一个HTTP Cookie管理器放到请求的最前面,就可以自动管理cookies了。
看到网上有些教程说要把 jmeter.property文件中将 CookieManager.save.cookies 设置为true,我这里 Jmeter5.1 版本不用设置也成功了。

重定向请求

在这里插入图片描述

1.因为请求登录成功后有302重定向到:http://127.0.0.1:9000/index.aspx 页面,重定向后的页面,需要带上前面的cookie才能访问成功!

在这里插入图片描述

2.现在再返回来看之前登录接口的:Request Body中的参数,正是因为没有cookies 参数所以才导致登录接口返回:尚未登录系统或登录已超时!的提示。
在这里插入图片描述

3.问题我们现在已经知道了,只需在请求的最前面加一个 HTTP Cookie管理器 就可以了。不需要去提取cookies,再去添加到cookie管理器。
HTTP Cookie管理器 添加后会自动保存你每次请求的cookies,后续的请求都会带上前面的cookies,就跟你正常访问浏览器是一样的。

添加成功后用默认的配置就可以了,不需要添加任何参数

302 重定向

查看结果,因为这个登录请求是有302 重定向的,所以结果有2个请求的结果,可以展开查看。
第1个请求获取到cookies了,302 重定向到 /index.aspx 页面
在这里插入图片描述

第2个请求会拿着前面的cookies 自动带上,可以查看第2个请求的请求body


最后查看结果请求成功!(建议查看结果模式为:HTML)
登录接口成功

查看列表接口也成功了!

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值