对于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协议脚本转换。

在这欢迎大家关注我的个人微信号,测试杂货铺,微信公众号搜索"测试杂货铺"就可以,哈哈。

最新文章

  1. Java基础之IO流
  2. Android网络编程1
  3. SQLServer中系统存储过程sp_spaceused
  4. 43、哈工大NLP自然语言处理,LTP4j的测试+还是测试
  5. Libgdx 开发指南(1.3) 应用框架——查询、日志
  6. 为什么Android应该根据屏幕分辨率来加载不同的图片文件
  7. gcc、g++
  8. iOS10 权限崩溃问题-b
  9. The server does not support version 3.1 of the JEE Web module specification.
  10. Java程序打包
  11. Hadoop在Windows环境下的部署[转]
  12. Week3(9月23日):例子更Powerful更完整了,哇咔咔
  13. Java 并发编程(三)为线程安全类中加入新的原子操作
  14. 用Lua定制Redis命令
  15. 痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB签名功能 - CST(中英双语)
  16. Kafka~Linux环境下的部署
  17. 【转】一个 Linux 上分析死锁的简单方法
  18. angluarjs中页面初始化的时候会出现语法{{}}在页面中问题
  19. CNN中,1X1卷积核到底有什么作用呢?
  20. 英语发音规则---E字母常见的发音组合有哪些

热门文章

  1. SQL Sever——妙用种子列
  2. [微信小程序直播平台开发]___(二)Nginx+rtmp在Windows中的搭建
  3. 【原创】Apache ab测试时出现:apr_socket_recv "connection reset by peer" 104
  4. python第六课——判断结构
  5. CF585D Lizard Era: Beginning
  6. 【转】Android:No implementation found for native
  7. CMD centos7 安装 最新版本的docker -- dockerfire 原语 ENTRYPOINT - 导入镜像 tar mariadb Dockerfile 构建镜像
  8. 倒计数锁存器(CountDown Latch)和 CyclicBarrier(同步屏障)
  9. 初学node.js-MongoDB安装和环境服务配置(4)
  10. Vue脚手架搭建步骤