上期给大家分享过需要关注性能测试服务器方面的内容,今天分享一下性能测试数据。
有些同学会问:性能测试数据有什么稀奇的,不就是构造一条数据或者一小批数据,供性能测试脚本使用吗?其实不然,性能测试之所以特殊,在于其测试数据的复杂性。这里讲的复杂性,不是单元测试、功能测试中的要考虑多种不同情况下的数据组合;而是它需要兼顾到对数据库的操作。
试想,如果某张表中只有100条数据,就开始做性能测试,有效吗?
试想,SQL语句没通过DBA审核,就开始性能测试,有意义吗?
答案是,无效,也无意义。在数据库层面,性能测试针对的是大数据量(不一定是大表),而大数据量的表,需要创建索引以提高数据库查询效率,数据量大了,也必然要求SQL语句足够优化。
敏锐的同学已经看出来了:大量数据、索引、高效SQL。写到这里,答案已经非常清晰,性能测试不仅要关注业务规则的数据,还需要验证数据库索引是否正确,SQL语句是否足够优化,等等。
至此,我们可以顺理成章的将性能测试数据分成两部分:业务数据+基础数据。
1、业务数据
业务数据是符合业务逻辑规则的数据,比如一个旺铺卖家的宝贝,需要有宝贝、卖家、店铺、卖家购买旺铺服务等这些表和表中相关联的数据。一旦缺少某个环节,页面就无法打开,即便打开也会报错;相应的性能测试脚本执行过程中,服务器端也会报错。构造业务数据,需要工程师熟悉业务逻辑。
2、基础数据
基础数据不一定要符合业务逻辑规则。它们的存在,是为了将表中数据量撑大到某种程度,以验证SQL语句的执行效率、索引创建的合理性和正确性,数据库相关参数设置是否合理等。构造基础数据,不需要工程师熟悉业务逻辑,但需要工程师具备编写高效存储过程或者高效SQL语句的能力。
写到这里,又有同学会发问:那么,搜索引擎没有数据库,该如何准备性能测试数据呢?
搜索引擎性能测试数据的准备,将在后续的系列章节中进行分享,敬请期待。
相关阅读: