大佬教程收集整理的这篇文章主要介绍了是否可以参数化 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
不要使用 BeansHell,since JMeter 3.1 you're supposed to be using JSR223 Test Elements and Groovy language for scripTing
可以通过 __base64Encode() function 插件包使用 Custom JMeter Functions 使用 JMeter Plugins Manager
如果您的 CSV 文件引用了其他 JMeter 函数或变量,您可以通过将它们包装到 __eval() function 中来解析它们,例如:
读取文件:
${__FileToString(somefile.csv,)}
读取文件并解析其中的任何函数或变量:
${__eval( ${__FileToString(somefile.csv,)})
读取文件,解析任何函数或变量并对结果进行 Base64 编码:
${__base64Encode(${__eval( ${__FileToString(somefile.csv,)})},)}
演示:
以上是大佬教程为你收集整理的是否可以参数化 Post 请求有效负载,然后在 Jmeter 中将其编码为 base64全部内容,希望文章能够帮你解决是否可以参数化 Post 请求有效负载,然后在 Jmeter 中将其编码为 base64所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。