• Jmeter应用大全


    1、Jmeter安装

    Apache Jmeter是完全基于JAVA的桌面应用程序,需安装JDK1.4以上版本的JDK,并设置环境变量JAVA_HOME。下载apache-jmeter-2.13.zip,解压即可。

    2、Jmeter运行

    命令启动:jmeter  -n  -t  xxx.jmx

    双击apache-jmeter-2.13injmeter.bat文件,出现如下视图:

     

     

    3、创建线程组

    右键测试计划依次选择添加—>Threads(users)—>线程组,此时创建了一个默认线程组。

     

     

    Ramp-up Period(in seconds)决定多长时间启动所有线程。0代表同时并发;假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。

    Delay Thread creation until needed 延迟创建线程,直到该线程开始采样,即之后的任何线程组延迟和加速时间为线程本身。这样可以支持更多的线程,但不会有太多是同时处于活动状态。

    4、添加取样器

    所有的测试任务都由取样器承担,有很多种,如:HTTP 请求、JAVA请求等,以HTTP请求为例:

    4.1 HTTP请求

    右键线程组,依次选择添加—>Sampler—>HTTP请求。

     

     

    服务器名称或IP:被测服务器的域名或IP地址,如果是本机可写localhost或127.0.0.1。

    端口号:被测服务所占端口。比如tomcat默认端口为8080。

    Implementation:选择httpClient4标准,可空。

    协议:输入http,可空。

    方法:选择Post。

    Content encoding:输入utf-8。

    路径:要测试的URL,不需要包含服务器IP和端口。

     

     

     

     

     

     

     

    4.2 webservice接口测试

    右键线程组,依次选择添加—>Sampler—>SOAP/XML-RPC Request:

    URL:webservice地址

    SOAP/XML-RPC DATA 格式如下:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://ws.yiibai.com/"> 接口所在包名倒置

    <soapenv:Header/>

    <soapenv:Body>

    <web:getHelloWorldMessage> 接口名称

    <arg0>abc</arg0> 参数名称,默认为arg0、arg1,依次类推,如果指定参数名,不可用arg。

    </web:getHelloWorldMessage>

    </soapenv:Body>

    </soapenv:Envelope>

     

     

     

    4.3 JAVA请求

    右键线程组,依次选择添加—>Sampler—>Java请求,在类名称中选择要测试的类,将自动回显参数项,输入参数值即可启动。此处的类需要编写,可选择Java、Python等语言。可参见6、Jmeter脚本开发

     

     

     

     

     

    5、添加监听器

    5、1查看结果树

    它的功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。

    右键测试计划,依次选择添加—>监听器—>察看结果树。

    使用快捷键ctrl+R或者点击绿色按钮,启动测试计划。在察看结果树中将看到取样器结果、请求、响应数据。

     

     

     

     

    5、2聚合报告

    Average:平均响应时间

    Throughput:吞吐量,每秒处理的请求数(设备能够承受的最大速率),

    吞吐量=请求总数/(测试结束时间-测试开始时间)

    测试结束时间= MAX(请求开始时间+Elapsed  Time)

    测试开始时间=MIN(请求开始时间)

    监听器中添加Simple Data Writer,可以查看时间。

    10Mbps带宽,吞吐量大概为2Mbps

    KB/Sec:每秒从服务器接收的数据量

    6、Jmeter脚本开发

    开发工具:MyEclipse

    第一步:工程中添加jmeter相关jar包。

    第二步:创建测试类JmeterTest.java,继承AbstractJavaSamplerClient,会生成四个方法。

    getDefaultParameters()设置方法参数及默认值

    setupTest(JavaSamplerContext arg0)每个线程测试前执行一次,做一些初始化工作

    runTest(JavaSamplerContext arg0)开始测试,从arg0参数中获得参数

    teardownTest(JavaSamplerContext arg0)测试结束时调用

     

    package com.z2sci.Jmeter.test;

     

    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;

     

    public class JmeterTest extends AbstractJavaSamplerClient{

             private String a;

        private String b;

        private String resultData;

        // 这个方法是用来自定义java方法入参的。

        // params.addArgument("num1","");表示入参名字叫num1,默认值为空。

        //设置可用参数及的默认值;

        public Arguments getDefaultParameters() {

            Arguments params = new Arguments();

            params.addArgument("num1", "");

            params.addArgument("num2", "");

            return params;

        }

     

        //每个线程测试前执行一次,做一些初始化工作;

        public void setupTest(JavaSamplerContext arg0) {

        }

     

        //开始测试,从arg0参数可以获得参数值;

        public SampleResult runTest(JavaSamplerContext arg0) {

            a = arg0.getParameter("num1");

            b = arg0.getParameter("num2");

            SampleResult sr = new SampleResult();

            sr.setSampleLabel( "Java请求哦");

            try {

                sr.sampleStart();// jmeter 开始统计响应时间标记

                Hello test = new Hello();

                // 通过下面的操作就可以将被测方法的响应输出到Jmeter的察看结果树中的响应数据里面了。

                resultData = String.valueOf(test.sum(Integer.parseInt(a), Integer

                        .parseInt(b)));

                if (resultData != null && resultData.length() > 0) {

                    sr.setResponseData("结果是:"+resultData, null);

                    sr.setDataType(SampleResult.TEXT);

                }

                sr.setSuccessful(true);

            } catch (Throwable e) {

                sr.setSuccessful(false);

                e.printStackTrace();

            } finally {

                sr.sampleEnd();// jmeter 结束统计响应时间标记

            }

            return sr;

        }

     

        //测试结束时调用;

        public void teardownTest(JavaSamplerContext arg0) {

            // System.out.println(end);

            // System.out.println("The cost is"+(end-start)/1000);

        }

    }

    第三步:将工程导出jar包,放到jmeter/lib/ext目录下。

    7、保持session

    登录之后保持session配置方法。

    第一步:jmeter.properties 配置文件中设置 CookieManager.save.cookies=true 。

    第二步:在登录线程组中添加Debug Sampler,执行后取出COOKIE_JSESSIONID的值。

     

     

    第三步:添加HTTP Cookie管理器中设置

     

     

    8、参数化

    第一步:将准备的数据写到CSV,或其他格式的文件(多个参数,用逗号或tab键分隔)

    第二步:添加CSV Data Set Config,

     

     

    Filename:文件所在路径

    File encoding:编码

    Variables Names(comma-delimited):变量名称

    Delimiter(use ‘ ’ for tab):分隔符

    Recycle on EOF:线程是否循环取值

     

     

    第三步:在取样器中引用变量

     

     

  • 相关阅读:
    找出2n+1个数中不成对的那个(升级版)
    找出2n+1个数中不成对的那个
    随手记,完美的记账软件
    NOD32强制卸载工具使用方法【转】
    中医养生重在养“气”【灵枢针灸-袁医生】
    美国大学对本科生培养的12条标准【转】
    Windows软件使用Q&A集锦【持续更新】
    VLSI和ASIC的区别(转)
    Verilog 模块参数重定义(转)
    FPGA技术的一些基本概念(综合、BlackBox)(转)
  • 原文地址:https://www.cnblogs.com/liuhaixia/p/7099958.html
Copyright © 2020-2023  润新知