我有一个MySQL数据库,我正在尝试使用JDBC Request获取此字节数组。 我将结果保存在变量中,然后在BeanShell中将此结果编码为字符串并通过HTTP POST发送:
BeanShell的:
import java.net.URLEncoder;
import org.apache.commons.net.util.Base64;
String source = vars.get("storedToken_1");
byte[] encodedBytes = Base64.encodeBase64(source.getBytes());
String encoded = new String(encodedBytes);
String code = URLEncoder.encode(encoded, "UTF-8");
vars.put("reset_pass_token", code);
问题是,我从数据库中获取的 storedToken 已损坏,因此我无法对测试进行身份验证。
有没有其他方法可以从数据库中检索此字节数组值并将其存储在变量中,以便我可以在POST中发送它?
答案 0 :(得分:2)
如果变量以字节数组形式出现,则需要使用vars.getObject()方法在Beanshell中稍微改变一下,如:
String source = new String(vars.getObject("storedToken_1"));
另外,提取变量的方式可能很重要,JMeter不会“破坏”数据,可能是您滥用JDBC Test Element的情况。有关列出的可用选项,请参阅Debugging JDBC Sampler Results in JMeter文章,如果没有帮助,请使用屏幕截图或JDBC元素配置的详细说明更新您的问题。