最近在公司又进行了一次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脚本小技能之同步/异步接口分离+批量替换请求头的更多相关文章

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

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

  2. Pycharm小技巧--使用正则进行查找和批量替换

    分享一个Pycharm中使用正则的分组匹配来进行批量替换的小技巧 例如,我现在需要把HTML文件中的静态文件得到路径全部替换为django模板引用路径的格式 修改为类似这样的格式: {% static ...

  3. .Net Core ----通过XUnit进行接口单元测试(带请求头及参数)并用output输出结果

    最近在做core的接口单元测试,所以在这拿出来分享一下,添加XUnit的nuget包 话不多说,直接上代码了: 输出结果(需要的命名空间using Xunit.Abstractions;): ITes ...

  4. 【转载】高性能IO设计 & Java NIO & 同步/异步 阻塞/非阻塞 Reactor/Proactor

    开始准备看Java NIO的,这篇文章:http://xly1981.iteye.com/blog/1735862 里面提到了这篇文章 http://xmuzyq.iteye.com/blog/783 ...

  5. shell脚本小案例

    1.获取远程ftp数据到本地目录 #!/bin/bash ftp -n<<! open 135.0.24.19 user exchange exchange binary cd /idep ...

  6. {Python之进程} 背景知识 什么是进程 进程调度 并发与并行 同步\异步\阻塞\非阻塞 进程的创建与结束 multiprocess模块 进程池和mutiprocess.Poll

    Python之进程 进程 本节目录 一 背景知识 二 什么是进程 三 进程调度 四 并发与并行 五 同步\异步\阻塞\非阻塞 六 进程的创建与结束 七 multiprocess模块 八 进程池和mut ...

  7. linux基础编程:IO模型:阻塞/非阻塞/IO复用 同步/异步 Select/Epoll/AIO(转载)

      IO概念 Linux的内核将所有外部设备都可以看做一个文件来操作.那么我们对与外部设备的操作都可以看做对文件进行操作.我们对一个文件的读写,都通过调用内核提供的系统调用:内核给我们返回一个file ...

  8. js的同步异步

    由于js没有多线程,所以处理多任务的时候,可以用异步回调来解决.js中setTimeout.setInterval.ajax(jq中可以选择同步或异步)均会开启异步.遇到异步模块,会将其推入值任务队列 ...

  9. 【面试】迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)

    常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数据,然后使用适合的视图展示详情数据. 如果网速很慢,代码发起一个HTTP请求后,就卡住不动了,直到十几秒后才拿到HTT ...

随机推荐

  1. 【MySQL】从入门到精通7-设计多对多数据库

    上期:[MySQL]从入门到精通6-MySQL数据类型与官方文档 第一章:理解 和一对多不一样,多对多意思是,一个数据可以被不同的数据关联. 如果是一对多,我们还可以用外键来达成. 但是现在我们是多对 ...

  2. 华南理工大学 Python第5章课后小测-1

    1.(单选)以下哪个函数的定义是错误的?(本题分数:2)A) def vfunc(a,b=2):B) def vfunc(a,b):C) def vfunc(a,*b):D) def vfunc(*a ...

  3. linux下安装mysql(rpm安装)

    Mysql 5.7.29安装步骤 1.首先卸载自带的Mysql-libs(如果之前安装过mysql,要全都卸载掉) rpm -qa | grep -i -E mysql\|mariadb | xarg ...

  4. 2020年12月-第02阶段-前端基础-CSS Day06

    CSS Day06 定位(position) 理解 能说出为什么要用定位 能说出定位的4种分类 能说出四种定位的各自特点 能说出我们为什么常用子绝父相布局 应用 能写出淘宝轮播图布局 1. CSS 布 ...

  5. K8s nginx-ingress 如何配置二级目录转发远程静态服务器基于Vue路由history模式打包的应用程序

    背景 首先这标题有点绕,我先解释下: 首先我们有静态服务器,上面某个目录有Vue路由history模式打包的应用程序(也就是build后的产物): 但是静态服务器一般不做对外域名用的,我们需要在k8s ...

  6. Java SE 代码块

    1.代码块 基本语法 [修饰符]{ 代码 }; 修饰符 可选,要写的话,也只能写 static 代码块分为两类,使用static修饰的叫静态代码块,没有static修饰的,叫普通代码块/非静态代码块 ...

  7. 阿里云服务器如何使用phpmailer发送邮件

    原因是因为阿里云把25端口给禁用了,所以,普通方式发送不了,解决办法就是在阿里云安全组中把465端口打开,然后再才能发送邮件.亲测成功,贴出引用代码 function emailTo($user,$c ...

  8. LVGL 虚拟键盘使用

    一.使用例程 二.使用方式 函数的详细说明请看 lv_keyboard.h 文件 创建对象 lv_obj_t * lv_keyboard_create(lv_obj_t * parent); lv_o ...

  9. 深度剖析Istio共享代理新模式Ambient Mesh

    摘要:今年9月份,Istio社区宣布Ambient Mesh开源,由此引发国内外众多开发者的热烈讨论. 本文分享自华为云社区<深度剖析!Istio共享代理新模式Ambient Mesh>, ...

  10. Prometheus 监控 Kubernetes Job 资源误报的坑

    转载自:https://www.qikqiak.com/post/prometheus-monitor-k8s-job-trap/ 昨天在 Prometheus 课程辅导群里面有同学提到一个问题,是关 ...