首页> 中国专利> 在模拟大话务量测试中控制话务量的方法

在模拟大话务量测试中控制话务量的方法

摘要

在模拟大话务量测试中控制话务量的方法:预设每秒的话务量;获取开始时操作系统的时间,作为第一次发送的时间;设置定时器的触发间隔;定时器触发后,获取系统的当前时间,计算本次发送的时长;根据预设的话务量和本次发送的时长,计算在本次定时器触发应产生的话务量,并进行发送;发送完毕后,根据实际发送条数计算本次发送的话务量占用的发送时间,累加到累计发送时间上作为下一次发送的开始时间;等待下一次触发。将话务量分解成百位、十位和个位的话务量分别处理。本发明能够有效的避免因计算精度而产生的“时间损失”。把话务量尽可能均匀的分布在每一段发送时间。

著录项

  • 公开/公告号CN1770797A

    专利类型发明专利

  • 公开/公告日2006-05-10

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN200410065646.4

  • 发明设计人 张勇;孔韬;

    申请日2004-11-04

  • 分类号H04M3/22(20060101);H04M3/36(20060101);

  • 代理机构

  • 代理人

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部

  • 入库时间 2023-12-17 17:16:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-12-24

    未缴年费专利权终止 IPC(主分类):H04M3/22 授权公告日:20090506 终止日期:20131104 申请日:20041104

    专利权的终止

  • 2009-05-06

    授权

    授权

  • 2006-07-05

    实质审查的生效

    实质审查的生效

  • 2006-05-10

    公开

    公开

说明书

技术领域

本发明涉及通信领域中模拟大话务量测试的方法,具体涉及如何精确控制话务量的技术。

背景技术

目前,随着用户规模的不断扩大,通信领域的应用面临的话务量不断的提高,在用户密集的区域更可能达到几千条/秒。因此,对相应产品的测试工作中的大话务量测试也提出了更高的要求。一般测试都是利用定时器进行触发,定时器的触发间隔从几个毫秒到几秒钟不等,每次触发产生一定的话务量,从而模拟出与实际类似的话务规模。

现有的技术中的控制话务量的方法有两种:

第一种:根据每秒钟的话务量计算出每条话务占用的发送时间,以此时间作为定时器的触发间隔,每次定时器触发发送一条话务。

这种方法的缺点是:

由于计算机硬件平台和操作系统软件本身的限制,一般定时器触发精度有限,也不够精确,以windows操作系统为例,定时器的触发间隔大多在10毫秒的级别上,无法达到更高的精度。这样无法模拟超过100条/秒的话务量,实际的话务量要远远低于设置值。而且随着计算机硬件平台和操作系统软件环境的变化,实际得到的话务量也会变化,无法控制。

第二种:设定一个固定的定时器间隔,计算每次定时器触发需要发送的话务量,定时器触发时一次发送完计算得到的话务量。

这种方法的缺点是:

因为每次发送的话务量必须是整数。所以在一般计算的时候对除法的结果取整。这样会带来一定的“时间损失”,即本次发送的实际话务量小于精确计算的话务量。所以这样得到的结果也会低于预设的话务量。同时,如果定时器间隔设置过大的话(比如几秒钟),会造成话务量分布不均匀,这也是此方法的一个缺陷。

发明内容

本发明所要解决的技术问题就是克服现有技术中对话务量控制不够精确的缺点,提出一种能精确控制话务量的方法。

本发明的技术方案为:

1.1预设每秒的话务量;

1.2获取开始时操作系统的时间,作为第一次发送的时间;

1.3设置定时器的触发间隔;

1.4定时器触发后,获取系统的当前时间,计算本次发送的时长;

1.5根据预设的话务量和本次发送的时长,计算在本次定时器触发应产生的话务量,并进行发送;

1.6发送完毕后,根据实际发送条数计算本次发送的话务量占用的发送时间,累加到累计发送时间上作为下一次发送的开始时间;等待下一次触发。

本发明中,将话务量分解成百位、十位和个位的话务量分别处理。

在本发明中,不是根据预设的定时器触发间隔来决定本次触发产生的话务量,而是通过变量记录本次发送的“开始发送时间”,根据时间差来确定本次触发产生的话务量,克服了定时器触发精度不够带来的负面影响。同时在每次触发后把实际发送的业务量换算成时间累计到下一次发送的“开始发送时间”里面,这样能够有效的避免因计算精度而产生的“时间损失”。同时,本算法能够把话务量尽可能均匀的分布在每一段发送时间。

附图说明

图1是现有技术中的第一种话务量控制方法的流程图;

图2是现有技术中的第二种话务量控制方法的流程图;

图3是本发明的一种实施例的流程图;

图4是本发明的第二种实施例的流程图。

具体实施方式

图1和图2是现有技术中的方法,在背景技术中已有介绍,此处不再重复。

考虑到计算精度的问题,本发明的方法主要针对预设的话务量在100和1000之间的情况。低于100的话务量用通常的方法就能达到较好的效果。超过1000的话务量可以使用多个采用本方法的程序共同产生,例如需要产生1600条/秒的话务量,可以使用两个模拟程序,每个产生800条/秒的话务量,加起来就能满足要求;或者使用3个模拟程序,分别产生500条/秒、500条/秒和600条/秒的话务量,加起来满足要求。

在计算本次发送的话务量的时候,将预设的话务量分解成为百位,十位和个位来处理。比如预设的话务量为673条/秒,在处理的过程中分解成600条/秒,70条/秒和3条/秒分别进行计算和发送。

下面结合图3和图4对本发明进行详细介绍。需要说明的是,流程图里面采用windows操作系统的函数settimer和事件timer3event等来表示设置定时器和定时器触发事件,但是本方法适用于各种操作系统。在下面对算法的描述中,时间变量的单位是毫秒,话务量变量的单位是条,所有的变量都是整数。

图3是本发明的一种实施例的流程图。具体包括以下步骤:

1、设置每秒需要发送的话务量n;

2、获取当前操作系统时间told,作为第一次发送时的累计发送时间。根据n的百,十,个位分别处理的原则,令told1=told2=told3=told。其中told1对应n的百位,told2对应n的十位,told3对应n的个位;

3、设置定时器,定时器的的触发间隔为合适值,比如1毫秒;

4、等待定时器触发;

5、定时器触发后,获取系统当前时间tnow

6、计算本次发送n的百位对应的“发送时长”:t1=tnow-told1

7、计算本次发送n的百位对应的话务量m1=t1/(1000/n的百位*100);

8、发起并完成m1次呼叫;

9、计算本次发送n的百位耗费的时长,并累计到told1

told1=told1+m1*(1000/n的百位*100);

10、计算本次发送n的十位对应的“发送时长”:t2=tnow-told2

11、计算本次发送n的十位对应的话务量m2=t2/(1000/n的十位*10);

12、发起并完成m2次呼叫;

13、计算本次发送n的十位耗费的时长,并累计到told2

told2=told2+m2*(1000/n的十位*10);

14、计算本次发送n的个位对应的“发送时长”:t3=tnow-told3

15、计算本次发送n的个位对应的话务量m3=t3/(1000/n的个位);

16、发起并完成m3次呼叫;

17、计算本次发送n的个位耗费的时长,并累计到told3

told3=told3+m3*(1000/n的个位);

18、返回第4步。

图4是本发明的另一种实施例的流程图,是在图3所示实施例的基本上改进的实施例。所做的改进的主要是增强对预设话务量的百位数字代表的话务量的精度控制。

在图3所示的实施例中,计算百位数字在本次发送中应该产生的话务量时,首先计算出发送一条话务占用的时间是多少毫秒(1000毫秒/(n的百位×100)),再用本次发送时长除以一条话务占用的时间,得到百位数字在本次发送中应该产生的话务量。因为变量为整数,就带来一个问题——计算的发送一条话务占用的时间不够精确。例如当n的百位=3的时候,计算出发送一条话务占用的时间=3毫秒(实际为3.33毫秒),假设本次发送时长=22毫秒,计算得到的话务量=7条(实际为6条——22/3.33再取整)。所以图3所示的实施例在精度上还有缺陷。

解决的办法是在计算发送一条话务占用的时间时,用10000代替1000计算,相当于把一条话务占用的时间放大了10倍,这样就要求计算话务量的时候把本次发送时长也放大10倍。例如当n的百位=3的时候,计算出发送一条话务占用的时间=33毫秒(实际为33.33毫秒),假设本次发送时长=22毫秒,计算时放大10倍就是220毫秒,计算得到的话务量=6条(实际也为6条——220/33.33再取整)。这样就避免了图3所示的实施例在精度控制上的缺陷。

总结一下,为了提高对预设话务量的百位数字代表的话务量的精度控制,图4所示实施例在处理百位数字的时候采取的改进就是把所有的时间变量放大10倍。

具体包括以下步骤:

1、设置每秒需要发送的话务量n;

2、获取当前系统时间told,作为第一次发送时的累计发送时间。根据n的百,十,个位分别处理的原则令told1=10*told,told2=told3=told。其中told1对应n的百位,told2对应n的十位,told3对应n的个位;(因为在处理百位数字的时候需要对所有的时间变量放大10倍,所以计算told1的时候用told乘以10)

3、设置定时器,定时器的触发间隔为合适值,比如1毫秒;

4、等待定时器触发;

5、定时器触发后,获取系统当前时间tnow

6、计算本次发送n的百位对应的“发送时长”:t1=10*tnow-told1;(因为told1放大了十倍,所以把tnow放大10倍再和told1相减,结果就是本次发送n的百位对应的“发送时长t1”放大了10倍)

7、计算本次发送n的百位对应的话务量m1=t1/(10000/n的百位*100);(这里用10000代替图3所示的实施例里面的1000,达到一条话务占用的时间放大10倍的目的)

8、发起并完成m1次呼叫;

9、计算本次发送n的百位耗费的时长,并累计到told1

told1=told1+m1*(10000/n的百位*100);(这里用10000代替图3所示的实施例里面的1000,达到一条话务占用的时间放大10倍的目的)

10、计算本次发送n的十位对应的“发送时长”:t2=tnow-told2

11、计算本次发送n的十位对应的话务量m2=t2/(1000/n的十位*10);

12、发起并完成m2次呼叫;

13、计算本次发送n的十位耗费的时长,并累计到told2

told2=told2+m2*(1000/n的十位*10);

14、计算本次发送n的个位对应的“发送时长”:t3=tnow-told3

15、计算本次发送n的个位对应的话务量m3=t3/(1000/n的个位);

16、发起并完成m3次呼叫;

17、计算本次发送n的个位耗费的时长,并累计到told3

told3=told3+m3*(1000/n的个位);

18、返回第4步。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号