• 性能测试理论


    一、mockServer

    1、什么是mock

    Mock(替身),server(服务) 测试替身的服务

    2、不同角色对mock的使用场景

    首先将两个安装包下载到JAVA环境文件内,方便后期使用

    1)前端

    1.1、前端已写好页面,但是后端的接口没写好,那么前端程序员正确的姿势是模拟后端

    1.2、在控制台内启动,进入放置之前填写请求信息的文件夹内(修改后路经:D:\学习资料\JMeter\测试练习)

     

    1.3、启动的命令是:java -jar moco-runner-1.3.0 standalone.jar http -p 12306 -c product.json

     在Postman中输入请求地址与请求方式,发送获取响应数据

    2)后端

    例如:A给B服务⼀个⻋牌号,那么B返回⻋辆的其他信息

    自己造数据,编写HTTP请求的JSON文件,放置在JAVA环境下

    输入启动命令:java -jar moco-runner-1.3.0 standalone.jar http -p 12306 -c park.json

     Postman中输入请求地址,请求头和请求参数,发送响应

    3)测试

    测试过程中无数据,怎么办?有两种方式 
    第一种:自己造数据
    第二种:自己mock数据
    首先自己造数据,编写HTTP请求的JSON文件,放置在JAVA环境下,输入命令启动,之后再Postman中响应以及断言

    二、性能测试

    1、什么是软件性能

    对⼀个产品⽽⾔,性能的及时性是⽤响应时间或者吞吐量来进⾏衡量,对⽤户⽽⾔,响应时间就是端到端的⽤户基本体验

    2、不同角色对性能的理解

    1)用户

    在⽤户的⻆度⽽⾔,软件性能就是⽤户操作的响应时间。⼀般⽽⾔关于响应时间业界的说法具体如下:
    1-3秒,属于优的表现
    3-5秒,可以接受,属于中间的表现
    5秒以上,⽆法接受
     

    2)运维

    运维除了关注响应时间外,也会关注更多底层的资源信息,这些资源信息具体可以汇总为如下:
    系统资源(CPU和内存)
    数据库资源(IOPS资源)
    JVM内存是否够⽤
    系统的最⼤容量


    3)程序员

    开发的关注度会更加的全⾯,毕竟代码都是程序员来编写的,具体可以汇总为如下:
    前后交互的响应时间
    中间件的参数设置
    内存释放泄露
    连接数泄露
    是否存在不合理的内存使⽤⽅式
    是否存在不合理的线程同步⽅式
    系统中是否存在不合理的资源竞争
    系统架构&代码结构


    4)测试

    ⽤户关注的视⻆属于全栈性的,需要考虑⽤户视⻆的产品体验,也要监控以及关注运维视⻆和开发视⻆,所以性能
    测试中测试的具体⼯作职责可以总结为:
    设计合理的场景和测试⽤例来验证系统的资源数据
    验证在⾼并发的情况下架构是否满⾜
    给架构师以及开发⼈员提供中间件配置参数的合理值范围
    使⽤技术⼿段监控系统,DB,中间件,全链路监控的⽅式来监控系统资源情况


    5)WEB前端

    所谓前端的性能⽬前也是性能测试中⽐较热⻔的技术之⼀,关注的点具体汇总为如下:
    浏览器的资源加载(HTML解析,图⽚资源加载,CSS⽂件资源加载)
    前端缓存技术的优化是否合理性
    前端与后端的交互性耗时

    三、软件性能的常用术语

    1、响应时间(Response Time)

    网络时间+应用程序的处理时间

    Web服务:nginx

    应用服务:Django服务

    Date服务:MySQL

    2、并发用户数

    性能测试的核心是验证当前系统是否支持现有用户的访问,也就是说系统可以承受在同一时间段多少用户来访问系统

    并发用户数:N个用户向服务发送请求

    在线用户数:仅仅在线,但是不代表发送了请求,属于僵尸用户

    并发用户数秒,可以说不论从业务视角出发,还是服务端承受压力而言,描述的是统一时间同时向客户端发出请求的客户,某些时候也称为“并发测试”,这中间主要体现的是服务端承受的最大并发访问数

    3、吞吐量

    主要用于数据传输方面,也就是被测试系统的执行效率,该术语用于描述数据传输速度(字节/秒或者比特/秒),在某些情况下(如DB层面),吞吐量值的是操作的速度,也就是每秒操作数或者每秒业务数。或者也可以说单位时间内客户端请求的数量,直接体现系统的性能承载能力。

    4、性能计数器

    WebServer:HTTP连接数

    应用Server:服务被部署的系统的CPU和内存资源

    DateServer:IOPS

    5、IOPS 

    该术语主要是针对数据库的,也就是每秒发生的输入/输出操作的次数,是数据传输的一个度量方法。用于磁盘的读写,IOPS指的是每秒读和写的次数

    IOPS衡量的是读写的速度

    性能测试的过程中,任何指标不能超过75%,一旦超过75%,说明可能存在瓶颈

    6、使用率

    对于服务所请求的资源,使用率描述的是所给定的时间区间内资源的繁忙程度

    Out Of Memory(OOM):内存泄漏

    如一个业务中,会使用大量的内存资源,总的内存资源是4G,在一定数据量的情况下执行该业务形态,内存使用率从100M一直占用到3G,然后随着业务内存资源得到释放呈下降的趋势,那么可以说内存使用率最高为75%

    7、思考时间

    思考时间(Think Time),也称为休眠时间,在业务视角,思考时间值得是用户在进行操作时每个请求之间的间隔时间。

    8、TPS/QPS

    事务指的是某个操作或者是一组操作的组合,如登录的事务就是输入账户和密码,点击登录按钮跳转到登录成功的页面并且信息都加载出来。TPS统计的是每秒处理的事务数,即系统每秒能够处理的事务的数量。QPS指的是每秒查询率,如DB服务器在规定时间内处理流量多少的衡量标准

    四、性能测试理论

    资源调度

    CPU密集型:应用程序执行繁重的计算,通常时间比较长,占用大量的CPU——计算型

    IO密集型:应用程序执行IO,计算不多,会占用大量的内存资源系统的最小粒度是线程,也就是说系统调度中粒度最细的就是对线程的调度——读写型

    线程优先级:在没有资源的情况下,一般优先级别高的优先被执行,优先级别从1-10,没有对线程设置的时候,所有的优先级默认都是5

    等待队列

    1)先进先出

    2)没有优先级的情况下,哪个资源跑的快就先处理

  • 相关阅读:
    eclipse 字体设置 Courier New字
    求百分比
    往数据库中插入固定数量的数据
    查看oracle连接数
    c# 简单的一个记事本
    控制台下,查看端口状态命令
    c++ 字符型转整型
    浅析vc6.0的辅助编程工具
    连连看辅助工具
    驱动精灵(Driver Genius Professional Edition 2007) v7.1.622 完美注册版(可升级)
  • 原文地址:https://www.cnblogs.com/Kaylee/p/15893286.html
Copyright © 2020-2023  润新知