思路
99个用例,默认10个线程,怎么分发用例?简单整理
每个线程分的用例数:[10, 10, 10, 10, 10, 10, 10, 10, 10, 9]
线程对应用例索引下标:[[0, 9], [10, 19], [20, 29], [30, 39], [40, 49], [50, 59], [60, 69], [70, 79], [80, 89], [90, 99]]
核心代码
def processPolicy(lists,num=50):
"""
线程配置策略 默认10个
:param num: 每次分多少
:param lists: 原需要多线程的lists
:return: list 线程个数,每次分10等分,不够取整,最多10
"""
len_lists=len(lists)
number=len_lists//num +1
if len_lists%num==0:
return [num for i in range(1,int(number))]
else:
return [num for i in range(1, int(number))] + [len_lists % num]
def getIndex(lists,distance=50):
"""
获取下标
:param lists: processPolicy的返回
:param distance:间隔 默认100 和 processPolicy的参数number对应
:return:
"""
len_lists = len(lists)
if lists[-1] == distance:
return [[(i-1)*distance,i*distance-1 ] for i in range(1, int(len_lists)+1) ]
elif len_lists==1:
return [[0,lists[-1]]]
else:
return [[(i-1)*distance,i*distance-1] for i in range(1, int(len_lists))]+[[(len_lists-1)*distance,(len_lists-1)*distance+lists[-1]]]