前言

对于前文写到的以excel数据驱动的框架中,每个用例都是单独的不依赖其他的案例,现在一个用例可能会有多个步骤,按照前面写道的博文中按excel表中逐行取出excel的值,那么一条用例有多个步骤,取出的数据有多行数据,现在需要对这种情况进行处理

实现过程用到的关键点


# setdefault修改字典,key存在,不修改原来键值的内容;key不存在,添加到字典中
# 字典名[key] = value key存在修改原来键值内容,key不存在,添加到字典中
list1 = {"name":"liujingling","age":25,"sex":"woman"}
# list1.setdefault("sex","man")
# print(list) #sex键的值不变 list1["sex"] = "man"
print(list1) #sex键的值变

将如下样式的数据格式进行优化

list1 =
[{
'测试用例编号': 'case01',
'测试用例名称': '测试能否正确执行*******接口',
'测试用例步骤': 'step_01',
................... }, {
'测试用例编号': 'case02',
'测试用例名称': '测试能否正确新增******',
'测试用例步骤': 'step_01',
...................
}, {
'测试用例编号': 'case02',
'测试用例名称': '测试能否正确新增*****',
'测试用例步骤': 'step_02',
...................
}]

优化步骤1

实现代码:
case_dict = {}
for i in list1:
case_dict.setdefault(i['测试用例编号'],[]).append(i)
print(case_dict) #优化成下面形式
----------------------------------------------------------------------------
{
'case01': [{
'测试用例编号': 'case01',
'测试用例名称': '测试能否正确执行*******接口',
'测试用例步骤': 'step_01',
...................
}],
'case02': [{
'测试用例编号': 'case02',
'测试用例名称': '测试能否正确新增******',
'测试用例步骤': 'step_01',
...................
}, {
'测试用例编号': 'case02',
'测试用例名称': '测试能否正确新增*****',
'测试用例步骤': 'step_02',
...................
}]
}

优化步骤2:


实现代码:
list2 = []
for k,v in case_dict.items():
dict2 = {}
dict2['test_case']= k
dict2['test_info']= v
list2.append(dict2)
print(list2) #优化成如下形式 --------------------------------------------------------------------------------
[{
'test_info': [{
'测试用例编号': 'case01',
'测试用例名称': '测试能否正确执行获取*****接口',
'测试用例步骤': 'step_01',
...................
}],
'test_case': 'case01'
}, {
'test_info': [{
'测试用例编号': 'case02',
'测试用例名称': '测试能否正确新增*****',
'测试用例步骤': 'step_01',
...................
}, {
'测试用例编号': 'case02',
'测试用例名称': '测试能否正确新增*****',
'测试用例步骤': 'step_02',
...................
}],
'test_case': 'case02'
}]

python-对于一个用例有多个步骤,转换成1条案例的处理方法的更多相关文章

  1. 一个java的DES加解密类转换成C#

    原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //i ...

  2. 一个java的DES加密解密类转换成C#

    一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //import java.util.regex.P ...

  3. 分享一个小工具:Excel表高速转换成JSON字符串

    在游戏项目中一般都须要由策划制作大量的游戏内容,当中非常大一部分是使用Excel表来制作的.于是程序就须要把Excel文件转换成程序方便读取的格式. 之前项目使用的Excel表导入工具都是通过Offi ...

  4. 用python把一个txt文件中所有逗号,替换成空格?

    string = "word 2 3 4 5 6 7" string = ",".join(string.split()) import numpy as np ...

  5. MYSQL: sql中某一个字段内容为用逗号分割的字符串转换成多条数据

    场景: 表名:testsuer id     name 1       小红,小李,李红,小法 要结果值为: 1     小红 1     小李 1     李红 1     小法 MYSQL函数解释 ...

  6. 知道内存中一个图片的指针IntPtr大小,转换成图片显示

    //nSize 为总长度//pImageData 为总数据//nImageSize //一个图片的长度 byte[] _bytes = new byte[nImageSize];// //IntPtr ...

  7. python 实用技巧:几十行代码将照片转换成素描图、随后打包成可执行文件(源码分享)

    效果展示 原始效果图 素描效果图 相关依赖包 # 超美观的打印库 from pprint import pprint # 图像处理库 from PIL import Image # 科学计算库 imp ...

  8. Python使用np.c_和np.r_实现数组转换成矩阵

    # -*- coding: utf-8 -*-"""Created on Sat Jun 30 14:49:22 2018 @author: zhen"&quo ...

  9. 输入一个十进制数N,将它转换成R进制数输出(运用递归实现)

    #include<stdio.h> int cnt=0;                             //用来记录每个进制存放的位置 char num[20];   //用来存 ...

随机推荐

  1. RocketMQ架构原理解析(一):整体架构

    RocketMQ架构原理解析(一):整体架构 RocketMQ架构原理解析(二):消息存储(CommitLog) RocketMQ架构原理解析(三):消息索引(ConsumeQueue & I ...

  2. ProE许可、PTC许可、Creo许可、许可分析、分析许可

    Pro/Engineer操作软件(又简称ProE)是美国参数技术公司(PTC)旗下的CAD/CAM/CAE一体化的三维软件,Creo是美国PTC公司于2010年10月推出CAD设计软件包,creo是P ...

  3. 539. Minimum Time Difference

    Given a list of 24-hour clock time points in "Hour:Minutes" format, find the minimum minut ...

  4. FilterChain过滤器链(Servlet)

    在 Web 应用中,可以部署多个 Filter,若这些 Filter 都拦截同一目标资源,则它们就组成了一个 Filter 链(也称过滤器链).过滤器链中的每个过滤器负责特定的操作和任务,客户端的请求 ...

  5. gorm中动态使用表名

    用户表(前台.后台) type User struct { ID int `gorm:"primaryKey;autoIncrement"` Name sql.NullString ...

  6. Go 面向对象之结构体

    #### Go 面向对象之结构体最近有四天没更新公众号,有一些事情耽误了,生活就是这样,总会一些事情让人措不及防; ***山浓水浅,坐看流年***1. Go 也支持面向对象编程(OOP) 但是它和传统 ...

  7. APC 篇——备用 APC 队列

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  8. 普罗米修斯+grafana监控k8s

    其实现原理有点类似ELK.node-exporter组件负责收集节点上的metrics监控数据,并将数据推送给prometheus, prometheus负责存储这些数据,grafana将这些数据通过 ...

  9. 好用的 NPL 词库分类。

    ## 好用的 NPL 词库分类. 专业的词库分类技术. 主要服务于金融领域的词库划分. 上图!对比一下我们的分词和jie等模型的效果.做的就是专业! ![在这里插入图片描述](https://img- ...

  10. NOIP2018 Day2T2 填数游戏

    下面先给出大家都用的打表大法: 首先我们可以发现 \(n \le 3\) 的情况有 \(65pts\),而 \(n\) 这么小,打一下表何乐而不为呢?于是我写了一个爆枚每个位置再 \(check\) ...