zoukankan      html  css  js  c++  java
  • jmeter二次开发之java请求

    现在很多公司都用的是微服务,每个服务的请求协议有可能不相同,怎样用jmeter二次开发自己的java请求?

    下面是具体的开发步骤:

    1,把需要的jar包 添加到maven依赖中

    jmeter中javasample请求需要的jar包

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
     
        <groupId>MyJmeter</groupId>
        <artifactId>MyJmeter</artifactId>
        <version>1.0-SNAPSHOT</version>
        <properties>
            <jmeter.version>3.0</jmeter.version>
        </properties>
        <dependencies>
            <!--jmeter-->
            <dependency>
                <groupId>org.apache.jmeter</groupId>
                <artifactId>ApacheJMeter_core</artifactId>
                <version>${jmeter.version}</version>
            </dependency>
     
            <dependency>
                <groupId>org.apache.jmeter</groupId>
                <artifactId>ApacheJMeter_java</artifactId>
                <version>${jmeter.version}</version>
            </dependency>
        </dependencies>
     
        <build>
            <plugins>
                <!--<plugin>-->
                <!--<groupId>org.apache.maven.plugins</groupId>-->
                <!--<artifactId>maven-jar-plugin</artifactId>-->
                <!--<version>2.4</version>-->
                <!--<configuration>-->
                <!--<archive>-->
                <!--<manifest>-->
                <!--<addClasspath>true</addClasspath>-->
                <!--<classpathPrefix>lib/</classpathPrefix>-->
                <!--<mainClass>etms.TestEtms</mainClass>-->
                <!--</manifest>-->
                <!--</archive>-->
                <!--</configuration>-->
                <!--</plugin>-->
                <!--<plugin>-->
                <!--<groupId>org.apache.maven.plugins</groupId>-->
                <!--<artifactId>maven-dependency-plugin</artifactId>-->
                <!--<executions>-->
                <!--<execution>-->
     
                <!--<phase>package</phase>-->
                <!--<goals>-->
                <!--<goal>copy-dependencies</goal>-->
                <!--</goals>-->
                <!--<configuration>-->
                <!--<outputDirectory>-->
                <!--${project.build.directory}/lib-->
                <!--</outputDirectory>-->
                <!--</configuration>-->
                <!--</execution>-->
                <!--</executions>-->
                <!--</plugin>-->
     
            </plugins>
        </build>
     
    </project>

    2,然后编写具体的Java请求方法,代码如下

    package com.niu.MyJmeter;
     
    import javafx.scene.shape.ArcTo;
    import org.apache.jmeter.config.Arguments;
    import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
    import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
    import org.apache.jmeter.samplers.SampleResult;
    import org.apache.xmlbeans.impl.xb.xsdschema.impl.PublicImpl;
     
    /**
     * Created by Administrator on 2017/8/30 0030.
     */
    public class JmeterTest implements JavaSamplerClient {
        private String interfaceName;
        private String methodName;
     
        @Override
        public void setupTest(JavaSamplerContext javaSamplerContext) {
            //某种连接只连接一次,例如数据库
            System.out.print("测试开始");
     
        }
     
        @Override
        public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
            SampleResult result = new SampleResult();
            //获取页面上interfaceName的方法
            interfaceName = javaSamplerContext.getParameter("interfaceName");
            //获取页面上methodName的方法
            methodName = javaSamplerContext.getParameter("methodName");
            //测试开始的时间戳
            result.sampleStart();
            //设置响应数据的格式
            result.setResponseData(interfaceName+":"+methodName,"UTF-8");
            //测试结束的时间戳
            result.sampleEnd();
            //设置成功的
            result.setSuccessful(true);
            //设置响应code码
            result.setResponseCodeOK();
            //设置数据编码格式
            result.setDataEncoding("UTF-8");
            return result;
        }
     
        @Override
        public void teardownTest(JavaSamplerContext javaSamplerContext) {
            System.out.print("测试结束");
        }
     
        @Override
        public Arguments getDefaultParameters() {
            //添加参数
            Arguments arguments = new Arguments();
            arguments.addArgument("interfaceName","");
            arguments.addArgument("methodName","");
            return arguments;
        }
     
        public static void main(String[] args){
            JmeterTest jmeterTest = new JmeterTest();
            JavaSamplerContext arg0 = new JavaSamplerContext(jmeterTest.getDefaultParameters());
            jmeterTest.runTest(arg0);
            jmeterTest.teardownTest(arg0);
        }
    }

    3,IDEA打包放进jmeter里面

    然后用IDEA中的clean 先清除包,再install打成jar包,放到jmeter中的javasample中,本次代码中的参数是interfaceName, methodName ,然后面填入值,就可以用查看结果树来查看响应结果。

    原文地址https://blog.csdn.net/qq_30353203/article/details/77713754

  • 相关阅读:
    Android 查看通讯录Contacts是否发生变化
    卓尼斯ZT-180评測
    C++中的单例模式
    Android 动画之ScaleAnimation应用具体解释
    java的静态代理
    词性标注
    ubuntu 11.04安装笔记
    机房收费系统学生下机结账小结
    MyBatis入门学习(一)
    !!!!OpenWrt系列教程汇总
  • 原文地址:https://www.cnblogs.com/111testing/p/10467655.html
Copyright © 2011-2022 走看看