性能测试场景设计深度解析

本文深入探讨了性能测试中的场景设计,包括测试模型、测试指标、交易比例、并发用户数量、加压策略等方面。性能测试场景设计是整个测试活动的核心,涉及需求调研、脚本开发、数据预埋等环节。文章通过实例介绍了如何确定测试模型、测试指标,以及如何设计并发用户数量和加压策略,帮助测试人员更好地理解和实践性能测试场景设计。
摘要由CSDN通过智能技术生成

感谢合众支付资深技术专家程超的推荐与审校。
作者:张允庆,现就职于易宝支付有限公司,任职高级性能测试工程师,有多年的系统性能测试设计与优化经验,经历过大小上百个项目的性能优化,对性能测试有着较为深入的研究。2008年底获得北京大学理学学士学位,目前进入对外经济贸易大学在职研究生班进行深造,专业方向是大数据分析及应用。对性能测试相关话题感兴趣的读者可以和作者进行交流,电子邮箱地址:zhysync@163.com。
责编:陈秋歌,寻求报道或者投稿请发邮件至chenqg#csdn.net,或加微信:Rachel_qg。
了解更多前沿技术资讯,获取深度技术文章推荐,请关注CSDN研发频道微博

说在前面

提到性能测试,大家想到的就是使用工具对应用进行加压,看看应用能承受多少并发,TPS(Transactions Per Second)是多少,交易响应时间是否在接收的范围内。不错,这些都是大家最关心的应用的性能指标,也是每个性能测试项目输出的结果。然而,要实现这样的效果却并不是一件简单的事情,因为性能测试是一个十分复杂的系统工程,对测试人员的能力水平提出了更高的要求,需要性能测试人员具备非常全面的知识与技能,能够定位应用的性能瓶颈,并提出适当的优化方案。

通常,要对一个应用进行性能测试需要经历需求调研、环境准备、脚本开发、数据预埋、场景设计、场景执行、应用监控分析、瓶颈定位、瓶颈修复、回归测试、结果整理、输出报告等多个环节。

今天我们先谈一谈性能测试中的场景设计。

性能测试的场景设计

性能测试的场景如何定义?我们可以理解为功能测试中的用例,即性能测试的场景就是性能测试的用例。性能测试的场景是为了要实现特定的测试目标而对应用执行的压测活动。性能测试场景的设计与执行是整个性能测试活动的核心与灵魂,没有完整的场景设计就无法达到我们的测试目的,没有合理的场景设计就不会发现系统的性能缺陷。我们所开发的测试脚本,所预埋的测试数据都是为了实现特定场景所准备的。

一个性能测试场景包含诸多要素,图1中列出了一些必备的要素,其中测试模型作为测试场景的基础与输入。

图片描述

图1 性能测试场景的组成要素

下面对每一个要素做一个简单的说明。

测试模型与测试指标

在进行场景设计之前我们应该先确定了本次性能测试的测试指标与测试模型。测试指标和测试模型是进行场景设计的前提和基础,是场景的输入。根据被测系统的类型不同,可能测试指标的类型略有不同。对于在线Web类的应用,测试指标一般包括在线用户数、最优并发用户数、最大并发用户数、交易平均响应时间、目标TPS等等。对于接口调用类的应用测试指标一般包括目标TPS、平均响应时间等。

测试模型就是被测试系统的各交易在线运行时承受的交易数量(或请求数量)的比例而不是并发用户的比例。为什么不是并发用户的比例呢?因为实际的用户的操作具有不确定性,使用测试工具很难模拟真实用户的行为。另外,在进行运营数据分析时很难获取用户的操作行为,而应用的交易记录却很容易通过查询的方式获取。应用实际承受的压力是用户的实际操作请求,在线用户如果没有进行实际操作那么他最多将消耗一个连接线程,而应用CPU并不会有什么资源消耗。100个用户平均每个花费10秒下一个订单和10个用户每1秒钟下一个订单对应用带来的压力是一样的。所以,在场景中能用最少的并发用户来模拟真实的请求是最经济的选择方式。

那么,测试模型到底该如何确定呢?通过需求调研获得。下面介绍的两点是我们常用的调研方式:

  • 对于还未上线运营的新系统,我们一般会让应用的产品经理或负责人给出一个预估的比例;但是这个预估需要我们进行评估,不是随意的。对于一个以提供下单交易为主的应用,通常下单交易是占整个模型的较大比例,如果需求方提出的模型是查询比例较高,那么我们就有理由怀疑该模型的合理性。对于这种情况,我们建议选择几个常见的典型的模型来配合需求模型进行场景设计。
  • 对于已上线运营的应用,我们一般会分析实际的交易数据来确定交易比例,这样会更加精准。例如一个应用对用户提供下单、查询、退款三个交易,我们通过DBA在线查询某日的交易数据总量为200000笔,其中交易下单160000笔、查询38000笔,退款2000笔,由此我们算出各交易的比例是80%、19%、1%,那么这个比例就是我们的测试模型。

被测交易或使用的脚本

测试脚本是测试场景的基础,脚本包括对应

  • 40
    点赞
  • 235
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
以下是一个使用 LoadRunner 进行性能测试的实战案例示例: 1. 案例背景: - 应用程序:一个电子商务网站 - 目标:评估系统在高并发负载下的性能表现,发现潜在的性能瓶颈和优化机会。 2. 环境准备: - 安装和配置 LoadRunner 工具及其所需的组件。 - 配置测试环境,包括 Web 服务器、数据库和网络。 3. 脚本录制: - 使用 LoadRunner 的录制功能,模拟用户在网站上的典型操作,例如浏览商品、添加到购物车、结算等。 - 确保录制过程中涵盖了不同用户场景和操作流程。 4. 脚本编辑和参数化: - 对录制的脚本进行编辑,删除不必要的步骤,修复参数错误等。 - 使用参数化来模拟不同用户的输入和数据,例如用户名、密码、商品ID等。 5. 场景配置: - 创建负载测试场景,设置虚拟用户数量、并发用户数、思考时间等。 - 配置负载生成器,选择适当的负载模式和负载分布策略。 6. 运行测试: - 在 LoadRunner 中运行性能测试,并监控和记录关键指标,如响应时间、吞吐量和错误率等。 - 运行多次测试以获取稳定和可靠的结果。 7. 分析和优化: - 使用 LoadRunner 提供的分析工具,分析测试结果并识别性能瓶颈。 - 根据分析结果,优化应用程序,例如优化数据库查询、缓存策略或调整服务器配置。 - 可以进行负载测试、压力测试、容量规划等来评估系统的性能极限。 8. 生成报告: - 生成性能测试报告,总结测试结果、性能指标和建议。 - 报告应清晰明了地呈现测试结果和分析,以便决策者和开发团队理解和采取必要的行动。 请注意,此案例仅为示例,您可以根据自己的项目和需求进行适当的调整。性能测试的具体实施可能会因应用程序或系统的不同而异。 希望这个案例对您有所帮助!如果您需要更多信息,请随时提问。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值