接口自动化测试系列-用例分发策略

思路

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]]]

你可能感兴趣的:(python,开发语言,多线程)