loadrunner学习笔记一

这篇笔记主要是针对一个具体的loadrunner脚本里面出现的方法进行解释,具体脚本如下:

Action()  
{  
	char *transactionName = "Test";
    char *response;
	char *request;
	int respLen = 0;

    web_reg_save_param("result",  
                       "LB=",  
                       "RB=",  
                       LAST);  
	lr_convert_string_encoding("",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"result");

    web_add_header("Content-Type",  "application/json");  
	web_add_header("Accept",  "application/json");
	lr_start_transaction(transactionName);
    web_custom_request("web_custom_request",  
        "URL=http://192.168.4.17:10010/employee/query_user_info",  
        "Method=POST",  
        "TargetFrame=",  
        "Resource=0",  
        "Referer=",  
        "Mode=HTTP",   
        "Body={\"countSql\":false,\"pageNum\":0,\"pageSize\":0,\"userName\":\"\"}",  
        LAST);  
	if (strstr(lr_eval_string("{result}"), "000000") != NULL) 
		{
		lr_end_transaction(transactionName, LR_PASS);
		} 
	else 
			{
			lr_end_transaction(transactionName, LR_FAIL);
			lr_log_message(lr_eval_string("{result}"));
			}
		lr_log_message(lr_eval_string("{result}"));  
		return 0;
	}  

下面针对上面脚本中出现的函数进行解释:

1. web_reg_save_param:

  • 作用:从响应结果里面获取指定的内容;
  • 用法:web_reg_save_param(“outFlightVal”,
    “LB=”, “RB=”, LAST );
  • 参数说明:
    a:LB表示左边界,RB表示右边界;
    b:这个是预注册函数,顾名思义。如果你要查找指定的字符内容,那么请放在你的请求之前。因为他是从http请求的响应结果里面去查找内容;
    c:请自行补充什么是HTTP请求 以及HTTP响应,有助于自己理解第2点内容;
    d:什么是左右边界,我们通过如下代码来进行演示: 比如说我们要获取‘nnMfhFk2-jzizMjXGdiGWSZu8j2sDj5TmDSw’这段内容, 左边界是:meta content=" 右边界是:“name= e:左右边界一定要是唯一的,这样才能帮我们唯一的找到这个值,否则返回的就是数组类型。

2. lr_convert_string_encoding:

  • 作用:字符串编码转换;
  • 用法:lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName);
  • 该函数有4个参数,含义如下:
    sourceString:被转换的源字符串
    fromEncoding:转换前的字符编码
    toEncoding:要转换成为的字符编码
    paramName:转换后的目标字符串
    常量和值的对应关系如下:
    ConstantValue
    LR_ENC_SYSTEM_LOCALENULL
    LR_ENC_UTF8NULL
    LR_ENC_UNICODE“ucs-2”

3. web_add_header:

  • 作用:用于添加指定的报文头到下一次HTTP请求;
  • 用法:web_add_header( const char *Header, const char *Content
    ),如:web_add_header(“name”, “xx”)。

4. lr_start_transaction与lr_end_transaction:

  • 作用:为使用最多的事物创造组合函数,lr_start_transaction为事物开始函数,lr_end_transaction为事物结束函数,并负责记录事物的运行时间;

    • 用法:
      int lr_start_transaction (const char * transaction_name);
      int lr_end_transaction (const char * transaction_name,int status);
    • 说明:transacton为事物名称,status为事物的结束状态,共有LR_PASS(通过)、LR_FAIL(失败)、LR_AUTO(自动)、 LR_STOP(暂停),其中LR_PASS默认的是LR_PASS,可以在事物结束前通过 lr_set_transaction_status进行修 改。如果在lr_end_transaction中没有指定结束事物状态是LR_AUTO,而是明确制定为LR_PASS、LR_FAIL、 LR_STOP其中的其中,则事物将以最后制定状态来结束。需 要注意,事物开始没有lr_end_transaction没有结束的时候,不能用相同的事 物名称,除非这个事物已经通过lr_end_transaction结束。

5. web_custom_request:

  • 详细说明查看这个说明:web_custom_request函数详解)

  • 语法:web_custom_request (const char *RequestName, ,[EXTRARES, ,] LAST );

    • 返回值:
      LR_PASS(0)代表成功
      LR_FAIL(1)代表失败。
  • 针对上面脚本中出现的参数进行解释:
    RequestName:步骤的名称,VuGen中树形视图中显示的名称。
    URL:请求地址
    Method:请求方法 POST or GET
    TargetFrame:当前链接或资源所在Frame的名称。 除了Frame的名字,还可以指定下面的参数:
    BLANK:打开一个空窗口。
    PARENT:把最新更改过的的Frame替换为它的上级。
    SELF:替换最新更改过的的Frame。
    TOP:替换整个页面。
    Resource:指示URL是否属于资源。1 是;0 不是。设置了这个参数后,RecContentType参数被忽略
    “Resource=1”:意味着当前操作与所在脚本的成功与否关系不大。在下载资源时如果发生错误,是当作警告而不是错误来处理的;URL是否被下载受“Run-Time Setting—Browser Emulation-- Download non-HTML resources” 这个选项的影响。此操作的响应信息是不做为HTML来解析的。
    “Resource=0” :表明此URL是重要的,不受发送请求(RTS)的影响,在需要时也会解析它。
    Mode:录制级别: HTML or HTTP.

6. strstr:

  • 定义:strstr(str1,str2),函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。
  • 定义说的有点羞涩难懂。举个例子就知道了,比如:
    char str2 = “cdef”;
    char str1 = “abcdefgh”;
    则通过函数,将返回
    strstr(str1,str2) = cdefgh;

    如果str1不包含有str2。
    char str2 = “cxef”;
    char str1 = “abcdefgh”;
    则通过函数,将返回
    strstr(str1,str2) = NULL;

7. lr_eval_string:

  • 函数的主要作用:返回脚本中的一个参数当前的值(从参数中取得对应的值,并且转换为一个字符串);
  • 格式:lr_eval_string("{参数名}");
  • 例如:lr_eval_string("{count}");

8. lr_log_message:

  • 作用:向应用程序管理代理日志文件或LoadRunner Vuser日志发送消息;
  • 用法:lr_log_message(const char * format,exp1,exp2,… expn。)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值