是重要的,不受发送请求(RTS)的影响,在需要时 也会解析它。
5. RecContentType:录制脚本时响应头的内容类型。例如text/html、
application/x-javascript等。
6. Referer:当前页面关联的页面。如果已经显式指定了url的地址,此项可以省略。 7. EncType:编码类型。
8. Mode:两种录制级别HTML、HTTP。HTML级别--在当前Web界面上录制直观的HTML动作。
以一步步的web_url、web_link、 web_image、web_submit_form来录制这些动作。VuGen仅仅录制返回HTML页面的请求,不处理脚本和应用程序。HTTP级别 --VuGen把所有的请求录制为web_url指令,不生成web_link、web_image、web_submit_form这些函数。这种方法 更为灵活,但是生成的脚本不够直观。
9. Body:请求体。不同的应用中,请求体分别通过Body、BodyBinary或者BodyUnicode
参数来传递。请求体可以只使用其中一个参数,也可以使用一连串的分开的参数组成多请求体。
web_submmit_data
web_submit_data函数处理无状态或者上下文无关的表单提交。它用来生成表单的GET或POST请求,这些请求与Form自动生成的请求是一样的。发送这些请求时不需要表单上下文。 例:
web_submit_data(\
\\\
\
\\\ITEMDATA,
\\
\
16/ 33
13D3D\
\LAST);
1. Action:Form中的ACTION属性,指定了完成Form中的操作用到的URL。 2. Method:表单提交方法:POST或GET(默认是POST)。 3. ITEMDATA:数据域和属性的分隔符。
web_reg_save_param
关联(correlation):脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。也是把脚本中某些写死的数据,转变成动态的数据。
intweb_reg_save_param(const char *ParamName, , LAST); 1. ParamName: 存放得到的动态内容的参数名称
2. LB( Left Boundary ) : 返回信息的左边界字串。该属性必须有,并且区分大小写 3. RB( Right Boundary ): 返回信息的右边界字串。该属性必须有,并且区分大小写 例:
lr_start_transaction
lr_start_transaction 函数标记事务的开始。要指明要分析的事务,请使用函数 lr_start_transaction 和lr_end_transaction。应紧接事务前后插入这些函数。 定义:
intlr_start_transaction ( const char * transaction_name ); 例子:
lr_start_transaction(\
17/ 33
web_reg_save_param(\
\ \ LAST);
lr_end_transaction
lr_end_transaction函数标记事务的结束,并录制执行事务所用的时间量。要指明希望分析的事务,请在事务之前放置lr_start_transaction函数,并在事务之后放置lr_end_transaction函数。 定义:
intlr_end_transaction (const char * transaction_name, int status ) ; 例子:
lr_end_transaction(\lr_end_transaction(\lr_end_transaction(\
lr_eval_string
lr_eval_string函数在评估任何嵌入的参数之后返回输入字符串。如果字符串实参 (argument) 只包含一个形参 (parameter),该函数返回形参的当前值。
这个函数主要用来取出某个参数的值。在Loadrunner中,对于参数替换,是无法在除了操作函数以外直接使用参数的,必须将参数放入这个函数才能表示该参数的值。 定义:
char * lr_eval_string (const char * instring ); 例子:
begin_time= lr_eval_string(\取出时间参数在本次迭代的值,并存入begin_time
lr_save_string
lr_save_string函数将指定的以 null 终止的字符串赋给参数。该函数可用于关联查询。要确定参数值,请使用函数lr_eval_string。
这个参数跟lr_eval_string正好相反,是将某个值存入参数当中,以在消息中使用该参数。 定义:
intlr_save_string (const char *param_value, const char *param_name); 例子:
begin_time= lr_eval_string(\
18/ 33
lr_save_string(begin_time,\
这里需要解释下,这样用的原因。因为TIME参数设置的是每次出现都做一次更新,每次调用TIME参数都会返回不同的值,为了使用最初的TIME值,则必须将TIME参数值取出来以后保存在另一个参数当中。 trcmp
比较string1 和string2 以确定字母排序的次序。字符串比较只能使用该函数,而不能直接用“==”进行比较。 定义:
intstrcmp ( const char *string1, const char *string2 ); 例子:
if (strcmp(lr_eval_string(\web_reg_find
该函数的作用是“在缓存中查找相应的内容”,常用参数及含义如下: web_reg_find(\定义查找范围 \定义查找计数变量名称 \定义查找内容 LAST);
注意点及使用技巧:该函数写在要查找内容的请求之前,通常情况下写在如下六个函数之前: web_castom_request();web_image();web_link();web_submit_data();web_submit_form();web_url();在该函数的参数中有个“SaveCount”,该参数可以记录在缓存中查找内容出现的次数,我们可以使用该值,来判断要查找的内容是否被找到。
if (atoi(lr_eval_string(\判断如果aaaa字符串出现次数大于0 lr_output_message(\在日志中输出Log on successful else{ //如果出现次数小于等于
lr_error_message(\在日志中输出Log on failed return(0); }
19/ 33
8.压测场景设置
8.1 增加负载生成器
1.点击
2.点击“Add”按钮,并输入添加负载生成器的地址
3.选择新添加的负载生成器,点击Connect按钮
20/ 33