最近发现很多人对loadrunner的关联使用总是一头雾水,所以这次准备对关联的学习做出一些简单的总结。
1、什么是关联?
当请求服务器时,返回了动态变化的值,并需要将这个动态变化的值回传给服务器作为校验时,需要通过关联函数所定义的左右边界值,在服务器所返回的响应内容中查找并得到所需要的值,以参数的形式替换脚本中的静态值,从而向服务器发出获取到的数据用以通过验证,这种动态获得服务器响应内容的方法被称作关联。
2、怎样写关联?
首先需要了解,loadrunner中reg函数都是预注册函数,类似的预注册函数还有检查点(web_reg_find)等,预注册函数会在拿到服务器返回的请求前声明关联函数用来获取下一个请求的返回值中所需要的数据。并且需要注意,关联函数只会在下一个请求中生效,也就是只会从下一个请求中捕获数据,到了第二个请求便不会再生效。如果同一个参数在业务流程中会有多个不同值并需要使用,则需要多次获取并使用不同的参数名称。
常用的关联函数有两种,分别是web_reg_save_param、web_reg_save_param_ex,这两个关联函数的区别在于web_reg_save_param_ex可以在左右边界值中使用正则表达式。
代码讲解:
web_reg_save_param("test", "LB= type=\"text\" value=\"", "RB=\" ", "NotFound=ERROR", "Search=All", LAST);
参数说明:
ParamName: 关联函数的参数名称,在调用获取的值时使用该参数名称调用。
Notfound: 当在返回信息中找不到要找的内容时应该怎么处理。 error: 当在返回信息中找不到要找的内容时,发出一个错误讯息。这是缺省值。 warning: 当在返回信息中找不到要找的内容时,只发出警告,脚本也会继续执行下去不会中断。
LB( Left Boundary ) : 返回信息的左边界字串。该属性必须有,并且区分大小写。
RB( Right Boundary ): 返回信息的右边界字串。该属性必须有,并且区分大小写。
Search : 返回信息的查找范围。可以是Headers,Body,Noresource,All(缺省)。该属性质可有可无。
ORD : 说明第几次出现的左边界子串的匹配项才是需要的内容。该属性可有可无,缺省值是1。如为All,则将所有找到的内容储存起来。
3、关联应该放在哪里?
前面也曾提到过,关联函数会从服务器返回的动态的结果中按照左右边界值去提取出规则设定的数据并存入设置的变量名中,所以当服务器返回的结果中有动态的数据时并且该数据会作为校验使用时需要在这个请求的前设置好关联函数。由于关联函数是预注册函数,所以需要将关联函数放置在返回动态数据的请求前,而不是放置在调用该函数的请求前。
4、关联应该怎样调用?
其实很简单,关联函数的调用与参数化的调用方式一样,将需要调用关联函数的值的地方使用{ParamName} 来替换固定值,这样便会在执行脚本时将取到的值在这里直接调用。