还未发布过话题
  • 可以理解为接收的 QPS 吧,接收的 QPS=处理完的 QPS+ 错误 QPS

  • 抛砖引玉:
    1、大部分情况,服务端容量就是看 QPS,或则说(QPS,Latency,Error_Rate,CPU,Memory) 这几个组合。单纯谈一个或几个指标是没有意义的,比如 QPS 很高,latency 很大,或者错误率很高,这都是无效的
    2、大部分情况下,服务端容量就是看 QPS,并发数只是我们达到这个 QPS 的手段 --- 这个是 OK 的
    3、为什么说大部分情况下呢,因为对于某些场景下,并发数有特殊的含义。比如说 websocket 协议,比如游戏基于 socket 长链接这种情况下,系统看的是新建连接数,和连接保持数,这个是 QPS 解决不了的。
    4、就楼主这个情况,300 并发 != 300QPS。 产品告诉你 300 并发,我理解是最大同时支持 300 个用户并发操作,需要根据用户行为模型来预估最高 QPS。这种情况下,可以看看线上高峰期时并发数是多少,然后对应的各个接口的 QPS 是多少,然后计算出 300 并发下,各个接口的 QPS 是多少,然后需要按照这个数据来进行压测。

  • 1、假设只有 1 个线程,单个请求的响应延时为 T 秒, 那么此时 QPS = 1 秒/T 秒

    2、那么当有 N 个线程,也就是 N 个并发时, QPS = N/T。
    3、所以正常情况下,增加并发 ,就可以提升 QPS。 但是当并发数超过一定数之后,会导致线程调度占用大量的 cpu,导致 T 变大。
    因此需要不调整并发数大小,单台发压机不行,也可以多加几台发压机

  • case 设计必须以业务为主,必须围绕业务需求,以及系统设计,来进行 case 设计;
    UI 测试这块,不需要设计 case,记录测试点就行。
    在执行业务 case 的时候,可以顺带将 UI 测试点来验证

  • 1、功能回归测试:所有历史 case 都应该回归一遍
    2、性能测试:确保新换组件能支持以前组件的峰值性能
    3、稳定性:长时间运行,性能不下降,不出现崩溃
    建议部署两套线上环境,一套是线上版本不变,一套切换新组件的版本,将线上流量全部 copy 一份打到新组件上,运行一段时间看看是否有问题。
    如果有没有问题,再逐步切流量

  • 个人觉得不用考虑文件大小,说文件太大,是为了不让你把文件全部加载到内存,然后循环遍历,
    for line in open() 就是按行读取的,不会全部加载。

    问题点是在于,文件只能遍历一次,碰到搜索命中时,后 n 行比较好解决,继续循环就可以了。前三行怎么处理?
    这里需要加上一个定长(n=3)的队列,不断 push,超过了长度,就从顶部删除一条。
    遇到命中,就全部清空,写到文件中

  • 做 diff 之前,要想清楚为什么要 diff,目的是为了解决什么问题?
    我们做 diff,最主要是目的是:
    1、新版本的老接口回归
    2、线上服务的监控 -- 有点特殊性
    3、AB test

    就目的 1 来说,就是要对比基准版本(线上版本)和新版本在相同的环境下,相同 query,来对 response 做对比。所以只要是两个版本所在环境一致,就可以完成对比,当然最好是把线上配置和数据复制一份到线下,然后捞取一批线上请求,来对比不同版本的请求结果。

    其他两个稍微麻烦点,有空再讲