测试对象:某Web即时通信系统(如下称WebIM)
开发语言:XML
数据通信协议:Web(HTTP/HTML)协议、Windows Sockets协议
底层数据库:Mysql
服务器操做系统:Redhad 4(
中国软件工程网)
脚本实现功能:登入系统后,再退出系统。
问题1:录制开发的脚本能够成功回放,可是数据库的logout表里却查不到“登出”的用户?
分析:录制的时候只选用了单协议:Web(HTTP/HTML)协议,而WebIM的实现不仅用到了Web(HTTP/HTML)协议,也用到了 Windows Sockets协议。在定位了问题的"缘由"以后,笔者尝试录制多协议的脚本,结果回放失败。回放失败是由于Webim在登陆的过程当中有个加密验证的过程。脚本回放时提交了上一次的通过Sha1加密后的密文,而此时服务器端的Sha1密文已经发生了改变。从而致使了失败。
解决方法:
a、使用双协议录制脚本
b、开发Sha1算法的DLL文件并在脚本中调用。(
中国软件工程网)
问题2:录制的脚本中并无捕获到服务器返回的Session ID?
分析和方案:Webim的开发用到了XML和Windows Sockets协议,所以按照正常的思路,Loadrunner在录制脚本时,也应该采用XML和Windows Sockets协议,但实际状况是这样的,录制的脚本中并无捕获到服务器返回的Session ID。既然公司内网的Jabberd服务器有专门的测试客户端,笔者决定经过这个客户端录制脚本,因为这个客户端和服务器的通讯协议是Windows Sockets,所以录制协议也采用了这个最底层的协议。这一次,录制的脚本中捕获到了服务器返回的Session ID。为了保证脚本回放时可以动态的获取到这个Session ID,须要作“关联”操做,笔者使用了lrs_save_searched_string()函数,对脚本作了处理。(
中国软件工程网)
问题3:如何调用Dll来对服务器返回的序列和Password加密,以产生Sha1的密文?
分析和方案:脚本中加载了Dll库文件后,在调用库文件中的加密函数对Session ID+Password字符序列加密时,必须采用以下格式endes(a,b),其中的a表明源序列,b表明密文。通过这样的步骤处理后,调试脚本,就能够看到密文了。
问题4:Buf中参数化密文后,脚本仍是不能编译经过,存在语法错误?
分析和方案:发现Loadrunner参数化,是按照它内置的机制执行的,符合这个机制,编译就能经过。后来在Gen中的Tools—>general option中找到了能够更改这个机制的地方,修改完了以后,脚本再次编译,此次OK了。
问题5:错误提示:没有足够的虚拟用户分配给这个NewPara? 分析和方案:loadrunner中在对用户名和密码或其余数据参数化了之后,不要将参数删除后,从新参数化,不然就会出现上述问题。笔者决定从新录制脚本,从新参数化,从新修改脚本。事实证实这样作是正确的,编译运行后,5个虚拟用户的脚本正确无误的经过。