当非生产数据库的大小相对较小或不同于生产数据库的大小时,如何在非生产中进行性能测试?

时间:2019-07-11 18:20:45

标签: performance jmeter mockito performance-testing database-testing

我在QA中使用Jmeter进行了性能测试,QA DB中的记录数量比Prod DB中的记录数量少30-40倍。

由于上述原因,QA的性能非常好,但是在Prod中发布应用程序时,性能很差。

应该如何在可以模拟Prod条件的Non-Prod中进行性能测试(就此处的数据库大小而言)?什么是策略/流程?

2 个答案:

答案 0 :(得分:0)

正如您所说,如果数据库小得多,您将无法模拟实际负载。

您应该使用类似的方法,如果不能使用,请尝试使用其他选项来增加负载,因为更多的并发用户,每秒更多的事务以匹配接近实际生产负载

答案 1 :(得分:0)

最好的选择是将PROD数据库还原到QA环境,甚至更好地具有PROD的完整副本(这称为STAGING环境),否则测试将不准确。

此外,按比例缩放系统的比率永远不会为1x1,如果您对具有100万行的数据库有1秒的响应时间,那并不一定意味着对于200万行数据库的响应时间将是2秒

如果无法获得PROD副本,则应在“死”时间(如通宵或周末)直接在PROD上运行测试。

如果您甚至负担不起-您应该仍然可以执行某些活动,例如检查query plans并提出优化建议,就好像您将查询速度提高了2倍一样,相同的定量将应用于生产。您应该能够检测到deadlocksindices缺失或效率低下等。

您还应该能够执行integrationinteroperabilitysoak testing,但是不幸的是,在按比例缩小的环境上进行性能测试时,应该就是这样。