CN108874672A - 应用程序异常定位方法、装置、设备及存储介质 - Google Patents

应用程序异常定位方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN108874672A
CN108874672A CN201810634495.1A CN201810634495A CN108874672A CN 108874672 A CN108874672 A CN 108874672A CN 201810634495 A CN201810634495 A CN 201810634495A CN 108874672 A CN108874672 A CN 108874672A
Authority
CN
China
Prior art keywords
test
case
scene use
frame
application program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810634495.1A
Other languages
English (en)
Other versions
CN108874672B (zh
Inventor
杨阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810634495.1A priority Critical patent/CN108874672B/zh
Publication of CN108874672A publication Critical patent/CN108874672A/zh
Application granted granted Critical
Publication of CN108874672B publication Critical patent/CN108874672B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种应用程序异常定位方法、装置、设备及存储介质,其中方法包括:接收应用程序执行第一测试场景用例的测试请求;其中,应用程序的程序源码中集成了数据采集工具的软件开发工具包以及异常定位分析工具的软件开发工具包;根据测试请求,从自动化测试框架中查找并执行第一测试场景用例;通过数据采集工具采集所述应用程序在执行第一测试场景用例时的性能数据;通过异常定位分析工具根据性能数据确定应用程序的程序源码中的异常代码。通过实施本发明实施例,终端可以结合自动化测试框架、数据采集工具以及异常定位分析工具来检测测试应用程序的过程中出现的异常,以便于开发人员修复应用程序的程序源码中的异常代码。

Description

应用程序异常定位方法、装置、设备及存储介质
技术领域
本发明涉及网络技术领域,尤其涉及一种应用程序异常定位方法、装置、设备及存储介质。
背景技术
随着网络技术的高速发展,安装在终端,例如手机、平板电脑、可穿戴设备上的应用程序不管是在功能设计,还是在视觉设计上均呈现多样化的发展趋势,旨在满足用户的基本需求的同时,为用户提高更好的用户体验。如果开发者无法为用户提供体验更好的应用,该应用程序的使用用户的流失在所难免。为了避免上述情况出现,应用程序在流向市场之前,都需要经过严格的性能测试,旨在为用户提供最好的用户体验。具体实现中,这里所涉及的性能测试可以包括应用程序在执行测试场景用例时是否出现异常。
在实际应用中,上述应用程序在执行测试场景用例时出现异常可以包括卡顿。应用程序卡顿,即应用程序没有及时响应,表现在终端上为终端的显示页面发生延迟、出现丢帧。具体来说,应用程序发生卡顿是指应用程序在响应用户操作时的执行时间超过终端预设的阈值。
现有技术中,终端采用测试软件或测试工具对应用程序进行测试,以期获得如下数据指标:例如,CPU消耗情况、内存使用情况和应用程序在执行测试场景用例时所对应的帧率值等等,并在测试完成之后处理数据结果。但该方法只能在测试后的性能数据整理时才能分析出应用程序的流畅度结果,不便于保留及复现应用程序在测试过程中出现的异常,也不利于开发人员对待测应用程序的质量的监控及后期修复应用程序在执行测试场景用例时出现的异常。
发明内容
本发明实施例提供一种应用程序异常定位方法、装置、设备及存储介质,可以解决现有技术中存在的不便于保留及复现应用程序在测试过程中出现的异常这一技术问题,以便开发人员修复应用程序在测试过程中出现的异常。
第一方面,本发明实施例提供了一种应用程序异常定位方法,该方法包括:
接收应用程序执行第一测试场景用例的测试请求;其中,所述应用程序的程序源码中集成了数据采集工具的软件开发工具包以及异常定位分析工具的软件开发工具包;
根据所述测试请求,从自动化测试框架中查找并执行所述第一测试场景用例;
通过所述数据采集工具采集所述应用程序在执行所述第一测试场景用例时的性能数据;
通过所述异常定位分析工具根据所述性能数据确定所述应用程序的程序源码中的异常代码。
可选的,所述自动化测试框架包括自动化测试管理模块和自动化测试执行模块;所述自动化测试管理模块存储有测试场景用例;
所述根据所述测试请求,从自动化测试框架中查找并执行所述第一测试场景用例,包括:
通过自动化测试管理模块根据所述测试请求向所述自动化测试执行模块发出测试指令;
通过所述自动化测试执行模块根据所述测试指令从所述自动化测试管理模块存储的测试场景用例中查找所述测试指令对应的测试场景用例,执行查找到的所述测试场景用例。
可选的,所述自动化测试框架还包括自动化测试任务订制模块;所述第一测试场景用例包括特定测试场景用例;其中,所述特定测试场景用例包括多个测试场景用例;
所述根据所述测试请求,从自动化测试框架中查找并执行所述第一测试场景用例,还包括:
通过自动化测试管理模块根据所述测试请求向所述自动化测试执行模块发出测试指令;
通过所述自动化测试执行模块根据所述测试指令从所述自动化测试管理模块存储的测试场景用例中查找所述测试指令对应的所述特定测试场景用例;
通过所述自动化测试执行模块根据所述自动化测试任务订制模块设置的所述特定测试场景用例中的每一个测试场景用例的执行顺序或执行时间节点执行测试场景用例。
可选的,所述自动化测试管理模块中包括N个测试场景用例;其中,所述N个测试场景用例之间的关系为非耦合关系,所述非耦合关系用于表征所述N个测试场景用例在执行时不相互调用,以使所述测试场景用例和测试结果一一对应。
可选的,所述性能数据包括每秒传输帧数FPS值;
所述通过所述异常定位分析工具根据所述性能数据确定所述应用程序的程序源码中的异常代码,包括:
若所述第一测试场景用例对应的每秒传输帧数FPS值小于第一阈值,则确定所述应用程序在执行所述第一测试场景用例时出现异常,输出并保存所述应用程序在执行所述第一测试场景用例出现所述异常时对应的异常页面以及堆栈信息。
可选的,所述异常页面包括连续多帧的画面,所述连续多帧的画面用于确定异常丢帧数;其中,所述异常丢帧数的数值与出现异常时的严重程度呈正比。
可选的,所述异常页面包括一帧画面,所述一帧画面用于确定正常丢帧数。
第二方面,本发明实施例提供了一种应用程序异常定位装置,该应用程序异常定位装置包括:
接收单元,用于接收应用程序执行第一测试场景用例的测试请求;其中,所述应用程序的程序源码中集成了数据采集工具的软件开发工具包以及异常定位分析工具的软件开发工具包;
处理单元,用于根据所述测试请求,从自动化测试框架中查找并执行所述第一测试场景用例;
数据采集单元,用于通过所述数据采集工具采集所述应用程序在执行所述第一测试场景用例时的性能数据;
数据分析单元,用于通过所述异常定位分析工具根据所述性能数据确定所述应用程序的程序源码中的异常代码。
可选的,所述自动化测试框架包括自动化测试管理模块和自动化测试执行模块;所述自动化测试管理模块存储有测试场景用例;
所述处理单元包括第一发送单元、第一查找单元和第一执行单元;
其中,所述第一发送单元用于通过自动化测试管理模块根据所述测试请求向所述自动化测试执行模块发出测试指令;
所述第一查找单元,用于通过所述自动化测试执行模块根据所述测试指令从所述自动化测试管理模块存储的测试场景用例中查找所述测试指令对应的测试场景用例;
所述第一执行单元,用于执行查找到的所述测试场景用例。
可选的,所述自动化测试框架还包括自动化测试任务订制模块;所述第一测试场景用例包括特定测试场景用例;其中,所述特定测试场景用例包括多个测试场景用例;
所述处理单元还包括第二发送单元、第二查找单元和第二执行单元;
其中,所述第二发送单元,用于通过自动化测试管理模块根据所述测试请求向所述自动化测试执行模块发出测试指令;
所述第二查找单元,用于通过所述自动化测试执行模块根据所述测试指令从所述自动化测试管理模块存储的测试场景用例中查找所述测试指令对应的所述特定测试场景用例;
所述第二执行单元,用于通过所述自动化测试执行模块根据所述自动化测试任务订制模块设置的所述特定测试场景用例中的每一个测试场景用例的执行顺序或执行时间节点执行测试场景用例。
可选的,所述自动化测试管理模块中包括N个测试场景用例;其中,所述N个测试场景用例之间的关系为非耦合关系,所述非耦合关系用于表征所述N个测试场景用例在执行时不相互调用,以使所述测试场景用例和测试结果一一对应。
可选的,所述性能数据包括每秒传输帧数FPS值;
所述数据分析单元具体用于在所述第一测试场景用例对应的每秒传输帧数FPS值小于第一阈值的情况下,确定所述应用程序在执行所述第一测试场景用例时出现异常,输出并保存所述应用程序在执行所述第一测试场景用例出现所述异常时对应的异常页面以及堆栈信息。
可选的,所述异常页面包括连续多帧的画面,所述连续多帧的画面用于确定异常丢帧数;其中,所述异常丢帧数的数值与出现异常时的严重程度呈正比。
可选的,所述异常页面包括一帧画面,所述一帧画面用于确定正常丢帧数。
第三方面,本发明实施例提供了一种应用程序异常定位设备,该应用程序异常定位设备具有实现上述第一方面中应用程序异常定位设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
在一种可能的实现方式中,该应用程序异常定位设备的结构中包括处理器和存储器,存储器用于存储支持该应用程序异常定位设备执行上述方法的程序,处理器被配置为用于执行存储器中存储的程序。该应用程序异常定位设备还可以包括通信接口,用于该应用程序异常定位设备与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
第五方面,本发明实施例提供了一种计算机程序,所述计算机程序包括上述终端所用的程序指令,所述程序指令当被终端的处理器执行时使所述处理器执行上述第一方面为终端所设计的程序。
通过实施本发明实施例,终端可以结合自动化测试框架、数据采集工具GT以及异常定位分析工具来检测测试应用程序的过程中出现的异常情况,并在检测到异常情况的同时,输出并保存应用程序在执行测试场景用例时出现的异常对应的异常页面以及堆栈信息,以便于开发人员修复应用程序在测试过程中出现的异常情况。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1A是本发明实施例提供的一种应用程序异常定位方法的示意流程图;
图1B是本发明实施例提供的一种自动化测试框架、数据采集工具GT以及异常分析定位工具三者之间的关系示意图;
图2A是本发明实施例提供的一种自动化测试框架的结构示意图;
图2B是本发明实施例提供的一种数据采集工具GT采集的每秒传输帧数FPS值的曲线示意图;
图3A是本发明实施例提供的一种卡顿1对应的堆栈信息的示意图;
图3B是本发明实施例提供的一种卡顿2对应的堆栈信息的示意图;
图3C是本发明实施例提供的一种卡顿3对应的堆栈信息的示意图;
图4是本发明实施例提供的一种自动化测试框架、数据采集工具GT以及异常定位分析工具在实际应用时的流程示意图;
图5是本发明实施例提供的一种应用程序异常定位装置的结构示意图;
图6是本发明另一实施例提供的一种应用程序异常定位设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
下面结合图1A所示的本发明实施例提供的应用程序异常定位方法的流程示意图,具体说明本发明实施例如何定位应用程序在执行测试场景用例时出现的异常,可以包括但不限于如下步骤S101-S104:
步骤S101、接收应用程序执行第一测试场景用例的测试请求;其中,所述应用程序的程序源码中集成了数据采集工具的软件开发工具包以及异常定位分析工具的软件开发工具包。
具体实现中,本发明实施例中的应用程序是指根据实际操作的需求需要进行测试的待测应用程序。例如,应用程序可以为安装在终端上的微信应用程序V1。此外,应用程序的版本可以为满足开发者证书编译的版本。
在发明实施例中,为了避免出现在应用程序执行测试场景用例的过程中因为其它应用程序导致待测应用程序发生异常,应该保证终端的系统环境是干净的。例如,若终端对微信应用程序V1版本进行测试时,应保证在该终端上除了自身系统所带的应用程序外,只安装了微信应用程序V1版本。
具体实现中,上述数据采集工具可以包括GT。
具体实现中,终端上可以包括自动化测试框架30、数据采集工具GT10、异常定位分析工具20。自动化测试框架30、数据采集工具GT10、异常定位分析工具20三者之间的关系可以如图1B所示。其中,应用程序的程序源码中集成了数据采集工具GT的软件开发工具包以及异常定位分析工具的软件开发工具包。这里所涉及的终端可以包括智能手机、PC机以及手提电脑等,本发明实施例不做具体限定。
步骤S102、根据所述测试请求,从自动化测试框架中查找并运行第一测试场景用例。
具体实现中,测试请求与测试场景用例一一对应。例如,测试请求1用于应用程序执行第一测试场景用例,测试请求2用于应用程序执行第二测试场景用例。又例如,测试请求用于应用程序执行特定测试场景用例,具体实现中,上述特定测试场景用例可以为多个测试场景用例的组合。例如,特定测试场景用例包括第一测试场景用例和第二测试场景用例。
下面结合图2A所示的自动化测试框架30的结构示意图来阐述本发明实施例中所涉及的自动化测试框架。如图2A所示,自动化测试框架30可以包括自动化测试管理模块1、自动化测试任务定制模块2、自动化测试执行模块3、异常处理机制模块4、版本管理模块5。其中,自动化测试管理模块1用于储存测试场景用例以及发出测试指令;自动化测试任务定制模块2用于按照特定需求设置待测任务的执行;自动化测试执行模块3用于接收测试指令,查找测试指令对应的测试场景用例,并执行测试指令对应的测试场景用例;异常处理机制模块4用于处理自动化测试执行模块3在执行测试场景用例过程中的非正常情况;版本管理模块5用于管理待测应用程序的版本以及更新与维护待测应用程序的所有测试场景用例。也即,终端可以通过所述自动化测试管理模块向所述自动化测试执行模块发出测试指令;终端可以通过所述自动化测试执行模块根据所述测试指令从所述自动化测试管理模块存储的测试场景用例中查找所述测试指令对应的测试场景用例,执行查找到的所述测试场景用例;终端可以通过所述自动化测试任务订制模块设置所述自动化测试执行模型执行所述自动化测试管理模块中存储的测试场景用例的执行顺序、执行时间节点;终端可以通过所述异常处理机制模块处理所述自动化执行模块在执行所述自动化测试管理模块中存储的测试场景用例时的非正常情况,所述非正常情况包括所述应用程序的程序源码出现错误和/或所述测试场景用例本身存在问题;终端可以通过所述版本管理模块管理所述应用程序的版本以及更新并维护所述自动化测试管理模块中存储的所述应用程序的所有测试场景用例。
接下来对自动化测试框架30中的自动化测试管理模块1、自动化测试任务定制模块2、自动化测试执行模块3、异常处理机制模块4、版本管理模块5进行详细描述。
具体实现中,上述自动化测试管理模块1中包括N个测试场景用例,且N个测试场景用例之间的关系为非耦合关系,该非耦合关系用于表征上述N个测试场景用例在执行时不相互调用,从而可以保证被测试的测试场景用例与执行结果一一对应。例如,以应用程序为微信应用程序为例,测试场景用例可以包括对微信应用程序的登录功能进行测试,其中包括:用户名输入、密码输入、确定登录、取消登录。那么,在实际应用中,将上述用户名输入、密码输入、确定登录、取消登录四个操作分别封装在不同的模块中。测试时,只需调用其模块即可。又例如,测试场景用例还可以包括对微信应用程序的退出功能进行测试,其中包括:退出微信、关闭微信。那么,在实际应用中,将上述退出微信、关闭微信、显示登录页面的操作分别封装在不同的模块中。测试时,只需调用其模块即可。具体实现中,上述所涉及的N个测试场景用例为根据用户针对应用程序可能存在的实际操作而生成的。那么,可以理解的是,本发明实施例中的N个测试场景用例最大程度上覆盖了用户针对应用程序的所有实际操作,进而可以更全面的分析应用程序在执行测试场景用例时是否出现异常。需要说明的是,通常情况下,上述N个测试场景用例的次数包括但不限于一次。
具体实现中,自动化测试任务定制模块2包括待测试的特定测试场景用例,或者几个特定测试场景用例的组合以及特定测试场景中的每一个测试场景用例的执行顺序或执行时间节点。具体实现中,自动化测试任务定制模块中可以设置每一个测试场景用例的执行次数,例如,执行次数包括Q,其中,Q为正整数。从而可以更好的分析应用程序的性能。例如,自动化测试任务定制模块中可以设置微信应用程序V1登录功能对应的测试场景用例的执行时间为8:00,微信应用程序V1退出功能对应的测试场景用例的执行时间为8点15分。
具体实现中,自动化测试执行模块3包括待测试的测试场景用例、上述自动化测试任务定制模块设置好的待测试的特定测试场景用例中的每一个测试场景用例的执行时间节点。具体地,自动化测试执行模块在接收到某一测试场景用例的测试请求之后,执行该测试请求对应的测试场景用例。由于测试系统在同一时间只执行一个测试场景用例,从而可以保证被测试的测试场景用例与执行结果一一对应。
具体实现中,异常处理机制模块4是指在执行测试场景用例的过程中,因应用程序的程序源码错误或环境问题、测试场景用例自身问题容易出现非预期的结果:如意料外的弹出窗口、发现错误的数据等,有些情况下,例如,当前执行的测试场景用例为第一测试场景用例,由于第一测试场景用例出错,并不影响第二测试场景用例的执行,此时,需要支持异常处理机制,终止执行或者终止第一测试场景用例,以便执行后续测试场景用例,并输出当前的错误报告。
具体实现中,随着待测试应用程序的版本型号不断发生变化,测试场景用例也会进行不断的更新和维护操作,此时,版本管理模块5可以对应用程序的版本进行管理。
在一种可能的实现方式中,上述自动化测试框架可以包括QT4i。
具体实现中,所述根据所述测试请求,从自动化测试框架中查找并执行所述第一测试场景用例,包括:
通过自动化测试管理模块根据所述测试请求向所述自动化测试执行模块发出测试指令;
通过所述自动化测试执行模块根据所述测试指令从所述自动化测试管理模块存储的测试场景用例中查找所述测试指令对应的测试场景用例,执行查找到的所述测试场景用例。
例如,终端接收应用程序执行第二测试场景用例的测试请求,终端通过自动化测试管理模块根据上述测试请求向自动化测试执行模块发出测试指令,之后,终端通过自动化测试执行模块根据上述测试指令从自动化测试管理模块存储的测试场景用例中查找第二测试场景用例,并执行第二测试场景用例。
具体实现中,所述根据所述测试请求,从自动化测试框架中查找并执行所述第一测试场景用例,还包括:
通过自动化测试管理模块根据所述测试请求向所述自动化测试执行模块发出测试指令;
通过所述自动化测试执行模块根据所述测试指令从所述自动化测试管理模块存储的测试场景用例中查找所述测试指令对应的所述特定测试场景用例;其中,所述特定测试场景用例包括多个测试场景用例;
通过所述自动化测试执行模块根据所述自动化测试任务订制模块设置的所述特定测试场景用例中的每一个测试场景用例的执行顺序或执行时间节点执行测试场景用例。
例如,终端接收应用程序执行特定场景用例(例如,该特定测试场景用例包括3个测试场景用例)的测试请求,终端通过自动化测试管理模块根据上述测试请求向自动化测试执行模块发出测试指令,之后,终端通过自动化测试执行模块根据上述测试指令从自动化测试管理模块存储的测试场景用例中查找特定测试场景用例,然后,终端通过自动化测试执行模块根据自动化测试任务订制模块设置的上述特定场景用例中的每一个测试场景用例的执行顺序(例如,执行顺序包括先执行测试场景用例1,再执行测试场景用例3,最后执行测试场景用例2)执行测试场景用例。
S103、通过数据采集工具采集应用程序在执行第一测试场景用例时的性能数据。
具体实现中,数据采集工具(例如,GT)可以用来采集应用程序在执行每个测试场景用例时的性能数据。
作为一种可选的实现方式,这里所涉及的性能数据可以包括但不限于每秒传输帧数FPS值(Frames Per Second,FPS),还可以包括中央处理器(Central Processing Unit,CPU)的使用率,流畅度(Smoothness,SM)以及实际使用的物理内存(Proportional SetSize,PPS)等等。在发明实施例中,将结合每秒传输帧数FPS值进行阐述。具体地,数据采集工具GT采集到的每秒传输帧数FPS值的表现形式可以如表1以及图2B所示:
表1
时间 2:30'50”000 2:30'50”040 2:30'50”065 2:30'50”092 2:30'50”102
显示画面 第0帧 第1帧 第2帧 第3帧 第4帧
FPS值 0 25 40 37 33
如表1所示,2:30'50”000表示2时30分50秒整。例如,第0帧画面与第1帧画面之间的时间差为40毫秒,即第1帧画面所对应的每秒传输帧数FPS值为25。又例如,第2帧画面与第3帧画面之间的时间差为27毫秒,即第3帧画面所对应的每秒传输帧数FPS值为37。
上述数据采集工具GT采集到的每秒传输帧数FPS值用来与目标阈值进行比较,以确定应用程序在执行场景用例时是否出现异常(例如,该异常可以包括卡顿)。
S104、通过异常定位分析工具根据性能数据确定应用程序的程序源码中的异常代码。
具体实现中,异常定位分析工具可以根据数据采集工具(例如,GT)采集到的性能数据分析应用程序在执行场景用例测试时是否出现了异常。具体实现中,应用程序在执行测试场景用例出现异常时对应的异常页面是由应用程序的程序源码中的异常代码产生的。这里所涉及的异常代码可以理解为应用程序的程序源码中的函数调用顺序出现问题,或者,应用程序的程序源码中的函数调用顺序不是较好的调用顺序。
在本发明实施例中,应用程序在执行测试场景用例时出现的异常包括但不限于卡顿、应用程序在运行的过程中突然停止运行等等。为了便于阐述,在本发明实施例中,将以卡顿为例进行描述。
具体地,若第一测试场景用例对应的每秒传输帧数FPS值小于目标阈值,则确定所述应用程序在执行所述第一测试场景用例时出现卡顿,输出并保存所述应用程序在执行所述第一测试场景用例出现卡顿时对应的卡顿页面以及堆栈信息。具体实现中,上述所涉及的输出并保存应用程序在执行第一测试场景用例出现卡顿时对应的卡顿页面以及堆栈信息这一操作可以发生在测试的过程中,也可以发生在测试完成之后。若上述操作发生在测试的过程中时,开发人员可以直观的获知到应用程序出现了异常。若上述操作发生在测试完成之后,开发人员可以对应用程序在执行测试场景用例时出现的所有异常进行总结与分析,继而能够从根本上解决应用程序在执行测试场景用例时出现的异常。此外,作为一种可选的实现方式,当终端通过异常定位分析工具根据性能数据确定应用程序在执行测试场景用例的过程中出现卡顿时,卡顿对应的卡顿页面以及堆栈信息可以在终端的显示屏上以窗口的形式进行显示,该窗口可以出现在终端的显示屏上的任意位置,可以对上述窗口进行拖动、放大、缩小、隐藏等操作。
在一种可能的实现方式中,应用程序在执行测试场景用例时出现卡顿的堆栈信息包括应用程序的程序源码中的函数调用顺序,该函数调用顺序用于表征应用程序的功能逻辑。例如,应用程序在执行第一测试场景用例的过程中出现的卡顿1对应的堆栈信息的表现形式可以如图3A所示。需要说明的是,不同的卡顿所对应的堆栈信息是不同的。
在一种可能的实现方式中,这里所涉及的目标阈值可以包括60。此时,目标阈值为标准每秒传输帧数FPS值。目标阈值为60表示在1秒的时间内可以生成60帧画面,相邻两帧画面之间的时间差为16.67ms。
在一种可能的实现方式中,目标阈值可以包括30,目标阈值为30表示在1秒的时间内可以生成30帧画面,相邻两帧画面之间的时间差为33.33ms。例如,当应用程序在执行第二测试场景用例时终端显示画面的每秒传输帧数FPS值小于30时,终端确定出现卡顿。继而,终端可以根据每秒传输帧数FPS值以及与每秒传输帧数FPS值对应的时间点来确定出现卡顿时的卡顿页面,从而终端可以输出卡顿对应的卡顿页面以及卡顿对应的堆栈信息。
具体实现中,例如,应用程序在执行第一测试场景时出现的卡顿包括3个。具体地,上述3个卡顿分别对应的堆栈信息可以如图3A-图3C所示。其中,卡顿1对应图3A所示的堆栈信息;卡顿2对应图3B所示的堆栈信息;卡顿3对应图3C所示的堆栈信息。
可选的,异常对应的异常页面可以包括连续多帧的画面,连续多帧的画面用于确定异常丢帧数。其中,异常丢帧数的数值与出现异常时的严重程度呈正比。也即,若异常丢帧数的数值越大,则表明应用程序在执行测试场景用例时出现的异常越严重。
例如,卡顿1对应的卡顿页面包括10帧画面,这10帧画面的生成时间与每秒传输帧数FPS值可以如表2所示:
表2
理想状态下,例如目标阈值为30,在2时30分50秒整到2时30分50秒402这段时间内,若应用程序在执行第一测试场景的过程中不出现卡顿,终端显示画面的帧数包括12帧。由表2可知,终端实际显示的画面帧数包括10帧,那么,可以确定卡顿1中出现的异常丢帧数量为2帧。
又例如,卡顿2对应的卡顿页面包括20帧画面,这20帧画面的生成时间与每秒传输帧数FPS值可以如表3所示:
表3
时间 2:30'51”000 2:30'51”040 2:30'51”075 2:30'51”111 2:30'51”156
显示画面 第0帧 第1帧 第2帧 第3帧 第4帧
FPS值 0 25 29 28 22
时间 2:30'51”190 2:30'51”235 2:30'51”285 2:30'51”322 2:30'51”359
显示画面 第5帧 第6帧 第7帧 第8帧 第9帧
FPS值 29 22 20 27 27
时间 2:30'51'402 2:30'51'462 2:30'51'512 2:30'51'560 2:30'51'603
显示画面 第10帧 第11帧 第12帧 第13帧 第14帧
FPS值 23 17 20 21 23
时间 2:30'51'666 2:30'51'733 2:30'51'771 2:30'51'807 2:30'51'841
显示画面 第15帧 第16帧 第17帧 第18帧 第19帧
FPS值 16 15 26 28 29
时间 2:30'51'875 -- -- -- --
显示画面 第20帧 -- -- -- --
FPS值 29 -- -- -- --
理想状态下,例如目标阈值为30,在2时30分51秒整到2时30分51秒875这段时间内,若应用程序在执行第一测试场景的过程中不出现卡顿,终端显示画面的帧数包括27帧。由表3可知,终端实际显示的画面帧数包括20帧,那么,可以确定卡顿1中出现的异常丢帧数量为7帧。与此同时,进一步分析卡顿1和卡顿2分别所确定的异常丢帧数可以知道,卡顿2比卡顿1更严重。
卡顿3对应的卡顿页面包括1帧画面,这1帧画面的生成时间可以如表4所示:
表4
时间 2:30'52”000 2:30'52”040 2:30'52”070 -- --
显示画面 第100帧 第101帧 第102帧 -- --
FPS值 32 25 33 -- --
如表4可以知道,卡顿3对应的卡顿页面只包括一帧画面,即表4中第101帧画面。
又例如,应用程序在执行第二测试场景用例的过程中出现了3个卡顿,具体地,可以参见表5:
表5
时间 2:30'51”000 2:30'51”029 2:30'51”054 2:30'51”090 2:30'51”117
显示画面 第0帧 第1帧 第2帧 第3帧 第4帧
FPS值 30 35 40 28 37
时间 2:30'51”147 2:30'51”175 2:30'51”213 2:30'51”237 2:30'51”260
显示画面 第5帧 第6帧 第7帧 第8帧 第9帧
FPS值 33 36 26 42 40
时间 2:30'51'287 2:30'51'319 2:30'51'352 2:30'51'385 2:30'51'435
显示画面 第10帧 第11帧 第12帧 第13帧 第14帧
FPS值 37 32 30 30 20
由表5可以知道,上述3个卡顿分别发生的时间点为2:30'51”090、2:30'51”21以及2:30'51'419。具体地,在2:30'51”000到2:30'51”090这段时间内,假设目标阈值为30,理想状态下,终端显示的画面的帧数包括3帧,由表5可以知道,在2:30'51”000到2:30'51”090这段时间内终端实际显示的画面为接近3帧,这意味着在2:30'51”090时刻出现了轻微的卡顿。在2:30'51”090到2:30'51”213这段时间内,假设目标阈值为30,理想状态下,终端显示的画面的帧数包括4帧,由表5可以知道,在2:30'51”090到2:30'51”213这段时间内终端实际显示的画面为接近4帧,这意味着在2:30'51”213时刻出现了轻微的卡顿。与此同时,可以知道的是,应用程序在2:30'51'435时刻也出现了轻微的卡顿。具体实现中,分析整个时间段(即2:30'51”000到2:30'51”435)可以认为上述3个卡顿的正常丢帧数几乎为0。
在一种可能的实现方式中,终端可以根据上述异常丢帧数和正常丢帧数来评价应用程序的流畅度情况。在实际应用中,只有应用程序的流畅度达到某一阈值,则意味着该应用程序通过测试,可以流向市场,以供用户使用。
为了便于理解上述实施例中所描述的方法,下面结合图4所示的具体示例对应的实现流程来介绍下本发明实施例中所涉及的自动化测试框架、GT数据采集工具、异常定位分析工具可以应用的应用场景,以终端测试微信应用程序V1为例进行阐述。如图4所示,首先在XCode的集成开发环境下,将数据采集工具GT的软件开发工具包SDK(SoftwareDevelopment Kit,SDK)以及异常定位分析工具的软件开发工具包SDK集成在微信应用程序V1的程序源码中。自动化测试框架(例如,QT4i)中包括2个测试场景用例,分别为登录功能对应的测试场景用例1和退出功能的测试场景用例2。具体实现中,上述2测试场景用例之间的关系为耦合状态。其次,当开发人员发起针对微信应用程序的登录功能的测试请求之后,此时,即启动测试,记录startTime并启动数据采集工具GT,图2A所示的自动化测试执行模块响应该测试请求,在自动化测试管理模块中查找上述测试请求对应的测试场景用例1,然后执行测试场景用例1。在微信应用程序V1执行测试场景1的过程中,数据采集工具GT可以记录测试期间终端显示画面的每秒传输帧数FPS值。当微信应用程序V1在执行完测试场景用例1时,停止GT并记录endTime。之后,保存执行结果。具体实现中,这里所涉及的保存执行结果可以包括将执行结果保存在终端侧,终端侧再将执行结果上传到服务器侧(例如,MAC机);也可以包括将执行结果保存在终端侧。在保存执行结果之后,将对执行结果进行解析,解析执行结果的实现流程可以包括:打开性能文件,并读取性能文件中的每一行数据,解析数据中的关键字key,时间date,最小值min,最大值max,平均值avg等参数,在确定了多个参数之后,可以解析出时间time以及数值value,继而可以得到时间与数据(time-value)之间的曲线,将time-value曲线保存为图片。继而,异常定位分析工具可以根据GT记录的每秒传输帧数FPS值来确定微信应用程序V1在执行测试场景用例1的过程中是否出现异常。
在一种可能的实现方式中,在异常定位分析工具根据性能数据确定应用程序出现异常之后,将出现异常时对应的异常页面以及堆栈信息发送至预设的邮箱地址,以便开发人员对应用程序进行修复。
可选的,预设的邮箱地址可以为开发人员的邮箱。
在一种可能的实现方式中,这里所提及的预设的邮箱地址是预先设置好的,例如,该邮箱地址可以为123456@cc.com。具体的,该邮箱地址可以包括多个开发人员共同使用的一个邮箱地址,也可以包括某一个具体的开发人员使用的邮箱地址,例如,张三,本发明实施例不作具体限定。
可选的,这里所涉及的出现异常时对应的异常画面可以为GIF图片。
如前所述,在多数情况下,应用程序运行每一个测试场景用例的次数为多次,例如,20次。那么,可以知道的是,终端可以获得多个应用程序出现异常时分别对应的异常页面以及堆栈信息,继而,终端可以将上述获得的多个异常页面以及堆栈信息发送给服务器,服务器可以确定应用程序在执行测试场景用例时出现的多个异常中的主要异常。
如前所述,在应用程序执行测试场景用例时出现的异常对应的异常画面为连续多帧的情况下,可以确定异常丢帧数。具体实现中,服务器可以根据应用程序在执行测试场景用例时出现的异常的异常画面所确定的异常丢帧数和同一异常情况出现的次数来确定多个异常情况中的主要异常情况。这里所涉及的应用程序在执行测试场景用例时出现的多个异常情况可以包括N个,主要异常情况可以包括M个,其中M、N均为正整数,且M小于等于N。例如,服务器接收终端发送的异常情况(例如,该异常情况为卡顿)包括5个,其中,卡顿1中出现的异常丢帧数为5帧,卡顿1出现的次数为5次;卡顿2中出现的异常丢帧数为2帧,卡顿1出现的次数为2次;卡顿3中出现的异常丢帧数为8帧,卡顿3出现的次数为5次;卡顿4中出现的异常丢帧数为1帧,卡顿4出现的次数为1次;卡顿5中出现的异常丢帧数为10帧,卡顿5出现的次数为7次。那么,服务器可以确定上述5个卡顿中卡顿5以及卡顿3为主要卡顿。继而,开发人员可以针对卡顿5以及卡顿3分别对应的堆栈信息进行修改,以尽可能的避免应用程序在执行测试场景用例时再次出现卡顿5和卡顿3。
通过实施本发明实施例,终端结合自动化测试框架、数据采集工具以及异常定位分析工具来检测测试应用程序的过程中出现的异常情况,并在检测到异常情况的同时,输出并保存应用程序在执行测试场景用例时出现的异常所对应的异常页面以及堆栈信息,以便于开发人员修复应用程序在测试过程中出现的异常情况。
为了便于更好地实施本发明实施例的上述方案,本发明实施例还描述了与上述图1所述方法实施例属于同一发明构思下的一种应用程序异常定位装置的结构示意图。下面结合附图来进行详细说明:
如图5所示,该应用程序异常定位装置500用于执行图1A上述方法实施例中应用程序异常定位装置的功能,包括:
接收单元501,用于接收应用程序执行第一测试场景用例的测试请求;其中,所述应用程序的程序源码中集成了数据采集工具的软件开发工具包以及异常定位分析工具的软件开发工具包;
处理单元502,用于根据所述测试请求,从自动化测试框架中查找并执行所述第一测试场景用例;
数据采集单元503,用于通过所述数据采集工具采集所述应用程序在执行所述第一测试场景用例时的性能数据;
数据分析单元504,用于通过所述异常定位分析工具根据所述性能数据确定所述应用程序的程序源码中的异常代码。
可选的,可选的,所述自动化测试框架包括自动化测试管理模块和自动化测试执行模块;所述自动化测试管理模块存储有测试场景用例;
所述处理单元502包括第一发送单元、第一查找单元和第一执行单元;
其中,所述第一发送单元用于通过自动化测试管理模块根据所述测试请求向所述自动化测试执行模块发出测试指令;
所述第一查找单元,用于通过所述自动化测试执行模块根据所述测试指令从所述自动化测试管理模块存储的测试场景用例中查找所述测试指令对应的测试场景用例;
所述第一执行单元,用于执行查找到的所述测试场景用例。
可选的,所述自动化测试框架还包括自动化测试任务订制模块;所述第一测试场景用例包括特定测试场景用例;其中,所述特定测试场景用例包括多个测试场景用例;
所述处理单元502还包括第二发送单元、第二查找单元和第二执行单元;
其中,所述第二发送单元,用于通过自动化测试管理模块根据所述测试请求向所述自动化测试执行模块发出测试指令;
所述第二查找单元,用于通过所述自动化测试执行模块根据所述测试指令从所述自动化测试管理模块存储的测试场景用例中查找所述测试指令对应的所述特定测试场景用例;
所述第二执行单元,用于通过所述自动化测试执行模块根据所述自动化测试任务订制模块设置的所述特定测试场景用例中的每一个测试场景用例的执行顺序或执行时间节点执行测试场景用例。
可选的,所述自动化测试管理模块中包括N个测试场景用例;其中,所述N个测试场景用例之间的关系为非耦合关系,所述非耦合关系用于表征所述N个测试场景用例在执行时不相互调用,以使所述测试场景用例和测试结果一一对应。
可选的,所述性能数据包括每秒传输帧数FPS值;
所述数据分析单元具体用于在所述第一测试场景用例对应的每秒传输帧数FPS值小于第一阈值的情况下,确定所述应用程序在执行所述第一测试场景用例时出现异常,输出并保存所述应用程序在执行所述第一测试场景用例出现所述异常时对应的异常页面以及堆栈信息。
可选的,所述异常页面包括连续多帧的画面,所述连续多帧的画面用于确定异常丢帧数;其中,所述异常丢帧数的数值与出现异常时的严重程度呈正比。
可选的,所述异常页面包括一帧画面,所述一帧画面用于确定正常丢帧数。
可以理解的是,本实施例的异常定位装置500的各功能单元的功能可根据上述图1A所示方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
了便于更好地实施本发明实施例的上述方案,本发明还对应提供了一种应用程序异常定位设备,下面结合附图来进行详细说明:
如图6示出的本发明实施例提供的一种用于应用程序异常定位设备的结构示意图,该应用程序异常定位设备600可以包括至少一个处理器601,通信总线602,存储器603以及至少一个通信接口604。
处理器601可以是一个通用中央处理器(Central Processing Unit,CPU),微处理器,特定应用集成电路(Application-Specific Integrated Circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
通信总线602可包括一通路,在上述组件之间传送信息。所述通信接口604,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(RadioAccess Technology,RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器603可以是只读存储器(Read-Only Memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(Random Access Memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器603用于存储执行本发明方案的程序代码,并由处理器601来控制执行。所述处理器601用于执行所述存储器603中存储的程序代码,执行以下步骤:
接收应用程序执行第一测试场景用例的测试请求;其中,所述应用程序的程序源码中集成了数据采集工具的软件开发工具包以及异常定位分析工具的软件开发工具包;
根据所述测试请求,从自动化测试框架中查找并执行所述第一测试场景用例;
通过所述数据采集工具采集所述应用程序在执行所述第一测试场景用例时的性能数据;
通过所述异常定位分析工具根据所述性能数据确定所述应用程序的程序源码中的异常代码。
其中,所述自动化测试框架包括自动化测试管理模块和自动化测试执行模块;所述自动化测试管理模块存储有测试场景用例;
处理器601根据所述测试请求,从自动化测试框架中查找并执行所述第一测试场景用例,可以包括:
通过自动化测试管理模块根据所述测试请求向所述自动化测试执行模块发出测试指令;
通过所述自动化测试执行模块根据所述测试指令从所述自动化测试管理模块存储的测试场景用例中查找所述测试指令对应的测试场景用例,执行查找到的所述测试场景用例。
其中,所述自动化测试框架还包括自动化测试任务订制模块;所述第一测试场景用例包括特定测试场景用例;其中,所述特定测试场景用例包括多个测试场景用例;
处理601根据所述测试请求,从自动化测试框架中查找并执行所述第一测试场景用例,还可以包括:
通过自动化测试管理模块根据所述测试请求向所述自动化测试执行模块发出测试指令;
通过所述自动化测试执行模块根据所述测试指令从所述自动化测试管理模块存储的测试场景用例中查找所述测试指令对应的所述特定测试场景用例;
通过所述自动化测试执行模块根据所述自动化测试任务订制模块设置的所述特定测试场景用例中的每一个测试场景用例的执行顺序或执行时间节点执行测试场景用例。
其中,所述自动化测试管理模块中包括N个测试场景用例;其中,所述N个测试场景用例之间的关系为非耦合关系,所述非耦合关系用于表征所述N个测试场景用例在执行时不相互调用,以使所述测试场景用例和测试结果一一对应。
其中,所述性能数据包括每秒传输帧数FPS值;
其中,处理器601通过所述异常定位分析工具根据所述性能数据确定所述应用程序的程序源码中的异常代码可以包括:
若所述第一测试场景用例对应的每秒传输帧数FPS值小于第一阈值,则确定所述应用程序在执行所述第一测试场景用例时出现异常,输出并保存所述应用程序在执行所述第一测试场景用例出现所述异常时对应的异常页面以及堆栈信息。
其中,所述异常页面包括连续多帧的画面,所述连续多帧的画面用于确定异常丢帧数;其中,所述异常丢帧数的数值与出现异常时的严重程度呈正比。
其中,所述异常页面包括一帧画面,所述一帧画面用于确定正常丢帧数。
在具体实现中,作为一种可选的实施例,处理器601可以包括一个或多个CPU,例如图6中的CPU0和CPU1。
在具体实现中,作为一种可选的实施例,应用程序异常定位设备600可以包括多个处理器,例如图6中的处理器601和处理器608。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种可选的实施例,应用程序异常定位设备600还可以包括输出设备605和输入设备606。输出设备605和处理器601通信,可以以多种方式来显示信息。例如,输出设备605可以是液晶显示器(Liquid Crystal Display,LCD),发光二级管(LightEmitting Diode,LED)显示设备,阴极射线管(Cathode Ray Tube,CRT)显示设备,或投影仪(projector)等。输入设备606和处理器601通信,可以以多种方式接受用户的输入。例如,输入设备606可以是鼠标、键盘、触摸屏设备或传感设备等。
在具体实现中,应用程序异常定位设备600可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备。本发明实施例不限定应用程序异常定位设备600的类型。
本发明实施例还提供了一种计算机存储介质,用于存储为上述图1A所示的终端所用的计算机软件指令,其包含用于执行上述方法实施例所涉及的程序。通过执行存储的程序,可以实现对不平衡数据的处理。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种应用程序异常定位方法,其特征在于,包括:
接收应用程序执行第一测试场景用例的测试请求;其中,所述应用程序的程序源码中集成了数据采集工具的软件开发工具包以及异常定位分析工具的软件开发工具包;
根据所述测试请求,从自动化测试框架中查找并执行所述第一测试场景用例;
通过所述数据采集工具采集所述应用程序在执行所述第一测试场景用例时的性能数据;
通过所述异常定位分析工具根据所述性能数据确定所述应用程序的程序源码中的异常代码。
2.根据权利要求1所述的方法,其特征在于,所述自动化测试框架包括自动化测试管理模块和自动化测试执行模块;所述自动化测试管理模块存储有测试场景用例;
所述根据所述测试请求,从自动化测试框架中查找并执行所述第一测试场景用例,包括:
通过自动化测试管理模块根据所述测试请求向所述自动化测试执行模块发出测试指令;
通过所述自动化测试执行模块根据所述测试指令从所述自动化测试管理模块存储的测试场景用例中查找所述测试指令对应的测试场景用例,执行查找到的所述测试场景用例。
3.根据权利要求2所述的方法,其特征在于,所述自动化测试框架还包括自动化测试任务订制模块;所述第一测试场景用例包括特定测试场景用例;其中,所述特定测试场景用例包括多个测试场景用例;
所述根据所述测试请求,从自动化测试框架中查找并执行所述第一测试场景用例,还包括:
通过自动化测试管理模块根据所述测试请求向所述自动化测试执行模块发出测试指令;
通过所述自动化测试执行模块根据所述测试指令从所述自动化测试管理模块存储的测试场景用例中查找所述测试指令对应的所述特定测试场景用例;
通过所述自动化测试执行模块根据所述自动化测试任务订制模块设置的所述特定测试场景用例中的每一个测试场景用例的执行顺序或执行时间节点执行测试场景用例。
4.根据权利要求2所述的方法,其特征在于,所述自动化测试管理模块中包括N个测试场景用例;其中,所述N个测试场景用例之间的关系为非耦合关系,所述非耦合关系用于表征所述N个测试场景用例在执行时不相互调用,以使所述测试场景用例和测试结果一一对应。
5.根据权利要求1所述的方法,其特征在于,所述性能数据包括每秒传输帧数FPS值;
所述通过所述异常定位分析工具根据所述性能数据确定所述应用程序的程序源码中的异常代码,包括:
若所述第一测试场景用例对应的每秒传输帧数FPS值小于第一阈值,则确定所述应用程序在执行所述第一测试场景用例时出现异常,输出并保存所述应用程序在执行所述第一测试场景用例出现所述异常时对应的异常页面以及堆栈信息。
6.根据权利要求5所述的方法,其特征在于,所述异常页面包括连续多帧的画面,所述连续多帧的画面用于确定异常丢帧数;其中,所述异常丢帧数的数值与出现异常时的严重程度呈正比。
7.根据权利要求5所述的方法,其特征在于,所述异常页面包括一帧画面,所述一帧画面用于确定正常丢帧数。
8.一种应用程序异常定位装置,其特征在于,包括用于执行如权利要求1-7任一项所述的方法的单元。
9.一种应用程序异常定位设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储应用程序代码,所述处理器被配置用于调用所述程序代码,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
CN201810634495.1A 2018-06-19 2018-06-19 应用程序异常定位方法、装置、设备及存储介质 Active CN108874672B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810634495.1A CN108874672B (zh) 2018-06-19 2018-06-19 应用程序异常定位方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810634495.1A CN108874672B (zh) 2018-06-19 2018-06-19 应用程序异常定位方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN108874672A true CN108874672A (zh) 2018-11-23
CN108874672B CN108874672B (zh) 2022-04-22

Family

ID=64340626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810634495.1A Active CN108874672B (zh) 2018-06-19 2018-06-19 应用程序异常定位方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN108874672B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110162460A (zh) * 2019-04-15 2019-08-23 平安普惠企业管理有限公司 应用程序异常问题定位方法、装置、计算机设备及存储介质
CN110727597A (zh) * 2019-10-15 2020-01-24 杭州安恒信息技术股份有限公司 一种基于日志排查无效代码补全用例的方法
CN110825466A (zh) * 2019-11-11 2020-02-21 腾讯科技(深圳)有限公司 一种程序卡顿的处理方法以及卡顿处理装置
CN111597093A (zh) * 2019-02-20 2020-08-28 阿里巴巴集团控股有限公司 一种异常处理方法、装置及其设备
CN111897672A (zh) * 2020-07-28 2020-11-06 北京字节跳动网络技术有限公司 处理终端异常的方法、装置、终端和存储介质
CN116450400A (zh) * 2023-06-19 2023-07-18 北京翼辉信息技术有限公司 应用程序异常分析方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101165658A (zh) * 2006-10-18 2008-04-23 国际商业机器公司 自动生成可再现运行时问题的单元测试用例的方法和系统
US20100325491A1 (en) * 2009-06-18 2010-12-23 International Business Machines Corporation Mining a use case model by analyzing its description in plain language and analyzing textural use case models to identify modeling errors
CN105786693A (zh) * 2014-12-26 2016-07-20 展讯通信(天津)有限公司 一种自测试执行系统及方法以及移动终端
CN106844186A (zh) * 2015-12-03 2017-06-13 腾讯科技(深圳)有限公司 应用的脱机测试方法及终端设备
CN108038052A (zh) * 2017-11-27 2018-05-15 平安科技(深圳)有限公司 自动化测试管理方法、装置、终端设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101165658A (zh) * 2006-10-18 2008-04-23 国际商业机器公司 自动生成可再现运行时问题的单元测试用例的方法和系统
US20100325491A1 (en) * 2009-06-18 2010-12-23 International Business Machines Corporation Mining a use case model by analyzing its description in plain language and analyzing textural use case models to identify modeling errors
CN105786693A (zh) * 2014-12-26 2016-07-20 展讯通信(天津)有限公司 一种自测试执行系统及方法以及移动终端
CN106844186A (zh) * 2015-12-03 2017-06-13 腾讯科技(深圳)有限公司 应用的脱机测试方法及终端设备
CN108038052A (zh) * 2017-11-27 2018-05-15 平安科技(深圳)有限公司 自动化测试管理方法、装置、终端设备及存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111597093A (zh) * 2019-02-20 2020-08-28 阿里巴巴集团控股有限公司 一种异常处理方法、装置及其设备
CN111597093B (zh) * 2019-02-20 2024-04-16 阿里巴巴集团控股有限公司 一种异常处理方法、装置及其设备
CN110162460A (zh) * 2019-04-15 2019-08-23 平安普惠企业管理有限公司 应用程序异常问题定位方法、装置、计算机设备及存储介质
CN110727597A (zh) * 2019-10-15 2020-01-24 杭州安恒信息技术股份有限公司 一种基于日志排查无效代码补全用例的方法
CN110727597B (zh) * 2019-10-15 2023-03-10 杭州安恒信息技术股份有限公司 一种基于日志排查无效代码补全用例的方法
CN110825466A (zh) * 2019-11-11 2020-02-21 腾讯科技(深圳)有限公司 一种程序卡顿的处理方法以及卡顿处理装置
CN111897672A (zh) * 2020-07-28 2020-11-06 北京字节跳动网络技术有限公司 处理终端异常的方法、装置、终端和存储介质
CN116450400A (zh) * 2023-06-19 2023-07-18 北京翼辉信息技术有限公司 应用程序异常分析方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN108874672B (zh) 2022-04-22

Similar Documents

Publication Publication Date Title
CN108874672A (zh) 应用程序异常定位方法、装置、设备及存储介质
CN106489251B (zh) 应用拓扑关系发现的方法、装置和系统
JP6630276B2 (ja) 端末デバイスにおけるユーザインタフェースを用いたユーザ行動および関与の計測機
CN107273280B (zh) 一种日志处理方法、装置、电子设备和存储介质
US20170161179A1 (en) Smart computer program test design
CN109408105A (zh) 用户行为数据的采集方法、装置、计算装置和存储介质
JP2017504121A5 (zh)
CN109324977A (zh) 应用程序卡顿的检测方法、装置及电子设备
CN110018920A (zh) 一种页面展示异常的检测方法、装置及设备
CN112817831A (zh) 应用性能监测方法、装置、计算机系统和可读存储介质
CN108023905B (zh) 物联网应用系统及方法
CN112954056B (zh) 监控数据处理方法、装置、电子设备及存储介质
CN112199261A (zh) 应用程序性能分析方法及装置、电子设备
US20180336122A1 (en) Generating application flow entities
JP7255827B2 (ja) テストスクリプトレコーディング時の時間選択の方法及び装置
CN110032750A (zh) 一种模型构建、数据生命周期预测方法、装置及设备
US20230153179A1 (en) Visitor stitching with data science notebooks
CN106302011A (zh) 基于多端的测试方法及终端
US10496524B2 (en) Separating test coverage in software processes using shared memory
CN109542775A (zh) 一种测试脚本的生成和执行方法及装置
CN109582580A (zh) 用于调试页面的系统、方法和装置
CN112346761B (zh) 前端资源上线方法、设备、系统及存储介质
CN112379967B (zh) 模拟器检测方法、装置、设备及介质
CN110633182B (zh) 用于监控服务器稳定性的系统、方法和装置
CN114666634A (zh) 画质检测结果显示方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant