qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

一次中间件结合业务的性能测试

开篇先扔一张图,下图是我本次测试对象的简单架构图:
  meeting
  先简单介绍下整个流程吧,我们根据图中画的来说(下文中说到的节点之后会讲):
  1、首先浏览器发出一个http请求至会管后台
  2、会管收到请求后向zookeeper的一个节点(数据节点)中写入消息(一般就是某种请求的消息)
  3、会议平台watch到zookeeper中该节点数据变化便从中把这条消息取出,并进行处理。注意:异步消息(我们应用大部分是异步消息)
  4、平台在取出zookeeper节点上的消息后会立即往zookeeper中的另外一个节点(数据节点)上写入消息(该消息表示我平台已经收到来自你会管的消息了)
  5、会管也会watch到这个节点的变化进而去读取这个消息,然后将该消息放入xmpp服务器,由xmpp推送给浏览器(当然,其实这个消息并没有什么实际意义)
  6、另外还有就是等平台处理完一开始会管的请求消息后(3中的消息),会再次推送处理结果后的消息(比如某个人被静音了,就会推送一串json数据,其中有标识说这个人被静音了)到zookeeper的状态节点(OK,先不要管他什么数据节点和状态节点)
  7、然后会管watch到后读取该数据并进行一系列封装和处理
  8、数据处理和封装完成后将数据放入xmpp服务器
  9、由xmpp服务器推送给浏览器,从而实现浏览器的实时状态
  OK,说到这里,基本的架构以及流程说完了。现在,有一个任务就是,会议管理界面上的某个按钮点击之后,“实时状态”感觉变化很慢。(比如我点击全部静音按钮,页面上与会人员的图标会显示出一个小图标表示被静音了,对,就是这个操作后,图标很久才显示出来,测试找出原因)
  如果交给各位读者这样的测试需求(当然,这个根本算不上需求,我就这么被忽悠了),读者朋友们会怎么进行这项测试呢??
  好了,各位,下面我给出我本次测试中采用的方法(如果觉得有更好的,请留言联系我!),先看图:
解决方案
  接下来我简单介绍下我这个类似“框架”的东西吧。
  1、首先初始化一个线程池
  2、线程一:使用smack包登录xmpp,监听所有消息,并过滤出我此次测试中需要的消息
  3、线程二:使用httpclient来模拟http请求并接收响应,并提取响应中的某些重要数据
  4、线程三:使用zookeeper的java客户端,连接我们的zookeeper服务器并设置节点的watcher
  5、线程四:收集前三个线程的数据,并附加时间戳
  只要将我们四个线程放入线程池中运行,即可。
  基本都已经介绍完了,如果有需要代码的童鞋也可留言回复哦(注:本次测试脚本有效代码量在2K行左右)~

posted on 2014-01-24 16:15 顺其自然EVO 阅读(289) 评论(0)  编辑  收藏 所属分类: 性能测试


只有注册用户登录后才能发表评论。


网站导航:
 
<2014年1月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜