CN112732569A - 程序资源占用测控及其相应的装置、设备、介质 - Google Patents

程序资源占用测控及其相应的装置、设备、介质 Download PDF

Info

Publication number
CN112732569A
CN112732569A CN202110004434.9A CN202110004434A CN112732569A CN 112732569 A CN112732569 A CN 112732569A CN 202110004434 A CN202110004434 A CN 202110004434A CN 112732569 A CN112732569 A CN 112732569A
Authority
CN
China
Prior art keywords
program
tested
system performance
terminal equipment
service
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.)
Pending
Application number
CN202110004434.9A
Other languages
English (en)
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.)
Guangzhou Cubesili Information Technology Co Ltd
Original Assignee
Guangzhou Cubesili Information Technology 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 Guangzhou Cubesili Information Technology Co Ltd filed Critical Guangzhou Cubesili Information Technology Co Ltd
Publication of CN112732569A publication Critical patent/CN112732569A/zh
Pending legal-status Critical Current

Links

Images

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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开一种程序资源占用测控方法及其相应的装置、设备、介质,包括如下步骤:控制多台终端设备启动受测程序,使该受测程序的进程激活沙盒服务;控制至少两台所述的终端设备的受测程序响应于其各自相应的预设指令集运行,而实现彼此的业务交互;所述业务交互过程中,所述沙盒服务持续监控其宿主终端设备的系统性能,当系统性能超标时向第三方服务器上报日志信息。本申请构建了一个适用于测试各类型操作系统的自动化测试平台,同时实现了应用程序的业务交互逻辑的自动化测试解决方案,有助于提高受测应用程序的自动化测试效率。

Description

程序资源占用测控及其相应的装置、设备、介质
技术领域
本申请涉及计算机软件测试领域,尤其涉及一种程序资源占用测控方法、装置及其相应的电子设备和非易失性存储介质。
背景技术
随着互联网的发展,各大互联网公司不断的推出各类型的应用程序供大量的互联网用户使用。各大互联网公司所开发的应用程序在开发完成后,需要进行大量的测试以检验应用程序是否能面对大量互联网用户的日常使用,测试应用程序是否能承载大量数据的响应,而不影响用户的日常使用。
如今互联网公司在测试一款未上线或已上线的应用程序时,通过需要针对各类型系统的终端设备策划各自的自动化测试流程,以预付应用程序在上线后能在不同系统终端设备中流畅运行,且日常维护也需针对不同系统的终端设备进行测试,以迭代更新应用程序,保证应用程序能在不同系统的终端设备的最新系统中流畅运行。
但针对各类型系统的终端设备策划各自的自动化测试流程过于繁琐,需要极大的人力及时间成本,且若需要针对各类型系统的终端设备开发适用于各类型系统的性能监控模块及自动化测试模块,人力及时间成本将成更为高昂。
针对现有技术存在需要针对不同系统的终端设备策划相应的自动化测试流程所带来的各种问题,有必要探索一些行之有效的解决方案。
发明内容
鉴于现有技术所存在的不足,本申请的目的,旨在提供一种程序资源占用测控方法及其相应的程序资源占用测控装置、电子设备、非易失性存储介质。
为满足本申请的目的,本申请采用如下技术方案:
适应本申请的目的之一而提供的一种程序资源占用测控方法,包括如下步骤:
控制多台终端设备启动受测程序,使该受测程序的进程激活沙盒服务;
控制至少两台所述的终端设备的受测程序响应于其各自相应的预设指令集运行,而实现彼此的业务交互;
所述业务交互过程中,所述沙盒服务持续监控其宿主终端设备的系统性能,当系统性能超标时向第三方服务器上报日志信息。
进一步的实施例中,控制多台终端设备启动受测程序,使该受测程序的进程激活沙盒服务的步骤,包括:
向所述多台终端设备分别发送受测程序的最新版本安装包并控制其安装;
控制各台终端设备启动已安装的受测程序;
在受测程序启动过程中,调用其实现为SDK的沙盒服务所包括的各个监控插件,以使沙盒服务实现激活。
进一步的实施例中,控制至少两台所述的终端设备的受测程序响应于其各自相应的预设指令集运行的步骤,包括:
向第一台终端设备发送编制了第一预设指令集的第一测试用例;
向第二台终端设备发送编制了第二预设指令集的第二测试用例;
控制所述第一测试用例和第二测试用例在相应的终端设备被解析执行,以相应根据所述第一预设指令集和第二预设指令集控制相应的终端设备的受测程序响应运行。
进一步的实施例中,所述沙盒服务持续监控其宿主终端设备的系统性能,当系统性能超标时向第三方服务器上报日志信息的步骤,包括:
所述沙盒服务通过多个插件定时采集其宿主终端设备的系统性能相对应的多个指标数据;
比较各个指标数据是否超过相应的预设阈值,当任意一个指标数据超过预设阈值时视为超标;
当系统性能超标时,将包含系统性能相关的指标数据在内的日志信息上报给所述第三方服务器。
较佳的实施例中,将包含系统性能相关的指标数据在内的日志信息上报给所述第三方服务器的步骤,包括:
抓取主线程和各子线程的堆栈信息;
利用所述堆栈信息汇总各子线程的CPU占比信息;
从沙盒服务指定的路径中获取沙盒服务自动生成的日志文件;
将所述系统性能相关的指标数据、堆栈信息、CPU占比信息以及日志文件作为所述的日志信息上报给所述第三方服务器。
进一步的实施例中,向第三方服务器上报日志信息导致所述第三方服务器执行如下步骤:
分析所述日志信息,根据预设的匹配规则确定所述日志消息的接收用户;
根据所述日志信息生成问题分析报告;
将所述问题分析报告发送给所述的接收用户。
进一步的实施例中,所述业务交互过程包括:
多台终端设备中的第一台终端设备的受测程序以主播用户身份登录,开启直播间实施视频直播;
多台终端设备中的第二台终端设备的受测程序以观众用户身份登录,进入所述直播间获取主播用户的直播视频;
所述主播用户或所述观众用户彼此至少向对方发送一种交互消息。
适应本申请的目的之一而提供的一种程序测试控制装置,其包括:
程序启动模块,用于控制多台终端设备启动受测程序,使该受测程序的进程激活沙盒服务;
业务启动模块,用于控制至少两台所述的终端设备的受测程序响应于其各自相应的预设指令集运行,而实现彼此的业务交互;
性能监控模块,被配置为所述业务交互过程中,所述沙盒服务持续监控其宿主终端设备的系统性能,当系统性能超标时向第三方服务器上报日志信息。
适应本申请的目的之一而提供的一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本申请所述的程序资源占用测控方法的步骤。
适应本申请的另一目的而提供的一种非易失性存储介质,其以计算机可读指令的形式存储有依据所述的程序资源占用测控方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
相对于现有技术,本申请的优势如下:
首先,本申请通过构建一个适用于测试各类型系统的终端设备的测试平台,通过主控服务器控制多台终端设备启动受测程序,并触发多台终端设备的受测程序激活沙盒服务,以使终端设备自动化实时监控其自身的程序资源占用情况,并可针对多台终端设备中的至少两台终端设备,控制其执行预设指令集,实现两台或以上的终端设备进行彼此的业务交互,以测试各终端设备在运行受测程序时对各自的资源占用的影响。通过这一实施逻辑所构建的测试平台,可控制各类型的终端设备运行相应的应用程序,并通过预设指令集控制多台终端设备执行测试,高效且有序地控制各类型终端设备的测试,极大地减少互联网公司的人力及时间成本。
其次,本申请构建的沙盒服务,除了上述的监控各类型终端设备在运行受测程序及在受测程序中执行相应的测试用例时的资源占用情况外,还可在终端设备执行业务交互的过程中,通过监控终端设备的系统性能,判断该终端设备的系统性能是否已超标,若其宿主终端设备的系统性能超标,将根据终端设备的超标时的系统性能的各项数据(可关联正在执行的预设指令以方便查找问题),创建说明当前终端设备的错误报告的日志信息发送至第三方服务器中,以便开发人员通过第三方服务器获取日志信息,进而修复受测程序的漏洞并进行受测程序的迭代更新,维护该受测程序,以保证用户的终端设备在运行受测程序时能保持流程。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为实施本申请的技术方案相关的一种典型的部署架构示意图;
图2为本申请的程序资源占用测控方法的典型实施例的流程示意图;
图3为本申请的程序资源占用测控方法中步骤S11所执行的具体过程的流程示意图;
图4为本申请的程序资源占用测控方法中步骤S12所执行的具体过程的流程示意图;
图5为本申请的程序资源占用测控方法控制两台终端设备执行业务交互流程所形成的流程示意图;
图6为本申请的程序资源占用测控方法中步骤S13所执行的具体过程的流程示意图;
图7为为图6中步骤S133的具体执行过程的流程示意图;
图8为本申请的程序资源占用测控方法执行后导致第三方服务器响应而执行的流程示意图;
图9为本申请的程序资源占用测控装置的典型实施例的原理框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global PositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
请参阅图1,本申请相关技术方案实施时所需的硬件基础可按图中所示的架构进行部署,其各部分的作用及功能揭示如下:
本申请所述的主控服务器80,其作为独立设备,主要用于实施本申请的程序资源占用测控方法,以便控制本申请的所述的多台终端设备82进行测试。所述的主控服务器80可通过接收由终端设备81或其他业务服务器(未图示)所发送的测试用例,控制所述多台终端设备82启动受测程序,且控制所述多台终端设备82中的至少两台终端设备的受测程序响应于各自相应的预设指令集运行,从而实现所述至少两台终端设备进行彼此的业务交互。
所述主控服务器80实时监控所述多台终端设备82执行业务交互的过程,当监控到多台终端设备82中相应的终端设备的系统性能超标时,将向所述第三方服务器83上报所述系统性能超标的终端设备的日志信息。所述第三方服务器83接收到所述日志信息后,终端设备81可通过查询所述第三方服务器83中的所述日志信息进行相应的修复,且通过修改所述测试用例并发送至所述主控服务器80中,以便所述主控服务器80更新所述多台终端设备82中的所述受测程序。
需要指出的是,为了支持主控服务器80与多台终端设备82及终端设备82之间形成C/S架构,主控服务器80将按照本申请的程序资源占用测控方法实现相应的应用程序以便在其运行后可以实施该方法而构成Server端,而多台终端设备81及终端设备82中也会被植入用于与Server端通信并负责执行Server端的指令的后台程序,这一后台程序依据本申请的程序资源占用测控方法而实现,在该后台程序运行时接收Server端的指令,从而使多台终端设备81及终端设备82起到Client端的作用。
本申请所称的受测程序,其通称意义是指运行于服务器或终端设备之类的电子设备的应用程序,这些应用程序采用编程的方式实现了本申请的相关技术方案,其程序代码可被以计算机可执行指令的形式保存于计算机能识别的非易失性存储介质中,并被中央处理器调入内存中运行,通过该应用程序在计算机的运行而构造出本申请的相关装置。具体的,本申请所称的受测程序,是接受测试的应用程序,其运行于所述的多种终端设备81中,通过其运行而与远程服务器交互使用远程服务器开放的服务。
不同多台终端设备81及终端设备82可能运行于不同的操作系统,例如IOS、Android等,因此其中所安装的目标程序可能也是以不同的操作系统原生语言开发的,但由于通常同一目标程序无论其运行环境如何,均会遵照一定的功能逻辑开发,只是其所使用的语言不同,因而,这种情况并不影响本申请的实施。同理,主控服务器80中与本申请相关的应用程序与多台终端设备81及终端设备82中与本申请相关的受测程序也可能是以不同原生语言开发的,也不影响本申请的实施。
本申请所称的测试用例,用于编制本申请所称的预设指令集,用于描述一个适用于对受测程序实施测试的测试流程,其通过计算机高级语言编写而成,一般是主控服务器80中与负责实施本申请的应用程序可以支持的语言,例如Python、Java等,其从逻辑上可以借助if、case之类的转向语句形成多个分支流程,从动作上则可通过执行语句来执行,例如通过执行语句来调用一个方法函数。作为其基本功能,这些执行语句的主要任务是负责按照测试流程的需要发起一连串的调用指令,通过将这些调用指令发送给各个相应的多台终端设备81而控制其中的目标程序按需运行从而配合测试。可以理解,测试脚本将繁复的人为操作转换成自动执行的操作命令,大大地减少了测试人员的重复性操作,提高了测试效率。
本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
请参阅图2,本申请的一种程序资源占用测控方法,由主控服务器侧的应用程序负责执行体现,在其典型实施例中,其包括如下步骤:
步骤S11,控制多台终端设备启动受测程序,使该受测程序的进程激活沙盒服务:
主控服务器向多台终端设备发送相关指令,以控制所述多台终端设备启动受测程序,且触发所述多台终端设备中的受测程序的进程激活沙盒服务。
所述的多台终端设备中的受测程序,可由主控服务器发送该受测程序的安装包至所述多台终端设备中并控制所述多台终端设备进行安装,也可是所述多台终端设备中预装的程序。
进一步的,主控服务器在控制所述多台终端设备启动受测程序之前,可向其发送最新的所述受测程序安装包/更新包,以更新所述多台终端设备中的受测程序,确保所述受测程序为最新的受测程序,相应的,主控服务器也可向所述多台终端设备发送其他的受测程序的安装包,以替换所述多台设备中的受测程序。
相应的,主控服务器在控制所述多台终端设备启动受测程序之前,向所述多台终端设备发送的受测程序可为该受测程序的安装包/更新包,也可为该受测程序的安装包/更新包的下载链接,所述多台终端设备可通过下载链接获取最新的所述安装包/更新包进行更新/替换所述受测程序。
所述的沙盒服务中集成了多种监控插件,其存在所述受测程序中,以监控启动了该受测程序的终端设备运行所述受测程序时的系统性能;所述的多种监控插件可为JMeter、Badboy、Fiddler等为架构编写的CPU采集插件、内存采集插件、帧率采集插件其他监控插件,所述沙盒服务通过所述多种监控插件,全方位地监控所述终端设备运行所述受测程序时的系统性能。
进一步的,所述沙盒服务具备将在运行所述受测程序的相关测试用例时系统性能超标的终端设备的日志信息进行上报至第三方服务器的功能,关于上报的具体实施细节将在后续步骤中进行叙述。
一种实施例中,参阅图3,主控服务器在控制所述多台终端设备启动受测程序的具体实施步骤如下:
步骤S111,向所述多台终端设备分别发送受测程序的最新版本安装包并控制其安装:
主控服务器向所述多台终端设备分别发送所述受测程序的最新版本安装包,并控制所述多台终端设备分别按照该受测程序的最新版本安装包。
进一步的,所述多台终端设备中不同的终端设备可运行不同的终端操作系统,主控服务器将根据终端设备的操作系统发送对应的所述受测程序的最新版本安装包,以便不同的终端设备中运行该受测程序。
步骤S112,控制各台终端设备启动已安装的受测程序:
主控服务器发送相应的指令至所述多台终端设备中,以便各终端设备响应该指令,启动已完成安装的所述受测程序。
进一步的,所述主控服务器可向所述多台终端设备中的相应终端设备发送测试用例,以便相应的终端设备启动所述受测程序后执行所述测试用例进行测试。
步骤S113,在受测程序启动过程中,调用其实现为SDK的沙盒服务所包括的各个监控插件,以使沙盒服务实现激活:
主控服务器在控制所述多台终端设备启动所述受测程序时,将同时激活所述沙盒服务,调用所述沙盒服务所包含的各个监控插件,以便后续监控启动了该受测程序的终端设备在运行该受测程序的相关测试用例时的系统性能。
步骤S12,控制至少两台所述的终端设备的受测程序响应于其各自相应的预设指令集运行,而实现彼此的业务交互:
主控服务器控制所述多台终端设备启动所述受测程序后,将控制所述多台终端设备中至少两台终端设备进行该受测程序的测试,控制所述至少两台终端设备的受测程序响应于其各自相应的预设指令集运行,以实现各个终端设备之间的业务交互。
所述的预设指令集以测试用例的形式进行封装表达,终端设备执行所述一个或多个测试用例以执行相应的预设指令集,以便主控服务器通过所述沙盒服务监控该终端设备在运行该受测程序时执行相应的测试用例时的系统性能;所述的预设指令集可以构造为当相应的预设指令在终端设备处被解析执行时,仿真一个计算机操作事件,作用于所述受测程序的图形用户界面,从而导致受测程序受控响应。若所述受测程序为直播应用程序,所述预设指令集的执行,可导致所述受测程序实施多人连麦、用户图形界面动画特效、弹幕瀑布、进入直播间等,本技术领域人员可灵活设计所述预设指令集相对应的测试用例,恕不赘述。
一种实施例中,所述的预设指令集可由主控服务器发送至相应的所述终端设备中,也可以是预先安装至所述终端设备中的预设指令集,或其他设备发送的预设指令集,可以理解,所述终端设备中可包含多个来源的所述预设指令集,服务器可控制所述终端设备执行相应的预设指令集,以达到测试所述受测程序的目的。
一种实施例中,参阅图4,关于主控服务器控制所述多台终端设备中至少两台终端设备执行所述预设指令集的具体实施方式,以下假设服务器控制的所述终端设备为两台,其具体实施步骤如下:
步骤S121,向第一台终端设备发送编制了第一预设指令集的第一测试用例:
主控服务器向第一台终端设备发送预先编制的第一预设指令集中的第一测试用例,以便所述第一台终端设备执行所述第一测试用例所相关的所述受测程序,且通过沙盒服务监控该第一台终端设备执行所述第一测试用例时的系统性能。
相应的,所述第一预设指令集及其第一测试用例可为所述第一台终端设备预先拥有的预设指令集,本实施例中是为了更突出体现主控服务器在本方法的重要性,故此步骤中所述第一预设指令集为主控服务器发送至所述第一台终端设备中的预设指令集。
步骤S122,向第二台终端设备发送编制了第二预设指令集的第二测试用例:
与步骤S121相似,主控服务器向所述第二台终端设备发送预先编制的第二预设指令集的第二测试用例,以便所述沙盒服务监控该第二台终端设备执行该第二测试用例时的系统性能。
步骤S123,控制所述第一测试用例和第二测试用例在相应的终端设备被解析执行,以相应根据所述第一预设指令集和第二预设指令集控制相应的终端设备的受测程序响应运行:
主控服务器控制所述第一台终端设备及第二台终端设备解析执行与之相应的第一测试用例及第二测试用例,以便第一台终端设备及第二台终端设备的所述受测程序执行与之相应的第一测试用例及第二测试用例。
进一步的实施例中,参阅图5,为了更具体的所述第一台终端设备及第二台终端设备及所述第一测试用例及第二测试用例在相应的终端设备中的实施,所述受测程序为直播间应用程序,则第一台终端设备及第二台终端设备的具体交互过程如下:
步骤S1231,多台终端设备中的第一台终端设备的受测程序以主播用户身份登录,开启直播间实施视频直播:
所述的受测程序为直播间应用程序,主控服务器向所述第一台终端设备发送相应的预设指令集,并控制该第一台终端设备在所述直播应用程序并以主播用户身份登录,以便该第一台终端设备执行所述相应的开播测试用例,在该受测程序中开启直播间实施视频直播。
步骤S1232,多台终端设备中的第二台终端设备的受测程序以观众用户身份登录,进入所述直播间获取主播用户的直播视频:
主控服务器向所述第二台终端设备发送相应的的预设指令集,并控制该第二台终端设备解析该测试用例,在所述受测程序中以观众用户身份登录,并执行进入由第一台终端设备开启的直播间中获取该第一台终端设备的直播流。
步骤S1233,所述主播用户或所述观众用户彼此至少向对方发送一种交互消息:
所述第一台终端设备及第二台终端设备分别以主播用户身份及观众用户身份登录所述受测程序中,且所述第二台终端设备进入所述第一台终端设备开启的直播间后,第一台终端设备及第二台终端设备执行相关测试用例的预设指令合集,以便第一台终端设备及第二终端设备彼此发送至少一种所述交互信息。
所述的交互信息一般是指直播间中所述主播用户及观众用户的互动信息,例如连麦通信或文字消息发送等,本领域技术人员可根据实际测试场景需求设计所述互动信息,恕不赘述。
步骤S13,所述业务交互过程中,所述沙盒服务持续监控其宿主终端设备的系统性能,当系统性能超标时向第三方服务器上报日志信息:
所述多台终端设备中至少两台终端设备启动所述受测程序并执行所述预设指令集实现所述业务交互的过程中,所述终端设备的受测程序中的所述沙盒服务持续监控该终端设备执行相关预设指令集中的测试用例时的系统性能。
当所述沙盒服务监控到其宿主终端设备的系统性能超标时,将向该终端设备预先建立通信链路的第三方服务器上报该终端设备的日志信息,以便测试用户通过所述第三方服务器获取所述日志信息。
所述沙盒服务判断其宿主终端设备的系统性能的超标的判断条件可为一个或多个,所述判断条件的类型可为:CPU性能占用、运行内存占用、储存内存性占用、GPU性能占用,视频流帧率、CPU温度、网络占用等。沙盒服务通过预先设置的系统性能阈值,判断其宿主终端设备的一个或多个系统性能是否超标,例如当所述沙盒服务的宿主终端设备运行所述受测程序时执行所述预设指令集中的相关测试用例时,CPU性能占用超过120%时,将向所述第三方服务器上报该终端设备的日志信息。
所述的日志信息将包含所述沙盒服务宿主终端设备的身份特征信息、所述沙盒服务监控到其宿主终端设备的超标系统性能的具体信息、沙盒服务分析该终端设备执行的测试用例时发生的错误的分析结果等,例如,当沙盒服务监控到其宿主终端设备因测试用例为进入直播间、该终端设备的系统性能的CPU性能占用及视频流帧率超标时,所述日志信息中将包含:终端设备IP:121.32.197.70、CPU性能占用:120%、视频流帧率:30fps、测试用例:进入直播间、分析结果:错误将特效图片IO下载放到主线程引起界面卡顿。
一种实施例中,参阅图6,所述沙盒服务监控到其宿主终端设备的系统性能具体实施步骤如下:
步骤S131,所述沙盒服务通过多个插件定时采集其宿主终端设备的系统性能相对应的多个指标数据:
所述沙盒服务通过自身携带的多个监控插件定时采集其宿主终端设备的系统性能中相应的指标数据,以便判断该终端设备的所述指标数据与预先设置的预设阈值进行比较,判断该终端设备的系统性能是否超标。
步骤S132,比较各个指标数据是否超过相应的预设阈值,当任意一个指标数据超过预设阈值时视为超标:
所述沙盒服务通过比较其宿主终端设备的是指标数据与预先设置的预设阈值,判断该终端设备的系统性能是否超标,当该终端设备的相应指数数据大于等于或等于所述预设阈值时,所述沙盒服务判断该终端设备的系统性能超标,例如,当所述沙盒服务通过CPU采集插件监控该终端设备的协议指数数为CPU性能占用,且该CPU虚拟占用为130%,而相应的预设阈值为120%时,沙盒服务判定该终端设备的系统性能已超标。
步骤S133,当系统性能超标时,将包含系统性能相关的指标数据在内的日志信息上报给所述第三方服务器:
当所述沙盒服务判定其宿主终端设备的系统性能超标时,该终端设备将采集包含系统性能相关的至少数据在内的日志信息上报至已与该终端设备建立通信链路的第三方服务器。
进一步的实施例中,参阅图7,关于所述沙盒服务的宿主终端设备采集包含系统性能相关的指标数据在内的日志信息是,将实施如下具体步骤:
步骤S1331,抓取主线程和各子线程的堆栈信息:
所述沙盒服务的宿主终端设备抓取主线程和各子线程的堆栈信息。
所述堆栈信息用于所述宿主终端设备获取其自身各子线程的CPU占比信息。
步骤S1332,利用所述堆栈信息汇总各子线程的CPU占比信息:
所述沙盒服务的宿主终端设备抓取到所述堆栈信息后,将解析该堆栈信息,以便所述终端设备汇总自身各子线程的CPU占比信息。
步骤S1333,从沙盒服务指定的路径中获取沙盒服务自动生成的日志文件:
所述沙盒服务的宿主终端设备将根据预先指定的路径,从所述沙盒服务中获取该沙盒服务自动生成的所述日志文件。
所述的日志文件,一般是指所述沙盒服务根据系统性能已超标其宿主终端设备的系统性能及相关测试用例自动生成的分析结果。
步骤S1334,将所述系统性能相关的指标数据、堆栈信息、CPU占比信息以及日志文件作为所述的日志信息上报给所述第三方服务器:
所述沙盒服务的设置指定设备将会获取到的所述指标数据、所述堆栈信息、所述CPU占比信息及所述日志文件作为所述日志信息上报至所述第三方服务器。
另一种实施例中,参阅图8,所述沙盒服务的宿主终端设备将所述日志信息发送至所述第三方服务器后,所述第三方服务器将所述如下具体步骤:
步骤S131’,分析所述日志信息,根据预设的匹配规则确定所述日志消息的接收用户:
所述第三方服务器接收到来自所述终端设备发送的日志信息后,将分析该日志信息,以便根据预设的匹配规则确定所述日志信息的接收用户。
所述的匹配规则中包含多个接收用户的网络端口地址及所述接收用户所拥有的所述终端设备,第三方服务器根据其接受到的日志信息获取该终端设备的身份特征信息在所述匹配规则中进行匹配,确定该终端设备所属的接收用户。
步骤S132’,根据所述日志信息生成问题分析报告:
所述第三方服务器根据接收到的所述日志信息进行多维分析,分析该日志信息中存在的问题,并生成问题分析报告。
一种实施例中,第三方服务器根据所述日志信息,在相应的历史数据库中查询是否存在与该日志信息相似的日志信息,若存在,则调用该历史数据库中已存在的实施日志信息,并结合终端设备发送的日志信息,生成实施问题分析报告。
步骤S133’,将所述问题分析报告发送给所述的接收用户:
所述第三方服务器将所述问题分析报告发送至根据预设的匹配规则确定所述日志消息的接收用户中,以便接收用户根据所述问题分析报告修复所述受测程序,并将该受测程序最新的安装包/更新包发送至主控服务器,以便主控服务器控制所述终端设备安装所述的安装包/更新包并启动所述受测程序。
所述接收用户在接收到来自所述第三方服务器发送的日志信息后,可通过所述日志信息了解所述受测程序在日志信息所标识的终端设备中执行相关的预设指令集所发送的系统性能问题,及时的修复所述受测程序的相关漏洞,并通过向主控服务器发送该受测程序最新的安装包/更新包,测试最新的所述受程序在相应的终端设备中是否存在其他的程序或系统漏洞,以便不断地迭代更新所述受测程序,维护所述受测程序在不同系统的终端设备中运行。
进一步,可以通过将上述各实施例所揭示的方法中的各个步骤进行功能化,构造出本申请的一种程序测试控制装置,按照这一思路,请参阅图9,其中的一个典型实施例中,该装置包括:
程序启动模块11,用于控制多台终端设备启动受测程序,使该受测程序的进程激活沙盒服务;
业务启动模块12,用于控制至少两台所述的终端设备的受测程序响应于其各自相应的预设指令集运行,而实现彼此的业务交互;
性能监控模块13,被配置为所述业务交互过程中,所述沙盒服务持续监控其宿主终端设备的系统性能,当系统性能超标时向第三方服务器上报日志信息。
进一步,为便于本申请的执行,本申请提供一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如前所述的各实施例中所述程序资源占用测控方法的步骤。
可以看出,存储器适宜采用非易失性存储介质,通过将前述的方法实现为计算机程序,安装到手机或计算机之类电子设备中,相关程序代码和数据便被存储到电子设备的非易失性存储介质中,进一步通过电子设备的中央处理器运行该程序,将其从非易性存储介质中调入内存中运行,便可实现本申请所期望的目的。因此,可以理解,本申请的一个实施例中,还可提供一种非易失性存储介质,其中存储有依据所述的程序资源占用测控方法各个实施例所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
综上所述,本申请构建了一个适用于各类型系统的终端程序的测试平台,通过控制多台终端设备测试应用程序,并为根据故障的终端设备所出现的漏洞创建相应的日志信息供开发人员参考,以减少应用程序的维护成本。
本技术领域技术人员可以理解,本申请包括涉及用于执行本申请中所述操作、方法中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其存储器之内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(ErasableProgrammable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(ElectricallyErasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本申请公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种程序资源占用测控方法,其特征在于,包括如下步骤:
控制多台终端设备启动受测程序,使该受测程序的进程激活沙盒服务;
控制至少两台所述的终端设备的受测程序响应于其各自相应的预设指令集运行,而实现彼此的业务交互;
所述业务交互过程中,所述沙盒服务持续监控其宿主终端设备的系统性能,当系统性能超标时向第三方服务器上报日志信息。
2.根据权利要求1所述的方法,其特征在于,控制多台终端设备启动受测程序,使该受测程序的进程激活沙盒服务的步骤,包括:
向所述多台终端设备分别发送受测程序的最新版本安装包并控制其安装;
控制各台终端设备启动已安装的受测程序;
在受测程序启动过程中,调用其实现为SDK的沙盒服务所包括的各个监控插件,以使沙盒服务实现激活。
3.根据权利要求1所述的方法,其特征在于,控制至少两台所述的终端设备的受测程序响应于其各自相应的预设指令集运行的步骤,包括:
向第一台终端设备发送编制了第一预设指令集的第一测试用例;
向第二台终端设备发送编制了第二预设指令集的第二测试用例;
控制所述第一测试用例和第二测试用例在相应的终端设备被解析执行,以相应根据所述第一预设指令集和第二预设指令集控制相应的终端设备的受测程序响应运行。
4.根据权利要求1所述的方法,其特征在于,所述沙盒服务持续监控其宿主终端设备的系统性能,当系统性能超标时向第三方服务器上报日志信息的步骤,包括:
所述沙盒服务通过多个插件定时采集其宿主终端设备的系统性能相对应的多个指标数据;
比较各个指标数据是否超过相应的预设阈值,当任意一个指标数据超过预设阈值时视为超标;
当系统性能超标时,将包含系统性能相关的指标数据在内的日志信息上报给所述第三方服务器。
5.根据权利要求3所述的方法,其特征在于,将包含系统性能相关的指标数据在内的日志信息上报给所述第三方服务器的步骤,包括:
抓取主线程和各子线程的堆栈信息;
利用所述堆栈信息汇总各子线程的CPU占比信息;
从沙盒服务指定的路径中获取沙盒服务自动生成的日志文件;
将所述系统性能相关的指标数据、堆栈信息、CPU占比信息以及日志文件作为所述的日志信息上报给所述第三方服务器。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,向第三方服务器上报日志信息导致所述第三方服务器执行如下步骤:
分析所述日志信息,根据预设的匹配规则确定所述日志消息的接收用户;
根据所述日志信息生成问题分析报告;
将所述问题分析报告发送给所述的接收用户。
7.根据权利要求1至5中任意一项所述的方法,其特征在于,所述业务交互过程包括:
多台终端设备中的第一台终端设备的受测程序以主播用户身份登录,开启直播间实施视频直播;
多台终端设备中的第二台终端设备的受测程序以观众用户身份登录,进入所述直播间获取主播用户的直播视频;
所述主播用户或所述观众用户彼此至少向对方发送一种交互消息。
8.一种程序资源占用测控装置,其特征在于,其包括:
程序启动模块,用于控制多台终端设备启动受测程序,使该受测程序的进程激活沙盒服务;
业务启动模块,用于控制至少两台所述的终端设备的受测程序响应于其各自相应的预设指令集运行,而实现彼此的业务交互;
性能监控模块,被配置为所述业务交互过程中,所述沙盒服务持续监控其宿主终端设备的系统性能,当系统性能超标时向第三方服务器上报日志信息。
9.一种电子设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至7中任意一项所述的方法的步骤。
10.一种非易失性存储介质,其特征在于,其以计算机可读指令的形式存储有依据权利要求1至7中任意一项所述的方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行相应的方法所包括的步骤。
CN202110004434.9A 2020-12-24 2021-01-04 程序资源占用测控及其相应的装置、设备、介质 Pending CN112732569A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011556733 2020-12-24
CN2020115567335 2020-12-24

Publications (1)

Publication Number Publication Date
CN112732569A true CN112732569A (zh) 2021-04-30

Family

ID=75590783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110004434.9A Pending CN112732569A (zh) 2020-12-24 2021-01-04 程序资源占用测控及其相应的装置、设备、介质

Country Status (1)

Country Link
CN (1) CN112732569A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115437610A (zh) * 2022-09-14 2022-12-06 中国电信股份有限公司 实现可观测性的方法及装置、可读存储介质、电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115437610A (zh) * 2022-09-14 2022-12-06 中国电信股份有限公司 实现可观测性的方法及装置、可读存储介质、电子设备
CN115437610B (zh) * 2022-09-14 2024-10-11 中国电信股份有限公司 实现可观测性的方法及装置、可读存储介质、电子设备

Similar Documents

Publication Publication Date Title
CN110795734B (zh) 一种恶意移动应用检测方法
CN109559583B (zh) 故障模拟方法及其装置
CN111124919A (zh) 一种用户界面的测试方法、装置、设备及存储介质
CN108256118B (zh) 数据处理方法、装置、系统、计算设备以及存储介质
US8806475B2 (en) Techniques for conditional deployment of application artifacts
CN105094783A (zh) 安卓应用稳定性测试的方法及装置
CN111580926A (zh) 模型发布方法、模型部署方法、装置、设备及存储介质
CN112860645B (zh) 一种离线压缩文件的处理方法、装置、计算机设备及介质
CN110928770B (zh) 软件测试的方法、装置、系统、存储介质和电子设备
CN111258913A (zh) 算法自动测试方法、装置、计算机系统及可读存储介质
CN112199284A (zh) 程序自动化测试方法及其相应的装置、设备、介质
CN110928625A (zh) 应用程序的运行控制方法、装置、电子设备及存储介质
CN114297056A (zh) 一种自动化测试方法及系统
CN110119350A (zh) 软件开发工具包测试方法、装置和设备及计算机存储介质
CN112181746A (zh) 车载操作系统的故障修复方法、装置及设备
CN113778879A (zh) 接口的模糊测试方法及装置
CN110347565B (zh) 一种应用程序的异常分析方法及装置、电子设备
CN106293821B (zh) 获取及传输应用程序数据、运行应用程序的方法及装置
CN112732569A (zh) 程序资源占用测控及其相应的装置、设备、介质
CN114328250A (zh) 软件系统自动自检方法、介质和装置
US20230359746A1 (en) Systems and methods for shift left testing
CN115129574A (zh) 一种代码测试方法和装置
CN112783789A (zh) 一种适配测试方法、设备及计算机可读存储介质
CN111930625A (zh) 基于云服务平台的日志获取方法、装置及系统
CN112416698A (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