做专项测试需要对一些因素进行组合的测试,这里组合起来后数据量可能很大,我们可以用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. 1.由于测试某个功能,需要生成500W条数据的txt,python代码如下

    txt内容是手机号,数量500W,采用python代码生成,用时60S,本人技能有限,看官如果有更快的写法,欢迎留言交流. import random f = open("D:\\data. ...

  2. 【原创】开源.NET排列组合组件KwCombinatorics使用(一)—组合生成

           本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...

  3. JavaEE开发之Spring中的条件注解组合注解与元注解

    上篇博客我们详细的聊了<JavaEE开发之Spring中的多线程编程以及任务定时器详解>,本篇博客我们就来聊聊条件注解@Conditional以及组合条件.条件注解说简单点就是根据特定的条 ...

  4. 数据可视化之powerBI技巧(七)从Excel到PowerBI,生成笛卡尔积的几种方式

    假如分别有100个不重复的姓和名,把每个姓和名进行组合匹配,就可以得到一万个不重复的姓名组合,这种完全匹配的方式就是生成一个姓名的笛卡尔积. 下面就来看看生成笛卡尔积的几种方式,为了展现的方便,以5个 ...

  5. js 生成笛卡尔积

    其实生成 笛卡尔积的方法原本很简单,for循环就可以了, function discarts() { //笛卡尔积 var twodDscartes = function (a, b) { var r ...

  6. sqlserver 表中记录生成insert,可以加条件,可以生成建表语句

    sqlserver 表中记录生成insert,可以加条件,可以生成建表语句 create PROCEDURE [sp_getinsert] ( ) , --如果非默认架构,可以加上架构名 例如:sch ...

  7. FLASK-SQLALCHEMY如何使用or和and条件进行组合查询

    FLASK-SQLALCHEMY如何使用or和and条件进行组合查询 http://www.cherishlau.site/2018/03/29/flask-sqlalchemy-use-or-and ...

  8. [Dynamic Language] 用Sphinx自动生成python代码注释文档

    用Sphinx自动生成python代码注释文档 pip install -U sphinx 安装好了之后,对Python代码的文档,一般使用sphinx-apidoc来自动生成:查看帮助mac-abe ...

  9. 基于数据库的自动化生成工具,自动生成JavaBean、数据库文档、框架代码等(v5.8.8版)

    TableGo v5.8.8版震撼发布,此次版本更新如下:          1.新增两个扩展字段,用于生成自定义模板时使用.          2.自定义模板新增模板目录,可以选择不同分类目录下的模 ...

随机推荐

  1. java使用SSH连接Linux系统

    SSH连接linux系统使我们在开发项目中常用到的,现在留下来,做个记录 package com.log; import java.io.BufferedReader; import java.io. ...

  2. CopyOnWriteArrayList源码解析

    Java并发包提供了很多线程安全的集合,有了他们的存在,使得我们在多线程开发下,可以和单线程一样去编写代码,大大简化了多线程开发的难度,但是如果不知道其中的原理,可能会引发意想不到的问题,所以知道其中 ...

  3. mysql的学习笔记(七)

    1.自定义函数,函数可以返回任意类型的值,同样可接说这些类型的参数. CREATE FUNCTION function_name RETURNS {STRING|INTER|REAL|DECIMAL} ...

  4. golang的cms

    golang的cms 说说cms cms(内容管理系统)是建站利器.它的本质是为了快速建站.cms本质是一个后台服务站,使用这个后台,能很快搭建一个前台web站.在PHP的世界里面,CMS框架简直不要 ...

  5. Sublime Text 3下载安装以及安装HTML-CSS-JS Prettify代码格式化插件

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Sublime Text的安装以及安装插件步骤. 下载Sublime Text 官网地址:http://www.sublimetex ...

  6. springboot~configserver里对重要信息进行RSA加密

    简介 参考:https://springcloud.cc/spring-cloud-dalston.html#_encryption_and_decryption_2 RSA非对称加密有着非常强大的安 ...

  7. C#委托、事件、线程

    这是几个简单的例子,但是实际的开发中委托还还只在反射时用到过,事件的话只自己做了一次,并且还是特意去用的 ,实际上可以不用.线程的话,因为需要,所以用的会多点,这里主要是WS上的线程. 委托 在前面的 ...

  8. TypeScript|Angular踩坑笔记

    今天按照Angular官网玩了下demo程序,踩了个小坑,记录下. TypeScript可以将变量申明为自定义类型,同时也不对该类型进行检查(不像C#,如果没有这个类型会报错) 比如下面这样: 如果我 ...

  9. 如何發佈一個完整Node.js Module

    本文會透過以下幾個段落,讓各位一步一步學習如何寫一個自已的Node.js Module並且發佈到npm package上 Node.js Module 結構 我們先建立一個 NodeModuleDem ...

  10. ServiceStack.Redis 请求次数6000次异常

    Redis是一个非常NB的内存级的数据库,我们可以把很多”热数据“(即读写非常多的数据)放入其中来操作,这样就减少了和关系型数据库(如SqlServer/My Sql等)之间的交互,程序的响应速度也大 ...