如何证明你的性能测试结果可信?

本文涉及的产品
性能测试 PTS,5000VUM额度
简介:
经常和一些同行在网上交流,了解到现在很多公司都在做 性能测试 ,甚至有的在公司都没有成熟的性能测试人员情况下,就拉个稍微了解点性能测试工具的人员,跑个脚本就做起了性能测试。这时候都不约而同的抛出了一个问题,我们的性能测试结论是可信的吗?结合自己的性能测试经验,针对性能测试结论的可信度,谈谈个人的一点看法。

   确定测试结果可信度,指的是性能测试结果是否稳定可靠。也就是说,测试得到的各种指标数据是不是反映了系统真实性能的情况。例如,如果同一套脚本在对同 一测试对象(即被测对象本身没有变化,例如同一页面)进行的数次测试中,一般情况下页面响应时间指标忽高忽低的话,则说明该测试缺乏信度则得到的响应时 间并不能反映系统在真实生产环境的响应时间。测试的信度与测试的效度有着密切的关系。一般说来,只有信度较高的测试才能有较高的效度,效度较高的性能指标 才有较高的实际性能分析价值和对改进性能方案进行决策时的参考价值。测试的信度主要涉及到测试工具自身的可靠性和测试环境稳定性以及测试方案成熟性这三个 方面。

  第一,测试工具自身的可靠性。

  测试工具的可靠性,主要是指测试工具本身是否有Bug,性能计数器是否准确等和性能测试工具针对当前性能测试项目的场景进行的设置是否合理。

  解决办法:

   针对性能测试工具本身功能方面,要对要使用的性能工具进行评估,商业工具和开源工具以及自己开发的工具,甚至是一些简单插件,一些小的 Application等。虽然他们的性能测试原理都是相同的。但是还是要根据项目情况和工具情况进行整体评估,特别是一些特别项目,并不是一定商业工具 就更稳定可靠,但是相对而言,商业工具功能较为丰富,简单易学习,稳定性也可以。结合成本和项目情况可以选择自己开发工具,也可以定制工具,也可以对一些工具进行部分改进,例如自己做个更加精确的计数器。

   针对工具设置方面,结合项目情况选择最合理的设置,也许run脚本时候的很多问题,就是由于设置产生的。这部分需要对使用的工具很熟悉,清楚一些常用属 性的设置场景。例如一些基本的设置:Agent和Controller的设置,scenario设置,counter sets,run setting。

  第二,测试环境稳定性。

  测试环境的稳定性对性能测试结果的重要性,相信已经都深有感触。每个项目做性能测试方案时候都要梳理一遍可能影响request的开关,过期时间等设置。

  解决办法:

  首先要尽可能建立一个独立的性能测试环境,即使一些大型程序,例如大型的电子商务网站,数据库过于庞大,难以建立独立的性能测试数据库环境,也要对性能测试数据进行一些标识,建立环境时候,要确保web server上的版本和windows server版本相对应,即时根据测试方案要求更新测试版本。要对一些用的cache server、Application server,搜索引擎等server集群进行合理设置。以使其符合项目性能测试的要求。

  第三,测试方案成熟性。

  测试方案是对一个性能测试从始至终的所有工作的指导。性能测试相当于做一个精密的实验,方案的精密严谨性就直接会导致得到的性能测试指标准确性,合理性。

  解决办法:

   首先要熟悉该次性能测试的目的,和测试需求。深入分析需求,提取出一些关键点,熟悉涉及到相关部分的业务,特别是涉及到request的,是Html请 求,还是Ajax请求,请求中是否包含动态数据,例如一些cookie参数等。根据以上了解,提取出性能测试场景。给出详细的测试场景执行方案,以及测试 指标名称。给出性能指标分析策略。取数据的策略(例如重测法,交替形式法,对半法等)。

  测试执行过程中要时刻保持精密的思想,确保性能测试从始至终都要有据可依,有理论可考。最终才能得出具有很高参考价值的性能指标数据,这样才能得出有效的性能测试结论。


本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
8月前
|
存储 安全 Cloud Native
安全利器!龙蜥推出机密计算远程证明服务—OAAS 诚邀广大用户测试
服务化的远程证明服务中心 OAAS具有极高的安全性和灵活性,并在内部实现了策略引擎,旨在为使用可信执行环境 (TEE) 的用户提供一个安全高效的远程证明免部署解决方案,满足在各类机密计算应用场景下的核心信任需求。
|
19天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
71 11
|
2月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
70 3
|
3月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
84 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
4月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
282 7
Jmeter实现WebSocket协议的接口测试方法
|
4月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
290 3
快速上手|HTTP 接口功能自动化测试
|
4月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
61 5
|
3月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
50 0
|
5月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
6月前
|
存储
Postman 接口测试配置 Pre-request Script
Postman 接口测试配置 Pre-request Script
240 5
Postman 接口测试配置 Pre-request Script