精华内容
下载资源
问答
  • 利用自己的技术为博彩、理财等诈骗犯罪团伙制作网站、交流软件并提供技术支持这2人被涵江警方抓了1月12日晚上涵江警方经过缜密侦查多警种联合在泉州安溪成功抓获林某某等2名涉嫌诈骗犯罪嫌疑人冻结资金约50万元扣押...

    利用自己的技术

    为博彩、理财等诈骗犯罪团伙

    制作网站、交流软件

    并提供技术支持

    这2人被涵江警方抓了

    1月12日晚上

    涵江警方经过缜密侦查

    多警种联合

    在泉州安溪

    成功抓获林某某等2名涉嫌诈骗犯罪嫌疑人

    冻结资金约50万元

    扣押电脑等作案物品

    bf991e862ad53474d7287f9072ad287f.png

    据悉

    2020年5月至今

    上述2名嫌犯利用自身专业知识

    制作投资理财、聊天网站及APP等软件

    搭建数据库、处理后台数据

    为诈骗团伙提供技术支撑

    从中获利约100万元

    经审讯

    林某某等人

    对帮助他人实施信息网络犯罪活动

    犯罪行为供认不讳

    目前,2人已被依法采取刑事强制措施

    案件正在进一步侦办中

    8c09e2b7151628eb61641f6f4a2ef420.png

    警方提醒

    在“帮信”类型案件中,犯罪嫌疑人往往存在侥幸心理,觉得自己没有参与到直接犯罪中去,只是提供技术支持,因而不会触犯法律。事实是,这种想法大错特错。

    最高法最高检联合发布的《关于办理非法利用信息网络、帮助信息网络犯罪活动等刑事案件适用法律若干问题的解释》规定:

    为他人实施犯罪提供技术支持或者帮助,具有下列情形之一的,可以认定行为人明知他人利用信息网络实施犯罪,但是有相反证据的除外:

    (一)经监管部门告知后仍然实施有关行为的。

    (二)接到举报后不履行法定管理职责的。

    (三)交易价格或者方式明显异常的。

    (四)提供专门用于违法犯罪的程序、工具或者其他技术支持、帮助的。

    (五)频繁采用隐蔽上网、加密通信、销毁数据等措施或者使用虚假身份,逃避监管或者规避调查的。

    (六)为他人逃避监管或者规避调查提供技术支持、帮助的。

    (七)其他足以认定行为人明知的情形。

    来源:涵江警方

    分享、点赞、点亮一起来033c3622944a80f5de5d9893694d8dfd.gif

    让更多人知道↓↓↓

    展开全文
  • 手Q、微信等聊天软件,都会实现自己的一套协议用来发送消息,而这个协议一般都是私有协议,不会公开相应的技术细节,所以一般在没有官方支持的情况下,很难做出一套私有协议的模拟发送工具。新的项目使用了哈雷协议...

    作者:樊林

    团队:腾讯移动品质中心TMQ

    最近投入到了一个新的项目中,是一个新的Android项目,项目涉及到智能聊天相关的功能,所以需要一个很好的接入层,总之肯定不能用通用的http协议来聊天。

    手Q、微信等聊天软件,都会实现自己的一套协议用来发送消息,而这个协议一般都是私有协议,不会公开相应的技术细节,所以一般在没有官方支持的情况下,很难做出一套私有协议的模拟发送工具。

    新的项目使用了哈雷协议作为接入层,也是一个私有协议。新项目因为项目的特点,需要对后台服务进行监控,技术上来说,必须模拟哈雷接入层的私有协议,然后才能进行相应的监控。与其他私有协议一样,哈雷协议的模拟难度是很大的,这时候该怎么做呢?

    哈雷协议介绍

    “哈雷深入移动互联网网络应用场景,向移动应用提供完善的最优网络接入托管、 实时消息推送、通用资源下载、App 增量自更新等服务。”

    “哈雷 SDK 的网络接入服务主要针对业务前后端频繁、少量的数据收发场景,业务后台 支持HTTP(S)服务、TAF 服务或者支持 jce 格式调用的后台服务。”

    哈雷协议主要是面向移动互联网的,官方只提供了Android以及iOS的SDK。App可以通过集成对应的SDK,完成对哈雷协议的使用。

    传统的方案

    传统的方案在PC上模拟请求,然后校验相应的返回结果。

    适用范围:

    1、对于公开协议一般比较方便,例如http、smtp等,有各种各样的模拟工具以及开源类库都可以用。

    2、对于私有协议一般很困难,除非官方提供支持,否则很难做出PC上的模拟工具。例如我们的哈雷协议,只提供了Android以及iOS的SDK。

    优点:

    1、PC监控稳定性好;

    2、PC性能强大,执行效率高;

    3、PC监控扩展性好。

    缺点:

    1、无论是私有协议还是公有协议都会有一定的开发量;

    2、和APP运行时的环境始终有些差异,不能完全代表真实环境;

    3、PC上模拟代码以及参数和开发的项目代码以及参数相互隔离,不能及时同步。

    思考新的方案

    新项目的后台接口监控使用传统的PC上的监控的方案存在两大回避不了的问题:

    首先是是开发量的问题:重新做一套PC上的哈雷模拟工具,开发量巨大,开发也不愿意承担这个任务。

    第二个是后续维护的问题:后台功能的更改以及协议的升级,对应的PC上的模拟工具都需要再做调整。

    所以要不断地思考,尝试寻找新的方案,自己给自己来了一次头脑风暴 。

    1、为什么要做后台接口监控?

    后台接口监控是针对后台接口做的测试,周期性触发,可以准实时地保证后台接口的功能正常性。服务出现问题后能够在10分钟内发现对应的问题。

    2、后台接口监控为什么不能用移动端的UI界面自动化测试来代替?

    客户端的UI自动化测试耗时较长,稳定性较差,同时覆盖范围有限,不能满足后台接口可用性的准实时测试。

    3、移动端只能做UI自动化测试吗?

    移动终端(包括Android和iOS)性能越来越强,扩展性也越来越强,可以说PC能做到的事,理论上在移动终端上都能做到 。

    4、后台接口监控不涉及到UI界面测试,只涉及到网络请求测试,移动端就不能做相应的测试吗?

    思前想后,确实找不到说不的理由。做一个不用关注界面,只在后台发网络请求的App就可以了 。

    5、在移动端做后台接口监控开发量大吗?

    哈雷本身就提供了对应的SDK,不用重新开发。而且开发一般采用了MVP架构,既然不要界面,只需要把开发的Model数据层和Presenter层源代码Copy过来就可以直接用了。

    6、在移动端做后台接口监控,结果怎么看呢,总不能拿着手机看吧?

    目前手机和PC传递数据的方法很多,而且很成熟,可以将移动端的测试结果传送到PC上或者其他平台上查看。

    7、在移动设备上运行后台接口监控的定期任务,设备稳定性如何呢?

    这个只能说还没人这样做过,不是很清楚。理论上问题不大,即使物理设备有问题,也可以尝试用虚拟机代替。

    8、在移动端做后台接口监控发现问题容易定位吗?

    这个理论上比PC模拟端更好定位,因为主要代码都是Copy开发同学的,出了问题,那真的是项目代码出的问题。

    9、在移动端做后台接口监控,后续功能升级维护麻烦吗?

    因为是Copy的开发的代码,功能升级后,再Copy一遍开发的代码就OK了。理论上难度很小。

    经过脑暴后,做一个移动端的APP来实现后台接口监控有很多的挑战,但也存在很多优势,可以试着搞一下。

    最终选择的方案

    Copy开发的代码做一个在Android移动端运行的后台接口监控App,具体实现流程如下:

    Android设备层

    如何选取要Copy的代码

    基本上Android开发用的都是MVP架构,MVP架构也是谷歌官方推荐的。

    Model::即数据层。它区别于MVC架构中的Model,在这里不仅仅只是数据模型。在MVP架构中Model它负责对数据的存取操作,例如对数据库的读写,网络的数据的请求等。这一层的代码全部Copy。

    View: 即视图层。在View层中只负责对数据的展示,提供友好的界面与用户进行交互。这一层的代码都用不到,不用Copy。

    Presenter:是连接View层与Model层的桥梁并对业务逻辑进行处理。在MVP架构中Model与View无法直接进行交互。所以在Presenter层它会从Model层获得所需要的数据,进行一些适当的处理后交由View层进行显示。这样通过Presenter将View与Model进行隔离,使得View和Model之间不存在耦合,同时也将业务逻辑从View中抽离。这一层的代码选择性地Copy。

    要做的后台接口监控不涉及视图层,只涉及网络请求。所以最终选择Copy的代码:全部的Model层+部分Presenter层。

    MVP只是一个整体的思想,具体的对应到的代码,还需要进一步划分:

    所以最终Copy的就是NetService模块的所有代码、Manager和Enging模块的部分代码。

    App的具体实现

    1、Jce模块:jce是腾讯内部通用协议,用来规定客户端和服务端RPC调用时具体的字段,该模块包含了对应的jce文件解析出来的java类、公用的组包方法、解包方法(具体可以参考腾讯相应的开源项目)。

    例如发送消息的类的定义如下:

    2、Copy代码的组合:哈雷SDK的初始化、组包、发包功能、验包功能。

    初始化:静态初始化一次(Copy自NetService模块)。

    组包发包:(通用的发送方法Copy自NetService模块,具体发送内容Copy自Engine模块)。

    返回内容校验:(Copy自Manager模块)。

    涉及到具体的字段含义、判断条件,较敏感,就不写示例代码。

    3、实现和adb的通信

    Activity对外暴露(常规的APP,切勿随意暴露Activity,会有安全风险):

    Activity接收adb的启动指令,满足条件,则启动线程,开始发送请求:

    对应的adb命令:使用adb发送intent信息,并填写相应的字段
    adb shell am start -n com.example.sheldonfan.helei_test/.Main3Activity –es msg “start”

    4、结果输出日志

    PC层

    比较简单,大约几十行左右的python实现:

    1、任务触发:发送adb命令,触发对应的接口监控。

    2、用adb命令捕获日志:

    主要关注点:

    这里不要用多线程实现,要用多进程实现。日志捕获是一个阻塞式的,不停止的话会一直进行下去,所以一定需要一个终止的方法,而Python的多线程没有终止命令,只能用多进程了。

    返回值中的Poplog、f,代表着打开的进程和文件,分别用来终止进程和关闭文件,调用terminate()以及close()方法即可。

    3、日志分析:

    (1)监控日志看是否完成测试:App执行完任务后,会输出“test_is_end”log。

    (2)校验结果:主要是分析log,做字段校验,较敏感不做具体字段的介绍。

    4、报告以及告警

    将步骤3校验结果的做成报告,如果有校验失败的情况,根据情况发送告警。

    5、定期触发

    目前的监控任务比较简单,暂时先采用了:while True +time.slepp。

    因为都是脚本实现的,后续可以根据需要无缝迁移到jenkins等CI平台。

    任务执行效果

    1、执行效率:每一个测试Case(一个Case都只发送一条请求),只涉及到网络请求发送 + 打log + 抓log + log分析,没有任何UI界面的操作,执行耗时都在秒级,满足了后台接口监控的准实时性要求。

    2、稳定性:必须有一个手机节点来执行。

    最初使用实体手机,出现USB连接不稳定、电池出问题等情况,一天内需要维护多次。所以切换到了虚拟机来运行。

    经过实测,Android官方的7.0版本模拟器了,选择X86的,性能好,稳定也满足要求,可以做到一星期内稳定运行(宿主PC选取的是酷睿i5+8GB内存+开启VT),详细配置如下:

    目前的方案满足了需求,可以说这次新方案的尝试成功了!

    后记

    后续遇到类似的需要选择方案解决一个问题时,我们应该如何去分析选择,尤其是面临各种选择都存在风险的情况下,应该怎么做呢?

    总结了一个简单的分析流程:

    核心的关注点:

    1、首先要明确我们做一件事的目的是什么。

    对于测试而言最终目的一定是落地到产品的质量保证维度上;而实现自动化、后台接口测试只是一个手段,这些手段对应的产品的质量维度才是目的,不能把手段当成最终的目的。

    2、可行、不可行的方案都要列举。

    不可行的方案未必真的是不可行,可行的方案也未必真的可行。

    3、列举可行或者不可行原因,确认这些原因是否真的成立。

    这个要结合最终目的来分析。有时候分析到最后,我们会发现可能有以下几种的情况。

    (1)倒推因果:根本就找不到可行或者不可行的原因,可行只是因为有人这样做了,所以认为是可行的,成为了传统;不可行只是没人这样做过,所以不可行。此时要仔细和最终目的进行对比,仔细分析可行性

    (2)技术革新以及时代变革,不可行的方案可能变成了可行的,可行的方案又变成不可行的了。

    4、遇到问题多思考,必要时拉上一群人一起脑暴。

    思考的过程一定要记录下来,方便后续回溯,否则会陷入胡思乱想的怪圈(记录方法不限)。

    后后记

    这次后台接口监控实现,主要的工作量全在了客户端源代码的学习以及理解以及自己写代码。类似于Copy了客户端的网络数据模块的源代码,针对这一个模块做了接口测试。Copy的代码也随着开发的代码进行更新,也和开发的代码一样,有了版本的概念。

    后续和开发同学沟通,也可以这样说了:“开发大哥,没听懂吗?那我们直接看代码吧。”

    这一次的方案意外地有如下几个好处:

    (1)整体的效率提高了:Copy开发的代码比直接自己写代码,效率提升很多,而且质量也不差;

    (2)对开发的整体代码架构有了深入的了解:为后续bug的定位以及测试方案的制定等,提供了重要的依据;

    (3)顺便测试了客户端代码逻辑:本方案主要是为了做后台接口监控,最终也实现了后台接口监控,同时也对开发的Model层以及Presenter层的代码逻辑进行了校验。

    这个方案实施的前提:

    当然这个方案能够快速实施并有较好的效果,也是有一些前提条件的,大家想用这个方案也要先考虑一下这些前提是否成立。

    (1)开发要遵从MVP架构:本次能够快速Copy开发代码完成测试App的开发,主要原因还是开发遵从了MVP架构,真的可以做到Copy过来就可用的地步,自己需要修改的很少。谷歌提出的MVP架构真的真的很强大。

    如果开发没有遵从MVP架构,数据存储、视图展示、数据控制混在一起,根本找不到从哪里Copy,此时建议测试同学优先推动开发同学,优化一下开发的代码架构。

    (2)测试也要能读得懂代码,会写代码。本方案实施至少需要做到以下三点:

    A、获取项目的源代码,并正常编译运行;

    B、能进行简单调试追踪,了解项目代码逻辑;

    C、掌握Android的基本开发知识,进行简单的开发 。

    总之测试了解开发的代码,并将开发的代码为我所有,好处多多。

    获取更多测试干货,关注微信公众号:腾讯移动品质中心TMQ!

    这里写图片描述

    版权所属,禁止转载

    展开全文
  • 多客户版软件用户端网页用户端;可以独立经营,像53客服业务,可以自己使用,你让别人付费...访客端采用纯网页方式聊天技术,访客无需安装任何插件或者软件,这样极大扩展了服务对象,同时让服务有很大使用体验。
  • 手Q、微信等聊天软件,都会实现自己的一套协议用来发送消息,而这个协议一般都是私有协议,不会公开相应的技术细节,所以一般在没有官方支持的情况下,很难做出一套私有协议的模拟发送工具。 新的项目使用了哈雷...

    最近投入到了一个新的项目中,是一个新的Android项目,项目涉及到智能聊天相关的功能,所以需要一个很好的接入层,总之肯定不能用通用的http协议来聊天。

    手Q、微信等聊天软件,都会实现自己的一套协议用来发送消息,而这个协议一般都是私有协议,不会公开相应的技术细节,所以一般在没有官方支持的情况下,很难做出一套私有协议的模拟发送工具。

    新的项目使用了哈雷协议作为接入层,也是一个私有协议。新项目因为项目的特点,需要对后台服务进行监控,技术上来说,必须模拟哈雷接入层的私有协议,然后才能进行相应的监控。与其他私有协议一样,哈雷协议的模拟难度是很大的,这时候该怎么做呢?

    哈雷协议介绍

    “哈雷深入移动互联网网络应用场景,向移动应用提供完善的最优网络接入托管、 实时消息推送、通用资源下载、App 增量自更新等服务。”

    “哈雷 SDK 的网络接入服务主要针对业务前后端频繁、少量的数据收发场景,业务后台 支持HTTP(S)服务、TAF 服务或者支持 jce 格式调用的后台服务。”

    哈雷协议主要是面向移动互联网的,官方只提供了Android以及iOS的SDK。App可以通过集成对应的SDK,完成对哈雷协议的使用。

    传统的方案

    传统的方案在PC上模拟请求,然后校验相应的返回结果。

    适用范围:

    1、对于公开协议一般比较方便,例如http、smtp等,有各种各样的模拟工具以及开源类库都可以用。

    2、对于私有协议一般很困难,除非官方提供支持,否则很难做出PC上的模拟工具。例如我们的哈雷协议,只提供了Android以及iOS的SDK。

    优点:

    1、PC监控稳定性好;

    2、PC性能强大,执行效率高;

    3、PC监控扩展性好。

    缺点:

    1、无论是私有协议还是公有协议都会有一定的开发量;

    2、和APP运行时的环境始终有些差异,不能完全代表真实环境;

    3、PC上模拟代码以及参数和开发的项目代码以及参数相互隔离,不能及时同步。

    思考新的方案

    新项目的后台接口监控使用传统的PC上的监控的方案存在两大回避不了的问题:

    首先是是开发量的问题:重新做一套PC上的哈雷模拟工具,开发量巨大,开发也不愿意承担这个任务。

    第二个是后续维护的问题:后台功能的更改以及协议的升级,对应的PC上的模拟工具都需要再做调整。

    所以要不断地思考,尝试寻找新的方案,自己给自己来了一次头脑风暴 。

    1、为什么要做后台接口监控?

    后台接口监控是针对后台接口做的测试,周期性触发,可以准实时地保证后台接口的功能正常性。服务出现问题后能够在10分钟内发现对应的问题。

    2、后台接口监控为什么不能用移动端的UI界面自动化测试来代替?

    客户端的UI自动化测试耗时较长,稳定性较差,同时覆盖范围有限,不能满足后台接口可用性的准实时测试。

    3、移动端只能做UI自动化测试吗?

    移动终端(包括Android和iOS)性能越来越强,扩展性也越来越强,可以说PC能做到的事,理论上在移动终端上都能做到 。

    4、后台接口监控不涉及到UI界面测试,只涉及到网络请求测试,移动端就不能做相应的测试吗?

    思前想后,确实找不到说不的理由。做一个不用关注界面,只在后台发网络请求的App就可以了 。

    5、在移动端做后台接口监控开发量大吗?

    哈雷本身就提供了对应的SDK,不用重新开发。而且开发一般采用了MVP架构,既然不要界面,只需要把开发的Model数据层和Presenter层源代码Copy过来就可以直接用了。

    6、在移动端做后台接口监控,结果怎么看呢,总不能拿着手机看吧?

    目前手机和PC传递数据的方法很多,而且很成熟,可以将移动端的测试结果传送到PC上或者其他平台上查看。

    7、在移动设备上运行后台接口监控的定期任务,设备稳定性如何呢?

    这个只能说还没人这样做过,不是很清楚。理论上问题不大,即使物理设备有问题,也可以尝试用虚拟机代替。

    8、在移动端做后台接口监控发现问题容易定位吗?

    这个理论上比PC模拟端更好定位,因为主要代码都是Copy开发同学的,出了问题,那真的是项目代码出的问题。

    9、在移动端做后台接口监控,后续功能升级维护麻烦吗?

    因为是Copy的开发的代码,功能升级后,再Copy一遍开发的代码就OK了。理论上难度很小。

    经过脑暴后,做一个移动端的APP来实现后台接口监控有很多的挑战,但也存在很多优势,可以试着搞一下。

    最终选择的方案

    Copy开发的代码做一个在Android移动端运行的后台接口监控App,具体实现流程如下:

    Android设备层

    如何选取要Copy的代码

    基本上Android开发用的都是MVP架构,MVP架构也是谷歌官方推荐的。

    Model::即数据层。它区别于MVC架构中的Model,在这里不仅仅只是数据模型。在MVP架构中Model它负责对数据的存取操作,例如对数据库的读写,网络的数据的请求等。这一层的代码全部Copy。

    View: 即视图层。在View层中只负责对数据的展示,提供友好的界面与用户进行交互。这一层的代码都用不到,不用Copy。

    Presenter:是连接View层与Model层的桥梁并对业务逻辑进行处理。在MVP架构中Model与View无法直接进行交互。所以在Presenter层它会从Model层获得所需要的数据,进行一些适当的处理后交由View层进行显示。这样通过Presenter将View与Model进行隔离,使得View和Model之间不存在耦合,同时也将业务逻辑从View中抽离。这一层的代码选择性地Copy。

    要做的后台接口监控不涉及视图层,只涉及网络请求。所以最终选择Copy的代码:全部的Model层+部分Presenter层。

    MVP只是一个整体的思想,具体的对应到的代码,还需要进一步划分:

    所以最终Copy的就是NetService模块的所有代码、Manager和Enging模块的部分代码。

    App的具体实现

    1、Jce模块:jce是腾讯内部通用协议,用来规定客户端和服务端RPC调用时具体的字段,该模块包含了对应的jce文件解析出来的java类、公用的组包方法、解包方法(具体可以参考腾讯相应的开源项目)。

    例如发送消息的类的定义如下:

    2、Copy代码的组合:哈雷SDK的初始化、组包、发包功能、验包功能。

    初始化:静态初始化一次(Copy自NetService模块)。

    组包发包:(通用的发送方法Copy自NetService模块,具体发送内容Copy自Engine模块)。

    返回内容校验:(Copy自Manager模块)。

    涉及到具体的字段含义、判断条件,较敏感,就不写示例代码。

    3、实现和adb的通信

    Activity对外暴露(常规的APP,切勿随意暴露Activity,会有安全风险):

    Activity接收adb的启动指令,满足条件,则启动线程,开始发送请求:

    对应的adb命令:使用adb发送intent信息,并填写相应的字段
    adb shell am start -n com.example.sheldonfan.helei_test/.Main3Activity –es msg “start”

    4、结果输出日志

    PC层

    比较简单,大约几十行左右的python实现:

    1、任务触发:发送adb命令,触发对应的接口监控。

    2、用adb命令捕获日志:

    主要关注点:

    这里不要用多线程实现,要用多进程实现。日志捕获是一个阻塞式的,不停止的话会一直进行下去,所以一定需要一个终止的方法,而Python的多线程没有终止命令,只能用多进程了。

    返回值中的Poplog、f,代表着打开的进程和文件,分别用来终止进程和关闭文件,调用terminate()以及close()方法即可。

    3、日志分析:

    (1)监控日志看是否完成测试:App执行完任务后,会输出“test_is_end”log。

    (2)校验结果:主要是分析log,做字段校验,较敏感不做具体字段的介绍。

    4、报告以及告警

    将步骤3校验结果的做成报告,如果有校验失败的情况,根据情况发送告警。

    5、定期触发

    目前的监控任务比较简单,暂时先采用了:while True +time.slepp。

    因为都是脚本实现的,后续可以根据需要无缝迁移到jenkins等CI平台。

    任务执行效果

    1、执行效率:每一个测试Case(一个Case都只发送一条请求),只涉及到网络请求发送 + 打log + 抓log + log分析,没有任何UI界面的操作,执行耗时都在秒级,满足了后台接口监控的准实时性要求。

    2、稳定性:必须有一个手机节点来执行。

    最初使用实体手机,出现USB连接不稳定、电池出问题等情况,一天内需要维护多次。所以切换到了虚拟机来运行。

    经过实测,Android官方的7.0版本模拟器了,选择X86的,性能好,稳定也满足要求,可以做到一星期内稳定运行(宿主PC选取的是酷睿i5+8GB内存+开启VT),详细配置如下:

    目前的方案满足了需求,可以说这次新方案的尝试成功了!

    后记

    后续遇到类似的需要选择方案解决一个问题时,我们应该如何去分析选择,尤其是面临各种选择都存在风险的情况下,应该怎么做呢?

    总结了一个简单的分析流程:

    核心的关注点:

    1、首先要明确我们做一件事的目的是什么。

    对于测试而言最终目的一定是落地到产品的质量保证维度上;而实现自动化、后台接口测试只是一个手段,这些手段对应的产品的质量维度才是目的,不能把手段当成最终的目的。

    2、可行、不可行的方案都要列举。

    不可行的方案未必真的是不可行,可行的方案也未必真的可行。

    3、列举可行或者不可行原因,确认这些原因是否真的成立。

    这个要结合最终目的来分析。有时候分析到最后,我们会发现可能有以下几种的情况。

    (1)倒推因果:根本就找不到可行或者不可行的原因,可行只是因为有人这样做了,所以认为是可行的,成为了传统;不可行只是没人这样做过,所以不可行。此时要仔细和最终目的进行对比,仔细分析可行性

    (2)技术革新以及时代变革,不可行的方案可能变成了可行的,可行的方案又变成不可行的了。

    4、遇到问题多思考,必要时拉上一群人一起脑暴。

    思考的过程一定要记录下来,方便后续回溯,否则会陷入胡思乱想的怪圈(记录方法不限)。

    后后记

    这次后台接口监控实现,主要的工作量全在了客户端源代码的学习以及理解以及自己写代码。类似于Copy了客户端的网络数据模块的源代码,针对这一个模块做了接口测试。Copy的代码也随着开发的代码进行更新,也和开发的代码一样,有了版本的概念。

    后续和开发同学沟通,也可以这样说了:“开发大哥,没听懂吗?那我们直接看代码吧。”

    这一次的方案意外地有如下几个好处:

    (1)整体的效率提高了:Copy开发的代码比直接自己写代码,效率提升很多,而且质量也不差;

    (2)对开发的整体代码架构有了深入的了解:为后续bug的定位以及测试方案的制定等,提供了重要的依据;

    (3)顺便测试了客户端代码逻辑:本方案主要是为了做后台接口监控,最终也实现了后台接口监控,同时也对开发的Model层以及Presenter层的代码逻辑进行了校验。

    这个方案实施的前提:

    当然这个方案能够快速实施并有较好的效果,也是有一些前提条件的,大家想用这个方案也要先考虑一下这些前提是否成立。

    (1)开发要遵从MVP架构:本次能够快速Copy开发代码完成测试App的开发,主要原因还是开发遵从了MVP架构,真的可以做到Copy过来就可用的地步,自己需要修改的很少。谷歌提出的MVP架构真的真的很强大。

    如果开发没有遵从MVP架构,数据存储、视图展示、数据控制混在一起,根本找不到从哪里Copy,此时建议测试同学优先推动开发同学,优化一下开发的代码架构。

    (2)测试也要能读得懂代码,会写代码。本方案实施至少需要做到以下三点:

    A、获取项目的源代码,并正常编译运行;

    B、能进行简单调试追踪,了解项目代码逻辑;

    C、掌握Android的基本开发知识,进行简单的开发 。

    总之测试了解开发的代码,并将开发的代码为我所有,好处多多。

    展开全文
  • 技术支持 *** bbs.xknet.net *** 版权说明 *** 1.使用本系统前,请取得官网商业授权 2.未获商业授权之前,不得将本软件用于商业用途(包括但不限于企业网站、经营性网站、以营利为目或实现盈利网站) ...
  • 人力资源管理软件(完全免费)

    热门讨论 2011-03-08 11:36:20
    人力资源管理软件支持照片打印(照片对象标识 emp_pict,类型为图片)(感谢Lucky Cat) 员工编辑和管理体现工龄和年龄(打印标识对应age、work_age、work_age_c)(感谢hui~星辉~) 一个岗位允许对应多个部门...
  • 软件后台主要使用到是AMPServ和phpDesigner工具。 其中,AMPServ是一款拥有图片界面并快速搭建Apache 2.2.3、PHP 5.2.0、MySQL 5.0.27和4.0.26、SQLite、SQLiteManager,以及ASP、CGI、Perl等网站服务器平台绿色...
  • 建立项目时选择已有项目作为模板,继承已有项目权限,或选择后台预定义项目类型和目录层级,瞬间自动建立成百上千树形目录,支持无限级目录;目录采用懒加载显示,百万级数据快速显示;项目支持公开和私有; ...
  • 技术环境指会展网站信息系统的技术因素,包括:硬件设施、软件设施、网络结构、局域网、信息采集、信息处理、信息传输、信息存储、安全人员管理和技术安全管理等。物理自然环境是指来自物理基础支持能力和自然环境的...
  • 手Q、微信等聊天软件,都会实现自己的一套协议用来发送消息,而这个协议一般都是私有协议,不会公开相应的技术细节,所以一般在没有官方支持的情况下,很难做出一套私有协议的模拟发送工具。 新的项目使用了哈雷...

    手Q、微信等聊天软件,都会实现自己的一套协议用来发送消息,而这个协议一般都是私有协议,不会公开相应的技术细节,所以一般在没有官方支持的情况下,很难做出一套私有协议的模拟发送工具。

    新的项目使用了哈雷协议作为接入层,也是一个私有协议。新项目因为项目的特点,需要对后台服务进行监控,技术上来说,必须模拟哈雷接入层的私有协议,然后才能进行相应的监控。与其他私有协议一样,哈雷协议的模拟难度是很大的,这时候该怎么做呢?

    哈雷协议介绍

    “哈雷深入移动互联网网络应用场景,向移动应用提供完善的最优网络接入托管、 实时消息推送、通用资源下载、App 增量自更新等服务。”

    “哈雷 SDK 的网络接入服务主要针对业务前后端频繁、少量的数据收发场景,业务后台 支持HTTP(S)服务、TAF 服务或者支持 jce 格式调用的后台服务。”

    哈雷协议主要是面向移动互联网的,官方只提供了Android以及iOS的SDK。App可以通过集成对应的SDK,完成对哈雷协议的使用。

    传统的方案

    传统的方案在PC上模拟请求,然后校验相应的返回结果。

    适用范围:

    1、对于公开协议一般比较方便,例如http、smtp等,有各种各样的模拟工具以及开源类库都可以用。

    2、对于私有协议一般很困难,除非官方提供支持,否则很难做出PC上的模拟工具。例如我们的哈雷协议,只提供了Android以及iOS的SDK。

    优点:

    1、PC监控稳定性好;

    2、PC性能强大,执行效率高;

    3、PC监控扩展性好。

    缺点:

    1、无论是私有协议还是公有协议都会有一定的开发量;

    2、和APP运行时的环境始终有些差异,不能完全代表真实环境;

    3、PC上模拟代码以及参数和开发的项目代码以及参数相互隔离,不能及时同步。

    思考新的方案

    新项目的后台接口监控使用传统的PC上的监控的方案存在两大回避不了的问题:

    首先是是开发量的问题:重新做一套PC上的哈雷模拟工具,开发量巨大,开发也不愿意承担这个任务。

    第二个是后续维护的问题:后台功能的更改以及协议的升级,对应的PC上的模拟工具都需要再做调整。

    所以要不断地思考,尝试寻找新的方案,自己给自己来了一次头脑风暴 。

    1、为什么要做后台接口监控?

    后台接口监控是针对后台接口做的测试,周期性触发,可以准实时地保证后台接口的功能正常性。服务出现问题后能够在10分钟内发现对应的问题。

    2、后台接口监控为什么不能用移动端的UI界面自动化测试来代替?

    客户端的UI自动化测试耗时较长,稳定性较差,同时覆盖范围有限,不能满足后台接口可用性的准实时测试。

    3、移动端只能做UI自动化测试吗?

    移动终端(包括Android和iOS)性能越来越强,扩展性也越来越强,可以说PC能做到的事,理论上在移动终端上都能做到 。

    4、后台接口监控不涉及到UI界面测试,只涉及到网络请求测试,移动端就不能做相应的测试吗?

    思前想后,确实找不到说不的理由。做一个不用关注界面,只在后台发网络请求的App就可以了 。

    5、在移动端做后台接口监控开发量大吗?

    哈雷本身就提供了对应的SDK,不用重新开发。而且开发一般采用了MVP架构,既然不要界面,只需要把开发的Model数据层和Presenter层源代码Copy过来就可以直接用了。

    6、在移动端做后台接口监控,结果怎么看呢,总不能拿着手机看吧?

    目前手机和PC传递数据的方法很多,而且很成熟,可以将移动端的测试结果传送到PC上或者其他平台上查看。

    7、在移动设备上运行后台接口监控的定期任务,设备稳定性如何呢?

    这个只能说还没人这样做过,不是很清楚。理论上问题不大,即使物理设备有问题,也可以尝试用虚拟机代替。

    8、在移动端做后台接口监控发现问题容易定位吗?

    这个理论上比PC模拟端更好定位,因为主要代码都是Copy开发同学的,出了问题,那真的是项目代码出的问题。

    9、在移动端做后台接口监控,后续功能升级维护麻烦吗?

    因为是Copy的开发的代码,功能升级后,再Copy一遍开发的代码就OK了。理论上难度很小。

    经过脑暴后,做一个移动端的APP来实现后台接口监控有很多的挑战,但也存在很多优势,可以试着搞一下。

     

    展开全文
  • 其中使用Struts作为系统整体基础架构,负责MVC分离,在Struts框架模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。 WebStorage HTML新增本地存储解决...
  • 程序支持随Windows系统启动而自动运行,而且可以直接以隐藏界面,无人值守的后台智能模式运行,增强了软件的隐蔽性。 2.手动精确截图(支持涂鸦)和远程屏幕捕捉是软件的亮点。 3.程序操作简单,而且每个功能菜单第一...
  • 文件传输,音视频采用独有的技术,性能更高。   期翼嘻嘻--助您打造自己的综合运营平台 。为企业应用提供最安全的数据保障 。后台数据库脚本方便生成系统所需的数据库 。管理客户端方便后台的设置 。...
  • QQxiaomei机器人 v1.0

    2019-11-04 22:45:12
    如果都不适合你,不怕我们提供工具让你自己定制属于自己皮肤4、多线程超快反应,先进的后台处理技术,让您不必等待枯燥漫长过程。多线程处理更迅速!5、精简代码,小巧灵活:精简大量不必要代码,减小体积,优化...
  • i366免费视频电话是一款集视频电话、语音聊天、文字信息收发三大通讯功能于一体手机视频聊天软件,同时也是全球第一款Wifi,3G,2G全网络实现移动双向视频互通功能视频软件在2G网络环境下轻松感受3G效果。...
  • ‘定时关机器’有如此强大功能却是一款完全免费自由软件,您不用花一分钱就可使用‘定时关机器’全部功能,还可获得[ 意天软件 ]为您提供‘定时关机器’技术支持服务,如此好工具还不马上用一用
  • 4. 多线程超快反应,先进的后台处理技术,让您不必等待枯燥漫长过程。多线程处理更迅速! 5、精简代码,小巧灵活:精简大量不必要代码,减小体积,优化程序速度,使得软件更加轻巧好用; 6、多线处理,瞬间完成...
  • 07、下载中心:企业专用资料下载基地,提供驱动、说明文档、常用软件等各类技术资料下载,支持在线上传;08、公司介绍:公司相关介绍页面,可增加无数篇,自由建立独立页面,支持生成静态页面,拥有独立数据表;09...
  • 天使语音 v2.0.3.9.zip

    2019-07-17 06:59:49
    天使语音任务系统是一款类似于YY语音即时通信软件支持电竞直播、手游直播、体育直播等平台,是主播们直播首要选择,还能在线聊天交友哦,是一款最新颖语音通讯工具。  天使语音任务系统功能介绍: 1.支持...
  • 访客端采用纯网页方式聊天技术,访客无需安装任何插件或软件,这样极大扩展了服务对象,同时让服务有很大使用体验。 领先技术 高度优化的软件内核、分布式服务器架构、稳定成熟代码,让您使用高枕无忧;...
  • ·哇谷IM团队:支持私有化系统搭建平台使用,平台入住,云系统部署,办公系统,技术支持。 购买海外云服务器注意避免这些误区http://www.juemigoutong.com/webDetail/182.html 如何选择即时通讯软件? ...
  • Android 上百实例源码分析以及开源分析 集合打包4

    千次下载 热门讨论 2012-07-10 21:54:03
    尽管记录不一定精准,但是从这个项目中,可以学习几个不同的技术:加速器交互、语音更新、后台运行服 务等。 本项目有16个目标文件。 CaloriesNotifier 继承接口StepListener, SpeakingTimer.Listener 能量通知,...
  • ·哇谷IM团队:支持私有化系统搭建平台使用,平台入住,云系统部署,办公系统,技术支持。 购买海外云服务器注意避免这些误区http://www.juemigoutong.com/webDetail/182.html 如何选择即时通讯软件? ...
  • 以下转载自官方软件介绍 ...20.提供专门OrangeUI技术支持QQ群(群号:10900297),也可以加我QQ452330643,提供专业APP开发支持。 21.定期一至两个月更新一次,不断添加新控件适应新趋势,以及新实用示例。
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    该实例可进行局域网的聊天、一对多、多对一、和多对多传送和续传,理论上这是我本人实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit使用、最小到...
  • 多用户版+软件客户端+网页客户端;可以独立运营,像53客服业务,可以自己使用,你让别人付费...访客端采用纯网页方式聊天技术,访客无需安装任何插件或软件,这样极大扩展了服务对象,同时让服务有很大使用体验。
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    该实例可进行局域网的聊天、一对多、多对一、和多对多传送和续传,理论上这是我本人实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit使用、最小到...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    该实例可进行局域网的聊天、一对多、多对一、和多对多传送和续传,理论上这是我本人实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit使用、最小到...
  • vc++ 应用源码包_5

    热门讨论 2012-09-15 14:45:16
    该实例可进行局域网的聊天、一对多、多对一、和多对多传送和续传,理论上这是我本人实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit使用、最小到...
  • vc++ 应用源码包_3

    热门讨论 2012-09-15 14:33:15
    该实例可进行局域网的聊天、一对多、多对一、和多对多传送和续传,理论上这是我本人实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit使用、最小到...

空空如也

空空如也

1 2 3
收藏数 57
精华内容 22
关键字:

聊天软件后台的技术支持