npm 包 artillery-plugin-fuzzer 使用教程

阅读时长 7 分钟读完

前言

前端开发中,测试是相当重要的一个环节,而压力测试就是其中一个重要的部分。Artillery 是一个现代化的、开发者友好的压力测试工具,也是 Node.js 编写的。Artillery 提供了插件的机制,使其更为灵活和强大,今天我们就来介绍一下一个用于业务逻辑模糊测试的插件:artillery-plugin-fuzzer。

安装和使用

安装

安装 artillery-plugin-fuzzer 可以使用 npm 进行安装:

使用

在 Artillery 配置文件中的 config 对象中的 plugins 数组中增加 artillery-plugin-fuzzer 插件的引用即可使用:

-- -------------------- ---- -------
-------
  ------- ---------------------
  -------
    - --------- --
      ------------ --
  --------
    ------------------------
      ---- -------
      --------
        - ----- --------
          ----- --------
          ----------- ----------- -------
        - ----- ---------
          ----- --------
          ------ --- ----
          ----- -
        - ----- ------
          ----- ------
          --------- ---------------------------------------------------------------
          -----------
           - - ------- ------ ------ --- --------- ------ -
           - - ------- -------- ------ --- --------- -------- -
        - ----- -------------
          ----- -------------
          ----------- ----- ---- ----

----------
  - ----- ------- -----
    -----
      - ----
          ---- --- ------------- ---- --------------------------- ---------- ------------- --------- -------------- ---

参数说明

  • url: 必填,提供业务模糊测试的 URL
  • fuzzers: 必填,提供一个业务模糊测试器列表,每个业务模糊测试器都由 name, type, dictionary 三个属性组成
    • name: 必填,业务模糊测试器的名称,在测试报告中会用到
    • type: 必填,业务模糊测试器的类型,支持 string, number, jsoncustom_type
    • dictionary: 选填,用于进行模糊测试的单元,可以是字符串数组、数字范围数组、JSON 模板数组和自定义类型数组
    • range: 选填,对于 type=number 的模糊测试器,表示一个数值的范围,数组中包含两个元素,分别为该范围的最小值和最大值
    • step: 选填,对于 type=number 的模糊测试器,表示递增或递减的步长,例如 [1, 100, 5] 表示从 1 递增到 100,步长为 5
    • template: 选填,对于 type=json 的模糊测试器,表示 JSON 模板

例子

字符串类型的模糊测试

-- -------------------- ---- -------
-------
  ------- ---------------------
  -------
    - --------- --
      ------------ --
  --------
    ------------------------
      ---- -------
      --------
        - ----- ---------------
          ----- --------
          ----------- ----------- -------
        - ----- ----------------
          ----- --------
          ----------- ----------- -------
        - ----- -------------
          ----- --------
          ----------- ----------- -------

----------
  - ----- ------- -----
    -----
      - ----
          ---- --- ------------- ---- --------------------------- ------------------- -------------------- -------------------- --------------------- ----------------- ------------------ ---

数字类型的模糊测试

-- -------------------- ---- -------
-------
  ------- ---------------------
  -------
    - --------- --
      ------------ --
  --------
    ------------------------
      ---- -------
      --------
        - ----- ---------
          ----- --------
          ------ --- ----
          ----- -
        - ----- -------
          ----- --------
          ------ --- --
          ----- ---

----------
  - ----- ------- -----
    -----
      - ----
          ---- --- ------------- ---- --------------------------- ------------- -------------- ----------- ------------ ---

JSON 类型的模糊测试

-- -------------------- ---- -------
-------
  ------- ---------------------
  -------
    - --------- --
      ------------ --
  --------
    ------------------------
      ---- -------
      --------
        - ----- ------
          ----- ------
          --------- ---------------------------------------------------------------
          -----------
           - - ------- ------ ------ --- --------- ------ -
           - - ------- -------- ------ --- --------- -------- -

----------
  - ----- ------- -----
    -----
      - -----
          ---- --- ------------- ---- --------------------------- ---
          -----
            ----- --- ---------------- ---
            ---- --- --------------- ---
            ------- --- ------------------ ---

结语

本文介绍了使用 artillery-plugin-fuzzer 插件进行业务逻辑模糊测试的方法,并提供了详细和深度的参数说明和示例代码。希望对大家有所帮助,能够更好地进行压力测试,提升产品的性能和稳定性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005596081e8991b448d6d13

纠错
反馈