07丨性能测试工具:如何录制脚本?
07丨性能测试工具:如何录制脚本?
讲述:高楼
时长24:27大小16.79M
性能工具的脚本能力
性能工具中的录制功能
JMeter 的录制功能
承上启下的话
LoadRunner 中的录制功能
常规录制
Port Mapping
总结
思考题
赞 8
提建议
精选留言(36)
- zuozewei2019-12-31第一个问题:代理录制的逻辑是什么吗? 你也许听过这样一句至理名言:“计算机科学领域里的任何问题,都可以通过引入一个中间层来解决”。TCP/IP 协议栈是这样,而代理也是这样。 所谓的代理(Proxy)是 HTTP 协议中请求方和应答方中间的一个环节。既可以转发客户端的请求,也可以转发服务器的应答。 代理常见种类:匿名代理、透明代理、正向代理、反向代理. 代理可以做的事:负载均衡、内容缓存、安全防护、数据处理。 此处简单理解 JMeter 录制脚本则通过代理是通过转发数据包并拦截上下行的数据解析生成脚本,但录制出来的脚本都是原始的 http 请求,并没有经过适当的封装,所以录制功能比较弱。 第二个问题:当访问网页时,为什么第一个请求至关重要? 实际上,对浏览器来说,他们做的事情,就是把一个 URL 变成一个屏幕上显示的网页。这个过程是这样的: 1.浏览器首先使用 HTTP 协议或者 HTTPS 协议,向服务端请求页面; 2.把请求回来的 HTML 代码经过解析,构建成 DOM 树; 3.计算 DOM 树上的 CSS 属性; 4.最后根据 CSS 属性对元素逐个进行渲染,得到内存中的位图; 5.一个可选的步骤是对位图进行合成,这会极大地增加后续绘制的速度; 6.合成之后,再绘制到界面上。 简单理解浏览器的工作原理就很容易回答这个问题了,第一次请求后需要构建 Dom 树(内存中的数据结构),而这棵 DOM 树其实就是前端程序的业务状态。展开
作者回复: 理解的非常细节了。 第一个请求是创建DOM树的,没有它,后面的请求都没有地方放了。
35 - 月亮和六便士2019-12-30上一篇与这一篇:姚明与郭敬明的差距
作者回复: 哈哈,总要有基础的部分。 前面就有人说我为什么不讲点简单的。 后面我们再回到姚明好不好?
共 2 条评论11 - 王德发2020-01-09录制APP请求:Script Recorder界面先设置https domain,输入localhost,然后将证书推送到手机,adb push ApacheJMeterTemporaryRootCA.crt /sdcard,再选择从设备安装证书,安装完成后,选择手动代理,输如jmeter所在机器的ip和代理服务端口,启动,操作APP就可录制了。
作者回复: 对。APP的都是这么干的。
共 2 条评论6 - LensAclrtn2019-12-301. 代理录制的逻辑是什么? 不管是在本地代理还是远程代理, 都是通过代理的设置,在客户端和服务端之间插入一个中间件,中间件接手客户端的请求并转发到服务端. 说白了就是端口映射, 也就是老师文章里说的Port mapping 另外, 端口映射工作在传输层,重定向工作在应用层, 他们是两个东西 不知道我这么理解有没有问题? 2. 访问网页时,为什么第一个请求至关重要? 第一个请求如果都有问题,那后面就算有请求也没有再分析跟踪的必要来.展开
作者回复: 两个问题理解的都没有问题。让我都无言以对了。
5 - 牺牲2020-06-16代理录制的逻辑,通俗讲客户端是用户,代理是服务员,服务端是后厨。请求是用户点菜对接服务员,服务员对接给后厨,也就是客户端的请求->代理->服务器;返回数据是后厨做好的菜品->服务员->用户。代理直接拿到请求内容,然后转发给服务端,服务端返回结果给代理,代理再转发给客户端。跟抓包工具的原理差不多。 第二个问题文章中写道:从 HTML 文件获取所有内含的资源和自动重定向将开启。也就是说,虽说只记录了一个 Sampler,但是资源也会下载,重定向也会开启。展开
作者回复: 解释的很好。
4 - 童话2020-01-06在jmeter脚本录制之后会产生很多请求,在看某个业务响应时间不是非常直观,例如,打开首页—登陆—进入某个页面—输入信息—-提交,而只要看到提交响应的时间,但在查看聚合报告的响应会很多请求,对于是怎么处理的,是否能像loadrunner 只要看事物响应时间部分
作者回复: 在properties文件中有这个参数jmeter.reportgenerator.exporter.html.show_controllers_only。去掉注释,改为true就可以生成没有请求只有事务的html了。 如果你想在执行过程中去掉这些内容而只显示定义的事务,可以选择事务控制器中的Generate parent sample。这样就只看到定义的事务了,而不会看到里面的每一个请求。
3 - 骆俊2020-03-21我有一个jmeter脚本,登录...查询...购物...支付,我需要把他们都加到事务里去吗?网上的资料我没见有加事务的。
作者回复: 看你的测试目的是什么,要是看完整的业务链可以都加进去。但是这样不利于瓶颈定位。 我建议你加嵌套事务。单操作加,业务链也加。清楚一点。
2 - Geek_570c4c2020-01-07代理是是中间件,转发客户端和服务器的交互协议包,生成脚本文件。 第一个请求最重要,第一个请求是创建dom树的,没有第一个请求,后面就没了。
作者回复: 理解的对。
2 - buffalo2019-12-31这一篇很实用,最近听高老师的段子有种追美剧的感觉😄 对locust很有兴趣,不知道后面是否会有涉及。个人感觉如果是python平台的话locust很容易使用,而且方便将性能测试用例自动调度执行插入CI环节做回归验证。使用起来与Jmeter有些不同,更方便对已有测试用例资产的重用
作者回复: 从排名上看这个工具还是市场不大,所以没打算讲。 其实一开始我连工具都没打算讲。哈。
2 - bolo2021-02-22第一个问题: 代理录制的逻辑是什么? 代理的功能主要是用来做数据转发(请求内容及响应内容),代理是可以拿到所有的请求及结果的,所以可以将所有的请求及响应体内容保存下来用于后期的性能测试使用。 代理我们生活中用的比较多是访问国外的网站时候需要挂一个代理,通过代理我们可以访问Google,看YouTube。 第二个问题:看了留言才知道是DOM树。 其实工作中多数的性能测试工作 偏向纯接口的,主要还是通过手动填写的方式录入的.展开
作者回复: 很好。
1 - yjluo2021-01-11“设置左边界为:JSESSIONID=,左边界为冒号”loadrunner设置关联这里应该是写错了,右边界应该是分号
作者回复: 嗯,是分号,联系我,收红包。
1 - 冬风向左吹2020-05-20为啥我没有生成ca证书,生成了一个jks的证书,浏览器怎么导入呢? ProxyControl: HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file /data/exec/apache-jmeter-5.3/bin/proxyserver.jks
作者回复: java生成的证书就是jks,可以用java里的工具转为CA证书格式。
1 - 上不去的别上了2020-03-22工具使用前了解其原理再上手就快多了
作者回复: 学习用自己喜欢的套路是最快的。有人喜欢先上手再看原理;有人喜欢先看原理再上手。异曲同工。 只要学得下去就行。
1 - 小呀么小二郎2020-03-17思考题: 你能用自己的话说一下代理录制的逻辑是什么吗? 代理主要是做一个转发的工作。代理服务器/程序介于客户端和服务器之间,客户端发送的请求会被代理服务器/程序拦截,然后由代理服务器/程序转发到服务器上;服务器处理完这个请求后,返回的响应也被代理服务器/程序捕获,然后再转发给客户端。 当访问网页时,为什么第一个请求至关重要? 这个一开始没想到原因,看了评论才知道第一个请求是为了构建DOM树,用来存放后面的请求。 我用的是windows系统,导入证书那我直接通过浏览器导入,也可以实现。展开
作者回复: 认真留言,你是第一名!
1 - 从一2020-02-06老师,想问下你这种录制是偏向UI层吗?这种录制一般用于什么场景测试啊?服务端一般直接在接口层进行压力测试就行了吧
作者回复: 是的,偏向UI层的。 接口的直接写脚本就行了。不用这么复杂。 但对初学者来说,有必要知道有这么个功能。
1 - 土耳其小土豆2019-12-30录制的原理是客户端与服务端交互的时候,截取服务端的数据并保存1
- 土耳其小土豆2019-12-30不知道录制的原理,但是学会了jmeter的录制,LR的录制以前用过,谢谢高老师分享1
- 律飛2019-12-30本节课我看了几遍,不是老师讲得不好,而是本人没接触过Jmeter、Loadrunner工具,没有对话能力呀!几个月前,用华为的PTS做了几个简单场景的压力测试,主要是利用Fiddle先抓包分析,按照PTS要求编制脚本,属于手工编制的脚本。PTS也有脚本录制功能,因为当时有其他工作,本职也不是测试,所以没有深入去研究。 代理录制就是通过测试工具代理录制功能,在浏览器与服务器之间充当第三方代理,从而自动获取并记录交互信息,为最终测试脚本生成提供快捷有效的基础和依据,集成了手工编制测试脚本中的抓包软件信息获取、分析、编制脚本几个功能。展开
作者回复: 那要学习性能测试就得去练工具的使用了。 另外,PTS好像是阿里的。
共 2 条评论1 - wchao1902022-12-29 来自上海我都是手撕脚本,不过,用badbody录制不是更简单
作者回复: 手撕要看气质。
- helloworld2022-07-17 来自北京jmeter怎么去压测rpc协议呢? 比如说dubbo通信。 通过 Http -> dubbo client -> dubbo server ? 请问老师这有啥好办法吗?
作者回复: 这个在我的公众号上有具体的文章。