前言

对于前文写到的以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. 机器学习&恶意代码动态检测

    目录 写在前面 1 基于API调用的统计特征 2 API序列特征 3 API调用图 4 基于行为的特征 references: 写在前面 对恶意程序动态检测方法做了概述, 关于方法1和2可以参考阿里云 ...

  2. unittest测试框架

    unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果. 一.u ...

  3. blender建模常用建模快捷键

    编辑物体 M2选取 M2+SHIFT选取多个 A全选 B+M1矩阵选择 C+M1笔刷选择 CTRL+M1套索选择 CTRL+SHIFT+M1取消套索选择 ALT+M2选择边循环,面 CTRL+ALT+ ...

  4. golang中数组指针与指针数组的区别实现

      指针数组和数组的指针,指的是两个不同的东西. 指针数组是有指针组成的数组,数组的指针是一个数组的指针. package main import "fmt" const MAX ...

  5. Kubernetes集群PV和PVC详解

    Kubernetes集群高级存储资源PV及PVC 文章目录 Kubernetes集群高级存储资源PV及PVC 1.高级存储PV和PVC概念部分 2.PV和PVC资源的生命周期 3.PV资源介绍与案例配 ...

  6. Docker挂载主机目录到容器

    docker run -it -v /宿主机绝对目录:/容器内目录 镜像名

  7. asp.net core监控—引入Prometheus(三)

    上一篇博文中说到Prometheus有四种指标类型:Counter(计数器).Gauge(仪表盘).Histogram(直方图).Summary(摘要),并且我们做了一个Counter的Demo,接下 ...

  8. 学习JAVAWEB第十天

    今天内容: 运行servlet到崩溃,一直是404 明天继续运行

  9. 微服务架构 | 7.2 构建使用 JWT 令牌存储的 OAuth2 安全认证

    目录 前言 1. JWT 令牌存储基础知识 1.1 JSON Web Token 2. 构建使用 JWT 令牌存储的 OAuth2 服务器 2.1 引入 pom.xml 依赖文件 2.2 创建 JWT ...

  10. Nginx 配置 HTTPS 服务器

    Nginx 配置 HTTPS 服务器 Chrome 浏览器地址栏标志着 HTTPS 的绿色小锁头从心理层面上可以给用户专业安全的心理暗示,本文简单总结一下如何在 Nginx 配置 HTTPS 服务器, ...