《应用程序性能测试的艺术(第2版)》—第2章 2.3节性能测试工具集:概念验证

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 对于候选的性能测试工具,你需要对它们一一试用以验证工具的可行性,只有这样才能确保你最终选择的工具集能够满足你的需求。

本节书摘来自异步社区《应用程序性能测试的艺术(第2版)》一书中的第2章,第2.3节性能测试工具集:概念验证,作者【新西兰】Ian Molyneaux(莫得尼克斯),更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 性能测试工具集:概念验证
对于候选的性能测试工具,你需要对它们一一试用以验证工具的可行性,只有这样才能确保你最终选择的工具集能够满足你的需求。在验证过程中至少选择录制两个测试用例:一个只读用例(比如一个返回一条或者多条记录的搜索操作)和一个涉及插入和更新你的应用数据库的写用例。这样你就能验证录制下来的测试用例是否能够正确回放。如果你的应用是只读的,你也要检查脚本回放日志来确保回放过程中没有任何错误。

概念验证完成以下目标。

为验证性能测试工具是否适合目标应用提供了一次技术评估的机会
技术兼容性显然是一个关键目标,否则你将会在测试用例的脚本实现阶段举步维艰(或者根本是不可能完成的任务)!你必须在真实的应用环境来试用性能测试工具,只有这样才能在确定是否在项目中应用该工具之前充分暴露和解决问题。

发现脚本的数据需求
典型的概念验证会构建一些简单的测试用例,这些用例是整个性能测试项目的基础。这是在正式开始编写性能测试脚本之前非常好的一次排演机会,在这个过程中你会发现为了正确执行用例所需要的外部数据和运行时数据。概念验证只会创建两三个测试用例,随着正式用例的增多,你会发现更多的数据需求。但是概念验证经常能够帮你快速定位到一些常用的输入数据需求,比如登录的用户名密码和一些保持用户会话有效的状态数据。

帮助评估脚本编写难度
概念验证还可以帮你评估编写一个典型的测试用例脚本需要耗费多少时间以及评估修改脚本所带来的额外时间。

展示性能测试解决方案是否适合目标应用
相比简单的样例沙箱,针对实际应用的工具测试要靠谱很多。

概念验证检查点
下面列举的检查点为有效地开展概念验证提供了一些指引。就时间而言,每个概念验证都有它的独特性,但是在应用环境可用的前提下,一般不会超过几天的时间。

前提
下面这些需求应当在项目中尽早准备以便在需要的时候能够快速搭建POC环境。

和客户(内部其他项目部门)就POC项目的成功或者退出条件达成一致,你们需要对POC本身是否成功有一致判断。这些条件需要在正式开始POC之前文档化,并且确认签字。
拥有满足性能测试工具最低软硬件需求的一台工作站或者客户端平台。这台机器必须已经安装了应用客户端和相应的支撑软件。
拥有在被测应用环境安装任何需要的监控软件的权限。
最好能够在POC期间独占应用的使用权。
能够联系到一个熟悉应用的负责人(比如一个超级用户),他能够回答可能出现的应用使用问题。
能够联系到一个熟悉应用原理的专家(比如应用开发),他能够回答POC过程中出现的相关技术问题,并且能够解释应用架构在中间件层面是如何运作的。
一个能够正确安装性能测试工具到工作站的账号,并且这个账号需要对被测应用客户端有访问权限。
至少两套针对目标应用的登录信息。之所以需要两套是因为你需要验证并发执行测试用例时不会出现问题。
两个样例测试用例,一个是只读类型的操作,另一个是相对复杂的涉及更新应用数据的操作。这样就能验证脚本在读写模式下是否正常工作。
流程
下面这个列表可以帮助你确保POC项目为后续的正式性能测试打下坚实的基础。

针对同样的测试用例录制两份,然后使用你认为最便捷的方式对这两份脚本进行比较。选择有很多,Windiff就是一个不错的选择,也许你的性能测试工具本身就提供了这样的比较功能。定位两次录制脚本中不一致的地方,这些地方将会是需要重点关注和解决的运行时数据关联需求。
在定位了脚本输入数据和运行时数据关联以及其他一些必要的脚本修改之后,确保脚本在单用户和多用户模式下都能够正确回放。确认任何数据库更新在脚本回放之后都已经生效,并且回放日志没有错误信息。在POC或者后续的正式测试过程中,都需要避免由于手工修改脚本带来诸如内存泄漏等非业务问题。
注意

Windiff.exe是一款用于定位两个文件中不同内容的Windows工具程序;这是一款免费工具并且已经伴随Windows发布有好长时间。如果你需要更加强大的对比功能,可以尝试下面的工具:

prestoSoft的ExamDiff Pro
WinMerge
交付物
下面列表中的内容是POC的交付物,它们是后续有效开展正式性能测试项目的基础。

POC的输出应该针对性能测试工具是否能够对应用测试用例进行脚本化和回放给出明确的结论。
你应该在POC过程中定位到一些脚本输入数据和会话数据的需求并从中了解到后续性能测试项目过程中可能存在的数据需求。
你应该能够了解为了让脚本正确回放所需要做的一些脚本修改工作并且对编写一个能够正确执行的测试用例脚本所需要的时间也有相应评估。
如果这是一个销售过程的POC,你应该能够打动你的客户,并且和客户就之前达成的POC完成条件形成共识——一次完美的销售!

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
3月前
|
机器学习/深度学习
神经网络与深度学习---验证集(测试集)准确率高于训练集准确率的原因
本文分析了神经网络中验证集(测试集)准确率高于训练集准确率的四个可能原因,包括数据集大小和分布不均、模型正则化过度、批处理后准确率计算时机不同,以及训练集预处理过度导致分布变化。
|
9天前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
|
9天前
|
数据采集 缓存 测试技术
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
16 2
|
9天前
|
测试技术 数据库连接 数据库
测试脚本的编写和维护对性能测试结果有何影响?
测试脚本的编写和维护对性能测试结果有着至关重要的影响,
18 1
|
14天前
|
缓存 监控 测试技术
全网最全压测指南!教你如何测试和优化系统极限性能
大家好,我是小米。本文将介绍如何在实际项目中进行性能压测和优化,包括单台服务器和集群压测、使用JMeter、监控CPU和内存使用率、优化Tomcat和数据库配置等方面的内容,帮助你在高并发场景下提升系统性能。希望这些实战经验能助你一臂之力!
31 3
|
1月前
|
机器学习/深度学习 JSON 算法
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-Seg模型进行图像分割的完整流程,包括图像分割的基础知识、YOLOv5-Seg模型的特点、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。通过实例代码,指导读者从自定义数据集开始,直至模型的测试验证,适合深度学习领域的研究者和开发者参考。
446 3
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
|
24天前
|
缓存 监控 数据挖掘
C# 一分钟浅谈:性能测试与压力测试
【10月更文挑战第20天】本文介绍了性能测试和压力测试的基础概念、目的、方法及常见问题与解决策略。性能测试关注系统在正常条件下的响应时间和资源利用率,而压力测试则在超出正常条件的情况下测试系统的极限和潜在瓶颈。文章通过具体的C#代码示例,详细探讨了忽视预热阶段、不合理测试数据和缺乏详细监控等常见问题及其解决方案,并提供了如何避免这些问题的建议。
50 7
|
1月前
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
199 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
|
1月前
|
机器学习/深度学习 算法 PyTorch
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-7.0版本进行目标检测的完整流程,包括算法介绍、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。YOLOv5以其高精度、快速度和模型小尺寸在计算机视觉领域受到广泛应用。
490 0
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
|
1月前
|
缓存 数据挖掘 测试技术
目标检测实战(三):YOLO-Nano训练、测试、验证详细步骤
本文介绍了YOLO-Nano在目标检测中的训练、测试及验证步骤。YOLO-Nano是一个轻量级目标检测模型,使用ShuffleNet-v2作为主干网络,结合FPN+PAN特征金字塔和NanoDet的检测头。文章详细说明了训练前的准备、源代码下载、数据集准备、参数调整、模型测试、FPS测试、VOC-map测试、模型训练、模型测试和验证等步骤,旨在帮助开发者高效实现目标检测任务。
46 0
目标检测实战(三):YOLO-Nano训练、测试、验证详细步骤

热门文章

最新文章