一、为什么要做性能测试
系统是否可以处理预期的用户负载; 系统是否可以处理业务所需要的事务数量;(事务是一系列密切相关的操作集合) 系统可以处理非预期情况下的用户负载; 系统能在预期和非预期的情况下获得稳定运行; 用户可以获得舒服的体验;
二、性能测试实施流程
分析性能测试需求 根据性能测试的目标,设计性能测试的场景 开发性能测试场景和性能测试脚本 分析性能测试报告 根据性能测试报告排查和定能系统的性能瓶颈
性能测试的时间是:功能测试之后,系统的功能比较稳定之后
三、性能的概念和术语
1.并发数(并发用户数): 系统用户数:注册了我们这个系统的用户数量; 在线用户数:同一时间,登陆了系统的用户数量; 广义并发用户数:同一时刻,不同的用户针对同一个系统进行操作,向后台发动请求的用户数量;(操作可以是不同的操作) 下一并发用户数:同一时刻,不同的用户针对同一个系统对相同操作,向后台发送请求的用户数量
这里还有一个问题: 什么样的操作才会向后台发送请求? 增 删 改 查 浏览 登录后页面停留在首页不动
只有浏览一般情况下不会向后台发送请求
2.响应时间 用户向后台发送请求到用户接收到请求的响应所需要的时间
相应时间=人的反应时间+网络传送时间+服务器处理时间+数据库服务器处理时间;
3.事务的平均响应时间 TPS(Transaction Per Second)平均每秒处理的事务数量
例如: YB地铁检票机: 只有10台进站检票的机器,1台机器1秒能进1个人 并发用户数为5,则TPS为5 并发用户数为10,则TPS为10 并发用户数为100,则TPS仍为10
4.点击率 平均每秒向后台发送的HTTP请求数量 HTTP响应率
5.吞吐率 服务器单位时间处理的信息量,是衡量一个系统性能的重要指标: bytes/s tps hps
6.思考时间 录制脚本事务时,点击一个操作之后点另一个的思考时间
7.系统运行时占用的服务器资源 CPU 内存 硬盘 带宽 耗电量等 linux中查看不同进程占用的资源命令:top 查看运行那些进程命令:ps
四、性能测试分类
根据不同的性能需求,去做不同类型的性能测试 做性能测试之前,先要分析清楚此次的性能测试需求 (1)基准测试 对于一个新开发的系统或者新接手的系统,在你不了解这个系统性能表现的时候所做的性能测试。
目的是了解系统的性能,记录系统性能指标,响应时间等 (2)负载测试 在一定的软硬件环境下,不断增加系统的负载,查看在不同数量级别的负载下系统性能指标的表现
负载:用户,数据容量大 并发测试:在一定的软硬件环境下,系统其他的条件不变(数据库数据容量不变),不断增加系统的用户数量 1.去查看系统在不同级别的用户数量下,系统的指标的不同的表现情况 2.查看系统的用户数量到达什么情况下,系统性能达到拐点
例如: 性能需求:3s 500个用户2.5s 800个用户 2.8s 1000个用户 2.9s 1200个用户3s 1400个用户3.6s
容量测试:在一定的软件环境下,系统的其他条件不变(用户数量不变),不断增加数据库的数据容量。
1.查看系统在不同级别的数据库容量下,系统的性能指标的表现 2.找系统性能饱和点(拐点)
(3)压力测试:实际测试的负载在高于系统最高负载的情况下,对系统进行性能测试,查看系统在高压环境下 系统的各方面表现,内存泄漏,资源分配不均,锁无法释放等情况。
(4)可靠性测试:实际负载低于系统所能承受的最高负载,**60%~70%的最高负载,长时间运行,(一天,一周,半个月)**查看系统
在长时间高负载的环境下,系统的各项性能指标是否正常,系统是否稳定
(5)配置测试:让系统在不同的软硬件配置下,看系统性能指标的表现,找出系统性能指标表现最优的配置
五、loadrunner
1.loadrunner里面的虚拟用户产生的原理?
用多线程模拟用户的操作
2.脚本的编写 插入检查点:web_reg_find “SaveCount=reservation_Count” 插入关联:web_reg_save_param_ex “NotFound=warning” 参数化 常用的函数
六、jekins集成
测试人员发版流程 1.从Git仓库(另外一台电脑)下拉代码到本地(测试人员自己的电脑);git pull 代码地址 2.在本地编译代码:maven java idea; 3.把编译好的war包上传到测试服务器; 4.把war包放到测试服务器的Tomcat的webapps下面; 5.启动Tomcat; 可以 实现一键式发版? 点击一个按钮 发版成功
|