使用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. ListBox控件

    主要介绍:自定义数据.绑定数据库数据 前台代码: <div> <asp:ListBox ID=" Width ="100px"> <asp: ...

  2. jsp生命周期和工作原理

    jsp的工作原理jsp是一种Servlet,但是与HttpServlet的工作方式不太一样.httpservlet是先由源代码编译为class文件后部署到服务器下的,先编译后部署.而jsp则是先部署后 ...

  3. spark论坛

    http://spark.apache.org/ http://bbs.csdn.net/forums/spark http://spark.csdn.net/ http://tieba.baidu. ...

  4. 浙江大学PAT上机题解析之3-04. 一元多项式的乘法与加法运算

    设计函数分别求两个一元多项式的乘积与和. 输入格式说明: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分 ...

  5. 利用opencv中的级联分类器进行人脸检測-opencv学习(1)

    OpenCV支持的目标检測的方法是利用样本的Haar特征进行的分类器训练,得到的级联boosted分类器(Cascade Classification).注意,新版本号的C++接口除了Haar特征以外 ...

  6. Java 生成本文文件的时候,Dos格式转成Unix格式

    仅仅须要在生成文本的最后 加上 sb.append("\n\r");就可以 是/n/r 不是/r/n

  7. wxWidgets帮助文档(1)

    IMPLEMENT_APP IMPLEMENT_APP(className) 这是在应用程序中使用类的实现文件的应用程序类wxWidgets动态建筑.你用这个代替Old form: MyApp myA ...

  8. Android Content Provider的启动过程源码分析

    本文參考Android应用程序组件Content Provider的启动过程源码分析http://blog.csdn.net/luoshengyang/article/details/6963418和 ...

  9. U盘只剩下快捷方式

    原理: 其实,这个是一种叫1KB病毒(也称之为快捷方式病毒.风暴一号)惹的祸,它是一种恶意的蠕虫病毒,执行以下恶意操作:1.当你的U盘放到一个已经被感染 的主机上时,主机(我的电脑)上的病毒体进程首先 ...

  10. Linux下编译Qt源码,一定要下载tar.gz版本,否则会报权限不足

    首先下载qt-everywhere-opensource-src-4.8.1源码,下载地址: ftp://ftp.qt-project.org/qt/source/ 在Linux下编译一定要下载qt- ...