[LR] 无线**系统的WS模块测试过程记录
无线**系统的WS模块测试过程记录
测试环境:
WIN2003 + WINXP + ASP.net(asmx/*.cs) + IIS + Oracle10G
IBM 3400 (Xeon E5420 2.50G 四核 ,8G RAM / Server,WIN2003) + Lenovo R61 (Core 2.1G , 2G RAM /Client,WIN2003) + Lenovo R61(Core 2.2G,3G RAM /Client,WINXP)
WS测试:
1.Import WSDL: 搭建好测试环境后,在LR的manage services中以URL方式导入WSDL文件,导入成功后,会在界面最下方提示"The WSDL file associated with this service passed validation with on errors."
2.Add Service Call: Click Add Service Call 按钮,在弹出的窗口中选择WEB 服务以及要对该服务进行的操作(web method),可以在这里对输入输出参数进行设置,也可以在添加完成后对输入输出进行参数化。
3.Replay: Click RUN.
4.Create Scenario.
问题记录:
Q1:
Action.c(4): Error: C interpreter run time error: Action.c (4): Error -- memory violation : Exception ACCESS_VIOLATION received.
A:该问题有不同的解决方法:
(一)、查看参数设置是否正确,传入参数不匹配,或非空的参数为空,都会造成该问题。
(二)、run time settings->Miscellaneous中将thread(线程)换成process(进程)。
Q2:R612003机器上录制脚本没问题,同样的录制方法在R61XP机器上录制,脚本死活通不过,报以下错误:
错误一:
Microsoft Visual C++ Runtime Library
Runtime Error!
Program:
This application has request the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
错误二:
mmdrv.exe遇到问题需要关闭。我们对此引起的不便表示抱歉。
如果你正处在进程当中,信息可能丢失。
A:对比脚本的WSDL,发现XP当前的用户为中文名,于是换一英文用户登陆,再录制WS脚本,回放通过,该脚本在2003中回放也顺利通过。在录制的过程中最好使用administrator帐户录制。
Q3: 一台机器上录制的脚本,回放通过,在另一台机器上回放通不过。
A:由于录制时使用localhost录制,虽然另一台机器上也有相同的环境,回放是通不过的,所以要想共享脚本,最好使用将localhost换成IP。应该是录制时脚本中会加入唯一识别的标识。
PS:
关于录制协议的选择,WS可以采有Web services 协议进行录制,也可以采用WEB(http/html)方式录制(不需添加WS CALL),只要有类似如aps.net中的.asmx文件提供对WS的支持,并且能通过WEB方式访问得到,业务能成功就是正确的协议。
附代码:
//WEB协议
Action()
{
web_url("localhost:801",
"URL=http://localhost:801/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTTP",
LAST);
lr_think_time(14);
web_url("DataWebSrv.asmx",
"URL=http://localhost:801/DataWebSrv.asmx",
"Resource=0",
"RecContentType=text/html",
"Referer=http://localhost:801/",
"Snapshot=t2.inf",
"Mode=HTTP",
LAST);
web_url("GetPdaDbTableList",
"URL=http://localhost:801/DataWebSrv.asmx?op=GetPdaDbTableList",
"Resource=0",
"RecContentType=text/html",
"Referer=http://localhost:801/DataWebSrv.asmx",
"Snapshot=t3.inf",
"Mode=HTTP",
LAST);
lr_think_time(5);
web_submit_data("GetPdaDbTableList_2",
"Action=http://localhost:801/DataWebSrv.asmx/GetPdaDbTableList",
"Method=POST",
"RecContentType=text/xml",
"Referer=http://localhost:801/DataWebSrv.asmx?op=GetPdaDbTableList",
"Snapshot=t4.inf",
"Mode=HTTP",
ITEMDATA,
"Name=dtLastUpdate", "Value=2008.09.05", ENDITEM,
LAST);
return 0;
}
//WS协议
Action()
{
web_service_call( "StepName=GetPdaDbTableList_101",
"SOAPMethod=DataWebSrv.DataWebSrvSoap.GetPdaDbTableList",
"ResponseParam=response",
"Service=DataWebSrv",
"Snapshot=t1243912498.inf",
BEGIN_ARGUMENTS,
"dtLastUpdate=2008.09.05",
END_ARGUMENTS,
BEGIN_RESULT,
END_RESULT,
LAST);
lr_think_time(3);
return 0;
}
感谢ZEE老师和坛里的OK兄,在这个过程中给了我很多的帮助和意见。。。