- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章JMeter进阶—详解Java sampler的设计方法(附源码)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
我们通常使用jmeter做http或者https请求的测试,但是有些场景我们需要直接调用Java接口进行性能测试, jmeter通过Java请求可以实现该需求(这样就可以处理一些公司自定义的协议了,开发提供协议接口,然后我们通过java sampler进行调用)。本文将会详细介绍jmeter中如何编写 java请求并对其进行调用.
Java请求如下:
其中上图里com.my.demo.JmeterDemo2,即我们需要调用的Java类;str是我们需要传入的参数。那么Jmeter中如何实现对java请求的调用呢?我会在本文详细讲解.
如何编写jmeter java请求,简单地说分如下几点:
1写一个类,叫做Demo,使其继承AbstractJavaSamplerClient,
2.在public SampleResult runTest(JavaSamplerContext arg0)方法里,写处理java代码的逻辑,
3.在public Arguments getDefaultParameters()方法里定义从jmeter中传入java代码的参数,
4.把类Demo 打成jar包并放入jmeter的\lib\ext 目录下(如果Demo需要依赖其它jar包需要一起放入\lib\ext目录下) 。
实例代码如下:
这里对上述代码做详细分析:
主要用到的方法如下:
方法执行的先后顺序为:
getDefaultParameters() --> 。
setupTest(JavaSamplerContext context)--> 。
runTest(JavaSamplerContext context) --> 。
teardownTest(JavaSamplerContext context) 。
代码运行后,打开日志结果如下,参数para 对应代码String str=arg0.getParameter("para"),
从日志中可以看到 。
setupTest(JavaSamplerContext context) 中的代码被执行1次,打印 。
####测试开始#### 。
teardownTest(JavaSamplerContext context) 中的代码被执行1次,打印 。
####测试结束#### 。
而runTest中的方法super.getNewLogger().info("####测试执行####"); 被执行5次,因为在线程组中,设置执行5次。(线程组线程执行的次数,影响java请求中的runTest,而不会影响setupTest和teardownTest)。方法super.getNewLogger().info("")会把值写入日志.
setResponseMessage("ResponseMessage:参数匹配0个");打印到Sample Result 中的Response message里;setSampleLabel("commonsio-demo2");设置java请求的显示名称,如下图:
setResponseData("ResponseData:参数匹配0个","UTF-8"); 打印到Response Data,如下图:
最后,方法setSuccessful(true)会影响测试结果 。
在IDE中开发Jmeter Java 请求 。
在IDE中开发Jmeter Java 请求与普通java开发一致,引入需要的java包以及jmeter相关jar包即可,引入Jmeter lib\ext下的ApacheJMeter_core.jar和ApacheJMeter_java.jar到IDE中.
原文链接:https://www.toutiao.com/a7023948119142416932/ 。
最后此篇关于JMeter进阶—详解Java sampler的设计方法(附源码)的文章就讲到这里了,如果你想了解更多关于JMeter进阶—详解Java sampler的设计方法(附源码)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我想了解 Ruby 方法 methods() 是如何工作的。 我尝试使用“ruby 方法”在 Google 上搜索,但这不是我需要的。 我也看过 ruby-doc.org,但我没有找到这种方法。
Test 方法 对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。 object.Test(string) 参数 object 必选项。总是一个
Replace 方法 替换在正则表达式查找中找到的文本。 object.Replace(string1, string2) 参数 object 必选项。总是一个 RegExp 对象的名称。
Raise 方法 生成运行时错误 object.Raise(number, source, description, helpfile, helpcontext) 参数 object 应为
Execute 方法 对指定的字符串执行正则表达式搜索。 object.Execute(string) 参数 object 必选项。总是一个 RegExp 对象的名称。 string
Clear 方法 清除 Err 对象的所有属性设置。 object.Clear object 应为 Err 对象的名称。 说明 在错误处理后,使用 Clear 显式地清除 Err 对象。此
CopyFile 方法 将一个或多个文件从某位置复制到另一位置。 object.CopyFile source, destination[, overwrite] 参数 object 必选
Copy 方法 将指定的文件或文件夹从某位置复制到另一位置。 object.Copy destination[, overwrite] 参数 object 必选项。应为 File 或 F
Close 方法 关闭打开的 TextStream 文件。 object.Close object 应为 TextStream 对象的名称。 说明 下面例子举例说明如何使用 Close 方
BuildPath 方法 向现有路径后添加名称。 object.BuildPath(path, name) 参数 object 必选项。应为 FileSystemObject 对象的名称
GetFolder 方法 返回与指定的路径中某文件夹相应的 Folder 对象。 object.GetFolder(folderspec) 参数 object 必选项。应为 FileSy
GetFileName 方法 返回指定路径(不是指定驱动器路径部分)的最后一个文件或文件夹。 object.GetFileName(pathspec) 参数 object 必选项。应为
GetFile 方法 返回与指定路径中某文件相应的 File 对象。 object.GetFile(filespec) 参数 object 必选项。应为 FileSystemObject
GetExtensionName 方法 返回字符串,该字符串包含路径最后一个组成部分的扩展名。 object.GetExtensionName(path) 参数 object 必选项。应
GetDriveName 方法 返回包含指定路径中驱动器名的字符串。 object.GetDriveName(path) 参数 object 必选项。应为 FileSystemObjec
GetDrive 方法 返回与指定的路径中驱动器相对应的 Drive 对象。 object.GetDrive drivespec 参数 object 必选项。应为 FileSystemO
GetBaseName 方法 返回字符串,其中包含文件的基本名 (不带扩展名), 或者提供的路径说明中的文件夹。 object.GetBaseName(path) 参数 object 必
GetAbsolutePathName 方法 从提供的指定路径中返回完整且含义明确的路径。 object.GetAbsolutePathName(pathspec) 参数 object
FolderExists 方法 如果指定的文件夹存在,则返回 True;否则返回 False。 object.FolderExists(folderspec) 参数 object 必选项
FileExists 方法 如果指定的文件存在返回 True;否则返回 False。 object.FileExists(filespec) 参数 object 必选项。应为 FileS
我是一名优秀的程序员,十分优秀!