我目前正在对一个复杂的多层系统进行性能和负载测试,调查不同变化的影响,但是我在跟踪所有事情时遇到了问题:
我尽可能多地收集有关我所做的每项测试的信息(测试的场景,哪些补丁应用于数据库中的数据),但我仍然发现自己因为结果不一致而不得不重复测试。例如,我刚做了一个测试,我认为这是几个月前运行的测试的完全重复,但数据库中有更新的数据。我知道新数据应该导致性能下降,但结果显示相反!
与此同时,我发现自己要记录这些所有细节的不成比例的时间。
我考虑过的一件事是使用脚本来自动收集性能数据等......但我不确定这是一个好主意 - 不仅是花在开发脚本而不是测试上的时间,而且我的脚本中有错误可能会让我更快地忘记事情。
我正在听取一些关于如何更好地管理测试环境的建议/提示,特别是如何在收集所有内容之间取得平衡,并实际完成一些测试,否则可能会丢失重要信息?
答案 0 :(得分:0)
编写测试参数+环境的集合是一个非常好的想法。如果您在几天内进行测试,并且脚本编写需要一天时间,则需要花费大量时间。如果在一天后你看到它不会很快完成,重新评估并可能停止追求这个方向。
但你应该自己尝试一下。
答案 1 :(得分:0)
我倾向于同意@orip,脚本编写至少部分工作量可能会节省您的时间。您可以考虑花点时间询问哪些任务在您的人工方面最耗时,以及他们对自动化的合理程度如何?脚本特别擅长收集和汇总数据 - 通常比人们好得多。如果性能数据需要您进行大量解释,则可能会遇到问题。
编写这些任务的脚本的一个优点是,您可以在源/补丁/分支旁边检查它们,您可能会发现您从系统复杂性的组织结构中受益,而不是像现在那样努力追逐它
答案 2 :(得分:0)
如果您只是针对一些可以使管理员保持简单的设置配置而逃脱测试。它还可以更容易地将一个虚拟机放置在可以快速重新部署以提供干净基线的虚拟机上。
如果您真的需要您描述的复杂性,我建议您构建一个简单的数据库,以便查询您拥有的多变量结果。为每个重要因素设置一个列将允许您查询诸如“什么测试配置的延迟差异最小?”之类的问题。和“哪个测试数据库允许引发大多数错误?”。我使用sqlite3(可能通过Python包装器或Firefox插件)来实现这种轻量级集合,因为它可以将维护开销保持在相对较低的水平,并且可以避免让测试中的系统受到太大影响,即使您需要运行同一个盒子。
编写测试脚本会使它们更快地执行并允许以已经订购的方式收集结果,但听起来您的系统可能过于复杂而无法轻松完成。