在 JMETER 中将汇总报告结果添加到数据库

Add summary report results to database in JMETER

有什么方法可以将 JMETER 测试结束时生成的摘要报告结果添加到数据库中吗?我在数据库中创建了一个 table。在此 table 我想存储汇总结果。我正在使用 Mysql 数据库。我该怎么做?

谢谢。

JMeter 是开源的。您甚至可以创建自己的侦听器,以便在采样器完成时将结果存储在数据库中。 Check this 想出主意。

如果你想在 运行 测试的同时得到结果,我想 BeanShell Listener 这里可以帮助你。基本上,您放置 beanshell 代码以将结果记录在数据库中。

如果您希望在测试后上传结果,Summary Report 可以配置侦听器以将结果记录在 CSV 文件中。测试后 - 您可以手动上传到 MySQL 数据库,创建自定义脚本以编程方式上传。

您可以按照以下方式进行:

  1. 下载 MySQL JDBC Driver 并将其放到 JMeter 安装的 /lib 文件夹中
  2. 重新启动 JMeter 以拾取 .jar
  3. 将摘要报告侦听器添加到您的测试计划。
  4. 将其配置为将结果保存到某个文件,即 c:\jmeter\results.csv
  5. tearDown Thread Group 添加到您的测试计划
  6. 添加JDBC Connection Configuration并提供:

    • 绑定到池的变量名:任何有意义的,即results
    • 数据库URL:即jdbc:mysql://localhost:3306/YOUR_DATABASE_NAME_HERE
    • 数据库驱动程序Class:com.mysql.jdbc.Driver
    • 凭据
  7. 添加JDBC Sampler配置如下:

    • 变量名:与JDBC连接配置中的变量名匹配的东西,即results
    • 查询类型:Update Statement
    • 查询:load data local infile 'c:\jmeter\results.csv' into table YOUR_TABLE_NAME_HERE fields terminated by ',' enclosed by '"' lines terminated by '\n';

这样您就可以自动插入结果。

参考文献:

以防万一您不知道如何为查询结果创建 table:

create table test (timeStamp varchar(255),elapsed varchar(255),label varchar(255),responseCode varchar(255),responseMessage varchar(255),threadName varchar(255),dataType varchar(255),success varchar(255),bytes varchar(255),grpThreads varchar(255),allThreads varchar(255),Latency varchar(255) );

有关详细信息,请参阅 MySQL CREATE TABLE Syntax 文档。