LoadRunner11脚本小技能之同步/异步接口分离+批量替换请求头
最近在公司又进行了一次LoadRunner11性能测试,技能又get了一点,继续Mark起来!!!
一、异步/同步接口分离
之前在另一篇博文中有提到“事务拆分”的小节,即一个html页面包含了很多个接口,录制完毕后还需我们手动进行事务拆分。以上录制是基于[录制选项-常规-录制-基于HTML的脚本]进行录制的。


此种操作不仅增加后续需要手动拆分事务的繁琐,还无法区分和统计同步、异步接口的平均响应时间;而在性能测试过程中,我们是需要区分统计同步、异步接口请求,才能正确统计整个事务的响应时间。
此处从测试角度来简单描述何为同步、异步接口:同步,即执行一个接口需等待结果返回才能执行下一个接口;异步,可同时执行多个接口,不需要等待上一个接口请求返回结果后才可继续往下执行下一接口请求。
因此,异步请求接口组中,仅需计算统计耗时最长的接口的平均响应时间即可。
举个例子:一个事务中包含11个接口请求,其中10个接口为异步接口,剩余一个为同步接口。假设每个接口的平均响应时间均为1秒。当不区分同步、异步接口时,该事务的平均响应时间为11秒;而区分同步、异步接口时,该事务的平均响应时间仅为2秒。由此可看出在性能测试过程中区分统计同步、异步接口请求来计算事务的平均响应时间的重要性。
而在LoadRunner11中,我们可在[录制选项-常规-录制]中设置“基于URL的脚本”进行录制,这样就可以在脚本中完成事务拆分(即请求URL不会重定向到HTML页面下)、同步/异步接口拆分的工作。

设置录制“基于URL的脚本”后,对应的录制脚本中会出现web_concurrent_start(NULL)、web_concurrent_end(NULL)函数,分别用来标记异步请求接口组的开始、结束。

因此截图中“信息自检”事务的平均响应时间仅需计算web_url("apply.html")+异步请求组中耗时最长的接口+web_submit_data("query.v_12")的平均响应时间之和。不过事务的平均响应时间不用我们手动去统计,压测之后在分析测试结果的概要报告中各事务已根据同步、异步情况自行统计。

二、Notepad批量替换请求头
同样是在另一篇博文中有提到“添加请求头”小节,但如何在众多的url类、submit类请求前添加批量替换添加,接下来将讲解如何使用Notepad进行批量替换请求头。
将脚本复制到Notepad中,使用快捷键Ctrl+F调出查找替换窗口,在[替换]页签下填写查找目标、替换内容,查找模式选择“扩展”,最后进行全部替换即可。

查找内容:LAST);\r\n\r\n #即查找内容为“LAST);”且其后换两行的内容,其中\r\n 表示一个换行
替换内容:LAST); \r\n\r\n web_add_header("access-token","{b}");\r\nweb_add_header("loginaware","true");\r\n #标红部分为要添加的请求头
替换后的结果:

以上完成了使用Notepad进行批量替换请求头,可自行检查脚本是否替换完整并复制粘贴到LoadRunner中执行验证即可。
LoadRunner11脚本小技能之同步/异步接口分离+批量替换请求头的更多相关文章
- LoadRunner11脚本小技能之添加请求头+定义变量+响应内容乱码转换打印+事务拆分
一.添加请求头 存在一些接口,发送请求时需要进行权限验证.登录验证(不加请求头时运行脚本,接口可能会报401等等),所以需要在脚本中给对应请求添加请求头.注意:请求头需在请求前添加,包含url类.su ...
- Pycharm小技巧--使用正则进行查找和批量替换
分享一个Pycharm中使用正则的分组匹配来进行批量替换的小技巧 例如,我现在需要把HTML文件中的静态文件得到路径全部替换为django模板引用路径的格式 修改为类似这样的格式: {% static ...
- .Net Core ----通过XUnit进行接口单元测试(带请求头及参数)并用output输出结果
最近在做core的接口单元测试,所以在这拿出来分享一下,添加XUnit的nuget包 话不多说,直接上代码了: 输出结果(需要的命名空间using Xunit.Abstractions;): ITes ...
- 【转载】高性能IO设计 & Java NIO & 同步/异步 阻塞/非阻塞 Reactor/Proactor
开始准备看Java NIO的,这篇文章:http://xly1981.iteye.com/blog/1735862 里面提到了这篇文章 http://xmuzyq.iteye.com/blog/783 ...
- shell脚本小案例
1.获取远程ftp数据到本地目录 #!/bin/bash ftp -n<<! open 135.0.24.19 user exchange exchange binary cd /idep ...
- {Python之进程} 背景知识 什么是进程 进程调度 并发与并行 同步\异步\阻塞\非阻塞 进程的创建与结束 multiprocess模块 进程池和mutiprocess.Poll
Python之进程 进程 本节目录 一 背景知识 二 什么是进程 三 进程调度 四 并发与并行 五 同步\异步\阻塞\非阻塞 六 进程的创建与结束 七 multiprocess模块 八 进程池和mut ...
- linux基础编程:IO模型:阻塞/非阻塞/IO复用 同步/异步 Select/Epoll/AIO(转载)
IO概念 Linux的内核将所有外部设备都可以看做一个文件来操作.那么我们对与外部设备的操作都可以看做对文件进行操作.我们对一个文件的读写,都通过调用内核提供的系统调用:内核给我们返回一个file ...
- js的同步异步
由于js没有多线程,所以处理多任务的时候,可以用异步回调来解决.js中setTimeout.setInterval.ajax(jq中可以选择同步或异步)均会开启异步.遇到异步模块,会将其推入值任务队列 ...
- 【面试】迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)
常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数据,然后使用适合的视图展示详情数据. 如果网速很慢,代码发起一个HTTP请求后,就卡住不动了,直到十几秒后才拿到HTT ...
随机推荐
- ABC 203 F - Weed (DP)
ABC203F - Weed 题意转述 S t e v e \rm Steve Steve 和 A l e x \rm Alex Alex 正在下界( N e t h e r l e n d \rm ...
- 1.5_HTML基础标签实战演练
基本的 HTML 标签 HTML 标题 HTML 标题(Heading)是通过 <h1> - <h6> 等标签进行定义的. <h1>This is a headin ...
- C#基础_枚举
一.在学习枚举之前,首先来听听枚举的优点. 1.枚举能够使代码更加清晰,它允许使用描述性的名称表示整数值. 2.枚举使代码更易于维护,有助于确保给变量指定合法的.期望的值. 3.枚举使代码更易输入. ...
- KingbaseFlySync 需要对外开放的端口
Oracle到kes双轨灾备场景 源:Oracle rac 11g 目标端:kes v8r6c4b21 源.目标.管控服务器IP 需要开放端口 为什么源和目标需要互相开放数据库端口:因为在双轨运行的方 ...
- python自动化测试系列教程
随着互联网产品更新迭代加快,Web 开发和测试的需求也越来越大.很难想象,如果阿里的双 11.京东的 618,这些庞大繁杂的系统,由工程师们一个个手动测试,将会是一个怎样费时费力.成本巨大的工程. 也 ...
- [报错]-RuntimeError: Input type (torch.cuda.HalfTensor) and weight type (torch.cuda.FloatTensor) should be the same
RuntimeError: Input type (torch.cuda.HalfTensor) and weight type (torch.cuda.FloatTensor) should be ...
- HCIA-STP原理与配置
STP协议生成树协议: 为了保证网络可靠,所以在组网时需要设置冗余链路和设备,从而在物理结构上形成结构,又因为交换机的工作特点导致二层网络中产生广播风暴和MAC地址表震荡现象,影响用户体验. 广播风暴 ...
- Prometheus样本采集器汇总
系统基本信息 Linux Servers: Exporter https://github.com/prometheus/node_exporter Dashboard https://grafana ...
- 一个C#开发者学习SpringCloud搭建微服务的心路历程
前言 Spring Cloud很火,很多文章都有介绍如何使用,但对于我这种初学者,我需要从创建项目开始学起,所以这些文章对于我的启蒙,帮助不大,所以只好自己写一篇文章,用于备忘. SpringClou ...
- ArrayList LinkedList Vector之间的区别
List主要有ArrayList,LinkedList和vector三种实现.这三种都实现了List接口,使用方式也很相似,主要区别在于其实现方式的不同! 这三种数据结构中,ArrayList和Vec ...