马上步入年后求职高峰季,今天给大家分享性能测试面试宝典。
一.性能测试指标
性能测试关注的性能指标包括:注册用户数、在线用户数、并发用户数、请求响应时间、事务响应时间、吞吐率、业务成功率、HPS(每秒点击数)、TPS(每秒事务数)、资源利用率等。
并发用户数:并发用户数是指某一时刻同时向服务器发送请求的在线用户数。
并发用户数根据业务场景不同,又可以分为两类:
1.同一时刻向服务器发送某一个业务(单业务、单场景)的相同请求。
如100个用户同时只进行登录操作
2.同一时刻向服务器发送多个业务(多业务、组合业务、混合场景、组合场景)的不同请求。
如100个用户同时发起请求,30个用户进行登录,50个用户进行搜索,20个用户进行支付。
事务响应时间:事务是指用户在客户端完成一种或多种业务的操作集合,可能会在期间向服务器发送多次请求。
事务的响应时间就是衡量用户执行这些操作所花费的时间。
在进行性能测试时,我们需要尽可能接近用户的真实操作,用户在操作系统/软件时,各个操作之间一定会有等待时间,这个操作的等待时间被称为思考时间。
业务成功率:指多用户对某一业务发起请求操作的成功次数在总请求数中的占比。
TPS(每秒事务数):表示服务器每秒处理的事务数,它是衡量系统处理能力的一个非常重要的指标,在性能测试中,通过检测不同用户数的TPS,可以估算出系统处理能力的拐点。
二.性能测试的分类
基准测试
负载测试
压力测试
并发性能测试
稳定性测试
容量测试
配置测试
我们这这里面主要看一下负载测试、压力测试与稳定性测试。
负载测试是指:对系统不断增加并发用户数,验证系统在不同的并发用户数下的性能表现,不关注系统持续运行时长,目的是找到系统处理能力极限和性能临界点。
压力测试是指:使系统处理超过预期负载的状态下,验证系统持续处理业务的能力,主要目的是检查系统在峰值负载情况下的各项性能指标,及什么时候出现异常。
稳定性测试是指:被测软件/系统在特定硬件、软件、网络环境下,给系统加载一定的业务压力,使系统运行一段较长的时间,以此检测系统是否稳定,一般稳定性测试时间为n * 24小时。
三.性能测试流程
性能测试需求分析
性能测试方案/评审
设计性能测试用例
评审性能测试用例
部署性能测试环境
执行性能测试(脚本录制、脚本增强、场景设计、执行场景、监控测试数据)
分析测试结果
查找系统性能瓶颈
分析瓶颈产生的原因
编写性能测试报告
配合项目相关人员进行性能调优
性能回归测试
编写性能回归测试报告
四. Jmeter性能测试常用组件有哪些
bzm - Arrivals Thread Group测试高压下的 持续运行时间, 压力测试
bzm - Concurrency Thread Group测试最大的并发用户数: 负载测试
jp@gc - Ultimate Thread Group混合式加压
jp@gc - Stepping Thread Group 阶梯式加压(已被弃用)
Synchronizing Timer 同步定时器(集合点的设置)
jp@gc - Active Threads Over Time 每秒活跃线程数
jp@gc - Response Times vs Threads 线程数与响应时间图例
五.性能脚本增强包括哪些方面
指对抓包/代理录制的脚本,进行功能增强. 脚本增强的内容:
1.事务Transaction Controller 逻辑控制器选择 事务控制器
2.集合点(主要是并发测试) 线程组--->定时器--->同步定时器(Synchronizing Timer)
3.参数化(CSV数据文件设置)
4.关联(正则表达式提取器/Json提取器)
5.检查点(断言) (响应断言)
6.Jmete代理抓包-- 通过添加HTTP代理服务器进行手动代理抓包设置
7.JDBC Connection Configuration与JDBC-request, Jmeter连接数据库配置与数据库请求
8.HTTP信息头管理器(请求头设置)
9.HTTP Cookie管理器
10. 用户定义的变量(环境变量)