• jmeter压测-05-xpath表达式


    前言

    有些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

    • 缺省值:取不到的时候默认值

    例如: Xpath query:规则:// 代表不定路径,/:下一级路径 [@type=“text”] 关键字

    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,无权限访问

    若长生难求以命为注 方冥冥如悟因果殊途 --《长生》
  • 相关阅读:
    分布式与集群的区别是什么?
    Java NIO:IO与NIO的区别 JAVA BIO与NIO、AIO的区别
    localStorage使用总结 JS 详解 Cookie、 LocalStorage 与 SessionStorage
    tomcat+nginx+redis实现均衡负载、session共享 存储过程的优缺点 HTTP、TCP、IP协议常见面试题
    高并发下的Java数据结构(List、Set、Map)
    [剑指offer] 31. 整数中1出现的次数(从1到n整数中1出现的次数)
    [剑指offer] 30. 连续子数组的最大和
    [剑指offer] 29. 最小的K个数
    [剑指offer] 28. 数组中出现次数超过一半的数字
    [leetcode] 51. N-Queens (递归)
  • 原文地址:https://www.cnblogs.com/hc1hr2/p/15138327.html
Copyright © 2020-2023  润新知