性能测试总结(performance testing)

1、为什么要做性能测试?
1)目前绝大多数应用都是基于网络的分布式应用,我们无法知道用户数量,用户场景的不确定性,导致系统测试时,不仅仅是功能,业务逻辑,接口测试,还要测试系统性能。一个用户没问题,但是用户一旦多了就可能出现各种各样的问题,所以需要进行系统性能测试。
2)用户数量增加,系统负债增加,进行系统性能测试,知道系统承受的并发用户数量,带宽是否够用,cpu是否够用,内存是否够用,硬盘速度是否跟得上。从服务端来看,测试服务器是否能承载用户多并发,系统是否稳定,从用户角度看响应时间速度。

2、性能测试内容
1)负债测试(load test):对于分布式网络,测试不同用户数量来测试系统的反应,主要关注性能指标,系统不同表现。
2)压力测试(stress testing):高压状态下多用户高并发测试(30万-50万),主要关注系统是怎么崩溃的。(内存泄漏,cpu无响应,数据库无反应,网络堵塞)
3)容量测试(volumn testing):系统最大支撑的相关数量,数据库最大数据数量,用户数量。

3、性能测试评价指标
1)响应时间(response time):从用户视角评价系统的响应速度,通常响应的时间的经验值 2s流畅,5s可用,10s较慢
2)吞吐量/率():硬盘IO(读写),网络IO(上行下行带宽),cupIO,服务器处理能力,客户端打开页面的数量。
3)事务处理能力(TPS tansaction per second):打开页面,登陆服务器,实现消息发送等等用户的某一动作就被称为事物。

4、性能测试关注点(也是软件测试的关注点)
1、软件测试的作用和价值:两个方面产品和用户。产品角度:在研发过程中尽早的发现问题,提高软件质量,确保产品交互,功能完善,稳定可靠。用户角度:关注用户体验,操作,界面,性能,尽可能想办法提升用户体验,持续改善。

2、性能测试的关注点:(三层架构,多方面制约,采用集群,云计算,虚拟化)

  1. 响应时间快慢,服务器端的处理速度
  2. 服务器端的使用情况
  3. 数据库端的资源使用情况
  4. 最大用户访问数量
  5. 同时处理最大业务数量
  6. 考察系统能否支撑7x24小时运转
  7. 内存资源、线程资源能否正常回收
  8. 代码,算法,sql语句设计是否合理
  9. 整个系统的稳定性,可恢复性

5、性能测试的核心原理,开发测试工具也是基于前两点
1、基于协议(前端后端通信机制),基于界面(决定和前端交互),基于代码(后端)。

  1. 基于网络的分布式架构:基于网络协议去模拟用户发送请求

2、多线程:模拟多线程操作,多人同时操作,模拟大负载量(功能测试在于用以测试功能)
3、模拟真实场景:真实的网络环境,用户操作时间不确定性,操作不确定,得出的数据是准确的,场景不对,数据也不一定可用。

6、代码实现性能测试
针对某一功能做性能测试,论坛的登陆以及发帖(post协议,多线程这两点)
登陆操作,发帖操作(涉及协议),使用多线程同时操作。

7、loadrunner使用(协议脚本,多线程)
四个主要部件:1、vuser generator 开发性能测试脚本 。2、controller 提供多线程并发等操作. 3、ananlysis 结果分析 4、load generator 负债生成器(controller 里面的一个主键)

1、vuser generator (虚拟用户生成器)
新建一个脚本:
这里写图片描述

进入界面,点击start 录制一段脚本
这里写图片描述
internet application 指的是b-s 架构,win 32 是指c-s 架构,默认是录制到action,勾选recond表示立即开始。
这里写图片描述

*可以手写,可以录制
点击web_url,使用get请求

点击web_data,使用post请求

猜你喜欢

转载自blog.csdn.net/qq_37884273/article/details/82389312
今日推荐