掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及软件测试领域,尤其涉及一种直播测试方法和装置。

背景技术

网络直播是指用户通过手机、电脑等设备随着事件的发生、发展进程同步制作和发布音视频内容,其他用户可以在网络上实时进行观看和互动的行为。发起直播的用户往往称为主播,收看直播的用户往往称为观众。

由于不同的设备、不同的直播应用程序之间可能由于不兼容等原因导致无法正常进行直播。因此,需要对直播应用程序进行测试,以便及时发现程序异常或隐患,进而对直播应用程序进行修复调整,提高用户的使用体验。

在对直播应用程序进行测试的过程中,由于直播应用程序需要调用电子设备的摄像头来创建直播间,因此,受到执行测试的电子设备的影响,测试直播应用程序的灵活性差且效率低。

如何提高直播应用程序的测试灵活性和效率,是本申请所要解决的技术问题。

发明内容

本申请实施例的目的是提供一种直播测试方法,用以解决测试直播应用程序的灵活性差且效率低的问题。

第一方面,提供了一种直播测试方法,包括:

接收直播测试请求,所述直播测试请求携带待执行测试的直播应用程序的信息和直播测试推流地址;

根据所述直播应用程序的信息调用所述直播应用程序,并创建所述直播应用程序可调用的虚拟摄像头任务,所述虚拟摄像头任务用于向所述直播应用程序提供模拟采集的视频流;

控制所述直播应用程序调用所述虚拟摄像头任务以创建测试直播间;

控制所述直播应用程序基于所述测试直播间将所述视频流推流至所述直播测试推流地址;

根据所述测试直播间在推流过程中的运行参数确定直播测试结果。

第二方面,提供了一种直播测试装置,包括:

接收模块,接收直播测试请求,所述直播测试请求携带待执行测试的直播应用程序的信息和直播测试推流地址;

调用模块,根据所述直播应用程序的信息调用所述直播应用程序,并创建所述直播应用程序可调用的虚拟摄像头任务,所述虚拟摄像头任务用于向所述直播应用程序提供模拟采集的视频流;

第一控制模块,控制所述直播应用程序调用所述虚拟摄像头任务以创建测试直播间;

第二控制模块,控制所述直播应用程序基于所述测试直播间将所述视频流推流至所述直播测试推流地址;

确定模块,根据所述测试直播间在推流过程中的运行参数确定直播测试结果。

第三方面,提供了一种电子设备,该电子设备包括处理器、存储器及存储在该存储器上并可在该处理器上运行的计算机程序,该计算机程序被该处理器执行时实现如第一方面的方法的步骤。

第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现如第一方面的方法的步骤。

在本申请实施例中,通过接收直播测试请求,直播测试请求携带待执行测试的直播应用程序的信息和直播测试推流地址;根据直播应用程序的信息调用直播应用程序,并创建直播应用程序可调用的虚拟摄像头任务,虚拟摄像头任务用于向直播应用程序提供模拟采集的视频流;控制直播应用程序调用虚拟摄像头任务以创建测试直播间;控制直播应用程序基于测试直播间将视频流推流至直播测试推流地址;根据测试直播间在推流过程中的运行参数确定直播测试结果。本方案能避免直播应用程序对真实的设备摄像头的占用,模拟采集的视频流灵活性强,便于对视频流的码率等参数进行调整,也能对摄像头的相关参数进行调整,方便进行动态的视频的测试。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明的一个实施例一种直播测试方法的流程示意图之一。

图2是本发明的一个实施例一种直播测试方法的流程示意图之二。

图3是本发明的一个实施例一种直播测试方法的流程示意图之三。

图4是本发明的一个实施例一种直播测试方法的流程示意图之四。

图5是本发明的一个实施例一种直播测试方法的流程示意图之五。

图6是本发明的一个实施例一种直播测试方法的流程示意图之六。

图7是本发明的一个实施例一种直播测试方法的流程示意图之七。

图8是本发明的一个实施例一种直播测试装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请中附图编号仅用于区分方案中的各个步骤,不用于限定各个步骤的执行顺序,具体执行顺序以说明书中描述为准。

在对直播应用程序进行测试的过程中,可以基于人工用手机进行推流的方式进行的直播测试,例如可以通过基于人工发起直播的方式进行直播测试。

在测试过程中,需要测试人员手动进行直播房间的创建,手动选择推流的视频源,当测试工作中需要覆盖不同推流协议,不同编码协议,或不同客户端版本等场景进行交叉测试时,操作极为繁琐,需要反复创建房间和进行推流操作。而且,一部手机在同一时间仅能进行一场直播的测试推流,设备占用高,利用率低。

为了解决现有技术中存在的问题,本申请实施例提供一种直播测试方法,本申请的执行主体可以是计算机、服务器或其他具有数据处理功能的设备,在本实例中,将执行本方案的执行主体称为测试机。如图1所示,本申请实施例提供的方案包括以下步骤:

S11:接收直播测试请求,所述直播测试请求携带待执行测试的直播应用程序的信息和直播测试推流地址。

本申请实施例中所述的直播测试请求具体可以是由测试人员根据实际测试需求发送的。其中,直播测试请求携带有执行测试的直播应用程序的信息,该直播应用程序的信息可以是直播软件的名称、版本号码等内容,该直播应用程序的信息用于测试机识别到具体对哪个直播应用程序进行测试。

上述直播推流是指:在直播过程中,直播视频内容需要以“流”的方式推送到服务端。其中,推流地址具体可以是标识这个服务端地址的URI(Uniform Resource Identify,统一资源标识符),随后由服务端分发给CDN(Content Delivery Network,内容分发网络)节点,观众最后从CDN节点进行下载观看。与传统的视频观看不同,直播在上传视频内容时不是一个大的视频文件,而是很多小的分片,这些小的分片会一个个上传给服务器,故而叫做推流。

S12:根据所述直播应用程序的信息调用所述直播应用程序,并创建所述直播应用程序可调用的虚拟摄像头任务,所述虚拟摄像头任务用于向所述直播应用程序提供模拟采集的视频流。

在本步骤中,由测试机根据上述直播应用程序的信息调用直播应用程序,并创建与直播应用程序相匹配的虚拟摄像头任务。

需要说明的是,由于直播间是通过画面与声音进行直播的,通常情况下,如果直播设备不具备摄像头(或虚拟摄像头),直播软件在获取不到摄像头的情况下就无法获得视频流开启直播。由此可见,摄像头是直播软件创建直播间的必要条件。

可选的,直播测试请求与虚拟摄像头任务一一对应。如要同时执行多个直播测试,需要创建与直播测试相对应的虚拟摄像头任务,以避免直播测试异常。例如,对多个不同的直播应用程序同时进行测试,或者,对一个直播应用程序创建多个不同的直播间同时进行测试,在这种同时执行多个直播测试的情况下,如果采用设备真实的摄像头进行测试,不同的直播测试可能抢占同一个摄像头。而通过本申请实施例提供的方案,创建与直播测试请求一一对应的虚拟摄像头任务,能保证每个直播测试请求都能有可调用的虚拟摄像头任务,以满足创建直播间的需求,保证测试正常执行,有利于同时执行的多个直播测试任务相互独立互不影响。

其中,虚拟摄像头可以是在计算机中提供虚假摄像头硬件的程序,通过这个程序可以让多个APP(Application)进程获取到不同摄像头,并在不同摄像头中以不同的视频流模拟直播过程中通过摄像头采集图像的行为。本方案中的虚拟摄像头任务具体可以通过MAC平台的ManyCam或CamTwist等软件实现,也可以根据实际应用的系统或平台选择合适的虚拟摄像头任务。

S13:控制所述直播应用程序调用所述虚拟摄像头任务以创建测试直播间。

具体可以通过控制指令来控制直播应用程序调用虚拟摄像头创建测试直播间,将虚拟摄像头任务提供的视频画面作为直播视频画面以便进行测试。

在实际应用中,虚拟摄像头任务可以模拟真实摄像头的不同运行状态或参数进行灵活测试。比如,虚拟摄像头任务可以模拟真实摄像头关闭状态创建直播间。虚拟摄像头任务可以将预存储的视频文件作为视频画面提供给直播间作为直播画面。虚拟摄像头任务也可以通过调节视频画面的尺寸、分辨率等参数来向直播应用程序提供不同的视频画面,以进行灵活测试。

需要说明的是,本实施例中的真实摄像头关闭状态并不等同于识别不到摄像头的状态。真实摄像头关闭状态是指有摄像头接入但摄像头未采集画面的状态,此时与摄像头相连的手机或计算机等设备是能够识别到摄像头的。

S14:控制所述直播应用程序基于所述测试直播间将所述视频流推流至所述直播测试推流地址。

具体的,直播应用程序基于测试直播间将虚拟摄像头任务提供的视频以“流”的方式,将视频推送到服务端,即上述直播测试推流地址。

S15:根据所述测试直播间在推流过程中的运行参数确定直播测试结果。

通过本申请实施例提供的上述步骤,能基于虚拟摄像头任务创建直播间,并向直播测试推流地址执行推流,以模拟真实的直播操作,从而对直播进行测试。在测试过程中,测试直播间在推流过程中的运行参数可能发生变化,基于运行参数的变化来确定直播测试结果。

举例而言,可以根据测试直播间在推流过程中的上传速率/下载速率来确定直播测试结果。如果上述上传或下载速率不稳定,则可能导致直播间观众看到的直播画面卡顿,或者,直播间的主播无法及时收到观众的弹幕评论等情况。基于该运行参数可以反映出直播间的直播质量,进而确定的直播测试结果能有利于对直播应用程序进行优化,以进一步提升直播质量。

可选的,在推流过程中,如果直播应用程序本身出现了异常,也能通过运行参数表现出来。本实施例中的运行参数不仅可以包括推流过程中直播应用程序通过网络进行传输的相关参数,也可以包括直播应用程序本身的运行参数,例如内存占用率、读取速率等。

本申请实施例提供的方案,通过虚拟摄像头任务向直播应用程序提供模拟采集的视频流,能避免直播应用程序对真实的设备摄像头的占用。一方面,模拟采集的视频流灵活性强,能对视频流的码率等参数进行调整,也能对摄像头的相关参数进行调整,方便进行动态的视频的测试。另一方面,基于虚拟摄像头任务,能够便于多开测试,提高测试效率。

另外,本申请实施例提供的方案有利于实现交叉测试,提高测试的灵活性和效率。交叉测试是指不同初始测试条件进行不同组合的测试方式。通过本申请实施例提供的方案,能够通过测试机在同一时间进行多个直播测试,不同的直播测试调用虚拟摄像头任务创建直播间,使不同的直播测试之间互不影响。本实施例进行直播推流的APP的运行不依赖真实手机,而可以直接运行在计算机设备或其他测试机上,实现单个设备可以同时运行多个APP进行推流。本方案中APP使用虚拟摄像头,推流的内容来自虚拟摄像头配置的视频文件流,有利于根据实际需求调整直播画面,提高测试灵活性。

基于上述实施例提供的方案,可选的,如图2所示,上述步骤S13,包括:

S21:控制所述直播应用程序调用所述虚拟摄像头任务获取视频流源文件。

测试机可以通过调用指令或其他方式实现对直播应用程序的控制,使直播应用程序调用虚拟摄像头任务获取视频流源文件。其中,视频流源文件具体可以是存储在预设存储空间内的视频文件,该视频文件的存储格式可以根据虚拟摄像头任务的需求或者直播应用程序的需求预先设定。或者,视频文件可以基于统一的格式进行存储,虚拟摄像头任务获取视频流源文件时,对存储的视频文件进行格式转换,以满足虚拟摄像头任务或直播应用程序的需求。

S22:将所述虚拟摄像头任务基于所述视频流源文件向所述直播应用程序提供的视频流作为直播视频流创建测试直播间。

本申请实施例提供的方案中,通过文件形式的视频能灵活调整测试视频的码率、动态/静态、添加特效等,有利于提高测试灵活性。

其中,码率是指音视频在采集生成和传输时单位时间传送的数据位数,位数越多,保留的真实世界的信息越丰富,即视频和音频越接近真实世界所得,但同样也需要消耗更多的传输带宽。因此实际用户在直播时选择的码率往往会根据其网络情况进行调整。在本申请实施例提供的方案中,可以基于虚拟摄像头任务来想直播应用程序提供不同码率的视频流,以模拟不同的网络情况,从而实现灵活测试。

基于上述实施例提供的方案,可选的,如图3所示,所述直播测试请求还携带待执行测试的系统信息。上述待执行测试的系统信息例如可以包括系统的类型、系统版本号等信息。其中,系统的类型例如可以是Windows系统或MacOS系统等。系统版本号例如可以是系统的具体版本,例如Windows 7、Windows 10、Windows 11等。

其中,上述步骤S12之前,还包括:

S31:根据所述待执行测试的系统信息获取与所述系统信息相匹配的所述直播应用程序的封装包。

为进一步提高测试灵活性,在实际执行测试时,可以针对不同的系统或平台进行测试。举例而言,可进行测试的系统可以包括IOS系统和安卓系统。在不同的系统上,直播应用程序的封装包也有所不同。具体而言,IPA为iOS系统的应用程序封装包格式,APK为安卓系统的应用程序封装包格式。如果主播通过手机进行直播,那么iPhone用户安装应用程序时下载的直播应用程序是IPA包,安卓用户安装时下载的直播应用程序是APK包。

S32:在所述系统信息匹配的系统上对所述直播应用程序的封装包执行解封装,以获取所述直播应用程序。

具体的,本步骤中可以在测试机上运行系统信息匹配的系统模拟器,以在对应的系统上对封装包进行解封。举例而言,对于安卓系统,测试机可以通过安卓模拟器来运行APK文件进行解封装。对于IOS系统,如果测试机是MAC设备,则可以直接运行IPA文件进行解封装,或者通过Xcode模拟器运行。其中,MAC设备是指苹果公司生产的,运行MacOS系统的计算机。例如,MACmini、MACpro、Macbook等。其中,新款M1芯片的MAC计算机可以运行iPhone程序,旧款使用intel芯片的设备可以通过Xcode模拟器运行,但相比于M1芯片直接运行的效率低。

通过本申请实施例提供的方案,能基于不同系统对直播应用程序实现测试,进一步提高测试灵活性。

基于上述实施例提供的方案,可选的,如图4所示,所述直播测试请求还携带测试设备参数。测试设备参数用于模拟真实的测试设备,以实现对设备兼容性的测试。该测试设备参数具体可以包括测试设备的硬件参数,其中可以包括显示屏参数(分辨率、画面尺寸等),也可以包括摄像头或其他硬件设备的具体参数。

其中,上述步骤S12,包括:

S41:根据所述测试设备参数,模拟在测试设备上根据所述直播应用程序的信息调用所述直播应用程序,并创建所述直播应用程序可调用的虚拟摄像头任务。

本步骤中,具体可以结合模拟器,基于上述测试设备参数模拟在测试设备上调用直播应用程序,并创建相对应的虚拟摄像头任务。

举例而言,可以通过模拟器基于测试设备参数模拟出测试设备软硬件环境,进而基于模拟出的测试设备调用直播应用程序。其中,可以根据直播应用程序的信息模拟在测试设备中调用直播应用程序。如果测试设备参数中包含摄像头相关参数,那么,可以基于摄像头相关参数创建相对应的虚拟摄像头任务,使虚拟摄像头更接近于测试设备的软硬件环境,使测试场景更接近真实的用户使用场景。

本申请实施例提供的方案能实现对不同的设备进行模拟测试,无需更换测试设备,通过测试设备参数实现模拟测试设备上调用程序,提高测试灵活性。

基于上述实施例提供的方案,可选的,如图5所示,所述直播测试请求还携带测试编码协议和测试推流协议。

其中,上述步骤S14,包括:

S51:根据所述测试编码协议对所述视频流执行编码。

其中,编码协议指视频内容的二进制编码方式,因为视频内容的体积很大,需要进行压缩,不同的编码协议有不同的压缩率,但编解码难度也会不一样。老旧设备有时候对新的编码协议的支持性可能就不好,可以通过测试实现支持性检测,有利于进行优化。该编码协议例如可以包括H.264、H.265、HEVC等。

S52:控制所述直播应用程序基于所述测试直播间将编码后的视频流基于所述测试推流协议推流至所述直播测试推流地址。

推流协议是指上传音视频内容时使用的应用层协议,控制音视频传输过程,合适的传输协议可以提高直播的稳定性,降低延迟。通过测试能有利于对直播进行优化,以提高稳定性。该推流协议例如可以包括SRT、RTMP和WebRTC。

在本步骤中,可以通过控制指令对直播应用程序进行控制,以基于测试直播间将编码后的视频流推流至直播测试推流地址。

基于上述实施例提供的方案,可选的,如图6所示,所述直播测试请求还携带主播测试操作信息。其中,主播测试操作信息可以包括模拟主播执行的操作,例如基于创建的直播间修改画面特效、在画面中添加文字或插图、修改自动回复规则等。

其中,在上述步骤S14之后,还包括:

S61:根据所述主播测试操作信息对推流过程中的所述测试直播间执行主播测试操作。

具体的,可以通过插件来模拟主播真实执行的操作。例如,可以通过按键精灵、sikuliX等辅助软件模拟人工操作对推流过程中的直播间执行主播测试操作。其中可以包括键盘输入内容的指令,也可以包括鼠标点击、拖动等指令。

其中,上述步骤S15,包括:

S62:获取所述测试直播间在执行所述主播测试操作后的第一直播变化参数。

在本步骤中,可以在辅助软件模拟执行人工操作的过程中持续获取直播间的直播变化参数,作为第一直播变化参数。

S63:根据所述测试直播间在推流过程中获取的第一直播变化参数确定直播测试结果。

上述获取到的第一直播变化参数反映了直播间在主播执行操作过程中的变化,基于该第一直播变化参数确定的直播测试结果能表征直播间是否对主播执行的操作进行了正确的反馈,进而表征直播间的运行状态。如果直播测试结果表征直播间对执行的操作反馈不正确,则可以基于直播测试结果对直播间的参数或直播应用程序进行调整,以实现对直播效果的优化。

基于上述实施例提供的方案,可选的,如图7所示,所述直播测试请求还携带观众测试操作信息。其中,观众测试操作信息可以包括模拟观众执行的操作,例如基于直播间向主播发送弹幕评论、对主播执行关注、基于直播间的链接点击跳转等。

其中,在S14之后,还包括:

S71:获取所述测试直播间的直播地址,所述直播地址用于观众用户进入所述测试直播间。

直播地址具体可以是指向测试直播间的网页链接。在实际应用中,为了提高进入直播间的便捷性,上述直播地址也可以是二维码、条形码或其他图形编码形式。

S72:根据所述直播地址进入所述测试直播间。

在实际应用中,观众可以通过扫描二维码的方式获取到测试直播间的网页链接,并以观众的用户身份快速地进入测试直播间。在同一个直播间内,主播的直播间界面与观众的直播间界面是不同的。本申请实施例提供的方案中,通过直播地址能够实现用户以观众的用户身份快速进入测试直播间。

S73:根据所述观众测试操作信息对推流过程中的所述测试直播间执行观众测试操作。

具体的,可以通过插件来模拟观众真实执行的操作。例如,可以通过按键精灵、sikuliX等辅助软件模拟人工操作对推流过程中的直播间执行测试操作。其中可以包括键盘输入内容的指令,也可以包括鼠标点击、拖动等指令。

其中,上述步骤S15,还包括:

S74:获取所述测试直播间在执行所述观众测试操作后的第二直播变化参数。

在本步骤中,可以在辅助软件模拟执行人工操作的过程中持续获取直播间的直播变化参数,作为第二直播变化参数。

S75:根据所述测试直播间在推流过程中获取的第二直播变化参数确定直播测试结果。

上述获取到的第二直播变化参数反映了直播间在观众执行操作过程中的变化,基于该第二直播变化参数确定的直播测试结果能表征直播间是否对观众执行的操作进行了正确的反馈,进而表征直播间的运行状态。如果直播测试结果表征直播间对执行的操作反馈不正确,则可以基于直播测试结果对直播间的参数或直播应用程序进行调整,以实现对直播效果的优化。

可选的,在实际应用中也可以根据上述第一直播变化参数和上述第二直播变化参数共同确定直播测试结果,以实现直播间内主播与观众之间的互动测试。

通过本申请实施例提供的方案,能提高直播测试的自动化水平,基于虚拟摄像头、模拟器等辅助工具降低人工成本,减少由于人为操作错误而导致的测试错误。

另外,本申请实施例提供的方案能在同一时间进行多个不同的直播测试,能提高设备的利用率,同时满足测试团队多个不同测试工作推流的需求。

而且,本申请实施例还能满足不同客户端、不同视频流和其他初始条件下的不同推流需求,允许直播的自动化测试工程直接使用本工具进行推流。

除此之外,本申请实施例提供的方案还能以网页可视化的方式支持进行直播测试的直播间创建、配置、控制直播推流的行为,允许测试人员在创建房间后直接扫二维码进入直播间,提高测试的灵活性,使测试结果更接近于真实应用的直播效果。另外,本方案有利于暴露创建直播间、推流等操作的配置接口,允许直接调用接口来获取测试需要的直播间进行自动化测试。

需要说明的是,本申请实施例提供的方案基于虚拟摄像头任务,通过直播应用程序创建测试直播间,并对测试直播间进行测试。这种方式并不等同于基于FFmpeg等工具进行推流的方式进行直播测试的方案。

FFmpeg是一套功能强大的可以用来进行音视频转换的开源程序,支持相当多的编码转换功能,也提供了针对某个推流地址进行推流的功能。基于FFmpeg等工具进行推流的方式进行直播测试的方案在推流时不需要APP客户端,仅能支持推流相关的功能,无法创建直播间,也无法实现直播测试中需要在直播主播侧进行的非推流的相关操作,也无法覆盖不同客户端进行直播时的差异性。这种方案在测试工作中不具备完备性,测试结果无法反映出测试应用程序本身可能存在的异常。而本申请实施例提供的方案基于虚拟摄像头任务创建测试直播间,能模拟真实直播的效果,在测试的过程中有利于发现应用程序本身可能存在的异常。

可选的,本申请实施例的测试机可以包括以下功能模块,用以实现上述任一种实施例所述的直播测试方法,以MAC设备为例:

MAC设备控制模块:包含一个控制进程和若干APP进程,每个进程为根据用户需要创建的指定iOS APP(或这些APP的不同版本)。控制进程负责接收推流控制后端模块发来的启动/终止/切换推流源等的请求,并维护当前MAC设备控制模块上启动的APP进程。当收到一个启动请求时,使用sikuliX(或其他桌面自动化操作工具)操作MAC设备,通过预录制的脚本创建一个虚拟摄像头设备,从IPA打包平台下载所需的IPA包,启动APP,并控制虚拟摄像头使用指定的视频源文件作为内容,使APP向指定的直播地址进行推流。

安卓模拟器控制模块:基本功能与MAC设备控制模块相同,win11系统可以基于自带的模拟器直接支持运行安卓APP。

视频流源文件模块:本模块主要维护和管理视频推流源文件,模块中保存了一份各种视频源文件的高码率文件版本,MAC设备控制模块和安卓模拟器控制模块会从这里获取待推流的视频流源文件。

推流控制前端:推流控制前端主要提供测试人员使用的可视化页面,前端页面主要提供给测试人员配置、启动直播推流,提供进入直播间的二维码,控制直播间创建等功能,也暴露了Http接口允许自动化测试代码调用本方案描述的工具创建直播间和推流。

推流控制后端:主要负责维护MAC设备控制模块和安卓模拟器控制模块及这两个模块下启动的APP的状态,并控制这两个模块起停APP和执行推流操作。

本方案主要解决了直播测试中需要消耗较多人工成本控制直播客户端推流的问题,至少具备以下优点:

通过安卓模拟器和MAC设备运行APP进行推流,不需要占用手机设备,一台计算机可以启动多个APP推流,减少了对手机设备的依赖性,提高了设备资源的利用率,降低设备成本。

本申请实施例提供的方案中,采用的是真实的APP,其行为和操作可以与真实主播进行直播一致,在进行推流和后续进行直播测试时,可以覆盖到不同端不同APP版本,解决了传统直接推流到推流地址方式进行直播时,无法覆盖到APP本身相关操作和逻辑的问题。

通过虚拟摄像头设备作为直播推流的数据源,解决多个APP在同一个设备上运行时需要抢占摄像头的问题,也解决了使用真实摄像头,无法模拟不同直播内容,以及画面静止的问题。

前端页面可以直接显示直播间二维码和进行直播间相关配置,减少了人工操作,提高测试效率。另外由于创建直播间和推流的操作可以不再依赖人工,虚拟摄像头也可以使用预设的视频文件进行推流,解决了直接进行APP自动化测试开发时,使用真实摄像头直播内容静态不变而无法正常测试。

为了解决现有技术中存在的问题,本申请实施例还提供一种直播测试装置80,本申请实施例提供的直播测试装置80可以是上述实施例中的测试机,如图8所示,该直播测试装置80包括:

接收模块81,接收直播测试请求,所述直播测试请求携带待执行测试的直播应用程序的信息和直播测试推流地址;

调用模块82,根据所述直播应用程序的信息调用所述直播应用程序,并创建所述直播应用程序可调用的虚拟摄像头任务,所述虚拟摄像头任务用于向所述直播应用程序提供模拟采集的视频流;

第一控制模块83,控制所述直播应用程序调用所述虚拟摄像头任务以创建测试直播间;

第二控制模块84,控制所述直播应用程序基于所述测试直播间将所述视频流推流至所述直播测试推流地址;

确定模块85,根据所述测试直播间在推流过程中的运行参数确定直播测试结果。

通过本申请实施例提供的装置,接收直播测试请求,直播测试请求携带待执行测试的直播应用程序的信息和直播测试推流地址;根据直播应用程序的信息调用直播应用程序,并创建直播应用程序可调用的虚拟摄像头任务,虚拟摄像头任务用于向直播应用程序提供模拟采集的视频流;控制直播应用程序调用虚拟摄像头任务以创建测试直播间;控制直播应用程序基于测试直播间将视频流推流至直播测试推流地址;根据测试直播间在推流过程中的运行参数确定直播测试结果。本方案能避免直播应用程序对真实的设备摄像头的占用,模拟采集的视频流灵活性强,便于对视频流的码率等参数进行调整,也能对摄像头的相关参数进行调整,方便进行动态的视频的测试。

其中,本申请实施例提供的装置中的上述模块还可以实现上述方法实施例提供的方法步骤。或者,本申请实施例提供的装置还可以包括除上述模块以外的其他模块,用以实现上述方法实施例提供的方法步骤。且本申请实施例提供的装置能够实现上述方法实施例所能达到的技术效果。

优选的,本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述一种直播测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述一种直播测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

技术分类

06120114684137