基于MySQL应用的基准测试(2)

发表于:2013-6-18 09:55

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:宁海元 周振兴等 译    来源:51Testing软件测试网采编

  基准测试通常需要运行多次。具体需要运行多少次要看对结果的记分方式,以及测试的重要程度。要提高测试的准确度,就需要多运行几次。一般在测试的实践中,可以取最好的结果值,或者所有结果的平均值,亦或从五个测试结果里取最好三个值的平均值。可以根据需要更进一步精确化测试结果。还可以对结果使用统计方法,确定置信区间(confidence interval)等。不过通常来说,不会用到这种程度的确定性结果注8。只要测试的结果能满足目前的需求,简单地运行几轮测试,看看结果的变化就可以了。如果结果变化很大,可以再多运行几次,或者运行更长的时间,这样都可以获得更确定的结果。

  获得测试结果后,还需要对结果进行分析,也就是说,要把“数字”变成“知识”。最终的目的是回答在设计测试时的问题。理想情况下,可以获得诸如“升级到4 核CPU 可以在保持响应时间不变的情况下获得超过50% 的吞吐量增长”或者“增加索引可以使查询更快”的结论。如果需要更加科学化,建议在测试前读读null hypothesis 一书,但大部分情况下不会要求做这么严格的基准测试。

  如何从数据中抽象出有意义的结果,依赖于如何收集数据。通常需要写一些脚本来分析数据,这不仅能减轻分析的工作量,而且和自动化基准测试一样可以重复运行,并易于文档化。下面是一个非常简单的shell 脚本,演示了如何从前面的数据采集脚本采集到的数据中抽取时间维度信息。脚本的输入参数是采集到的数据文件的名字。

  假设该脚本名为analyze,当前面的脚本生成状态文件以后,就可以运行该脚本,可能会得到如下的结果:

  第一行是列的名字;第二行的数据应该忽略,因为这是测试实际启动前的数据。接下来的行包含Unix 时间戳、日期、时间(注意时间数据是每5 秒更新一次,前面脚本说明时曾提过)、系统负载、数据库的QPS(每秒查询次数)五列,这应该是用于分析系统性能的最少数据需求了。接下来将演示如何根据这些数据快速地绘成图形,并分析基准测试过程中发生了什么。

  3.6 绘图的重要性

  如果你想要统治世界,就必须不断地利用“阴谋”注9。而最简单有效的图形,就是将性能指标按照时间顺序绘制。通过图形可以立刻发现一些问题,而这些问题在原始数据中却很难被注意到。或许你会坚持看测试工具打印出来的平均值或其他汇总过的信息,但平均值有时候是没有用的,它会掩盖掉一些真实情况。幸运的是,前面写的脚本的输出都可以定制为gnuplot或者R绘图的数据来源。假设使用gnuplot,假设输出的数据文件名是QPS-per-5-seconds:

54/5<12345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号