51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2474|回复: 1
打印 上一主题 下一主题

[原创] loadrunner测试web service的方法总结

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-6-21 17:42:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
loadrunner测试web service的方法总结
有三种方法成功:
Add Service Call方法步骤
1.首先向开发要到wsdl的地址。(本例中用的是http://IP:7001/sofa/services/com/yss/sofa/framework/test/services/WebService?wsdl)打开之后显示的应该是一个XML格式的解释性的文件。
2.打开loadrunner,新建一个脚本,使用web services脚本协议。打开之后快捷工具栏会跟HTTP不太一样,如下(第三行的三个按钮下面要用到):

3.点击Manage Services按钮,在弹出框中的左上角的导入打开输入wsdl地址框。
4.在打开的地址框中添加刚刚的wsdl地址,然后点击导入,之后无需做任何事情直接点击OK关闭Manage Services窗口。到这里这个web services的信息都已经进入到脚本配置文件中了。

5.点击Add Services Call按钮,弹出对应方法的调用界面。其中input是输入,output是输出,就是方法的参数和返回值。右边Method里边写的是可以调用的方法。在输入下面的是方法的各个参数,点击之后弹出界面能够输入想带入的参数值。
  
6.点击确定,会生成相应的loadrunner请求函数。
    web_service_call( "StepName=getTestBeans_102",
        "SOAPMethod=WebService|WebServicePort|getTestBeans",
        "ResponseParam=response",
        "Service=WebService",
        "ExpectedResponse=SoapResult",
        "Snapshot=t1369381795.inf",
        BEGIN_ARGUMENTS,
        "arg0=5000",
        END_ARGUMENTS,
        BEGIN_RESULT,
        END_RESULT,
        LAST);
到此脚本完成,回放成功,如果还不放心就打开全部日志回放能够看到全部的请求和响应,以此判断是否正确。
SOAP方法步骤
此方法需要解析WSDL文件生成对应的XML文档,我使用的是soapUI工具,当然大家如果足够强也可以看着解释文件手动翻译。
1.第一步和第二步跟上面一样,不重复了。
2.打开soapUI工具(没有的自己到网上去找直接安装就行),点击File,新建一个soapUI工程。

3.在弹出框中输入WSDL地址并点击OK确定。

4.工具解析地址反馈回来的XML之后会生成对应的可以操作的函数,双击解析后生成的工程会看到解析出来的结果。

5.在解析的结果中找到Service Endpoints找到下面输入框中的地址,记住这个地址,下面需要用到。

6.双击左侧的请求,会生成对应的XML文件,在参数中间(<arg0>5000</arg0>)输入想要带进去的参数值。然后右键弹出菜单中选择保存,保存成一个XML文件。

7.关闭soapUI,点击Import SOAP按钮打开新增SOAP请求界面。如果弹出Cannot inser outside a function.是表示在脚本中的输入光标位置不对。在弹出框中点击浏览找到刚刚保存的XML文件。
  
7.确定之后会自动生成更大的一个输入框,在URL输入框中输入第5步保存下来的地址。

8.点击OK,生成SOAP脚本,如下:
    soap_request("StepName=SOAP Request",                                       
        "URL=http://IP:7001/sofa/services/com/yss/sofa/framework/test/services/WebService",                                       
        "SOAPEnvelope="
        "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ser=\"http://services.test.framework.sofa.yss.com/\">"
            "<soapenv:Header></soapenv:Header>"
            "<soapenv:Body>"
                "<ser:getTestBeans>"
                    "<arg0>5000</arg0>"
                "</ser:getTestBeans>"
            "</soapenv:Body>"
        "</soapenv:Envelope>",                                       
        "SOAPAction=",                                       
        "ResponseParam=response",                                       
        "Snapshot=t1369385831.inf",                                       
        LAST);
到此脚本完成,回放成功,如果还不放心就打开全部日志回放能够看到全部的请求和响应,以此判断是否正确。
POST请求方法步骤
1.用以上soapUI工具访问webservice接口,用wireshark截包工具接下来网络包,发现依然是用HTTP协议进行访问的。保存包的内容。
2.建立一个HTTP协议脚本,用insert->New Step按钮新增一个用户自定义请求。

其中Method写成POST表示是一个POST请求。
URL写wsdl的地址。
body中将截到的数据包的body直接复制进去,点击确定就会生成相应函数。
    web_custom_request("web_custom_request",
        "URL=http://IP:7001/acs/services/com/yss/acs/interfaces/Service?wsdl",
        "Method=POST",
        "TargetFrame=",
        "Resource=0",
        "Referer=",
        "Body=<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:int=\"http://interfaces.acs.yss.com/\"><soapenv:Header></soapenv:Header><soapenv:Body><int:getTransferCommands><arg1>2013-04-05</arg1><arg2>2013-04-05</arg2></int:getTransferCommands></soapenv:Body></soapenv:Envelope>",
        LAST);
两个脚本的对比总结
两个脚本都放在场景里进行了一下测试,测试的结果有两个感受:
1.在各方面资源足够的情况下三个脚本的压力是一样的。
2.Add Service Call方法占用压力机的资源极多,一个普通的PC机上25个用户CPU都会达到90%,而SOAP方法几乎不占CPU,上了100个用户CPU才25%。怀疑前一种方法在上场景中进行压力的过程中还需要不停的读取Manage Services中的配置和地址,所以占用压力机CPU特别高。
3.采用SOAP方法无法用普通的关联函数web_reg_save_param做关联,而需要用到XML取值操作函数,并且在获取值之前还要先写一个XML函数来告诉脚本这次获取时的标准XML格式,研究两个小时未果,过段放弃。采用了POST请求方式之后跟过去HTTP协议脚本没有发现任何区别,关联和检查点操作都完全一致,关联的左右两边只要写上XML中的两个边界即可,这个时候需要注意关联第几个数据。
4.目前没有其他的感受,在可能的情况下尽量使用POST方法吧,如果没有转换工具自己又不能转换还不能截包再考虑使用Add Service Call方法。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2013-7-30 17:25:44 | 只看该作者
恩。继续学吧。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-7 23:45 , Processed in 0.068224 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表