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 ...
随机推荐
- ZJNU 2349 - 抽抽抽
为4的倍数,列出所有可能情况再判断即可 处理输入的数据对4取模 可得 4444 2244 2222 1111 3333 1133 1223 1344 1124 3324 共十种情况 所以得出答案 #i ...
- Thread--currentThread()
参考:http://bbs.csdn.net/topics/391872079 package thread.demo01; public class MyThread extends Thread ...
- OpenMP笔记(三)
个人博客地址:http://www.bearoom.xyz/2019/02/21/openmp3/ 这一部分主要记录一些指令的使用. 一.parallel的使用 parallel是用于构造并行块的,也 ...
- nginx_tcp_proxy代理酸酸乳
一.安装低版本的nginx(高版本不支持tcp代理模块:nginx_tcp_proxy_module)Nginx默认只支持http反向代理,要支持tcp反向代理,需在编译时增加tcp代理模块[ngin ...
- Java 面向对象 异常处理:RunTimeexception,try-catch,异常声明throws,自定义异常,throw和throws的区别,多异常处理(9)
Java 面向对象 异常处理:RunTimeexception,try-catch,异常声明throws,自定义异常,throw和throws的区别,多异常处理(9)
- 中小规模集群----Centos6部署wordpress及java程序
1 概述 1.1 业务需求 公司共有两个业务,网上图书馆和一个电商网站.现要求运维设计一个安全架构,本着高可用.廉价的原则. 具体情况如下: 网上图书馆是基于jsp开发: 电商系统是基于 ...
- 计蒜客 蒜头君回家(有条件的BFS)
蒜头君要回家,但是他家的钥匙在他的朋友花椰妹手里,他要先从花椰妹手里取得钥匙才能回到家.花椰妹告诉他:“你家的钥匙被我复制了很多个,分别放在不同的地方.” 蒜头君希望能尽快回到家中,他需要首先取得任意 ...
- pyQt 流布局的一个例子
瀑布流布局 from PyQt5.QtCore import QPoint, QRect, QSize, Qt from PyQt5.QtWidgets import (QApplication, Q ...
- Maven依赖三板大斧
一:问题出现场景 记得有一次,面试时候面试官问了个问题,来哥们,“你们项目是maven搭建哈,你的项目里如果出现架包冲突了,你们怎么解决的?”. 我:......,装作很淡定,我们是通过报错,定位哪个 ...
- JavaScript学习笔记 - 进阶篇(6)- JavaScript内置对象
什么是对象 JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法. 对象的属性:反映该对象某些特定的性质的,如:字符串的长度.图像的长宽等: 对象的方法: ...