一种通过判断实现单机循环调度的连续执行方法技术

技术编号:32129061 阅读:20 留言:0更新日期:2022-01-29 19:24
本发明专利技术公开了一种通过判断实现单机循环调度的连续执行方法,包括构建逻辑循环队列,初始化动态分配存储空间、逻辑循环队列的队头指针、逻辑循环队列的队尾指针;进行出队、入队和赋值变量或常量操作;设置任务的优先级开关;将要执行的单个任务插入逻辑循环队列中,由单个任务构建测试组循环队列,并设定测试组优先级,由测试组循环队列构建测试任务集循环队列,并设定任务集循环队列的优先级;按照优先级的设置先执行测试组,测试组执行完后,执行由测试组组成的测试集,快速测试,生成测试报告;最后,将完成的算法数据封装成一组API。本发明专利技术通过区别设定自动化项目的执行时间,轮询执行自动化测试项目,在单台机器上做到7x24小时的任务连续执行,提高了机器利用率。提高了机器利用率。提高了机器利用率。

【技术实现步骤摘要】
一种通过判断实现单机循环调度的连续执行方法


[0001]本专利技术涉及计算机
,具体来说,涉及一种通过判断实现单机循环调度的连续执行方法。

技术介绍

[0002]目前,在本领域进行自动化循环测试中,使用的时间片轮转算法是一种最古老,最简单,最公平且使用最广的算法。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。
[0003]为充分利用向量空间,克服"假溢出"现象的方法是将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。
[0004]那么,在通过CPU时间片轮转算法和循环队列进行自动化测试过程开始前,由于多项目并发和测试服务器资源紧张,会引起机器资源不足、单台测试机器不能满足日益增多的测试项目的执行需求。

技术实现思路

[0005]针对相关技术中的上述技术问题,本专利技术提出一种通过判断实现单机循环调度的连续执行方法,能够克服现有技术方法的上述不足。
[0006]为实现上述技术目的,本专利技术的技术方案是这样实现的:一种通过判断实现单机循环调度的连续执行方法,包括以下步骤:S1:构建逻辑循环队列,首先,初始化动态分配存储空间、逻辑循环队列的队头指针、逻辑循环队列的队尾指针以及一个空循环队列;S2:初始化好上述的变量或常量后,进行操作循环队列的出队、入队和给变量或常量赋值操作,操作成功即构建完成;S3:构建好逻辑循环队列后,进行设置任务的优先级开关;S4:然后,将要执行的单个任务插入逻辑循环队列中,由单个任务构建测试组循环队列,并设定测试组默认的优先级,由所述测试组循环队列构建测试任务集循环队列,并设定任务集循环队列的优先级;S5:在逻辑循环队列中执行任务,按照优先级的设置先执行测试组,测试组执行完后,执行由测试组组成的测试集,在逻辑循环队列中快速测试,生成测试报告;S6: 最后,将完成的测试报告中涉及的调度算法抽象数据封装成一组API,上传到平台供第三方使用。
[0007]进一步地,步骤S1中,所述逻辑循环队列的队头指针是当队列非空时,指向队列第
一个元素;所述逻辑循环队列的队尾指针是当队列非空时,指向队列最后一个元素的下一个位置。
[0008]进一步地,步骤S3中,优先级开关分为三个开关,第一个用代数0表示,代表关闭优先级设置,按照初始循环队列进行执行任务,第二个用代数1表示,代表按照设置的优先级执行任务,第三个用代数2表示,代表按照任务执行时间为优先级执行任务。
[0009]进一步地,步骤S5中,按照优先级的设置进行执行具体为,根据优先级来选定要执行的测试组,并执行测试组,再根据优先级选定的要执行的单个任务,执行该单个任务,回到逻辑循环队列中,执行下一个测试组或单个任务,进行循环测试。
[0010]进一步地,步骤S2中,入队操作是把要添加的元素通过添加函数从队尾添加到队列中;出队操作是首选获取并取出队列的头元素,循环取出至所有元素出队。
[0011]本专利技术的有益效果:通过区别设定自动化项目的执行时间,轮询执行自动化测试项目,在单台机器上做到7x24小时的任务连续执行,提高了机器利用率。
附图说明
[0012]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0013]图1是根据本专利技术实施例所述的通过判断实现单机循环调度的连续执行方法的执行大批量测试任务示意图。
具体实施方式
[0014]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本专利技术保护的范围,为了方便理解本专利技术的上述技术方案,以下通过具体使用方式上对本专利技术的上述技术方案进行详细说明。
[0015]如图1所示,根据本专利技术实施例所述的通过判断实现单机循环调度的连续执行方法,步骤包括:(一)构建逻辑循环队列,首先,初始化动态分配存储空间、逻辑循环队列的队头指针、逻辑循环队列的队尾指针以及一个空循环队列。
[0016]QElemType *base(初始化的动态分配存储空间,存储元素)int front(队头指针,若队列不空,指向队列头元素)int rear(队尾指针,若队列不空,指向队列尾元素的下一个位置)Status InitQueue(SqQueue &Q)(初始化一个空的循环队列函数)int
ꢀꢀꢀ
QueueLength(SqQueue Q)(获取队元素个数函数)Status EnQueue(SqQueue &Q, QElemType e) (入队函数)Status DeQueue(SqQueue &Q, QElemType &e)(出队函数)所述逻辑循环队列的队头指针是当队列非空时,指向队列第一个元素;所述逻辑
循环队列的队尾指针是当队列非空时,指向队列最后一个元素的下一个位置。
[0017](二)初始化好上述的变量或常量后,进行操作循环队列的出队、入队和给变量或常量赋值操作,操作成功即构建完成;入队操作是把要添加的元素通过添加函数从队尾添加到队列中;出队操作是首选获取并取出队列的头元素,循环取出至所有元素出队。如下:Status InitQueue(SqQueue &Q) {
ꢀꢀꢀꢀ
Q.base = (QElemType *)malloc(MAXQSIZE * sizeof(QElemType));
ꢀꢀꢀꢀ
if (!Q.base) exit(QUEUE_OVERFLOW);
ꢀꢀꢀꢀ
Q.front = Q.rear = 0;
ꢀꢀꢀꢀ
cout<<"空队列创建成功"<<endl;
ꢀꢀꢀꢀ
return
ꢀꢀ
OK; }int QueueLength(SqQueue Q) {
ꢀꢀꢀꢀ
int eleCount = (Q.rear
ꢀ‑ꢀ
Q.front + MAXQSIZE) % MAXQSIZE;
ꢀꢀꢀꢀ
cout<<"队列元素有:"<<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通过判断实现单机循环调度的连续执行方法,其特征在于,包括以下步骤:S1:构建逻辑循环队列,首先,初始化动态分配存储空间、逻辑循环队列的队头指针、逻辑循环队列的队尾指针以及一个空循环队列;S2:初始化好上述的变量或常量后,进行操作循环队列的出队、入队和给变量或常量赋值操作,操作成功即构建完成;S3:构建好逻辑循环队列后,进行设置任务的优先级开关;S4:然后,将要执行的单个任务插入逻辑循环队列中,由单个任务构建测试组循环队列,并设定测试组默认的优先级,由所述测试组循环队列构建测试任务集循环队列,并设定任务集循环队列的优先级;S5:在逻辑循环队列中执行任务,按照优先级的设置先执行测试组,测试组执行完后,执行由测试组组成的测试集,在逻辑循环队列中快速测试,生成测试报告;S6: 最后,将完成的测试报告中涉及的调度算法抽象数据封装成一组API,上传到平台供第三方使用。2.根据权利要求1所述的通过判断实现单机循环调度的连续执行方法,其特征在于,步骤S1中,所述逻辑循环队列的队头指针是当队...

【专利技术属性】
技术研发人员:张浩然朱泽单酉韩璐
申请(专利权)人:北京航天云路有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1