使用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;

}

时间: 2024-11-12 16:49:55

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

jmeter多用户并发压力测试(导入文件)

jmeter多用户并发压力测试可用CSV Data Set Config (添加--配置元件--CSV Data Set Config) Filename:  文件的位置(如果是同目录下csv文件,可不填写路径,写名称即可) Variable Names: 变量名称.多个变量用 ,  或者  ; 隔开 Recycle on EOF:文件结束后是否要循环 Stop thread on EOF(文件结束是否中止线程) File Encoding: 默认为ANSI Allow Quoated data

Jmeter入门(压力测试)

Jmeter介绍 Jmeter是一款使用Java开发的,开源免费的,测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试). 而且用Jmeter 来测试 Restful API, 非常好用. Jmeter 下载和运行 官方网站:http://jmeter.apache.org/解压后,运行 “bin/jmeter.bat” Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language 来选择语言 常用控件 1.必须新建一个线程组,jme

JMeter对接口进行压力测试

Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动态资源,例如静态文件.Java 小服务程序.CGI 脚本.Java 对象.数据库.FTP 服务器, 等等.JMeter 可以用于对服务器.网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能.另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果.

jmeter简单的压力测试

Jmeter是一个非常好用的压力测试工具.  Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好.相比LR来说操作简单方便,关键是免费,基于JAVA开发,所以需要配置JAVA环境. 1.下载jJmeter(本教程使用的是4.0版本) 进入官网下载安装包 2.配置JAVA环境 配置环境请自行百度,此类教程较多,我就不详细介绍了 3.运行Jmeter 进入文件夹,打开jmeter.bat程序,出现以下2个界面说明运行成功 4.添加线程组 选中Thread Gr

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

https://blog.csdn.net/u012111923/article/details/80705141 https://www.cnblogs.com/st-leslie/p/5185376.html https://www.cnblogs.com/Z-Queen/p/10044798.html    (如何支持 Cookie测试通过) 可以结合 Fidder 来截获 请求头中的 Cookie信息,然后发送测试. 序言 由于公司在来年需要进行压力测试,所以也就借节假日的机会来学习一下

项目总结51:Jmeter小程序压力测试案例

针对电商项目上线,预测会有500+用户同时登陆小程序.进行有压力测试 压力测试思路 使用Jmeter,模拟500名真实用户,在120秒.60秒内,请求小程序主要页面共18个接口两遍,然后分析Jmeter提供的测试报告: 具体操作 1-下载安装Jmeter(我使用的是Jmeter5.1.1),这个网上资源一大把,不再赘述:需要留意的是: 1-不要使用GUI运行压力测试,GUI仅用于压力测试的创建和调试:执行压力测试请不要使用GUI(这个会在打开Jmeter.bat命令时会有提示) 2-修改JMet

Apache Jmeter进行服务器压力测试

1.前言 最近项目遇到一个问题:其他公司对接我们系统,请求量太大的时候,返回单给对方就是丢失格式,大概十几万中总有那么十几单会出现格式错误! 所以我们老大就叫我用apache jmeter来进行并发测试,还挺好用的,简单易上手. 2.下载 1.直接百度Apache jmeter,第一个就是了. 2.点击. 3.点击完下拉,就能看见两个下载链接.(详细看图!) 3.配置环境 下载完后,随意解压到任意文件夹. a.使用前要配置jmeter环境变量:  在用户变量中,新建变量名"JMETER_HOME

jmeter get post 压力测试及ab 的压力测试及单个接口xhprof对比

Jmeter  下载和运行 1.官方网站:http://jmeter.apache.org/ 解压后, 运行  "bin/jmeter.bat" Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language  来选择语言 2.实际测试的例子 目标: 测试搜索接口的压力 方法一:请求类型:get  http://api.zintao.com/Search/Search/search?keyword=商品&did=12312

Jmeter+8583报文压力测试

Jmeter一般被用来测试HTTP协议,我第一次拿来测试socket协议,pos机传输报文为8583,协议属于socket,也是TCP协议的一种,网上有LR怎么测试8583报文,我就研究了一下怎么用Jmeter来测试,以下是我的研究结果,供大家参考 1.先打开\apache-jmeter-3.1\bin\jmeter.propertles文件,修改jmeter.propertles中的"TCP Sampler configuration"内容,见附图,添加"tcp.handl