最近在公司又进行了一次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. KingbaseES V8R6 ksql 关闭自动提交

    背景 用过oracle或mysql的人都知道,做一个dml语句,如果发现做错了,还可以rollback,但在Kingbase ksql 中,如果执行一个dml,没有先运行begin; 的话,一执行完就 ...

  2. bfile 类型数据的存取

    KingbaseES 支持 bfile 数据类型.对于bfile ,实际数据是存储在操作系统上,数据库存储的只是指向文件的指针. 具体例子如下: test=# create directory BFI ...

  3. KingbaseES 如何查看应用执行的SQL的执行计划

    通过explain ,我们可以获取特定SQL 的执行计划.但对于同一条SQL,不同的变量.不同的系统负荷,其执行计划可能不同.我们要如何取得SQL执行时间点的执行计划?KingbaseES 提供了 a ...

  4. Android开发2021.3.9日【模拟器路径】【外观字体】【简单快捷键】

    一. 1.模拟器存储路径 D:\Android\SDK\platforms(在本人的dell上) 2.使用软件 Android Studio4.2 3.注意事项 (1)修改JDK的路径为自己下载的JD ...

  5. 基于深度学习的文本分类案例:使用LSTM进行情绪分类

    Sentiment classification using LSTM 在这个笔记本中,我们将使用LSTM架构在电影评论数据集上训练一个模型来预测评论的情绪.首先,让我们看看什么是LSTM? LSTM ...

  6. CentOS 7.x 升级OpenSSH

    升级SSH 存在中断风险,如果SSH 升级失败将会导致终端无法登录,建议在使用本地虚拟机进行测试后对线上生产环境进行升级操作!!! 三级等保评测中对主机进行漏洞扫描发现linux主机存在高危漏洞,查看 ...

  7. flask+gunicorn+nginx部署

    安装nginx和gunicorn yum install nginx pip3 install gunicorn flask项目配置 #main.py from flask import Flask ...

  8. 19. Fluentd输入插件:in_http用法详解

    in_http插件允许使用HTTP协议来采集日志事件.这个插件会建立一个支持REST风格的HTTP端点,来接收日志事件请求. 配置示例 <source> @type http port 9 ...

  9. 初试 Centos7 上 Ceph 存储集群搭建

    转载自:https://cloud.tencent.com/developer/article/1010539 1.Ceph 介绍 Ceph 是一个开源的分布式存储系统,包括对象存储.块设备.文件系统 ...

  10. 洛谷P5788 单调栈(模板)

    1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=3e6+10; 4 int n,a[N],s[N],ans[N ...