loadrunner测试web service的方法总结

loadrunner 测试 web service的方法总结
有三种方法成功:
Add Service Call方法步骤
1.首先向 开发 要到wsdl的地址。(本例中用的是http://IP:7001/sofa/services/com/yss/sofa/framework/ test /services/ Web Service?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方法。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值