• @zzw
    2019-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树的,没有它,后面的请求都没有地方放了。

    
     7
  • 月亮和六便士
    2019-12-30
    上一篇与这一篇:姚明与郭敬明的差距

    作者回复: 哈哈,总要有基础的部分。
    前面就有人说我为什么不讲点简单的。
    后面我们再回到姚明好不好?

    
     5
  • LensAclrtn
    2019-12-30
    1. 代理录制的逻辑是什么?

    不管是在本地代理还是远程代理, 都是通过代理的设置,在客户端和服务端之间插入一个中间件,中间件接手客户端的请求并转发到服务端.
    说白了就是端口映射, 也就是老师文章里说的Port mapping

    另外, 端口映射工作在传输层,重定向工作在应用层, 他们是两个东西

    不知道我这么理解有没有问题?

    2. 访问网页时,为什么第一个请求至关重要?
    第一个请求如果都有问题,那后面就算有请求也没有再分析跟踪的必要来.
    展开

    作者回复: 两个问题理解的都没有问题。让我都无言以对了。

    
     2
  • 周亚军
    2020-01-09
    录制APP请求:Script Recorder界面先设置https domain,输入localhost,然后将证书推送到手机,adb push ApacheJMeterTemporaryRootCA.crt /sdcard,再选择从设备安装证书,安装完成后,选择手动代理,输如jmeter所在机器的ip和代理服务端口,启动,操作APP就可录制了。

    作者回复: 对。APP的都是这么干的。

    
     1
  • 从一
    2020-02-06
    老师,想问下你这种录制是偏向UI层吗?这种录制一般用于什么场景测试啊?服务端一般直接在接口层进行压力测试就行了吧

    作者回复: 是的,偏向UI层的。
    接口的直接写脚本就行了。不用这么复杂。
    但对初学者来说,有必要知道有这么个功能。

    
    
  • 慢
    2020-01-26
    请问老师,怎么做RPC协议的压测?哪个工具比较方便?谢谢。

    作者回复: Jmeter就可以。网上有很多示例。

    
    
  • songyy
    2020-01-12
    思考题
        - 你能用自己的话说一下代理录制的逻辑是什么吗:让所有的HTTP请求都经过代理,通过记录请求的方式来录制。我猜想,还需要进一步解析HTTP请求内部,来分析出来其中的变量。这个要求确认一下;如果之后要讲到这里,求告知哪一节会讲
        - 当访问网页时,为什么第一个请求至关重要:因为第一个请求是创建DOM的,没有第一个请求,后面的都不行了

    作者回复: 下两篇以及代码篇都有讲请求到哪里去了。

    
    
  • Geek_570c4c
    2020-01-07
    代理是是中间件,转发客户端和服务器的交互协议包,生成脚本文件。
    第一个请求最重要,第一个请求是创建dom树的,没有第一个请求,后面就没了。

    作者回复: 理解的对。

    
    
  • 童话
    2020-01-06
    在jmeter脚本录制之后会产生很多请求,在看某个业务响应时间不是非常直观,例如,打开首页—登陆—进入某个页面—输入信息—-提交,而只要看到提交响应的时间,但在查看聚合报告的响应会很多请求,对于是怎么处理的,是否能像loadrunner 只要看事物响应时间部分

    作者回复: 在properties文件中有这个参数jmeter.reportgenerator.exporter.html.show_controllers_only。去掉注释,改为true就可以生成没有请求只有事务的html了。
    如果你想在执行过程中去掉这些内容而只显示定义的事务,可以选择事务控制器中的Generate parent sample。这样就只看到定义的事务了,而不会看到里面的每一个请求。

    
    
  • 小老鼠
    2020-01-05
    JMeter我认为还是要手工写,不要录制

    作者回复: 没有要还是不要。
    合适的手段生成脚本就可以。

    
    
  • buffalo
    2019-12-31
    这一篇很实用,最近听高老师的段子有种追美剧的感觉😄 对locust很有兴趣,不知道后面是否会有涉及。个人感觉如果是python平台的话locust很容易使用,而且方便将性能测试用例自动调度执行插入CI环节做回归验证。使用起来与Jmeter有些不同,更方便对已有测试用例资产的重用

    作者回复: 从排名上看这个工具还是市场不大,所以没打算讲。
    其实一开始我连工具都没打算讲。哈。

    
    
  • 土耳其小土豆
    2019-12-30
    录制的原理是客户端与服务端交互的时候,截取服务端的数据并保存
    
    
  • 土耳其小土豆
    2019-12-30
    不知道录制的原理,但是学会了jmeter的录制,LR的录制以前用过,谢谢高老师分享
    
    
  • 律飛
    2019-12-30
    访问网页时,第一个请求是页面,进行DNS解析,建立TCP连接,发起Http网页搜索,后续请求才能顺利的执行。如果第一个请求失败,就没有后续请求,就像先遣部队没有打通道路,后续大部队就不能抵达战场一样,所以第一个请求至关重要。

    作者回复: 这么说也不是不可以。哈。

    
    
  • 律飛
    2019-12-30
    本节课我看了几遍,不是老师讲得不好,而是本人没接触过Jmeter、Loadrunner工具,没有对话能力呀!几个月前,用华为的PTS做了几个简单场景的压力测试,主要是利用Fiddle先抓包分析,按照PTS要求编制脚本,属于手工编制的脚本。PTS也有脚本录制功能,因为当时有其他工作,本职也不是测试,所以没有深入去研究。
    代理录制就是通过测试工具代理录制功能,在浏览器与服务器之间充当第三方代理,从而自动获取并记录交互信息,为最终测试脚本生成提供快捷有效的基础和依据,集成了手工编制测试脚本中的抓包软件信息获取、分析、编制脚本几个功能。

    作者回复: 那要学习性能测试就得去练工具的使用了。

    另外,PTS好像是阿里的。

     1
    
  • 简凡
    2019-12-30
    1、代理录制的逻辑是什么?
    --- 请求响应的时候,不是直接到目的地,而是经过代理服务器,这时代理服务就可以拿到对应的请求和结果了;
    2、访问网页时,为什么第一个请求至关重要?
    --- 在录制的时候,有时是只录制第一个请求,后续的资源和其他重定向的请求,都是通过第一个请求来获取的。

    作者回复: 关于2, 第一个是DOM,没有它,后面的全都没了。

    
    
我们在线,来聊聊吧