工具及下载链接

工具:Openapi Generator

下载页:https://openapi-generator.tech/docs/installation/#jar

也可以在这里直接下载jar包:https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/6.2.0/openapi-generator-cli-6.2.0.jar

环境准备

  • swagger.json 文件
  • Java环境(Java 8 及以上)
  • Jmeter环境
  • 以及前面下载的 OpenAPI Generator jar包

OpenAPI Generator 环境配置(win环境)

此步可以不做,下载的jar包解压即可使用,但为了后续使用方便,推荐做此配置,在此使用win演示,其余系统可参照配置(亦可参照第一节,下载页链接)。

  1. 下载后的jar包将文件名中版本号删除(openapi-generator-cli-6.2.0.jar → openapi-generator-cli.jar)并放置在一个新的文件夹下,本文实例放置在 C:\myTool\Swagger2Jmeter 目录下;

  2. 新建 Sw2Jmeter.ps1、Sw2Jmeter.bat 两个脚本文件(按需使用,powerShell 可执行 ps1 和 bat,cmd 仅支持 bat);

    $jsonPath = $args[0]
    java -jar $env:Sw2Jm_HOME\openapi-generator-cli.jar generate -g jmeter -i $jsonPath
    

    Sw2Jmeter.ps1 文件

    java -jar %Sw2Jm_HOME%\openapi-generator-cli.jar generate -g jmeter -i %~1%
    

    Sw2Jmeter.bat 文件

    也放置在该目录下,完成这步后你的目录应该像这样;

    image2022-10-17_13-14-53

  3. 新建环境变量:Sw2Jm_HOME,变量值为之前的目录(C:\myTool\Swagger2Jmeter);

    image2022-10-17_13-18-5

  4. 编辑Path变量,在最后一行添加 %Sw2Jm_HOME% ,到这步就算配置完成了。

    image2022-10-17_13-20-7

生成jmeter脚本

切换到存放swagger.json的目录下,执行命令

想练习的话可以 swagger 官方提供的接口问大哥网址内下载 https://petstore.swagger.io/ 下载 swagger.json 文件

  • cmd 执行:Sw2Jmeter.bat swagger.json

  • power shell 执行:Sw2Jmeter.ps1 swagger.json

  • 没有配置第三步的执行:java -jar openapi-generator-cli.jar generate -g jmeter -i swagger.json(写脚本配置第三步主要就是因为懒,不想每次都输这么长一串,复制粘贴也嫌麻烦)

image2022-10-17_13-30-14

image2022-10-17_13-31-26

命令执行成功后,就会生成所需的 jmx 、csv 文件:

image2022-10-17_13-32-2

image2022-10-17_13-32-54

导入 jmeter

  1. 打开jmeter;

  2. file → open(以StoreApi.jmx为例)

    image2022-10-17_14-3-7

  3. 导入成功后,基本的信息就已经导入了了,但也不代表能直接run,还需要对着接口文档(例:https://petstore.swagger.io/)做一些调试,设计自己所需的测试数据,断言之类的。

    image2022-10-17_14-3-41

  4. 此处需修改这么几处(仅此例,不同情况不同处理):

    • user defined variables:

      image2022-10-17_14-13-37

    • http request defaults:

      image2022-10-17_14-31-11

    • body data:

      image2022-10-17_14-31-48

    • csv 文件(调试时可用文档中的Example Value):

      image2022-10-17_14-35-2

      image2022-10-17_14-33-37

    • 测试一下(附件:StoreApi.jmx、StoreApi.csv):

      image2022-10-17_14-36-31

Swagger Json格式解析

此图来源于网络,如有侵权,请联系删除

image2022-10-17_14-55-12