Loadrunner
Loadrunner分为三部分,分别是脚本生成器、场景控制器、结果分析器
关联就是把脚本中某些写死的代码,转变成服务器所传达的,动态的,每次都不一样的数据。
关联属于一种特殊的参数化,只是与一般的参数化有些不同,一般的参数化的参数来源于一个文件、一个定义的table,但关联所获得的参数是服务器响应请求所返回的一个符合条件的、动态的值。
性能测试工具录制脚本,是一个记录服务器和浏览器期间对话的过程,脚本中保存的是浏览器的所有行为,直接回放这些行为,脚本会失败,而这种情况下没有任何特定的错误消息指向关联。关联的意义在于将脚本打造成为成功的伪装者,骗过服务器,让业务顺利完成。
web_reg_save_param(...);
web_create_html_param(...);
web_create_html_param_ex(...);
loadrunner提供两种关联方式:自动关联和手动关联
自动关联:loadrunner中vugen通过内建自动关联引擎可以自动找出需要关联的值,只需要在工具选项中启动自动关联即可使用,虽然很方便,但是在脚本运行中,如果出现跟内建关联规则相似数据的时候,容易出现麻烦
手动关联:需要了解业务流程相关接口参数意义,这一点我们可以阅读业务系统的接口设计文档或者找到对应开发这里功能模块的工程师进行咨询;有一些字段一看就可以确认是关联点,比如session ID,表单类的id,唯一标识,后续业务需要用到的关键字段,多次调试脚本后,能快速准确的判断出需要关联的数据。
web_reg_save_param是一个服务端函数(Service function,主要用来完成一些特殊的工作,如关联、设定proxy、提供认证信息等),当其作用时,不会对网页的内容做任何的修改。web_reg_save_param 同时也是一个注册类型的函数(Registration Type Function,只要函数名称中包含_reg_的字眼,表示其为注册类型的函数)。注册类型的函数意味着其真正作用的时机是在下一个动作函数 (Action Function)完成时。举例来说,当某个web_url执行时所接收到的网页内容中包含了要做关联的动态数据,则必须将 web_reg_save_param放在此web_url之前,web_reg_save_param会在web_url执行完毕后,也就是网页内容都 下载完后,再执行web_reg_save_param,寻找要做关联的动态数据并建立参数。要记住一点,当使用注册类型的函数时,要注意其放置的位置必须在要作用的动作函数之前。
(3)关联函数web_reg_save_param的语法
int web_reg_save_param(const char *ParamName, LAST);
参数说明:
ParamName:存放动态数据的参数名称。
list of Attributes:其他属性,包含 “Notfound”、“LB”、“RB”、“RelFrameID”、“Search”、“ORD”、“SaveOffset”、“Convert”以及“SaveLen”。下面将详细说明每个属性值的意义。
Notfound:指定当找不到要找的动态数据时该怎么处理。
Notfound=error时,表示着找不到动态数据时,就发出一个错误消息。此为该属性的默认值。
Notfound=warning时,表示当找不到动态数据时,不发出错误消息,只发出警告,脚本也会继续执行下去不会中断。在对脚本出错时,可以如此设置。
LB:动态数据的左边界字符串。此属性是必须要有的,而且区分大小写。
RB:动态数据的右边界字符串。此属性是必须要有的,而且区分大小写。
RelFrameID:相对于URL而言,欲搜寻的网页的Frame。此属性可以是All或是数字,而且可有可无。
Search:搜寻的范围,其值可以是Headers(只搜寻headers)、Body(只搜寻body部分,不搜寻header)、 Noresource(只搜寻body部分,不搜寻header与resource)或是All(搜寻全部范围,此为默认值),此属性可有可无。
ORD:指明从第几次出现的左边界开始才是要撷取的数据,默认值是1。假如该属性值为All,则所有找到符合的数据会存储在数组中。此属性可有可无。
SaveOffset:当找到符合的动态数据时,从第几个字符开始才开始存储到参数中。此属性值不可为负数,其默认值为0。
Convert:转换数据格式。当指定该属性值为HTML_TO_URL时,意味着将HTML-encoded数据转成URL-encoded数据格式。如果是HTML_TO_TEXT,表示将HTML-encoded数据转成纯文字数据格式。
SaveLen:当找到匹配项后,偏移量之后的几个字元存储到参数中。此参数可有可无,默认值是-1,表示一直到结尾的整个字符串都存入参数中。