LoadRunner F  web_concurrent_start和web_concurrent_end
  web_concurrent_start
  语法:
  int web_concurrent_start ( [char * ConcurrentGroupName,]NULL );
  参数:
  ConcurrentGroupName:可选的,并发组的标识符。
  NULL:参数列表结束的标记符。
  返回值:
  整型,返回LR_PASS (0)表示成功,返回LR_FAIL(1)表示失败。
  web_concurrent_end
  语法:
  int web_concurrent_end ( reserved );
  参数:
  reserved:保留的供扩展的字段。
  返回值
  整型。返回LR_PASS (0)表示成功,返回LR_FAIL(1)表示失败。
  说明
  web_concurrent_start函数是并发组开始的标记。web_concurrent_end,并发组结束的标记。在并发组中的函数不是立即执行的。在并发组开始时,所有的函数首先被记录下来,当并发组结束时,所有的函数并发执行。脚本执行时,碰到 web_concurrent_end函数时,开始并发执行所有记录的函数。
  在并发组中,可以包含的函数有:web_url、web_submit_data、web_custom_request、web_create_html_param、web_create_html_param_ex、web_reg_save_param、web_add_header。
  URL-based 方式将每条客户端发出的请求录制成一条语句,对LoadRunner来说,在该模式下,一条语句只建立一个到服务器的连接,LoadRunner提供了web_concurrent_start和web_concurrent_end函数模拟HTML-based的工作方式
  LoadRunner变量
  Loadrunner变量分为局部变量和全局变量。
  1. 如何定义变量
  在Loadrunner脚本中变量必须在开头声明。比如说,在vuser_init、Action、vuser_end定义变量,必须现在顶端生命,后面才能使用。如果不这样,编译器是通不过的。
  2. 局部变量
  像C语言一样,变量有作用域范围,局部变量包含在函数或者vuser_init、Action、vuser_end内部,对于其他范围之外不起作用了。
  3. 全局变量
  若要跨越vuser_init、Action、vuser_end定义变量,则需要定义全局变量。在Loadrunner的脚本录制时,会生成一个globals.h文件,在这里定义的变量相当于Loadrunner脚本的全局变量,可以在vuser_init、Action、vuser_end中被使用。例子:
#ifndef _GLOBALS_H
#define _GLOBALS_H
//-------------------------------------------------------------------
// Include Files
#include "lrun.h"
#include "web_api.h"
#include "lrw_custom_body.h"
//定义全局变量char * str="This is a test";
//-------------------------------------------------------------------
// Global Variables#endif // _GLOBALS_HAQ