redhat_liu 发表于 2013-7-4 14:13:44

新手请教loadrunner测试webservice接口问题!

本人没有玩过loadrunner工具!

今天领导给分配个任务,需要测试一个webservice接口的性能,主要目的是测试接口在高并发情况下,是否存在异常。

接口URL如下:

http://11.10.12.10/resweb/service/IOSSInterfaceForCRM?wsdl

调用方法:getPnInfos

接口入参:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<uuId>ba4fd2ffba0072bfe04400237d3e0e48</uuId>
<areaCode>sq.nj.js.cn</areaCode>
<ans>
<an>
    <accessNumber>18901590015</accessNumber>
    <anTypeCd>103</anTypeCd>
</an>
<an>
    <accessNumber>18901590027</accessNumber>
    <anTypeCd>103</anTypeCd>
</an>
<an>
    <accessNumber>13376084633</accessNumber>
    <anTypeCd>103</anTypeCd>
</an>
<an>
    <accessNumber>15380875500</accessNumber>
    <anTypeCd>103</anTypeCd>
</an>
<an>
    <accessNumber>18900670001</accessNumber>
    <anTypeCd>103</anTypeCd>
</an>
</ans>
</root>

希望筒子里面的XDJM 给点指导!不慎感激!

云层 发表于 2013-7-4 14:29:03

look this

http://bbs.51testing.com/thread-497353-1-1.html

nikita51testing 发表于 2013-7-4 14:54:50

谢谢分享

redhat_liu 发表于 2013-7-8 14:44:45

首先谢谢各位!
但是我又遇到了新的问题:

Action()
{

        web_service_call( "StepName=getPnInfos_101",
                "SOAPMethod=OSSInterfaceForCRMService|OSSInterfaceForCRMPort|getPnInfos",
                "ResponseParam=response",
                "Service=OSSInterfaceForCRMService",
                "ExpectedResponse=SoapResult",
                "Snapshot=t1373011791.inf",
                BEGIN_ARGUMENTS,
                "inXml={NewParam}",
                END_ARGUMENTS,
                BEGIN_RESULT,
                "return=Param_return",
                END_RESULT,
                LAST);

//输出调用返回值
        lr_log_message("result1111111112222 = %s", lr_eval_string("{Param_return}"));

return 0;
}

这个是弄的脚本,运行后,业务正常:

返回结果如下:
result1111111112222 = &lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;root&gt;&lt;baseInfo&gt;&lt;result&gt;1&lt;/result&gt;&lt;resultMsg&gt;查询成功&lt;/resultMsg&gt;&lt;/baseInfo&gt;&lt;resultInfo&gt;&lt;an&gt;&lt;anId&gt;250312423954&lt;/anId&gt;&lt;accessNumber&gt;18901590015&lt;/accessNumber&gt;&lt;anTypeCd&gt;103&lt;/anTypeCd&gt;&lt;pnStatusCd&gt;170003&lt;/pnStatusCd&gt;&lt;pnStatus&gt;占用&lt;/pnStatus&gt;&lt;pnPoolId&gt;25500000063228&lt;/pnPoolId&gt;&lt;pnPool&gt;南京市区普通移动号池&lt;/pnPool&gt;&lt;pnLevelId&gt;110&lt;/pnLevelId&gt;&lt;pnLevel&gt;普通号&lt;/pnLevel&gt;&lt;pnLevelDes&gt;0&lt;/pnLevelDes&gt;&lt;/an&gt;&lt;an&gt;&lt;anId&gt;250312423966&lt;/anId&gt;&lt;accessNumber&gt;18901590027&lt;/accessNumber&gt;&lt;anTypeCd&gt;103&lt;/anTypeCd&gt;&lt;pnStatusCd&gt;170003&lt;/pnStatusCd&gt;&lt;pnStatus&gt;占用&lt;/pnStatus&gt;&lt;pnPoolId&gt;25500000063228&lt;/pnPoolId&gt;&lt;pnPool&gt;南京市区普通移动号池&lt;/pnPool&gt;&lt;pnLevelId&gt;110&lt;/pnLevelId&gt;&lt;pnLevel&gt;普通号&lt;/pnLevel&gt;&lt;pnLevelDes&gt;0&lt;/pnLevelDes&gt;&lt;/an&gt;&lt;an&gt;&lt;anId&gt;963376084633&lt;/anId&gt;&lt;accessNumber&gt;13376084633&lt;/accessNumber&gt;&lt;anTypeCd&gt;103&lt;/anTypeCd&gt;&lt;pnStatusCd&gt;170003&lt;/pnStatusCd&gt;&lt;pnStatus&gt;占用&lt;/pnStatus&gt;&lt;pnPoolId&gt;25500000063228&lt;/pnPoolId&gt;&lt;pnPool&gt;南京市区普通移动号池&lt;/pnPool&gt;&lt;pnLevelId&gt;111&lt;/pnLevelId&gt;&lt;pnLevel&gt;特号(差号)&lt;/pnLevel&gt;&lt;pnLevelDes&gt;0&lt;/pnLevelDes&gt;&lt;/an&gt;&lt;an&gt;&lt;anId&gt;250324894194&lt;/anId&gt;&lt;accessNumber&gt;15380875500&lt;/accessNumber&gt;&lt;anTypeCd&gt;103&lt;/anTypeCd&gt;&lt;pnStatusCd&gt;170300&lt;/pnStatusCd&gt;&lt;pnStatus&gt;审批封锁&lt;/pnStatus&gt;&lt;pnPoolId&gt;25500000065813&lt;/pnPoolId&gt;&lt;pnPool&gt;南京座上客食品有限公司移动虚拟网&lt;/pnPool&gt;&lt;pnLevelId&gt;106&lt;/pnLevelId&gt;&lt;pnLevel&gt;四级&lt;/pnLevel&gt;&lt;pnLevelDes&gt;1500&lt;/pnLevelDes&gt;&lt;/an&gt;&lt;an&gt;&lt;anId&gt;250326638040&lt;/anId&gt;&lt;accessNumber&gt;18900670001&lt;/accessNumber&gt;&lt;anTypeCd&gt;103&lt;/anTypeCd&gt;&lt;pnStatusCd&gt;170300&lt;/pnStatusCd&gt;&lt;pnStatus&gt;审批封锁&lt;/pnStatus&gt;&lt;pnPoolId&gt;25500000063397&lt;/pnPoolId&gt;&lt;pnPool&gt;军翼网省公司号池移动虚拟网&lt;/pnPool&gt;&lt;pnLevelId&gt;106&lt;/pnLevelId&gt;&lt;pnLevel&gt;四级&lt;/pnLevel&gt;&lt;pnLevelDes&gt;1500&lt;/pnLevelDes&gt;&lt;/an&gt;&lt;/resultInfo&gt;&lt;/root&gt;
Ending action Action.
Ending iteration 1.

但是到了负载模块,运行一段时间,5个用户,有error信息:内容如下:
Abnormal termination, caused by mdrv process termination.

redhat_liu 发表于 2013-7-8 14:51:21

我也按照网上说的 线程转进程的方法了,但是好像不怎么好使,请大侠们指点下。

机器是笔记本: I5 得处理器,2G 内存, windows7 系统。

还有个问题:我在脚本调试时,日志是全部打印的,不知道 负载的时候,是否需要关闭,有没有影响!

redhat_liu 发表于 2013-7-8 15:17:41

还有 怎么把截图发上来,我看了运行结果:

事物都是通过的,但就是运行的场景中的error 有错误,错误都是

Abnormal termination, caused by mdrv process termination.

不知道这个错误的原因,会对我的性能结果有影响吗?

redhat_liu 发表于 2013-7-8 15:19:33

我看了场景运行结果,

事物都是通过的,但是 error 项中会出现错误:
Abnormal termination, caused by mdrv process termination.

不知道会不会对我的性能结果有影响,这样负载算不算成功呀!

redhat_liu 发表于 2013-7-8 15:23:06

执行结果,事物都是通过的!

但是error 项中有错误,具体的报错信息为:
Abnormal termination, caused by mdrv process termination.

不知道这个对性能结果有影响不,什么原因导致的!

云层 发表于 2013-7-8 15:37:40

负载压力太大你自己电脑吃不消了,记得加等待时间。

redhat_liu 发表于 2013-7-8 19:26:30

上面的问题加个等待时间解决了,谢谢LS。

但是我现在和我们的开发对于问题的定位出现分歧:

讲下具体的情况,有个问题单是,调用上面的接口,现场出现过如下的报错:
1. 系统错误; nested exception is com.linkage.bss.commons.exception.BssRuntimeException: 系统错误; nested exception is java.lang.Exception: OSS1.0 IOSSInterfaceForCRM:getPnInfos异常:Connection reset
2. 系统错误; nested exception is com.linkage.bss.commons.exception.BssRuntimeException: 系统错误; nested exception is java.lang.Exception: OSS1.0 IOSSInterfaceForCRM:getPnInfos异常:Read timed out

我的主要任务是复现这个问题,脚步上面已经录制提供了,但是如果在负载过程其有某次事物失败或者出现error,我怎么分析是不是出现上面对应的异常呢:

是后台自己看日志,还是能通过脚步获取打印出来呢?-- 注:开发和我说,上面的异常在调用接口时,可以return返回!

redhat_liu 发表于 2013-7-8 19:34:48

lr_start_transaction("GETPNINFOS");


                web_reg_find("Fail=Found",
                "Search=All",
                "SaveCount=ZTE_COUNT",
                "Text=nested exception is com.linkage.bss.commons.exception.BssRuntimeException",
                LAST);

        web_service_call( "StepName=getPnInfos_101",
                "SOAPMethod=OSSInterfaceForCRMService|OSSInterfaceForCRMPort|getPnInfos",
                "ResponseParam=response",
                "Service=OSSInterfaceForCRMService",
                "URL=http://132.228.224.230/resweb/service/IOSSInterfaceForCRM",
                "ExpectedResponse=SoapResult",
                "Snapshot=t1373011791.inf",
                BEGIN_ARGUMENTS,
                "inXml={NewParam}",
                END_ARGUMENTS,
                BEGIN_RESULT,
                "return=Param_return",
                END_RESULT,
                LAST);

//输出调用返回值
        lr_log_message("result1111111112222 = %s", lr_eval_string("{Param_return}"));

       
//        lr_end_transaction("GETPNINFOS", LR_AUTO);


        if (atoi(lr_eval_string("{ZTE_COUNT}"))>0) //验证是否找到了要检查的字符串

                lr_end_transaction("GETPNINFOS",LR_FAIL);

        else

                lr_end_transaction("GETPNINFOS",LR_PASS);
       
                lr_think_time(3);

return 0;

后续自己修改的脚步,不知道能否解决我上面提的问题。

我现在的状态就是,开发说loadrunner负载结束后,提供的信息太少,无法确定是不是出现那个异常,他无法定位问题,这就搞的我举步维艰了,我也不知道怎么处理这个情况!

redhat_liu 发表于 2013-7-8 19:38:39

lr_start_transaction("GETPNINFOS");


                web_reg_find("Fail=Found",
                "Search=All",
                "SaveCount=ZTE_COUNT",
                "Text=nested exception is com.linkage.bss.commons.exception.BssRuntimeException",
                LAST);

        web_service_call( "StepName=getPnInfos_101",
                "SOAPMethod=OSSInterfaceForCRMService|OSSInterfaceForCRMPort|getPnInfos",
                "ResponseParam=response",
                "Service=OSSInterfaceForCRMService",
                "URL=http://132.228.224.230/resweb/service/IOSSInterfaceForCRM",
                "ExpectedResponse=SoapResult",
                "Snapshot=t1373011791.inf",
                BEGIN_ARGUMENTS,
                "inXml={NewParam}",
                END_ARGUMENTS,
                BEGIN_RESULT,
                "return=Param_return",
                END_RESULT,
                LAST);

//输出调用返回值
        lr_log_message("result1111111112222 = %s", lr_eval_string("{Param_return}"));

       
//        lr_end_transaction("GETPNINFOS", LR_AUTO);


        if (atoi(lr_eval_string("{ZTE_COUNT}"))>0) //验证是否找到了要检查的字符串

                lr_end_transaction("GETPNINFOS",LR_FAIL);

        else

                lr_end_transaction("GETPNINFOS",LR_PASS);
       
                lr_think_time(3);

return 0;

这个是我后来调试的脚步,不知道是否正确,虽然跑下,没有报错。

现在纠结的问题是,开发他说loadrunner压力时,如果出现错误,是否可以提供详细的日志什么的,要是不能,他无法定位问题。
页: [1]
查看完整版本: 新手请教loadrunner测试webservice接口问题!