分布式性能测试平台的设计与实现.pdfVIP

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

分布式性能测试平台的设计与实现

⼀、背景

性能测试在我们现在的测试中可以说是必不可少的⼀环,通常我们使⽤压测⼯具Jmeter或Loadrunner来进⾏压测⼯作,然后使⽤各种

监控⼯具对被压服务、数据库、中间件等组件进⾏监控,然后根据监控结果对各个组件进⾏分析和调优,最终达到性能测试的⽬的。

随着互联⽹的发展,各类软件系统⽤户量越来越多,系统的架构越来越复杂。性能测试⽅⾯来说,单台机器作为负载机已经不能满⾜我

们的要求了,虽然Jmeter和Loadrunner都能够进⾏分布式部署进⾏压测,但是部署和调试相对⽐较⿇烦,对压测⼯具的版本、数据⽂件的

构造和存放⽬录都有硬性的要求,⼀场性能测试下来,⼤量时间花在环境⽅⾯,真正性能测试执⾏、分析和调优的时间就被压缩,这样就得

不偿失。

在这样的情况下,越来越多的公司开始研发⾃⼰的性能测试平台,它能够加快性能测试的执⾏。同时,还具备⾃动构造数据、监控⽬标

服务、保存测试结果等优点,为我们后⾯的分析和调优⼯作进⾏了极⼤的辅助。

⼆、架构

什么是分布式性能测试平台:其实和我们使⽤Jmeter或Loadrunner进⾏分布式压测总体上是⼀样的,就是有⼀台调度机负责给多个压

⼒机分配压测任务,收集压测结果和监控结果,然后把所有结果存⼊对应的数据库,最后通过页⾯把这些结果展⽰出来。下⾯我们来看⼀下

下⾯这个架构:

从上⾯这个图可以看出,有三个关键模块:broker、worker、monitor,他们分别负责的功能如下:

broker

收集所有压⼒机信息,包括:IP、CPU、内存、磁盘、⽹卡等信息;

开始/停⽌压测请求,请求参数包括:线程数、循环次数、被测试Java类(case)

接收到请求后,调⽤sendTask/stopTask⽅法将请求以消息的形式发往各个压⼒机;

接收压⼒机上报的压测结果信息并存⼊数据库,包括:batchId、start_time、end_time、response_time和isSuccess,并存⼊数据库;

worker

接收broker下发的定时任务,然后调⽤JMeterEngine进⾏执⾏;

获取执⾏时间、是否成功等信息后将结果传回给broker;

上传worker机器性能指标到broker;

接收broker下发的停⽌任务并停⽌测试;

monitor

使⽤⼯具类(jna、jna-platform、oshi:oshi-core)获取监控信息,包括:CPU、内存、磁盘、⽹络等信息;

部署在worker机和被测服务所在机器,采⽤定时任务的⽅式隔⼏秒上传机器信息;

除了以上三个核⼼的模块外,还有⼀个核⼼模块,就是我们的测试case模块

所有case继承⾃AbstractJavaSamplerClient类,重写runTest()⽅法;

所有case应该包括数据的构造、请求的发送、结果的接收、时间的统计以及case执⾏成功与否的判断;

如果有读取配置⽂件、⽣成数据等前置操作可放在setupTest()⽅法中;

三、代码实现

地址:

文档评论(0)

176****0230 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档