性能测试、通过自动化测试工具模拟多种正常,峰值,以及异常的负载情况下对系统各项性能指标进行的测试。
负载测试、压力测试、容量测试都属于性能测试。
性能测试指标是衡量系统性能的评价标准
主要关注一些响应时间、并发用户/并发、点击率、吞吐量、TPS/QPS、PV/UV;如果是Linux系统中性能指标包括:CPU、内存、磁盘IO、系统平均负载等
1、响应时间
通过浏览器发送请求、到服务端处理请求时间、比如一个页面从点击到服务 端请求响应的时间、完成增删改查等操作的时间等、跳转时间。
2、并发
同一时间处理事物请求的能力、用户一系列操作都不是同时进行的、服务端处理请求肯定有先后顺序、测试同一模块、同一操作在高并发的情况下,接口工作是否正常。目的是主要检查应用或者接口在多用户情况下,是否存在缺陷(比如死锁等、无响应等情况)
测试500人 登录的性能 – 》在线数 500,并发没有要求;
一个线程组实现或者多个线程实现
测试500人并发登录的性能 – 》在线数500,并发数500;
实际测试,建议一个线程组实现,同时在线500人
3、吞吐量:衡量系统的业务处理能力。
TPS:每秒事务数。QPS:每秒请求数
在压力测试时,测试人员会主动按一定tps的量来主动发起接口请求,比如tps=50,就是每秒请求50次,获取一个平均的响应时间(单位一般都是毫秒ms)。压力测试人员口中的TPS50 200ms返回,就是指每秒测试人员主动发起50次请求,这些请求会在平均200ms返回。
没啥人用的服务 tps 20,返回有300ms就行了
十万到百万级的服务,响应能达到tps50 /200ms就可以了
后台服务,能达到tps 20 / 200ms即可(通常后台同时使用也没多少人)
秒杀类的短时间高并发……TPS100或200 在 100ms内响应 应该也能撑一段时间(具体情况还是要看业务量)
4、错误率
系统在负载情况下,失败请求的概率。
错误率=(失败请求数/总请求数)*100。和功能测试的错误相区别,在性能测试中,所谓的错误一般是指由系统超时引起的错误,而不是指功能错误。不同的系统错误容错率不同。普通的业务系统,由于网络超时等外部原因造成的错误比例不应超过5%,由于服务本身导致的错误率不应超过1%
JMeter压力测试步骤
1.创建线程组
点击选中测试计划,右键点击创建线程组
点击线程组,这里可以设置名称,添加注释,设置线程数(每次有多少线程同时开启)、线程响应时间(多少秒完成线程)、循环次数(每个线程数需要开启几次)
2.创建取样器 HTTP为例
点击选中线程组,右键添加取样器输入协议
点击刚设置的取样器,这里可以设置名称,设置http/https(不输入默认为http),服务器IP,端口号(不输入默认80端口),选择HTTP请求类型,相关路径(若无则不填),以百度为例
3.最后需要添加监听器获取监控结果
同样选择线程组,右键添加监听器
常用的有汇总报告,察看结果树,聚合报告
3.1汇总报告
这里可以看到每个请求以及总体的各项指标,我们要关注的是异常百分比和吞吐量,异常百分比越大,性能就越差,吞吐量越大效率越高
3.2察看结果树
这里可以看到响应数据和请求内容,以及取样器结果等
取样器结果如下图,请求栏有请求头和请求数据,响应数据栏有响应头和响应数据。
响应数据一般为HTML源码,请求头主要记录的是时间,返回状态等等数据,点击Text右边的三角形可以切换观察的数据格式,如JSON等
3.3聚合报告
这里能看的数据包含了汇总报告的内容,并且还能看到百分比响应时间等数据,相对于汇总报告,百分比响应是我们更需要关注的地方,如果不需要了解太深,就用汇总报告,需要了解更多的就需要用到聚合报告
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!