zoukankan      html  css  js  c++  java
  • 30 | 工欲善其事必先利其器:后端性能测试工具原理与行业常用工具简介

    后端性能测试和后端性能测试工具之间的关系是什么?

    后端性能测试工具 != 后端性能测试

    完整的后端性能测试应该包括性能需求获取、性能场景设计、性能测试脚本开发、性能场景实现、性能测试执行、性能结果报告分析、性能优化和再验证。

    在这其中,后端性能测试工具主要在性能测试脚本开发、性能场景实现、性能测试执行这三个步骤中发挥作用,而其他环节都要依靠性能测试工程师的专业知识完成。

    后端性能测试工具和 GUI 自动化测试工具最大的区别是什么?

    • 第一个显著区别是,模拟用户行为的方式不同。

    GUI 自动化测试工具模拟的是用户的界面操作,因此测试脚本记录的是用户在界面上对控件的操作;而性能测试工具模拟的是用户的客户端与服务器之间的通信协议和数据,这些通信协议和数据往往是用户在界面上执行 GUI 操作时产生的。

    • 第二个显著的区别是,测试的执行方式。

    UI 自动化测试的执行,一般是单用户执行并验证功能结果;而性能测试的执行,往往需要同时模拟大量的并发用户,不仅需要验证业务功能是否成功完成,还要收集各种性能监控指标,会涉及到压力产生器、并发用户调度控制、实时监控收集等内容,所以性能测试的执行控制要比 GUI 自动化测试复杂得多。

    后端性能测试工具的原理是什么?

    • 首先,后端性能测试工具会基于客户端与服务器端的通信协议,构建模拟业务操作的虚拟用户脚本。对于目前主流的 Web 应用,通常是基于 HTTP/HTTPS 协议;对于 Web Service 应用,是基于 Web Service 协议;至于具体基于哪种协议。

    • 然后,开发完成了虚拟用户脚本之后,后端性能测试工具会以多线程或多进程的方式并发执行虚拟用户脚本,来模拟大量并发用户的同时访问,从而对服务器施加测试负载。

    • 接着,在施加测试负载的整个过程中,后端性能测试工具除了需要监控和收集被测系统的各种性能数据以外,还需要监控被测系统各个服务器的各种软硬件资源。比如,后端性能测试工具需要监控应用服务器、数据库服务器、消息队列服务器、缓存服务器等各种资源的占用率。我们通常把完成监控和数据收集的模块称为系统监控器。

    • 最后,测试执行完成后,后端性能测试工具会将系统监控器收集的所有信息汇总为完整测试报告。

    虚拟用户脚本生成器
    压力产生器
    压力控制器
    系统监控器
    测试结果分析器

    后端性能测试中,性能测试场景设计是什么意思,具体会涉及哪些内容?

    性能测试场景设计,是压力控制器发起测试负载的依据。

    性能测试场景设计,目的是要描述性能测试过程中所有与测试负载以及监控相关的内容。

    通常来讲,性能测试场景设计主要会涉及以下部分:

    • 并发用户数是多少?

    • 测试刚开始时,以什么样的速率来添加并发用户?比如,每秒增加 5 个并发用户。

    • 达到最大并发用户数后持续多长时间?

    • 测试结束时,以什么样的速率来减少并发用户?比如,每秒减少 5 个并发用户。

    • 需要包含哪些业务操作,各个业务操作的占比是多少?比如,10% 的用户在做登录操作,70% 的用户在做查询操作,其他 20% 的用户在做订单操作。

    • 一轮虚拟用户脚本执行结束后,需要等待多长时间开始下一次执行?

    • 同一虚拟用户脚本中,各个操作之间的等待时间是多少?

    • 需要监控哪些被测服务器的哪些指标?

    • 脚本出错时的处理方式是什么?比如,错误率达到 10% 时,自动停止该脚本。

    • 需要使用多少台压力产生器?

    业内主流的后端性能测试工具有哪些?

    传统软件企业偏向于使用 LoadRunner,而互联网企业普遍采用 JMeter。


    来源于 极客时间 茹炳晟 软件测试52讲

  • 相关阅读:
    [leetcode]34.Find First and Last Position of Element in Sorted Array找区间
    [leetcode]278. First Bad Version首个坏版本
    [leetcode]367. Valid Perfect Square验证完全平方数
    [leetcode]45. Jump Game II青蛙跳(跳到终点最小步数)
    [leetcode]55. Jump Game青蛙跳(能否跳到终点)
    [leetcode]26. Remove Duplicates from Sorted Array有序数组去重(单个元素只出现一次)
    [leetcode]27. Remove Element删除元素
    [leetcode]20. Valid Parentheses有效括号序列
    [leetcode]15. 3Sum三数之和
    C#中的局部类型
  • 原文地址:https://www.cnblogs.com/Uni-Hoang/p/13362659.html
Copyright © 2011-2022 走看看