• @zzw
    2019-12-23
    第一个问题:
    大概会考虑怎么几个方面:
    - 学习成本:对人员的水平要求,培训时间成本等;
    - 脚本编写:能否录制测试脚本,是否支持GUI操作等;
    - 安装部署成本:是否支持一键安装,是否支持docker等;    
    - 是否免费:开源工具一般都是免费的;但是很多收费工具也的确物有所值;    
    - 是否支持多协议:比如是否支持 HTTP 协议、RPC 协议等等    
    - 测试场景:是否有链路、场景编排管理,支持支持将请求编排成业务场景,即常见的一串联场景;
    - 流量控制:支持纵向的,上下游链路的请求量逐渐减少,整体呈现一个漏斗模型;也可以是横向的;
    - 压力控制:指压测时并发用户数、 TPS 的控制等;
    - 数据驱动:大量的测试数据的参数化;
    - 分布式支持:支持压力机集群;
    - 测试报告:压测结果是否能够图形化展示,提供美观且丰富的测试报告;
    - 二次开发的成本:由于时间或人力关系,也需要考虑二次开发成本;
    - 性能开销:执行机开销、软件可靠性、执行效率、业务处理能力等。
    ....

    第二个问题:
    我觉得一个好的监控系统大概需要包括以下几个方面:
    - 全栈系统监控是前提;
    - 关注于整体应用的 SLA:主要从为用户服务的 API 来监控整个系统;
    - 关联指标聚合:把有关联的系统及其指标聚合展示。主要是三层系统数据:基础层、平台中间件层和应用层。并提供一个全局的系统运行数据大盘,帮助快速找到系统瓶颈。
    - 快速故障定位:快速定位问题需要对整个分布式系统做一个用户请求跟踪的 trace。

    只有做到了上述的这些关键点才能是一个好的监控系统,而显然目前的测试工具监控是不满足的。

    另外测试工具本身在做监控也有其局限性,如 jmeter 在压测量较大的情况下回传测试结果 Master 节点会成为容易成为瓶颈。
    展开

    作者回复: 嗯,你说的很对。
    我竟没有啥子可以补充的。

     1
     20
  • 村夫
    2019-12-24
    老师请教一个问题。关于事物的定义,假如有一个兑奖的活动,进去活动页面会请求三个接口,一个个人积分接口,一个是任务列表接口,还有一个是兑奖列表接口。在页面点击兑奖按钮会去请求兑奖接口,兑奖成功页面会去调用用户接口刷新用户当前积分。这样的情况应该怎么去定义事物?

    作者回复: 这就是之前的一个文中所写的。
    事务的定义取决于测试的目的:
    1. 如果你想测试的是单个接口的容量,那显然,一个接口一个事务,并且都是直接连接口就行了。但是要注意的是,其实在测试兑奖接口的时候,后面的几个接口也都会调到,所以这时会把后面几个接口都压了。这时,如果你的目标只是测试兑奖接口本身,并不想测试关联的其他接口,那就mock掉。
    2. 如果你要测试的兑奖的这个流程,那显然是从兑奖接口进去。事务定义到兑奖整个流程上。

    
     2
  • 小老鼠
    2019-12-24
    要测试一个在线运行的网站性能,应该使用什工具比较好?设置的被测网站的IP地址可以是公网IP吗?

    作者回复: 使用什么工具取决于什么样的工具最适合应用场景。如果是HTTP协议的,那有很多工具都适用。没有谁比谁更好,只有哪个应用在团队中成本最低。
    关于压力工具我从来不纠结,就算自己写一个多线程工具也无所谓,只要能让我看到TPS、响应时间、错误率之类的数据就可以。

    从技术上说,不管是公网IP、内网IP,对性能测试的过程来说都无所谓,只要路由可达就可以测试。
    只是用公网IP要考虑出口流量,以及架构上的各种网络设备,像WAF、SLB、广域网设备等。并且如果是按流量付费的带宽,还要先计算下费用。 还有客户端如果也在公网上,还要考虑客户端的出口带宽。 但是这些都和性能测试技术本身无关。

    
     1
  • 私人领域
    2019-12-24
    现在在公司做的还是不太顺利,概念不理解,大家对并发的不理解,这包括开发,产品,项目,部分运维可以理解;还有就是无理要求要求8000并发,这个怎么跟他们解释都无用,一说就是客户要求的,这8000并发发包出去就几g的流量了,真不明白他们怎么想的,这做技术的人一点基础都没有,真的很难工作

    作者回复: 要是你职位高,可以强势一点沟通。如果从历史数据中算到并发度并不高。(就是拿当前的用户和业务的TPS做比对就可以知道并发度。)
    那完全可以算得出来。

    现在不懂技术的人说的并发,大部分是说的在线。之前我算过一个要支持1000万基础用户(也就是数据库里总共只有1000万用户),再计算到日活,再计算到时、分、秒,才需要200TPS。

     1
     1
  • Geek_081377
    2019-12-24
    支持高老师,希望听完能成为公司的性能大牛,哈哈

    作者回复: 要是完全能在工作中落地的话,那就不是大牛了,是猛牛。哈。

    
     1
  • 莫西 👫 小妞儿 ...
    2020-01-15
    老师,想问一下前端性能的测试工作都有哪些呢?比如想知道实际用户看到页面中所有元素都加载完的时间

    作者回复: 每个浏览器都有开发者工具。

    
    
  • 莫西 👫 小妞儿 ...
    2020-01-14
    老师,我们单位属于国企,现在是用jmeter来压测,用nomn作为监控工具,这样是否可行。或者有什么更好的推荐么?

    作者回复: 无所谓用什么样的工具,只要看到想看的数据即可。

    
    
  • songyy
    2020-01-09
    思考题
    你觉得企业选择性能工具应该考虑哪些方面:价钱 / 二次开发容易程度 / 报表详细程度 / 社区文档支持程度 / 目前成熟度、稳定性 / 是否有已有成功案例

    以及性能测试工具中是否必须做监控呢:不必须。监控可以通过系统自带的监控来进行。事实上,具体软件执行环境多种多样,让性能测试工具做监控,很难做到完善。

    作者回复: 嗯,说滴对。

    
    
  • slark
    2020-01-07
    Jmete和Locust都学过,J感觉有GUI,L是Python,编写测试脚本更便捷

    作者回复: 喜欢什么用什么。只要压力能发起来就行了。

    
    
  • Geek_0849d2
    2020-01-07
    什么样的业务可以线上直接压测,什么样的业务不可以?如何控制线上的性能测试?我遇到的项目都不能直接压测线上,直接线上压测,万一压塌了,影响正常用户使用怎么办?

    作者回复: 在线下准备不出来足够的硬件设备。业务又很重要的。只能在线上做了。

    线上肯定会控制容量,不影响正常用户。

    
    
  • 北冥有人
    2020-01-02
    请问老师,一般测试 websocket 最大负载量,用什么工具比较好?

    作者回复: jmeter就可以呀。

    
    
  • 李艳超_Harry
    2019-12-30
    jmeter 为什么bio?

    作者回复: 这要问工具的设计者了。在我看来他是BIO、AIO都无所谓,只要实现压力就好了。

     1
    
  • Geek_alair俊
    2019-12-29
    工具只是工具,通过工具的使用,分析出性能瓶颈,并且给出解决方案,这才是王道!神马各种压测工具,监控工具,看得见的没多少价值,分析这部分看不见的过程才是最有价值的!高老师一语中的。

    作者回复: 多谢支持。希望理念传递给更多人。

    
    
  • 心怡
    2019-12-26
    选工具考虑的方面,1.明确企业所做的系统性能指标是什么 2.性能测试的目标是什么3.哪个工具可以做?4.这个工具如果在做的过程中无法实现这个目标怎么办

    作者回复: 是的,适合的工具就是最好的。

    
    
  • 玉面小肥猫
    2019-12-24
    老师您好,“比如说压力策略,应该用一秒 Ramp up 10 个用户,还是 20 个用户,还是 100 个用户?这应该怎么判断呢?”可否回答一下,最近正在纠结这个问题,谢谢!

    作者回复: 等你看到场景设计的那篇的时候,估计你就不会有这个疑问了。

    
    
  • Eight Baby
    2019-12-24
    我们公司基本普及了jmeter 覆盖了自动化和性能了(基本人人都会),确实jmeter用起来效率高,开源不少协议都自己写。我觉得性能会工具和会压测完全两码事...

    作者回复: 理解的非常对呀。

    
    
  • 月亮和六便士
    2019-12-24
    高老师,推荐几款监控Java语言接口和方法执行时间的工具,比响应时间细分到Java某个工程的jar包,我怎么监控这个jar包里的接口执行时间,方法执行时间,还有算法执行效率,等等

    作者回复: 这有很多呀。像jvisualvm/jmc/arthus/btrace......。开源免费。

    
    
  • calm
    2019-12-24
    高老师,能否推荐一些性能测试这方面的书籍?

    作者回复: 这个就比较麻烦了。除了写性能测试工具之外,性能测试基本上没有自己的书籍。
    但是写工具也不算是完整的性能测试。
    如果你要看的话,我建议你这样开。
    OS、DB、存储、语言(java、go、python)、架构等各找一本性能相关的书看。比如说linux性能优化、java性能优化、mysql性能优化,这类的书。

    
    
  • 月亮和六便士
    2019-12-24
    高老师,推荐几款可以监控接口和方法执行时间的工具,

    作者回复: 你说的是什么语言?到了这样的级别就要看语言和架构了。

    
    
  • 银
    2019-12-24
    高老师,什么时候更新啊?希望尽快看到你后面的章节

    作者回复: 更新的频率取决于极客编辑小姑娘的心情。哈哈。

    正常的安排是一三五更新。

    
    
我们在线,来聊聊吧