《应用程序性能测试的艺术(第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进行规格选择与性能压测。
相关文章
|
1月前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
60 4
|
1月前
|
算法 数据挖掘 测试技术
犬类癌症检测(CANDiD)研究:使用独立测试集对1000多只犬进行基于高通量测序的多癌种早期检测"液体活检"血液测试的临床验证
这项研究首次在大规模独立测试集上验证了基于NGS的液体活检在犬类多癌种检测中的应用。该方法具有很高的特异性,可以作为一种新的无创癌症筛查和辅助诊断工具。通过早期发现癌症,有望改善犬类癌症的诊断和管理模式。
57 12
|
5月前
|
机器学习/深度学习
神经网络与深度学习---验证集(测试集)准确率高于训练集准确率的原因
本文分析了神经网络中验证集(测试集)准确率高于训练集准确率的四个可能原因,包括数据集大小和分布不均、模型正则化过度、批处理后准确率计算时机不同,以及训练集预处理过度导致分布变化。
|
6月前
|
测试技术 API 数据库
性能测试概念
**性能测试评估系统在负载下的表现,关注响应时间、吞吐量、并发用户数和资源利用率。关键指标包括RT、HPS、TPS、QPS、RPS等。并发数可由QPS和平均响应时间计算。提升压力的技术手段涉及多进程、多线程,各有优劣。P90、P95、P99等分位数用于描述数据分布,揭示不同负载场景下的系统性能。**
|
2月前
|
测试技术 数据库连接 数据库
测试脚本的编写和维护对性能测试结果有何影响?
测试脚本的编写和维护对性能测试结果有着至关重要的影响,
42 1
|
3月前
|
机器学习/深度学习 JSON 算法
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-Seg模型进行图像分割的完整流程,包括图像分割的基础知识、YOLOv5-Seg模型的特点、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。通过实例代码,指导读者从自定义数据集开始,直至模型的测试验证,适合深度学习领域的研究者和开发者参考。
1355 3
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
|
3月前
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
574 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
|
3月前
|
机器学习/深度学习 算法 PyTorch
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-7.0版本进行目标检测的完整流程,包括算法介绍、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。YOLOv5以其高精度、快速度和模型小尺寸在计算机视觉领域受到广泛应用。
1478 0
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
|
3月前
|
缓存 数据挖掘 测试技术
目标检测实战(三):YOLO-Nano训练、测试、验证详细步骤
本文介绍了YOLO-Nano在目标检测中的训练、测试及验证步骤。YOLO-Nano是一个轻量级目标检测模型,使用ShuffleNet-v2作为主干网络,结合FPN+PAN特征金字塔和NanoDet的检测头。文章详细说明了训练前的准备、源代码下载、数据集准备、参数调整、模型测试、FPS测试、VOC-map测试、模型训练、模型测试和验证等步骤,旨在帮助开发者高效实现目标检测任务。
101 0
目标检测实战(三):YOLO-Nano训练、测试、验证详细步骤
|
4月前
|
监控 中间件 测试技术
『软件测试5』测开岗只要求会黑白盒测试?NO!还要学会性能测试!
该文章指出软件测试工程师不仅需要掌握黑盒和白盒测试,还应该了解性能测试的重要性及其实现方法,包括负载测试、压力测试等多种性能测试类型及其在保证软件质量中的作用。
『软件测试5』测开岗只要求会黑白盒测试?NO!还要学会性能测试!

热门文章

最新文章