• JMeter 跨线程传递参数


    在接口测试过程中,往往一个请求需要另一个请求的响应信息,比如进行一些业务操作,需要依赖获取token请求的token值,而这两个请求分别位于不同的线程组中,该如何处理呢?

    方法一:

    通过正则表达式或者Json提取器获取响应信息,获取token请求的响应信息:

    如上图,在获取token请求下,添加Json提取器,提取响应信息的token值,变量名为token

    将正则表达式或者Json提取器得到的值,设置为全局变量。利用函数助手中的setProperty函数,属性名称为全局变量名称,Value of property为上一步Json提取器token值,KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty(to…{token},)}

    在获取token请求下,添加–后置处理器 – BeanShell PostProcessor,并将表达式粘贴至脚本框里,此时token即为全局变量

    如何跨线程组引用全局变量?使用函数助手中的P函数,来获取属性值,从而实现跨线程组,参数值传递;

    将 P 函数复制的字符串 复制到 http请求头 里

    注意点:

    这种引用关系存在执行的先后顺序,需要在测试计划中设置执行完一个之后,再执行另一个,否则会由于不同线程之间执行时间差,导致参数无法获取到

    方法 2

    JMeter-BeanShell写数据到CSV文件,在通过 csv文件 读 数据

    BeanShell后置处理器的其中一个用法是把返回数据写入到文件中

    需求 1、调用登录接口,获取token值 2、将token值保存到一个文件里token

    添加一个登录http请求,填写登录接口地址,以及参数,参数值需要参数化,变量名为account,password

    添加后置处理器-JSON提取器,提取登录返回的data值,变量名为token

    添加后置处理器-BeanShell PostProcessor,写入以下代码

    //FileWriter fstream = new FileWriter("E:\\output.csv",true); //写入数据到文件
    //BufferedWriter out = new BufferedWriter(fstream);
    ////","体现在csv文档中就是向右移一个单元格
    //out.write(vars.get("token")+","); //获取userNamer,password,token的值
    ////换行
    //out.write(System.getProperty("line.separator"));
    //out.close();
    //fstream.close();
    
    //删除 文件 并重新 创建 一个文件 达到空文件的效果
    //File f = new File("E:\\output.csv");
    //f.delete();
    //f.createNewFile();
    

    在 配置下 csv文件

    最后一步在你要用的地方 调用

  • 相关阅读:
    Vue
    前端笔试、面试题
    npm下载文件临时目录、实际存放目录路劲
    ES6
    Electron – 基础学习(3): 项目打包成exe桌面应用 之electron-builder
    Electron+Vue – 基础学习(2): 项目打包成exe桌面应用
    Electron+Vue – 基础学习(1): 创建项目
    软件需求膨胀系数
    职业女性确实处于劣势吗?记一次不甚严谨的考据 -- 向胡适之先生的遥远致敬
    15篇干货博客 38本书 4门公开课 减掉20斤体重 我的2014总结
  • 原文地址:https://www.cnblogs.com/yimeng123/p/16426372.html
Copyright © 2020-2023  润新知