JMeter 基于脚本实现代码共享

这篇具有很好参考价值的文章主要介绍了JMeter 基于脚本实现代码共享。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求描述

需求是这样的:执行某次压测任务时,压测涉及的前端接口,要求携带一个userName请求头,该请求头值为实际用户名经过DES加密后,再采用Base64加密后的值,为此,编写了一段加密代码,发送请求前,对用户名进行加密,并将加密结果存储为变量。最后将代码添加到 JSR233采样器中,如下

DES加密代码

import java.util.Base64;
import javax.crypto.Cipher;
import java.security.Key;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;


def encryptUsername(userName) {	
	String keyStr = 'jPQQqFT3lwg=' //  
	
	DESKeySpec dks = new DESKeySpec(keyStr.getBytes('UTF-8'));  
	SecretKeyFactory keyFactory = SecretKeyFactory.getInstance('DES');  
	Key key = keyFactory.generateSecret(dks); 
	        
	Cipher cipher = Cipher.getInstance('DES');
	cipher.init(Cipher.ENCRYPT_MODE, key); 
	
	byte[] encodedBytes = cipher.doFinal(userName.getBytes()) 

	def encodedString = Base64.getEncoder().encodeToString(encodedBytes);
	return encodedString
}

vars.put("userName", encryptUsername(vars.get('tsUserName')))
log.info('userName in script:' +vars.get("userName")) # 非调试时注释掉

JMeter 基于脚本实现代码共享

此外,还有一些接口,在发送请求前,需要先请求通用配置类接口(比如获取组织结构树),以获取接口入参所需数据,也是采用类似如上的方法,即通过添加(前置)JSR233采样器。

按以上做法,即将代码编写在JSR233采样器中本身是没有问题的,问题在于相同的代码,被放在了n个采样器中(为了适配需求,比如不同页面的接口要求放在不同线程组中,配置不同的并发用户数,或者请求好些接口前都需要执行这份代码),这样当这份代码因为存在缺陷需要修改时,将需要修改n个地方,非常的繁琐。

解决方法

咋样避免上述的这种情况呢?我们可以将脚本文件化--将脚本放在一个文件中,而不是放在界面Script输入框中,如下

JMeter 基于脚本实现代码共享

这里需要注意两点:文章来源地址https://www.toymoban.com/news/detail-710095.html

  1. File Name 输入的脚本文件所在路径,可以是相对路径(相对于JMeter bin目录),也可以是绝对路径(建议将脚本所在目录参数化,这样,一改全改,避免在不同环境执行jmx脚本时,因为脚本路径不一样需要多处修改脚本路径)
  2. 如果File Name 输入脚本路径,下面Script输入框中输入的代码将不再被执行(上述示例为验证此观点,特别在输入框中添加了日志打印代码,发现该日志打印代码未被执行)

到了这里,关于JMeter 基于脚本实现代码共享的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 低代码信创开发核心技术(一):基于Vue.js的描述依赖渲染DDR实现模型驱动的组件

    随着数字化转型的不断发展,低代码开发平台已成为企业快速建立自己的应用程序的首选方案。然而,实现这样一个平台需要具备高效、灵活和可定制化的能力。这正是基于 描述依赖渲染(Description dependency rendering) 所实现的。通过使用该技术,我们可以实现动态渲染组件,

    2024年02月05日
    浏览(84)
  • 【纳什博弈、ADMM】基于纳什博弈和交替方向乘子法的多微网主体能源共享研究(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 1.1 纳什谈判的基本理论 1.2 基于ADMM的微电网群分布式能量

    2024年02月06日
    浏览(44)
  • 基于灰色神经网络的订单需求预测Matlab代码

            灰色系统理论是一种研究少数据、贫信息,不确定性问题的新方法,它以部分信息已知、部分信息未知的“小样本”、“贫信息\\\"不确定系统为研究对象,通过对“部分”已知信息的生成、开发,提取有价值的信息,实现对系统运行行为、演化规律的正确描述和有效监控。

    2024年02月11日
    浏览(52)
  • 打造一个基于低代码的无代码平台,愿满足非专业人士的需求

    一、开源项目简介 摸鱼低代码平台希望打造一个基于低代码的无代码平台。即能给程序员使用,也能满足非专业人士的需求。 后端基于Spring Cloud Alibaba 注册中心、配置中心采用nacos 当前版本完成oauth2统一认证接入 持续进行功能完善 使用Apache-2.0开源协议 官网 摸鱼低代码平台

    2024年02月10日
    浏览(43)
  • 某软件的一个模块的需求规格说明书中描述【软件测试题目】

    某软件的一个模块的需求规格说明书中描述 (1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2% (2)非年薪制员工:严重过失,扣除当月薪资的8%;过失,扣除当月薪资的4% (1)分析原因及结果 原因 c1:年薪制员工 c2:非年薪制员工 c3:过失 c4:严重过失

    2024年02月08日
    浏览(50)
  • 【调峰】储能辅助电力系统调峰的容量需求研究(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 文献来源

    2024年02月07日
    浏览(54)
  • 电气论文:基于价格弹性矩阵的需求侧响应(python实现)

    专栏解锁后可以查看该专栏所有文章 参考文章 首先看下电价是如何影响负荷的

    2024年02月13日
    浏览(83)
  • 【Linux】共享内存(shm)代码实现

    共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到 内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据 shmid_ds 中的内容可以通过系统函数获得(后面会讲): shmget函数 功能:用来创建共享内存

    2023年04月22日
    浏览(35)
  • 【SCI电气】考虑不同充电需求的电动汽车有序充电调度方法(Matlab代码实现)

      💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 2. 文献综述 📚2 运行结果 2.1 原文结果 2.2 Matlab实现结

    2023年04月24日
    浏览(77)
  • 数据结构学习记录——图应用实例-拯救007(问题描述、解题思路、伪代码解读、C语言算法实现)

    目录 问题描述  解题思路 伪代码  总体算法 DFS算法 伪代码解读 总体算法 DFS算法 具体实现(C语言) 在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里一系列鳄鱼的大脑

    2024年02月05日
    浏览(78)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包