java - 通过mysql数据库对Jmeter进行多用户登录的负载测试
问题描述
我正在使用 Jmeter 对 Java 应用程序执行负载测试。我有一个 mysql 数据库,我想通过它获取用户及其密码以测试登录。到目前为止,我遵循的步骤是:
- 在系统上设置 jmeter 并在 chrome 上安装 blazemeter 插件。
- 为一位用户通过 blazemeter 登录记录的测试脚本。编辑它以删除所有 HTTP GET 请求,因此该文件只有 HTTP POST 请求。另存为“login.jmx”。</li>
- 在 jmeter 上打开 login.jmx,默认情况下添加了所有必需的元素,例如 cookie 缓存管理器等。
- 添加了 JDBC 配置以与 mysql 数据库建立连接。
- 添加了带有选择语句 SELECT name, passwd FROM t_user 的 JDBC 连接;
- 添加了一个结果树并运行了我的脚本,所有 HTTP POST 请求以及 jdbc 请求都在工作,并且所有用户名和密码都出现了。
- 为了动态更改 HTTP POST 请求中的用户名和密码,我在 JDBC 请求用户名的 VARIABLE NAME 字段中添加,传递并保存为 OBJECT。
- 添加了一个从 1 开始并递增 1 的计数器,以便获取用户直到表结束。
- 然后我在参数选项卡中的 HTTP POST 请求中编写了以下语句,其中用户的凭据发送为: {"username":"${_ V(username ${counter})}","password":"${ _ V(pass ${counter})}"} 但是,用户名和密码不是文本,而是我得到相同的代码,如下面的 ss 所示: 我得到相同的变量而不是实际的用户名和密码
谁能指导我可能会出错的地方?
解决方案
看看你漂亮的截图,我可以看到 JDBC 请求是在 HTTP 请求采样器之后执行的,所以这绝对是正常的,如果你想在 HTTP 请求中使用数据库中的变量,你需要先执行它,否则变量会没有被初始化并且不会有它们各自的值。
还值得检查 JDBC 请求是否确实生成了您正在使用Debug Sampler寻找的变量,因为您的${counter}
变量也没有被解析。
更多信息:
推荐阅读
- react-native - 我想在谷歌地图中使用纬度和经度在反应原生中绘制多边形
- javascript - 外部 JavaScript 文件是否仅用于函数?
- angular - 在另一个组件中使用一个组件,相同的模块在 Angular 6 中不起作用
- c# - 使用 axMsRdpClient 时 .NET 应用程序未启动
- mysql - 是否可以使用触发器根据值将一个表中的值插入到另一个表中?
- scala - 从 scala/spark 中时间戳的数据框列中获取最大值
- oauth - facebook“有效的 OAuth 重定向 URI”中不允许重定向 URI
- java - 使用 Spring Boot 在 IBM Websphere MQ JMS 连接上出现异常
- razor - 带有友好路由的 Razor 页面路由没有响应
- email - 如何在 laravel 中的域电子邮件上设置 smtp 连接