jmeter正则表达式提取器_jmeter压测学习5XPath提取器

前言

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

场景案例

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

164d2ecd548ec48da76915b0f6189beb.png

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

c050b3b7859e0c918037d8c0acdf7d5e.png

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

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

3accd1ef96e25fa88e07202fe69498ee.png

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

获取csrfmiddlewaretoken

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

a969aa606411b0029c4f93d827b74092.png

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

b98ef610e8f45f7493ab9f13b9726162.png

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

XPath 提取器

后置处理器添加 XPath 提取器

b98ef610e8f45f7493ab9f13b9726162.png

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

37d4cc082dbab15e3f8c7e13bea5bbe0.png

用 XPath 表达式提取

c753546fcb3451d6bb70af3f111f8654.png

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抓包参数如下

8a81d022d5833476b03e52f9b0c0172e.png

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

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

ccdb3486b766b203b704ceb700d92cd8.png

查看结果

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

b86f9a73366914b731dcff220cd744e6.png

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

bd7574552e22b81adb3889e4686b294f.png

关于cookies的管理器后面再讲

2020第二期《python接口+测试开发》课程,12月15号开学!

本期上课时间:12月15号-3月29号,每周六、周日晚上20:30-22:30

联系QQ:283340479

2020年第二期《python接口自动化+测试开发》课程,12月15号开学!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值