zoukankan      html  css  js  c++  java
  • JMeter 使用正则和JSON提取器参数化(常用于提取token/cookie)

    一、使用正则表达式提取器提取token

     查看登录响应参数找出token。图中token为 "ticketString": "ccf26b17-a96f-4913-8925-9bbf737bef35"

    使用正则表达式提取器提取token

     

     

    当其他线程组需要使用token时,需要使用BeanShell Sampler设置全部变量,${__setProperty(newtoken,${token})}

    在“HTTP信息头管理器”使用   ${__property(newtoken)}   引用token ,需要注意设置和引用时的区别,name里面的token为我们需要传入变量名,不是我们提取token时自定义的变量

    在结果树里面,查看引用了token请求的RequestHeaders,若显示token值则表示token引用成功,若显示的是 ${__property(newtoken)} 则表示引用失败,失败原因从使用正则提取token开始排查

    2. 提取cookie:登录后根据正则表达式提取cookie,cookie位于响应头中的set-cookie字段。

    正则:Set-Cookie: (.*);Path=/;

    在线程组一级添加一个http cookie manager。并且要在每个请求下面都添加一个http cookie manager,虽然什么东西都不用填写,但是必须添加,不然只会让紧跟在登录请求后的那个请求有cookie,后面的请求都没有cookie。

    二、使用json提取器提取token

    首先查看登录响应数据结构

     使   $.data.ticketString   提取token,提取后引用方式都相同

    查看引用token是否成功

    注:利用上面两种方法基本上可以提取任何响应的数据并将其参数化

    三、常见问题

    1、在线程组中引用另一个线程组定义的参数时,参数的值未被引用。(已使用json Path Tester或RegExp Tester验证提取的方法能提取出值)

    问题原因:线程组(Thread Group)之间是同级的,在使用Jmeter默认配置时,线程组是无序并行运行的,所以可能会出现线程组1还没提取出参数的值,线程组2却已经引用了参数。

    解决方法:点击TestPlan(测试计划) --> 勾选RunThread Groups...,让线程组按排列顺序执行即可。

     来源:https://www.cnblogs.com/testlearn/p/10958892.html

  • 相关阅读:
    [BZOJ3751] [NOIP2014] 解方程 (数学)
    [BZOJ4198] [Noi2015] 荷马史诗 (贪心)
    [BZOJ4034] [HAOI2015] T2 (树链剖分)
    [BZOJ1880] [Sdoi2009] Elaxia的路线 (SPFA & 拓扑排序)
    [BZOJ1088] [SCOI2005] 扫雷Mine
    [BZOJ1004] [HNOI2008] Cards (Polya定理)
    [BZOJ1009] [HNOI2008] GT考试 (KMP & dp & 矩阵乘法)
    [BZOJ1503] [NOI2004] 郁闷的出纳员 (treap)
    [BZOJ1059] [ZJOI2007] 矩阵游戏 (二分图匹配)
    BZOJ2626: JZPFAR
  • 原文地址:https://www.cnblogs.com/camilla/p/13911032.html
Copyright © 2011-2022 走看看