首页 > 编程语言 >jmeter取样器javaRequest脚本8

jmeter取样器javaRequest脚本8

时间:2023-04-12 09:45:41浏览次数:57  
标签:javaRequest username jmeter String 取样器 请求 password sampleResult

1,创建一个maven工程

在pom.xml文件中添加

maven下载地址:https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_java/5.4.1

 <dependencies>
    <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_java -->
    <dependency>
        <groupId>org.apache.jmeter</groupId>
        <artifactId>ApacheJMeter_java</artifactId>
        <version>5.4.1</version>
    </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_core -->
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_core</artifactId>
            <version>5.4.1</version>
        </dependency>

    </dependencies>

新建一个类继承jmeter的AbstractJavaSamplerClient父类,继承后重新父类中的方法

类名 方法名 说明
Arguments params = new Arguments(); params.addArgument("Sleep_Time","100"); 添加到参数的key和value,这个参数添加后在java request的参数中显示
JMeterVariables jmeterVar = javaSamplerContext.getJMeterVariables(); jmeterVar.get("username") 获取jmeter全局变量中的值,比如获取界面上用户自定义变量配置元件中的变量值,csv导入数据的变量等,通过变量名获取
SampleResult sampleResult = new SampleResult(); sampleResult.sampleStart(); 在请求开始之前记录一下开始时间,然后在请求结束后在记录结束时间sampleResult.sampleEndt();,就能统计出每次请求所需的时间
sampleResult.setSuccessful(true或者false); 记录请求的结果为成功或失败为true则记录成功,为false则记录为失败
sampleResult.sampleEnd(); 在请求开始之前记录一下开始时间,然后在请求结束后在记录结束时间sampleResult.sampleEndt();,就能统计出每次请求所需的时间
sampleResult.setResponseData("".getBytes()); 获取每次请求返回的结果

获取java request取样器中的参数列表,不继承父类的话参数列表就是空的,定义后,添加对应的参数名和参数值,就会显示到参数列表

 //父类的方法,可以不继承
 public Arguments getDefaultParameters() {
        Arguments params = new Arguments();
        params.addArgument("Sleep_Time","100");
        return params;
    }

image-20220119205525814

这两个方法是继承父类中的用例执行之前的方法和用例执行之后清理数据的方法

 @Override
    public void setupTest(JavaSamplerContext context) {
        System.out.println("用例开始数据生成");
    }

    @Override
    public void teardownTest(JavaSamplerContext context) {
        System.out.println("测试结束清理数据");
    }

继承父类中的runTest方法

    @Override
    public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
        //从jmeter全局变量中获取值,获取界面上用户自定义变量配置元件中的变量值,通过变量名获取
        JMeterVariables jmeterVar = javaSamplerContext.getJMeterVariables();
        String username = jmeterVar.get("username");
        String password = jmeterVar.get("password");
        String hostname = jmeterVar.get("hostname");
        String port = jmeterVar.get("port");

        SampleResult sampleResult = new SampleResult();
        sampleResult.sampleStart();
        JHttpRequestSample.apiTest(hostname,port,username,password);
        sampleResult.setResponseData("".getBytes());//获取每次请求返回的结果
        String code ="200";
       if (code == "200"){
            sampleResult.setSuccessful(true);
        }else {
           sampleResult.setSuccessful(false);
       }
        sampleResult.sampleEnd();
        return sampleResult;
    }
   public static void apiTest(String hostname, String port, String username, String password){
        //  接口
        String path1 = "/api/v1/user/login";
        String loginUrl ="http://" + hostname  + ":" + port + path1;
        String data = "{\n" +
                "\t\"authRequest\": {\n" +
                "\t    \"userName\": \"" + username + "\",\n" +
                "\t    \"password\": \"" + password + "\"\n" +
                "\t}\n" +
                "}";
        String respData1 = HttpClient.sendPost(loginUrl, data);
        System.out.println("返回的结过筛是:"+respData1);
    }

可以通过main方法调试一下脚本是否正常

    public static void main(String[] args) {
        //实验代码
        String hostname = "localhost";
        String port = "9091";
        String username = "user01";
        String password = "pwd";
        boolean result = JHttpRequestSample.menuRestfulAPITest(hostname, port, username, password);
        System.out.println("最终结果:" + result);
    }

image-20220119202954056

2,通过maven编译打包生成一个jar包

生成的jar复制到对应jmeter的lib/ext目录下

image-20220119215952115

3,重启jmeter,新建java request请求

新建java requst请求后,选择自定义的jar包,可以看出这里的两个参数数在getDefaultParameters方法添加进来的,这这里可以修改

image-20220119220939961

4,开始执行脚本

在执行前,先进行1个并发进行调试一下如果没有报错,在进行多并发测试

如果报错在jmeter启用的控制台查看报错日志

image-20220119222307307

image-20220119222323847


本文永久更新地址:

https://www.fenxiangbe.com/p/jmeter取样器javaRequest脚本8.html

标签:javaRequest,username,jmeter,String,取样器,请求,password,sampleResult
From: https://www.cnblogs.com/fenxiangbe/p/17308713.html

相关文章

  • mac-m1安装jmeter详细步骤
    mac-m1安装jmeter详细步骤查看jdk安装路径:/usr/libexec/java_home-V修改jmeter的java路径vim/opt/homebrew/Cellar/jmeter/5.4.1/bin/jmeter修改java环境变量,jmeter需要给赋值写的权限,chmod+wjmeter修改成当前java的执行路径安装后的路径是:/opt/homebrew/Cellar/jmeter......
  • jmeter上传图片压测5
    1,前言2,jmeter脚本3,聚合报告本文永久更新地址:1,前言图片或文件测试上传压测需要考虑文件大小,不同大小的文件上传时对服务的压力是不一样,大文件压力要比小文件大场景准备两个不同大小的文件编写jmeter脚本2,jmeter脚本选择类型为文件上传mime类型为content-type的类......
  • jmeter插件的安装
    前言jmeter常用的插件有很多,本身安装的jmeter是没有安装插件的工具,需要下载一个jar包,通过插件安装工具去安装jmeter插件plugins-manager.jar这个jar包就是用来安装jmeter插件的jar把这个jar包下载后放到jmeter的lib/ext目录下重启jmeter就可以用这个工具安装更多的插件安装插件......
  • jmeter动态修改线程数脚本4
    1,jmeter修改并发数2,shell脚本编写3,jmeter设置脚本本文永久更新地址:1,jmeter修改并发数jmeter进行压测的时候,相同的脚本不同的并发数,如果人工测试的话,每次并发结束后都需要人工修改并发数再次测试,如果通过shell脚本动态的修改并发数,等一个场景结束后自动进行下一个并发......
  • jmeter断言的用法7
    1,jmeter响应断言2,大小断言3,xpath断言4,json断言本文永久更新地址:1,jmeter响应断言名称说明备注响应文本根据规则返回的结果中有对应的文本值响应代码响应返回的code码比如200,404,500等响应头响应头信息里面的内容请求头请求头里面包含的内容......
  • jmeter的界面介绍
    前言jmeter是一款进行接口自动化,性能测试的开源的工具界面jmeter菜单里面有个文件--模板,这个主要是一些请求不知道怎么设置时可以选择预制的一些模板选择对应的模板点击创建,就可以生成一个对应的记录,我们选择jdbc,创建后,就会生成jdbc,填写一些提示的信息运行菜单配置分布式,......
  • jmeter数据库连接6
    1,准备资料1.一个可用的数据库2.连接数据库需要的驱动2,jmeter连接数据库3,发送插入语句请求4,发送查询语句请求5,发送删除语句请求6,对数据库进行压测本文永久更新地址:1,准备资料1.一个可用的数据库搭建一个mysql8.0的数据库环境,并设置数据库可以远程访问docker......
  • jmeter的脚本录制3
    目录[TOC]1,jmeter录制入口测试计划》非测试元件》http代理服务器添加线程组添加录制控制器,目的为了把录制的脚本映射到对应的线程组里面的录制控制器里面设置代理端口和需要录制后到脚本映射位置,就是上面添加到录制控制器里面添加一个监听器,用来回放录制的......
  • jmeter两种不同场景的设计2
    前言jmeter单场景设计,一般性能需求场景设计性能需求1:在一定的用户数到访问下,要求响应时间是不是在规定的时间内,而且错误率是不是在规定的范围之内,如:要求能支持5个用户的访问,响应时间在100ms以内,错误率不超过2%性能需求2:要求响应时间在一定的范围内的情况下,能支持最大的用户......
  • Jmeter 启动时报错:Not able to find Java executable or version. Please check your
    安装java环境,cmd窗口中执行java-version可以看到java的版本信息。双击jmeter启动文件,报错:NotabletofindJavaexecutableorversion.PleasecheckyourJavainstallation解决办法:在启动文件jmeter.bat中添加java的环境信息SETJAVA_HOME=D:\Ksoftware\openjdk-19.0.2_w......