上篇文章『QQ好友在线/离线,如何测试?』针对即时通讯的“状态”进行了分析和总结,主要说到了QQ好友在线/离线实现方案,测试过程中需要注意的测试点。

针对好友状态实时性的要求需要使用不同的方式,如果实时性要求高可以采用推送的方式,那么QQ好友针对在线/离线要求较高,可以采用推送的方式进行同步。大家在做通讯工具方便的项目时,如果实时性要求不高的话,可以采用轮询拉取的方式同步。备注:轮询方式和推送方式在上篇已经介绍到,在这里就不过多描述。

QQ群友的状态又是按照什么方式进行同步状态的呢?

QQ群友的状态又该怎么去测试呢?

我们带着这个问题,继续了解和学习,现总结分享如下:

简单回顾下QQ好友在线/离线流程,尽量用流程图形式能让大家看明白。

用户登录时流程:

用户登出时流程:

用户登录时看到哪些好友在线哪些离线的流程:

用户状态变更时的实时推送流程:

群友状态按正常来讲也可以使用实时推送的方式,从而保证状态的实时性,但是目前大多数还是采用轮询拉取方式,主要因为群友状态实时推送压力实在太大,全部实时获取系统往往会承受不了。那么轮询拉取方式也会给服务器带来比较大的压力,可以使用按需拉取,延时拉取的方式,用户群可能较多,当用户进入某一个群时才进行用户状态的拉取。从来降低服务器压力,且满足需求。

从测试角度主要考虑:

缓存机制能够正常,缓存数据的准确性;

拉取方式的测试,当进入某一个群时才拉取;

用户在线/离线状态的正确性校验;

并发测试;等等…

测试架构师论坛:http://www.youxitest.com


了解更多请关注微信公众号:测试架构师

                                                       


QQ群友在线/离线,如何测试?的更多相关文章

  1. QQ好友状态,QQ群友状态,究竟是推还是拉? 网页端收消息,究竟是推还是拉?

    https://mp.weixin.qq.com/s/KB1zdKcsh4PXXuJh4xb_Zw 网页端收消息,究竟是推还是拉? 原创 58沈剑 架构师之路 2020-12-28   https:/ ...

  2. 企业常用的站内收索、QQ群、在线客服

    <div class="toplinks">            <form target="_blank">             ...

  3. 从一个QQ群友那儿偷来的js图形 ^_^

    <script type="text/javascript"> var head=document.createElement("HEAD"); d ...

  4. QQ好友在线/离线,怎么测试?

    即时通讯是目前internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷,那么今天主要针对QQ好友在线状态/QQ群友在线状态功能出发,一起思考其中的实现原理以及我们如何去测试此功能? 当大 ...

  5. QQ群排名霸屏技术居然是这样简单

    最近做了一些收费的QQ群,收多少钱,一块钱的入门费,也就是说进入我的QQ群必须要1块钱的会费. 我的QQ群主要是干嘛呢,放些电影,比如说市面上电影院,正在播放的,最新最热门的,火爆的一些电影. 先前呢 ...

  6. [原创]移动应用测试技术圈QQ群:211828629

    [原创]移动应用测试技术圈QQ群:211828629  移动应用测试技术圈QQ群:211828629,研究ios,android,winphone等平台测试技术,涉及功能/性能/安全/自动化/用户体验 ...

  7. 今日Q群:QQ群众群友反馈问题的归纳总结

    今日Q群:QQ群群友反馈问题的归纳总结     今天Q群里还算比较活跃,归纳总结后主要有以下几类问题: 一.如何在Excel中按指定规则对有颜色的单元格进行过滤删选 具体的解决办法,请参照今天发布微信 ...

  8. 收费的QQ群 改变的不只是所谓的在线教育

    改变的不只是所谓的在线教育" title="收费的QQ群 改变的不只是所谓的在线教育"> 如果说国内互联网企业中最会捞钱的,腾讯敢认第二,恐怕没有其他的企业敢认第一 ...

  9. 十代雅阁广东车友群,雅阁广州车友群,深圳雅阁车友群,雅阁微信群、雅阁车友群、十代雅阁交流微信QQ群

    最近一直在关注第十代雅阁,不论是普通汽油版本还是油电混动版本都很不错,在网上看到很多评测文章和视频 后续都会整理发布到微信群中. 由于论坛发帖,博客发文都不是很方便,为了及时沟通,先创建了微信群,方便 ...

随机推荐

  1. Python学习(二):函数入门

    1.函数代码格式: def 函数名(): 函数内容 执行函数:函数名() 2.代码举例: #!/usr/bin/env python #coding=utf-8 #定义函数 def Func1(): ...

  2. Android模拟器

    一.Genymotion 1.下载安装:https://www.genymotion.com/download/  (注:安装前需要先注册) 因为Genymotion运行需要VirtualBox,如果 ...

  3. 滚动条大于120px时,判断pc端的情况下,导航条固定定位

      //滚动条大于120px时,判断pc端的情况下,导航条固定定位 $(window).scroll(function(){ var viewWidth=$(document).width() var ...

  4. 初识BASH SHELL

    什么是Shell shell翻译成中文就是"壳"的意思.简单来说就是shell是计算机用户与操作系统内核进行"沟通"的一种工具.Windows系统中有power ...

  5. java多线程(七)-线程之间的 协作

    对于多线程之间的共享受限资源,我们是通过锁(互斥)的方式来进行保护的,从而避免发生受限资源被多个线程同时访问的问题.那么线程之间既然有互斥,那么也会有协作.线程之间的协作也是必不可少的,比如 盖个商场 ...

  6. curl -windows下接口通讯

    1,下载curl -----url命令传输工具 2,配置curl环境变量 3,在cmd环境中使用   举例:curl -G http://xxxxxxx.com?+参数 使用:curl -G &quo ...

  7. 理解SynchronizationContext,如何在Winform里面跨线程访问UI控件

    SynchronizationContext 类是一个基类,可提供不带同步的自由线程上下文. 此类实现的同步模型的目的是使公共语言运行库内部的异步/同步操作能够针对不同的异步模型采取正确的行为.此模型 ...

  8. Android CoordinatorLayout、AppBarLayout、DrawerLayout、NavigationView 的使用及问题小结

    这里只对Material Design中这几种组件使用的重要部分以及容易出现问题的地方进行汇总(遇坑请直接看最后常见问题部分),详细用法请自行查阅官方文档 一.CoordinatorLayout 介绍 ...

  9. 小白的Python之路 day5 shelve模块讲解

    shelve模块讲解 一.概述 之前我们说不管是json也好,还是pickle也好,在python3中只能dump一次和load一次,有什么方法可以向dump多少次就dump多少次,并且load不会出 ...

  10. Mysql无法启动 InnoDB: Attempted to open a previously opened tablespace

    win2008,Mysql5.6,mysql服务无法启动 查看事件日志,报错InnoDB: Attempted to open a previously opened tablespace 最终解决方 ...