虽然后端性能测试工具和GUI自动化测试工具都是通过自动化的手段模拟终端用户使用系统的行为,但是两者实现的原理截然不同。
第一个显著区别是,模拟用户行为的方式。
GUI自动化测试工具模拟的是用户的界面操作,因此测试脚本记录的是用户在界面上对控件的操作;而性能测试工具模拟的是用户的客户端与服务器之间的通信协议和数据,这些通信协议和数据往往是用户在界面上执行GUI操作时产生的。
明白了这一点,你自然就能明白为什么录制虚拟用户性能测试脚本时,我们需要先选定录制协议了。
另外,正是由于脚本的模拟是基于协议的,所以我们才能比较方便地模拟成千上万并发用户同时使用系统的场景;否则,如果性能测试基于GUI发起,那我们就需要成千上万的浏览器同时执行用例,而这显然是不可能的。
第二个显著的区别是,测试的执行方式。
GUI自动化测试的执行,一般是单用户执行并验证功能结果;而性能测试的执行,往往需要同时模拟大量的并发用户,不仅需要验证业务功能是否成功完成,还要收集各种性能监控指标,会涉及到压力产生器、并发用户调度控制、实时监控收集等内容,所以性能测试的执行控制要比GUI自动化测试复杂得多。
这部分内容,我稍后在第32和33这两篇文章中详细展开。