作者|Eaton
导语| 在服务正式上线前,我们需要确保服务上线后的可用性和稳定性,因此对系统的处理能力和稳定性进行全面的测试是非常必要的。压力测试是其中重要的一环,本文将介绍如何使用 TarsBenchmark 对 TARS 服务进行压测。
目录
- 压测简介
- TarsBenchmark 的使用
- 安装部署
- 服务压测
- 总结
压测简介
在标准开发流程中,测试贯彻整个流程,包括但不限于单元测试、接口测试、集成测试、压力测试等。其中压力测试是服务上线之前的最后关键一环。
压测是通过不断给服务接口施加压力,测试服务接口性能,验证服务的处理能力和稳定性。我们可以通过压测对服务的性能进行评估,比如服务最大并发量、可以同时服务用户数等。最后根据测试指标对服务合理部署、扩缩容,或是对发现的性能瓶颈进行优化。
TarsBenchmark 是基于 TARS 生态的一个压测工具,主要用于 TARS 服务的压力测试。并且支持与 TarsWeb 结合使用,提供友好的操作界面对服务进行测试。下面将介绍如何使用 TarsBenchmark 对服务进行测试。
TarsBenchmark 的使用
TarsBenchmark 中包含 NodeServer
, AdminServer
两个服务。
NodeServer
: 为压测节点服务,用于压测的具体执行,对其他服务进行压测。可以在多个节点上部署,从而实现并行压测;AdminServer
: 用于管理压测节点,即管理NodeServer
,类似于 TARS 框架服务中的主控服务。
安装部署
我们先来看看怎么安装 TarsBenchmark。安装 TarsBenchmark 之前,需要具备 TARS 框架,关于如何安装 TARS,参考文档 TARS 框架部署。
首先,下载 TarsBenchmark 源码
git clone https://github.com/TarsCloud/TarsBenchmark.git
TarsBenchmark 中提供了一键安装脚本,能够通过脚本直接将 TarsBenchmark 发布在 TarsWeb 上,在 TarsWeb 中集成压测功能,执行命令如下
./install.sh $WebHost $Token $AdminIP $NodeIP
其中,参数
WebHost
为 TarsWeb 部署地址;Token
为在 TarsWeb 用户系统中生成的 Token,能够在http://${WebHost}/auth.html#/token
中新增并获取;AdminIP
为要部署AdminServer
的节点;NodeIP
为要部署NodeServer
的节点。
例如,TarsWeb 部署地址为 192.168.123.128:3000
,并要将 AdminServer
部署在节点 192.168.123.128
,NodeServer
部署在节点 192.168.123.128
,部署命令如下
cd TarsBenchmark
./install.sh 192.168.123.128:3000 abc123efg456ijk789 192.168.123.128 192.168.123.128
执行完成后,在 TarsWeb 上看到 benchmark
应用下包含服务 AdminServer
和 NodeServer
,即安装成功,如下
服务压测
成功安装 TarsBenchmark 后,就可以在 TarsWeb 上对服务进行压测了。接下来我们将以 HelloServer
服务为例,了解如何对服务进行压测。
首先,我们需要定义 HelloServer
的接口
// Hello.tars
module Demo
{
interface Hello
{
int testHello<