一、概念
1、思考:
1)什么是功能测试?
测试产品的功能是否满足用户的需求(功能需求)
考虑的因素:功能
2)如:
被测系统: ATM取款机
功能:取款、存款、查询
测试:是否能够成功的取款、存款、查询
用户:一个用户(也就是一个用户可以正常使用,其他的用户也可以使用)
环境:投入生产后使用的环境
被测系统::JD
功能:购物(浏览商品、结算、添加购物车、查看订单)
测试:购物是否能够成功
用户:一个用户
环境:投入生产后使用的环境
被测系统:12306
功能:购票(提交日期城市信息、选择票、提交订单、付款、查看订单)
测试:购票是否能够成功
用户:一个用户
环境:投入生产后使用的环境
2.什么是性能测试?
测试产品的性能是否满足所有的性能指标(需求)
考虑因素:时间、多用户、硬件
1)例如:
被测系统:ATM取款机
功能:取款、存款、查询
测试性能:取款需要多出时间、存款需要多出时间、查询需要多长时间(响应时间)
用户:多用户操作、多用户同时操作,多用户长时间操作
环境:通过功能测试后,投入生产后使用的环境(正常)、不满足生产环境使用条件(异常)、比投入生产后环境更恶劣(峰值)
------------------------------------------------------------------------------------
被测系统:JD
功能:购物
测试性能:购物需要多长时间(浏览商品多长时间、提交订单需要多长时间、付款需要多长时间...)
用户:多用户操作、多用户提示操作、多用户长时间操作
环境:通过功能测试后,投入生产后使用的环境(正常)、不满足生产环境使用条件(异常)、比投入生产后环境更恶劣(峰值)
-----------------------------------------------------------------------------------
被测系统:12306
功能:购票
测试性能:购票需要多长时间(提交日期城市信息需要多长时间、选择票需要多长时间)
用户:多用户操作、多用户提示操作、多用户长时间操作
环境:通过功能测试后,投入生产后使用的环境(正常)、不满足生产环境使用条件(异常)、比投入生产后环境更恶劣(峰值)
3、总结:
1)性能测试基于功能测试,性能测试是要求在满足功能条件下能够满足更多的用户去使用,关心软件的实现(功能)是否更好用,更快,更强大
2)测试流程:功能测试-->性能测试
4、招聘要求:
1)功能测试(手工测试、功能自动化测试),需要熟悉需求、业务流程、编写测试用例(设计脚本)、执行测试、收集结果
2)性能测试,生成脚本,执行脚本、收集结果数据、分析测试结果(网络、服务器、数据库、硬件、程序设计....)
二.性能测试
(1)性能测试内容介绍
1)什么是性能测试(核心概念)---what
2)为什么执行性能测试?(目的)-->why
3)在什么情况下需要执行性能测试(应用场景)--->when
4)如何实现性能测试?(测试步骤)---->how
5)性能测试工具(loadrunner/jmeter)
a . loadrunner:收费,功能强大,银行业务,国企使用的比较多
b. jmeter:开源,免费的,可扩展性比较高,接口测试使用比较多
(2)什么是性能测试?
性能测试是借助测试工具模拟多种正常、峰值以及异常负载的条件下测试被测系统的各项性能指标是否满足要求
1)测试工具:loadrunner、jmeter
2)正常:产品投入生产后的环境
3)峰值:产品投入生产后遇到的最大的使用量
4)异常:产品投入生产后遇到的异常情况
5)各项性能指标
6)性能测试的内容:负载测试,压力测试,容量测试
a. 负载测试:负载测试的目标是确定和确保系统在超出最大预期工作量的情况下仍能够正常实现
例如:JD预期值:支持20万用户使用3S内
负载测试:测试当用户超过20万后还能正常运行时的用户数
b.压力测试:测试系统在什么情况下处于失效的状态(崩溃)
例如:JD
10万 3s
30万 3s(负载测试)
50万 5s
70万 10s
100万 30s(压力测试)
101万 崩溃
c. 容量测试:一般指对数据库进行测试,比如系统能够接受200万条数据的基础上是否能够承受2000万条数据(60%以上的问题一般都是发生在数据库中)
(3)为什么要执行性能测试?
1)性能测试的目的为了验证软件产品是否满足用户提出的性能指标,同时发现软件产品中存在性能瓶颈(系统有问题)、优化软件
2)目的包括四个方面:
a. 评估系统的能力
b.识别体系中的弱点
c.系统调优
d.验证稳定性和可靠性
(4)什么时候执行性能测试?
系统通过功能测试之后
(5)如何执行性能测试?
使用loadrunner测试工具执行
(6)注意:性能测试关心两个词:请求和应答
a.请求:是客户端发送服务器端的数据包
b.应答:服务器端返回给客户端的数据包
(7)常用的性能指标(通过什么来衡量性能是个存在瓶颈)
1)并发(concurrency):多用户在同一时刻对系统执行操作,一般指执行的同一个事务或操作,考察系统的瞬间压力(如:秒杀)并发用户数,并发量,
事务:可以是一个操作(请求)或者多个操作(请求)
2)在线(online):多用户一段时间内对系统执行的操作,不同的用户可以执行不同的操作
在线用户数
例如:测试JD系统的性能在线用户数,一部分用户执行登录操作,一部分用户执行浏览操作,一部分
用户可以添加购物车,一部分用户执行购买操作............
问题:用户已经登录JD系统,但是未做任何的操作,该用户是否算作JD系统的在线用户(算)
注意:并发和在线有什么区别?
一般来讲,对于一个被测系统,并发和在线的压力比值为10:1,也就是说100个用户并发的压力相当于1000个在线用户的压力,具体情况具体分析
3)响应时间(response time):从客户端(client)发送请求到得到服务器端(server)响应的整段时间(响应时间=客户端时间+网络时间+服务器端时间)
4)事务响应时间(transaction response time):完成某个具体事务所花费的时间,是性能测试中重点关注的指标
响应时间遵循358原则:
3s:可以接受(正常)
5s:可以忍受(再等等)
8s以上:无法忍受(不等了,不用了)
5)点击量(hits):用户向服务器提交的http请求数,注意:鼠标点击被测系统一次又可能触动多个http请求
6)点击率(hits per second):用户每秒向服务器提交的http请求数
7)吞吐量(throughput):用户从服务器获取到的数据量,单位是字节
8)吞吐率(throughput per second):服务器每秒的吞吐量(吞吐量/测试时间)反应服务器的处理速度和性能的
点击率和吞吐率的区别
a.点击率是原因,吞吐率是结果,因为只有客户端发送请求(点击率),服务器才会做出应答(吞吐率),吞吐率受到点击率的影响
b.在带宽充裕的情况下,完美的吞吐率应该随着点击率的增加而增加(降低而降低)
c.点击率会不会受到吞吐率的影响?会,因为当吞吐率降低时,前一个请求还未处理完毕,后一个请求不会发生
9) TPS(transactions per second):每秒钟能够处理多少个事务
10)资源利用率:对不同系统资源的使用程度,如CPU、内存、磁盘、网络... 总结:
virtual user generator:脚本生成器,录制生成脚本
controller:控制台 ,设计场景进行测试,收集测试结果数据
analysis:结果分析器,显示结果数据,生成结果数据图表,对结果进行分析
------码字不易,给个关注呗^_^
