• 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


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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 对于业内人士而言,软件测试要做到与时俱进还真不容易。因为测试团队与领导之间在测试方法、测试地点和时间问题上有着许多误解,所以使得准时的、高质量的发布具有一定的挑战性。如果高层领导从测试之初就参与进来,你就能够克服很多这样的问题。虽然他们不会参与到实际测试,但是他们能够从基层了解到从测试到交付一个优质软件需要做到什么。通过设定明确的质量预期,并了解满足测试团队的需求(例如培训、练习、工具等等),才能从顶层建立领导力。由于公司在持续交付中进行测试,测试计划的必要成为他们质疑的一点。现代测试计划可以为构建和传达测试策略和方法提供帮助。他们给测试团队提供的是交流各类假设和方法的渠道,其中也包括了对测试...
            0 1 1537
            分享
          •   马斯克的社交媒体平台 X(推特)日前迎来了又一个“里程碑”—— 该平台提供的招聘信息现已收录超过 100 万个职位。  X 公司 CEO 琳达·亚卡里诺发文庆祝:万能应用现在一天比一天更近!从更多的视频(播放)选项,再到通话功能,再到 Grok(IT之家注:马斯克旗下 xAI 的聊天机器人),乃至求职招聘平台。特别提醒一下,我们现在有 100 万个职位任君挑选!  随后,马斯克也转发了这条推文,同时还转发了一张梗图:马斯克的 X 已经攻占了 Facebook、Instagram、Reddit、YouTube 等应用的“领地”,正欲“拿下”招聘平台领英 LinkedIn。  去年 11 月,...
            0 0 789
            分享
          • 作为测试人员,我们了解各种类型的软件测试,如功能测试、非功能测试、自动化测试、敏捷测试及其子类型等。我们每个人在测试过程中都会遇到几种类型的测试。我们可能听说过一些,我们可能已经研究过一些,但并不是每个人都了解所有的测试类型。每种类型的测试都有其自身的特点、优点和缺点。这里,我们主要介绍了我们在日常测试生活中通常使用的每种类型的软件测试。1) 单元测试单元测试是一种软件测试,它在单个单元或组件上完成以测试其更正。通常,单元测试由开发人员在应用程序开发阶段完成。单元测试中的每个单元都可以被视为一个方法、函数、过程或对象。开发人员经常使用 NUnit、Xunit、JUnit 等测试自动化工具来执行...
            0 0 1926
            分享
          • 使用python3.6编写一个单元测试demo,例如:对学生Student类编写一个简单的单元测试。1、编写Student类:#!/usr/bin/env python3 # -*- coding: utf-8 -*-   class Student(object):   def __init__(self,name,score): self.name = name self.score = score def get_grade(self): if&nb...
            0 0 1432
            分享
          • 印象中,测试流程制度这块,我们每年都会更新,当然啦,还是hr追的紧啊,主要目的说是为了保障线上质量。浅浅分享一下吧,觉得实用可以直接抱走。今年我们主要抓的部分分为两个,一个是计划达成率,一个是线上质量。按照实际完成的情况进行加分或者扣分。一、【计划达成率】按照测试计划及测试用例进行测试,符合相关项目规范,100%完成开发计划。因个人原因,每延迟一天,扣10分,项目整体提前一天及以上,加10分。(项目具体日期按照项目评估时间进行)二、【上线后质量】产品/功能上线后的经分析是测试遗漏导致的bug,进行扣分。若是P1级别的bug,1个扣10分,若是P2级别bug,1个扣5分,若是P3级别bug,扣1...
            1 0 1718
            分享
      • 51testing软件测试圈微信