应用程序的开发调试方法、装置、电子设备及存储介质与流程

文档序号:17398214发布日期:2019-04-13 00:59阅读:169来源:国知局
应用程序的开发调试方法、装置、电子设备及存储介质与流程

本公开涉及软件开发及互联网技术领域,具体而言,本公开涉及一种应用程序的开发调试方法、装置、电子设备及存储介质。



背景技术:

app(application,应用程序)与server(服务器)之间的交互依赖于网络,通过网络传递的数据,将server提供的服务由app提供给用户。也就是说,网络是应用数据交互的媒介。移动互联网时代,基于网络来传递数据的需求越来越频繁,数据量也越来越大,一些问题也伴随而来。

作为示例地,有时候网络数据会影响app数据的展示,由于网络错误,或者网络质量下降等原因,app的显示就会不正常。而作为开发人员,在遇到app的异常情况时,需要依次判断异常是否与网络有关、异常是否与server有关、异常是否与app有关等。但是在正常情况下,从app的角度无法看到网络的具体情况。

这时候,通常都是将app与调试平台连接到同一网络环境下,通过构建一个网络来查看网络数据是怎样的,这就需要一个连接的过程。或者,从服务器获取相应的网络数据进行查看,这就需要其他人员的配合。另外,由于有些异常只是瞬间发生的,当出现异常时再来构建一个网络,可能无法复现出同样的异常问题。



技术实现要素:

为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:

第一方面,本公开提供了一种应用程序的开发调试方法,该方法包括:

根据开发阶段所述应用程序发起的网络请求,生成所述网络请求对应的网络数据,并对所述网络数据进行记录;

将记录的网络数据进行展示,以供开发人员对应用程序进行调试。

在一种可选的实现方式中,根据开发阶段所述应用程序发起的任一网络请求,生成所述任一网络请求对应的网络数据,包括:

在所述应用程序发起所述任一网络请求时,对所述任一网络请求进行捕获;

对捕获的所述任一网络请求进行分析,生成所述任一网络请求对应的网络数据。

在一种可选的实现方式中,所述将记录的网络数据进行展示,包括:

根据各个网络请求的请求时间,将对应的网络数据依次进行展示。

在一种可选的实现方式中,所述将记录的网络数据进行展示,包括:

针对各个网络请求,分别检测所述应用程序的运行状态;

当所述运行状态出现异常时,将相应的网络请求对应的网络数据进行展示。

在一种可选的实现方式中,当所述运行状态出现异常时,将相应的网络请求对应的网络数据进行展示,包括:

根据运行状态出现异常的次数,确定相应的各个网络请求的异常频率顺序;

根据所述异常频率顺序,对相应的网络参数进行展示。

在一种可选的实现方式中,所述根据开发阶段所述应用程序发起的网络请求,生成所述网络请求对应的网络数据之前,还包括:

调用自动化测试工具,通过预定义的针对所述应用程序的点击事件,发起网络请求。

在一种可选的实现方式中,任一网络请求对应的网络数据,包括以下至少一项:

网络响应类型、请求地址、请求时间、请求用时、数据流量、请求类型、请求参数、请求数据类型、请求响应数据。

第二方面,本公开提供了一种应用程序的开发调试装置,该装置包括:

记录模块,用于根据开发阶段所述应用程序发起的网络请求,生成所述网络请求对应的网络数据,并对所述网络数据进行记录;

展示模块,用于将记录的网络数据进行展示,以供开发人员对应用程序进行调试。

在一种可选的实现方式中,所述记录模块具体用于在所述应用程序发起所述任一网络请求时,对所述任一网络请求进行捕获;对捕获的所述任一网络请求进行分析,生成所述任一网络请求对应的网络数据。

在一种可选的实现方式中,所述展示模块具体用于根据各个网络请求的请求时间,将对应的网络数据依次进行展示。

在一种可选的实现方式中,所述展示模块具体用于针对各个网络请求,分别检测所述应用程序的运行状态;当所述运行状态出现异常时,将相应的网络请求对应的网络数据进行展示。

在一种可选的实现方式中,所述展示模块具体用于根据运行状态出现异常的次数,确定相应的各个网络请求的异常频率顺序;根据所述异常频率顺序,对相应的网络参数进行展示。

在一种可选的实现方式中,所述记录模块还用于调用自动化测试工具,通过预定义的针对所述应用程序的点击事件,发起网络请求。

在一种可选的实现方式中,任一网络请求对应的网络数据,包括以下至少一项:

网络响应类型、请求地址、请求时间、请求用时、数据流量、请求类型、请求参数、请求数据类型、请求响应数据。

第三方面,本公开提供了一种电子设备,该电子设备包括:

处理器和存储器,存储器存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如本公开的第一方面或第一方面的任一可选的实现方式中所示的方法。

第四方面,本公开提供了一种计算机可读存储介质,计算机存储介质用于存储计算机指令、程序、代码集或指令集,当其在计算机上运行时,使得计算机执行如本公开的第一方面或第一方面的任一可选的实现方式中所示的方法。

本公开提供的应用程序的开发调试方法、装置、电子设备及存储介质,根据开发阶段应用程序发起的网络请求,生成网络请求对应的网络数据,并对网络数据进行记录;将记录的网络数据进行展示,以供开发人员对应用程序进行调试,即开发人员通过客户端的用户交互界面就可以直接看到所有的网络数据,而无需重新搭建网络连接来查看或到服务器去查看网络数据,免去了复杂的异常问题复现流程以及其他人员的配合,在节省人力、物力的同时,提升应用程序开发调试的效率。

附图说明

为了更清楚地说明本公开实施例中的技术方案,下面将对本公开实施例描述中所需要使用的附图做简单的介绍。

图1为本公开实施例提供的应用程序的开发调试方法的流程示意图;

图2为本公开实施例提供的一种展示效果的示例图;

图3为本公开实施例提供的另一种展示效果的示例图;

图4为本公开实施例提供的应用程序的开发调试装置的结构示意图;

图5为本公开实施例提供的一种电子设备的结构示意图。

具体实施方式

下面详细描述本公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本公开,而不能解释为对本公开的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本公开的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。

本公开实施例提供了一种应用程序的开发调试方法,如图1所示,该方法包括:

步骤s101:根据开发阶段应用程序发起的网络请求,生成网络请求对应的网络数据,并对网络数据进行记录;

对于本公开实施例,该方法的执行主体可以为移动终端,也可以为安装于移动终端上的客户端。下文中,将以客户端为例进行介绍。

实际应用中,任何对应用程序的操作,例如账号登录、刷新页面、滑动页面、查看列表界面、发表信息等操作,均会使得应用程序发起网络请求。

本公开实施例中,会对应用程序发起的网络请求进行区分,该方案仅面向开发阶段,线上用户使用应用程序时不会触发该方法,实现对用户的透明,提升用户体验。

即本步骤中,在开发阶段,根据应用程序发起的网络请求,直接在客户端中生成网络请求对应的网络数据,并对网络数据进行记录。

其中,网络请求对应的网络数据包括应用程序向服务器发送的请求数据,也包括服务器向应用程序返回的响应数据。

步骤s102:将记录的网络数据进行展示,以供开发人员对应用程序进行调试。

通过本公开实施例提供的应用程序的开发调试方法开发人员通过客户端的用户交互界面就可以直接看到所有的网络数据,而无需重新搭建网络连接来查看或到服务器去查看网络数据,免去了复杂的异常问题复现流程以及其他人员的配合,在节省人力、物力的同时,提升应用程序开发调试的效率。

本公开实施例为步骤s101提供了一种可能的实现方式,具体地,根据开发阶段应用程序发起的任一网络请求,生成任一网络请求对应的网络数据的过程,包括步骤s1011(图中未示出)和步骤s1012(图中未示出),其中:

步骤s1011:在应用程序发起任一网络请求时,对任一网络请求进行捕获;

本公开实施例中,可以预置一网络请求拦截器,通过该网络请求拦截器在指定的网络端口捕获客户端的网络请求。

实际应用中,该网络请求拦截器可以只对客户端的网络请求进行监听,以执行步骤s1012获得相应的网络数据。

或者,该网络请求拦截器也可以对客户端的网络请求进行拦截,执行步骤s1012的相应处理后再发送到服务器。同理地,服务器会将响应数据返回,该网络请求拦截器进行拦截,执行步骤s1012的相应处理后再给应用程序的其它功能模块进行处理。

步骤s1012:对捕获的任一网络请求进行分析,生成任一网络请求对应的网络数据。

本公开实施例中,可以预置一网络抓包工具,通过该网络抓包工具实时分析网络数据流。

其中,任一网络请求对应的网络数据,包括但不限于以下至少一项:网络响应类型、请求地址、请求时间、请求用时、数据流量、请求类型、请求参数、请求数据类型、请求响应数据。另外,也可以对网络请求成功或失败的进行分析。实际应用中,本领域技术人员可以根据实际情况设置分析所需的一种或多种网络数据,本公开实施例在此不做限定。

可以理解,本公开实施例中,会对应用程序发起的任意网络请求都执行上述步骤s1011和步骤s1012以生成分别对应的网络数据,随后在步骤s101中,对每条网络数据均进行记录。

实际应用中,预置的网络请求拦截器和网络抓包工具可以单独进行调用,也可以将网络请求拦截器和网络抓包工具进行封装后整体进行调用,本公开实施例对此不作限定。

本公开实施例为步骤s102提供了一种可能的实现方式,具体地,可以预置一可视化工具,通过该可视化工具查询步骤s101中记录的网络数据,然后展示出来,以供开发人员对应用程序进行调试。

本公开的一个实施例中,如图2所示,该可视化工具可以根据各个网络请求的请求时间,将对应的网络数据依次进行展示。具体地,展示的网络数据的内容在此不做限定。

本实施例中,可以展示如图2所示的以下内容,以图2中的第一条网络数据为例进行介绍:

1、参数200:对应网络请求的响应值,即网络响应类型,具体地,200表示请求成功,实际应用中,网络请求的响应值还可以包括:404(表示请求页面不存在)、500(服务器异常)等。

2、参数16:22:21:对应网络请求的请求时间,本公开实施例中,可视化工具可以根据该请求时间,依次读取各条网络数据并进行展示,在其他实施例中,也根据其他参数,依次读取各条网络数据并进行展示。

3、参数214ms:对应网络请求的请求用时。

4、参数7.5kb:对应网络请求的数据流量。

5、参数https://test.api.com/path0/1:对应网络请求的请求地址。

6、参数get:对应网络请求的请求类型,具体地,get表示从指定的资源请求数据,实际应用中,网络请求的请求类型还可以包括:post(向指定的资源提交要被处理的数据)等。

进一步地,本公开实施例中,每一条展示的网络数据还可以进行点击。客户端在接收到对任一条展示的网络数据的点击请求后,可以展示如图3所示的内容,包括请求参数、请求数据类型、请求响应数据等,具体参见图3中的注释。

本公开的另一个实施例中,该可视化工具可以针对各个网络请求,分别检测应用程序的运行状态;当运行状态出现异常时,将相应的网络请求对应的网络数据进行展示。

考虑到实际应用中,频繁的网络请求会在执行步骤s101过程中积累较多的网络数据,而对于应用程序运行正常的情况下,记录的大部分网络数据作用不大,全部进行展示会浪费大量的计算资源,也不便开发人员从中查找。基于此,本实施例中,会对记录的数据进行筛选,将相关性较高的网络数据进行展示即可,节省计算资源,提高执行效率,也便于开发人员的调试。

具体而言,通过实时地检测应用程序的运行状态来筛选用于展示的网络请求,当检测到应用程序的运行状态出现异常时,将相应的网络请求对应的网络数据进行展示。

实际应用中,应用程序的异常运行状态可能是由多个网络请求造成的,可以对相关的多个网络请求对应的网络数据均进行展示的。可选地,可以为各个相关的网络请求分别确定相应的权重,并按权重的大小顺序对相关的多个网络请求对应的网络数据进行展示。

实际应用中,应用程序的异常运行状态可能是由当前时刻之前的网络请求造成的,可以对当前时刻前预定时间内的网络请求对应的网络数据均进行展示的。本领域技术人员可以根据实际情况对预定时间进行设置,本公开实施例在此不作限定。

进一步地,本公开实施例还提供了一种可能的实现方式,根据运行状态出现异常的次数,确定相应的各个网络请求的异常频率顺序;根据异常频率顺序,对相应的网络参数进行展示。

作为示例地,若应用程序的运行状态出现了多次异常,均是因为同一请求地址的网络请求造成的,则可以确定该同一请求地址的网络请求的次数,作为优先级较高的异常频率顺序进行展示。

实际应用中,可以根据网络请求的请求地址、请求类型、请求参数、请求数据类型等信息来确定各个网络请求的异常频率顺序。需要说明的是,由于应用程序的网络请求具有随时性,该异常频率顺序可以根据网络请求的增多而实时地产生变化,进而调整网络参数的展示顺序。

实际应用中,随着开发人员的调试工作的进行,一些异常将不再出现,可以设置时间节点来确定用于计算异常频率顺序的网络请求,以保证数据的准确性。

通过本公开实施例,更加便于开发人员的调试,提高开发调试的效率。

本公开实施例中,预置的可视化工具、网络请求拦截器和网络抓包工具可以单独进行调用,也可以将可视化工具、网络请求拦截器和网络抓包工具进行封装后整体进行调用,本公开实施例对此不作限定。

本公开实施例还提供了一种可能的实现方式,在步骤s101之前,还包括:调用自动化测试工具,通过预定义的针对应用程序的点击事件,发起网络请求。

本公开实施例对自动化测试工具不做限定。以android操作系统自带的monkey测试工具为例,monkey通过向客户端发送预定义的针对应用程序的点击事件的事件流,模拟用户的点击操作等,以发起网络请求,实现对应用程序进行压力测试,结合应用程序在压力测试中的异常情况和网络数据的统计情况来对应用程序进行调试与测试,能够一定程度上辅助提高应用程序的性能。

本公开实施例还提供了一种应用程序的开发调试装置,如图4所示,该开发调试装置40可以包括:记录模块401以及展示模块402,其中,

记录模块401用于根据开发阶段应用程序发起的网络请求,生成网络请求对应的网络数据,并对网络数据进行记录;

展示模块402用于将记录的网络数据进行展示,以供开发人员对应用程序进行调试。

在一种可选的实现方式中,记录模块401具体用于在应用程序发起任一网络请求时,对任一网络请求进行捕获;对捕获的任一网络请求进行分析,生成任一网络请求对应的网络数据。

在一种可选的实现方式中,展示模块402具体用于根据各个网络请求的请求时间,将对应的网络数据依次进行展示。

在一种可选的实现方式中,展示模块402具体用于针对各个网络请求,分别检测应用程序的运行状态;当运行状态出现异常时,将相应的网络请求对应的网络数据进行展示。

在一种可选的实现方式中,展示模块402具体用于根据运行状态出现异常的次数,确定相应的各个网络请求的异常频率顺序;根据异常频率顺序,对相应的网络参数进行展示。

在一种可选的实现方式中,记录模块401还用于调用自动化测试工具,通过预定义的针对应用程序的点击事件,发起网络请求。

在一种可选的实现方式中,任一网络请求对应的网络数据,包括以下至少一项:

网络响应类型、请求地址、请求时间、请求用时、数据流量、请求类型、请求参数、请求数据类型、请求响应数据。

本公开实施例所提供的应用程序的开发调试装置,可以为设备上的特定硬件或者安装于设备上的软件或固件等,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,设备实施例部分未提及之处,可参考前述方法实施例中相应内容,在此不再赘述。

通过本公开实施例提供的应用程序的开发调试装置,开发人员通过客户端的用户交互界面就可以直接看到所有的网络数据,而无需重新搭建网络连接来查看或到服务器去查看网络数据,免去了复杂的异常问题复现流程以及其他人员的配合,在节省人力、物力的同时,提升应用程序开发调试的效率。

基于与本公开实施例中应用程序的开发调试方法相同的原理,本公开实施例还提供了一种电子设备,该电子设备包括存储器和处理器,存储器存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行本公开上述任一实施例所示的方法。

基于与本公开实施例中应用程序的开发调试方法相同的原理,本公开实施例中还提供了一种计算机可读存储介质,计算机存储介质用于存储计算机指令、程序、代码集或指令集,当其在计算机上运行时,使得计算机执行本公开上述任一实施例所示的方法。

下面参考图5,其示出了适于用来实现本公开实施例的电子设备(例如图1对应的移动终端)50的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图5所示,电子设备50可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储装置508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram503中,还存储有电子设备50操作所需的各种程序和数据。处理装置501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。

通常,以下装置可以连接至i/o接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备50与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备50,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从rom502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:根据开发阶段应用程序发起的网络请求,生成网络请求对应的网络数据,并对网络数据进行记录;将记录的网络数据进行展示,以供开发人员对应用程序进行调试。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述仅是本公开的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本公开的保护范围。

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