zoukankan      html  css  js  c++  java
  • 【转】jmeter如何设置登录接口只调用一次以及遇到的问题:cookie参数放在消息头headers里面

    本文转自https://www.cnblogs.com/yiyaxuan/p/12672281.html

    需求前提:
    我想压测获取产品列表这个接口,但是这个接口依附于sessionid,所以我必须先登录成功,拿到登录接口,但是我只想实现压测获取产品列表这个接口,所以登录没必要登录多次,只需要登录一次就行。

    所以Jmeter如何设置登录接口只调用一次开始实施。

    解决方法:

    方法一.用同一个线程组,用仅一次控制器

    是用同一线程组实现的,线程数那里只能设置次数=1,循环次数设置为n次,满足登录只请求1次,获取产品列表接口可以请求n次。

    缺点就是线程数那里只能设置1次。

    方法二. 跨线程去做,把登录接口单独放在setUp线程组里面,然后向下一个线程组Thread group传参

    没缺点!推荐使用方法二,虽然刚开始实施花费了将近2小时

    第一步用写死的session去调试,调试成功,再去做跨线程 


    方法一. 用仅一次控制器

    实现思路:
    1.登录接口放在仅一次控制器里面

    添加边界提取器或者正则提取器,还有调试后置处理程序即debug PostProcessor,把Cookie的value:SESSIONID=XXXXXX

    然后这个Cookie放在headers里面

    把XXXX从登录接口的响应结果里面提取出来,赋给某个变量A

    2.获取产品列表的接口

    headers里面添加

    Cookie    ${变量A}

    a.cookie放在cookie管理器里面,不放在headers

     

     

    b.cookie放在header管理里面,放在headers

     

    方法二. 可以把登录接口单独放在一个线程组里面,然后向下传参

    实现思路:
    1.新增setup线程组,添加登录接口

     

    登录接口下面:

    -》添加边界提取器

    -》添加信息头管理器

    -》添加Beanshell 后置处理程序即BeanShell PostProcessor,使用setProperty的函数,然后在下个线程里的header里增加这个sessionid:
    ${__setProperty(new_sessionid,${sessionid},false)}

    -》添加调试后置处理即debug PostProcessor,用来看登录接口是否取值成功

    2. 新增线程组,放获取产品列表的接口

    产品列表接口下面:
    -》添加信息头

    Cookie  SESSIONID=${__P(new_sessionid)}

    另外
    -》添加Beanshell 后置处理程序即BeanShell PostProcessor,使用setProperty的函数,然后在下个线程里的header里增加这个sessionid:
    ${__setProperty(new_sessionid,${sessionid},false)}

    BeanShell PostProcessor也可以用beanshell 断言来做,即添加benshell断言将正则截取token和用户userid保存下,,效果是一样的!

    ${__setProperty(new_token,${token},false)}
    ${__setProperty(new_uid,${uid},false)}

     

     ${__P(new_token)}

     ${__P(new_sessionid)}

    cookie参数放在消息头里面 

  • 相关阅读:
    VC++界面编程个性化你的工具栏图标(转)
    C/C++指令 #undef ,#ifdef, #ifndef,#if的用法(转)
    为自定义工具栏按钮添加消息响应函数
    VC++深入详解:函数的重载 (转)
    NP和P问题
    How To Compile A Kernel The Ubuntu Way
    【转】关闭对话框,OnClose和OnCancel MFC中屏蔽ESC和回车关闭对话框
    MFC学习笔记之ClassWizard
    《c专家编程》学习笔记一
    <转>C语言中的文件输入输出函数
  • 原文地址:https://www.cnblogs.com/yanwuliu/p/13279215.html
Copyright © 2011-2022 走看看