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)

测试数据如图:

原文地址:https://www.cnblogs.com/come202011/p/12315051.html

时间: 2024-10-08 03:58:27

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: Hero Liu import xlrd # 打开工作簿 work_book = xlrd.open_workbook("../data/test_data.xlsx") # 通过指定索引获取sheet表,索引从0开始:也可以通过指定表名来获取 # table = work_book.

MOOC(7)- case依赖、读取json配置文件进行多个接口请求-执行测试用例(16)

执行测试用例 # -*- coding: utf-8 -*- # @Time : 2020/2/12 22:56 # @File : run_test_16.py # @Author: Hero Liu import sys sys.path.append("h:/python_lemon") import unittest from day_20200208_mooc.base.test_class_15 import TestRequest import HTMLTestRunne

MOOC(7)- case依赖、读取json配置文件进行多个接口请求-模拟接口响应数据(18)

这里是把传入的请求数据作为响应值返回 # -*- coding: utf-8 -*- # @Time : 2020/2/15 9:47 # @File : do_mock_18.py # @Author: Hero Liu # 接口不可用,模拟返回响应数据 import mock def mock_test(mock_method, url, method, request_data, response_data, header=None): mock_method = mock.Mock(re

.Net Core控制台应用加载读取Json配置文件

⒈添加依赖 Microsoft.Extensions.Configuration Microsoft.Extensions.Configuration.FileExtensions Microsoft.Extensions.Configuration.Json ⒉在项目中添加Json配置文件并将其复制到输出目录属性设置为“始终复制” 1 { 2 "ConnectionStrings": { 3 "StudyConnStr": "Data Source=.;

python写的读取json配置文件

配置文件默认为conf.json 使用函数set完成追回配置项. 使用load或取配置项. 代码如下: #!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' json配置文件类,调用方法 data_dict = {"a":"1", "b":"2"} JsonConf.set(data_dict) 即可在当前目录下生成json文件:config.json ''' import js

.Net Core Web应用加载读取Json配置文件

⒈添加Json配置文件并将“复制到输出目录”属性设置为“始终复制” 1 { 2 "Logging": { 3 "LogLevel": { 4 "Default": "Warning" 5 } 6 }, 7 "AllowedHosts": "*" 8 } 1 { 2 "ConnectionStrings": { 3 "StudyConnStr": &

net core 简单读取json配置文件

//添加 json 文件路径 var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json"); //创建配置根对象 var configurationRoot = builder1.Build(); //读取到ioc IOptions<SuperAppsettings> setting 依赖注入 serv

golang读取json配置文件

test_json.go: package main import ( io "io/ioutil" json "encoding/json" "fmt" ) type JsonStruct struct{ } func NewJsonStruct () *JsonStruct { return &JsonStruct{} } func (self *JsonStruct) Load (filename string, v interfa

js 实现读取json 文件,实现批量发送请求

最终文件结构: request-demo node_module run.js data.json package.js 准备工作: 新建一个项目文件夹,执行以下命令, 会自动在该文件下生成 node_module 文件夹: npm install fs npm install axios npm install babel-cli npm install babel-preset-es2015 创建一个 data.json ,内容如下 { "profiles":[ { "i