• 性能测试工具原理理


    性能测试工具分为:服务端性能测试工具和前端幸好你能测试工具两大类。服务端性能测试工具主要支持产生压力和负载,录制和生成脚本,设置和部署场景,产生并发用户和向系统施加持续的压力;而前端性能测试工具则不关心系统的压力和负载,只需要关心浏览器等客户端工具对具体的需要展现的页面处理过程

    4.1服务端性能测试工具

    服务端性能测试一般包括以下部件:

    虚拟用户脚本产生器(Virtual User Generator)

    压力产生器(Player)

    用户代理(Agent)

    压力调度和监控系统(Conductor)

    压力结果分析工具(Analysis)

     

    4.2前端性能测试工具原理

    客户端花费的用于加载和展现的时间就是前端响应时间,而客户端的性能表现通常被称为前端性能。

    4.3选择服务性能测试脚本使用的协议

    选择性能测试脚本协议最简单的原则是:选择客户端和服务器通信时所采用的最上层的协议。例如:Web应用的客户端和服务器之间通常是使用HTTP/HTTPS协议进行通信的,但HTTP/HTTPS协议是基于TCP协议上的应用层协议,因此在LoadRunner工具中,采用Socket或HTTP/HTTPS协议上的应用层协议,因此在LoadRunner工具中,采用Socket或HTTP/HTTPS协议均能录制得到脚本。另一个例子是使用自定义的TCP或UDP协议进行通讯的C/S应用(如腾讯的QQ),在TCP或UDP协议层上一定可以进行录制等方式得到客户端与服务端之间的通信协议,并使用符合协议要求的编码与解码方式产生和解析通信数据包。

    选择性能测试脚本录制协议时,有几点必须说明的内容:

    (1)使用socket协议可以对任何应用通信进行录制,但这种录制生成的脚本很可能没有任何意义。

    (2)在对应用的通信进行录制生成脚本后,对脚本进行回放,有时会出现回放无法继续的情况(停留在某个步骤无法进行下去),此时应该考虑是否使用了合适的协议,很可能是由于协议选择不正确或是不全面,导致部分通信没有录制成功。

    4.4性能测试工具的选择与评估

    选择那种工具通常具有三个层次的意义:第一,创建还是购买?第二,如果和购买,如何选择?第三,如果自行创建,如何创建?

    4.4.1创建和购买的选择

    考虑情况:

    1.如果需要的是一个仅用于本次项目测试的工具,或是被测系统使用了比较特殊的协议等,可以考虑自行创建需要的测试工具;

    2.如果需要作为第三方接受委托进行性能测试,选择被广发接受的商业工具可能会让委托方更有信息;

    3.如果需要以最快的速度建立立即可用的组织的性能测试环境,选择商业工具应该是比较合适的方案

    4.如果希望建立一个能够长期发展,并能适应产品和组织变化的性能测试体系,则基于开源工具创建适合组织的工具体系可能是最佳的方式。

    4.4.2测试工具的评估和选择过程

    评估步骤:

    1.列出需要的工具功能列表

    可以从以下几个方面考虑需要的功能:

    (1)工具是否支持被测系统运行的平台(软硬件环境、数据库环境)吗?

    (2)工具能否支持被测系统使用的协议吗?

    (3)工具能否支持特殊要求(如防火墙、负载均衡、动态页面生成等)吗?

    (4)工具能够提供对服务器、应用服务或数据库类型计数器的监控吗?

    (5)工具使用的脚本语言功能完善吗?

    对于开源性能测试工具,除了对其具有的功能进行考虑外,还需要从工具的可维护性和社区支持等方面进行考虑,具体如下。

    (1)工具是否有相对固定的维护成员?项目活跃吗?工具社区是否能提供足够的支持?

    (2)工具采用的是何种编程语言?本组织有合适的资源对工具进行维护和支持吗?

    (3)工具是否具有良好的结构和拓展性,以便于二次开发、功能添加或将其集成到组织的自动化体系中

    (4)工具采用的是何种开源许可协议(License)?这种开源许可协议是否会给使用和二次开发带来法律上的风险和问题?

    2.工具比较

    对工具的比较内容包括以下几个方面:

    (1)功能比较。

    (2)工具能获取支持的比较。

    (3)供应商的信誉。

    (4)工具的维护成本。

    性能测试工具的功能评估:

     

    3.成本分析

  • 相关阅读:
    [Swift]LeetCode910. 最小差值 II | Smallest Range II
    转 关于shell脚本中#!/bin/bash and #!/bin/ksh 的说明
    转 对象继承
    转 PHP编程过程中需要了解的this,self,parent的区别
    转: ORA-06508 could not find program unit being called: "DBSNMP.BSLN_INTERNAL
    Multitenant best Practice clone pdb seed and Clone a Pluggable Database – 12c Edition
    Plugging an Unplugged Pluggable Database issue 3
    日历 php
    Datapatch AND What to do if the status of a datapatch action was not SUCCESS due to finding non-ignorable errors
    oracle中的用户详解 【转】
  • 原文地址:https://www.cnblogs.com/shen-qiang/p/11760390.html
Copyright © 2020-2023  润新知