日志埋点接入测试方法、装置及服务器与流程

文档序号:14008218阅读:217来源:国知局
日志埋点接入测试方法、装置及服务器与流程

本发明涉及日志埋点技术领域,尤其是涉及一种日志埋点接入测试方法、装置及服务器。



背景技术:

现有的测试埋点日志的方法主要有三种:方法一是通过应用的logcat日志检查,这种方式需要每个测试人员搭建开发环境,而且当测试多端游戏(如安卓游戏,ios游戏和pc游戏)的埋点日志时,不同系统的客户端无法通用;方法二是在日志服务端根据接收到的请求做日志分析,这种方式一是需要访问服务器的权限,二是数据量大且日志处理有延迟;方法三是运营日志后台查询,缺点是延迟比较严重,遇到异常日志时还需要定位是埋点问题还是日志处理问题,对开发存在一定依赖性。

针对现有对埋点日志进行测试的方法存在的上述问题,目前尚未提出有效的解决方案。



技术实现要素:

有鉴于此,本发明的目的在于提供一种日志埋点接入测试方法、装置及服务器,以对日志埋点接入情况进行快速检查,提高了测试埋点日志的效率。

第一方面,本发明实施例提供了一种日志埋点接入测试方法,应用于测试服务器,客户端预先设置有sdk埋点,该方法包括:在接收到测试指令时,获取抓包装置对客户端向sdk服务器发送的网络请求进行抓包的抓包结果;测试指令包括待测试的sdk埋点;客户端与抓包装置通信连接;根据抓包结果判断客户端是否正常接入待测试的sdk埋点。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,抓包装置获取对客户端向sdk服务器发送的网络请求进行抓包的抓包结果的步骤,包括:在客户端运行时,通过抓包装置对客户端向sdk服务器发送的网络请求进行抓包;确定抓包获得的网络请求对应的sdk埋点,并将sdk埋点的信息作为抓包结果;获取抓包结果。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,抓包装置为mitmproxy服务器,mitmproxy服务器包括数据处理脚本;客户端使用mitmproxy服务器进行网络代理。

结合第一方面的第一种或第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,确定抓包获得的网络请求对应的sdk埋点的步骤,包括:根据网络请求包括的目的sdk服务器的域名和接口确定对应的sdk埋点。

结合第一方面的第一种或第二种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,获取抓包结果的步骤,包括:根据客户端的标识进行接入消息的订阅;接入消息为抓包装置以客户端的标识为频道发布的抓包结果。

结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,在获取对客户端向sdk服务器发送的网络请求进行抓包的抓包结果的步骤之前,还包括:接收用户通过测试前端输入的测试指令;测试前端包括web页面;在根据抓包结果判断客户端是否正常接入待测试的sdk埋点的步骤之后,还包括:将客户端是否正常接入待测试的sdk埋点的判断结果发送至测试前端。

结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,在根据抓包结果判断客户端是否正常接入待测试的sdk埋点的步骤之后,还包括:根据客户端是否正常接入待测试的sdk埋点的判断结果生成埋点接入测试报告。

第二方面,本发明实施例还提供一种日志埋点接入测试装置,应用于测试服务器,客户端预先设置有sdk埋点,该装置包括:抓包结果获取模块,用于在接收到测试指令时,获取抓包装置对客户端向sdk服务器发送的网络请求进行抓包的抓包结果;测试指令包括待测试的sdk埋点;判断模块,用于根据抓包结果判断客户端是否正常接入待测试的sdk埋点。

第三方面,本发明实施例还提供一种服务器,包括存储器以及处理器,存储器用于存储支持处理器执行上述第一方面及其各可能的实施方式之一提供的方法的程序,处理器被配置为用于执行存储器中存储的程序。

第四方面,本发明实施例还提供一种计算机存储介质,用于储存为第三方面提供的装置所用的计算机软件指令。

本发明实施例带来了以下有益效果:本发明实施例提供的日志埋点接入测试方法、装置及服务器,客户端预先设置有sdk埋点,并与抓包装置通信连接,在客户端向sdk服务器发送的网络请求时,抓包装置可以对上述网络请求进行抓包,可以根据抓包装置的抓包结果判断客户端是否正常接入sdk埋点,从而可以对日志埋点接入情况进行快速检查,适用于所有基于http网络请求的埋点统计,且可以通用于不同系统的客户端,提高了测试埋点日志的效率。

本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种日志埋点接入测试方法的流程图;

图2为本发明实施例提供的日志埋点接入测试方法的数据流示意图;

图3为本发明实施例提供的测试前端的web页面示意图;

图4为本发明实施例提供的另一种日志埋点接入测试方法的流程图;

图5为本发明实施例提供的一种日志埋点接入测试装置的结构示意图;

图6为本发明实施例提供的一种服务器的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前的测试埋点日志的方法需要测试人员具有开发能力,或受到访问限制,或存在处理延迟,基于此,本发明实施例提供的一种日志埋点接入测试方法、装置及服务器,可以对日志埋点接入情况进行快速检查,提高测试埋点日志的效率。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种日志埋点接入测试方法进行详细介绍。

实施例1

参见图1所示的一种日志埋点接入测试方法的流程图,该方法应用于测试服务器,客户端预先设置有sdk(softwaredevelopmentkit,软件开发工具包)埋点,用于数据统计。

该测试服务器为测试工作台的服务器,测试人员可以在该测试工作台进行测试操作;该客户端为安装在各种终端上的待测试的app(application,应用程序);上述终端可以是安装有安卓、ios或windows系统的移动终端或pc等。客户端接入sdk埋点,sdk中除提供相关功能如打开、登录,充值等外,还会提供一些其他埋点要求客户端接入。在接入正常后,就可以收集到该客户端的相关数据,如打开,注册,选服,创角等,用于做运营统计数据基础。本发明实施例提供的方法包括如下步骤:

步骤s102,在接收到测试指令时,获取抓包装置对客户端向sdk服务器发送的网络请求进行抓包的抓包结果。

测试人员在进行测试工作时,可以通过与测试工作台的测试服务器连接的前端输入测试指令,该前端将测试指令发送至该测试服务器。上述测试指令包括待测试的sdk埋点,由于一般设置在客户端的sdk埋点有多个,可以由测试人员确定需要测试的日志埋点,并在该前端选择上述日志埋点进行测试。

测试服务器在接收到测试指令时,从抓包装置处获取抓包结果。上述客户端与抓包装置通信连接,在客户端进行各种操作时,其中的sdk埋点会将对应的网络请求发送至sdk服务器。具体地步骤s102包括:

(1)在客户端运行时,通过抓包装置对客户端向sdk服务器发送的网络请求进行抓包。抓包装置通过抓包来抓取上述网络请求,如果抓取到网络请求则表明客户端已经成功接入了该网络请求对应的sdk埋点。在此需要说明的是,在进行测试时,被检测客户端需要运行至需检测的sdk埋点,可以是由测试人员或用户手工操作客户端,或者自动化运行客户端。

(2)确定抓包获得的网络请求对应的sdk埋点,并将sdk埋点的信息作为抓包结果。其中,可以根据该网络请求中包括的标识确定其对应的sdk埋点,例如可以通过网络请求中包括的目的sdk服务器的域名和接口确定对应的sdk埋点。

(3)获取抓包结果。

测试服务器获取抓包装置中的抓包结果。例如抓包装置可以通过客户端的标识为频道进行消息发布,测试服务器再根据客户端的标识进行接入消息的订阅。

步骤s104,根据抓包结果判断客户端是否正常接入待测试的sdk埋点。

如果抓包装置抓取到网络请求则表明客户端已经成功接入了该网络请求对应的sdk埋点,因此可以根据抓包结果检查埋点的接入情况,确定客户端是否正常接入待测试的sdk埋点。由于是对发送的网络请求进行的抓包,不需要对不同系统的客户端进行分别测试开发,通用性好;而且在客户端运行至检测sdk埋点时,即进行抓包,可以进行快速检查,并且适用于所有基于http网络请求的埋点统计,可以提高测试埋点日志的效率

本实施例提供的上述方法,客户端预先设置有sdk埋点,并与抓包装置通信连接,在客户端向sdk服务器发送的网络请求时,抓包装置可以对上述网络请求进行抓包,可以根据抓包装置的抓包结果判断客户端是否正常接入sdk埋点,从而可以对日志埋点接入情况进行快速检查,适用于所有基于http网络请求的埋点统计,且可以通用于不同系统的客户端,提高了测试埋点日志的效率。

出于测试人员操作方便的考虑,上述方法在步骤s102之前还包括:接收用户通过测试前端输入的测试指令。其中,测试前端包括web页面,测试人员可以在web页面填入待测试的sdk埋点(即测试检查点),还可以填入客户端的标识,该标识可以是该客户端唯一对应的id。上述方法在步骤s104后还可以包括:将客户端是否正常接入待测试的sdk埋点的判断结果发送至测试前端。通过将判断结果发送至测试前端,可以实时输出测试结果,例如自动填充结果至测试前端并显示,可以实时更新结果并且直观显示。测试人员可以使用web页面统一测试用例和便捷执行。

考虑到测试的自动化,在上述步骤s104后还可以包括:根据客户端是否正常接入待测试的sdk埋点的判断结果生成埋点接入测试报告。在多个测试用例完成后,还可以自动生成测试报告,并且进行一键邮件发送。

本实施例提供的上述方法,可以通过测试前端输入测试指令,通过抓包装置可以对上述网络请求进行抓包,可以根据抓包装置的抓包结果判断客户端是否正常接入sdk埋点,从而可以对日志埋点接入情况进行快速检查,适用于所有基于http网络请求的埋点统计,且可以通用于不同系统的客户端,可以自动生成测试报告,提高了测试埋点日志的效率。

实施例2

本发明实施例提供了一种日志埋点接入测试方法,以抓包装置为mitmproxy服务器为例进行说明。该mitmproxy服务器包括数据处理脚本,客户端使用mitmproxy服务器进行网络代理。参见图2所示的日志埋点接入测试方法的数据流示意图,其中示出了app(客户端)、proxyserver(mitmproxy服务器)、redis(一种key-value存储系统)、webserver(测试服务器)和monitor(测试前端)。

具体地,app向sdk服务器发送的网络请求,由于app已设置wifi代理到mitmproxy服务器,proxyserver对其进行抓包,然后进行日志处理以及通过redis进行消息发布,webserver对redis发布的消息进行订阅获得抓包结果,monitor通过websocket连接webserver获取测试结果。

在图2中包括三部分:mitmproxy服务器结合python脚本进行抓包处理,redis日志存储、消息发布与订阅和测试工作台用例结果填充三部分。

(1)mitmproxy结合py日志处理脚本

通过使用mitmdump指定python脚本的方式启动进行网络抓包,在python脚本中对所抓到的网络请求进行过滤,具体可以通过网络请求对应的sdk日志埋点服务器域名和接口名进行,得到该网络请求对应的检查点。以游戏app的打开游戏日志为例,在游戏打开时,sdk会发送网络请求如http://udpdcs.4399sy.com/activity_open.php?time=1508135194&flag=6e763f5b2773ff95d55b639c000fa5ee&data={xxxxxxx},此时sdk服务器就会抓取到该请求,进行日志处理,并入库。

如果游戏打开时,在mitmproxy中也实时收到这个请求,则认为游戏app是接入该打开游戏日志埋点的;如果未收到则未成功接入该打开游戏日志埋点。由于客户端会发出很多的网络请求,需要根据已知的sdk服务器的域名和接口名进行筛选,例如接举上例,域名是udpdcs.4399sy.com,游戏打开日志对应的接口是"activity_open",从而可以用来过滤出检查点对应的网络请求。

(2)redis订阅与发布

在日志处理脚本中,根据日志中的游戏id作为频道,使用redispublish进行消息发布。然后再在测试工作台前端通过websocket连接测试工作台服务器,服务器根据当前测试游戏id进行redissubscribe消息订阅并消息返回到前端。

(3)测试工作台用例执行、用例结果自动填充以及输出测试报告

在web页面中列出测试检查点,筛选待测游戏后通过websocket发送gameid开始订阅redis频道消息并将所测埋点信息动态更新用例执行结果,判断游戏是否正常接入埋点日志。各用例完成后,还可以生成测试报告一键邮件发送至指定人员。

参见图3所示的测试前端的web页面示意图,其中示出了在web页面中列出测试检查点和待测客户端id。如图3示出了游戏用例为tksj_坦克射击-ios以及客户端id(client_id),测试检查点的接入列表包括:打开游戏日志、登录页面前日志、选服日志、创角日志和等级日志。其中各个测试检查点的检查结果,包括通过或未通过。

参见图4所示的一种日志埋点接入测试方法的流程图,包括如下步骤:

步骤s402,运行待测游戏app。

游戏可以app是手工操作,也可以进行相关的自动化,保证让游戏app走到要检查的点。

步骤s404,对网络请求进行抓包。

步骤s406,判断网络请求的埋点服务器的域名是否为上述游戏app对应的sdk服务器的域名。如果是,执行步骤s408;如果否,结束。

步骤s408,获取游戏id。

步骤s410,获取埋点接口类型。

步骤s412,根据游戏id进行redis消息发布与保存。

步骤s414,订阅游戏id对应的redis消息。

本实施例提供的上述方法,客户端预先设置有sdk埋点,并使用mitmproxy服务器进行网络代理,可以对网络请求进行抓包,可以根据抓包装置的抓包结果判断客户端是否正常接入sdk埋点,从而可以对日志埋点接入情况进行快速检查,适用于所有基于http网络请求的埋点统计,且可以通用于不同系统的客户端,提高了测试埋点日志的效率。

实施例3

本发明实施例提供了一种日志埋点接入测试装置,应用于测试服务器,客户端预先设置有sdk埋点,参见图5所示的日志埋点接入测试装置的结构示意图,包括抓包结果获取模块51和判断模块52,上述各模块的功能如下:

抓包结果获取模块51,用于在接收到测试指令时,获取抓包装置对客户端向sdk服务器发送的网络请求进行抓包的抓包结果;测试指令包括待测试的sdk埋点;

判断模块52,用于根据抓包结果判断客户端是否正常接入待测试的sdk埋点。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的日志埋点接入测试装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

实施例4

本发明实施例还提供了一种服务器,参见图6所示的一种服务器的结构示意图,包括处理器600和机器可读存储介质601,机器可读存储介质601存储有能够被处理器600执行的机器可执行指令,处理器600执行机器可执行指令以实现上述方法。

图6所示的服务器还包括总线602和通信接口603,处理器600、通信接口603和机器可读存储介质601通过总线602连接。

其中,机器可读存储介质601可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口603(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线602可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器600可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器600中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器600可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施方式中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施方式所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于机器可读存储介质601,处理器600读取机器可读存储介质601中的信息,结合其硬件完成前述实施方式的方法的步骤。

本发明实施方式还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述实施方式的方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明实施方式的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施方式,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施方式对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施方式所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施方式技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1