JMeter转制LoadRunner HTTP协议脚本的小技巧
对于Http协议的请求,除了手工编写脚本外,JMeter还提供了录制浏览器操作的功能,甚是方便。那如果手头有一堆HTTP协议的LoadRunner脚本,能不能比较快速的转制成JMeter脚本呢?其实也是可以的,只要借助JMeter的录制功能就可以。
首先LoadRunner脚本要能正常运行。以如下的一个简单的两次交互的脚本为例。
如上脚本包含三个请求,分为两个事务。
下面我们就开始利用JMeter的HTTP(S) Test Script Recorder组件进行LoadRunner脚本的转制。
1 JMeter准备工作
首先在TestPlan上右键Add->Non-Test Elements->HTTP(S) Test Script Recorder,增加测试脚本记录器。
在HTTP(S) Test Script Recorder上右键Add->Listener->View Results Tree,以便在录制的时候查看结果。
在TestPlan上右键Add->Threads(Users)->ThreadGroup,用来保存录制的脚本。
在ThreadGroup上右键Add->Logic Controller->Recording Controller,用来从Test Script Recorder处接收脚本。
这四项添加完后,JMeter的左侧树状结构如下
修改HTTP(S)
Test Script Recorder组件的属性,Port端口选择一个本机没有被占用的端口,启动JMeter的代理服务器使用;Target
Controller选择我们添加的Test Plan -> Thread Group -> Recording
Controller,JMeter抓取到的脚本将存放在这个位置;Grouping选择Put each group in a new
transaction controller,这个选项可以使JMeter将我们在录制时设定的Transaction
name作为父节点,每个http请求会自动挂到我们设定的父节点下,使脚本的结构更加清晰;HTTP Sampler
settings处选择Transaction
name,则录制到的每一个http请求的name会使用$自增编号+TransactionName的方式进行命名。
如上设置好之后,点击Start,首先会出现CA证书的相关信息。
点击OK后,就会出现录制的事务控制界面(Recorder: Transactions Control),实际录制时,我们可以在这个界面填入事务名称,是脚本的结构更加清晰明确。
至此,JMeter的准备工作已经完成,下面开始LR的相关配置。
2 LoadRunner准备工作
首先确定LoadRunner脚本只执行一次,不要运行多次迭代,以免录制的时候录制太多次。F4键打开LoadRunner的Run-time Settings,选择Run Logic,确保Number of Iterations是1。
再修改Proxy属性,将代理设置为本机127.0.0.1,端口设置为我们上一步在JMeter中配置的端口。
在脚本中设置合适的断点,一般在每个事务开始的地方设置断点,这样LoadRunner运行停止到断点暂停后,我们可以在JMeter的事务控制界面处更换新的事务名称。如下图,我们在“学校简介”这个事务处设置了断点。
3 开始实际录制
经过如上两个步骤,我们已经把准备工作都做完了。下面开始实际的录制工作。
首先在JMeter的Transactions Control上填入我们的第一个事务的名称。
然后开始运行LoadRunner(F5快捷键),当LoadRunner运行到断点暂停后
修改JMeter的事务名称,之后点击LoadRunner继续运行。
本次我们转制的LoadRunner脚本只有两个事务,如果脚本步骤比较多,那就如初循环,直到将所有的脚本操作录制完成。最后点击JMeter事务控制界面的Stop按钮,完成录制工作。
如果大家录制成功,那应该会看到类似如下的界面,Recording Controller下存放录制下的脚本,而View Results Tree中则记录录制请求时每一笔请求的明细信息。
4 JMeter脚本的收尾工作
经过前3步操作,我们已经完成了LoadRunner脚本到JMeter脚本的转制工作,得到了一个基本的JMeter脚本。最后还需要对脚本做一些收尾工作。
首先第一步把脚本从Recording Controller中移到Thread Group下。
录制出来的Transaction Controller下默认并没有勾选Generate parent sample,根据需要进行勾选。
接着把HTTP Test Script Recorder和Recording Controller组件移除或者禁用,清爽一下界面。
到目前为止录制的脚本中并没有HTTP Cookie Manager和HTTP Cache Manager,也没有参数化,大家根据脚本的实际需要,将Cookie和HTTP Manager添加上,将LoadRunner的参数化数据搬过来。
经过如上修改之后,一个典型的JMeter脚本就成型了。此方法特别适合批量LoadRunner http协议脚本转换。
在这欢迎大家关注我的个人微信号,测试杂货铺,微信公众号搜索"测试杂货铺"就可以,哈哈。
最新文章
- Java基础之IO流
- Android网络编程1
- SQLServer中系统存储过程sp_spaceused
- 43、哈工大NLP自然语言处理,LTP4j的测试+还是测试
- Libgdx 开发指南(1.3) 应用框架——查询、日志
- 为什么Android应该根据屏幕分辨率来加载不同的图片文件
- gcc、g++
- iOS10 权限崩溃问题-b
- The server does not support version 3.1 of the JEE Web module specification.
- Java程序打包
- Hadoop在Windows环境下的部署[转]
- Week3(9月23日):例子更Powerful更完整了,哇咔咔
- Java 并发编程(三)为线程安全类中加入新的原子操作
- 用Lua定制Redis命令
- 痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB签名功能 - CST(中英双语)
- Kafka~Linux环境下的部署
- 【转】一个 Linux 上分析死锁的简单方法
- angluarjs中页面初始化的时候会出现语法{{}}在页面中问题
- CNN中,1X1卷积核到底有什么作用呢?
- 英语发音规则---E字母常见的发音组合有哪些
热门文章
- SQL Sever——妙用种子列
- [微信小程序直播平台开发]___(二)Nginx+rtmp在Windows中的搭建
- 【原创】Apache ab测试时出现:apr_socket_recv ";connection reset by peer"; 104
- python第六课——判断结构
- CF585D Lizard Era: Beginning
- 【转】Android:No implementation found for native
- CMD centos7 安装 最新版本的docker -- dockerfire 原语 ENTRYPOINT - 导入镜像 tar mariadb Dockerfile 构建镜像
- 倒计数锁存器(CountDown Latch)和 CyclicBarrier(同步屏障)
- 初学node.js-MongoDB安装和环境服务配置(4)
- Vue脚手架搭建步骤