当前位置: 首页 > news >正文

jmeter--7.BeanShell

目录

1. beanshell常用语法

1.1 log:日志写入

1.2 vars:设置和引用局部变量(同线程组)

1.3 props:设置和引用全局变量(跨线程组)

1.4 prev:获取前一个请求返回的信息

2. beanshell调用java代码

2.1 beanshell直接调用java文件(针对单个文件)

2.2 beanshell直接调用jar包

3. beanshell调用python代码

3.1 beanshell调用无参函数

3.2 beanshell调用有参数的函数


1. beanshell常用语法

1.1 log:日志写入

log.info("测试");         //打印字符串
log.info(123+"");        //打印数字需要拼接一个字符串,因为无法直接打印int
log.error("打印错误日志");    //打印错误日志使用error    
System.out.println("java打印")  //java打印,在控制台输出

输出结果

1.2 vars:设置和引用局部变量(同线程组

  • 通过用户自定义变量赋值,然后通过log.info(vars.get("key")); 的方式获取

  • 通过提取器的方式获取需要的值

  • 通过【vars.put("age","18"); 】进行设置变量,通过【log.info(vars.get("age"));】获取变量。可以是不同的BeanShell 取样器也可以使用beanshell处理器进行

1.3 props:设置和引用全局变量(跨线程组

props.put("name","张三"); //设置值
log.info(props.get("name")); //获取值--跨线程组

1.4 prev:获取前一个请求返回的信息

log.info(prev.getResponseCode()+"");  //获取上一个请求的响应码
log.info(prev.getResponseDataAsString());  //获取上一个请求的响应结果数据

2. beanshell调用java代码

2.1 beanshell直接调用java文件(针对单个文件)

java代码内容

package test;public class Test {public int add(int a,int b) {return a+b;}}

调用方法

  • 将java文件放入指定路径中,然后通过beanshell调用文件路径
  • 调用java代码并传值输出
source("D:/study/course/Jmeter/Test.java");   //通过source()引入java文件,这里的路径需要转义
int result = new Test().add(3,5);   //创建一个对象,并且调用它的方法
log.info("调用java打印结果为:"+result+"");   //打印

打印结果

2.2 beanshell直接调用jar包

在测试计划中引入jar包

调用方法

import test.Test;  //导包
int result = new Test().add(5,1); //创建一个对象,并且调用它的方法
log.info("调用java打印结果为:"+result+""); //打印

打印结果

3. beanshell调用python代码

3.1 beanshell调用无参函数

python代码内容

import randomdef get_random():rd = str(random.randint(1,100))print(rd)if __name__ == "__main__":get_random()

调用方法

import java.io.BufferedReader;  //导包
import java.io.InputStreamReader;String command = "cmd /c python D:/study/course/Jmeter/test.py";  //组建cmd命令并执行py文件
Runtime rt = Runtime.getRuntime(); //初始化一个运行时对象
Process pr = rt.exec(command); //通过运行时对象运行cmd命令。pr.waitFor();  //运行时等待//调用pr进程对象获取到它的输入流。读取pr文件流的内容,并且保存到reponse_data
BufferedReader br = new BufferedReader(new InputStreamReader(pr.getInputStream()));
StringBuilder response = new StringBuilder();
String line = "";
while((line=br.readLine())!=null){response.append(line);
};
String reponse_data = response.toString();
br.close();
log.info("通过python代码获取到的随机数:reponse_data:"+reponse_data);//打印返回的内容

 打印结果

3.2 beanshell调用有参数的函数

python代码内容

def get_random():#接收cmd命令里面的参数parse = argparse.ArgumentParser()parse.add_argument("-t","--ticket")args = parse.parse_args()ticket = args.ticket#随机数times=str(int(time.time()))print(ticket+times) #打印if __name__ == "__main__":get_random()

 调用方法-与无参数的区别就是在组建cmd命令并执行py文件时加一个参数的写入

import java.io.BufferedReader;  //导包
import java.io.InputStreamReader;String command = "cmd /c python D:/study/course/Jmeter/test.py -t test--";  //组建cmd命令并执行py文件
Runtime rt = Runtime.getRuntime(); //初始化一个运行时对象
Process pr = rt.exec(command); //通过运行时对象运行cmd命令。pr.waitFor();  //运行时等待//调用pr进程对象获取到它的输入流。读取pr文件流的内容,并且保存到reponse_data
BufferedReader br = new BufferedReader(new InputStreamReader(pr.getInputStream()));
StringBuilder response = new StringBuilder();
String line = "";
while((line=br.readLine())!=null){response.append(line);
};
String reponse_data = response.toString();
br.close();
log.info("通过python代码获取到的随机数:reponse_data:"+reponse_data);//打印返回的内容

打印结果

 

相关文章:

jmeter--7.BeanShell

目录 1. beanshell常用语法 1.1 log:日志写入 1.2 vars:设置和引用局部变量(同线程组) 1.3 props:设置和引用全局变量(跨线程组) 1.4 prev:获取前一个请求返回的信息 2. beans…...

第 3 场 蓝桥杯小白入门赛 解题报告 | 珂学家 | 单调队列优化的DP + 三指针滑窗

前言 整体评价 T5, T6有点意思&#xff0c;这场小白入门场&#xff0c;好像没真正意义上的签到&#xff0c;整体感觉是这样。 A. 召唤神坤 思路: 前后缀拆解 #include <iostream> #include <algorithm> #include <vector> using namespace std;int main()…...

debian apt 装 mysql8

MySQL &#xff1a;&#xff1a; MySQL 8.0 参考手册 &#xff1a;&#xff1a; 2.5.5 使用来自 Oracle 的 Debian 软件包在 Linux 上安装 MySQL apt install -f lsb-release gnupg wget https://repo.mysql.com//mysql-apt-config_0.8.29-1_all.deb dpkg -i mysql-apt-config…...

LeetCode 每日一题 Day 37-43

终于考完试了&#xff0c;寒假期间将会每天持续更新&#xff01; 447. 回旋镖的数量(Day 37) 给定平面上 n 对 互不相同 的点 points &#xff0c;其中 points[i] [xi, yi] 。回旋镖 是由点 (i, j, k) 表示的元组 &#xff0c;其中 i 和 j 之间的欧式距离和 i 和 k 之间的欧…...

产品百度百科怎么创建?产品如何上百度百科?

百度百科作为一个权威的信息平台&#xff0c;承载着巨大的流量和曝光度。对于一个产品来说&#xff0c;能够在百度百科上拥有一席之地&#xff0c;无疑是一种极高的荣誉&#xff0c;同时也是提升品牌知名度、增加信任度的重要手段。产品百度百科不仅能够详细、全面地介绍产品信…...

Vue keep-alive的使用和原理解析

✨ 专栏介绍 在当今Web开发领域中&#xff0c;构建交互性强、可复用且易于维护的用户界面是至关重要的。而Vue.js作为一款现代化且流行的JavaScript框架&#xff0c;正是为了满足这些需求而诞生。它采用了MVVM架构模式&#xff0c;并通过数据驱动和组件化的方式&#xff0c;使…...

Fine-tuning:个性化AI的妙术

在本篇文章中,我们将深入探讨Fine-tuning的概念、原理以及如何在实际项目中运用它,以此为初学者提供一份入门级的指南。 一、什么是大模型 ChatGPT大模型今年可谓是大火,在正式介绍大模型微调技术之前,为了方便大家理解,我们先对大模型做一个直观的抽象。 本质上,现在…...

说清楚Kubernetes、Docker、Dockershim、Containerd、runC、CRI、OCI的关系

Kubernetes v1.20版本 的 release note 里说 deprecated docker。并且在后续版本 v1.24 正式删除了 dockershim 组件&#xff0c;这对我们有什么影响呢&#xff1f;Kubernetes 1.20: The Raddest Release | Kubernetes 为了搞明白这件事情&#xff0c;以及理解一系列容器名词 …...

x-cmd pkg | trash-cli - 类 Unix 系统的命令行垃圾桶

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 trash-cli 是类 Unix 系统的命令行垃圾桶&#xff0c;用于移动文件到回收站&#xff0c;同时会记录文件的原地址和删除日期。 该工具使用与 GNOME、KDE ​​和 XFCE 等桌面环境相同的垃圾桶&#xff0c;所以即使是非 …...

基于Java+SpringBoot+vue实现图书借阅和销售商城一体化系统

基于JavaSpringBootvue实现图书借阅和销售商城一体化系统 &#x1f345; 作者主页 央顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各种定制系…...

集成xxljob项目如何迁移到K8S

前言 大家好&#xff0c;今天我们将基于XXL-Job&#xff0c;探讨任务调度迁移到云端的相关话题。 XXL-Job是一款功能强大、易用可靠的国产分布式任务调度平台&#xff0c;是目前国内使用比较广泛的分布式任务调度平台之一。它的主要特点包括&#xff1a; 支持分布式、多线程…...

类型“{}”上不存在属性“xxx”。ts(2339)-解决方案集锦

类型“{}”上不存在属性“xxx”。ts(2339)-解决方案集锦 文章目录 类型“{}”上不存在属性“xxx”。ts(2339)-解决方案集锦一、方案一&#xff08;优先尝试&#xff09;二、方案二&#xff08;优先尝试&#xff09;三、方案三这该是多么痛苦的一篇笔记啊&#xff01;&#xff0…...

【MQTT】使用MQTT在Spring Boot项目中实现异步消息通信

目录 使用MQTT在Spring Boot项目中实现异步消息通信步骤1&#xff1a;引入MQTT库依赖步骤2&#xff1a;配置MQTT连接信息步骤3&#xff1a;创建MQTT配置类步骤4&#xff1a;发送MQTT消息发布MQTT消息消费MQTT消息 总结 前置文章&#xff1a; &#xff08;一&#xff09;MQTT协议…...

Java 中泛型的基本使用

目录 一、泛型类的使用 二、泛型接口的使用 三、泛型方法的使用 相关测试 一、泛型类的使用 /* 泛型类&#xff0c;T 表示 Java 中的任意类型&#xff0c;也就是说构造方法中 data 属性可以传递任意类型的值*/ class ResultData<T>{Integer code;String msg;T data;p…...

Java初学者软件安装与idea快捷键

一.Java初学者软件安装 视频教程&#xff1a; 最通俗易懂的JDK、IDEA的安装使用权威指南_哔哩哔哩_bilibili 文档教程&#xff1a; Java 开发环境配置 | 菜鸟教程 (runoob.com) 二.java的快捷方式与插件 快捷键&#xff1a; 史上最全的IDEA快捷键总结_idea的快捷语法_扬帆…...

微信商家转账到零钱怎么开通?场景模板

商家转账到零钱是什么&#xff1f; 使用商家转账到零钱这个功能&#xff0c;可以让商户同时向多个用户的零钱转账。商户可以使用这个功能用于费用报销、员工福利发放、合作伙伴货款或分销返佣等场景&#xff0c;提高效率。 商家转账到零钱的使用场景有哪些&#xff1f; 商家…...

(菜鸟自学)搭建虚拟渗透实验室——安装Ubantu 8.10 靶机

安装Ubantu 8.10 靶机 新建虚拟机 选择Ubuntu系统 网络适配器模式选用桥接模式 镜像选用ubuntu8.10版本 点击“开启此虚拟机”以开始安装Ubuntu Linux系统 安装ubuntu 首先需要选择安装时的语言&#xff0c;这里选择“中文&#xff08;简体&#xff09;” 选择“安装…...

【JAVA】哪些集合类是线程安全的

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 Vector&#xff1a; HashTable&#xff1a; Collections.synchronizedList()、Collections.synchronizedSet()、Collections.syn…...

K8S 日志方案

一、统一日志管理的整体方案 通过应用和系统日志可以了解Kubernetes集群内所发生的事情&#xff0c;对于调试问题和监视集群活动来说日志非常有用。对于大部分的应用来说&#xff0c;都会具有某种日志机制。因此&#xff0c;大多数容器引擎同样被设计成支持某种日志机制。 对…...

GPT2 GPT3

what is prompt 综述1.Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing(五星好评) 综述2. Paradigm Shift in Natural Language Processing(四星推荐) 综述3. Pre-Trained Models: Past, Present and Future Pro…...

STM32F103驱动TFT-LCD屏避坑指南:FSMC时序配置与ILI9341初始化那些事儿

STM32F103驱动TFT-LCD屏的实战技巧&#xff1a;时序优化与初始化陷阱全解析 1. 硬件连接与FSMC基础配置 对于STM32F103开发者而言&#xff0c;驱动TFT-LCD屏最常见的硬件方案是通过FSMC&#xff08;灵活的静态存储控制器&#xff09;接口模拟8080并行时序。这种设计巧妙利用了S…...

Ventoy解决方案:告别重复格式化的万能启动盘制作神器

Ventoy解决方案&#xff1a;告别重复格式化的万能启动盘制作神器 【免费下载链接】Ventoy A new bootable USB solution. 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy Ventoy是一款革命性的开源可启动USB解决方案&#xff0c;通过创新的免格式化技术&…...

macOS虚拟打印机:一键文档转PDF的高效解决方案

macOS虚拟打印机&#xff1a;一键文档转PDF的高效解决方案 【免费下载链接】RWTS-PDFwriter An OSX print to pdf-file printer driver 项目地址: https://gitcode.com/gh_mirrors/rw/RWTS-PDFwriter 在数字化办公环境中&#xff0c;将各类文档快速转换为PDF格式是日常工…...

无人机地面站软件完全指南:Mission Planner 新手快速上手教程

无人机地面站软件完全指南&#xff1a;Mission Planner 新手快速上手教程 【免费下载链接】MissionPlanner Mission Planner Ground Control Station for ArduPilot (c# .net) 项目地址: https://gitcode.com/gh_mirrors/mi/MissionPlanner Mission Planner 是一款功能强…...

新手必看,在Taotoken控制台五分钟完成API Key申请与基础配置

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 新手必看&#xff0c;在Taotoken控制台五分钟完成API Key申请与基础配置 对于初次接触大模型API的开发者来说&#xff0c;第一步往…...

JDeferred入门教程:从零开始构建高效异步Java应用

JDeferred入门教程&#xff1a;从零开始构建高效异步Java应用 【免费下载链接】jdeferred Java Deferred/Promise library similar to JQuery. 项目地址: https://gitcode.com/gh_mirrors/jd/jdeferred 想要掌握Java异步编程的终极秘诀吗&#xff1f;JDeferred库为您提供…...

GPU 池化5个真实场景告诉你,为什么需要 OrionX 社区版

算力不够、卡太贵、利用率低、环境配置烦——这些话题在 AI 圈子里已经聊了无数遍。但问题始终在那里。 现在&#xff0c;趋动科技正式推出永久免费的 OrionX AI 算力池化软件社区版&#xff0c;把 GPU 池化能力免费开放给所有人。 下面是五个全新的真实场景&#xff0c;看看…...

GDScriptDecomp:让Godot游戏逆向工程变得触手可及

GDScriptDecomp&#xff1a;让Godot游戏逆向工程变得触手可及 【免费下载链接】gdsdecomp Godot reverse engineering tools 项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp 你是否曾遇到过这样的情况&#xff1a;手头有一个Godot引擎开发的游戏&#xff…...

c#string字符串

//API 应用程序接口 内置函数 //字符串的属性 string a "abcd";//表示字符串中 字符的个数Console.WriteLine(a.Length);//字符串是可以通过 索引 取值的 因为string类内部顶一个一个索引器char c a[2];Console.WriteLine(c);string s1 "abc";st…...

终极指南:3分钟掌握跨平台网络资源下载神器res-downloader

终极指南&#xff1a;3分钟掌握跨平台网络资源下载神器res-downloader 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 还在为…...