呵呵,从来没有写过技术文章,过两天公司的邮件系统要做性能测试,
自己练习了一些loadrnner的操作,觉得有点必要把学到的内容记录下来,以防将来自己又忘了,
不过,如果能正巧帮上哪位同行,也算是缘份了,哈哈!
其实,这个脚本很简单,就是录制:web登录邮箱,发送一封带有附件的邮件.
但是,每次执行的时候服务器的返回值-附件变量"AttFilles"是不一样的,所以需要将这个变量"AttFilles"做一下关联!
关联的方法大体上可以分为手工关联和自动关联.这两种方法各有所长,手工的比较保险,但是需要自己去找关联函数的位置和需要关联的参数,然后一一替代,
自动关联就比较简单了,找到关联参数的特征,运行的时候自动关联就是了,但是,有时候自动关联不是很完整,可能有的参数找不全!因为我录的脚本是比较简单的,需要关联的参数只有一个,所以,自动关联还是比较可靠的!
我知道的自动关联方式也有两种,我把它们分别定义为:变量名关联和变量值关联!
下面大概说一下录制到关联的过程。
一般情况下都是先录制两份相同的脚本,这里的相同是指录制时执行的业务流程,然后用工具比较两个脚本中变化的变量我个人比较喜欢用ultraedit,loadrunner自身也有一个比较的工具,但是感觉这个用起来比较快!
好了,找到变量就该关联了,下面是我采用的几种关联方法:
变量名关联:前提条件,我已经知道整个脚本中需要关联的变量名是:"AttFiles".那么,需要:RecordOption-Correlation,新建一个"aaa"的关联名,
规则为:Action:parameterizeform
filed value;Field name:AttFiles;Parameter
Prefix:AttFiles;
然后重新录制该脚本,录制的过程中,自然会有关联的提示,只需OK就可以了!
变量值关联:前提条件,我已经知道整个脚本中需要关联的变量名是"AttFiles".RecordOption-Correlation,新建一个"bbb"的关联名,
规则为:Action: Search for parameters in all of the body text Left bounday:
还有一点就是,这个左右边界值,一定要是服务器的返回值(response from server),而不是用户发出的请求值(user request),这个值可以在recording log里找,然后重新录制该脚本,录制的过程中,自然会有关联的提示,只需OK就可以了!
手工关联:在脚本中输入函数:web_reg_save_param("ATT",
"LB="input type="hidden" name="AttFiles" value=",
"RB=>",
LAST,);
手工关联的关键在于这个函数位置怎么放,之前有看过一个台湾作者的笔记,但是自己实在是笨,怎么也找不到。后来先看了自动关联后的脚本,然后自己分析下,总结出一个小知识,就是,录完脚本后,再执行一遍,点击:view-scan correlation,loadrunner会自动找一些他觉得需要关联的值参数,并且显示在correlation-result里,我们再选取需要的参数,点击右边的”correlation“然后这个函数就会自动加到他应该出现的位置,然后我们就可以"借用"它的劳动成果,自己手动添加函数啦!
接着就是在脚本中寻找使用该变量出现的位置,执行替换,value={ATT},这个脚本中共需要两次替换即可!
手工关联后,就不需要再重新录制脚本了!
=========================
还有个小小的经验就是,如果你遇到这样的脚本:web登录邮件,查看其中一封邮件,然后退出。(没有什么实际意义哈)再回放的时候,老是在查看这封邮件的时候过不去,那么,你可以试试重新录制一份脚本,但是先把:recordingoption-internet protool-recording 勾选url-based script!具体为啥我也不知道,哈哈。
本文出自 “MySQL中文网”博客 http://www.imysql.cn/