对多条件进行组合,生成笛卡尔积的用例集合的python代码实现
做专项测试需要对一些因素进行组合的测试,这里组合起来后数据量可能很大,我们可以用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)
************************代码结束*****************************
对多条件进行组合,生成笛卡尔积的用例集合的python代码实现的更多相关文章
- 1.由于测试某个功能,需要生成500W条数据的txt,python代码如下
txt内容是手机号,数量500W,采用python代码生成,用时60S,本人技能有限,看官如果有更快的写法,欢迎留言交流. import random f = open("D:\\data. ...
- 【原创】开源.NET排列组合组件KwCombinatorics使用(一)—组合生成
本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...
- JavaEE开发之Spring中的条件注解组合注解与元注解
上篇博客我们详细的聊了<JavaEE开发之Spring中的多线程编程以及任务定时器详解>,本篇博客我们就来聊聊条件注解@Conditional以及组合条件.条件注解说简单点就是根据特定的条 ...
- 数据可视化之powerBI技巧(七)从Excel到PowerBI,生成笛卡尔积的几种方式
假如分别有100个不重复的姓和名,把每个姓和名进行组合匹配,就可以得到一万个不重复的姓名组合,这种完全匹配的方式就是生成一个姓名的笛卡尔积. 下面就来看看生成笛卡尔积的几种方式,为了展现的方便,以5个 ...
- js 生成笛卡尔积
其实生成 笛卡尔积的方法原本很简单,for循环就可以了, function discarts() { //笛卡尔积 var twodDscartes = function (a, b) { var r ...
- sqlserver 表中记录生成insert,可以加条件,可以生成建表语句
sqlserver 表中记录生成insert,可以加条件,可以生成建表语句 create PROCEDURE [sp_getinsert] ( ) , --如果非默认架构,可以加上架构名 例如:sch ...
- FLASK-SQLALCHEMY如何使用or和and条件进行组合查询
FLASK-SQLALCHEMY如何使用or和and条件进行组合查询 http://www.cherishlau.site/2018/03/29/flask-sqlalchemy-use-or-and ...
- [Dynamic Language] 用Sphinx自动生成python代码注释文档
用Sphinx自动生成python代码注释文档 pip install -U sphinx 安装好了之后,对Python代码的文档,一般使用sphinx-apidoc来自动生成:查看帮助mac-abe ...
- 基于数据库的自动化生成工具,自动生成JavaBean、数据库文档、框架代码等(v5.8.8版)
TableGo v5.8.8版震撼发布,此次版本更新如下: 1.新增两个扩展字段,用于生成自定义模板时使用. 2.自定义模板新增模板目录,可以选择不同分类目录下的模 ...
随机推荐
- 配置IIS网站,我遇到的那些坑~
配置错误 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 over ...
- r.js合并实践
项目中用到require.js做生产时模块开发,但上线要合并压缩,幸好它配套有r.js.下面就其用法说明一下. 首先建一个目录,里面的结构如下: require.js可以到r.js项目下载 r.js可 ...
- pycharm配置运行django项目步骤
1:在django项目的跟目录下执行:这是直接在Linux系统中直接运行 python manage.py runserver 0:8000 然后在浏览器中输入IP端口即可访问 pycharm配置运行 ...
- PMBook - 以考PMP为项目,整理项目章程
一.以考PMP为项目,整理项目章程 二.PMBook 制定项目章程:输出 参考资料:<PMBook第六版> 作 者: Jackson0714 出 处:http://www.cnblogs. ...
- 【Caffe篇】--Caffe从入门到初始及各层介绍
一.前述 Caffe,全称Convolutional Architecture for Fast Feature Embedding.是一种常用的深度学习框架,主要应用在视频.图像处理方面的应用上.c ...
- Chapter 5 Blood Type——32
"Where are you all going, exactly?" He was still looking ahead, expressionless. “真的,你要去哪里? ...
- jq切换面板
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- 原生js轮盘抽奖实例分析(幸运大转盘抽奖)
效果图: 所需图片素材: 这张图是pointer.png的位置的. turntable-bg.jpg这张是转盘背景图,在背景位置. 这张是turntable.png位置的. 需要这三张图片,如果要实现 ...
- 从零开始学安全(四十三)●Wireshark分析ICMP(IP)协议
存活时间与IP分片 这里我们首先来研究一下关于IP协议的两个非常重要的概念:存活时间与IP分片.存活时间(TTL,Time to Live)用于定义数据包的生存周期,也就是在该数据包被丢弃之前,所能够 ...
- nginx系列10:通过upstream模块选择上游服务器和负载均衡策略round-robin
upstream模块的使用方法 1,使用upstream和server指令来选择上游服务器 这两个指令的语法如下图: 示例: 2,对上游服务使用keepalive长连接 负载均衡策略round-rob ...