• 【Jmeter】之批量处理多接口压力测试


    一、需求前提

    1、有以下三个步骤:

    ①创建单据

    ②审核单据

    ③确认单据

    让三个相关接口进行一连串批量请求操作,直到所有批量数据确认单据成功。

    二、测试计划

    需要说明的是,因为每个接口可能处理的不太一样,所以不能把所有的HTTP接口请求都放到一个线程组里,需要创建多个线程组。需要勾选一个选项,否则所有的接口串联不起来。

    三、线程组

    根据需求分析,创建三个线程组

    1、创建单据线程组

    目录结构如下:

    ①HTTP信息头管理器

     需要添加信息头:

    Authorization      【token】

    token如何获取,通过F12或者抓包工具,随意请求一个接口获取token

    ②CSV 数据文件设置

    • 【变量名称】:通过读取CSV文件,获取每一个参数变量的值

    • 【文件名】:导入CSV文件的路径

    其他的不变

    ④HTTP请求

    请求参数里换成${XXX}变量写法,对应CSV文件设置。

    其他参数一一对应填写进去。

    ⑤监听器

    添加结果树和聚合报告,获取其他

    2、审核单据线程组

    目录结构如下:

    ①HTTP信息头管理器

    同上操作

    ②HTTP请求

    通过上面的目录可知有两个请求,是因为审核接口的时候“order_ids”是获取列表数据的id,所以需要查询接口获取到列表id的值,然后两个接口互相传送

    查询接口会查出来多条数据,但是如何提取每一条数据的id呢,先把结果树选择“JSON Path Tester”,然后再在“JSON Path Expression”里进行查询测试,输入【$.data[*]..id】

    $.data[*]..id,代表的意思是

    .代表一层结构

    data[*]代表所有data参数

    ..id代表两层下的id

    返回结果值:Result[index] = id号

    ③JSON提取器

     ④调试后置处理程序

    加上这个元件,请求接口后还有一个结果树生成,调试的结果

    ⑤循环控制器 

    把上面的调试参数放到循环控制器中,代表获取循环的次数

    最后把“id_XXX”的值循环传入请求参数中

    ${__V(id_${__counter(,)},)}

    【转】因为要把JSON提取器中匹配到的id_1,....id_22循环传递给“用户流水记录”,

    __counter为jmeter自带的一个计数函数,${__counter(,)}引用这个函数,每运行1次+1,从1开始;

    id_${__counter(,)}运行第1次id_1,运行第2次id_2,以此类推,直到运行到循环次数id_22

    __V为jmeter自带的一个嵌套变量函数,运行第1次id_${__counter(,)}为id_1,${__V(id_${__counter(,)},)}则为${id_1},值80;以此类推,一直循环到${id_22}

    参考文章《Jmeter之JSON提取器应用

    3、确认单据线程组

    跟“2、审核单据线程组”同理。

    四、附录

    ①感谢:的《jmeter之多个线程组顺序执行操作***

    ②感谢:豆姐姐 的《Jmeter之JSON提取器应用*****

  • 相关阅读:
    二项式定理与组合恒等式
    「CEOI2020」象棋世界 题解
    矩阵 题解
    研一总结
    你明白transform中的skew属性是何如变换的吗?
    pip安装包
    Yaml中特殊符号"| > |+ |-"的作用
    使用ROOT用户运行Jenkins
    检查MySQL主从复制运行状态
    powerdesigner 怎么逆向生成 pdm文件
  • 原文地址:https://www.cnblogs.com/Owen-ET/p/14229778.html
Copyright © 2020-2023  润新知