前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jmeter压测学习5-XPath提取器

jmeter压测学习5-XPath提取器

作者头像
上海-悠悠
发布2019-12-05 18:03:23
8000
发布2019-12-05 18:03:23
举报

前言

有些web项目是前后端不分离的,返回的内容不是那种纯进口返回json格式,返回的是一个HTML页面。 并且有些参数是隐藏在html里面的,需要先从html页面中取出隐藏参数,如:csrfmiddlewaretoken

场景案例

我这里有个django项目的admin后台页面为案例

输入账号和密码登录成功后,抓包发现除了账号和密码参数,还有一个参数csrfmiddlewaretoken,并且这个参数每次都是动态的,不是固定值

所以在请求这个login接口的时候,需要先获取csrfmiddlewaretoken参数,那么这个参数哪来的呢?

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

那么接下来就先把这个值提取出来

获取csrfmiddlewaretoken

先访问首页http://127.0.0.1:9000/admin/

保证返回的结果里面能看到csrfmiddlewaretoken对应的值

返回的结果里面有了这个值后,接下来用 XPath 提取器提取出来

XPath 提取器

后置处理器添加 XPath 提取器

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

用 XPath 表达式提取

XPath 表达式提取参数说明:

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

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

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

参数关联

登录请求fiddler抓包参数如下

jmeter照着写请求参数就可以了,csrfmiddlewaretoken对应的值使用上面一步提取出来的变量${csrftoken}

添加头部管理器,参数类型为:Content-Type: application/x-www-form-urlencoded

查看结果

查看请求结果,从结果里面可以看出csrfmiddlewaretoken这个值已经传过来了

最后的结果失败403 Forbidden,是因为缺少cookies,无权限访问

关于cookies的管理器后面再讲

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 场景案例
  • 获取csrfmiddlewaretoken
  • XPath 提取器
  • 参数关联
  • 查看结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档