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

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

系列文章目录
安装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.kler.cn/a/388246.html

相关文章:

  • 《云原生安全攻防》-- K8s安全防护思路
  • js中import引入一个export值可以被修改。vue,react
  • Linux入门:环境变量与进程地址空间
  • 爬虫如何解决短效代理被封的问题?
  • 【量化交易笔记】14.模拟盘效果
  • Spring学习笔记(四)
  • 【温度表达转化】
  • mybatis-plus 长sql执行缓慢问题
  • 【前端】Svelte:核心语法和组件基础
  • RabbitMQ — 异步调用
  • 【Webpack配置全解析】打造你的专属构建流程️(4)
  • 【解决】Pico 串流 Unity 开发环境 Preview 黑屏问题
  • 现代化汽车共享:SpringBoot管理系统开发
  • 数据与Python
  • 企业内部知识库搭建工具精选
  • 用js去除变量里的html标签
  • Android gradle下载失败后 解决方案
  • python在车载电子测试方面的应用
  • uniapp—android原生插件开发(1环境准备)
  • 深度学习:微调(Fine-tuning)详解
  • 蓝牙规范系列--属性协议(基础篇)
  • Pytorch学习--神经网络--网络模型的保存与读取
  • Java毕业设计-----基于AIGC的智能客服系统
  • [LInux] 进程地址空间
  • Android 14 SPRD 下拉菜单中增加自动亮度调节按钮
  • 鸿蒙系统:智能设备新时代的技术驱动