当前位置: 首页> 健康> 知识 > 网页设计教材_动漫专业最好的学校_seo全网推广营销软件_竞价排名什么意思

网页设计教材_动漫专业最好的学校_seo全网推广营销软件_竞价排名什么意思

时间:2025/7/11 11:30:23来源:https://blog.csdn.net/weixin_74301566/article/details/146515394 浏览次数:1次
网页设计教材_动漫专业最好的学校_seo全网推广营销软件_竞价排名什么意思

8、JMeter扩展开发

扩展组件开发的意义

  • 输入参数
  • 协议
  • 复杂调用逻辑
  • 功能
  • 等等

开发前的工具准备

  • 下载jdk并安装,配置环境变量
  • 下载maven,配置环境变量
  • 修改settings.xml本地仓库,远程仓库的地址
  • Eclipse新建Maven项目
  • 编辑 pom.xml

Maven常用命令

  • Maven是一个项目管理工具(打包工具)
  • mvn clean  清理项目生产的临时文件,一般是模块下的target目录
  • mvn package  项目打包工具,会在模块下的target目录生成jar或war等文件,如下运行结果。
  • mvn test  测试命令,或执行src/test/java/下junit的测试用例
  • mvn install  模块安装命令 将打包的的jar/war文件复制到你的本地仓库中

扩展开发实现的两种方式

  • 编写类文件,在BeanShell中调用
  • 继承AbstractJavaSamplerClient抽象类,实现JavaSamplerClient接口,在Java请求中调用
  • 继承AbstractFunction类,在函数助手中调用

扩展开发HelloWorld的实现

public class Demo1 extends AbstractJavaSamplerClient{

public SampleResult runTest(JavaSamplerContext arg0) {
    System.out.println("hello,jmeter");
    return null;
}
}

maven build后把jar包放在D:\apache-jmeter-5.5\lib\ext,重启Jmeter,创建Java请求,查看控制台结果

JavaSamplerClient

JavaSamplerClient实现方法的介绍

  • setupTest(JavaSamplerContext context):初始化方法    
  • runTest(JavaSamplerContext context):实现具体功能逻辑的方法
  • getDefaultParameters():决定了JMeter当中要显示哪些属性
  • teardownTest(JavaSamplerContext context):负责清理收尾工作

JavaSamplerClient实现方法-自定义参数的实现

public static String URLNAME="URL";
public static String DEFAULTURL="http://www.baidu.com";
public Arguments getDefaultParameters() {
System.out.println("getDefaultParameters");
Arguments arguments =new Arguments();
arguments.addArgument(this.URLNAME, this.DEFAULTURL);
return arguments;
}

JavaSamplerClient实现方法-初始化方法的实现

private String  inputUrl;
public void setupTest(JavaSamplerContext context) {
    this.inputUrl = context.getParameter(this.URLNAME, this.DEFAULTURL);
    System.out.println("你访问的是" + inputUrl);
}

JavaSamplerClient实现方法-响应数据显示到结果树

private String resultData;

public SampleResult runTest(JavaSamplerContext context) {

System.out.println("Hello-runTest");
resultData = "这是响应结果";
SampleResult result = new SampleResult();
result.setSuccessful(true);
result.setSampleLabel("修改了名称");
result.setResponseData(resultData, null);
result.setDataType(SampleResult.TEXT);
return result;
}

自定义Java请求的实现

补充JavaSamplerClient接口的runTest方法
URL url = new URL(inputUrl);
URLConnection urlcon = url.openConnection();

byte[] buffer = new byte[1024];
int len;
result.sampleStart();
InputStream in = urlcon.getInputStream();
while ((len = in.read(buffer)) != -1) {
resultData = new String(buffer, "utf-8");
sBuffer.append(resultData);
}

自定义函数的实现

库引用
<dependency>
    <groupId>org.apache.jmeter</groupId>
    <artifactId>ApacheJMeter_functions</artifactId>
    <version>5.5</version>
</dependency>

要实现扩展JMeter function,主要有两点:

实现function的类的package声明必须包含“.functions”

需要继承org.apache.jmeter.functions.AbstractFunction,并且实现相应的方法

  • execute(SampleResult previousResult, Sampler currentSampler):执行方法
  • getArgumentDesc():功能描述,参数描述
  • setParameters(Collection<CompoundVariable> parameters):接收用户的参数,设置参数
  • getReferenceKey():函数功能名称

private Object[] values;
private CompoundVariable first,second;
@Override
public String execute(SampleResult arg0, Sampler arg1) throws InvalidVariableException {
System.out.println("execute");
first=(CompoundVariable)(values[0]);
second=(CompoundVariable)(values[1]);
System.out.println("第一个参数"+first);
System.out.println("第二个参数"+second);
int result=new Integer(first.execute().trim())+
new Integer(second.execute().trim());
System.out.println("和是:"+result);
return String.valueOf(result);

}

关键字:网页设计教材_动漫专业最好的学校_seo全网推广营销软件_竞价排名什么意思

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: