设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 数据 创业者
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

剖析美团内部所采用的网站压力测试方案(3)

发布时间:2021-07-12 23:00 所属栏目:21 来源:互联网
导读:一旦流量拷贝完成后,通过Web界面,用户能够查看日志的收集情况和单条日志的详情。 压测逻辑实现 压测工具采用Groovy来进行编写。对每个应用来说,只需要实现runner接口就可以实现对应用的打压。 复制代码 代码如下

一旦流量拷贝完成后,通过Web界面,用户能够查看日志的收集情况和单条日志的详情。

201632393521398.jpg (2782×1310)

压测逻辑实现
压测工具采用Groovy来进行编写。对每个应用来说,只需要实现runner接口就可以实现对应用的打压。

复制代码

代码如下:


interface Runner {
def init(Test app)
def run(Test app, String log)
def destroy(Test app)
}


以Thrift服务为例:

Java Code复制内容到剪贴板

class TestServiceRunner implements Runner {   

  

    RPCService.Client _client   

    TTransport _transport;   

  

    @Override  

    def init(Test app) {   

        def conf = app.config // 读取应用配置   

        _transport = new TFramedTransport(new TSocket(conf.get("thrift_service_host") as String, conf.get("thrift_service_port") as int))   

        TProtocol protocol = new TBinaryProtocol(_transport)   

        _client = new RPCService.Client(protocol)   

        _transport.open()   

    }   

  

    @Override  

    def run(Test app, String log) {   

        TestRequest req = Vcr.deSerialize(log, TestRequest.class) // 将拷贝流量反序列化   

        _client.echo(req) // 发送请求   

    }   

  

    @Override  

    def destroy(Test app) {   

        _transport.close() // 关闭服务   

    }   

}  

创建应用
实现以上接口后,就可以对应用进行打压了。

用户可以通过Web界面创建应用,除了必填配置以外,用户可以按照应用灵活配置。

201632393558352.jpg (2746×1034)

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读