分布式系统测试工具——Jepsen安装

上一篇 / 下一篇  2022-06-02 14:27:43 / 个人分类:测试工具

一、      为什么选择Jepsen

分布式系统测试工具的目的主要是模拟各种异常测试条件下(如:网络抖动、进程崩溃、单节点进程重启、操作系统时间不一致等),分析测试结果的正确性(如:是否满足分布式系统的线性一致性)。然而,对于测试人员而言,虽然可以使用一些线程的linux工具或方法(如iptables命令、手动Kill进程、reboot单节点等)模拟测试条件,但是手工模拟效率低、工作量大(如:需要切换节点操作、抓取日志各节点日志等),且人工进行测试分析任务较重,不是理想的选择。而Jepsen作为比较著名且使用较多的开源分布式系统测试软件(已经帮助过ElasticsearchEtcdZookeepercockroachdb等项目),测试特点偏黑盒测试(通过接口进行各种操作,模拟故障注入验证分布式系统的一致性),可以作为测试人员优良选择。

虽然,讲了这么多Jepsen的优点,但是对于测试人员来说,它也有自身的不足。比如:1)学习成本较高,需要学习Clojure语言(Jepsen是用Clojure开发的框架,测试用例也需要使用Clojure语言编写);2)无法长时间并发运行,容易造成OOM3)测试用例需要定制Model,复杂数据类型的结果分析,需要专门做一些定制开发。

二、      Jepsen的安装方法

由于网上Jepsen基于docker的安装方法较多,本文主要演示Jepsen裸机安装方法。

Ubuntu操作系统为例:

1.    环境配置

软件/工具名

备注

JDK环境

版本要求:1.8版本及以上

Leiningen安装

Clojure构建工具

Gnuplot安装

交互式绘图工具,可以用于Jepsen呈现性能图

Graphviz安装

可视化图形工具,可以用于Jepsen呈现异常结果

安装命令:sudo apt-get install openjdk-8-jre openjdk-8-jre-headless libjna-java gnuplot graphviz

1 Jepsen环境配置

2.    Jepsen安装

1)    安装包下载

可通过https://github.com/jepsen-io/jepsen地址离线下载Jepsen的压缩包;

2)    压缩包解压

使用unzip命令解压压缩包。

       对于裸机安装Jepsen,只需将Jepsen安装包解压即可。

三、      Jepsen的试用

Jepsen运行模式为Control node+DB node模式(如下图所示),Control Node节点到DB node节点需要开启ssh免密登录,便于控制节点在测试程序开始后会启用多个worker进程,并发地通过SSH登入数据库节点进行读写操作。

https://pic3.zhimg.com/80/v2-c961b2fb0ba522f8c117f4699b35b502_720w.jpg

2 Jepsen运行模式

1.    ssh免密登录配置

1)    修改hosts映射

编辑/etc/hosts文件,修改对端机器主机名映射,如:192.168.235.22 test112

2)    本地生成公私钥

输入ssh-keygen,一路回车即可;

3)    复制公钥到对端机器

ssh-copy-id -i ~/.ssh/id_rsa.pub root@{对端机器ip}

4)    测试免密登录

使用命令:ssh root@{对端机器ip}可以发现不需要密码即可登录对端机器。

2.    Jepsen试用

Jepsen本身提供了一些项目的样例,可以使用提供的样例测试Jepsen是否安装成功。如:使用jepsen样例。

3 Jepsen运行样例

四、      FAQ

1.    lein run test运行时提示UnknownHostsException,如下图所示:

答:lein run test默认主机为n1,n2,n3…,用户名为root,密码为root。对于选用其他node节点或输入其他用户名、密码,可使用选项—node {节点名}--username {用户名}--password {密码}配置,如:lein run test --node test112 –username root –password jepsen

2.    查看lein命令帮助

答:使用lein –help命令,查看命令选项。

3.    lein run test运行时提示端口访问不到

答:查看端口防火墙状态,关闭对端机器防火墙。


TAG: 大佬养成计划

 

评分:0

我来说两句

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

我的存档

数据统计

  • 访问量: 2609
  • 日志数: 7
  • 建立时间: 2022-06-02
  • 更新时间: 2022-06-16

RSS订阅

Open Toolbar