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、无关的关联需删除,会消耗资源和性能;
LoadRunner11脚本小技能之添加请求头+定义变量+响应内容乱码转换打印+事务拆分的更多相关文章
- LoadRunner11脚本小技能之同步/异步接口分离+批量替换请求头
最近在公司又进行了一次LoadRunner11性能测试,技能又get了一点,继续Mark起来!!! 一.异步/同步接口分离 之前在另一篇博文中有提到"事务拆分"的小节,即一个htm ...
- urllib2 post请求方式,带cookie,添加请求头
#encoding = utf-8 import urllib2import urllib url = 'http://httpbin.org/post'data={"name": ...
- springcloud- FeginClient 调用统一拦截添加请求头 RequestInterceptor ,被调用服务获取请求头
使用场景: 在springcloud中通过Fegin调用远端RestApi的时候,经常需要传递一些参数信息到被调用服务中去,比如从A服务调用B服务的时候, 需要将当前用户信息传递到B调用的服务中去,我 ...
- iOS UIWebview添加请求头的两种方式
1.在UIWebviewDelegate的方法中拦截request,设置request的请求头,废话不多说看代码: - (BOOL)webView:(UIWebView *)webView shoul ...
- WKWebView单个界面添加请求头
https://www.jianshu.com/p/14b9ea4bf1d4 https://github.com/Yeatse/NSURLProtocol-WebKitSupport/blob/ma ...
- Django(十一)请求生命周期之响应内容(请求/响应 头/体)
https://www.cnblogs.com/renpingsheng/p/7534897.html Django请求生命周期之响应内容 http提交数据的方式有"post",& ...
- php设置http请求头信息和响应头信息
php设置http请求头信息和响应头信息 设置请求服务器的头信息可以用fsockopen,curl组件,header函数只能用来设置客户端响应的头信息,不能设置服务器的头信息. 例子; 一.head ...
- Retrofit2 动态(静态)添加请求头Header
Retrofit提供了两个两种定义HTTP请求头字段的方法即静态和动态.静态头不能改变为不同的请求,头的键和值是固定的且不可改变的,随着程序的打开便已固定. 动态添加 @GET("/&quo ...
- 前端必备HTTP技能之HTTP请求头响应头中常用字段详解(转)
作为一名前端开发人员,肯定少不了要和网络打交道,因为要从服务器端拉取数据,从服务端获取数据最常用的方式还是通过HTTP请求.给服务器发请求的时候有请求头,接受服务器响应的时候有响应头,客户端和服务器端 ...
随机推荐
- SpringMvc请求流程源码解析
目录 SpringMvc请求流程图 请求流程粗讲解 方法细讲 doDispatcher --> 核心 找到Handler#getHandler getHandler(request) mappi ...
- KingbaseES sys_blocking_pids 函数
会话出现了锁等待,想要快速查询到堵塞的会话,可以使用 sys_blocking_pids 函数来实现这一目的. sys_blocking_pids:获取哪些会话阻塞了某个会话(输入参数). sys_b ...
- KingbaseES R3 集群一键修改集群用户密码案例
案例说明: 在KingbaseES R3集群的最新版本中增加了kingbase_monitor.sh一键修改集群用户密码的功能,本案例是对此功能的测试. kingbaseES R3集群一键修改密码说明 ...
- Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):3、Maven独立插件安装与settings.xml配置
文章目录: Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1.JIRA账号注册 Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2.PGP ...
- 使用Pipeline抽象业务生命周期流程
上篇关于流程引擎的文章还是快两年以前的<微服务业务生命周期流程管控引擎>,这中间各种低代码平台层出不穷,虽然有些仅仅是OA+表单的再度包装,但有些的确是在逻辑和操作单元层面进行了真正的高度 ...
- c#中容易被忽视的foreach
有句俗语:百姓日用而不知.我们c#程序员很喜欢,也非常习惯地用foreach.今天呢,我就带大家一起探索foreach,走,开始我们的旅程. 一.for语句用的好好的,为什么要提供一个foreach? ...
- 从 Hadoop 到云原生, 大数据平台如何做存算分离
Hadoop 的诞生改变了企业对数据的存储.处理和分析的过程,加速了大数据的发展,受到广泛的应用,给整个行业带来了变革意义的改变:随着云计算时代的到来, 存算分离的架构受到青睐,企业开开始对 Hado ...
- Linux下以tar包的形式安装mysql8.0.28
Linux下以tar包的形式安装mysql8.0.28 1.首先卸载自带的Mysql-libs(如果之前安装过mysql,要全都卸载掉) rpm -qa | grep -i -E mysql\|mar ...
- (一)JPA的快速入门
JPA简介 JPA是什么 JPA 是Java Persistence API的缩写,是一套由Java官方制定的ORM标准.当制定这套标准以后,市场上就出现很多JPA框架.如:OpenJPA(apach ...
- Nginx反代服务器基础配置实践案例
转载自:https://www.bilibili.com/read/cv16149433?spm_id_from=333.999.0.0 方式1: 轮询 RR(默认轮询)每个请求按时间顺序逐一分配到不 ...