性能测试分类
性能测试
压力测试
压力测试是指当硬件资源如cpu、内存、磁盘空间等不充足时对软件稳定性的检查。
压力测试属于负面测试(Negative testing),使大量并发用户/进程加载软件以使系统硬件资源不能应付。这个测试也被称为是疲劳测试(Fatigue testing),通过超出其能力的测试来捕获应用程序的稳定性。
压力测试的主要思想是确定系统故障,关注系统如何优雅地恢复正常,这种质量被称为是可恢复性。
负载测试
负载测试是不断增加系统的负载,直到负载达到阈值——评估系统在预期工作负载下的性能的测试。
该方法可以找到系统的性能极限,可以为性能调优提供相关数据。
持久测试
持久测试(Endurance testing),也被称为是浸泡测试(Soak Testing),它也是一种非功能的测试。
持久测试是指在相当长的时间内使用预期的负载量对系统进行测试,以检查系统的各种行为,如内存泄露、系统错误、随机行为等。
这里的提到的相当长的时间是相对而言的,举例来说,如果一个系统设计为运行3个小时的时间,那可以使用6个小时的时间来进行持久测试;如果设计为5个小时的时间,不妨用10个小时的时间来进行持久测试。对于现在的许多网络类应用程序,通常情况下会持续运行好多天,那么进行持久测试时可以选择更长的时间段。
尖峰冲击测试
尖峰测试是在目标系统经受短时间内反复增加工作负载,以至超出预期生产操作的负载量时,分析系统的行为,验证其性能特征。它还包括检查应用程序是否可以从突然增加的超预期负荷中恢复出来的测试。
例:在电商应用程序中经常有“整点秒杀”的活动,所以在整点时间前后的两三分钟时间里,会有巨大数量的用户进入到该活动中秒杀商品。尖峰测试就是为了分析这类场景。
容量测试(大数据测试)
容量测试是一种非功能的测试,它通过向应用程序中添加大量的数据来实现。可以通过向数据库插入大量的数据或让应用程序处理一个大型文件来进行测试应用程序。
通过容量测试,可以识别应用程序中具有大数据时的瓶颈,检查应用程序的效率,进而得到不同数据量级下应用程序的性能。
注意,这里所说的数据一定是符合其功能场景的,不是毫无关系的数据。
性能指标
PS:TPS、点击率,吞吐量等
首先,用户操作系统,每秒向Web服务器提交的HTTP请求数就是Hits per Second(每秒点击次数),用户操作的场景,可以定义为一个事务(例如学习课程),系统每秒处理事务数就是Transactions per Second(每秒通过事务数/TPS),这样就会有数据在流动,那么用户在任何给定的每一秒从服务器获得的数据量,就是Throughput(吞吐率)。系统给予用户响应所需要的时间,就是Average Transaction Response Time(响应时间)。 TPS和响应时间在理想状态下都是额定值,因为系统硬件/软件/网络环境不变的情况下,这些都是不变的,但是实际使用中
正常情况下:
系统开始使,tps会随着用户数的增加而增加,当增加到一定程度时候,tps变得稳定下来,该tps值便是系统的处理能力,再随着用户数的增加,只能牺牲客户的响应时间去满足系统的处理能力,即,系统的响应时间变得越来越大。
系统受的压力会随着点击的增加而增加,系统性能也就慢慢的下降,例如释放资源的速度开始变慢、换页开始频繁,那么,后面的点击造成的请求,很有可能需要等待的时间随机变长。但是采样的频率是不变的,所以后面的采样值应该慢慢的变小。
也就是像有些图中所显示的那样:随着场景时间的持续,点击率,吞吐量等图的曲线慢慢的下降。
注册用户数
注册用户数指软件中已经注册的用户,这些用户是系统的潜在用户,随时都有可能上线。这个指标的意义在于让测试工程师了解系统数据中的数据总量和系统最大可能有多少用户同时在线。
在线用户数
在线用户数是指某一时刻已经登录系统的用户数量。在线用户数只是统计了登录系统的用户数量,这些用户不一定都对系统进行操作,对服务器产生压力。
并发用户数
不同于在线用户数,并发用户数是指某一时刻向服务器发送请求的在线用户数,他是衡量服务器并发容量和同步协调能力的重要指标,从这个含义上讲,我们可能会如下两种理解:
同一时刻向服务器发送相同或者不同请求的用户数,也就是说,既可以包括对某一业务的相同请求,也可以包括对多个业务的不同请求
同一时刻向服务器发送相同请求的用户数,仅限于某一业务的相同请求
请求的相应时间
相应时间就是用户感受软件系统为其服务所消耗的时间。对于web系统,请求的相应时间指的是从客户端发起的一个请求时间,到客户端接收到从服务器返回的相应结束。
(1)在3秒之内,页面给予用户相应所有显示,可认为是很不错的
(2)在3-5秒之内,页面给予用户相应所有显示,可认为是好的
(3)在5-10秒之内,页面给予用户相应所有提示,可认为是勉强接收的
(4)超过10秒后就有点让人不耐烦,用户很坑不会继续等待下去
事务的相应时间
事务是指用户在客户端做一种或多种业务所小阳台的操作集,事务的相应时间就是衡量用户执行这些操作集所花费的时间。在性能测试中,一般通过计算事务的开始时间和结束时间的差值来获取事务的相应时间。
每秒点击数
每秒点击数是指每秒钟像web服务器提交的HTTP请求数,它是衡量服务器处理能力的一个常用指标。需要注意的是,这里的相应时间并非鼠标的一次单击操作,因为在一次单击操作中,客户端可能向服务器发出多个HTTP请求,切勿混淆。
吞吐率
吞吐率通常指单位时间内从服务器返回的字节数,也可以单位时间内客户提交的请求数。吞吐率是大型web系统衡量自身负载能力的一个重要指标,一般来说,吞吐率越大,单位时间内处理的数据就越多,系统的负载能力也强。吞吐率yu很多因素有关,服务器的硬件配置,网络的宽带及拓扑结构,软件的技术架构等。
事务成功率
指多用户对某一业务发起操作的成功率。例如,测试网络订票系统的并发处理性能,在早上8:00——8:30半小时的高峰里,要求能支持10万比订票业务,其中成功率不少于98%。也就是说系统允许200笔订票业务超时或者因其他原因导致未能订票成功。
TPS
TPS表示服务器每秒处理的事务数,他是衡量系统处理能力的一个非常重要的指标,在性能测试中,通过检测不同用户的TPS,可以估算出系统处理能力的拐点。
资源利用率
资源利用率就是指资源的使用情况,如CPU使用率、内存使用率、网络宽带的使用情况、磁盘I/O的输入输出量等系统硬件方面的监控指标。一个完整的系统是由软件和硬件组成,缺了任何一方都不可能成为一个正常运作的系统,所以资源利用率也是测试人员的一个监控点,并在当前软件的发展趋势下,硬件资源的成本也不可小视。