性能测试
- 概念要能落地。
- 并发: 默认多个人同时请求。性能测试中,
- 用1个线程,循环请求100次。 ------自动测试
- 100个线程,并发请求1次。 -----性能测试
- 得到性能指标: 但是,性能测试,不是为了 冷冰冰的指标数据,而进行的。通过数据的意义,发现数据背后,可能存在的性能问题,并进行性能优化。
- 性能要实现并发: 是使用工具。 工具,也包含,用代码。
- 性能测试并发的实现方式: 进程、线程、协程
- Jmeter用: 线程
- loadruner用: 默认是用线程,也可以用进程
- python+locust用: 协程
进程: 资源拥有着,一个程序,至少有一个进程和一个线程。
线程: 用资源来执行操作。
协程:比线程还要小的执行者。
并发测试
就是用 多个人 同时请求。
- 并发: 同一间发现相同的请求
- 并行:同一时间发起的请求可以相同、也可以不同
侠义并发测试:同一个时间有大量的并发请求同一个接口。 -------有集合点性能测试。
广义并发测试:同一个时间有大量的并发请求(可以相同、也可以不同) -------性能测试,更多时候用这种。
基准测试
进行第一次性能测试,得到性能指标数据。
就是我们以后,进行性能判断的基准。参考值
现在企业中,性能测试指标关注重点:
- tps ----如: 产品计算密集型,就是期望服务的处理能力越高越好。----这样的产品性能测试,侧重在 tps 的数值上。
- 并发用户数 ------如: toc的应用性能产品的接口性能。-----期望能同时支持的人越多越好。 响应时间,是来判断这个并发用户数的一个标准。
负载测试
逐步的增加并发用户数,调用接口,发起请求。观察性能指标数据,通过这些数据的实时展现,判断是否,达到了服务的瓶颈的并发用户数的区间。
指标判断的标准: 1、平均响应时间<1.5s 2、错误率<0.1%, 3、资源利用率 <80%
区间的起始、到最大之间,缩小步长,从而得到 具体并发用户数。
10-20-30-40-50-60----------90-100-------
观察,性能指标数据: 假设90的时候,平均响应时间<1.5s 错误率<0.1%,资源利用率 <80%。 并发用户数在100的时候, 平均响应时间、错误率、资源利率这三个标准中,有任意一个,超了。就可以得到可接受的并发用户数的区间 [90,100)
第二论负载测试,起始值 90-91-92-93-94--------100 ,观察性能指标数据。 三个标准来衡量,96正常,97时候有一个标准超了。
此时,这个接口 最大可接受的并发用户数就是 96
可以用 这个 96并发用户数,取做性能测试, 把结果记录下,作为:基准
压力测试、压测、稳定测试、容量测试、配置测试
口语中的压测:先做负载测试,得到 最大可接受的并发用户数。 然后,用这个最大可接受的并发用户数,做性能测试,得到性能指标数据,根据这些指标数据,判断是否有性能问题,问题可能在哪里。
压力测试: 长时间的性能测试。 通过长时间,来发现 服务器是否存在不稳定性的问题。
长时间: 现在一般,用 小时为单位。 以前是7*24.
这种测试的 并发用户数 ,应该设置多少呢? 这个问题,就要 压力测试 & 稳定性能 区分。
不稳定: 动不动就 重启、宕机、报错 --------就会说 服务不稳定。 瞬间压力大,就很容易导致不稳定。
瞬间压力: 比较端的时间 ,有非常大的请求。-----稳定性能测试,一般就是 并发用户数比较高。一般会加集合点。
压力测试, 相对 稳定测试而已,就会是 并发用户数较低。压力测试的并发用户数,我们就会选择 最大可接受并发用户数的[20%,80%]区间的中的值。
稳定性能测试,就会取最大可接受并发用户数的[80%, 无穷大]
容量测试: 测试数据库中数据量级不同的时候,性能的差异。
造数据: 造的数据,一定要完整的正确吗?
配置测试:不要仅理解为硬件配置,其实是更改服务的关键参数之后,进行性能测试。
性能指标
并发用户数: 并发请求的人 -------性能测试的源动力。=====请求的人,不等于请求账户。
响应时间:从发起请求,到收到响应之间的时间。(网络传输时间 + 服务器内部处理时间)不包括前端渲染时间。
- 网络传输时间越接近0, 响应时间 越接近 服务器内部处理时间 ------性能测试,尽可能独立网络、不要用无线网络。尽可能用局域网。
- 响应时间,一般用 平均响应时间 ART
- 90% 95% 99%: 所有请求的响应时间,做要给从低到高的排序。总量90% 95% 99% 那个点的时间数据,就是90%,95% 99%的响应时间
- 有的企业用 90%数据,作为 响应时间的标准。这个就要严格很多。------ 说明,接口,越稳定。
吞吐量
tps\QPS\RPS\HPS
吞吐率
资源利用率
标签:请求,并发,性能,概念,线程,测试,用户数 From: https://blog.51cto.com/u_16991796/11898641