CN112954311A - 一种直播流媒体的性能测试方法及其系统 - Google Patents
一种直播流媒体的性能测试方法及其系统 Download PDFInfo
- Publication number
- CN112954311A CN112954311A CN202110170990.3A CN202110170990A CN112954311A CN 112954311 A CN112954311 A CN 112954311A CN 202110170990 A CN202110170990 A CN 202110170990A CN 112954311 A CN112954311 A CN 112954311A
- Authority
- CN
- China
- Prior art keywords
- terminal
- task
- streaming media
- delay
- time
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N17/00—Diagnosis, testing or measuring for television systems or their details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/4424—Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种直播流媒体的性能测试方法,该方法为:步骤S1、流媒体订阅终端等待接收服务端下发的命令,流媒体订阅终端收到命令执行对应的命令;步骤S2、对每个流媒体订阅终端的信息进行管理,并创建任务,配置需要进行压力测试的压力测试数据,步骤S3、监控任务调度时刻,并下发调度命令,下发开始命令到对应终端,根据压力测试数据实现流媒体的性能测试,并在预置结束时间的时候往每个流媒体订阅终端发起结束命令;步骤S4、记录各个流媒体订阅终端在性能测试过程中的记录信息,进行统一的汇报呈现;实现性能压测压力测试,可以有效的降低性能测试成本,甚至可以将其闲置的带宽进行商用变现。
Description
技术领域
本发明涉及自动化测试技术领域,特别是一种直播流媒体的性能测试方法及系统。
背景技术
在现今的互联网时代,直播流媒体的应用是大势所趋,对于测试人员,视频直播的测试方法将成为当前测试领域中的一个重点研究方向。而直播/流媒体的性能测试对于传统的短连接服务测试相比存在较大区别。直播测试不同于普通的网站压力测试,直播测试需要很多的客户端、带宽。常见的直播性能测试方式有:①、通过打开多客户端进行播放,当然如果是web端的话,还可以一台电脑打开多个直播网页来增加访问量;②、通过人眼来分析其中一部分客户端订阅和推流端的延时情况。当然不乏存在较优的方法③、通过一些性能测试框架比如jmeter等来实现并发的直播视频播放,但是在资源利用及易用性等方面相对较差。现有技术的缺点如下:
缺点一,如果直播的产品没有web端,只有终端的话,那么往往一个电脑只能打开1个直播终端进行直播间媒体流的订阅,相对来说每台电脑的利用率低。
缺点二,继上,如果测试的直播产品具备有web端订阅的话,但是存在账号互踢的话,那么需要较多的账号登录授权等,才能实现多直播终端的订阅,而此过程需要处理的额外操作步骤就显得繁琐了。
缺点三,继上,越过产品自带的功能订阅使用jmeter相关的框架去做下载对应直播流的地址进行播放,那么也需要搭建jmeter,需要进行环境部署的过程,与此同时,由于涉及到了播放,解码的过程对CPU及内存的消耗也是较大的。
缺点四,继上,直播媒体流的压力测试,其中对终端要求具备较高的带宽,如果只是一味的增加订阅,播放效果差,不能完全代表是直播服务的问题,极有可能是客户端带宽出现了瓶颈,会对测试结果的评估产生误差。
发明内容
为克服上述问题,本发明的目的是提供一种直播流媒体的性能测试方法,在没有终端限制的情况下,能通过配置来实现流媒体的一个高并发性能测试;且有效的降低对终端电脑的CPU、内存等性能占用。
本发明采用以下方案实现:一种直播流媒体的性能测试方法,所述性能测试方法包括如下步骤:
步骤S1、流媒体订阅终端等待接收服务端下发的命令,流媒体订阅终端收到命令执行对应的命令;
步骤S2、对每个流媒体订阅终端的信息进行管理,并创建任务,配置需要进行压力测试的压力测试数据,该压力测试数据包括直播流媒体协议类型、直播流地址、压测压力测试数量、压测压力测试时间;
步骤S3、监控任务调度时刻,并下发调度命令,下发开始命令到对应终端,根据压力测试数据实现流媒体的性能测试,并在预置结束时间的时候往每个流媒体订阅终端发起结束命令;
步骤S4、记录各个流媒体订阅终端在性能测试过程中的记录信息,进行统一的汇报呈现。
进一步的,所述步骤S1进一步具体包括:流媒体订阅终端执行程序后,程序会针对当前的流媒体订阅终端电脑设备进行网络测速,统计当前电脑的上行带宽及下行带宽、CPU、内存;并向服务端中心发送当前终端的信息,该信息包含:IP、上行带宽、下行带宽、CPU、内存;每个流媒体订阅终端都是一个独立可执行的接口服务,终端以flask作为框架,对外提供接口服务,其中会提供一个给服务端中心查询终端性能情况的性能接口get_terminal_info。
进一步的,所述流媒体订阅终端能为服务端中心提供如下的调度接口:调度接口post_concurrent、调度接口get_concurrent、调度接口delete_concurrent、调度接口post_delay、调度接口delete_delay、调度接口get_delay_record;所述调度接口post_concurrent,用于接收服务端中心下发的执行并发请求,并解析直播流媒体关键字段,直播流媒体关键字段有:直播流媒体协议类型、直播流地址、订阅并发数量、任务执行编号,当解析到服务端下发的数据请求,则开启线程进行直播流媒体处理;所述调度接口get_concurrent,用于查询当前终端执行的具体任务详情,除了包含直播流媒体协议类型、直播流地址、订阅并发数量、任务执行编号之外还会附上当前终端实时的上行带宽、下行带宽、CPU、内存;所述调度接口delete_concurrent,用于接收服务端中心下发的关闭请求,并解析所述直播流媒体关键字段;所述调度接口post_delay,用于实现延时的统计,当接收到服务端中心请求,会解析延时关键字段,该延时关键字段包括:直播流媒体协议类型、直播流地址、检测时间间隔、任务执行编号;所述调度接口delete_delay,用于实现结束延时统计,当接收到服务端中心结束请求,并解析所述延时关键字段;所述调度接口get_delay_record,通过传递参数任务执行编号task_id查询到该终端本次延时测试的执行结果。
进一步的,所述步骤S2中对每个流媒体订阅终端的信息进行管理,该流媒体订阅终端的信息包括终端设备唯一标示、流媒体订阅终端电脑IP、设备信息device_info、用户信息user_info、在线状态state、离线时间leave_time;当有一个终端进行安装部署的时候,服务端中心会记录当前终端的对应信息入库,并定时和访问每个终端的当前信息,对应地进行信息的更新;所述测试方法设置有检测终端的能力,即一键遍历所有终端的get_terminal_info接口,当出现访问不到的时候,即将在线状态state字段改为离线leave状态,即代表该终端下线;当某一个终端被任务占用的时候,则该终端的在线状态state会改成对应运行的任务内容,即:运行性能测试则标识为[concurrent],运行延时测试则标识为[delay],两者都运行则标识为[concurrent,delay]。
进一步的,所述步骤S2中创建任务,具体为创建任务会要求填入所测试的直播流媒体协议类型、直播流地址;选择测试类型为性能测试或者延时测试,其中选择测试类型选项为复合选项,用户能选择任意一个测试类型,或者是两个都选;
当选中了性能测试的时候,会要求输入订阅并发数量live_count,进行预测评估,该预测评估具体的,需要用户输入一个终端带宽占用的系数limit,根据当前提供的直播流地址live_path来请求数据请求,通过预设时间的数据请求,获得一条流所需要的平均带宽avg;通过统计当前全部可用的在线终端的下行带宽总和M_Total,来预测评估达到的最高并发Q=M_Total/avg*limit,通过最高并发Q来判定是否满足订阅并发数量live_count,满足了用户的并发需求,则无需其他操作,如果不满足,则调整并发数值;
当选择了延时测试的时候,会要求输入检测时间间隔time_interval,即要求终端计每隔time_interval时间算一次延时;当完成执行的参数配置之后,配置执行的开始时间和结束时间,默认开始时间为当前时间,由用户自定义时间;当完成上述配置之后,即完成创建任务配置。
进一步的,所述步骤S3进一步具体为:监控任务调度时刻,定时去查询是否存在待执行的任务,如果存在当前时刻需要开始的任务,则触发任务执行,如果存在当前时刻需要结束的任务,则触发任务完成;如果任务要求中存在延时测试,则往每个终端下发获得直播流媒体协议类型、直播流地址、检测时间间隔、任务执行编号的数据请求;当任务在执行的时候,点击对应的任务能查看对应的任务详情,该任务详情中会分页显示目前正在执行的本任务对应终端执行情况,包括每个终端目前执行的任务详情;在任务执行详情的终端列表中,还支持指定关闭某个终端的任务,或者是降低某个终端的并发数;在任务详情页面显示实时并发的数量趋势图,会实时显示当前的并发数量和总的下行带宽情况,来获得流媒体的性能测试的情况;当任务到了完成时间,或者是用户主动地发起了任务结束,则进入到了报告整理环节;与此同时,将对应的终端的状态调整为空闲在线。
本发明还提供了一种直播流媒体的性能测试系统,所述性能测试系统包括流媒体订阅终端执行模块、信息管理和配置模块、性能测试模块、以及报告管理模块;
所述流媒体订阅终端执行模块,用于流媒体订阅终端等待接收服务端下发的命令,流媒体订阅终端收到命令执行对应的命令;
所述信息管理和配置模块,对每个流媒体订阅终端的信息进行管理,并创建任务,配置需要进行压力测试的压力测试数据,该压力测试数据包括直播流媒体协议类型、直播流地址、压测压力测试数量、压测压力测试时间;
所述性能测试模块,监控任务调度时刻,并下发调度命令,下发开始命令到对应终端,根据压力测试数据实现流媒体的性能测试,并在预置结束时间的时候往每个流媒体订阅终端发起结束命令;
所述报告管理模块,用于记录各个流媒体订阅终端在性能测试过程中的记录信息,进行统一的汇报呈现。
进一步的,所述流媒体订阅终端执行模块的实现方式进一步具体包括:流媒体订阅终端执行程序后,程序会针对当前的流媒体订阅终端电脑设备进行网络测速,统计当前电脑的上行带宽及下行带宽、CPU、内存;并向服务端中心发送当前终端的信息,该信息包含:IP、上行带宽、下行带宽、CPU、内存;每个流媒体订阅终端都是一个独立可执行的接口服务,终端以flask作为框架,对外提供接口服务,其中会提供一个给服务端中心查询终端性能情况的性能接口get_terminal_info。
进一步的,所述流媒体订阅终端能为服务端中心提供如下的调度接口:调度接口post_concurrent、调度接口get_concurrent、调度接口delete_concurrent、调度接口post_delay、调度接口delete_delay、调度接口get_delay_record;所述调度接口post_concurrent,用于接收服务端中心下发的执行并发请求,并解析直播流媒体关键字段,直播流媒体关键字段有:直播流媒体协议类型、直播流地址、订阅并发数量、任务执行编号,当解析到服务端下发的数据请求,则开启线程进行直播流媒体处理;所述调度接口get_concurrent,用于查询当前终端执行的具体任务详情,除了包含直播流媒体协议类型、直播流地址、订阅并发数量、任务执行编号之外还会附上当前终端实时的上行带宽、下行带宽、CPU、内存;所述调度接口delete_concurrent,用于接收服务端中心下发的关闭请求,并解析所述直播流媒体关键字段;所述调度接口post_delay,用于实现延时的统计,当接收到服务端中心请求,会解析延时关键字段,该延时关键字段包括:直播流媒体协议类型、直播流地址、检测时间间隔、任务执行编号;所述调度接口delete_delay,用于实现结束延时统计,当接收到服务端中心结束请求,并解析所述延时关键字段;所述调度接口get_delay_record,通过传递参数任务执行编号task_id查询到该终端本次延时测试的执行结果。
进一步的,所述信息管理和配置模块中对每个流媒体订阅终端的信息进行管理,该流媒体订阅终端的信息包括终端设备唯一标示、流媒体订阅终端电脑IP、设备信息device_info、用户信息user_info、在线状态state、离线时间leave_time;当有一个终端进行安装部署的时候,服务端中心会记录当前终端的对应信息入库,并定时和访问每个终端的当前信息,对应地进行信息的更新;所述测试方法设置有检测终端的能力,即一键遍历所有终端的get_terminal_info接口,当出现访问不到的时候,即将在线状态state字段改为离线leave状态,即代表该终端下线;当某一个终端被任务占用的时候,则该终端的在线状态state会改成对应运行的任务内容,即:运行性能测试则标识为[concurrent],运行延时测试则标识为[delay],两者都运行则标识为[concurrent,delay]。
进一步的,所述信息管理和配置模块中创建任务,具体为创建任务会要求填入所测试的直播流媒体协议类型、直播流地址;选择测试类型为性能测试或者延时测试,其中选择测试类型选项为复合选项,用户能选择任意一个测试类型,或者是两个都选;
当选中了性能测试的时候,会要求输入订阅并发数量live_count,进行预测评估,该预测评估具体的,需要用户输入一个终端带宽占用的系数limit,根据当前提供的直播流地址live_path来请求数据请求,通过预设时间的数据请求,获得一条流所需要的平均带宽avg;通过统计当前全部可用的在线终端的下行带宽总和M_Total,来预测评估达到的最高并发Q=M_Total/avg*limit,通过最高并发Q来判定是否满足订阅并发数量live_count,满足了用户的并发需求,则无需其他操作,如果不满足,则调整并发数值;
当选择了延时测试的时候,会要求输入检测时间间隔time_interval,即要求终端计每隔time_interval时间算一次延时;当完成执行的参数配置之后,配置执行的开始时间和结束时间,默认开始时间为当前时间,由用户自定义时间;当完成上述配置之后,即完成创建任务配置。
进一步的,所述性能测试模块进一步具体为:监控任务调度时刻,定时去查询是否存在待执行的任务,如果存在当前时刻需要开始的任务,则触发任务执行,如果存在当前时刻需要结束的任务,则触发任务完成;如果任务要求中存在延时测试,则往每个终端下发获得直播流媒体协议类型、直播流地址、检测时间间隔、任务执行编号的数据请求;当任务在执行的时候,点击对应的任务能查看对应的任务详情,该任务详情中会分页显示目前正在执行的本任务对应终端执行情况,包括每个终端目前执行的任务详情;在任务执行详情的终端列表中,还支持指定关闭某个终端的任务,或者是降低某个终端的并发数;在任务详情页面显示实时并发的数量趋势图,会实时显示当前的并发数量和总的下行带宽情况,来获得流媒体的性能测试的情况;当任务到了完成时间,或者是用户主动地发起了任务结束,则进入到了报告整理环节;与此同时,将对应的终端的状态调整为空闲在线。
本发明的有益效果在于:1、通过本发明提供的方法进行性能测试,在没有终端限制的情况下,可以通过简单的配置来实现流媒体的一个高并发性能测试。
2、通过本发明提供的方法进行性能测试,可以支持rtmp、hls、rtsp等多种流媒体协议的性能测试。
3、通过本发明提供的方法进行性能测试,由于不涉及到解码,可以有效的降低对终端电脑的CPU、内存等性能占用,可以视为对终端用户无感。
4、通过本发明提供的方法进行性能测试,对于企业公司而言,将有效的利用公司闲置的带宽来实现性能压测压力测试,可以有效的降低性能测试成本,甚至可以将其闲置的带宽进行商用变现。
5、通过本发明提供的方法进行性能测试,可以清晰的观察到整个性能渐进过程的一个服务端性能指标趋势。
6、通过本发明提供的方法进行性能测试,可以清晰的观察到每个终端的延时变化情况,通过时间戳来标识的时间节点也便于开发在拐点上的问题排查。
7、通过本发明提供的报告统计,测试人员可以宏观的了解到整个测试过程中的并发情况及对应时刻服务的性能指标,与此同时也可以快速的查阅任意一个终端的延时趋势。
8、通过本发明提供的方法进行性能测试,可以任意时刻发起任务测试,即使是人在家中睡,也可以实现性能测试的一个开始和结束,只需要醒来的时候去查看性能测试结果即可。
附图说明
图1是本发明的方法流程示意图。
图2是本发明的系统业务图。
图3是本发明的流媒体订阅终端执行模块的工作原理图。
图4是本发明的信息管理和配置模块中终端数据管理单元的工作原理图。
图5是本发明的信息管理和配置模块中任务数据管理单元的工作原理图。
图6是本发明的性能测试模块的工作原理图。
图7是本发明的报告管理模块的工作原理图。
具体实施方式
下面结合附图对本发明做进一步说明。
请参阅图1所示,本发明提供了一种直播流媒体的性能测试方法,所述性能测试方法包括如下步骤:
步骤S1、流媒体订阅终端等待接收服务端下发的命令,流媒体订阅终端收到命令执行对应的命令;
步骤S2、对每个流媒体订阅终端的信息进行管理,并创建任务,配置需要进行压力测试的压力测试数据,该压力测试数据包括直播流媒体协议类型、直播流地址、压测压力测试数量、压测压力测试时间;
步骤S3、监控任务调度时刻,并下发调度命令,下发开始命令到对应终端,根据压力测试数据实现流媒体的性能测试,并在预置结束时间的时候往每个流媒体订阅终端发起结束命令;
步骤S4、记录各个流媒体订阅终端在性能测试过程中的记录信息,进行统一的汇报呈现。
其中,所述步骤S1进一步具体包括:流媒体订阅终端执行程序后,程序会针对当前的流媒体订阅终端电脑设备进行网络测速,统计当前电脑的上行带宽及下行带宽、CPU、内存;并向服务端中心发送当前终端的信息,该信息包含:IP、上行带宽、下行带宽、CPU、内存;每个流媒体订阅终端都是一个独立可执行的接口服务,终端以flask作为框架,对外提供接口服务,其中会提供一个给服务端中心查询终端性能情况的性能接口get_terminal_info。
所述流媒体订阅终端能为服务端中心提供如下的调度接口:调度接口post_concurrent、调度接口get_concurrent、调度接口delete_concurrent、调度接口post_delay、调度接口delete_delay、调度接口get_delay_record;所述调度接口post_concurrent,用于接收服务端中心下发的执行并发请求,并解析直播流媒体关键字段,直播流媒体关键字段有:直播流媒体协议类型、直播流地址、订阅并发数量、任务执行编号,当解析到服务端下发的数据请求,则开启线程进行直播流媒体处理;所述调度接口get_concurrent,用于查询当前终端执行的具体任务详情,除了包含直播流媒体协议类型、直播流地址、订阅并发数量、任务执行编号之外还会附上当前终端实时的上行带宽、下行带宽、CPU、内存;所述调度接口delete_concurrent,用于接收服务端中心下发的关闭请求,并解析所述直播流媒体关键字段;所述调度接口post_delay,用于实现延时的统计,当接收到服务端中心请求,会解析延时关键字段,该延时关键字段包括:直播流媒体协议类型、直播流地址、检测时间间隔、任务执行编号;所述调度接口delete_delay,用于实现结束延时统计,当接收到服务端中心结束请求,并解析所述延时关键字段;所述调度接口get_delay_record,通过传递参数任务执行编号task_id查询到该终端本次延时测试的执行结果。
所述步骤S2中对每个流媒体订阅终端的信息进行管理,该流媒体订阅终端的信息包括终端设备唯一标示、流媒体订阅终端电脑IP、设备信息device_info、用户信息user_info、在线状态state、离线时间leave_time;当有一个终端进行安装部署的时候,服务端中心会记录当前终端的对应信息入库,并定时和访问每个终端的当前信息,对应地进行信息的更新;所述测试方法设置有检测终端的能力,即一键遍历所有终端的get_terminal_info接口,当出现访问不到的时候,即将在线状态state字段改为离线leave状态,即代表该终端下线;当某一个终端被任务占用的时候,则该终端的在线状态state会改成对应运行的任务内容,即:运行性能测试则标识为[concurrent],运行延时测试则标识为[delay],两者都运行则标识为[concurrent,delay]。
所述步骤S2中创建任务,具体为创建任务会要求填入所测试的直播流媒体协议类型、直播流地址;选择测试类型为性能测试或者延时测试,其中选择测试类型选项为复合选项,用户能选择任意一个测试类型,或者是两个都选;
当选中了性能测试的时候,会要求输入订阅并发数量live_count,进行预测评估,该预测评估具体的,需要用户输入一个终端带宽占用的系数limit,根据当前提供的直播流地址live_path来请求数据请求,通过预设时间的数据请求,获得一条流所需要的平均带宽avg;通过统计当前全部可用的在线终端的下行带宽总和M_Total,来预测评估达到的最高并发Q=M_Total/avg*limit,通过最高并发Q来判定是否满足订阅并发数量live_count,满足了用户的并发需求,则无需其他操作,如果不满足,则调整并发数值;
当选择了延时测试的时候,会要求输入检测时间间隔time_interval,即要求终端计每隔time_interval时间算一次延时;当完成执行的参数配置之后,配置执行的开始时间和结束时间,默认开始时间为当前时间,由用户自定义时间;当完成上述配置之后,即完成创建任务配置。
另外,所述步骤S3进一步具体为:监控任务调度时刻,定时去查询是否存在待执行的任务,如果存在当前时刻需要开始的任务,则触发任务执行,如果存在当前时刻需要结束的任务,则触发任务完成;再则,当触发开始任务执行的时候,比如有一个10000并发的需求,目前线上存在300个终端,每个终端平均能够支持100个并发。但是任务配置的limit为50%,则系统会依次循环调用200(10000/100/50%)个终端,分别下发并发数为50的请求去下发命令,并将当前任务的ID也作为参数下发给终端,即下发数据如表1所示。与此同时,对应的每个终端的状态被置为[concurrent]。较优的,假设部分终端的带宽较差,存在参差不齐的情况,实际给对应终端下发并发数也会以对应终端的下行带宽/avg*limit,不会出现超负荷的情况;
如果任务要求中存在延时测试,则往每个终端下发获得直播流媒体协议类型、直播流地址、检测时间间隔、任务执行编号的数据请求;当任务在执行的时候,点击对应的任务能查看对应的任务详情,该任务详情中会分页显示目前正在执行的本任务对应终端执行情况,包括每个终端目前执行的任务详情;在任务执行详情的终端列表中,还支持指定关闭某个终端的任务,或者是降低某个终端的并发数;在任务详情页面显示实时并发的数量趋势图,会实时显示当前的并发数量和总的下行带宽情况,来获得流媒体的性能测试的情况;当任务到了完成时间,或者是用户主动地发起了任务结束,则进入到了报告整理环节;与此同时,将对应的终端的状态调整为空闲在线。
其中,所述步骤S4还包括有:1、当完成任务发起结束之后,该方法会将整个过程的并发趋势和服务性能趋势保存入库,并以趋势图的方式显示在报告首页;
2、再则,该方法会拿着task_id请求每个终端的,取到整个过程的延时情况。然后该方法会把所有的时间点和延时数据显示为趋势图,并输出平均延时、中位延时、最高延时、最低延时等;
3、其次,报告会计算所有终端的平均延时,由上往下的列出终端详情,并可以点击查看具体终端的延时详情趋势;
4、最后,报告生成完的时候,会推送到指定的人员,告知任务完成的情况。
请参阅图2所示,本发明的一种直播流媒体的性能测试系统,所述性能测试系统包括流媒体订阅终端执行模块、信息管理和配置模块、性能测试模块、以及报告管理模块;
所述流媒体订阅终端执行模块,用于流媒体订阅终端等待接收服务端下发的命令,流媒体订阅终端收到命令执行对应的命令;
所述信息管理和配置模块,对每个流媒体订阅终端的信息进行管理,并创建任务,配置需要进行压力测试的压力测试数据,该压力测试数据包括直播流媒体协议类型、直播流地址、压测压力测试数量、压测压力测试时间;
所述性能测试模块,监控任务调度时刻,并下发调度命令,下发开始命令到对应终端,根据压力测试数据实现流媒体的性能测试,并在预置结束时间的时候往每个流媒体订阅终端发起结束命令;
所述报告管理模块,用于记录各个流媒体订阅终端在性能测试过程中的记录信息,进行统一的汇报呈现。
下面结合一具体实施例对本发明做进一步说明:
一种直播流媒体的性能测试系统,通过系统业务平台化管理(详见图2系统业务图),实现以下模块的统一管理:1、流媒体订阅终端执行模块、2、信息管理和配置模块、3、性能测试模块、4、报告管理模块。首先,流媒体订阅终端执行模块指的是具体执行流媒体订阅的终端,再则业务后台上可以创建任务,配置需要压力测试的流媒体协议、地址、压力测试数量、压力测试时间等;然后由性能测试模块执行调度终端去执行对应的命令,实现流媒体的性能测试;最后,记录各个终端在性能测试过程中的记录信息,统一汇总并生成一份报告。
本发明的具体实现步骤如下:
一种直播的性能自动化测试系统主要包含【流媒体订阅终端执行模块】、【信息管理和配置模块】、【性能测试模块】、【报告管理模块】四个模块。其中【流媒体订阅终端执行模块】负责接收服务端下发命令,并执行对应的命令;【信息管理和配置模块】则负责管理当前注册的终端信息,同时支持创建可调度在线终端的任务;而【性能测试模块】则是用于监控任务调度时刻,并下发调度下发开始命令到对应终端,并在预置结束时间的时候往每个终端发起结束命令;最后当任务完成之后,每个终端会汇报此次的执行结果,并由【报告管理模块】进行统一的汇报呈现。
【流媒体订阅终端执行模块】(详见图3),该终端为一个单击执行的exe程序,双击运行即可完成终端的部署与运行,具体如下内容:
1、首先,当双击系统程序后,程序会针对当前的电脑设备进行网络测速,统计当前电脑的上行带宽及下行带宽、CPU、内存等;
2、继上,向服务端中心发送当前终端的信息,包含:IP、上、下行带宽、CPU、内存;
3、继上,每个终端都是一个独立可执行的接口服务,本系统以flask作为框架(flask仅仅只是实现接口一个框架,可不局限于flask),对外提供接口服务,其中会提供一个给服务端中心查询终端性能情况的性能接口get_terminal_info;
4.1、继上,终端提供一个给服务端中心调度的调度接口post_concurrent,用于接收服务中心下发的执行并发请求,并解析流媒体关键字段,主要的关键字段有:直播流媒体协议类型(live_type)、直播流地址(live_path)、订阅并发数量(live_count)、任务执行编号(task_id)。较优的,本系统支持目前热门的直播流媒体协议类型,包含但不局限于rtmp、hls、rtsp等,如下表;
live_type | live_path | live_count | task_id |
rtmp | rtmp://*** | 50 | task_id_1 |
hls | http://*** | 50 | task_id_2 |
rtsp | rtsp://*** | 50 | task_id_3 |
表1
4.2、继上,当解析到服务下发的数据请求,如表1中的行1数据,系统则依次开启50个线程,在每开启一个线程的时候,都会往全局变量lives(lives是一个并发执行线程列表,用于管理统计当前在运行的线程)下key为rtmp的字段列表中新增一个以时间戳为线程唯一标识的元素,同时通过调用cv2打开live_path进行媒体订阅。过程中会监听本线程标识是否存在于lives[“rtmp”]中,当不存在的时候进行退订,并结束当前的线程。较优的,以字典的方式来定义lives,有利于协议扩展,除了还支持lives[“hls”]和lives[“rtsp”],当传入一个新的协议“new”,也可以直接扩展lives[“new”],无需更改代码;
5、继上,终端提供一个给服务端中心调度的调度接口get_concurrent,用于查询当前终端执行的具体任务详情,除了包含live_type、live_path、live_count、task_id之外还会附上当前终端实时的上、下行带宽、CPU、内存等;
6、继上,终端提供一个给服务端中心调度的调度接口delete_concurrent,用于接收服务中心下发的关闭请求,并解析流媒体关键字段,其中关键字段同表1。以表1中的行1数据为例,将依次移除掉lives[“rtmp”]中的元素,以便于实现对应线程的退订。
7、继上,终端提供一个给服务端中心调度的调度接口post_delay,该接口主要用于实现延时的统计,当接收到服务中心请求,会解析延时关键字段如下,直播流媒体协议类型(live_type)、直播流地址(live_path)、检测时间间隔(time_interval,单位秒)、任务执行编号(task_id);举例,当接收到数据如表2的第一行,则会开启一个线程,并通过cv2订阅rtmp的流,并每隔1秒取当前的图像,与此同时调用ocr能力识别图像中的时间戳,并与当前系统的时间戳进行比对,输出时间差,并加到列表time_statistics中(time_statistics为一个list,具体例子[{“time”:“***”,“time_line”:2},{“time”:“***”,“time_line”:2}...],即表示每个时刻的延时)。
live_type | live_path | time_interval | task_id |
rtmp | rtmp://*** | 1 | task_id_1 |
hls | http://*** | 1 | task_id_2 |
rtsp | rtsp://*** | 1 | task_id_3 |
表2
8、继上,终端提供给服务端中心调度的调度接口delete_delay,该接口主要用于实现结束延时统计,当接收到服务中心结束请求,并解析延时关键字段,其中关键字段同表2。以表2中的行1数据为例,会结束当前的延时统计,并以task_id为文件名记录此次的延时统计结果。并提供给服务端中心调度的调度接口get_delay_record,通过传参task_id可以查询到该终端本次延时测试的执行结果。
【信息管理和配置模块】,包含如下内容:
1、信息管理和配置模块指的是服务端中心中负责管理数据信息的模块,具体又分为【终端数据管理单元】(详见图4)和【任务数据管理单元】(详见图5)两个子模块;
2.1、【终端数据管理单元】负责每个终端的信息管理(详见表2、包含但不局限于终端设备id-唯一表示、ip-电脑IP、device_info-设备信息(指上、下行带宽、CPU、内存等信息)、user_info-用户信息、state-在线状态、leave_time-离线时间)。首先,当有一个终端进行安装部署的时候,即完成【流媒体订阅终端执行模块】中1-2环节后,服务端中心会记录当前终端的对应信息入库,并定时和访问每个终端的当前信息(即通过上文所描述的get_terminal_info接口来获取更新数据),对应地进行信息的更新;
表3
2.2、继上,系统提供一键检测终端的能力,具体为一键遍历所有终端的get_terminal_info接口,当出现访问不到的时候,即将state字段改为leave状态,即代表该终端下线。较优的,虽然每个终端信息是由终端自动提交上来的,系统仍支持对终端的用户信息进行编辑补充,当有需求的时候,及时是终端下线了,也可以及时咨询到对应的人员进行恢复;
2.3、继上,当某一个终端被任务占用的时候,则该终端的state会改成对应运行的任务内容,即:运行性能测试则标识为[concurrent],运行延时测试则标识为[delay],两者都运行则标识为[concurrent,delay];
3.1、【任务数据管理单元】负责任务的创建、修改等;
3.2、首先,创建任务会要求填入所测试的流媒体类型live_type、流媒体地址live_path。然后可以选择测试类型为[性能测试]或者[延时测试]。较优的,本系统提供的选项为复合选项,用户可以其中任意一个测试类型,或者是两个都选;
3.3、继上,当选中了[性能测试]的时候,会要求输入并发量级live_count,比如输入10000。但系统是否支持如此大的量级,还需要根据所有终端的实际情况来评估,较优的,系统还提供预测评估的功能。具体的,需要用户先输入一个终端带宽占用的系数limit,然后系统会根据当前提供的live_path来请求数据请求,通过一段时间的数据请求,计算出一条流所需要的平均带宽avg(举例:发起10个live_path请求,并持续30秒,根据这个过程总计消耗的下行带宽M,计算出平均带宽要求,avg=M/10/30)。系统会统计当前全部可用的在线终端的下行带宽总和M_Total,来预估可以达到的最高并发Q=M_Total/avg*limit(较优的,为了不影响终端的使用,一般不会把终端的带宽全部占满,故而有设置limit的过程,即每台终端只取总带宽的百分比,比如70%)。此时如果满足了用户的并发需求,则无需其他操作,如果不满足,则可以调整并发数值,当然也可以通知更多的人去安装注册终端以满足并发需求;
3.3、继上,当选择了[延时测试]的时候,会要求输入统计时间time_interval,比如输入1,即要求终端1S中计算一次延时;
3.4、继上,较优的,系统还提供一个可选配置,支持提供当前直播服务的性能检测接口,其中包含内存、CPU、带宽等;
3.5、继上,较优的,系统提供一个压力测试模式,默认模式、渐进模式。当配置默认模式(默认模式即设置多少并发,一开始就直接压多少)的时候,无需填写其他参数,但选择渐进模式的时候,需要输入渐进的百分比序列,和时间间隔,比如百分比序列:[0.1,0.2,0.4,0.8,1],时间间隔:60S;
3.6、继上,当完成执行的参数配置之后,系统支持配置执行的开始时间和结束时间,默认开始时间为当前时间,可以由用户自定义时间。当完成上述配置之后,点击[保存]即完成任务配置。
三、【终端调度模块】(详见图6),包含如下内容:
1、终端调度模块也分为两个小模块,时间监控模块和任务调度模块;
2、首先,时间监控模块会定时去查询是否存在待执行的任务,如果存在当前时刻需要开始的任务,则触发任务执行,如果存在当前时刻需要结束的任务,则触发任务完成;
3、再则,当触发开始任务执行的时候,比如有一个10000并发的需求,目前线上存在300个终端,每个终端平均能够支持100个并发。但是任务配置的limit为50%,则系统会依次循环调用200(10000/100/50%)个终端,分别下发并发数为50的请求去下发命令,并将当前任务的ID也作为参数下发给终端,即下发数据如表1所示。与此同时,对应的每个终端的状态被置为[concurrent]。较优的,假设部分终端的带宽较差,存在参差不齐的情况,实际给对应终端下发并发数也会以对应终端的下行带宽/avg*limit,不会出现超负荷的情况;
4、继上,如果任务要求中存在[延时测试],则往每个终端下发一个同表2所示的数据请求;
5、继上,当任务在执行的时候,点击对应的任务可以查看对应的任务详情,该任务详情中会分页显示目前正在执行的本任务对应终端执行情况,包括每个终端目前执行的任务详情;较优的除了任务到点后系统终端调用关闭终端外,还支持手动立即结束任务;
6、继上,在任务执行详情的终端列表中,较优的,系统还支持指定关闭某个终端的任务,或者是降低某个终端的并发数;
7、继上,在任务详情页面显示实时并发的数量趋势图,尤其是在【信息管理和配置模块】3.5中配置的渐进模拟,会实时显示当前的并发数量和总的下行带宽情况;
8、继上,若在【信息管理和配置模块】的3.4中有配置了对应的服务性能接口,则还会在任务详情页面显示实时的服务性能趋势图;
9、继上,当任务到了完成时间,或者是用户主动地发起了任务结束,则进入到了报告整理环节。与此同时,将对应的终端模块的状态调整为空闲在线,即online。
四、【报告管理模块】(详见图7),包含如下内容:
1、当完成任务发起结束之后,系统会将整个过程的并发趋势和服务性能趋势保存入库,并以趋势图的方式显示在报告首页;
2、再则,系统会拿着task_id请求每个终端的,取到整个过程的延时情况。然后系统会把所有的时间点和延时数据显示为趋势图,并输出平均延时、中位延时、最高延时、最低延时等;
3、其次,报告会计算所有终端的平均延时,由上往下的列出终端详情,并可以点击查看具体终端的延时详情趋势;
4、最后,报告生成完的时候,会推送到指定的人员,告知任务完成的情况。
本发明的应用场景如下:
场景一:
同学小A负责一个直播产品的测试,该产品主要是以app端和web端来实现的,使用的直播流是rtmp协议,在上线前产品方要求小A针对当前产品进行一个性能摸底。小A拉上整个部门的300个同事使用app和web端来订阅直播间的方式来进行性能压力测试,可是就算如此,订阅数量也完全达不到产品方要求的10000并发的压力测试需求。
通过本专利的方案,小A提供本专利的终端,让同事进行对应的安装,然后小A直接将需要压力测试的rtmp地址配置到后台,以后台下发命令的方式,结果发现每个同事的电脑可以直接并发50个流媒体,故此只要占用200个同事的电脑带宽就轻轻松松的完成了上述的产品压力测试需求。
场景二:
测试负责人小B负责直播业务的测试,该产品涉及到直播互动的功能,对直播的延时要求非常的高,要求小B对直播的延时进行评估。小B通过直播推流桌面时间的方式,从观看端去观看推流和订阅的一个时间差,从而计算出大致的一个延时时间,但是过程记录繁琐。与此同时,产品上线之后,项目方对于小B提供的延时报告产生质疑,线上用户延时明显比他统计的时间要久,经过排查发现,当并发量上去后,延时会出现滞后,但是小B测试的时候并没有较大的并发场景。
通过本专利的方案,同学小B可以配置一个渐进式的性能压力测试场景,比如:从用户1、10、100、1000、10000进行阶段性时间的递增,并验证这个过程的一个延时变化情况,就可以提前发现线上用户并发场景存在延时时间久的情况。
场景三:
测试负责人小C负责直播业务的测试,同时小C也具备一定的脚本开发能力,小C想对自己的直播服务进行性能测试,使用了jmeter进行了一个直播压力测试,并渐进式的去增加了并发数值,但是发现对服务产生的压力并没有提高,后来才发现,是自己的电脑下行带宽限制,还导致自己的电脑巨卡。
通过本专利的方案,同学小C可以提前预知自己电脑的一个可承载的并发上限,并通过多终端调度的方式来实现性能压力测试需求。
场景四:
测试负责人小D负责直播业务的测试,与此同时小D也是具备一定的脚本开发能力,小D深知直播业务对带宽性能的要求,故而向公司申请多台高带宽的设备,并在上面部署了jmeter压力测试环境,并进行了压力测试,但是此过程中产生了较大的时间和设备资源成本的投入。
通过本专利的方案,同学小D可以要求公司部门或者项目的同事,手动双击安装一下对应的终端设备,设置一下性能测试任务的开始时间,等同事们下班的时候,进行对应的性能测试。或者是在上班的时候适当降低limit值,只是占用同事的一部分带宽,同事无感的情况下,就完成了性能压力测试。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (12)
1.一种直播流媒体的性能测试方法,其特征在于:所述性能测试方法包括如下步骤:
步骤S1、流媒体订阅终端等待接收服务端下发的命令,流媒体订阅终端收到命令执行对应的命令;
步骤S2、对每个流媒体订阅终端的信息进行管理,并创建任务,配置需要进行压力测试的压力测试数据,该压力测试数据包括直播流媒体协议类型、直播流地址、压测压力测试数量、压测压力测试时间;
步骤S3、监控任务调度时刻,并下发调度命令,下发开始命令到对应终端,根据压力测试数据实现流媒体的性能测试,并在预置结束时间的时候往每个流媒体订阅终端发起结束命令;
步骤S4、记录各个流媒体订阅终端在性能测试过程中的记录信息,进行统一的汇报呈现。
2.根据权利要求1所述的一种直播流媒体的性能测试方法,其特征在于:所述步骤S1进一步具体包括:流媒体订阅终端执行程序后,程序会针对当前的流媒体订阅终端电脑设备进行网络测速,统计当前电脑的上行带宽及下行带宽、CPU、内存;并向服务端中心发送当前终端的信息,该信息包含:IP、上行带宽、下行带宽、CPU、内存;每个流媒体订阅终端都是一个独立可执行的接口服务,终端以flask作为框架,对外提供接口服务,其中会提供一个给服务端中心查询终端性能情况的性能接口get_terminal_info。
3.根据权利要求1所述的一种直播流媒体的性能测试方法,其特征在于:所述流媒体订阅终端能为服务端中心提供如下的调度接口:调度接口post_concurrent、调度接口get_concurrent、调度接口delete_concurrent、调度接口post_delay、调度接口delete_delay、调度接口get_delay_record;所述调度接口post_concurrent,用于接收服务端中心下发的执行并发请求,并解析直播流媒体关键字段,直播流媒体关键字段有:直播流媒体协议类型、直播流地址、订阅并发数量、任务执行编号,当解析到服务端下发的数据请求,则开启线程进行直播流媒体处理;所述调度接口get_concurrent,用于查询当前终端执行的具体任务详情,除了包含直播流媒体协议类型、直播流地址、订阅并发数量、任务执行编号之外还会附上当前终端实时的上行带宽、下行带宽、CPU、内存;所述调度接口delete_concurrent,用于接收服务端中心下发的关闭请求,并解析所述直播流媒体关键字段;所述调度接口post_delay,用于实现延时的统计,当接收到服务端中心请求,会解析延时关键字段,该延时关键字段包括:直播流媒体协议类型、直播流地址、检测时间间隔、任务执行编号;所述调度接口delete_delay,用于实现结束延时统计,当接收到服务端中心结束请求,并解析所述延时关键字段;所述调度接口get_delay_record,通过传递参数任务执行编号task_id查询到该终端本次延时测试的执行结果。
4.根据权利要求2所述的一种直播流媒体的性能测试方法,其特征在于:所述步骤S2中对每个流媒体订阅终端的信息进行管理,该流媒体订阅终端的信息包括终端设备唯一标示、流媒体订阅终端电脑IP、设备信息device_info、用户信息user_info、在线状态state、离线时间leave_time;当有一个终端进行安装部署的时候,服务端中心会记录当前终端的对应信息入库,并定时和访问每个终端的当前信息,对应地进行信息的更新;所述测试方法设置有检测终端的能力,即一键遍历所有终端的get_terminal_info接口,当出现访问不到的时候,即将在线状态state字段改为离线leave状态,即代表该终端下线;当某一个终端被任务占用的时候,则该终端的在线状态state会改成对应运行的任务内容,即:运行性能测试则标识为[concurrent],运行延时测试则标识为[delay],两者都运行则标识为[concurrent,delay]。
5.根据权利要求3所述的一种直播流媒体的性能测试方法,其特征在于:所述步骤S2中创建任务,具体为创建任务会要求填入所测试的直播流媒体协议类型、直播流地址;选择测试类型为性能测试或者延时测试,其中选择测试类型选项为复合选项,用户能选择任意一个测试类型,或者是两个都选;
当选中了性能测试的时候,会要求输入订阅并发数量live_count,进行预测评估,该预测评估具体的,需要用户输入一个终端带宽占用的系数limit,根据当前提供的直播流地址live_path来请求数据请求,通过预设时间的数据请求,获得一条流所需要的平均带宽avg;通过统计当前全部可用的在线终端的下行带宽总和M_Total,来预测评估达到的最高并发Q=M_Total/avg*limit,通过最高并发Q来判定是否满足订阅并发数量live_count,满足了用户的并发需求,则无需其他操作,如果不满足,则调整并发数值;
当选择了延时测试的时候,会要求输入检测时间间隔time_interval,即要求终端计每隔time_interval时间算一次延时;当完成执行的参数配置之后,配置执行的开始时间和结束时间,默认开始时间为当前时间,由用户自定义时间;当完成上述配置之后,即完成创建任务配置。
6.根据权利要求3所述的一种直播流媒体的性能测试方法,其特征在于:所述步骤S3进一步具体为:监控任务调度时刻,定时去查询是否存在待执行的任务,如果存在当前时刻需要开始的任务,则触发任务执行,如果存在当前时刻需要结束的任务,则触发任务完成;如果任务要求中存在延时测试,则往每个终端下发获得直播流媒体协议类型、直播流地址、检测时间间隔、任务执行编号的数据请求;当任务在执行的时候,点击对应的任务能查看对应的任务详情,该任务详情中会分页显示目前正在执行的本任务对应终端执行情况,包括每个终端目前执行的任务详情;在任务执行详情的终端列表中,还支持指定关闭某个终端的任务,或者是降低某个终端的并发数;在任务详情页面显示实时并发的数量趋势图,会实时显示当前的并发数量和总的下行带宽情况,来获得流媒体的性能测试的情况;当任务到了完成时间,或者是用户主动地发起了任务结束,则进入到了报告整理环节;与此同时,将对应的终端的状态调整为空闲在线。
7.一种直播流媒体的性能测试系统,其特征在于:所述性能测试系统包括流媒体订阅终端执行模块、信息管理和配置模块、性能测试模块、以及报告管理模块;
所述流媒体订阅终端执行模块,用于流媒体订阅终端等待接收服务端下发的命令,流媒体订阅终端收到命令执行对应的命令;
所述信息管理和配置模块,对每个流媒体订阅终端的信息进行管理,并创建任务,配置需要进行压力测试的压力测试数据,该压力测试数据包括直播流媒体协议类型、直播流地址、压测压力测试数量、压测压力测试时间;
所述性能测试模块,监控任务调度时刻,并下发调度命令,下发开始命令到对应终端,根据压力测试数据实现流媒体的性能测试,并在预置结束时间的时候往每个流媒体订阅终端发起结束命令;
所述报告管理模块,用于记录各个流媒体订阅终端在性能测试过程中的记录信息,进行统一的汇报呈现。
8.根据权利要求7所述的一种直播流媒体的性能测试系统,其特征在于:所述流媒体订阅终端执行模块的实现方式进一步具体包括:流媒体订阅终端执行程序后,程序会针对当前的流媒体订阅终端电脑设备进行网络测速,统计当前电脑的上行带宽及下行带宽、CPU、内存;并向服务端中心发送当前终端的信息,该信息包含:IP、上行带宽、下行带宽、CPU、内存;每个流媒体订阅终端都是一个独立可执行的接口服务,终端以flask作为框架,对外提供接口服务,其中会提供一个给服务端中心查询终端性能情况的性能接口get_terminal_info。
9.根据权利要求7所述的一种直播流媒体的性能测试系统,其特征在于:所述流媒体订阅终端能为服务端中心提供如下的调度接口:调度接口post_concurrent、调度接口get_concurrent、调度接口delete_concurrent、调度接口post_delay、调度接口delete_delay、调度接口get_delay_record;所述调度接口post_concurrent,用于接收服务端中心下发的执行并发请求,并解析直播流媒体关键字段,直播流媒体关键字段有:直播流媒体协议类型、直播流地址、订阅并发数量、任务执行编号,当解析到服务端下发的数据请求,则开启线程进行直播流媒体处理;所述调度接口get_concurrent,用于查询当前终端执行的具体任务详情,除了包含直播流媒体协议类型、直播流地址、订阅并发数量、任务执行编号之外还会附上当前终端实时的上行带宽、下行带宽、CPU、内存;所述调度接口delete_concurrent,用于接收服务端中心下发的关闭请求,并解析所述直播流媒体关键字段;所述调度接口post_delay,用于实现延时的统计,当接收到服务端中心请求,会解析延时关键字段,该延时关键字段包括:直播流媒体协议类型、直播流地址、检测时间间隔、任务执行编号;所述调度接口delete_delay,用于实现结束延时统计,当接收到服务端中心结束请求,并解析所述延时关键字段;所述调度接口get_delay_record,通过传递参数任务执行编号task_id查询到该终端本次延时测试的执行结果。
10.根据权利要求8所述的一种直播流媒体的性能测试系统,其特征在于:所述信息管理和配置模块中对每个流媒体订阅终端的信息进行管理,该流媒体订阅终端的信息包括终端设备唯一标示、流媒体订阅终端电脑IP、设备信息device_info、用户信息user_info、在线状态state、离线时间leave_time;当有一个终端进行安装部署的时候,服务端中心会记录当前终端的对应信息入库,并定时和访问每个终端的当前信息,对应地进行信息的更新;所述测试方法设置有检测终端的能力,即一键遍历所有终端的get_terminal_info接口,当出现访问不到的时候,即将在线状态state字段改为离线leave状态,即代表该终端下线;当某一个终端被任务占用的时候,则该终端的在线状态state会改成对应运行的任务内容,即:运行性能测试则标识为[concurrent],运行延时测试则标识为[delay],两者都运行则标识为[concurrent,delay]。
11.根据权利要求9所述的一种直播流媒体的性能测试系统,其特征在于:所述信息管理和配置模块中创建任务,具体为创建任务会要求填入所测试的直播流媒体协议类型、直播流地址;选择测试类型为性能测试或者延时测试,其中选择测试类型选项为复合选项,用户能选择任意一个测试类型,或者是两个都选;
当选中了性能测试的时候,会要求输入订阅并发数量live_count,进行预测评估,该预测评估具体的,需要用户输入一个终端带宽占用的系数limit,根据当前提供的直播流地址live_path来请求数据请求,通过预设时间的数据请求,获得一条流所需要的平均带宽avg;通过统计当前全部可用的在线终端的下行带宽总和M_Total,来预测评估达到的最高并发Q=M_Total/avg*limit,通过最高并发Q来判定是否满足订阅并发数量live_count,满足了用户的并发需求,则无需其他操作,如果不满足,则调整并发数值;
当选择了延时测试的时候,会要求输入检测时间间隔time_interval,即要求终端计每隔time_interval时间算一次延时;当完成执行的参数配置之后,配置执行的开始时间和结束时间,默认开始时间为当前时间,由用户自定义时间;当完成上述配置之后,即完成创建任务配置。
12.根据权利要求9所述的一种直播流媒体的性能测试系统,其特征在于:所述性能测试模块进一步具体为:监控任务调度时刻,定时去查询是否存在待执行的任务,如果存在当前时刻需要开始的任务,则触发任务执行,如果存在当前时刻需要结束的任务,则触发任务完成;如果任务要求中存在延时测试,则往每个终端下发获得直播流媒体协议类型、直播流地址、检测时间间隔、任务执行编号的数据请求;当任务在执行的时候,点击对应的任务能查看对应的任务详情,该任务详情中会分页显示目前正在执行的本任务对应终端执行情况,包括每个终端目前执行的任务详情;在任务执行详情的终端列表中,还支持指定关闭某个终端的任务,或者是降低某个终端的并发数;在任务详情页面显示实时并发的数量趋势图,会实时显示当前的并发数量和总的下行带宽情况,来获得流媒体的性能测试的情况;当任务到了完成时间,或者是用户主动地发起了任务结束,则进入到了报告整理环节;与此同时,将对应的终端的状态调整为空闲在线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110170990.3A CN112954311B (zh) | 2021-02-08 | 2021-02-08 | 一种直播流媒体的性能测试方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110170990.3A CN112954311B (zh) | 2021-02-08 | 2021-02-08 | 一种直播流媒体的性能测试方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112954311A true CN112954311A (zh) | 2021-06-11 |
CN112954311B CN112954311B (zh) | 2023-06-02 |
Family
ID=76243412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110170990.3A Active CN112954311B (zh) | 2021-02-08 | 2021-02-08 | 一种直播流媒体的性能测试方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112954311B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596117A (zh) * | 2021-07-14 | 2021-11-02 | 北京淇瑀信息科技有限公司 | 实时数据处理方法、系统、设备及介质 |
CN113709514A (zh) * | 2021-09-02 | 2021-11-26 | 北京一起教育科技有限责任公司 | 一种数据处理方法、装置和电子设备 |
CN114416587A (zh) * | 2022-01-26 | 2022-04-29 | 吉旗(成都)科技有限公司 | 流媒体数据测试方法、装置、电子设备及存储介质 |
CN115396333A (zh) * | 2022-08-24 | 2022-11-25 | 北京智芯微电子科技有限公司 | 用于通信网络延时测试的可视化芯片、方法和交换机 |
WO2023000890A1 (zh) * | 2021-07-19 | 2023-01-26 | 北京字节跳动网络技术有限公司 | 网络直播的页面显示方法、装置和客户端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101291260A (zh) * | 2007-09-25 | 2008-10-22 | 深圳市同洲电子股份有限公司 | 一种用于流媒体服务的负载测试系统以及测试方法 |
CN105306299A (zh) * | 2015-11-02 | 2016-02-03 | 上海聚力传媒技术有限公司 | 一种流媒体服务器性能测试方法及测试系统 |
CN108900382A (zh) * | 2018-07-18 | 2018-11-27 | 腾讯科技(深圳)有限公司 | 测试方法及其装置 |
CN112153410A (zh) * | 2020-09-30 | 2020-12-29 | 郑州信大捷安信息技术股份有限公司 | 一种流媒体服务高并发测试方法和系统 |
-
2021
- 2021-02-08 CN CN202110170990.3A patent/CN112954311B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101291260A (zh) * | 2007-09-25 | 2008-10-22 | 深圳市同洲电子股份有限公司 | 一种用于流媒体服务的负载测试系统以及测试方法 |
CN105306299A (zh) * | 2015-11-02 | 2016-02-03 | 上海聚力传媒技术有限公司 | 一种流媒体服务器性能测试方法及测试系统 |
CN108900382A (zh) * | 2018-07-18 | 2018-11-27 | 腾讯科技(深圳)有限公司 | 测试方法及其装置 |
CN112153410A (zh) * | 2020-09-30 | 2020-12-29 | 郑州信大捷安信息技术股份有限公司 | 一种流媒体服务高并发测试方法和系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596117A (zh) * | 2021-07-14 | 2021-11-02 | 北京淇瑀信息科技有限公司 | 实时数据处理方法、系统、设备及介质 |
CN113596117B (zh) * | 2021-07-14 | 2023-09-08 | 北京淇瑀信息科技有限公司 | 实时数据处理方法、系统、设备及介质 |
WO2023000890A1 (zh) * | 2021-07-19 | 2023-01-26 | 北京字节跳动网络技术有限公司 | 网络直播的页面显示方法、装置和客户端 |
CN113709514A (zh) * | 2021-09-02 | 2021-11-26 | 北京一起教育科技有限责任公司 | 一种数据处理方法、装置和电子设备 |
CN113709514B (zh) * | 2021-09-02 | 2023-06-23 | 北京一起教育科技有限责任公司 | 一种数据处理方法、装置和电子设备 |
CN114416587A (zh) * | 2022-01-26 | 2022-04-29 | 吉旗(成都)科技有限公司 | 流媒体数据测试方法、装置、电子设备及存储介质 |
CN115396333A (zh) * | 2022-08-24 | 2022-11-25 | 北京智芯微电子科技有限公司 | 用于通信网络延时测试的可视化芯片、方法和交换机 |
CN115396333B (zh) * | 2022-08-24 | 2024-01-16 | 北京智芯微电子科技有限公司 | 用于通信网络延时测试的可视化芯片、方法和交换机 |
Also Published As
Publication number | Publication date |
---|---|
CN112954311B (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112954311A (zh) | 一种直播流媒体的性能测试方法及其系统 | |
CN109726103B (zh) | 测试报告的生成方法、装置、设备及存储介质 | |
US10372600B2 (en) | Systems and methods for automated web performance testing for cloud apps in use-case scenarios | |
CN108182140B (zh) | 确定和监测计算机资源服务的性能能力 | |
CN109819057B (zh) | 一种负载均衡方法及系统 | |
KR100551454B1 (ko) | 서버의 응용프로그램 성능을 시험하기 위한 그리드 컴퓨팅제어방법 및 그 서비스방법 | |
Picoreti et al. | Multilevel observability in cloud orchestration | |
CN111400186A (zh) | 性能测试方法及系统 | |
CN105607994A (zh) | 一种移动终端软件测试方法和系统 | |
CN109615022B (zh) | 模型上线配置方法和装置 | |
CN110147327B (zh) | 一种基于多粒度的web自动化测试管理方法 | |
US20070189509A1 (en) | Data path identification and analysis for distributed applications | |
US10489179B1 (en) | Virtual machine instance data aggregation based on work definition metadata | |
CN113127356A (zh) | 压测方法、装置、电子设备及存储介质 | |
CN104106245B (zh) | 管理由多个应用程序进程使用的网络连接的方法和设备 | |
CN108964967A (zh) | 一种对cdn加速服务进行智能监控与分析的方法和系统 | |
KR100551452B1 (ko) | 서버의 응용프로그램 성능을 시험하기 위한 그리드 컴퓨팅시스템 | |
KR20130007763A (ko) | 원격 어플리케이션 검증 시스템 및 그 방법 | |
CN107317788A (zh) | 实时数据推送方法和装置 | |
CN115037665B (zh) | 设备测试方法和装置 | |
CN115952098A (zh) | 一种性能测试调优方案推荐方法及系统 | |
CN109547291A (zh) | 一种快速定位高频带宽消耗的方法及装置 | |
CN113138772B (zh) | 数据处理平台的构建方法、装置、电子设备和存储介质 | |
US11410107B2 (en) | Systems and methods for real-time determination of cost-to-serve metrics and cost attribution for cloud applications in the public cloud | |
CN113326237A (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 |