程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了是否可以参数化 Post 请求有效负载,然后在 Jmeter 中将其编码为 base64大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决是否可以参数化 Post 请求有效负载,然后在 Jmeter 中将其编码为 base64?

开发过程中遇到是否可以参数化 Post 请求有效负载,然后在 Jmeter 中将其编码为 base64的问题如何解决?下面主要结合日常开发的经验,给出你关于是否可以参数化 Post 请求有效负载,然后在 Jmeter 中将其编码为 base64的解决方法建议,希望对你解决是否可以参数化 Post 请求有效负载,然后在 Jmeter 中将其编码为 base64有所启发或帮助;

背景是我想对 @R_404_5561@ pub/sub 进行 REST。哪里的数据需要遵循这种格式:

Link to documentation of Pub/Sub format

我当前的解决方案是,在将请求发送到端点之前,我使用 BeanSHell PreProcessor 脚本将有效负载编码为 base64。此解决方案有效,但我想 参数化负载中的数据,而不是将整个负载作为测试数据插入到 csv 文件中。

BeanSHell PreProcessor 用于在消息发送之前对其进行编码:

import org.apache.jmeter.protocol.http.util.base64Encoder;

String csv_payload = vars.get("csv_payload");
String csv_payload_encoded = Base64Encoder.encode(csv_payload);
vars.put("csv_payload_encoded",csv_payload_encoded);

从 Post 请求中的 csv 文件填充的有效负载:

{
    "messages": [
        {
            "data":"${Csv_payload_encodeD}",}
      ]
    }

请求中发送的 csv 文件中存储的负载数据示例:

{"IDentID":"123456","requestID":null,"payload":{"header":{"requestID":1,"timestamp":1617873956,"version":"0.0.0.1","eventID":0001,"creatorID":0,"messageTTL":34560},"body":{"checkID":001,"checkData":{"diagnosticsData":{"troublesource":0,"data":"[2020-01-01 16:00:53.707961][[lat[0]][long[0]][alt[0]][canbetrust[0]][mars[0]]][signal[5]][TEM2 wake up]"}}}}}

请求发送到 @R_404_5561@ pub/sub 的编码负载示例:

{
    "messages": [
        {
            "data":"eyJpZGVudElkIjoiMTIzNDU2IiwicmVxDWVzdElkIjpuDWxsLCJwYXlsb2FkIjP7ImhlYWRlciI6eyJyZXF1ZXN0aWQiOjesInRpbWVTdGFtcCI6MTYxNzg3Mzk1NiwIDmVyc2lvbiI6IjAuMC4wLjeiLCJldmVudElkIjowMDAxLCJjcmVhdG9ySWQiOjAsIm1lc3NhZ2VUVEwiOjM0NTYwfSwiym9keSI6eyJjaGVja2lkIjowMDEsImNoZWNrRGF0YSI6eyJkaWFnbm9zdGljc0RhdGEiOnsIDHJvDWJsZVNvdXJjZSI6MCwiZGF0YSI6IlsymDIwLTAxLTAxIDE2OjAwOjUzLjcwNzk2MV1bW2xhdFswXV1bbG9uZ1swXV1bYWx0WzBdXVtjYW5iZXRydXN0WzBdXVttYXJzWzBdXV1bc2lnbmFsWzVdXVtURU0yIHdha2UgdXBdIn19fX19",}
      ]
    }

如果有任何反馈,我将不胜感激或任何其他改进建议 我将如何继续以将有效负载参数化和编码为 base64,例如:

Example of

解决方法

  1. 不要使用 BeansHell,since JMeter 3.1 you're supposed to be using JSR223 Test Elements and Groovy language for scripTing

  2. 可以通过 __base64Encode() function 插件包使用 Custom JMeter Functions 使用 JMeter Plugins Manager

  3. 如果您的 CSV 文件引用了其他 JMeter 函数或变量,您可以通过将它们包装到 __eval() function 中来解析它们,例如:

    • 读取文件:

      ${__FileToString(somefile.csv,)}
      
    • 读取文件并解析其中的任何函数或变量:

      ${__eval( ${__FileToString(somefile.csv,)})
      
    • 读取文件,解析任何函数或变量并对结果进行 Base64 编码:

      ${__base64Encode(${__eval( ${__FileToString(somefile.csv,)})},)}
      

    演示:

    是否可以参数化 Post 请求有效负载,然后在 Jmeter 中将其编码为 base64

大佬总结

以上是大佬教程为你收集整理的是否可以参数化 Post 请求有效负载,然后在 Jmeter 中将其编码为 base64全部内容,希望文章能够帮你解决是否可以参数化 Post 请求有效负载,然后在 Jmeter 中将其编码为 base64所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。