加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

JMeter进行WebService测试

发布时间:2020-12-17 00:09:22 所属栏目:安全 来源:网络整理
导读: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选

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,配置如图:


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)。如图:


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

配置如图:

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


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



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

[plain]?view plaincopy
  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]?copy
    //?SimpleService.java??
  1. package?com.deltaj.server;??
  2. ??
  3. public?class?SimpleServer?{????
  4. ????
  5. ????/**??
  6. ?????*?简单的测试方法??
  7. ?????*???
  8. ?????*/????
  9. ????public?String?simpleMethod(String?name)?{????
  10. ????????return?name?+?"Say?this?is?a?Simple?method?^-^";????
  11. ????}????
  12. }????


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

copy
    Java代码????
  1. public?User?create(????
  2. ????@WebParam(name?=?"user")????
  3. ????User?user);????
因此SimpleService服务端源程序改写如下:

copy
    public?String?simpleMethod(@WebParam(name?=?"personname")String?personname)?{????
  1. return?personname?+?"Say?this?is?a?Simple?method?^-^";????
  2. }????

Soap/XML-RPC Data 如下:

copy
    ????????????<personname?xsi:type="xsd:string">Yerasel?</personname>??
  1. </soap:Envelope>??

结果图:


JMeter整体图如下:


注:

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

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

文件布局如图:

com里面是包以及.class


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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读