07丨性能测试工具:如何录制脚本?
该思维导图由 AI 生成,仅供参考
性能工具的脚本能力
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了性能测试工具的脚本录制功能,包括本地录制和代理录制两种方式。本地录制通过截取并解析与服务器的交互协议包,生成脚本文件,而代理录制则是通过代理服务器设置,转发客户端和服务器的交互协议包,生成脚本文件。文章还提到了常见的两个性能测试工具LoadRunner和JMeter的录制方式,并通过实际示例展示了它们各自的特点和适用场景。值得注意的是,JMeter的录制功能通过代理方式实现,需要注意代理设置和HTTPS录制的配置;而LoadRunner的录制功能支持多种协议,但Vuser Generator仅支持Windows平台。此外,文章还介绍了LoadRunner的Port Mapping功能,支持多种协议的录制。总的来说,本文通过对性能测试工具的脚本录制功能进行详细介绍,帮助读者了解了性能测试工具的技术特点和操作逻辑,对性能测试工程师具有一定的参考价值。
《性能测试实战 30 讲》,新⼈⾸单¥59
全部留言(38)
- 最新
- 精选
- zuozewei第一个问题:代理录制的逻辑是什么吗? 你也许听过这样一句至理名言:“计算机科学领域里的任何问题,都可以通过引入一个中间层来解决”。TCP/IP 协议栈是这样,而代理也是这样。 所谓的代理(Proxy)是 HTTP 协议中请求方和应答方中间的一个环节。既可以转发客户端的请求,也可以转发服务器的应答。 代理常见种类:匿名代理、透明代理、正向代理、反向代理. 代理可以做的事:负载均衡、内容缓存、安全防护、数据处理。 此处简单理解 JMeter 录制脚本则通过代理是通过转发数据包并拦截上下行的数据解析生成脚本,但录制出来的脚本都是原始的 http 请求,并没有经过适当的封装,所以录制功能比较弱。 第二个问题:当访问网页时,为什么第一个请求至关重要? 实际上,对浏览器来说,他们做的事情,就是把一个 URL 变成一个屏幕上显示的网页。这个过程是这样的: 1.浏览器首先使用 HTTP 协议或者 HTTPS 协议,向服务端请求页面; 2.把请求回来的 HTML 代码经过解析,构建成 DOM 树; 3.计算 DOM 树上的 CSS 属性; 4.最后根据 CSS 属性对元素逐个进行渲染,得到内存中的位图; 5.一个可选的步骤是对位图进行合成,这会极大地增加后续绘制的速度; 6.合成之后,再绘制到界面上。 简单理解浏览器的工作原理就很容易回答这个问题了,第一次请求后需要构建 Dom 树(内存中的数据结构),而这棵 DOM 树其实就是前端程序的业务状态。
作者回复: 理解的非常细节了。 第一个请求是创建DOM树的,没有它,后面的请求都没有地方放了。
2019-12-3141 - 月亮和六便士上一篇与这一篇:姚明与郭敬明的差距
作者回复: 哈哈,总要有基础的部分。 前面就有人说我为什么不讲点简单的。 后面我们再回到姚明好不好?
2019-12-30213 - 王德发录制APP请求:Script Recorder界面先设置https domain,输入localhost,然后将证书推送到手机,adb push ApacheJMeterTemporaryRootCA.crt /sdcard,再选择从设备安装证书,安装完成后,选择手动代理,输如jmeter所在机器的ip和代理服务端口,启动,操作APP就可录制了。
作者回复: 对。APP的都是这么干的。
2020-01-0928 - LensAclrtn1. 代理录制的逻辑是什么? 不管是在本地代理还是远程代理, 都是通过代理的设置,在客户端和服务端之间插入一个中间件,中间件接手客户端的请求并转发到服务端. 说白了就是端口映射, 也就是老师文章里说的Port mapping 另外, 端口映射工作在传输层,重定向工作在应用层, 他们是两个东西 不知道我这么理解有没有问题? 2. 访问网页时,为什么第一个请求至关重要? 第一个请求如果都有问题,那后面就算有请求也没有再分析跟踪的必要来.
作者回复: 两个问题理解的都没有问题。让我都无言以对了。
2019-12-306 - 牺牲代理录制的逻辑,通俗讲客户端是用户,代理是服务员,服务端是后厨。请求是用户点菜对接服务员,服务员对接给后厨,也就是客户端的请求->代理->服务器;返回数据是后厨做好的菜品->服务员->用户。代理直接拿到请求内容,然后转发给服务端,服务端返回结果给代理,代理再转发给客户端。跟抓包工具的原理差不多。 第二个问题文章中写道:从 HTML 文件获取所有内含的资源和自动重定向将开启。也就是说,虽说只记录了一个 Sampler,但是资源也会下载,重定向也会开启。
作者回复: 解释的很好。
2020-06-165 - 童话在jmeter脚本录制之后会产生很多请求,在看某个业务响应时间不是非常直观,例如,打开首页—登陆—进入某个页面—输入信息—-提交,而只要看到提交响应的时间,但在查看聚合报告的响应会很多请求,对于是怎么处理的,是否能像loadrunner 只要看事物响应时间部分
作者回复: 在properties文件中有这个参数jmeter.reportgenerator.exporter.html.show_controllers_only。去掉注释,改为true就可以生成没有请求只有事务的html了。 如果你想在执行过程中去掉这些内容而只显示定义的事务,可以选择事务控制器中的Generate parent sample。这样就只看到定义的事务了,而不会看到里面的每一个请求。
2020-01-063 - helloworldjmeter怎么去压测rpc协议呢? 比如说dubbo通信。 通过 Http -> dubbo client -> dubbo server ? 请问老师这有啥好办法吗?
作者回复: 这个在我的公众号上有具体的文章。
2022-07-17归属地:北京32 - yjluo“设置左边界为:JSESSIONID=,左边界为冒号”loadrunner设置关联这里应该是写错了,右边界应该是分号
作者回复: 嗯,是分号,联系我,收红包。
2021-01-112 - 骆俊我有一个jmeter脚本,登录...查询...购物...支付,我需要把他们都加到事务里去吗?网上的资料我没见有加事务的。
作者回复: 看你的测试目的是什么,要是看完整的业务链可以都加进去。但是这样不利于瓶颈定位。 我建议你加嵌套事务。单操作加,业务链也加。清楚一点。
2020-03-212 - Geek_570c4c代理是是中间件,转发客户端和服务器的交互协议包,生成脚本文件。 第一个请求最重要,第一个请求是创建dom树的,没有第一个请求,后面就没了。
作者回复: 理解的对。
2020-01-072