代码改变世界

对多条件进行组合,生成笛卡尔积的用例集合的python代码实现

2019-04-29 15:43  拂堤杨柳醉春烟  阅读(986)  评论(0编辑  收藏  举报

做专项测试需要对一些因素进行组合的测试,这里组合起来后数据量可能很大,我们可以用python来代劳

代码有优化空间,目前先用着。

************************代码开始*****************************

__author__ = 'Administrator'

from itertools import product
import openpyxl


标题=['视频尺寸','检测类型','天气','路况','摄像头方向','摄像头高低','摄像头角度']


视频尺寸=['4cif','720p']
检测类型=['外场']
天气=['晴天白天','雨天白天','雾天','傍晚','阴天','凌晨']
路况=['畅通','较拥堵','拥堵']
摄像头方向=['车头','车尾']
摄像头高低=['高','低']
摄像头角度=['轻微偏移','大幅度偏移']


视频尺寸1=['4cif','720p']
检测类型1=['隧道']
亮度=['开灯']
路况1=['畅通','较拥堵','拥堵']
摄像头方向1=['车头','车尾']
摄像头高低1=['高','低']
摄像头角度1=['轻微偏移','大幅度偏移']


#写入excel的第一行是标题
ob=openpyxl.load_workbook('E:\\work\\AI001.xlsx')
sheet_1=ob["data2"]


dict_1={}
data_1=[]
count_1=0
for a,b,c,d,e,f in product(检测类型,天气,路况,摄像头方向,摄像头高低,摄像头角度):
data_1=[]
data_1.append(a)
data_1.append(b)
data_1.append(c)
data_1.append(d)
data_1.append(e)
data_1.append(f)
# data_1.append(g)
dict_1[count_1]=data_1
count_1=count_1+1


# print(len(dict_1))

dict_2={}
data_2=[]
count_2=len(dict_1)
for a1,b1,c1,d1,e1,f1, in product(检测类型1,亮度,路况1,摄像头方向1,摄像头高低1,摄像头角度1):
# print(a1,b1,c1,d1,e1,f1,g1)
data_2=[]
data_2.append(a1)
data_2.append(b1)
data_2.append(c1)
data_2.append(d1)
data_2.append(e1)
data_2.append(f1)
# data_2.append(g1)
dict_2[count_2]=data_2
count_2=count_2+1


# print(dict_1)
#两个字典合并为一个字典来处理
# dict_3=dict(dict_1.items() + dict_2.items())
dict_3={}
dict_3.update(dict_1)
dict_3.update(dict_2)

# print(dict_3)
# print(dict_2)
for k in dict_3:
data_3=dict_3[k]
# print(data_3)
for i in range(1,7):
sheet_1.cell(k+1,i).value=(data_3[i-1])
# print(data_3[i-1])


ob.save('E:\\work\\AI001.xlsx')
# for a1,b1,c1,d1,e1,f1,g1 in product(视频尺寸1,检测类型1,亮度,路况1,摄像头方向1,摄像头高低1,摄像头角度1):
# print(a1,b1,c1,d1,e1,f1,g1)

 

************************代码结束*****************************