jmeter常用配置元件介绍总结之jsr223执行python脚本

news2024/11/13 18:58:34

系列文章目录
安装jmeter

jmeter常用配置元件介绍总结之jsr223执行python脚本

    • 1.安装jsr223执行python插件
    • 2.基础语法介绍
      • 2.1.log
      • 2.2.parameters向脚本传参与接参
      • 2.3.vars
      • 2.4.props
      • 2.5.prev
    • 3.常用脚本
      • 3.1.MD5加密单个参数:
      • 3.2.MD5加密多个参数:
      • 3.3.URLencode,GBK编码\UTF-8编码

1.安装jsr223执行python插件

首先需要下载python插件,
可以去官网下载:jython-standalone-2.7.2.jar
也可以通过网盘分享的文件:jython-standalone-2.7.2.jar
链接: https://pan.baidu.com/s/18lGXyXi5MaiVhou74h4Qeg?pwd=q9ra 提取码: q9ra
–来自百度网盘超级会员v1的分享

在这里插入图片描述

下载好后,将文件放到jmeter的lib/ext目录中,重启jmeter即可

在这里插入图片描述
如图,以下jsr223相关的都是可以执行python脚本的,语言只需要选择jython即可
在这里插入图片描述

2.基础语法介绍

主要是介绍jmeter相关对属性、变量相关的操作语法,python语法这里不做介绍,我这里用JSR223 Sampler进行演示

2.1.log

功能:打印日志
三个日志级别info、warn、error,主要是用来打日志方便调试找问题

log.info("这是要输出的日志内容")
log.warm("这是要输出的警告日志内容")
log.error("这是要输出的错误日志内容")

在这里插入图片描述

2.2.parameters向脚本传参与接参

功能:传递参数到脚本

注意:
1.可以传字符串、基础数据类型、数组,传的参数是字符串时,需要加引号
2.需要传多个参数时,用空格分隔
3.也可以传引用的变量如:${value1} ${value2}同样多个参数空格分隔
如图:
在这里插入图片描述

向脚本传递参数后,我们就要去获取接收传过来的参数,这里就用了到args
args
功能:获取传递给脚本的参数
args:获取传递的所有参数,返回一个数组
args[n]:根据返回的参数数组下标,取值,数组下标是从0开始
传值、取值、打印演示如图:

注意:这里可能会出现中文字符编码问题,如图
在这里插入图片描述解决办法:在代码前加上一句代码
import sys
reload(sys)
sys.setdefaultencoding(‘utf8’)

传参-取值-打印演示如图:

在这里插入图片描述
参数传引用演示:
在这里插入图片描述
在这里插入图片描述

2.3.vars

功能:操作jmeter变量

#创建、更新一个变量,创建后可以在jmeter中其他的地方使用
vars.put("变量名",变量值)
#获取变量的值
vars.get("name")

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4.props

功能:用于操作jmeter属性,可以跨线程操作,语法和vars类似:

#设置属性
props.put("属性名",属性值)
#获取属性的值
props.get("属性名")

如图
在这里插入图片描述

2.5.prev

功能:获取取样器的相关信息,如:域名、路径、端口

#获取请求头
prev.getRequestHeaders()
#获取请求响应代码
prev.getResponseCode()
#获取响应消息
prev.getResponseMessage()
#获取响应数据
prev.getResponseDataAsString()

如图:
在这里插入图片描述

对象、方法还有很多,这里只对一些基础常用的做了介绍

3.常用脚本

3.1.MD5加密单个参数:

import hashlib
import sys
reload(sys)
sys.setdefaultencoding('utf8')
#获取传递的name参数
value=vars.get("name")
#进行MD5加密
endValue=hashlib.md5(value.encode(encoding='UTF-8')).hexdigest()
print(endValue)
log.info("MD5="+endValue)
#创建MD5value变量,并赋于MD5值,脚本外其他地方使用该变量用该格式:${MD5value}
vars.put("MD5Value",endValue)

3.2.MD5加密多个参数:

import hashlib
import sys
reload(sys)
sys.setdefaultencoding('utf8')
arr=args
allSrring=""
#将所有参数加起来
for value in arr:
    allSrring=allSrring+value
print(allSrring)
log.info("参数连接后的值="+allSrring)
#进行MD5加密
endValue=hashlib.md5(allSrring.encode(encoding='UTF-8')).hexdigest()
print(endValue)
log.info("MD5="+endValue)
#创建MD5value变量,并赋于MD5值,脚本外其他地方使用该变量用该格式:${MD5value}
vars.put("MD5value",endValue)

3.3.URLencode,GBK编码\UTF-8编码

import urllib
import hashlib
import sys
reload(sys)
sys.setdefaultencoding('utf8')
#content是需要加密的变量内容,我是在用户自定义变量元件里提前定义好了content变量和值,这里直接获取
value=vars.get("content")
#把GBK换成UTF-8就可以进行UTF-8编码
URLcoed=urllib.quote(value.encode("GBK"))
vars.put("urlcode",URLcoed)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2238091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MongoDB】MongoDB的聚合(Aggregate、Map Reduce)与管道(Pipline) 及索引详解(附详细案例)

文章目录 MongoDB的聚合操作(Aggregate)MongoDB的管道(Pipline操作)MongoDB的聚合(Map Reduce)MongoDB的索引 更多相关内容可查看 MongoDB的聚合操作(Aggregate) 简单理解&#xff…

快速了解SpringBoot 统一功能处理

拦截器 什么是拦截器: 拦截器是Spring框架提供的重要功能之一,主要进行拦截用户请求,在指定方法前后,根据业务需求,执行预先设定的代码。 也就是说,允许开发⼈员提前预定义⼀些逻辑,在⽤⼾的请求响应前后执⾏.也可以…

百兆网络变压器在无人机系统起到什么作用

华强盛电子 导读: 百兆网络变压器(通常指的是100M Ethernet Transformer)在无人机系统中扮演着重要的角色,尤其是在网络通信和电气隔离方面 1.电气隔离 网络变压器通过提供电气隔离,帮助保护无人机的电子设备免受电流…

在双显示器环境中利用Sunshine与Moonlight实现游戏串流的同时与电脑其他任务互不干扰

我和老婆经常会同时需要操作家里的电脑,在周末老婆有时要用电脑加班上网办公,而我想在难得的周末好好地Game一下(在客厅用电视机或者平板串流),但是电脑只有一个,以往我一直都是把电脑让给老婆,…

【Vue】Vue3.0(十七)Vue 3.0中Pinia的深度使用指南(基于setup语法糖)

上篇文章: 【Vue】Vue3.0(十一)Vue 3.0 中 computed 计算属性概念、使用及示例 🏡作者主页:点击! 🤖Vue专栏:点击! ⏰️创作时间:2024年11月10日15点23分 文章…

深度学习基础练习:从pytorch API出发复现LSTM与LSTMP

2024/11/5-2024/11/7: 前置知识: [译] 理解 LSTM(Long Short-Term Memory, LSTM) 网络 - wangduo - 博客园 【官方双语】LSTM(长短期记忆神经网络)StatQuest_哔哩哔哩_bilibili 大部分思路来自于: PyTorch LSTM和LSTMP…

【芯智雲城】Sigmastar星宸科技图传编/解码方案

一、图传技术简介 图传是指将图像或媒体内容从一个设备传输到另外一个设备的技术,传输的媒介可以是无线电波、光纤、以太网等。图传系统主要由图像采集设备、传输设备和接收设备组成,图像采集设备负责采集实时图像,传输设备将采集到的图像转…

JavaFX史上最全教程 - Shape - JavaFX矩形椭圆

avaFX Shape类定义了常见的形状,如线,矩形,圆,Arc,CubicCurve,Ellipse和QuadCurve。 在场景图上绘制矩形需要宽度,高度和左上角的(x,y)位置。 要在JavaFX中…

【Windows修改Docker Desktop(WSL2)内存分配大小】

记录一下遇到使用Docker Desktop占用内存居高不下的问题 自从使用了Docker Desktop,电脑基本每天都需要重启,内存完全不够用,从16g扩展到24,然后到40G,还是不够用;打开Docker Desktop 运行时间一长&#x…

使用QLoRA和自定义数据集微调大模型

大家好,大语言模型(LLMs)对自然语言处理(NLP)的影响是非常深远的,不仅提高了任务效率,还催生出新能力,推动了模型架构和训练方法的创新。尽管如此强大,但LLMs也有局限&am…

Mac M1 Docker创建Rocketmq集群并接入Springboot项目

文章目录 前言Docker创建rocketmq集群创建rocketmq目录创建docker-compose.yml新增broker.conf文件启动容器 Springboot 接入 rocketmq配置maven依赖修改appplication.yml新增消息生产者新增消费者测试发送消息 总结 前言 最近公司给配置了一台mac,正好有时间给装一…

golang分布式缓存项目 Day2

注:该项目原作者:https://geektutu.com/post/geecache-day1.html。本文旨在记录本人做该项目时的一些疑惑解答以及部分的测试样例以便于本人复习。 支持并发读写 接下来我们使用 sync.Mutex 封装 LRU 的几个方法,使之支持并发的读写。在这之…

abap 可配置通用报表字段级日志监控

文章目录 1.功能需求描述1.1 功能1.2 效果展示2.数据库表解释2.1 表介绍3.数据库表及字段3.1.应用日志数据库抬头表:ZLOG_TAB_H3.2.应用日志数据库明细表:ZLOG_TAB_P3.3.应用日志维护字段配置表:ZLOG_TAB_F4.日志封装类5.代码6.调用方式代码7.调用案例程序demo1.功能需求描述 …

材质(三)——材质参数集和材质函数

a.之前是针对材质在材质蓝图里面 类似 于静态更改的方法, b.材质参数集 ,对外开放参数,可以手动更改,已然是一种封闭的静态更改方法 c.那么材质函数,将参数集对外开放,可以在关卡蓝图 通过程序 算法 去动…

随机采样之接受拒绝采样

之前提到的逆变换采样(Inverse Transform Sampling)是一种生成随机样本的方法,它利用累积分布函数(CDF)的逆函数来生成具有特定分布的随机变量。以下是逆变换采样的缺点: 计算复杂性:对于某些分…

软件设计师:排序算法总结

一、直接插入 排序方式:从第一个数开始,拿两个数比较,把后面一位跟前面的数比较,把较小的数放在前面一位 二、希尔 排序方式:按“增量序列(步长)”分组比较,组内元素比较交换 假设…

信息安全工程师(78)网络安全应急响应技术与常见工具

前言 网络安全应急响应是指为应对网络安全事件,相关人员或组织机构对网络安全事件进行监测、预警、分析、响应和恢复等工作。 一、网络安全应急响应技术 网络安全应急响应组织 构成:网络安全应急响应组织主要由应急领导组和应急技术支撑组构成。领导组负…

Kafka 的一些问题,夺命15连问

kafka-中的组成员 kafka四大核心 生产者API 允许应用程序发布记录流至一个或者多个kafka的主题(topics)。 消费者API 允许应用程序订阅一个或者多个主题,并处理这些主题接收到的记录流 StreamsAPI 允许应用程序充当流处理器(s…

精选5款小程序设计工具,助力设计之路璀璨前行

在当今数字化浪潮中,小程序的重要性日益凸显,无论是电商、社交还是服务领域,小程序都成为连接用户与品牌的关键桥梁。而一款优秀的小程序离不开精心的设计,以下 5 款小程序设计工具将成为你设计事业的得力助手。 一、即时设计 即…

亚马逊评论爬虫+数据分析

爬取评论 做分析首先得有数据,数据是核心,而且要准确! 1、爬虫必要步骤,选好框架 2、开发所需数据 3、最后测试流程 这里我所选框架是seleniumrequest,很多人觉得selenium慢,确实不快,仅针对此…