首页 > 编程语言 >jmeter发送java请求

jmeter发送java请求

时间:2023-11-29 14:56:21浏览次数:37  
标签:java arg0 sr 发送 import jmeter public

本文描述jmeter如何发送java请求

1.编写java请求,将加密、签名等封装,对外只暴露需要传的业务参数,jemter发送java请求时直接传入业务参数即可

添加依赖:

1 2 3 4 5 <dependency>     <groupId>org.apache.jmeter</groupId>     <artifactId>ApacheJMeter_java</artifactId>     <version>5.4</version> </dependency>

 

 具体代码如下:

import com.alibaba.fastjson.JSONObject;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;

import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Map;

public class taxfilling_detail extends AbstractJavaSamplerClient {

    private String assetCode;
    private String bankSafeCode;
    private String privateKey;
    private String service;
    private String method;

    @Override
    public Arguments getDefaultParameters() {
        Arguments params = new Arguments();
        params.addArgument("assetCode","");
        params.addArgument("bankSafeCode", "xx");
        params.addArgument("privateKey", "xx");
        params.addArgument("service", "xx");
        params.addArgument("method", xxEnum.xx.getMethod());

        return params;
    }

    @Override
    public void setupTest(JavaSamplerContext arg0) {
        assetCode = arg0.getParameter("assetCode");
        bankSafeCode = arg0.getParameter("bankSafeCode");
        privateKey = arg0.getParameter("privateKey");
        service = arg0.getParameter("service");
        method = arg0.getParameter("method");

    }

    @Override
    public void teardownTest(JavaSamplerContext arg0) {

    }

    @Override
    public SampleResult runTest(JavaSamplerContext arg0) {
        SampleResult sr = new SampleResult();
        try {
            sr.sampleStart();
            sr.setSamplerData(detail().toString());
            sr.setResponseData(send_detail().toString(), "");
            sr.setDataType(SampleResult.TEXT);
            sr.setSuccessful(true);
        } catch (Throwable e) {
            sr.setSuccessful(false);
            e.printStackTrace();
        }finally {
            sr.sampleEnd();
        }
        return sr;
    }

    // 业务请求参数组装
    public JSONObject detail(){
        JSONObject reqContent = new JSONObject();
        reqContent.put("taxPaymentCode", assetCode);
        return reqContent;

    }

    // 发送业务请求
    public JSONObject send_detail() throws NoSuchAlgorithmException, InvalidKeyException {
        JSONObject content = detail();
        Map<String,String> reqObj = GetRequestDataMap.getRequestDataMap(method,content.toString(),bankSafeCode,privateKey,service);
        content = GetRequestDataMap.service(reqObj);
        return content;

    }
}

 

2.mvn install 生成jar包

 

 

3.将jar包放/.../jmeter/lib/ext/下

 

 

4.打开jmeter,新建一个线程组,线程组下增加"java sample"后,可以看到jar包中的测试类,点击选择一个测试类,下方为请求中的具体参数

 

 

填写参数后发起请求

 

 

转载地址:https://www.cnblogs.com/jinziguang/p/17191112.html

标签:java,arg0,sr,发送,import,jmeter,public
From: https://www.cnblogs.com/fanf/p/17864839.html

相关文章

  • JAVA生产解析DXF;DXF-LIB
    DXF-LIBDXF解析参考资料:DXF格式-中文参考手册项目地址GitHUB地址GitEE地址DXF文件解析组件这是一个可以解析dxf文件的jar包,目前支持解析的图形有点、圆、直线、ARC弧线、多线段、单行文本、多行文本、图元将其解析为几何数据和点线数据,存储在DxfResolverImpl的baseStru......
  • 使用 Charles 抓取 Java 应用内 HTTP/HTTPS 请求
    代码设置OkHttpClientclient=newOkHttpClient();System.setProperty("http.proxyHost","127.0.0.1");System.setProperty("https.proxyHost","127.0.0.1");System.setProperty("http.proxyPort"......
  • JavaScript高级程序设计的代理与捕获——工作中的实际意义。
    js红宝书写得很好,很多东西都给你一一解释了,但是有一点我很想吐槽:没有在写代码例子之前说明,相关东西有啥用,在实际工作中有啥现实意义等等,导致很多人理解了概念和看懂了枯燥的代码段后却无法有效运用到自己的工作当中。因为你不知道拿来用到什么地方或者说什么情况下才去用它!举个我......
  • JavaScript编码风格指南
    sidebar:autosidebarDepth:4JavaScript编码风格指南内容出处:NicholasC.Zakas《编写可维护的JavaScript》GoogleJavaScriptStyleGuidecrockfordJSLintESLint好狗电影导航源文件基础命名文件名必须全部小写,并且可以包含下划线(_)或短划线(-),但不包含......
  • Java开发者的Python快速实战指南:探索向量数据库之文本搜索
    前言如果说Python是跟随我的步伐学习的话,我觉得我在日常开发方面已经没有太大的问题了。然而,由于我没有Python开发经验,我思考着应该写些什么内容。我回想起学习Java时的学习路线,直接操作数据库是其中一项重要内容,无论使用哪种编程语言,与数据库的交互都是不可避免的。然而,直接操作......
  • 《Effective Java》阅读笔记-第三章
    EffectiveJava阅读笔记第三章对于所有对象都通用的方法第10条重写equals时请遵守通用约定重写equals方法很简单,但是很容易出现错误,最直接避免这种错误的方式就是不重写equals,当出现任意一下情况的时候,就不需要重写equals:类的每个实例在逻辑上就是唯一的没比要......
  • javaswing 文本框的使用lambal表达式的应用
    package百度翻译实验;importjava.text.SimpleDateFormat;importjava.util.Date;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JTextField;publicclassframeextendsJFrame......
  • javaswing控件以及事件监听器
    package百度翻译实验;importjava.text.SimpleDateFormat;importjava.util.Date;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JTextField;publicclassframeextendsJFrame......
  • elasticsearch在Java中查询指定列的方法
     背景ES在查询时如果数量太多,而每行记录包含的字段很多,那就会导致超出ES的查询上线,默认是100MB,但是很多场景下我们只需要返回特定的字段即可,那么如何操作呢。主要代码@AutowiredprivateRestHighLevelClientclient;publicList<Map<String,Object>>search(Stringindex){......
  • vue3+vite 代码混淆插件 | JavaScript obfuscator
    安装插件yarnadd--devrollup-plugin-javascript-obfuscator创建obfuscator.js文件,把下面相应代码放入js文件中importobfuscatorPluginfrom'rollup-plugin-javascript-obfuscator';exportfunctioncodeObfuscatorPlugin(isBuild){if(!isBuild){return[];}......