如何从数据库中读取 Jmeter 中的字节数组?
How can I read a byte array in Jmeter from a database?
我有一个 MySQL 数据库,我正在尝试使用 JDBC 请求获取此字节数组。
我将结果保存在一个变量中,然后在 BeanShell 中将该结果编码为一个字符串并通过 HTTP POST:
发送它
豆壳:
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?
如果变量以字节数组形式出现,您需要在 Beanshell 中使用 vars.getObject() 方法稍微不同地处理它,例如:
String source = new String(vars.getObject("storedToken_1"));
您提取变量的方式也可能很重要,JMeter 不会 "corrupt" 数据,可能是您滥用了 JDBC 测试元素。请参阅 Debugging JDBC Sampler Results in JMeter 文章以了解列出的可用选项,如果它没有帮助 - 使用屏幕截图或 JDBC 元素配置的详细描述更新您的问题。
我有一个 MySQL 数据库,我正在尝试使用 JDBC 请求获取此字节数组。 我将结果保存在一个变量中,然后在 BeanShell 中将该结果编码为一个字符串并通过 HTTP POST:
发送它豆壳:
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?
如果变量以字节数组形式出现,您需要在 Beanshell 中使用 vars.getObject() 方法稍微不同地处理它,例如:
String source = new String(vars.getObject("storedToken_1"));
您提取变量的方式也可能很重要,JMeter 不会 "corrupt" 数据,可能是您滥用了 JDBC 测试元素。请参阅 Debugging JDBC Sampler Results in JMeter 文章以了解列出的可用选项,如果它没有帮助 - 使用屏幕截图或 JDBC 元素配置的详细描述更新您的问题。