• @zzw
    2020-01-20
    思考题:你能说一下为什么压力机不模拟前端吗?

    目前的压力工具大部分是针对服务端,即模拟「网络 API 请求」,而前端程序基本上是由一系列的「用户交互事件」所驱动,其业务状态是一颗 DOM 树。

    通常来讲,前端性能关注的是浏览器端的页面渲染时间、资源加载顺序、请求数量、前端缓存使用情况、资源压缩等内容,希望借此找到页面加载过程中比较耗时的操作和资源,然后进行有针对性的优化,最终达到优化终端用户在浏览器端使用体验的目的。

    目前获取和衡量一个页面的性能,主要可以通过以下几个方面:Performance Timing API、Prpfile 工具、页面埋点计时、资源加载时序图分析;
    - Performance Timing API 是一个支持 Internet Explorer 9 以上版本及 WebKit;
    内核浏览器中用于记录页面加载和解析过程中关键时间点的机制,它可以详细记录每个页面资源从开始加载到解析完成这一过程中具体操作发生的时间点,这样根据开始和结束时间戳就可以计算出这个过程所花的时间了;
    - Profile 是 Chrome 和 Firefox 等标准浏览器提供的一种用于测试页面脚本运行时系统内存和 CPU 资源占用情况的 API;
    - 通过脚本埋点计时的方式来统计没部分代码的运行时间;
    - 借助浏览器或其他工具的资源加载时序图来帮助分析页面资源加载过程中的性能问题。这种方法可以粗粒度地宏观分析浏览器的所有资源文件请求耗时和文件加载顺序情况。
    展开

    作者回复: 描述的很详细。有机会可以写一下前端的性能分析了。

    
     3
  • songyy
    2020-01-15
    你能说一下为什么压力机不模拟前端吗:因为模拟前端消耗的计算资源太大,相比之下意义可能并不大。
    计算消耗大,是说去Parse这个前端的HTML,需要一些计算量;如果需要把这些内容给render出来,需要更多的内存。
    一个HTML页面,Load之后会load更多的一些API,这些API可以通过估算,进行混合测试;而那些固态资源,通常会被 浏览器Cache / 网络中的一些路由器给cache,且是从一个静态资源的server单独serve,不用太担心。
    需要测的是产生的压力,前端产生
     无意义。
    展开

    作者回复: 理解的很正确。

    
    
  • 小老鼠
    2020-01-11
    1,JMeter中cookies几种类型可介绍下吗?2,可否介绍yahoo前端优化30条建议?

    作者回复: 这些不在我认为的专栏应该写的重点范围里。找找度娘就可以了。

    
    
  • 善行通
    2020-01-10
    1、听完这样一节才知道http协议在交互过程中,数据经过了 Frame、Ethernet、IP、TCP、HTTP 这些层面,还会再每一次传输都会增加自己的信息头,而且还了解了应答模式;

    2、之前一直没有思考【客户端接收到所有的内容之后,还要展示。而这个展示的动作,也就是前端的动作。在当前主流的性能测试工具中,都是不模拟前端时间的,比如说 JMeter。我们在运行结束后只能看到结果,但是不会有响应的信息。你也可以选择保存响应信息,但这会导致压力机工作负载高,压力基本上也上不去。也正是因为不存这些内容,才让一台机器模拟成千上百的客户端有了可能】 听完这一次后,明白了很多细节;

    3、明白Nginx【压缩级别【1-9】值越大,压缩率就越高】之前只知道有压缩,但不知道再什么地方压测,今天看了老师写 Ngix 配置才明白再这里配置;

    4、明白各个浏览器厂商在处理并发限制不一样,之前一直不知道,今天增加自己知识积累。

    5、之前不知道https也是影响性能的,听完了这一篇增加了知识;

    6、感谢老师总结【性能分析中,主要关心的部分就是传输字节的大小、超时的设置以及压缩等内容。在编写脚本的时候,要注意 HTTP 头部,至于 Body 的内容,只要能让业务跑起来即可。】


    为什么压力机不模拟前端
    1、客户端接收到所有的内容之后会在前端浏览器渲染,如果在本地渲染会增加压力机性能消耗,当消耗过大会影响压力发压能力,如果下载资源保存到本地,会增加IO操作压力机性能。
    2、前端js/css/img等静态资源都走CDN.
    展开

    作者回复: 照这样下去。已经快超过我了。哈哈。

    
    
  • 律飛
    2020-01-08
    为什么压力机不模拟前端吗?
    性能测试的目的是获得系统性能指标,利用断言判断业务是否成功即可,并不关注前端页面显示内容,所以无需保存响应信息。
    测试工具时,必须多了解参数,知其然并要知其所依然,才能更高效地更自如地配置参数,准确地满足测试要求。

    作者回复: 理解滴对。

    
    
  • 晴空
    2020-01-08
    你能说一下为什么压力机不模拟前端吗?
    在当前主流的性能测试工具中,都是不模拟前端时间的,比如说 JMeter。我们在运行结束后只能看到结果,但是不会有响应的信息。你也可以选择保存响应信息,但这会导致压力机工作负载高,压力基本上也上不去。也正是因为不存这些内容,才让一台机器模拟成千上百的客户端有了可能。

    另外前端页面展示还有部分是静态的图片或文字等,这些可以列在性能测试范围内也可以列在性能测试范围外。

    作者回复: 嗯。正确理解了内容。

    
    
我们在线,来聊聊吧