当前课程知识点:软件工程 >  第13章 软件系统测试 >  13.4 软件性能测试 >  讲课视频

返回《软件工程》慕课在线视频课程列表

讲课视频在线视频

下一节:讲课视频

返回《软件工程》慕课在线视频列表

讲课视频课程教案、知识点、字幕

同学们好

这节课我们介绍

软件性能测试的相关内容

软件性能

是软件的一种非功能特性

它主要关注的

是系统在执行功能时

所表现出来的一些性质

比如说 响应是否及时

资源占用的情况如何

是否稳定和安全

以及兼容性 可扩展性和可靠性等

一般来说

我们关注的性能指标

主要包括以下方面

系统对于用户请求的响应时间

容量和数据吞吐量

系统的资源使用率等

下面我们将分别解释一下

这几个指标的具体含义

性能测试主要是模拟多个用户

使用系统时对性能产生的影响

因此估计用户数

是一个基本的要求

对于Web应用来说

用户主要包括注册用户

在线用户和并发用户三种类型

注册用户数指的是

所有在系统注册的用户数量

但是注册用户

有可能并不使用系统

在线用户数

是所有正在访问系统的用户数

并发用户数

是在某一给定时间里

某一个特定时刻

进行会话操作的用户数

通常情况下

我们可以根据网站的统计

得到不同类型用户的数据

如果没有统计数据

也可以通过一定的经验

进行预估

比如说

我们大概估计一下

可能的注册用户数

然后按照注册数的20%

估计在线用户数

再按照在线数的30%

估计并发用户数

我们以新浪微博的例子

来进一步解释一下

用户在注册以后才能够使用

但注册用户

并不是每时每刻都在使用系统

在线用户

在浏览网站的时候

会花很多的时间

阅读网站的信息

所以具体到某一时刻

可能只有一部分在线用户

同时向系统发出请求

由于有些注册用户

可能长时间不登陆网站

所以不能够使用注册用户数

作为性能的指标

一般来说性能测试

更关心的是并发用户数

响应时间

是一个重要的性能指标

它是从客户端发出请求

到获得响应的整个过程

所经历的时间

这个图

显示了从客户端发出请求

到获得响应的整个过程

其中C1表示的是

用户请求发出前

在客户端需要完成的

预处理的时间

N1是请求

由客户端发出

并且达到应用服务器的时间

A1是应用服务器

对请求进行处理的时间

如果需要进行数据库的相关操作

N2是应用服务器

把请求发送到数据库服务器

所需要的时间

A2是数据库服务器

对请求进行处理的时间

N3 A3 N4和C2分别是

从数据库服务器经过网络

应用服务器到客户端

返回处理结果的时间

对于用户来说

响应时间是上面所有时间的总和

对于系统来说

响应时间

是从应用服务器

接收请求到返回结果的这段时间

吞吐量和资源利用率

是从系统管理的角度

所关心的两个性能指标

吞吐量是指单位时间里

系统处理客户请求的数量

它反映的是

软件系统对性能压力的一个承载能力

一般可以用请求数/秒

页面数/秒

访问数/秒

或者处理业务数/小时

这样一些单位来衡量

资源利用率指的是

系统资源的使用程度

比如说服务器CPU利用率

内存利用率 磁盘利用率

网络带宽利用率等

可以用资源实际使用

占总的资源的比例来表示

性能测试

是通过自动化的测试工具或手段

来模拟多种正常情况

峰值情况以及异常负载条件

为获取或验证系统性能指标

而进行的测试

负载测试和压力测试

是性能测试的两种主要类型

负载测试

是通过不断地加载系统负载

比如说

逐渐增加模拟用户的数量

来观察不同负载下

系统的响应时间

数据吞吐量

以及系统占用资源的情况

以检验系统的行为和特性

发现系统可能存在的性能问题

压力测试

是在强负载

比如说 大数据量

或大量并发用户等条件下

对系统进行测试

来查看系统在峰值使用情况下的

操作行为

从而有效地发现

系统的某项功能隐患

是否具有良好的容错能力

和可恢复能力等

我们来举一个日常生活的例子

来说明二者的区别

如果要测试一个人

能够扛多少斤重物

负载测试

就要确定在200斤情况下

这个人能否坚持5分钟

压力测试则是测试

在200斤 300斤 400斤

等不断增重的情况下

这个人的表现

什么时候会失败

失败以后有什么表现

重新再扛200斤是否正常

压力测试也有很多不同的类型

稳定性测试

是保持在高负载条件下

持续运行24小时以上

来查看系统的表现

破坏性测试

是通过不断地加载

来快速造成系统崩溃

以便让问题尽快暴露出来

渗入测试

是通过长时间的运行

来发现像内存泄漏

垃圾收集或者一些其他的问题

峰谷测试

是采用高低突变这样的方式

来进行测试

先加载到高水平的负载

然后急剧降低负载

稍微平息一段时间

再加载到高水平的负载

如此反复来查找系统的问题

另外大数据量测试

和疲劳强度测试

也是性能测试的内容

大数据量测试

主要是检测在数据量比较大的时候

系统的性能状况

一般又包括

独立数据量测试

和综合数据量测试

疲劳强度测试

是在系统稳定运行的情况下

通过长时间地运行系统来检测

系统无故障稳定运行的能力

对于一个Web应用来说

服务器端 数据库 网络 客户端

这些都是影响系统性能的因素

那么应该采用什么样的测试策略

来确定系统发生问题的原因

对于客户端来说

我们可以使用测试工具

在机器上模拟大量的虚拟用户

进行并发操作来测试系统

通过综合分析各种指标

最终来评价系统的性能

或者发现问题

对于网络性能

可以使用相应的监控工具

来测试网络的带宽 延时

负载和TCP端口变化等因素

对响应时间的影响

对于服务器性能

测试的关键点是资源占用情况

数据库性能和故障报警

我们可以使用监控工具

来监测服务器的CPU占用

内存消耗和故障情况

检查数据库的读写 缓存

加锁和事务处理等状态

性能测试

必须要依靠自动化的工具

目前有很多流行的性能测试工具

LoadRunner是惠普公司开发的

一种预测系统行为

和性能的负载测试工具

它是使用非常广泛的

工业标准级的性能测试工具

可以模拟上千万用户的并发负载

来实时监测系统性能

并且确认和查找问题

jMeter是目前非常流行的

开源压力测试工具

可用于Web服务器的性能测试

也可以对数据库

FTP LDAP服务器进行测试

大家可以在课后

结合抢票应用系统

使用jMeter对应用服务器

进行压力测试

软件工程课程列表:

第1章 初识软件工程

-1.1 软件无处不在

--讲课视频

-1.2 软件的本质特性

--讲授视频

-1.3 软件工程的产生与发展

--讲授视频

-1.4 软件工程的基本概念

--讲授视频

-1.5 软件质量实现

--讲授视频

-1.6 业界人士谈软件工程

--海芯科技创始人施侃乐访谈

-测验题--作业

-讨论题

--讨论题

-作业题

--第一张 作业题

第2章 编写高质量代码

-2.1 编程过程与规范

--讲课视频

-2.2 良好的编程实践

--讲课视频

-2.3 Python集成开发环境

--讲课视频

-2.4 代码静态检查

--讲课视频

-2.5 代码性能分析

--讲课视频

-2.6 结对编程实践

--讲课视频

-2.7 刘贺谈软件工程

--讲课视频

--讨论

-测验题--作业

-作业题

--第二章 作业题

第3章 单元测试

-3.1 单元测试概述

--讲课视频

-3.2 黑盒测试方法

--黑盒测试方法

-3.3 白盒测试方法

--基本概念

--代码覆盖标准

--基本路径测试

-3.4 单元测试工具

--单元测试工具

--html

-测验题--作业

-作业题

--第三章 作业题

--作业题附件

第4章 软件开发过程

-4.1 软件过程

--讲课视频

-4.2 软件过程模型

--讲课视频

-4.3 敏捷开发过程

--讲课视频

-4.4 微软公司开发过程

--邹欣经理自我介绍

--微软开发过程之一

--微软开发过程之二

-测验题--作业

第5章 团队开发管理

-5.1 团队组织与管理

--讲课视频

-5.2 项目沟通管理

--讲课视频

-5.3 软件项目计划

--讲课视频

-5.4 软件项目估算

--讲课视频

-测验题--作业

-讨论题

--讨论

第6章 敏捷开发与配置管理

-6.1 敏捷开发之Scrum

-- 敏捷开发之Scrum

--html

-6.2 用户故事与估算

--讲课视频

-6.3 团队协作工具Tower

--Tower工具介绍(1)

--Tower工具介绍(2)

-6.4 配置管理

--讲课视频

-6.5 配置管理工具Git

--讲课视频

-测验题--作业

-作业题--作业

第7章 需求获取

-7.1 需求工程师

--讲课视频

-7.2 需求定义

--讲课视频

-7.3 需求的类型

--讲课视频

--讲课视频(2)

-7.4 需求工程过程

--讲课视频

-7.5 需求的主要来源

--讲课视频

-7.6 需求获取技术

--讲课视频

--讲课视频二

--讲课视频三

-7.7 撰写需求文档

--讲课视频

-测验题--作业

-讨论题

--讨论

第8章 用例建模

-8.1 用例建模概念

--讲课视频

-8.2 用例建模过程

--讲课视频

-8.3 用例建模精讲

--讲课视频

-8.4 建模工具介绍

--讲课视频

-8.5 微信抢票应用案例

--讲课视频

-测验题--作业

-讨论题

--讨论

第9章 面向对象分析与设计

-9.1 面向对象分析

--讲课视频

-9.2 CRC卡片分拣法

--讲课视频-1

--讲课视频-2

-9.3 面向对象设计

--讲课视频-1

--讲课视频-2

-9.4 类图建模

--讲课视频-1

--讲课视频-2

-第9章 面向对象分析与设计--测验题

-讨论题

--讨论

第10章 行为建模

-10.1 顺序图概念

--讲课视频

-10.2 顺序图建模

--讲课视频

-10.3 顺序图风格

--讲义视频

-10.4 状态建模

--讲课视频

-10.5 状态图

--讲课视频

-10.6 状态图精讲

--讲义视频

-测验题--作业

-讨论题

--讨论

第11章 软件系统设计

-11.1 软件体系结构概念

--讲授视频

-11.2 软件设计原则

--讲授视频

-11.3 软件体系结构风格(一)

--讲授视频

-11.4 软件体系结构风格(二)

--讲授视频

-11.5 软件体系结构风格(三)

--讲授视频

-11.6 软件设计过程

--讲授视频

-11.7 Web系统架构设计

--讲授视频

-11.8 数据库选择策略

--讲授视频

-测验题--作业

-作业题

--html

--html

--html

-作业题--作业

第12章 软件交互设计

-12.1 交互设计概述

--讲授视频

-12.2 交互设计目标

--讲授视频

-12.3 GUI设计原则

--讲课视频

-12.4 KLM效率模型

--Video

-12.5 Fitts定律

--讲授视频

-12.6 交互设计过程

--讲授视频

-测验题--作业

第13章 软件系统测试

-13.1 软件测试概念

--讲课视频

-13.2 软件测试类型

--讲课视频

-13.3 软件功能测试

--讲课视频

-13.4 软件性能测试

--讲课视频

-测验题--作业

第14章 软件交付与维护

-14.1 软件部署与交付

--讲课视频

-14.2 软件演化与维护

--讲课视频

-测验题--作业

第15章 期末考试与总结

-第一部分:基础知识

-第二部分:编程与测试(选做)

--编程与测试(选做)

讲课视频笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。