首页 > 其他分享 >(转)jmeter 测试webservice

(转)jmeter 测试webservice

时间:2022-12-18 20:34:43浏览次数:59  
标签:SimpleServer http webservice plain 线程 测试 org jmeter com


地址:http://itindex.net/detail/45270-jmeter-webservice-%E6%B5%8B%E8%AF%95

 

1. Building a WebService Test Plan参考

​http://jmeter.apache.org/usermanual/build-ws-test-plan.html ​

 

1.   建立WebServiceTest Plan

 

参考 ​​http://jmeter.apache.org/usermanual/build-ws-test-plan.html​

1)      添加ThreadGroup

右键单击Test Plan选择Add --> ThreadGroup,配置如图:

(转)jmeter 测试webservice_xml

Number of Threads、Ramp-UpPeriod、Loop Count可随测试不同随时修改。

三种参数解释如下:

Number of Threads为发起线程总数。

Ramp-Up Period 指定了JMeter开启Number ofThreads个线程所需的时间。例如,如果待发起30个线程(即模拟用户),Ram-Up Period为15秒,则每秒增加2个线程(30个用户/15秒)。如果设置为0,则JMeter会自动启动所有模拟用户。

Loop Count为循环次数。

2.   添加 WebService Requests

右键单击“WebService线程组”,Add --> Sampler --> WebService(SOAP)。如图:

(转)jmeter 测试webservice_java_02

 

注:灰色“线程组”为其它测试使用过的线程组,此处这设置为Disabled线程组,在本次测试中不使用。

配置如图:

将发布好的Service的 WSDL URL粘贴到WSDL URL中点击Load WSDL之后,WebMthods自动弹出,

(转)jmeter 测试webservice_xml_03

 

只需自己选择Method然后单击Configure即可完成绝大部分自动配置

 

(转)jmeter 测试webservice_java_04

但是里面会涉及Soap/XML-RPC Data的编写,我编写的如下:

 


[plain]   ​​view plain​​  ​​copy​​

 


  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <soap:Envelope   
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4. xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
  5. xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
  6. <soap:Body>  
  7. <ns1:simpleMethod  
  8.          xmlns:ns1="http://server.deltaj.com">  
  9.             <name xsi:type="xsd:string">Yerasel</name>  
  10.         </ns1:simpleMethod>  
  11. </soap:Body>  
  12. </soap:Envelope>  


这个XML中绝大部分都是固定的。其余解释如下:

 

simpleMethod是WebService发布的方法;

​http://server.deltaj.com是simpleMethod所在类(SimpleServer)的域名,即SimpleServer所在包的包名为com.deltaj.server;​

name是simpleMethod的参数名,参数类型是string;

Yerasel是输入的实参。

 

SimpleService服务端源程序如下: 

 


[java]   ​​view plain​​  ​​copy​​

 


  1. // SimpleService.java  
  2. package com.deltaj.server;  
  3.   
  4. public class SimpleServer {    
  5.     
  6.     /**  
  7.      * 简单的测试方法  
  8.      *   
  9.      */    
  10.     public String simpleMethod(String name) {    
  11.         return name + "Say this is a Simple method ^-^";    
  12.     }    
  13.   
  14. }    



 

注意: 
<arg0 xsi:type="xsd:string">Yerasel</arg0>也可以, 
在发布成wsdl时候, 方法的参数名称被自动的映射成arg0, arg1, 解决方法如下:  

 


[java]   ​​view plain​​  ​​copy​​

 


  1. Java代码    
  2. public User create(    
  3.     @WebParam(name = "user")    
  4.     User user);    


因此SimpleService服务端源程序改写如下:

 

 


[java]   ​​view plain​​  ​​copy​​

 


  1. // SimpleService.java  
  2. package com.deltaj.server;  
  3.   
  4. public class SimpleServer {    
  5.     
  6.     /**  
  7.      * 简单的测试方法  
  8.      *   
  9.      */    
  10.     public String simpleMethod(@WebParam(name = "personname")String personname) {    
  11.         return personname + "Say this is a Simple method ^-^";    
  12.     }    
  13.   
  14. }    


Soap/XML-RPC Data 如下:

 

 


[plain]   ​​view plain​​  ​​copy​​

 


  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <soap:Envelope   
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4. xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
  5. xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
  6. <soap:Body>  
  7. <ns1:simpleMethod  
  8.          xmlns:ns1="http://server.deltaj.com">  
  9.             <personname xsi:type="xsd:string">Yerasel </personname>  
  10.         </ns1:simpleMethod>  
  11. </soap:Body>  
  12. </soap:Envelope>  


结果图:

 

(转)jmeter 测试webservice_apache_05

 

JMeter整体图如下:

(转)jmeter 测试webservice_webservice_06

注:

发布SimpleServer时,需要写xml,这是发布WebService的一般步骤,内容如下:

 


[plain]   ​​view plain​​  ​​copy​​

 


  1. <serviceGroup>  
  2.     <service name="SimpleServer" scope="application">  
  3.         <description>  
  4.             SimpleServer  
  5.         </description>  
  6.         <messageReceivers>  
  7.             <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />  
  8.             <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>  
  9.         </messageReceivers>  
  10.         <parameter name="ServiceClass">com.deltaj.server.SimpleServer</parameter>  
  11.     </service>  
  12. </serviceGroup>  


文件名为META-INF/services.xml。

 

文件布局如图:

(转)jmeter 测试webservice_xml_07

com里面是包以及.class 

(转)jmeter 测试webservice_jmeter_08

 

然后,在bin目录下运行"jar cvf SimpleServer.aar . "即可

将aar放入Tomcat的services目录中即可发布。

标签:SimpleServer,http,webservice,plain,线程,测试,org,jmeter,com
From: https://blog.51cto.com/u_15740686/5951111

相关文章

  • JumpServer 测试资产可连接性失败
    一、引言最近使用JumpServer纳管了公司内部一些资产,想着使用JumpServer自带的推送系统用户功能将JumpServer的用户推送到WindowsServer2008R2上,但是在测试资产可......
  • 微软出品自动化神器【Playwright+Java】系列(八) 之 使用 Playwright进行API接口测试
    前言我喜欢周末是因为,可以做一些我自己喜欢的事。比如我插上耳机,写点东西就能坐上一天,这也许算是属于我自己的一份静谧吧。想系统学习请参考:Playwright+Java入门使用Pl......
  • 3)如何测试多节点状态机及TestLeaderCycle
    【流程】1)第一轮1节点发起选举,自己的发送邮箱r.msgs包含两个消息,给2和3的2)框架里取出这两条消息3)通过消息的msgTo找到2节点的状态机,执行【对象】【逻辑】 【TestL......
  • 走过岁月我才发现——云IDE真方便(Python3.8环境测试)
    目录​​产品测试:​​​​创建工作空间​​​​插件安装​​​​创建python文件​​​​运行python文件​​​​Demo测试​​​​查看环境piplist​​​​云IDE挑战赛​​......
  • 口全解测试-全方位了解Eolink-三神技超亮点》
    目录​​前言:​​​​神技:​​​​1、【代码生成】(★★★★★)五星推荐​​​​2、一键Swagger搬运(★★★★★)五星推荐​​​​3、eo注释与一键上传全部接口(★★★★★)五星推......
  • C# Socket 使用简单测试示例
    引用Newtonsoft.Json.dllusingNewtonsoft.Json;进行对象序列化和反序列化。服务端:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSyst......
  • jmeter做压测性能调优:SSL上下文切换导致SSL频繁握手【杭州多测师_王sir】【杭州多测师
    一、问题背景在使用 JMeter 压测时,发现同一后端服务,在单机 500 并发下,HTTP 和 HTTPS 协议压测 RT 差距非常大。同时观测后端服务各监控指标水位都很低,因此怀疑性......
  • 【性能测试】压测平台nGrinder实践01
    一、部署安装教程(windows为例)1、把下载下来的ngrinder-controller.war重命名为ngrinder.war放到tomcat下面,启动tomcat(没有安装可自行tomcat官网下载) ngrinder包可自行......
  • WebService简单教学
    目录##springboot整合CXF的快速入门##一,服务端提供webservice服务1,实体类User2,webservice接口3,webservice接口的实现类4,CXF配置类5,pom依赖配置6,页面访问服务二,客户端访问we......
  • GC测试
    基于SpringBoot来开发接口并编译运行代码UserController类packagecom.wjq.demo;importorg.springframework.web.bind.annotation.RequestMapping;importorg.sprin......