MOOC(7)- case依赖、读取json配置文件进行多个接口请求-openpyxl读取excel(14)
从excel中读取数据
# -*- coding: utf-8 -*-
# @Time : 2020/2/12 17:23
# @File : do_excel_openpyxl_14.py
# @Author: Hero Liu
from openpyxl import load_workbook
from day_20200208_mooc.tools.do_json_13 import DoJson
import json
class DoExcel:
def get_data(self, file, sheet):
wb = load_workbook(file)
sheet = wb[sheet]
test_data = []
for i in range(2, sheet.max_row+1):
row_data = {}
# 获取第i行第一列、第2列、第3列...的数据,即是获取第i行数据,并存到字典中
row_data["case_id"] = sheet.cell(i, 1).value
row_data["module_title"] = sheet.cell(i, 2).value
row_data["url"] = sheet.cell(i, 3).value
row_data["method"] = sheet.cell(i, 5).value
row_data["header"] = sheet.cell(i, 6).value
if row_data["header"] == "no":
row_data["header"] = None
row_data["case_depend"] = sheet.cell(i, 7).value
row_data["case_depend_data"] = sheet.cell(i, 8).value
row_data["depend_data_belong_new_key"] = sheet.cell(i, 9).value
# 把关键字传入DoJson,拿到真正的请求数据
row_data["data"] = DoJson("../config/user.json").get_data(sheet.cell(i, 10).value)
row_data["expected"] = sheet.cell(i, 11).value
# 把每一行的数据加到整个测试数据的列表中去
test_data.append(row_data)
return test_data
def case_data(self, file, sheet):
# 选择性地获取测试用例
case_data = []
for row_data in self.get_data(file, sheet):
case_row = {}
case_row["case_id"] = row_data["case_id"]
case_row["module_title"] = row_data["module_title"]
case_row["url"] = row_data["url"]
case_row["method"] = row_data["method"]
# if row_data["header"]:
# case_row["header"] = row_data["header"]
# else:
# row_data["header"] = None
case_row["data"] = row_data["data"]
case_row["expected"] = row_data["expected"]
case_data.append(case_row)
return case_data
def write_back(self, file, sheet, i, j, value):
# i代表行,j代表列
# 每执行一个用例,都要写回一个结果,所以i代替用例的行数
# 结果要写回到哪一列自己是清楚的,所以j可以传入固定值
wb = load_workbook(file)
sheet = wb[sheet]
sheet.cell(i, j).value = value
# 保存工作簿
wb.save(file)
if __name__ == "__main__":
# test_data = DoExcel().get_data("../data/test_data.xlsx", "case")
# print(test_data)
case_data = DoExcel().get_data("../data/test_data.xlsx", "case")
print(json.dumps(case_data, indent=2, sort_keys=False, ensure_ascii=False))
# print(type(case_data))
# case1 = case_data[0]
# case1 = eval(case_data)
# print(case1)
测试数据如图:

MOOC(7)- case依赖、读取json配置文件进行多个接口请求-openpyxl读取excel(14)的更多相关文章
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-xlrd操作excel(11)
xlrd操作excel # -*- coding: utf-8 -*- # @Time : 2020/2/12 9:14 # @File : do_excel_xlrd_11.py # @Author ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-解决用例间依赖问题(17)
最最重要,处理case依赖.字段依赖 # -*- coding: utf-8 -*- # @Time : 2020/2/13 21:14 # @File : data_depend_17.py # @ ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-读取json封装成类(13)
把读取json数据的函数封装成类 # -*- coding: utf-8 -*- # @Time : 2020/2/12 16:44 # @File : do_json_13.py # @Author ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-执行测试用例(16)
执行测试用例 # -*- coding: utf-8 -*- # @Time : 2020/2/12 22:56 # @File : run_test_16.py # @Author: Hero Li ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-完整的测试类,含依赖测试(15)
ddt.依赖测试.断言.测试数据写回 # -*- coding: utf-8 -*- # @Time : 2020/2/12 23:07 # @File : test_class_15.py # @A ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-发送测试报告邮件(19)
给多个人发邮件时,可以传入邮箱列表 把多个收件人用分号隔开 # -*- coding: utf-8 -*-# @Time : 2020/2/15 17:02# @File : send_mail_19 ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-模拟接口响应数据(18)
这里是把传入的请求数据作为响应值返回 # -*- coding: utf-8 -*- # @Time : 2020/2/15 9:47 # @File : do_mock_18.py # @Autho ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-测试类中调用封装的mock(10)
封装mock后,在单元测试中调用 # -*- coding: utf-8 -*- # @Time : 2020/2/11 8:35 # @File : test_class_10.py.py # @A ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-封装mock(9)
封装mock # -*- coding: utf-8 -*- # @Time : 2020/2/12 8:51 # @File : mock_demo_9.py # @Author: Hero Liu ...
随机推荐
- linux tar/ tar.gz文件解压
1.tar 压缩 tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成 ...
- 2. 现代 javascript 新语法 及 对象专题
let , const 和 var javascript 里面的作用域 一个大括号 是一个作用域 { } var 会 在局部作用定义 被定义时 会提升作用域 如 if 的 {} 就属于 局部作用域 ...
- 1. 现代 javascript 用法 简介 及 babel
简介 包含 ECMAScript 基本概念,babel 使用 ,eslint 使用 以及新语法的介绍 和使用经验 ECMAScript 概念 ECMASctipt 是一种由 Ecma (前身为欧洲计算 ...
- Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之数字类型(number)
Python 数字类型(number)用于存储数值.数据类型是不允许改变的,这就意味着如果改变number数据类型的值,将重新分配内存空间. 1. 一个简单的示例: # 以下实例在变量赋值时数字类 ...
- 第37章 socket编程 之练习:实现简单的web服务器
一.参考网址 1.linux C学习之实现简单的web服务器 2.C语言实现简单Web服务器(一)
- 新手学习Web前端的三个高效学习方法,基础要重视
作为新手,出于对风险的担心,不免在学习一项新技能或者转投一个新行业的时候,有所犹豫与徘徊.毕竟,在这场类似冒险的选择中,我们需要投入时间.精力以及承受相关的经济损失.但是,只有勇敢迈出第一步,才能为生 ...
- Ubuntu下查看硬盘分区UUID的方法&所有Linux目录樹
在Ubuntu中UUID的两种获取方法,至于UUID是什么,你可以大概理解为分区的标识符,像条形码那样. 在终端中输入下面的命令就可心查看到分区UUID了.命令1.sudo blkid 命令2.ls ...
- 【收藏】每天更新!全网热门公共BT种子 BitTorrent Tracker 列表合集
每天更新!全网热门公共 BitTorrent Tracker 列表合集. 该项目仅将全网热门的公共 Tracker 列表制作成合集方便大家使用,无需再一个个导入了~. 「English」(tracke ...
- recurrent NN
RNN应用到音乐数据,资料以及代码 http://www-etud.iro.umontreal.ca/~boulanni/icml2012 Modeling Temporal Dependencies ...
- 吴裕雄--天生自然 PYTHON3开发学习:JSON 数据解析
import json # Python 字典类型转换为 JSON 对象 data = { 'no' : 1, 'name' : 'Runoob', 'url' : 'http://www.runoo ...