JMeter遇到全局变量、BeanShell Sampler、JDBC(postgresql)

2023-05-16

全局变量、BeanShell Sampler、JDBC(postgresql)

设置全局变量

场景:在压测指定接口时需要先进行登录才能去访问接口,解决方案是先设置一个登录线程,登录成功后通过JSON Extractor提取出token,再通过BeanShell Sampler将环境变量设置成全局变量,使用函数为 __setProperty,例如:${__setProperty(access_token, ${access_token})};
image.png
image.png
读取全局变量,使用函数__property,例如 ${__property(access_token)}
image.png

BeanShell Sampler

写了一段BeanShell脚本,脚本中主要有一些功能

  1. 指定几个变量,每次循环随机获取其中一个
  2. 获取当前时间并转换成指定格式(最后发现其实jmeter中存在响应的函数__timeShift
  3. 将BeanShell中变量设置成环境变量
import java.time.*;
import java.time.format.*;


//Integer a = (Integer)(Math.random() * 750) % 750 + 1;
//String b = String.format("AP1013%04d", a);
//vars.put("mp_code", b);
//
//
//int c = (int)(Math.random() * 150) % 150 + 1;
//String d = String.format("TP1013%04d", c);
//vars.put("t_mp_code", d);


//指定几个变量,每次随机取值
String[] keys = {"equivalentPeak","validValue","equivalentPpValue", "envTruePpValue"};
int k = (int) (Math.random() * 4) % 4 ;
vars.put("key", keys[k]);

String[] data_cate = {"acceleration","speed","displacement"};
int l = (int) (Math.random() * 3) % 3 ;
vars.put("data_cate", data_cate[l]);

// 获取当前时间并转换成指定格式
LocalDateTime time1 = LocalDateTime.now();
LocalDateTime time2 = time1.minusDays(1);
String now_time = time1.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
String start_time = time2.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

//设置成环境变量
vars.put("start_time", start_time);
vars.put("now_time", now_time);

JDBC(postgresql)

首先是驱动,在网上找到的官网地址地不开,其它路径找了一个,版本42.5.0

链接:https://pan.baidu.com/s/1rE6o1B9CEenGcNTlKuPWIg?pwd=gvd1 
提取码:gvd1

将下载后将jar文件放入到jmeter安装目录下的lib文件夹下,重启启动下jmeter
使用起来还是很方便的,和mysql基本一样

添加 JDBC Connection Configuration

image.png

添加 JDBC Request

image.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JMeter遇到全局变量、BeanShell Sampler、JDBC(postgresql) 的相关文章

  • 哪个数据库对复制的支持最好

    我对 MySQL 复制的功能有相当好的感觉 我想知道还有哪些其他数据库支持复制 以及它们与 MySQL 和其他数据库相比如何 我的一些问题是 复制是内置的还是附加组件 插件 复制是如何工作的 高级 MySQL 提供基于语句的复制 5 1 中
  • ojdbc6.jar 文件是什么?

    对于学校项目 我必须使用数据库编写 Java 程序 为此我必须导入该项目文件 ojdbc6 jar 我知道没有它我就无法使用数据库 但我真的不知道这个文件是什么 有人可以解释一下吗 这样的文件是如何被调用的 它的用途到底是什么 简单地说 J
  • 在 postgres 上将表导出为 csv

    如何将表导出到 csv在 Postgres 中 当我不是超级用户并且无法使用copy命令 我仍然可以使用右键单击 导入 按钮将数据导入到 postgres 但没有导出选项 使用 psql 并将流重定向到文件 psql U
  • 使用 Python 使用正确的编码从 Oracle 导入

    我很抱歉提出一个字符编码问题 因为我知道你们每天都会遇到很多问题 但我无法弄清楚我的问题 所以我还是问了 这是我们正在做的事情 使用 Python 从 Oracle DB 获取数据并cx Oracle 使用 Python 将数据写入文件 使
  • 如何通过使用程序(Java代码)运行Jmeter测试来在java代码中设置CSV文件?

    我之前曾问过如何在使用 java 程序运行 jmeter 测试后记录结果的问题 然后我自己得到了这个问题 所以我将分享该问题的链接和答案以供将来参考 所以这是链接 使用程序 JAVA 代码 运行 Jmeter 测试后如何保存结果集 http
  • 将 SQL 转储导入 PostgreSQL 数据库

    我们正在切换主机 旧主机提供了我们站点 PostgreSQL 数据库的 SQL 转储 现在 我尝试在本地 WAMP 服务器上进行设置来测试这一点 唯一的问题是我不知道如何在我设置的 PostgreSQL 9 中导入这个数据库 我尝试了 pg
  • 如何从动态查询中插入具有多列的表?

    如同上一个问题 https stackoverflow com questions 34194889 how to insert into table from dynamic query对于一对一映射 我需要一个针对源和目标中的多个列的解
  • 查找表或视图的依赖对象

    背景 在 PostgreSQL 中删除 或替换 对象时 如果存在依赖关系 则删除将失败 不指定CASCADE Problem 数据库返回的错误信息没有列出依赖对象 示例解决方案 该查询可能类似于 SELECT FROM informatio
  • UCanAccess:向现有表添加列

    我有一个正在运行的 Java 项目 它使用 Access accdb 数据库来存储数据 我正在对我的程序进行更新 以便为用户提供更多功能 为此 我需要向填充数据的现有表添加一列 当我研究时 我发现 UCanAccess 不支持 ALTER
  • psql 的备用输出格式显示每行一列以及列名

    我在 Ubuntu 上使用 PostgreSQL 8 4 我有一个带有列的表格c1通过cN 这些列足够宽 选择所有列会导致一行查询结果多次换行 因此 输出很难阅读 当查询结果仅包含几行时 如果我可以查看查询结果 使得每行的每一列都位于单独的
  • 在 Mac 上通过 Homebrew 安装 PostgreSQL 时出错

    在 Mac OSX 10 11 6 上通过 Homebrew 安装 PostgreSQL 时 出现以下错误 Error The brew link step did not complete successfully The formula
  • 是否可以在 postgresql 中创建触发器而不执行过程?

    我想创建一个程序 其主体为 BL 我在 SQL 中找到了相同的示例 但在 postgresql 中没有找到 每个 RDBMS 都有自己的 SQL 语言 您无法在 PostgreSQL 中创建触发器 因为您可以在 Oracle MS SQL
  • 当 SQL 包含变量时在 pgAdmin 中调试 SQL

    在 SQL Server 中 我可以从应用程序中复制 sql 代码并将其粘贴到 SSMS 中 声明并分配 sql 中存在的变量并运行 是的 很棒的调试场景 例如 请注意 我很生疏 语法可能不正确 declare x as varchar 1
  • 减少 plpgsql 中烦人的通知

    我有一个使用临时表的函数 如果存在则必须将其删除 drop table if exists t xy create temp table t xy on commit drop as select 随后我在视图中使用这个函数 当 selec
  • 连接关闭时结果集未关闭?

    我一直在对我们的一个宠物项目进行代码审查 主要使用 FindBugs 等工具 FindBugs 将以下代码标记为错误 伪代码 Connection conn dataSource getConnection try PreparedStat
  • Postgres 9.3 JSON 输出多维对象

    鉴于此查询 SELECT id as id attributes gt gt name as file name status from workflow events where schema customer and type FILE
  • 基准测试:PostgreSQL 上的 bigint 与 int

    我想提高数据库性能 在一个项目中 所有表都来自int to bigint 我认为这不仅在存储方面是一个糟糕的选择 因为int需要4 bytes and bigint需要8 bytes 但也与性能有关 所以我创建了一个小表1000万条目 其中
  • 使用一个连接执行两个 Java 准备语句 - 样式选择

    好吧 我意识到我确实问了太多问题 却没有回馈社区 但我想听听您对此的意见 说如果我有 private void closeAll ResultSet rs PreparedStatement ps Connection con if rs
  • 在方法之间重用PreparedStatement?

    We all know https stackoverflow com questions 2467125 reusing a preparedstatement multiple times that https stackoverflo
  • 使用 Sequelize.js 和 PostgreSQL 查询关联模型上的 JSONB 字段

    我有我的两个模型Foo and Bar Foo有一个字段barId 因此有一个Bar与其关联的对象 我可以查询我所有的Foo对象并包括它们的关联Bar对象如此 我正在使用 TypeScript续集打字稿 https github com R

随机推荐