MeterSphere 接口自动化 CSV 整合 JSON 文件
  ytXF8ujKKYXO 2023年11月02日 30 0

在 ToB 系统的业务场景中,经常有厂家需要将原始 JSON 数据,用于请求体传参,或者响应体对比等业务场景。对应 Metersphere 中接口自动化,CSV 数据驱动数据包含 JSON 结构内容,用于接口测试时,请求体引用和响应体对比。

     测试步骤分析:1、创建场景,导入包含 JSON 数据的 CSV(包含 header 和若干行预期结果)

 2、获取JSON数据后,正常引用变量测试或断言

     注: 如果 JSON 数据非独立存在文件 JSON 数据量较大,不方便结构化到 CSV 文件时,建议 CSV文件中 json_file 一栏可填写为文件名称,然后通过脚本解析得到 JSON 文件内容

            如果 JSON 数据 JSON 数据量较小,方便结构化到 CSV 文件时,建议直接将 JSON 数据放到 CSV 中对应位置

     举例使用场景:通过CSV批量设置多笔报文的输出结果,然后读入多笔报文去调 API,之后通过断言来比对每笔报文的预期和实际结果,实现批量比对的功能

1、JSON 数据量较小,方便结构化到 CSV 文件时,直接将 JSON 数据放到 CSV 中对应位置,后引用使用

MeterSphere 接口自动化 CSV 整合 JSON 文件_数据

导入 CSV 到场景变量中,设置是否允许带引号为 True

MeterSphere 接口自动化 CSV 整合 JSON 文件_数据_02

MeterSphere 接口自动化 CSV 整合 JSON 文件_JSON_03

请求体引用 JSON 数据,进行接口请求

MeterSphere 接口自动化 CSV 整合 JSON 文件_CSV_04


2、JSON 数据非独立存在文件 JSON 数据量较大,不方便结构化到 CSV 文件时,CSV 文件中 json_file 一栏可填写为文件名称,然后通过脚本解析得到 JSON 文件内容

可在 CSV 文件中添加一列,指定该条数据要读取的 JSON 文件

MeterSphere 接口自动化 CSV 整合 JSON 文件_JSON_05

 将 JSON 文件上传到服务器 /opt/metersphere/data/json 目录下

MeterSphere 接口自动化 CSV 整合 JSON 文件_JSON_06

可在请求的前置脚本中写入读取 JSON 文件的 Python 脚本,并将读取到的内容存储为 body

MeterSphere 接口自动化 CSV 整合 JSON 文件_JSON_07

在请求体里可直接引用 ${body} 即可

MeterSphere 接口自动化 CSV 整合 JSON 文件_数据_08

点击运行正常发出请求,在请求内容处能看到发送的参数为 JSON 文件内容。

MeterSphere 接口自动化 CSV 整合 JSON 文件_JSON_09

MeterSphere 接口自动化 CSV 整合 JSON 文件_JSON_10


*******Python 读取 JSON 文件代码如下*********

import sys

import io

#注意:此路径容器内部的映射路径,为固定值

sys.path.append("/opt/metersphere/data/python/lib/python2.7/site-packages")file = "/opt/metersphere/data/json/{}".format("${json_file}")

​log.info​​("===111==="+file);with io.open(file,'r',encoding='utf-8') as f:

    body = f.read()

vars.put("body",body);

******Beanshell 读取 JSON 文件代码参考如下*********

 String fileName = "/opt/metersphere/data/json/15.json";     

 BufferedReader buffer = new BufferedReader(new FileReader(fileName));     

 long length = 0;     

 String lines ="";     

 String line = "";     

 while ((line = buffer.readLine()) != null) {         

     length += 1;         

     lines+=line + "\n";     

     

 }     

 ​​log.info​​("打印文件行数"+length);     

 ​​log.info​​("打印文件内容"+lines);

读取 JSON文件最快的方式是使用 JMeter 函数 FileToString,用法为 ${__FileToString(/opt/metersphere/data/json/15.json,,)}

函数使用示例见下图:

MeterSphere 接口自动化 CSV 整合 JSON 文件_CSV_11

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  SBowDWXjb0NT   2023年11月30日   22   0   0 redis线程池数据
ytXF8ujKKYXO
最新推荐 更多