LoadRunner11脚本小技能之添加请求头+定义变量+响应内容乱码转换打印+事务拆分

一、添加请求头

存在一些接口,发送请求时需要进行权限验证、登录验证(不加请求头时运行脚本,接口可能会报401等等),所以需要在脚本中给对应请求添加请求头。注意:请求头需在请求前添加,包含url类、submit类请求。

	char *a="038f4201048a6319b4d2f538b2dd54d8";   
	lr_save_string( a,"b" );
	lr_output_message(lr_eval_string("{b}"));


	web_add_header("access-token","{b}");
	web_add_header("loginaware","true");

二、定义变量

上面提到添加请求头的问题,例如系统部署时配置需要经过网关做权限认证,才能正常登录访问系统,所以每个接口请求都需要添加请求头!如上图中,包含了access-token,这个token存在有效期,超过30分钟就会失效;当token失效时,运行脚本前就得拿新的token值替换掉脚本中失效的token,手动一个个替换的话很费时;这里可以通过定义变量进行引用解决!

如图,在脚本中各事务前定义变量a,并将字符串a赋值给b,并在后续的脚本的请求头中引用b的值;通过定义变量,后续当token失效时,只需替换变量a中的值即可。

1 char *a="1b284eb3ec923775528440a631af5868";   #定义变量a
2 lr_save_string( a,"b" );                      #使用lr_save_string()将以""结束的字符串(a)保存到参数b中
3 lr_output_message(lr_eval_string("{b}"));     #lr_eval_string()  所有出现参数b的地方用它的当前值来代替;lr_output_message() 打印函数,打印b的值

三、响应内容乱码转换为中文

前几篇文章有提到过LoadRunner11接口响应内容乱码的问题,当插入检查点时,在日志中就无法判断检查结果是否符合预期结果。因此可以将查找的乱码内容转换为中文并打印,可在日志中直接看到真实结果。

 文本检查点技巧相关知识请查阅另一篇博文,此处不过多描述,仅提供乱码内容转换为中文的代码:

 1 //将查找目标转为utf8编码,放在变量test_find中
 2     lr_convert_string_encoding( "鍒樻絿娼",
 3         LR_ENC_UTF8,
 4         LR_ENC_SYSTEM_LOCALE,
 5         "text_find" );
 6 
 7 //将test_find内容变为string,存在变量find中
 8     lr_save_string( lr_eval_string("{text_find}"),"find" );
 9 
10 //打印变量find的值
11     lr_output_message("检查点乱码内容转译 = %s", lr_eval_string("{find}"));

实际运行结果:

四、事务拆分

有时录制脚本,一个事务可能会出现在它的重定向页面中,脚本中没能体现,如下图,一个html页面包含了很多个接口:

为了查看该页面的每一个接口的具体响应时间,需要将页面下的每一个接口进行拆分,具体代码如下:

    web_custom_request("query.v",
                       "URL=http://ip+端口/请求URL",
                       "Method=GET",
                       "Resource=0",
                       "Referer=",
                       "Snapshot=t1.inf",
                       "Mode=HTTP",
                       "EncType=text/html;charset=UTF-8",
                       "Body=",
                       LAST);

五、备注

1、定义的变量的是全局的,只需要定义一个即可;

2、 output_message调试脚本时才使用,压测时需注释;

3、init-action-end场景运用。action才加事务;

4、每个场景脚本,均需要有退出,否则有可能出现某些用户无法再测登录的情况;

5、无关的关联需删除,会消耗资源和性能;

原文地址:https://www.cnblogs.com/dnjiang/p/12532737.html