全部产品
云市场

快速入门

更新时间:2019-05-17 17:46:36

若您需要在特殊环境下测试您的应用是否能正常运行,可以通过 PelicanDT 对服务器注入异常,来模拟停止应用、CPU 占用率过高、CPU 内存过高、网络中断、网络流量延时等测试环境。本文将通过向服务器注入查询当前路径的命令示例来介绍 PelicanDT 的使用方法。

安装 PelicanDT SDK

使用以下任意一种方法将 PelicanDT SDK 添加到项目中:

  • 下载 SDK 源码包,并添加到您的工作目录中。
  • 在 Maven 项目的 pom.xml 文件中添加以下代码,引入 PelicanDT SDK 依赖。
  1. <dependency>
  2. <groupId>com.alibaba.pelican</groupId>
  3. <artifactId>PelicanDT</artifactId>
  4. <version>1.0.9</version>
  5. </dependency>

注入命令

在您的工程中执行以下代码,向远程服务器注入查询当前路径的命令。

说明:您需要在代码中填入您的 ECS 可公网访问的 IP、ECS 用户名和登录密码等信息。

  1. import com.alibaba.pelican.chaos.client.impl.RemoteCmdClient;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.junit.Test;
  4. /**
  5. * @author moyun@middleware
  6. */
  7. @Slf4j
  8. public class TestRemoteCmdClient {
  9. @Test
  10. public void testRemoteCmdClient() {
  11. //ECS可公网访问的IP
  12. String ip = "";
  13. //ECS用户名,一般为root
  14. String userName = "";
  15. //ECS登录密码
  16. String password = "";
  17. //创建并初始化RemoteCmdClient实例
  18. RemoteCmdClientConfig remoteCmdClientConfig = new RemoteCmdClientConfig();
  19. remoteCmdClientConfig.setIp(ip);
  20. remoteCmdClientConfig.setUserName(userName);
  21. remoteCmdClientConfig.setPassword(password);
  22. RemoteCmdClient client = new RemoteCmdClient(remoteCmdClientConfig);
  23. //执行pwd命令
  24. RemoteCmdResult resultInfo = client.execCmdWithPTY(new RemoteCmd("pwd"));
  25. log.info(resultInfo.getStdInfo());
  26. }
  27. }

结果验证

执行程序后,日志输出内容如下:

  1. [root@iz2ze0kv2rqck9wpheu5vxz ~]$pwd
  2. /root
  3. [root@iz2ze0kv2rqck9wpheu5vxz ~]$export HISTFILE=/dev/null
  4. [root@iz2ze0kv2rqck9wpheu5vxz ~]$exit
  5. logout

通过第 2 行内容可以看出,命令执行后,当前目录为 /root