• jmeter跨线程组保持登录(多线程共享cookie);两种方式


    方式一、使用__setProperty设置全局变量;

    1.jmeter中创建一个登录请求,然后执行,察看结果树——>Response data中的Response Body 或 Response headers查看返回cookie的相关信息;

     2.在登录的http请求下添加后置处理器--正则表达式提取器,提取headers中的cookie信息;

     

     3.在登录http请求下创建一个后置处理器--BeanShell PostProcessor,把提取到的cookie值改成全部变量;

      格式:${__setProperty(转换成全局变量后的引用名,${正则表达式定义的变量名},)};

     4.再添加一个cookie管理器,这个cookie管理器换成全局变量后的cookie引用名;

    这个cookie管理器直接在TestPlan下,不属于任何一个线程组内;

    名称:cookie中的key;

    值:引用BeanShell PostProcessor中定义的全局变量名;如,${__setProperty(AJSESSIONID,${JSESSIONID},)};

    格式:${__P(全局变量名,)};如,${__P(AJSESSIONID,)}

    域:要测试接口的域名或ip;

    路径:填 / 接可以;

     5.添加线程组,该线程组内不添加登录请求,可以操作需要登录后才能操作的请求;

    参考:https://www.jianshu.com/p/83e677efe8c7

     方式二、使用BeanShell PostProcessor保存cookie相关的数据;

    2.1 jmeter添加登录请求,并添加提取器,提取响应中cookie相关的信息;

     2.2 添加BeanShellPostProcessor,保存提取的JSESSIONID;

    public static void execParam() 
    {
    String getdata = vars.get("JSESSIONID"); 
    String filename = "C:/Users/Administrator/Desktop/test0713/outjs.txt";
    FileWriter writer;
            try {
                writer = new FileWriter(filename,true);
                writer.write(getdata);
                writer.write("
    ");
                writer.flush();
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
    }
    execParam();
    

      

     2.3 添加一个线程组,添加CSV Data Set Config读取JSESSIONID参数化的信息;添加HTTP cookie管理器,填写cookie相关的信息;添加需要登录后操作的请求;

     

     2.4 测试计划中设置独立运行每个线程组;

     2.5 执行测试,查看结果。

      成功。

     方式三 ?也可以将登录和其它请求放在一个线程组下,不过对于压力测试而言,这样登录的请求次数过多;现实生活中,一次登录,可能会做n件事。

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    JVM内存逃逸
    SQL中游标的使用
    配置JAVA环境变量中CLASSPATH变量的作用
    什么是单点登录?单点登录的三种实现方式
    oracle中 connect by prior 递归算法
    test
    mac idea 常见错误记录
    mac 常用操作命令记录
    mac idea 常用快捷键记录
    运行maven install命令时出现错误(BUILD FAILURE)
  • 原文地址:https://www.cnblogs.com/canglongdao/p/12986709.html
Copyright © 2020-2023  润新知