问答 有图,江湖救急,网站上有对 jmeter 特别熟悉的人吗

烂柯人 · 2022年01月13日 · 最后由 烂柯人 回复于 2022年01月19日 · 3805 次阅读

如题,一个问题折磨了我好久,就是一个服务的接口,如果传入的 url 是带 time 字段的话,需要对请求体进行加密,传入的参数就是 byte[] 类型。我通过三种方式解决
1 :java 请求
2 : beanshell
3: Groovy
其中第一种方法以及解决了,第 2、3 种方法,在最后一步将入参加密以后的 byte 类型经过 vars.putObject() 到 http 请求中错误。
上述三种方式中所用的加密代码都是一个,可以排除代码的问题。

共收到 14 条回复 时间 点赞

说实话,我没看懂你的问题,相信各位大佬不回你也是这个原因吧

我的鱼呢 回复

可能我描述有问题,主要是没法直接展示代码

没看懂啥意思。可以简单举个示例之类的吗

在最后一步将入参加密以后的 byte 类型经过 vars.putObject() 到 http 请求中错误。

具体啥报错?另外,你加密后的 byte 类型具体到底是啥类型,用 java 语言把类型名明确给出来?var.putObject() 并不是所有类型都支持的。如果是 byte[] 类型,这个属于基本数据类型,不属于对象,不一定支持。

我的鱼呢 回复

看下图

陈恒捷 回复

1、可以看看这个回答,也写个最简化代码验证一下?
2、正文提到有报错,具体报错信息也贴上来吧?

8楼 已删除
陈恒捷 回复

这个报错就是由于发送的消息体有问题导致的,找开发调试说是加密的内容有问题,我还是怀疑传值与问题,因为加密的方法都是一个

烂柯人 回复

验证过 vars.putObject() 支持写入 byte[] 类型数据么?

陈恒捷 回复



这块的传递确实有问题

看了下你的问题,如果将 byte[] 类型存放在 txt,然后再读取的方法是可行的,说明请求传入参数不是 byte[] 类型而只是字符串

你这里之所以是 byte[],只是你的加密方法返回的是一个 byte[] 类型,将 byte[] 类型转换成字符串,再使用 vars.put() 设置变量引用试试

建议放弃,直接用代码去写

Tester_谜城 回复

感谢解答,开发那边的接口入参是 byte[] String 是有问题的,我准备放弃这种方法啦

开普敦人 回复

是的,Java Sample 已经实现了,只是觉得另外两种方式更简单,如果可以处理的话

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册