一、添加请求头

存在一些接口,发送请求时需要进行权限验证、登录验证(不加请求头时运行脚本,接口可能会报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、无关的关联需删除,会消耗资源和性能;

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

  1. LoadRunner11脚本小技能之同步/异步接口分离+批量替换请求头

    最近在公司又进行了一次LoadRunner11性能测试,技能又get了一点,继续Mark起来!!! 一.异步/同步接口分离 之前在另一篇博文中有提到"事务拆分"的小节,即一个htm ...

  2. urllib2 post请求方式,带cookie,添加请求头

    #encoding = utf-8 import urllib2import urllib url = 'http://httpbin.org/post'data={"name": ...

  3. springcloud- FeginClient 调用统一拦截添加请求头 RequestInterceptor ,被调用服务获取请求头

    使用场景: 在springcloud中通过Fegin调用远端RestApi的时候,经常需要传递一些参数信息到被调用服务中去,比如从A服务调用B服务的时候, 需要将当前用户信息传递到B调用的服务中去,我 ...

  4. iOS UIWebview添加请求头的两种方式

    1.在UIWebviewDelegate的方法中拦截request,设置request的请求头,废话不多说看代码: - (BOOL)webView:(UIWebView *)webView shoul ...

  5. WKWebView单个界面添加请求头

    https://www.jianshu.com/p/14b9ea4bf1d4 https://github.com/Yeatse/NSURLProtocol-WebKitSupport/blob/ma ...

  6. Django(十一)请求生命周期之响应内容(请求/响应 头/体)

    https://www.cnblogs.com/renpingsheng/p/7534897.html Django请求生命周期之响应内容 http提交数据的方式有"post",& ...

  7. php设置http请求头信息和响应头信息

    php设置http请求头信息和响应头信息 设置请求服务器的头信息可以用fsockopen,curl组件,header函数只能用来设置客户端响应的头信息,不能设置服务器的头信息. 例子;  一.head ...

  8. Retrofit2 动态(静态)添加请求头Header

    Retrofit提供了两个两种定义HTTP请求头字段的方法即静态和动态.静态头不能改变为不同的请求,头的键和值是固定的且不可改变的,随着程序的打开便已固定. 动态添加 @GET("/&quo ...

  9. 前端必备HTTP技能之HTTP请求头响应头中常用字段详解(转)

    作为一名前端开发人员,肯定少不了要和网络打交道,因为要从服务器端拉取数据,从服务端获取数据最常用的方式还是通过HTTP请求.给服务器发请求的时候有请求头,接受服务器响应的时候有响应头,客户端和服务器端 ...

随机推荐

  1. Spring(四)-声明式事务

    Spring-04 声明式事务 1.事务的定义 事务就是由一组逻辑上紧密关联的多个工作单元(数据库操作)而合并成一个整体,这些操作要么都执行,要么都不执行. 2.事务的特性:ACID 1)原子性A : ...

  2. 关于python文件写入问题

    第一种.用for循环不断打开文件写入关闭 测试代码数据如下: import time begin = time.perf_counter() def a(f, lis): f.write(lis + ...

  3. Linux之博客系统的搭建

    博客系统 三种配置:php+nginx+mysql 搭建步骤 改主机名 hostnamectl set-hostname lnmp 传入LNMP压缩包于root下(略) 配置网络(略)及yum源 先检 ...

  4. 数据库基础操作 part1

    初识数据库 数据库相关概念 数据库管理软件: 本质就是一个C/S架构的套接字程序 服务端套接字 客户端套接字 操作系统: Linux 操作系统: 随意 计算机(本地文件) 计算机硬件 应用流程: 服务 ...

  5. KingbaseES 约束

    目录 什么是约束 如何定义约束 列约束 表约束 为约束创建名称 默认约束名称 自定义约束名称 KingbaseES 的可用约束列表 CHECK约束 非空约束 UNIQUE约束 PRIMARY KEY约 ...

  6. .NET 反向代理-YARP

    什么是 YARP YARP (另一个反向代理) 设计为一个库,提供核心代理功能,你可以根据应用程序的特定需求进行自定义. YARP 是使用 .NET的基础架构构建在 .NET上的.YARP 的主要不同 ...

  7. 【ajax】发送请求 —— 结合【express】框架 { }

    1.先用 express 框架搭建一个简单的服务器 (1)在文件夹上点击右键,点击"在集成终端中打开" (2)使用"npm i express"命令安装[exp ...

  8. Dapr 的 gRPC组件 (又叫可插拔组件) 的提案

    Dapr 在1.9 版本中的提案,计划在 Dapr Runtime 中组件采用 外部 gRPC 组件: https://github.com/dapr/dapr/issues/3787 ,针对这个 g ...

  9. IDEA 修改注释的颜色

  10. 【java8新特性】02:常见的函数式接口

    Jdk8提供的函数式接口都在java.util.function包下,Jdk8的函数式类型的接口都有@FunctionInterface注解所标注,但实际上即使没有该注解标注的有且只有一个抽象方法的接 ...