首页 > 其他分享 >Jmeter之二_JSR223取样器,断言等添加失败的解决办法

Jmeter之二_JSR223取样器,断言等添加失败的解决办法

时间:2023-07-03 14:22:41浏览次数:38  
标签:Java 脚本语言 JSR223 取样器 Beanshell 测试 Jmeter

Jmeter之二_JSR223取样器,断言等添加失败的解决办法


背景

最近在学习jmeter 但是发现在进行JSR223的相关取样器以及断言处理时出现了错误:

java.lang.NoClassDefFoundError: 
Could not initialize class org.apache.jmeter.assertions.JSR223AssertionBeanInfo

错误信息如下图. 一直有点懵逼. 网上搜了很多资料也没有找到方法. 自己废了较大的力气才解决掉. 

错误图

image


问题解决的思路与方式方法

在其他目录下重新解压缩了一下 jmeter 的介质
直接打开 jmeter.bat 然后 新建->线程组->添加 JSR223的相关取样器等. 
发现是可以的

最近两天唯一进行处理的是, 新增加了部分 扩展jar 
怀疑是最近扩展导致的问题. 
最简单的办法是使用折半法去确认. 

我移除了最新下班的一半的jar包, 再次重启发现还是存在同样的错误信息. 

然后急促进行折半, 发现移除这个jar包后问题没有了:
ApacheJmeter_Schema_Assertion-1.1.0.jar

所以初步怀疑是这个jar包的命名空间出现了问题. 

关于JSR223的理解

JSR223取样器(JSR223 Sampler)是JMeter中的一个重要组件,用于执行自定义的脚本代码来进行测试。JSR223代表Java Specification Request 223,是一个允许在Java虚拟机上运行其他脚本语言的规范。

JSR223取样器提供了许多脚本语言的支持,包括JavaScript、Groovy、Jython、Beanshell等。你可以选择使用其中任意一种脚本语言编写测试逻辑,然后在JSR223取样器中执行该脚本。

使用JSR223取样器,你可以以灵活的方式执行一些定制的测试逻辑,例如自定义请求发送、处理响应、计算指标、数据处理等。你可以通过引用JMeter提供的各种等效变量和方法,对请求和响应进行操作,并获取有关测试执行细节的信息。

以下是使用JSR223取样器的一般步骤:

在JMeter中添加JSR223取样器到测试计划中。
在JSR223取样器的属性中选择要使用的脚本语言(如Groovy、JavaScript等)。
在脚本编辑器中编写测试逻辑代码。
在代码中使用变量和方法来访问请求和响应数据,以及执行其他操作。
运行测试计划,JSR223取样器将按照设定的代码逻辑执行,并记录相应的结果。
请注意,使用JSR223取样器时应谨慎,因为错误的脚本代码可能会对测试结果产生负面影响。确保你对所选的脚本语言有一定的了解,并在开发脚本逻辑之前进行充分的测试和验证。

总体而言,JSR223取样器使你能够以自定义的方式扩展JMeter的功能,执行更复杂的测试场景,并满足个性化的测试需求。

关于jsr223 与 beanshell的区别与联系

JSR223和Beanshell是两个不同的概念,下面解释一下它们之间的区别:

JSR223:JSR223是Java规范请求223的缩写,它定义了一种在Java虚拟机上运行脚本语言的标准接口。JSR223规范允许在Java应用程序中使用各种脚本语言(如Groovy、JavaScript、Jython等)编写代码,并通过统一的接口进行执行。在JMeter中,JSR223取样器和JSR223前置处理器就是基于这个规范实现的,它允许使用不同的脚本语言来编写自定义的测试逻辑。

Beanshell:Beanshell是一种基于Java语法的开源脚本语言,它是JSR223规范中的一种实现。Beanshell与Java语法兼容,并且可以直接访问Java类和方法。在JMeter中,Beanshell可以作为一种脚本语言选择JSR223取样器或JSR223前置处理器。你可以使用Beanshell编写测试逻辑代码,并在JMeter中执行,对请求和响应进行操作。

所以,JSR223是一个规范,而Beanshell是符合这一规范的一种实现。除了Beanshell,JSR223还支持其他脚本语言,因此你可以通过选择适合你的需求的脚本语言来编写自定义的测试逻辑。例如,你可以选择使用Groovy、JavaScript等。在选择脚本语言时,可以考虑语言的特性、性能、开发者的熟悉程度等因素。

关于关注我的公众号一起学习进步

image

标签:Java,脚本语言,JSR223,取样器,Beanshell,测试,Jmeter
From: https://www.cnblogs.com/jinanxiaolaohu/p/17522779.html

相关文章

  • Jmeter学习之一_连接与测试Redis
    Jmeter学习之一_连接与测试Redis简介下载:https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.zip注意事项:Don'tuseGUImodeforloadtesting!,onlyforTestcreationandTestdebugging.Forloadtesting,useCLIMode(wasNONGUI):jmeter-n......
  • JMeter性能测试-01
    一、使用JMeter工具发送get请求(1)不带参数的get请求 (2)路径上带参数的get请求 (3)带参数的get请求二、使用JMeter工具发送post请求(1)不带参数的post请求 (2)表单数据类型的post请求 (3)form数据类型的post请求,要添加http信息管理头,申明是json数据格式三、JMeter设......
  • jmeter接口测试 -- 连接数据库(MySQL)
    三个步骤一、下载MySQL的连接驱动1、先查看MySQL的版本1)服务器上查看:mysql--version 2)在连接工具上查看 2、下载连接驱动,下载地址:https://dev.mysql.com/downloads/connector/j/1)选择系统(windows系统才选择我下图中......
  • 【3分钟系列教程】仅需5步就能在mac m1安装jmeter5.5
    下载jmeter,官网的地址太慢了,我找了一个阿里云的镜像网站https://mirrors.aliyun.com/apache/jmeter/binaries/解压之后拷贝到某个安装目录cp-rDownloads/apache-jmeter-5.5software/jmeter修改成中文界面vimjmeter/bin/jmeter.properties,找到下面这两行,把#language=e......
  • jmeter使用beanshell对SHA1WithRSA加密方式进行处理
    importjava.nio.charset.StandardCharsets;importjava.security.KeyFactory;importjava.security.PrivateKey;importjava.security.Signature;importjava.security.spec.PKCS8EncodedKeySpec;importjava.util.Base64;importorg.apache.commons.codec.digest.Dige......
  • jmeter 解决线程组bzm-Concurrency Thread Group 安装的步骤
    1.首先 安装jmeter的插件,下载地址为放到lib/ext下,重启然后option下安装插件就Concurrency 就可以   ......
  • jmeter通过jmeter -n -t Script2.jmx命令压测导出HTML报告报错【杭州多测师_王sir】
    压测命令:jmeter-n-tScript2.jmx -lreport.jtl-e-o/cms/report/报错:Creatingsummariser<summary>ErrorinNonGUIDriverjava.lang.IllegalArgumentException:Reportgenerationrequirescsvoutputformat,check'jmeter.save.saveservice.output_forma......
  • jmeter 导入jmx脚本时,报错ConnotResolveClassException
     问题:使用V3.1版本的jmeter写了一个脚本,然后电脑上装了一个V5.1.1版本的jmeter,将脚本到如到jmeter上时,报错 ConnotResolveClassException,具体报错如下图所示,导入另外一个脚本并没有报错原因:如下图所示,报错内容是:kg.apc.jmetere.timers.VariableThroughputTimer.意思......
  • Jmeter访问网站返回403(CSRF verification failed. Request aborted.)
    django网站自带CSRF校验,所以jmeter直接请求时会出现校验不通过的情况一、CSRF校验CSRF是指跨站请求伪造,CSRF攻击的流程大概是我们登录网站A后存在本地的cookie,之后打开了另一个危险网站B,这个网站B使用本地cookie向网站A发起请求(该请求不是用户主动发起,是个恶意请求),网站A误以为是......
  • JMeter使用学习记录
    一、安装1.下载JMeterhttps://jmeter.apache.org/download_jmeter.cgi下载安装文件到本地2.安装JDKhttps://www.oracle.com/java/technologies/downloads/3.切换中文进入bin文件夹打开jmeter.properties#language=en下增加#language=zh_CN二、使用1.进入安装文件夹......