机顶盒解复用器压力测试方法及系统与流程

文档序号:11710222阅读:217来源:国知局
机顶盒解复用器压力测试方法及系统与流程

本发明涉及数字电视领域,尤其涉及一种机顶盒解复用器(demux)压力测试方法及系统。



背景技术:

机顶盒在生产过程中,需要对demux(解复用器)进行压力测试。解复用器压力测试目前采用过滤数据表的方式为:

设置主线程和子线程,在主线程中设置需要过滤的数据表、数据表pid(进程标识符)以及需要过滤的次数,并将过滤标记(filter.enable)置为1,然后在主线程中等待固定时长(足够长时间,如5s、30s等),固定时长到达后将过滤标记(filter.enable)置为0,即终止该数据表的过滤。

子线程中定义一个全局变量标记(pass_flag),在主线程等待过程中,如果解复用器过滤到有相应数据表pid时,子线程中全局变量标记将会被置为1,当全局变量标记将会被置为1时则对该数据表的压力测试通过。

以上方法主要有两种弊端:

其一:由于信号传输不稳定,或有些异常时,将有可能导致demux过滤数据表的时长比主线程中所规定的固定时长短。这样在子线程的全局变量标记早已经置为1,即已经接收到过滤数据表,那么还需要等待主线程固定时长结束。

例如,假设固定时长为30s,而实际demux过滤出数据表只用了15s,这样大量的时间将会浪费在主线程的时延上,最终降低测试效率。

其二,在demux进行压力测试时,如相同pid的数据表需要连续接收多次,例如三次,那么在子线程中只要获取到一次数据表pid,就会将子程序中的全局变量标记置为1,即便有很多次没有过滤到数据表pid而最终测试结果还是通过,这样就导致最终demux压力测试的可信度急剧下降,甚至为失败。

故现有的对demux压力测试耗时严重,并且测试可信度不够高,不满足测试要求。



技术实现要素:

有鉴于此,有必要针对上述对解复用器(demux)压力测试存在耗时严重且可信度不高的问题,提供一种机顶盒解复用器压力测试方法及系统。

本发明提供的一种机顶盒解复用器压力测试方法,包括如下步骤:

s10:在主线程中定义一个全局使能标记,并设置需要过滤的数据表、每个数据表的pid以及每个过滤表pid需要过滤的次数,开始测试时全局使能标记置为1;

s20:在子线程中定义一组全局数组变量标记,全局数组变量标记用来记录每个数据表pid被过滤到的次数,若全局使能标记置为1则子线程开始过滤数据表的pid,过滤到一次则记录一次;

s30:主线程按照设定循环周期检测子线程中每个数据表pid被过滤到的次数,若每个数据表pid被过滤到的次数与需要过滤的次数相比满足设定范围,则该数据表压力测试通过;

s40:若主线程检测到所有数据表压力测试通过则将全局使能标记立即由1置为0,结束测试并且demux压力测试通过。

进一步的,所述步骤s10具体为:设置需要过滤的数据表为pat表、sdt表、nit表三个数据表。

进一步的,设定循环周期小于主线程固定时长除以所有数据表pid需要过滤的总次数。

进一步的,所述设定范围为不低于需要次数的95%。

本发明提供的一种机顶盒解复用器压力测试系统,包括:

主线程设置模块,在主线程中定义一个全局使能标记,并设置需要过滤的数据表、每个数据表的pid以及每个过滤表pid需要过滤的次数,开始测试时全局使能标记置为1;

子线程设置模块,在子线程中定义一组全局数组变量标记,全局数组变量标记用来记录每个数据表pid被过滤到的次数,若全局使能标记置为1则子线程开始过滤数据表的pid,过滤到一次则记录一次;

pid过滤次数检测模块,控制主线程按照设定循环周期检测子线程中每个数据表pid被过滤到的次数,若每个数据表pid被过滤到的次数与需要过滤的次数相比满足设定范围,则该数据表压力测试通过;

测试结束模块,若主线程检测到所有数据表压力测试通过则将全局使能标记立即由1置为0,结束测试并且demux压力测试通过。

进一步的,设置需要过滤的数据表为pat表、sdt表、nit表三个数据表。

进一步的,所述设定循环周期小于主线程固定时长除以所有数据表pid需要过滤的总次数。

进一步的,所述设定范围为不低于需要次数的95%。

本发明机顶盒解复用器压力测试方法及系统,在主线程定义全局使能标记,设置需要过滤的数据表、每个数据表的pid以及每个过滤表pid需要过滤的次数,在子线程定义一组全局数组变量标记记录每个数据表pid被过滤到的次数,每个数据表pid被过滤到的次数与需要过滤的次数相比满足设定范围,则该数据表压力测试通过,主线程按照设定循环周期检测子线程中每个数据表pid被过滤到的次数,在主线程检测到所有数据表压力测试通过则将全局使能标记立即由1置为0则demux压力测试通过,结束测试,这样就能在测试通过后结束测试,不需要等待固定时长,并且检测结果准确,可信度高,极大满足测试要求。

附图说明

图1是一个实施例中的机顶盒解复用器压力测试方法的流程图;

图2是一个实施例中的机顶盒解复用器压力测试系统的结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

图1是一个实施例中的机顶盒解复用器压力测试方法的流程图,如图1所示,该方法包括如下步骤:

s10:在主线程中定义一个全局使能标记,并设置需要过滤的数据表、每个数据表的pid以及每个过滤表pid需要过滤的次数,开始测试时全局使能标记置为1。

为使得主线程能够对压力测试进行控制,该实施例中在主线程中定义一个全局使能标记用来控制压力测试的开始和结束,全局使能标记置为1则测试开始,全局使能标记置为0则测试结束。然后设置需要过滤的数据表、每个数据表的pid以及每个过滤表pid需要过滤的次数,设置好后全局使能标记置为1开始测试。

进一步的,为方便测试,该步骤具体为:设置需要过滤的数据表为pat表(节目关联表)、sdt表(服务描述表)、nit表(网络信息表)三个数据表。

s20:在子线程中定义一组全局数组变量标记,全局数组变量标记用来记录每个数据表pid被过滤到的次数,若全局使能标记置为1则子线程开始过滤数据表的pid,过滤到一次则记录一次。

由于对于每个数据表都要过滤多次,且过滤到的次数满足要求该数据表测试才算通过,为避免测试结果不可靠的问题,该步骤中在子线程中定义一组全局数组变量标记,全局数组变量标记用来记录每个数据表pid被过滤到的次数,这样就将每个数据表过滤到pid的次数记录下来进行准确的判断。

s30:主线程按照设定循环周期检测子线程中每个数据表pid被过滤到的次数,若每个数据表pid被过滤到的次数与需要过滤的次数相比满足设定范围,则该数据表压力测试通过。

在子线程开始过滤数据表pid后,为节省测试时间,主线程按照设定循环周期检测子线程中每个数据表pid被过滤到的次数,实时掌握pid的过滤情况。在子线程过滤过程中,若每个数据表pid被过滤到的次数与需要过滤的次数相比满足设定范围,则该数据表压力测试通过。

进一步的,设定循环周期小于主线程固定时长除以所有数据表pid需要过滤的总次数。

设定范围为不低于需要次数的95%。

s40:若主线程检测到所有数据表压力测试通过则将全局使能标记立即由1置为0,结束测试并且demux压力测试通过。

在主线程检测过程中,若检测到所有数据表压力测试都满足要求,则对demux压力测试通过,主线程将全局使能标记立即由1置为0,结束测试。这样就在所有数据表压力测试都满足要求后就完成测试,无需等待固定时长结束后再完成测试。

该机顶盒解复用器压力测试方法,在主线程定义全局使能标记,设置需要过滤的数据表、每个数据表的pid以及每个过滤表pid需要过滤的次数,在子线程定义一组全局数组变量标记记录每个数据表pid被过滤到的次数,每个数据表pid被过滤到的次数与需要过滤的次数相比满足设定范围,则该数据表压力测试通过,主线程按照设定循环周期检测子线程中每个数据表pid被过滤到的次数,在主线程检测到所有数据表压力测试通过则将全局使能标记立即由1置为0则demux压力测试通过,结束测试,这样就能在测试通过后结束测试,不需要等待固定时长,并且检测结果准确,可信度高,极大满足测试要求。

同时,本发明还提供一种机顶盒解复用器压力测试系统,如图2所示,该系统包括:

主线程设置模块100,在主线程中定义一个全局使能标记,并设置需要过滤的数据表、每个数据表的pid以及每个过滤表pid需要过滤的次数,开始测试时全局使能标记置为1。

为使得主线程能够对压力测试进行控制,该实施例中主线程设置模块100在主线程中定义一个全局使能标记用来控制压力测试的开始和结束,全局使能标记置为1则测试开始,全局使能标记置为0则测试结束。然后主线程设置模块100设置需要过滤的数据表、每个数据表的pid以及每个过滤表pid需要过滤的次数,设置好后全局使能标记置为1开始测试。

进一步的,为方便测试,主线程设置模块100设置需要过滤的数据表为pat表(节目关联表)、sdt表(服务描述表)、nit表(网络信息表)三个数据表。

子线程设置模块200,在子线程中定义一组全局数组变量标记,全局数组变量标记用来记录每个数据表pid被过滤到的次数,若全局使能标记置为1则子线程开始过滤数据表的pid,过滤到一次则记录一次。

由于对于每个数据表都要过滤多次,且过滤到的次数满足要求该数据表测试才算通过,为避免测试结果不可靠的问题,子线程设置模块200在子线程中定义一组全局数组变量标记,全局数组变量标记用来记录每个数据表pid被过滤到的次数,这样就将每个数据表过滤到pid的次数记录下来进行准确的判断。

pid过滤次数检测模块300,控制主线程按照设定循环周期检测子线程中每个数据表pid被过滤到的次数,若每个数据表pid被过滤到的次数与需要过滤的次数相比满足设定范围,则该数据表压力测试通过。

在子线程开始过滤数据表pid后,为节省测试时间,pid过滤次数检测模块300控制主线程按照设定循环周期检测子线程中每个数据表pid被过滤到的次数,实时掌握pid的过滤情况。在子线程过滤过程中,若每个数据表pid被过滤到的次数与需要过滤的次数相比满足设定范围,则该数据表压力测试通过。

进一步的,设定循环周期小于主线程固定时长除以所有数据表pid需要过滤的总次数。

设定范围为不低于需要次数的95%。

测试结束模块400,若主线程检测到所有数据表压力测试通过则将全局使能标记立即由1置为0,结束测试并且demux压力测试通过。

在主线程检测过程中,若检测到所有数据表压力测试都满足要求,则对demux压力测试通过,测试结束模块400控制主线程将全局使能标记立即由1置为0,结束测试。这样就在所有数据表压力测试都满足要求后就完成测试,无需等待固定时长结束后再完成测试。

该机顶盒解复用器压力测试系统,主线程设置模块100在主线程定义全局使能标记,设置需要过滤的数据表、每个数据表的pid以及每个过滤表pid需要过滤的次数,子线程设置模块200在子线程定义一组全局数组变量标记记录每个数据表pid被过滤到的次数,每个数据表pid被过滤到的次数与需要过滤的次数相比满足设定范围,则该数据表压力测试通过,pid过滤次数检测模块300控制主线程按照设定循环周期检测子线程中每个数据表pid被过滤到的次数,测试结束模块400在主线程检测到所有数据表压力测试通过则将全局使能标记立即由1置为0则demux压力测试通过,结束测试,这样就能在测试通过后结束测试,不需要等待固定时长,并且检测结果准确,可信度高,极大满足测试要求。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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