使用Jmeter至WebService压力测试

  目中我们使用了Jmeter对webservice进行了压力測试,Apache JMeter是Apache组织开发的基于Java的压力測试工具。用于对软件做压力測试。

JMeter的作用

1.可以对HTTP和FTPserver进行压力和性能測试, 也可以对不论什么数据库进行相同的測试(通过JDBC)。
2.全然的可移植性和100% 纯java。
3.全然 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
4.全然多线程 框架同意通过多个线程并发取样和 通过单独的线程组对不同的功能同一时候取样。
5.精心的GUI设计同意高速操作和更精确的计时。

6.缓存和离线分析/回放測试结果。



二:关于Jmeter的相关环境变量的配置类似于Java的配置,參考网上资料



三:Jmeter针对Http协议的webservice測试实例。

1:首先在測试计划中新建一个线程组





   

当中,线程属性中线程数和循环次数表示一次执行測试的时候真正执行的次数。也即訪问webservice的次数.



2:线程组以下新建一个HTTP请求(关于訪问接口服务的相关地址配置和一些參数的配置)和HTTP信息管理器(发送webservice服务时候的公共请求头),聚合报告(測试报告).













四:配置好一切之后,点击启动运行測试

=============we test webservice by http head start===========

name=clark

=============we test webservice by http head end===========



备注====================================下面为关于webservice服务的配置集成到spring中



applicationContext_webservice.xml

<?

xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxrs="http://cxf.apache.org/jaxrs"

    xmlns:context="http://www.springframework.org/schema/context"

    xsi:schemaLocation="

    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

    http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd

    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <context:annotation-config />

    <import resource="classpath:META-INF/cxf/cxf.xml" />



    <jaxrs:server id="restContainer" address="/">

        <jaxrs:serviceBeans><!-- 这里配置你的webservice bean定义。

參考 org.iboxpay.payment.merchant.ws.MerchantWebService -->

            <!-- <ref bean="orderWebService" /> <ref bean="merchantWebService" /> -->

            <ref bean="clearUserWebService" />

            <ref bean="merchantWebService"/>

    <!-- <ref bean="balanceWebService" /> -->

        </jaxrs:serviceBeans>

        <jaxrs:extensionMappings>

            <entry key="json" value="application/json" />

            <entry key="xml" value="application/xml" />

        </jaxrs:extensionMappings>

        <jaxrs:providers>

            <!-- <ref bean="jsonExMapper" /> -->

            <ref bean="jaxbProvider" />

            <ref bean="jsonProvider" />

        </jaxrs:providers>



    </jaxrs:server>

    <bean id="jaxbProvider" class="org.apache.cxf.jaxrs.provider.JAXBElementProvider" />

    <!-- ********************使用jackson作为序列化器*********************** -->

    <bean id="jsonProvider" class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />



</beans>



web.xml文件里CXF插件配置webservice

<servlet>

        <servlet-name>CXFServlet</servlet-name>

        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

        <load-on-startup>2</load-on-startup>

    </servlet>

    <servlet-mapping>

        <servlet-name>CXFServlet</servlet-name>

        <url-pattern>/services/*</url-pattern>

    </servlet-mapping>



Java中web service服务的配置

package com.iboxpay.clear.webservice;





import javax.annotation.Resource;

import javax.ws.rs.Consumes;

import javax.ws.rs.POST;

import javax.ws.rs.Path;

import javax.ws.rs.Produces;

import javax.ws.rs.core.MediaType;



import org.springframework.stereotype.Service;



import com.iboxpay.clear.service.SysResourceService;



@Path("/clearPro")

@Service("clearUserWebService")

public class ClearWebService {

    

    @Resource

    private SysResourceService sysResourceService;

    

    @Path("/dispath")

    @POST

    @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })

    @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })

    public String dispath(String jsonStr) {

        System.out.println("=============we test webservice by http head start===========");

        System.out.println(jsonStr);

        System.out.println("=============we test webservice by http head end===========");

        return "can you";

    }



}



假设须要查看运行測试之后在Jmeter中的返回结果,我们须要在线程组以下新建一个察看结果树(右键线程组>加入>监听器>察看结果树),在响应数据一栏即能够看到响应返回的结果





注意:在Jmeter发送JSON字符串的格式进行測试的时候,我们传递JSON參数的时候不能给參数名称,而应该直接给值既能够。

否则传到后台的时候会包括一系列的非字符串样式--导致其乱码。无法正确解析为我们须要的对象。

{"name":"zhangsan","description":"its"}既能够,而无需jsonStr = {"name":"zhangsan","description":"its"}其传过来的json參数我们仅仅须要解析为我们后台相应的对象就可以。

/**

     * 将JSON字符串 转换为对象

     *

     * @author weiyuanhua

     * @date 2010-11-18 下午02:52:13

     * @param jsonStr

     *            JSON字符串

     * @param beanClass

     *            泛型对象

     * @param field

     *            对象中须要忽略的属性

     * @return

     */

    public static Object jsonToObject(String jsonStr, Class<?> beanClass,String... field) {

        JsonConfig jsonConfig = getJSONConfig(field);

        JSONObject jsonObject = JSONObject.fromObject(jsonStr, jsonConfig);

        return JSONObject.toBean(jsonObject, beanClass);

    }



private static JsonConfig getJSONConfig(String... field) {

        JsonConfig jsonConfig = new JsonConfig();

        if (field != null) {

            jsonConfig = new JsonConfig();

            String[] exclu = new String[field.length];

            for (int i = 0; i < field.length; i++) {

                exclu[i] = field[i];

            }

            jsonConfig.setExcludes(exclu);

        }

        return jsonConfig;

    }

使用Jmeter至WebService压力测试的更多相关文章

  1. JMeter接口测试和压力测试

    JMeter接口测试和压力测试 JMeter可以做接口测试和压力测试.其中接口测试的简单操作包括做http脚本(发get/post请求.加cookie.加header.加权限认证.上传文件).做web ...

  2. jmeter简单得压力测试

    Jmeter教程 简单的压力测试 Jmeter是一个非常好用的压力测试工具.  Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 阅读目录 什么是压力测试 ...

  3. (转)使用JMeter进行Web压力测试

    使用JMeter进行压力测试 说到压力测试,一般第一反应都是LoadRunner.这个软件也确实是自动化测试的一个事实标准.无奈这个软件太过庞大,以及不能在MacOS上使用.我由于项目的需要,需要对一 ...

  4. Jmeter入门(压力测试)

    Jmeter介绍 Jmeter是一款使用Java开发的,开源免费的,测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试). 而且用Jmeter 来测试 Restful API, 非常好用. ...

  5. Jmeter性能测试-分布式压力测试

    作为一个测试行业的菜鸟,由于投身于一个小公司,包揽所有的测试.刚开始的功能测试到接口测试,稳定性测试,兼容性测试等,一般由于是小项目所以对于性能有所忽略,也没怎么涉及,公司接了个大项目,后期对于性能上 ...

  6. Jmeter使用指南----压力测试工具

    来源: https://blog.csdn.net/u012111923/article/details/80705141 https://www.cnblogs.com/st-leslie/p/51 ...

  7. 【转】Jmeter做web压力测试时设置持续时间注意点

    头一回使用jmeter做web的压力测试,遇到个很莫名其妙的问题,不管我的线程组怎么设置,它就是执行一次就结束了. 设置循环次数为300,不使用调度器--〉执行一次就结束了,循环次数未生效 设置循环次 ...

  8. JMeter进入接口压力测试

    关键字: Jmeter.单接口.压力测试.插件监听.服务器端 摘要: 使用Jmeter对单个接口进行压力测试:监听并发量对接口响应时间.服务器资源占量.Jmeter本身只能获取到Tomcat的状态,所 ...

  9. jmeter APP接口压力测试

    第一步:获取开发文档,了解接口地址和参数名 第二步:jmeter中添加需要测试的接口 a.设计APP的接口框架: b.http请求默认值设置如下: c.接口中应需要用到sign字段,加密字符串与时间戳 ...

随机推荐

  1. C# 课堂总结1-二进制转换

    一.目的:便于计算机表示,稳定性好,符合逻辑运算,真为1,假为0. 二.各进制表示方法: 2进制:0,1 8进制:0-7 16进制:0-9,A,B,C,D,E,F 二.转换方法: 1.各进制转换为10 ...

  2. oracle 11g 11.2.0.1 设置HuagePage导致TRC 变大 变多

    最近发现diag/..../trac/ 目录下  sid_ora_xxxx.trc 文件大小为11M 而且类似文件数量很大.导致占用了8G硬盘空间 另外个同事说他的DG没有这个问题. 都一样的系统和一 ...

  3. window下svn注册为本地的服务

    sc create svnservice binpath= "\"C:\program files\Subversion\bin\svnserve.exe\" --ser ...

  4. Regionals 2012, North America - Greater NY 解题报告

    这套题..除了几何的都出了 完全没时间学几何.杯具 A,B,J 水题不解释 C.Pen Counts 这题的话 写几个不等式限制边得范围就行了 然后枚举最小边 D.Maximum Random Wal ...

  5. 11gOCP 1z0-052 :2013-09-11 MGR_ROLE role........................................................A66

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11584537 正确答案A 实验测试 1.创建用户:SKD gyj@OCM> crea ...

  6. SQL Server 存储过程、触发器、游标

    存储过程 1.存储过程是事先编好的.存储在数据库中的程序,这些程序用来完成对数据库的指定操作. 2.系统存储过程: SQL Server本身提供了一些存储过程,用于管理有关数据库和用户的信息. 用户存 ...

  7. STM32 控制步进电机 28BYJ-48

    STM32 控制步进电机 28BYJ-48  http://blog.chinaunix.net/uid-12664992-id-300272.html 步进电机驱动最简化的逻辑: //四相八拍:A- ...

  8. 主题:Java WebService 简单实例

    链接地址:主题:Java WebService 简单实例    http://www.iteye.com/topic/1135747 前言:朋友们开始以下教程前,请先看第五大点的注意事项,以避免不必要 ...

  9. javascript每日一练(三)——DOM一

    一.Dom基础 childNodes(有兼容问题),children nodeType getAttribute() firstChild,lastChild,previousSilbing,next ...

  10. FastDFS的学习与使用(大量帖子)

    http://www.oschina.net/p/fastdfs http://bbs.chinaunix.net/forum-240-1.html