JMeter Webservice测试计划

在本章中,我们将学习如何创建一个测试计划,测试一个WebService。对于我们的测试目的,我们已经创建了一个简单的 Web 服务项目,并将其部署在 Tomcat 服务器上本地。

  创建WebService项目

  要创建一个 Web 服务项目中,我们使用了Eclipse IDE。首先编写服务端接口 HelloWorld 包下com.yiibai.ws。 HelloWorld.java 的内容如下:


package com.yiibai.ws;

import javax.jws.WebMethod;

import javax.jws.WebService;

import javax.jws.soap.SOAPBinding;

import javax.jws.soap.SOAPBinding.Style;

//Service Endpoint Interface

@WebService

@SOAPBinding(style = Style.RPC)

public interface HelloWorld{

@WebMethod String getHelloWorldMessage(String string);

}

  这个服务有一个的方法 getHelloWorldMessage 需要字符串 参数。

  下一步创建实现类 HelloWorldImpl.java 在包 com.yiibai.ws 下。


package com.yiibai.ws;

import javax.jws.WebService;

@WebService(endpointInterface="com.yiibai.ws.HelloWorld")

public class HelloWorldImpl  implements HelloWorld  {

@Override

public String getHelloWorldMessage(String myName){

return("Hello "+myName+" to JAX WS world");

}

}

  作为下一个步骤,让本地发布此Web服务通过创建端点出版商和公开此服务的服务器上。

  publish方法有两个参数:

  端点URL字符串。

  实现程序对象 HelloWorld 实现类,在这种情况下,这是作为一个Web服务公开在以上参数中提到的由URL标识的端点。

  HelloWorldPublisher.java 内容如下所示:


package com.yiibai.endpoint;

import javax.xml.ws.Endpoint;

import com.yiibai.ws.HelloWorldImpl;

public class HelloWorldPublisher {

public static void main(String[] args){

Endpoint.publish("http://localhost:9000/ws/hello", new HelloWorldImpl());

}

}

 接下来修改web.xml如下:


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

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems,

Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">

<web-app>

<listener>

<listener-class>

com.sun.xml.ws.transport.http.servlet.WSServletContextListener

</listener-class>

</listener>

<servlet>

<servlet-name>hello</servlet-name>

<servlet-class>

com.sun.xml.ws.transport.http.servlet.WSServlet

</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>hello</servlet-name>

<url-pattern>/hello</url-pattern>

</servlet-mapping>

<session-config>

<session-timeout>120</session-timeout>

</session-config>

</web-app>

  要部署的 web 服务应用程序,我们需要 sun-jaxws.xml 配置文件,这个文件的内容如下:


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

<endpoints

xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"

version="2.0">

<endpoint

name="HelloWorld"

implementation="com.yiibai.ws.HelloWorldImpl"

url-pattern="/hello"/>

</endpoints>

  现在,所有文件都准备好目录结构看起来会像下面的图片:

  现在,这个应用程序创建一个WAR文件。选择 project > right click > Export > WAR文件。hello.war 文件保存Tomcat 服务器 webapps文件夹下。现在启动Tomcat服务器。在服务器启动后,你应该能够访问web服务可以通过以下网址:

  http://localhost:8080/hello/hello

 创建JMeter测试计划

  现在,让我们创建一个测试计划,测试上面的 web服务。

  重命名测试计划

  通过点击启动JMeter的窗口 /home/manisha/apache-jmeter-2.9/bin/jmeter.sh. 点击测试计划节点上。重命名此测试计划节点 WebserviceTest.

  添加线程组

  添加一个线程组,这是所有其他元素,如取样器,控制器,监听的占位符。右键单击我们的测试计划 WebserviceTest(our Test Plan) > Add > Threads(Users) > Thread Group。线程组将添加根据测试计划(WebserviceTest)的节点。

  接下来,让我们修改线程组的默认属性,以满足我们的测试。改变以下属性:

  Name: webservice user

  Number of Threads (Users): 2

  Ramp-Up Period: leave the the default value of 0 seconds.

  Loop Count:2

  添加SAMPLER-SOAP/XML RPC请求

  现在,我们已经定义了用户,它是时间定义,他们将要执行的任务。我们将添加 SOAP/ XML-RPC 请求元素。点击鼠标右键得到添加菜单,然后选择 Add > Sampler > SOAP/XML-RPC Request,选择元素树中的SOAP/ XML-RPC请求,并在下面的图片编辑下列属性:

  这个元素中输入下列详细信息:


Name: SOAP/XML-RPC Request

URL: http://localhost:8080/hello/hello?wsdl

Soap/XML-RPC Data: Enter the below contents

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://ws.yiibai.com/">

<soapenv:Header/>

<soapenv:Body>

<web:getHelloWorldMessage>

<arg0>Manisha</arg0>

</web:getHelloWorldMessage>

</soapenv:Body>

</soapenv:Envelope>

  添加监听器

  需要添加到测试计划中的最后一个元素是一个监听器。此元素是负责所有的 HTTP 请求的结果存储在一个文件中,并呈现出可视化的数据模型。

  选择 webservice 用户元素,并添加一个查看结果树监听器(Add > Listener > View Results Tree).

  运行此测试计划

  现在保存的以上测试计划 test_webservice.jmx。执行本测试计划使用 Run > Start  选项。

  查看输出

  下面的输出,可以看到在监听器中。

  可以看到在过去的图像响应消息 "Hello Manisha to JAX WS world".

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2017-07-03

JMeter Webservice测试计划的相关文章

java-通过程序调用jmeter进行测试计划

问题描述 通过程序调用jmeter进行测试计划 各位大神,我最近在学jmeter,jmeter是百分之百的java程序,免费开源的压力测试工具.最近想通过代码程序调用jmeter,就是有一堆jmx要进行测试,而代码的功能就是发出测试命令和接收测试结果.我想了两条思路,第一个就是通过jmeter的API调用来实现,第二个就是通过命令行的形式(不是在CMD中,而是在程序中)来输入输出.所以在研究jmeter的API,由于是新手,研究的很没有效率, 两种思路也只是在想想的阶段.所以请求大家给点帮助,不

JMeter测试计划以及测试实施的注意点

1.测试场景的设计 JMeter压力测试计划作成的时候,需要事先进行Scenario设计,设想我们业务应用中的几种场景. 比如,考虑以下的这几种场景. Scenario1.多家经销商同时在做consumer的登录之后,大概20%的经销商在做整车登录,80%的经销商在做维修配件的登录. Scenario2.多家经销商同时在月末进行盘点作业的. Scenario3.多家经销商同时进行xxx功能的检索查询. 2.测试录制相关 使用JMeter的代理或是BadBoy进行录制的时候,特别是JMeter代理

如何使用JMeter创建FTP测试计划

FTP服务主要提供上传和下载功能.有时间需要我们测试服务器上传和下载的性能.在这里我通过JMeter做一个FTP测试计划的例子. 当然,JMeter官方网站的用户手册也有例子,但由于版本较早,我也算是对自己学习的一个总结,所以再整理一个. * 本人使用的是JMeter2.4版本. * 测试的服务器是IP:124.205.228.54  (由于找不到FTP站点,所以在"主机屋网站http://www.zhujiwu.com申请了一个免费的FTP空间") 1.创建一个线程组 2.线程组--

使用JMeter创建FTP测试计划

FTP服务主要提供上传和下载功能.有时间需要我们测试服务器上传和下载的性能.在这里我通过JMeter做一个FTP测试计划的例子. 当然,JMeter官方网站的用户手册也有例子,但由于版本较早,我也算是对自己学习的一个总结,所以再整理一个. * 本人使用的是JMeter2.4版本. * 测试的服务器是IP:124.205.228.54  (由于找不到FTP站点,所以在"主机屋网站http://www.zhujiwu.com申请了一个免费的FTP空间") 1.创建一个线程组 2.线程组--

Apache JMeter web性能测试实例

Apache JMeter是可以对利用HTTP或FTP服务器的应用程序进行测试的工具.它是基于Java的,通过所提供的API它还具有高度可扩展性.典型的JMeter测试包括创建循环 和线程组.循环使用预设的延迟来模拟对服务器的连续请求.线程组是为模拟并发负载而设计的.JMeter提供了用户界面.它还公开了API,用户可以从Java应用程序来运行 基于JMeter的测试.为了在JMeter中创建负载测试,需要构建测试计划.在实际操作中,Jmeter需要执行一系列的操作.最简单的测试计划通常包括下列

JMeter基础之—录制脚本

Jmeter 是一个非常流行的性能测试工具,虽然与LoadRunner相比有很多不足,比如:它结果分析能力没有LoadRunner详细:很它的优点也有很多:   l       开源,他是一款开源的免费软件,使用它你不需要支付任何费用,   l       小巧,相比LR的庞大(最新LR11将近4GB),它非常小巧,不需要安装,但需要JDK环境,因为它是使用java开发的工具.       l       功能强大,jmeter设计之初只是一个简单的web性能测试工具,但经过不段的更新扩展,现在

《全栈性能测试修炼宝典 JMeter实战》—第1章 1.6节性能测试技能树

1.6 性能测试技能树 下面细化一下性能测试所要掌握的知识,如图1-1所示. 1.6.1 测试工具 通过测试工具能提高测试软件开发速度,腾出时间专注于问题分析.主流工具有LoadRunner与JMeter,当然了,工具也不能解决所有问题,有时候还是需要自己编写程序来实现测试脚本.很多初学者认为这2个工具只能用来做性能测试,其实能做性能测试的工具也可以做功能自动化回归.API和UI测试等都可以实现.不是非得Selinum.WebDriver等才能做自动化测试. 常见难点 (1)用户和业务模型分析搭

JMeter主要组件介绍(2)

JMeter的组件主要包含:逻辑控制器,配置元件,定时器,前置处理器,Sampler,后置处理器,断言,监听器.刚开始学习,只能对他们有个大概的了解,以后慢慢使用了就会更熟悉些. 1.逻辑控制器(LogicController) 逻辑控制器主要用来控制JMeter发送请求(也就是采样器)的处理顺序,例如,它可以使从属于它一组请求它与Sampler结合使用可以模拟复杂的请求序列. 2.采样器(Sampler) 采样器也就是发送一个具体的请求到指定服务器,等待服务器的请求.一般,采样器会按照其在测试

JMeter基础之——录制脚本

JMeter基础之--录制脚本 Jmeter 是一个非常流行的性能测试工具,虽然与LoadRunner相比有很多不足,比如:它结果分析能力没有LoadRunner详细:很它的优点也有很多: ● 开源,他是一款开源的免费软件,使用它你不需要支付任何费用, ● 小巧,相比LR的庞大(最新LR11将近4GB),它非常小巧,不需要安装,但需要JDK环境,因为它是使用java开发的工具. ● 功能强大,jmeter设计之初只是一个简单的web性能测试工具,但经过不段的更新扩展,现在可以完成数据库.FTP.