[转帖]jmeter实现不写代码把测试结果存入execl

jmeter,实现,代码,测试,结果,存入,execl · 浏览次数 : 0

小编点评

**步骤 1:创建数据库连接信息和新建数据库** ```java // 数据库 URL String databaseUrl = "jdbc:sqlite:mytest.db"; // 创建数据库对象 Connection connection = null; Statement statement = null; try { // 打开数据库连接 connection = DriverManager.getConnection(databaseUrl); // 创建数据库对象 statement = connection.createStatement(); // 创建表语句 String sql = "CREATE TABLE users ( " + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "username VARCHAR(50) NOT NULL, " + "password VARCHAR(50) NOT NULL" + ");"; // 执行表创建语句 statement.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭数据库连接 try { if (connection != null) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } ``` **步骤 2:创建测试信息表** ```java // 创建线程组 ThreadGroup threadGroup = new ThreadGroup("test-thread-group"); // 创建数据库请求 Statement statement = null; try { // 连接数据库 connection = DriverManager.getConnection(databaseUrl); // 创建数据库对象 statement = connection.createStatement(); // 执行创建表语句 statement.executeUpdate("CREATE TABLE test_info ( " + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "username VARCHAR(50) NOT NULL, " + "password VARCHAR(50) NOT NULL" + ");"); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭数据库连接 try { if (connection != null) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } ``` **步骤 3:编写登录接口** ```java // 模拟登录接口 public class LoginInterface { public String login(String username, String password) { // 假设用户名和密码正确,返回token和status return "token=123456&status=success"; } } ``` **步骤 4:存储登录信息到数据库** ```java // 创建线程组 ThreadGroup threadGroup = new ThreadGroup("login-thread-group"); // 创建数据库请求 Statement statement = null; try { // 连接数据库 connection = DriverManager.getConnection(databaseUrl); // 创建数据库对象 statement = connection.createStatement(); // 执行登录接口 String loginResult = loginInterface.login(username, password); // 将登录结果存储到数据库中 statement.executeUpdate("INSERT INTO test_info (username, password) VALUES (?, ?)", new Object[]{username, password}); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭数据库连接 try { if (connection != null) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } ``` **步骤 5:导出登录信息到execl** ```java // 创建线程组 ThreadGroup threadGroup = new ThreadGroup("export-thread-group"); // 创建数据库请求 Statement statement = null; try { // 连接数据库 connection = DriverManager.getConnection(databaseUrl); // 创建数据库对象 statement = connection.createStatement(); // 获取所有结果 ResultSet resultSet = statement.executeQuery("SELECT * FROM test_info"); // 创建execl文件 Workbook workbook = new Workbook(); Sheet sheet = workbook.createSheet("result_0701.xls"); // 写入数据 while (resultSet.next()) { sheet.addCell(resultSet.getString("username")); sheet.addCell(resultSet.getString("password")); } // 关闭结果集和数据库连接 resultSet.close(); connection.close(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭数据库连接 try { if (connection != null) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } ```

正文

这里使用数据库作为中间件来实现不写代码就把测试结果存入execl,下面是步骤

1.新建一个setup线程组用来设置数据库连接信息和新建数据库,如下图所示,我们使用sqlite数据库来存储信息,因为不需要自己再去安装数据库,Database URL填写jdbc:sqlite:mytest.db,这是标准写法,mytest是数据库名称,执行后会在bin目录生成一个mytest.db的文件,注意这里需要自己去下载sqlite的驱动jar包,地址传送门https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/,数据库名称和密码都不用填,当然你用别的数据库例如mysql也是可以的,这里用sqlite只是因为它不需要安装

2.在setup线程组中写创建表的语句,用来存储测试信息,根据自己的需要设计字段,我这里做演示,是存储了请求时的用户名、密码,相应结果里的token和status

3.新建一个线程组来写我们实际的请求,我这里以自己写的登录接口作为示例,如下图所示,请求的用户名和密码写在了用户自定义变量里面,这里只是方便演示,然后发起请求,用json提取器提取返回的token和status

至此,我们需要存储的信息都已经拿到了,然后新建一个数据库请求来存储这些信息,入下图所示,我们通过${}引用刚才得到的信息,然后用insert语句插入到数据库中

4.接下来我们就可以把存到数据库里的信息导出到execl里了。新建一个tearDown线程组,新建一个jdbc请求用来实现导出,如下图所示,通过select语句把所有的结果查询出来,然后添加一个监听器---保存响应到文件

保存到响应文件的配置如下,根据自己的需要修改

运行后就会在jmeter的bin目录下生成一个名为result_0701.xls的文件,里面就存储了刚才的信息

这是execl里面的内容

 

与[转帖]jmeter实现不写代码把测试结果存入execl相似的内容:

[转帖]jmeter实现不写代码把测试结果存入execl

这里使用数据库作为中间件来实现不写代码就把测试结果存入execl,下面是步骤 1.新建一个setup线程组用来设置数据库连接信息和新建数据库,如下图所示,我们使用sqlite数据库来存储信息,因为不需要自己再去安装数据库,Database URL填写jdbc:sqlite:mytest.db,这是标

[转帖]Jmeter笔记:使用Jmeter向kafka发送消息

https://www.cnblogs.com/daydayup-lin/p/14124816.html 日常工作中有时候需要向kafka中发送消息来测试功能或者性能,这时候我们怎么办呢?我之前是自己写个简单的python脚本来模拟发送消息的,其实用Jmeter来实现也比较简单方便。 1、我们必须有

[转帖]jmeter实现分布式压测

分布式实现的前提条件: 1.master机器和奴隶机的jmeter要一致 a. jmeter版本要一致 b.jdk主要版本要一致,比如都是jdk1.8,后面的小版本不一样不影响 c.jmeter脚本中csv文件要一致(特别注意csv路径,建议csv路径使用相对路径,放在脚本的同级目录) d.jmet

[转帖]Jmeter常用配置元件(二):“HTTP Cookie管理器”登录状态保持

在API接口测试过程中,我们需要传递cookie值作为连接状态的保持,例如登录后状态信息。通过使用Jmeter提供的“HTTP Cookie管理器”来实现。 一般情况下不需要输入什么值,就这样即可,如何想手动传递cookie值。可以请参考“渗透测试:通过Jmeter实现CSRF(Cross-site

[转帖]jmeter线程组与循环次数的区别

在压测的时候,有些接口需要携带登录信息,但是我们只想登录一次,然后其他接口进行多用户压测,此时你会怎么办?用仅一次控制器实现吗?下面我们来看看用仅一次控制器能不能实现 压测时jmeter中的线程数是模拟并发用户的,我们设置线程数5,然后登录请求添加一个仅一次控制器,我们通过察看结果树看到登录请求是执

[转帖]Jmeter性能测试:高并发分布式性能测试

一、为什么要进行分布式性能测试 当进行高并发性能测试的时候,受限于Jmeter工具本身和电脑硬件的原因,无法满足我们对大并发性能测试的要求。基于这种场景下,我们就需要采用分布式的方式来实现我们高并发的性能测试要求。 二、分布式性能测试原理 要进行分布式性能测试,我们首先要先一台机器作为主控机(Con

[转帖]jmeter SSL证书相关配置

在实际工作中,我们大多数接口都是用的HTTPS来保证安全,使用jmeter测试HTTPS请求是如何配置证书呢? 1.最简单的方法,在选项里选择SSL管理器,然后选择相应的证书即可 在弹出的选择框选择证书即可,亲测可以使用.p12证书,因为我们公司用的是p12类型证书,当发起HTTPS请求时,如果设置

[转帖]JMETER性能监控之serverAgent

对linux服务器的服务进行压测时,服务器的运行情况可以通过添加插件serverAgent来观察,可以实时监控性能指标。 1 (一)环境准备 1、下载zip包ServerAgent-2.2.3.zip 2、在服务器中,创建一个文件夹serveragent,名字随便起 mkdir serveragen

[转帖]1.使用Apache Jmeter对应用压力测试学习与实践

https://cloud.tencent.com/developer/article/2129909?areaSource=105001.10&traceId=OFI4ayMl5Z9FSNINaESjJ 0x00 前言简述 1.JMeter 介绍 Q: 什么是Apache JMeter ? JMe

[转帖]jmeter及serveragent的安装、常见报错及解决方法

一.说明: 1.jmeter必须在java环境下运行 2.jmeter抓包可以用自带服务器录制抓取,也可以手动网页抓取(含fiddler),也可以用badboy(更推荐手动抓取和badboy) 3.后面单独开一篇来说明各个功能的用处。 二.安装: 1.jmeter.properties配置:在jme