性能测试数据有什么稀奇的,不是构造一条数据或者一小批数据,供性能测试脚本使用吗?其实不然,性能测试之所以特殊,在于其测试数据的复杂性。这里讲的复杂性,不是单元测试、功能测试中的要考虑多种不同情况下的数据组合;而是它需要兼顾到对数据库的操作。

  试想,如果某张表中只有100条数据,开始做性能测试,有效吗?

  试想,SQL语句没通过DBA审核,开始性能测试,有意义吗?

  答案是,无效,也无意义。在数据库层面,性能测试针对的是大数据量(不一定是大表),而大数据量的表,需要创建索引以提高数据库查询效率,数据量大了,也必然要求SQL语句足够优化。

  敏锐的同学已经看出来了:大量数据、索引、高效SQL。写到这里,答案已经非常清晰,性能测试不仅要关注业务规则的数据,还需要验证数据库索引是否正确,SQL语句是否足够优化,等等。

  至此,我们可以顺理成章的将性能测试数据分成两部分:业务数据+基础数据。

  1、业务数据

  业务数据是符合业务逻辑规则的数据,比如一个旺铺卖家的宝贝,需要有宝贝、卖家、店铺、卖家购买旺铺服务等这些表和表中相关联的数据。一旦缺少某个环节,页面无法打开,即便打开也会报错;相应的性能测试脚本执行过程中,服务器端也会报错。构造业务数据,需要工程师熟悉业务逻辑。

  2、基础数据

  基础数据不一定要符合业务逻辑规则。它们的存在,是为了将表中数据量撑大到某种程度,以验证SQL语句的执行效率、索引创建的合理性和正确性,数据库相关参数设置是否合理等。构造基础数据,不需要工程师熟悉业务逻辑,但需要工程师具备编写高效存储过程或者高效SQL语句的能力。