一、添加请求头

存在一些接口,发送请求时需要进行权限验证、登录验证(不加请求头时运行脚本,接口可能会报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. MixCSE:困难样本在句子表示中的使用

    Unsupervised Sentence Representation via Contrastive Learning with Mixing Negatives 论文地址:https://www ...

  2. Python代码用在这些地方,其实1行就够了!

    摘要:都说 Python 简单快捷,那本篇博客就为大家带来一些实用的 Python 技巧,而且仅需要 1 行代码,就可以解决一些小问题. 本文分享自华为云社区<你猜 1 行Python代码能干什 ...

  3. KingbaseES V8R6单实例外部备份故障案例

    案例说明: 在KingbaseES V8R6单实例环境,配置外部备份服务器使用sys_backup.sh物理备份时,出现以下"WAL segment xxx was not archived ...

  4. K8S_删除Pod总结

    K8S 不能直接删除Pod,直接删除Pod,会被Deployment重启 删除前,必须先删除对应的Deployment 例子: // 查出Pod [root@k8s-master ~]# kubect ...

  5. Pytorch: repeat, repeat_interleave, tile的用法

    https://zhuanlan.zhihu.com/p/474153365 torch.repeat 使张量沿着某个维度进行复制, 并且不仅可以复制张量,也可以拓展张量的维度: import tor ...

  6. K8S概念理解

    Master 负责管理集群 负责协调集群中的所有活动,例如调度应用程序,维护应用程序的状态,扩展和更新应用程序. Worker节点是VM(虚拟机)或物理计算机,充当k8s集群中的工作计算机. 每个Wo ...

  7. Elasticsearch:Elasticsearch HQ 介绍

  8. useContext 解决函数父子组件传值

    1在父组件外部定义变量A创建上下文,2在父组件使用变量A<A.Provider> <子组件/> </A.Provider> ,3.在子组件中创建变量使用useCon ...

  9. PAT (Basic Level) Practice 1017 A除以B 分数 20

    本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数.你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立. 输入格式: 输入在一行中依次给出 A 和 B,中间以 ...

  10. 为Azure-云准备一个基于Red Hat 8.x 的虚拟机镜像

    由于公司最近要求部分项目上线到Azure云上,要求操作系统使用的Redhat 8.x,而且必须加固 而在Azure官网提供的镜像中,又没有Redhat,于是只有自己自定义Redhat镜像,最后加固,作 ...