Jmeter-正则表达式提取器获取token-小实例

步骤一:在须要获取token的接口上,添加正则表达式提取器web

 说明:正则表达式

    (1) Apply to:应用范围服务器

        Main sample and sub-samples:匹配范围包括当前父取样器并覆盖至子取样器cookie

        Main sample only:匹配范围为当前父取样器线程

        Sub-samples only:仅匹配子取样器设计

        JMeter Variable:支持对JMeter变量进行匹配代理

 

   (2)要检查的响应字段:针对响应数据的不一样部分进行匹配blog

        主体:响应数据的主体部分,排除Header部分;Http协议返回请求的主体部分就是Bodytoken

        Body:针对替换了转义码的Body部分接口

        Body as a Document:返回内容做为一个文档进行匹配

        信息头:只匹配信息头部分的内容

        URL:只匹配URL连接

        响应代码:匹配响应代码,好比HTTP协议返回码200表明成功

        响应信息:匹配响应信息,好比处理成功返回"成功"字样,或者"OK"字样

 

  (3)引用名称:下一个请求要引用的参数名称,如填写title,则可用${title}引用它。

  (4)正则表达式:

    ():括起来的部分就是要提取的。

    .:匹配除换行符之外的任意字符
    +:重复一次或更屡次
    ?:重复零次或一次,在找到第一个匹配项后中止
            *:重复零次或更屡次

  (5)模板:正则表达式能够设置多个模板进行匹配,在此只可指定运用哪一个模板,模板自动编号,$1$指第一个模板,$2$表明第2个模板,依此类推。$0$表明全文匹配

  (6)匹配数字:在匹配时每每会出现多个值匹配的状况,0表明随机取值;不一样模板可能会匹配一组值,那么能够用匹配数字来肯定取这一组值中哪个;负数取全部值,一般状况下填0

  (7)缺省值:若是没有匹配到,那能够指定一个默认值

 

 步骤二:使用获取到的token值。添加HTTP Cookie管理器

 

 说明:

  1. 名称:对该 Cookie管理器的自定义概述
  2. 注释:对该 Cookie管理器的详细描述
  3. 每次反复清除Cookies?:选择后,则每次线程组运行时,都会清除 cookie。PS:如果手动添加的cookie,则不会被清除。
  4. Implementation:履行的协议。
  5. Cookie Policy:Cookie的管理策略。有以下几种可选项:
  • compatibility:推荐选择此种策略。这种兼容性设计要求是适应尽量多的不一样的服务器,尽管不是彻底按照标准来实现的。若是你遇到了解析 Cookies 的问题,你就可能要用到这一个规范。有太多的web站点是用CGI脚本去实现的,而致使只有将全部的 Cookies 都放入 Request header 才能够正常的工做。这种状况下最好设置 http.protocol.single-cookie-header 参数为 true。
  • rfc2109:是HttpClient使用的默认Cookies协议。
  • rfc2965:定义了版本2而且尝试去弥补在版本1中 Cookie 的 RFC2109 标准的缺点。规定 RFC2965 最终取代 RFC2109 发送 RFC2965 标准 Cookies 的服务端,将会使用 Set-Cookie2 header 添加到 Set-Cookie Header 信心中,RFC2965 Cookies 是区分端口的。
  • ignorecookies:此规格忽略全部 Cookie。被用来防止 HttpClient 接受和发送的 Cookie。
  • netscape:是最原始的 Cookies 规范,同时也是 RFC2109 的基础。尽管如此,仍是在不少重要的方面与 RFC2109 不一样,可能须要特定服务器才能够兼容。
  • default:默认。

      6.存储在Cookie管理器中的Cookie

      名称:参数的名称,如本例中名称是  _security_token

      值:参数的值,如本例中值是从步骤一的正则表达式中的${token}

      域:使用到该cookie的域名,如本例中则是多图模板这个接口的域名

 

运行结果:

 

实践过程当中遇到的问题:

一、

 

二、token的值拿到了,可是线程执行失败,把请求方法由Get改为Post就成功了

三、token的值拿到了,请求方法也是正确的,线程执行失败,把代理去掉就成功了

相关文章
相关标签/搜索