性能测试用例的编写(超详细)

🍅 视频学习:文末有免费的配套视频可观看

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快

写测试用例,是测试绕不开的工作内容,不管是功能、自动化,还是性能。先来回顾一下功能测试用例主要包含的要素:测试用例编号、测试标题、所属模块、测试需求项编号、案例状态、预置条件、优先级、测试输入、操作步骤、预期输出、实际结果、案例设计者、设计日期、案例性质等。性能测试用例(有的称为场景用例)的设计,有别于功能测试用例、自动化测试用例的设计,毕竟,考虑的点不一样。对于性能测试来说,一般要考虑这4种场景:单场景、混合场景、稳定性场景、异常场景。

下面,结合笔者实际工作,分享下单场景的用例是如何设计的。

单场景的定义

有的称为接口基准(Benchmark)、或者单交易的容量,总之,这个不是真实的业务原型(可以简单理解为不同业务的使用情况)。

单场景压测的目的

既然单场景不是真实的业务原型,为什么不直接做混合场景的压测呢?其实,做单场景压测的目的是测试出这个单业务的最大tps,方便判断瓶颈,比如,业务部门给的混合场景的tps(假设这个tps值是合理有效的),根据业务原型比例计算后,业务A的目标tps都比你单场景的最大tps还要大,那是不是应该让开发提前优化了?如果在混合场景压测中,发现业务A的tps已经到达或者接近其单场景最大tps,但是混合场景还没有达标,那说明瓶颈在业务A。

单场景的来源

有人可能要问,单场景从哪里来?如果你们业务部门或者其它部门能给,那最好,如果不能给,你作为性能测试人员,要引导相关人员给,总之,我觉得这个不能性能测试单独定,否则后期出问题可能你独自背锅哦,要尽最大努力保证不出问题,哪怕出问题,也要一起背锅。单场景是来自于业务原型,但是不是每个业务接口都需要做压测,所以,我们这里说的业务原型,是混合场景的业务原型,混合场景里面,每个业务接口都需要做单场景压测。至于业务原型如何获取,这是一个大话题,本次分享暂不讨论,如果想交流,欢迎微信留言。

项目架构及服务器清单

我们用个简单的架构来举例:nginx + tomcat*2 + mysql

图片

图片

单场景用例

除了基于压测工具的设计(假设用的压测工具是jmeter),还包含监控的设计、预期结果、实际结果

图片

 部分预期结果(根据项目实际情况写)

图片

 部分实际结果 

图片如果你的架构很复杂,写重点即可,无需把过多的时间耗费在文档上,况且后期你也可以慢慢完善。 

补充:jmeter脚本

连续阶梯加压,看线程、tps、rt的趋势

图片

 另外,混合场景、稳定性场景、异常场景的用例设计

图片

同时,在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看。

2024花15天学完自动化测试全套教程,简单易上手,允许白嫖,拿走不谢!

<think>我们正在讨论如何编写性能测试。根据用户的问题和提供的引用内容,我将整合信息并提供清晰的指导。引用[1]中提到性能测试设计需要考虑四种场景:单场景、混合场景、稳定性场景、异常场景。引用[2]则详细展示了如何从测试点提取到具体编写的步骤,包括单功能点用和组合用的示。因此,我将按照以下结构组织回答:1.性能测试的设计原则(场景分类)2.性能测试点的提取规则3.性能测试的要素(不同于功能测试用例)4.编写步骤(单功能点用、组合用)5.性能测试脚本的编写(简要提及,因为用户问题集中在用编写)注意:用户要求回答结构清晰,逐步解决问题,并保证真实可靠。同时,根据系统指令,需要生成相关问题。</think>### 如何编写性能测试:最佳实践指南 性能测试编写需要**聚焦系统在高负载下的表现**,与功能测试用例有显著区别。以下是基于行业实践的核心步骤和要素: --- #### 一、设计原则与场景分类(关键!) 性能测试设计需覆盖4种核心场景[^1]: 1. **单场景** - 测试单一高频业务(如登录、支付) - 示:`100用户并发登录,响应时间≤3秒` 2. **混合场景** - 模拟真实业务组合(如登录+搜索+下单) - 示:`50%用户搜索商品,30%加入购物车,20%支付` 3. **稳定性场景** - 长时间持续负载(如7×24小时运行) - 示:`200用户持续操作8小时,内存泄漏<5%` 4. **异常场景** - 模拟极端情况(如网络中断、服务器宕机) - 示:`数据库故障时,系统降级响应时间<10秒` > 📌 **场景选择依据**:高频业务、核心功能、峰值事件(如双11)、资源敏感操作[^2] --- #### 二、性能测试核心要素 区别于功能测试,性能用需包含(参考模板): | 测试字段 | 说明 | 示值 | |-------------------|-----------------------|--------------------| | **并发用户数** | 同时操作的用户量 | 50/100/200用户 | | **TPS要求** | 每秒处理事务数 | ≥100 TPS | | **响应时间阈值** | 最大可接受响应时间 | ≤3秒 (登录操作) | | **资源监控项** | 服务器资源指标 | CPU≤80%, 内存≤70% | | **事务成功率** | 成功操作比 | ≥99.5% | | **持续时长** | 测试持续时间 | 30分钟/2小时 | --- #### 三、编写步骤详解 1. **提取测试点** - 优先选择: - 高频操作(每日调用>10万次) - 核心业务流程(如电商下单) - 资源密集型操作(CPU/内存消耗>40%) 2. **单功能点用**(登录场景): ```markdown ### 用编号:Perf_Login_001 - **场景类型**:单场景 - **并发用户**:50/100/200用户梯度增加 - **预期指标**: - TPS ≥ 20 - 平均响应时间 ≤ 3秒 - 错误率 < 0.5% - **监控项**: - 应用服务器:CPU使用率、线程阻塞数 - 数据库:SQL执行时间、锁等待率 ``` 3. **组合场景用**(购物流程): ```markdown ### 用编号:Perf_Checkout_002 - **场景类型**:混合场景 - **业务比**: - 40%用户搜索商品 - 30%用户添加购物车 - 30%用户支付订单 - **负载模型**:每分钟新增10%用户 - **通过标准**:支付事务TPS ≥ 50 ``` 4. **异常场景设计技巧**: - 网络延迟:模拟200ms~5s延迟 - 服务中断:随机终止1个服务节点 - 数据异常:注入10%错误参数请求 --- #### 四、工具落地实践 1. **脚本编写要点**: - 参数化关键数据(用户名、商品ID) - 添加思考时间(Think Time = 2~5秒) - 使用断言验证响应完整性 2. **监控配置**: ```bash # Linux服务器监控示 $ top -d 1 -b > cpu.log # CPU监控 $ vmstat 2 > memory.log # 内存监控 $ iostat -x 1 > disk.log # 磁盘IO ``` --- #### 五、注意事项 1. **环境一致性**:测试环境需匹配生产环境配置 2. **数据预热**:提前生成足够的基础数据(如10万用户) 3. **渐进式负载**:从50%预估峰值开始阶梯加压 4. **结果分析**:重点关注拐点(如CPU突变、TPS骤降) > 💡 **最佳实践**:每次性能测试后生成对比报告,标记性能退化点(如代码更新后响应时间增加15%)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值