这里没有软件测试的泛泛理论,只有博主的最佳实践。 博主的研究方向为静态分析和性能测试,致力于各种测试工具的引入、评估和开发。 本博的测试文章均为作者原创,转载请务必注明出处。

LR 8.1:解决lrs_create_socket()遇到的问题

上一篇 / 下一篇  2008-04-08 12:00:29 / 个人分类:LoadRunner

昨天基本解决了LoadRunner Analysis中文报告的问题,今天再说说在脚本方面遇到的问题。

客户系统环境为:

Server:IBM Lotus Domino(身兼Web Server、DataBase Server、App Server、Mail Server,功能好强大)

Client:IE浏览器

看起来好像很简单,不是吗?但遇到的问题还真不少。

1 接待我的客户方工程师对被测系统也不了解,能告诉我的就这么多。我只能走一步算一步。先打开浏览器,简单熟悉一下要录制的操作步骤,登录后发现系统中采用了大量的第三方“控件”,比如客户端类似于word的编辑界面、整个树形结构(IE状态栏提示是UIApplet)等。明确了要录制的步骤是登录——起草报告——提交——查询——没有退出(因为这个系统没有退出功能,直接关闭浏览器即可)。

先打开Lr 8.1的VuGen,选择WEB(HTTP/HTML)协议录制,发现只能录制到“登录”部分,登录后的操作(起草报告、提交、查询)统统没录到。纳闷......慎重考虑后,选择WEB/WinSocket Dural Protocol,重新录制,重新看脚本,已经能录制到了,只不过脚本看起来特别乱,呵呵,终于发现第一次为什么没能录制到登录后的脚本了,原因在第二次的脚本中有

lrs_create_socket("socket0", "TCP","Localhost=8180","Backlog=50",LrsLastArg);

原来安装在客户端的控件需要socket通讯,而不是单纯的http。

这个问题刚解决,回头一想,不对,socket通讯使用的端口固定在了本机的8180,可本机只可能有一个8180端口,这是不是就意味着每个客户端只能有一个用户登录呢?赶紧用IE实验,果然不出所料,一个IE窗口登录后,再打开另外一个IE窗口登录,果然提示“端口已经被占用”。sigh......

这么搞的话,LR如何在一台机器上模拟多个用户?不是瞎扯吗?把开发人员叫来一问,的确是这样,开发人员也说当时欠考虑,不应该用固定端口。找来领导协商,让开发人员马上去修改,我的建议是使用端口前先检测,如果端口8180已被占用,直接使用8181,再不行依次往后加一。

开发人员去修改代码,耗时2天。两天后重新录制脚本,观察其内容,发现脚本中已经没有了上面的lrs_create_socket函数,replay后还是没过,这个简单,让VuGen Scan correlation first,关联了几处后,直接通过了。

2 在开发人员去修改代码的两天里,又重新找了一个“工资查询系统”来测试。这里倒没什么难度,唯一遇到问题的地方便是“验证码”,没什么说的,直接建议在代码中设置一个“万能验证码”,很简单,打开服务器端的代码,直接加一个“或”判断即可,如下

if((page.code = view.state) || (page.code = 1234))

写到这里,回头又想到一个问题。

1  LR 8.1中存在 WEB/WinSocket Dural Protocol,而LR 9.0中没有了这个协议,怎么办?分析手册中的一些描述,其实WEB/WinSocket Dural Protocol就是WEB(HTTP/HTML)+Winsocket,所以在LR9.0中直接选择“多协议”,然后选择那两个即可。

2 LR 9.0中新增加了WEB(click and scrīpt),录制时类似于QTP,记录的是用户的实际操作,而不是通讯协议,这样是否能简化一些脚本解决问题方面的工作量呢?例如关联等。明天有时间继续总结。

有关LR9.0新增的WEB(click and scrīpt)协议,请参考本站另一篇文章http://www.51testing.com/?10851/action_viewspace_itemid_73577.html

 


TAG: LoadRunner

huior的测试烩 引用 删除 huior   /   2008-04-10 09:39:55
查了一下手册,lrs_create_socket的常见用法是
int rc;
rc=lrs_create_socket("socket1", "TCP", "RemoteHost=199.203.77.246:21", LrsLastArg);
第三个参数一般是remotehost,而不是localhost,否则就会出现文中描述的问题。
 

评分:0

我来说两句

Open Toolbar