什么是线程?
线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。
一般在性能测试过程中,我们认为一个线程就是一个虚拟用户。
什么是多线程?
多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,一个进程是由一或多个线程组成,进程只负责资源的调度和分配,线程才是程序真正的执行单元,负责代码的执行。
多线程的好处:
可以提高CPU的利用率。在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。
并发用户数:在同一时刻与服务器进行交互的在线用户数量。
性能测试概念?
百度百科定义:性能测试是通过自动化测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能测试。
性能测试的目的?
发现性能瓶颈,包括应用、服务器、数据库、操作系统等。
性能测试分类
负载测试:通过对被测试系统不断地加压,直到超过预定的指标如cup使用率小于80%或者部分资源已经达到了一种饱和状态,一般运行时间比较短。
压力测试:通过对被测系统逐渐加压,当达到一定的饱和程度(如CPU、硬盘等已经处于饱和状态),甚至系统出现错误或异常,找到系统瓶颈,一般运行时间较长。
配置测试:配置测试是通过调整系统软硬件环境,了解各种不同环境对系统性能的影响,从而找到系统的最优配置。
并发测试:模拟用户并发访问软件系统,测试多用户同时访问同一应用、模块或数据,观察系统是否存在死锁、系统处理速度是否明显下降等其他性能问题。
容量测试:
通常是指数据库相关的测试,目的是获取数据库的最佳容量能力,从而预估数据库容量,一般是在一定并发用户下,建立不同级别的数据,查看数据库的处理能力,从而获取数据库的各项性能指标。
稳定性测试:在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。
测试流程
主要性能指标
事务:从客户端发起的一个完整操作,包括一个或多个请求。
响应时间:从客户端发起的一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费时间。
平均响应时间(average):每个请求request的平均响应时间。
TPS(Transaction Per Second):每秒钟系统能够处理的交易或事务的数量。
并发数:即并发用户数,指系统可以同时承载的正常使用系统功能的用户数量。
每秒点击次数HPS(Hits Per Second):指在一秒钟的时间内用系统处理的事务量。它一般和TPS成正比关系,是B/S系统中非常重要的性能指标之一。