性能测试实战(二):性能测试基础

一、性能测试流程

1、性能测试准备

(1)需求分析,因为我们的产品出的需求不一定准确

(2)需求需要反复讨论,确认需求,明确性能指标

(3)自己部署性能测试环境

        我们需要什么,系统软件架构

        这些软件怎么部署

        如果使用Jenkins,构建命令 你得清楚

(4)企业中性能测试,一般都是性能测试人员独享

        工作量不一样,同样一个需求,性能测试时间大概是功能测试2.5倍

(5)确认接口协议(默认http)

2、搭建性能测试环境

(1)服务环境+数据库服务环境+网络环境

        企业中性能问题,70%问题都与数据库有关

3、性能测试脚本开发

(1)工具选择(根据协议选择)

(2)写脚本

(3)脚本性能转换(将功能测试脚本转换成性能测试脚本)

(4)性能场景设计

        简单场景:单接口

        混合场景:多接口混合

4、性能测试脚本执行(时间很长)

(1)多轮测试,才能找到我们的并发用户数的具体值

        这个时间比较长

(2)性能问题

        定位分析

5、结果分析与调优(时间非常长)

(1)分析思路:服务器硬件瓶颈-》网络瓶颈-》服务器os瓶颈(参数配置、数据库、web服务器)-》应用瓶颈(sql语句、数据库设计、业务逻辑、算法)

(2)有些我们可以调优,有些不行

6、测试报告与结果跟踪

二、性能测试对象

        通过接口调用服务器能力,测试我们服务器的性能,对服务器的性能进行分析于调优。


1、主要内容,是接口调服务器,进行服务器性能分析
所以,服务器是测试重点。


2、因为,我们是用的接口,接口,即用户端与服务器进行数据传输通道,所以,我们的性能分析与调优可以使用于用户端。也就是说,服务器端性能得到调优之后,用户端的性能,也会变好。
用户端的性能测试,与用户的设备有很大关系,在做用户端的性能测试,有非常大的差异性,与服务器端的性能测试是不一样的。
所以,现在主流的性能测试,是服务器端的性能测试。
所以,就必须要有服务器的相关知识,说白了Linux系统的相关性能,现在的主流的服务器都是Linux服务器,少量的是window,但是绝对没有mac作为服务器的。

3、Linux的相关知识、基本命令使用,是必须要掌握的,Linux中部署环境这个也是必须要掌握, linux的系统知识操作系统原理)


4、服务器:硬件+操作系统+服务一起,提供能力输出,我们才叫他为服务器
服务:可以是自己公司开发的产品、可以某一些软件


三、服务器硬件的发展过程


1、台式机 -》刀片机 -》虛拟机 -》云服务器
        这个中间,有一个非常重要技术虚拟技术


2、刀片机,是一种在台式机上,进行了专项优化之后,专门用于做为服务器的硬件机器。
(1)Linux系统,作为服务器,国内用的更多是 centos,是我们Linux的一个发行版本, ubuntu也有一定市场
(2)少量 windows server系统
(3)此时,我们的刀片机构成的系统,还是只有1个


3、出现了虚拟机技术(操作系统)
(1)开始在刀片机上虚拟多个操作系统
(2)服务器==硬件+操作系统(n)+服务==n个服务器
        这个时候,我们的服务器资金投入就可以降低
        我们的总体能力输出,也更强了


4、出钱买大是的硬件设备+不断提升虛拟化技术
        在大量的硬件设备上,使用更加优化的虚拟化技术之后,能够更低成本的建造出虚拟的操作系统,当这个操作系统数是巨大时,这个时候,云就出现了。
        当这个云技术出现之后,有了大量的操作系统,这个成本就急剧下降,下降到比硬件成本要低很多的时候,我们企业就开始使用了云服务器上的操作系统了。


5、服务发展
(1)最开始,所有的项目代码,都放在1个工程下面
        随着功能不断的迭代更新,项目的代码越来越多,那么,我部署的服务器的资源,也就会要求越来越高,因此通过以下几个方面进行了处理:
        拆服务:数据库、文件服务、应用服务-服务能力有所增强
        构成集群,集群越大,我的输出能力也会越强
                集群:集合相同能力的机群(集合有相同能力输出的服务器,一起向外提供更强能力输出)
                负载均衡:根据我们能力提供者的情况,动态分配它承受的压力,这涉及到负载均衡策略

        继续拆分:形成应用服务器

                把应用拆小,比较常见的方式,是根据模块拆分,形成微服务

                        最开始拆分的粒度比较粗

                        越到最后,拆分的粒度就越 细

                        管理上就成了一个问题

                                系统架构的不断优化

                                架构也就越来越复杂

四、相关知识补充

1、数据库

(1)关系型数据库:mysql\Oracle\postgresql\sqlserver

(2)非关系型数据库:redis\mongodb

(3)时序数据库:根据时间顺序存储数据 influsdb\Prometheus

        按照时间顺序取出数据,这个数据就是一条折线,所以,作为监控来使用非常适合。

2、测试人员通病

(1)网络知识薄弱

(2)害怕英语

你可能感兴趣的:(性能测试,性能测试)