品牌型号:联想 E550C ThinkPad
系统:Windows 11
软件版本:SoapUI 5
“网络慢”可能是现代软件用户最不愿遇到的体验之一,当我们点击开启一个功能或网页后,等待时间超过3秒还是空白,大多数人就会开始不耐烦刷新。这种“加载缓慢”的体验背后,往往就是网络延迟在作祟。作为测试人员,我们不仅需要关注应用程序功能的正确性,还需要模拟测试它在各种网络条件下的表现。SoapUI能帮助我们模拟网络延迟,下面我们一起来了解下SoapUI如何模拟网络延迟,网络延迟会影响测试结果吗。
一、SoapUI如何模拟网络延迟
网络延迟是由于网络信号不佳导致请求响应超时无法被客户端接收的一种现象,我们在正常网络下无法模拟网络延迟,因此需要使用SoapUI的Mock Service功能来模拟。
1、右键项目,选择“New SOAP MockService”或“New REST MockService”来创建一个MockService。

2、随后在MockService中点击“Add new mock action”打开创建动作弹窗,并在弹窗中输入要模拟网络延迟的请求方法和请求路径。

3、点击MockResponses的新建图标菜单,新建一个Response响应,在响应编辑界面中填入要模拟返回的数据,再在下方脚本编辑器中输入“Thread.(1000)”,模拟1秒钟的网络延迟。

4、最后回到MockService主界面,点击运行按钮开始运行模拟服务,SoapUI会提示“running on port 8080”,这表示我们使用“http://127.0.0.1/api/mock_network_slow”地址就可以访问该网络延迟接口。

二、网络延迟会影响测试结果吗
网络延迟是否会影响测试结果,需要从多个方面来看:
1、请求测试是否设置了超时时长。如果测试时加入超时时间,一旦出现网络延迟,就很可能导致超时抛出SocketTimeoutException异常。如果未设置则等待一段时间后依然返回200及响应数据,不会产生结果影响。

2、请求结果是否会影响到之后的测试用例。在多个测试用例间,它们的执行顺序是顺序执行,前一个请求的结果会在后一个请求发起时用到,如先登录后获取用户资料的测试场景。如果此时前一个请求因网络延迟导致结果获取不到,则后续测试都可能会得到500的错误返回状态码。

3、影响压力测试。网络延迟是压力测试中一个关键但常被忽视的因素,它直接影响到接口的性能测试结果的准确性。在压力测试过程中,网络延迟会导致API响应时间min、max、avg指标过长、吞吐量tps过低,导致整个性能测试结果失真。

通过本文对SoapUI如何模拟网络延迟,网络延迟会影响测试结果吗的讲解,我们学会了使用Mock Service功能模拟不同网络延迟场景,从而更全面地测试应用程序在各种网络条件下的表现。同时,要注意网络延迟对测试结果的影响,它可能导致请求超时、影响测试用例间的依赖关系,甚至使性能测试数据失真。因此,在测试过程中,我们应当尽可能在网络稳定的情况下进行测试。
