我们在很多时候因为无法录制脚本而困惑,如
loadrunner使用FTP
协议录制Core FTP Lite时,只能看到loadrunenr捕获到事件,但无法生成脚本,又比如使用POP3或SMTP
协议录制邮件收发时也是只能捕获到时间,但无法生成脚本,此时我介绍一种万能的录制方法可以解决这个问题。
其实loadrunner录制的基本原理就是通过Port Mapping这个方法实现的,只不过我们在平时没有在意而已,那么先来介绍一下loadrunner典型的录制原理,再介绍一下loadrunner使用Port Mapping方式的录制原理。
通常情况下,我们在录制脚本的过程是:
1、 选择协议
2、 输入要录制的URL或指定要录制的应用程序的路径
3、 选择录制脚本的位置,存放在哪个ACTION中
4、 设置录制选项
5、 开始录制
本文来自户瑞海的测试空间
此时loadrunner会自动监控你所指定的URL或应用程序所发出的请求及服务器返回的响应,它做为一个第三者监视着客户端与服务器端的所有对话,然后把这些对话记录下来,生成脚本,再次运行时模拟客户端发出的请求,捕获服务器端的响应。它在做监视时会自动捕捉客户端发出请示时所用的端口,并根据请求内容向服务器端的相应端口发送,而服务器回应时,根据请求消息中的端口向客户端某个端口发出回应,也就是说loadrunner监听的端口是由应用程序或请求所决定的。
好了,知道通常情况下loadrunner录制脚本的原理后,我们在说一下Port Mapping录制脚本的原理:
Port Mapping录制过程是:
我们已使用POP3协议录制收邮件的过程来举例
1、 选择协议,选择POP3协议
2、 在要录制的应用程序路径中输入“loadrunner安装路径inwplus_init_wsock.exe”
3、 设置录制选项,在NETWORK的Port Mapping中新建一个代理
在socket service设置中,要指明你客户端程序要连接的服务器地址、端口、协议、录制脚本的类型等选项,由于负责收邮件的服务器默认的端口是110,所以我们这里将PORT设置为110;
在TRAFFIC FORWARDING设置中,这个端口可以为任意端口,主要是为了让loadrunner启动的代理服务知道要把所有发往指定端口111的请求转发给指定服务器的110端口
原理图如下:
4、 设置要录制的程序端口
将要录制的应用程序原本发往外网服务器的请求发送到本地的loadrunner启动的代理程序上,以便loadrunner进行监控
设置发送到本地的111端口:
5、 完成以上设置后,就可以开始录制脚本了
在录制脚本时我们会看到loadrunner会启动一个代理程序
这个就代表我们设置的代理服务正常启动了。通过重新录制我们不仅看到了loadrunner捕获到了事件,而且正确生成了脚本。
好了,总结一下Port Mapping录制的录制原理:
首先将要录制的应用程序向服务器发送请求的服务器地址和端口改为本地计算机及111端口,在Port Mapping中设置的代理程序再将发往111端口的所有请求转发给真正的服务器端,相当于loadrunner强制性的将本地某端口的通讯录制了下来,通过这个代理更明确了需要监控的端口和协议。
其实loadrunner通常使用的录制方式也是采用这样一个原理,只不过我们并不知道它具体监控的是哪个端口,而在Port Mapping录制方法中我们明确的指定了监听端口。可以说通常的录制方法是一种隐性的,而后一种录制方法是显性的。
可以通过此方法录制我们现有的所有协议的脚本,不会再出现只看到事件无法生成脚本的情况了!
其实这才是一种通用的录制方法!