延时服务器网络

若您需要测试应用在服务器网络延时的情况下是否能正常运行,通过 PelicanDT 可轻松模拟服务器网络延时的测试环境。本文将介绍使用 PelicanDT 模拟服务器网络延时环境的方法。

前提条件

  • 您已安装 PelicanDT SDK,请参见安装 PelicanDT SDK

  • 您已在 Linux 远程服务器上运行应用。

操作步骤

本示例将模拟服务器网络延时为 1000 ms 且持续 10s 的测试环境,具体操作步骤如下:

  1. 将下方代码添加至您的工程,并进行以下配置:

    1. 在代码中填入您的远程服务器的 IP、用户名和登录密码等信息。

    2. 设置延时和持续时间,本示例中设置延时为 1000 ms,持续时间为 10s。

    import com.alibaba.pelican.chaos.client.RemoteCmdClientConfig;
    import com.alibaba.pelican.chaos.client.impl.RemoteCmdClient;
    import com.alibaba.pelican.chaos.client.utils.MemUtils;
    import com.alibaba.pelican.chaos.client.utils.NetTrafficUtils;
    import com.alibaba.pelican.deployment.element.impl.AbstractElement;
    
    import java.util.Map;
    
    /**
     * @author moyun@middleware
     */
    public class DemoNetTraffic {
    
        public static void main(String[] args) {
    
            //远程服务器IP
            String ip = "";
            //远程服务器用户名
            String userName = "";
            //远程服务器登录密码
            String password = "";
            RemoteCmdClientConfig config = new RemoteCmdClientConfig();
            config.setIp(ip);
            config.setUserName(userName);
            config.setPassword(password);
    
            RemoteCmdClient client = new RemoteCmdClient(config);
            //延时时间 ms
            int delayTime = 1000;
            //持续时间s
            int delaySecond = 10;
            //网络延时
            NetTrafficUtils.setNetworkDelay(client, delayTime, delaySecond);
        }
    }
  2. 运行您的工程。

结果验证

A 为远程服务器,B 为设置网络延时的服务器。执行示例程序前,登录 B 服务器,通过 B 服务器向 A 服务器执行ping命令,网络延时为 2.12 ms;执行示例程序后,网络延时为 1002 ms,10s 后恢复为 2.12 ms。