JMeter的作用
二:关于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;
}