• 0
  • 0
分享

前言:性能压测中我们需要明白以下几点

1、好的开始是成功的一半,前期的准备非常重要

2、过程中,关注每个细节,多个维度监控

3、在调优中多积累经验

4、对结果负责,测试报告要清晰易懂,追求数据的准确性

一、如何分析性能数据(测试结果)

答:主要从吞吐量,错误率,资源监控数据,比如一个接口的处理能力为100个/s,高于需求的期望值。错误率为0.001%,期望值为0.01%,最高cpu占用率不超70%。以上指标都符合期待值,那么通过提取这些关键数据就可以记录下来,作为测试的准出标准

二、如何快速定位到性能阈值eg:每秒处理事务数达到最理想的值,有没有什么技巧?

答:对于一个新的压测单元,建议先设置一个线程数较小的初始值,逐渐增加线程数来观察事务的处理能力的变化。直到达到性能拐点(处理能力下降,响应时间明显增加)

三、线程数是压的越多越好吗?压到多少线程合理?

答:线程数受压力产生机的CPU和内存影响较大,并且Jmeter是基于响应原理工作(一个线程在发出请求并得到应答后才会继续发出下一个请求。)举个例子,jmeter(单台)不能在服务器只能处理100个请求每秒的情况下,提供200QPS的压力,一般情况下建议不超过500,默认从100线程开始施压,根据实际处理能力来调整线程数大小

四、压测持续时间长短有什么区别?压测持续时间长,保证效果更接近期望值?设置压测时间较短时的目的是什么,为了测高并发?

答:这个问题好比一个问卷调差,你调查的范围越大,取样更广泛得出的结论才更接近平均值(统计年收入,结果只统计了张三跟马云)。一般情况下衡量单个接口的指标,时间不需要太长,因为涉及大量的数据读写操作,但至少不低于5分钟。如果能保证长时间运行稳定的情况下,取样时间可以相对减小

五、平均响应时间为什么越随着时间的增长,越来越长?除了队列阻塞,还有其他原因吗?

答:大多数情况下是服务端的处理能力下降导致,在较大压力下,CPU和内存资源长时间被占用无法释放

六、性能测试通常需要反复测试几轮才能达到预期的结果,有没有硬性标准?

答:完成变更(优化)后计划所列出的各项测试内容;测试结果稳定,数值无较大浮动(一般适用于最后一轮,已无优化空间)

七、测试环境是否存在网络瓶颈如何确认?

答:一般情况下需要压测机和服务器在同一局域网内,走内网带宽,如果走外网很容易达到网络瓶颈。

a.找运维人员或机器所属负责人进行确认。

b.直接复制文件传输到另一台服务器查看网速是否达到内网带宽上限

(scp-r-P端口号root@123.123.123.123:/root/

如内网带宽为100M时,可传输的最大网速为12M/s左右。

如传输速率只是2M/s以下可能不在同一网段,一般也满足不了压测传输对网速的要求)

八、我们怎么选择性能压测工具

【Loadrunner】

商用,支持各种协议,例如http,tcp,ftp等

支持多种并发模型,C脚本本身性能较高

臃肿,麻烦

【Jmeter】

开源、使用方便

基于Java,可扩展,支持模型较单一。本身性能受限于同步等待以及java本身

比较灵活,可以自己编写符合自己要求的脚本,二次开发更适合我们服务端测试

【其他】

Apachebench:工具小巧简单,上手学习较快

Wrk:性能超级强,某些bench测试使用(https://github.com/wg/wrk)

Grinderpython

还有很多


作者:Detail-L

原文链接:https://wenliang.blog.csdn.net/article/details/106145877


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   随着IT行业的不断发展,软件测试人员的薪资待遇也随之增加,如何提升自己的专业技能,拓宽自己的职业发展道路并提升岗位薪资待遇才是每一位测试人员应该考虑的事情,那么这篇文章就来聊聊测试人员的职业发展方向有哪些?  一、技术方向  技术方向就是不断精进技术水平,时刻关注行业最新技术,并将这些知识作为自身将要学习的目标,相对来说,技术水平越高,拿到的薪资待遇也就越高。测试工程师按照技术水平分为功能测试工程师、自动化测试工程师、测试开发工程师。  从招聘网站上看到了企业招聘软件测试工程师的要求,长远来看,走技术路线一定要会编程语言,Java、Python、C/C++,并且数据库以及各种测试工具都要会...
            0 0 2189
            分享
          • 记得那是2年前,闲来无事简单游览公司关于人事部分相关事宜介绍,无意间看到公司在职员工考取《信息系统项目管理师》资格证书后,高级每月可获得600元工资之外奖励、中级为300元,对于爱钱如命的我来说,顿时吸引了眼球,引起了我的好奇,开启了我与之相生相克历程。《信息系统项目管理师》是什么?考试难度大么?《信息系统项目管理师》是软考中的一种,分为高级和中级,其中高级比中级在考试科目上比中级多出了一项论文(不要小看这一篇论文,这是真正体现你学习水平的一关),在选取自己是考高级和中级的选择上,个人建议还是可以直接报考高级(一来可以省去考完中级再复习报考高级的时间,二来对于收入来说,也是差了一半);考试时间...
            0 0 708
            分享
          • 根据去年的大数据报告显示互联网行业的薪酬已经超过金融行业夺取了冠军席位,互联网行业的高薪酬成为其他很多行业羡慕的对象,因此很多人转行从事IT工作,其中软件测试工作尤其受欢迎,特别是在一线城市,因为软件测试如门槛低,创业公司多,需求大,容易找工作,提升很快,成为很多入门互联网行业选择的职业。作为一名刚入门的软件测试工程师,了解清楚软件测试的方向是必须的,因为只有清楚了测试方向才能确定自己的发展方向,软件测试方向大致分为以下五种:第一种Web测试:在几年之前,移动端互联网没有爆发之前,Web测试是测试的主流方向,虽然现在被移动互联网分了一杯羹,但是需求仍然很大,Web测试包括测试,Web服务器测试...
            0 0 1251
            分享
          • 1、MySQL基础1.1 MySQL的基本知识按照惯例,先介绍一下 MySQL基本知识:MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 的 SQL “结构化查询语言”,是用于访问数据库的最常用标准化语言。MySQL 软件采用了 GPL(GNU 通用公共许可证),由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本,而选择 MySQL 作为其网站数据库。1.2 MySQL的优势MySQL的优势有哪些,我们来瞧瞧。・MySQL开源的,无需支付额外费用...
            1 0 4545
            分享
      • 51testing软件测试圈微信