随便画一个系统图做示例。
在性能测试过程中,最简单的系统架构图也大概就是这样了。
在数据这一方面,有几个地方是要注意的。
-
DB中的,包含各种类型的数据库;2. Cache中的,包含各种类型的cache;3. 压力工具中的,参数化数据。
在执行场景之前,需要知道前两个里面的数据是什么状态。然后再判断压力工具中应该如何加载数据。
之前我写过一个实例文章说数据不均衡导致的问题的。《性能分析之数据不均衡导致TPS下降》
数据对性能场景的执行结果太重要了,以至于说如果数据不合理,测试结果是完全不合理。也就是白干了。
如何让数据合理呢?
其实分析了场景之后也就非常清晰了。就是用真实的数据。
但是在测试环境中,有非常多的实际测试实施中都没有线上的真实数据。
那就必须要造出符合业务规则的数据。有几种方式:
-
在数据库中直接插入数据。可以写SQL,也可以写代码做;我记得在之前的一个项目中,为了往一个表中插入1亿条记录数据,专门写了一段代码。
-
直接从前台做。也就是做个脚本从前端用压力的方式来预埋数据。这种方式是比较靠谱的,但是要注意的是:1. 产生业务的时间比较集中,所以在做批处理业务的时候要确定下容量是不是合理的;2. 做查询的时候如果涉及到时间范围查询,要关注下是否符合真实业务场景。
-
从真实环境中导出数据并脱敏。有很多公司都有专门的数据脱敏工具,特别是金融相关系统。
在大部分人做性能测试的时候,对数据的分析都不够理智。特别是性能测试工具中使用的参数化数据。
希望用少量的数据循环使用来模拟真实的情况,基本上都是耍流氓的行为。