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

jmeter java请求

时间:2023-08-29 18:55:29浏览次数:36  
标签:username password java 请求 参数 address import jmeter sampleResult

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.util.ArrayList;
import java.util.List;

import org.apache.http.Consts;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;

 
public class test extends AbstractJavaSamplerClient{

     //设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中
    public Arguments getDefaultParameters() {//必要项,不能省略
        Arguments args = new Arguments();

        args.addArgument("address", "http://mock-api.com/Vdno8oKX.mock/adduser");//无参数可省略,第二项为默认参数,可省略
        args.addArgument("username","user1");//无参数可省略,第二项为默认参数,可省略
        args.addArgument("password", "111111");//无参数可省略,第二项为默认参数,可省略
        return args;
    }
     
    //初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行
    public void setupTest(JavaSamplerContext context) {//可以省略,去掉本项后可同时去掉全局变量
        SampleResult sampleResult = new SampleResult();
        String address = context.getParameter("address");   //获取在Jmeter中设置的参数值,检测不为空
        if (address != null && address.length() > 0) {
            sampleResult.setSamplerData(address);
        }
        String username = context.getParameter("username");   //获取在Jmeter中设置的参数值,检测不为空
        if (username != null && username.length() > 0) {
            sampleResult.setSamplerData(username);
        }
        String password=context.getParameter("password");//获取在Jmeter中设置的参数值,检测不为空
        if (password != null && password.length() > 0) {
            sampleResult.setSamplerData(password);
        }
    }
 
     //测试执行的循环体,根据线程数和循环次数的不同可执行多次
    @Override
    public SampleResult runTest(JavaSamplerContext context) {
        SampleResult sampleResult = new SampleResult();
        String address = context.getParameter("address");//获取参数值,可在GUI页面进行参数化
        String username = context.getParameter("username");//获取参数值,可在GUI页面进行参数化
        String password = context.getParameter("password");//获取参数值,可在GUI页面进行参数化
        
        sampleResult.sampleStart();      //事务的起点,必选项
        try {
            List<NameValuePair> formparams = new ArrayList<NameValuePair>();
               formparams.add(new BasicNameValuePair("username", username));//使用username参数
               formparams.add(new BasicNameValuePair("password", password));//使用username参数
               UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);
               HttpPost httppost = new HttpPost(address);//使用address参数
               httppost.setEntity(entity);
               
               sampleResult.setResponseData(httppost.getURI().toString(),"");//设置返回消息,注意第二个参数必须这么写,可忽略
               sampleResult.setResponseMessageOK();//成功的Message,可忽略
               sampleResult.setSuccessful(true); //设置本次事务成功,必选项
        } catch (Exception e) {
            sampleResult.setResponseMessage("Error:"+e.toString());//错误信息,可忽略
            sampleResult.setResponseData("Error:"+e.toString(),"");//设置返回消息,打印错误到GUI,注意第二个参数必须这么写,可忽略
            sampleResult.setSuccessful(false); //设置本次事务失败,必选项
        }finally{
            sampleResult.sampleEnd();//事务的终点,必选项
        }
        return sampleResult;
    }
     
    //结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行
    public void teardownTest(JavaSamplerContext context) {//可以省略
    }
    
//    public static void main(String[] args) {//导出jar包前,必须、必须、必须屏蔽main函数,否则无法使用
//        System.out.println("test");//jmeter不支持System.out.println,导出jar包前需要屏蔽掉
//        test test = new test();
//        test.setupTest(null);
//        test.runTest(null);        
//    }
}

 

标签:username,password,java,请求,参数,address,import,jmeter,sampleResult
From: https://www.cnblogs.com/wtxyear/p/17665642.html

相关文章

  • JavaBean的get、set方法引发的讨论
    一哥们发的一个被大家广泛认为蛋疼的帖子,如下: //设置成私有变量,有什么鸟用?难道是为了整个团队配合的时候告诉那些人这个变量不可以动吗?那是不是一个开发一个项目的时候这些修饰符是毫无意义的?privateStringcode;publicvoidsetCode(Stringcode){......
  • 开源.NetCore通用工具库Xmtool使用连载 - HTTP请求篇
    【Github源码】《上一篇》介绍了Xmtool工具库中的XML操作类库,今天我们继续为大家介绍其中的HTTP请求类库。在现如今的软件需求场景中,HTTP网络请求几乎是开发过程中必然会使用的功能;而系统自带的HTTPClient对象使用起来并不是那么容易和友好,因此我们对其进行了二次封装成了一个We......
  • 搭建JMeter 5.0 + InfluxDB + Grafana 性能测试监控平台(Windows平台)
    前言JMeter往往需要执行完之后拼凑完测试报告,才能看到结果。命令行里的内容也不够详细。那么如何在执行过程中实时监控执行效果呢?使用InfluxDB+Grafana 这个组合可以解决我们的痛点,那就是性能测试过程中的不透明。InfluxDB和Grafana是什么InfluxDB是一种时序数据库,用来存放......
  • JAVA接口
    接口:是一种引用数据类型由interfacec定义只能包含常量和抽象方法不能被实例话接口需要被实现、继承,实现类/派生类:必须重写接口中的所有抽象方法一个类可以实现多个接口,用逗号分隔。接口可以继承接口 接口中成员的访问权限,默认就是public的,也之能是publi......
  • 20230627 java.net.URL
    介绍java.net.URLpublicfinalclassURLimplementsjava.io.SerializableURI是个纯粹的语法结构,包含用来指定Web资源的字符串的各种组成部分URL是URI的一个特例,它包含了用于定位Web资源的足够信息URL语法authority部分具有以下形式:[user-info@]host[:port]......
  • 20230627 java.net.URI
    介绍java.net.URIpublicfinalclassURIimplementsComparable,SerializableURI是个纯粹的语法结构,包含用来指定Web资源的字符串的各种组成部分URL是URI的一个特例,它包含了用于定位Web资源的足够信息URI语法URI具有以下句法:[scheme:]schemeSpecficPart[#fra......
  • 20230627 java.net.Socket
    介绍java.net.SocketpublicclassSocketimplementsjava.io.Closeable套接字(Socket)是网络软件中的一个抽象概念,负责启动该程序内部和外部之间的通信API构造器Socket()Socket(Proxyproxy)Socket(Stringhost,intport)throwsUnknownHostException,IOException......
  • 20230627 java.net.ServerSocket
    介绍java.net.ServerSocketpublicclassServerSocketimplementsjava.io.Closeable服务器套接字ServerSocket类用于建立套接字,accept用于告诉程序不停地等待,直到有客户端连接到这个端口。一旦有人通过网络发送了正确的连接请求,并以此连接到了端口上,该方法就会返回一个表......
  • 20230627 java.net.InetSocketAddress
    介绍java.net.InetSocketAddresspublicclassInetSocketAddressextendsSocketAddressAPI构造器InetSocketAddress(intport)InetSocketAddress(InetAddressaddr,intport)InetSocketAddress(Stringhostname,intport)publiccreateUnresolved创建未解析的I......
  • 20230627 java.net.InetAddress
    介绍java.net.InetAddresspublicclassInetAddressimplementsjava.io.Serializable因特网地址,是一串数字表示的主机地址(IPv4是4字节,IPv6是16字节)支持在主机名和因特网地址之间进行转换封装了一个字节序列(IPv4是4字节),byte的取值范围是[-126,125),IPv4的大小......