unittest(20)- 自动更新表格中的数据(3)
通过函数获取表格中的手机号
# 1. get_data.py from tools import project_path import pandas as pd class GetData: Cookie = None AddTel = pd.read_excel(project_path.test_case_path, sheet_name="phone").iloc[0, 0] # df = pd.read_excel(project_path.test_case_path, sheet_name="phone") # print(df.iloc[0, 0]) # 获取phone表单中的A1单元格的值
# 2. do_excel.py # 从表格中获取手机号,进行值的传递 from openpyxl import load_workbook from tools.read_config import ReadConfig from tools import project_path from account_auto_incre_6.get_data import GetData class DoExcel: @classmethod def get_data(cls, file): wb = load_workbook(file) # 读出来的配置项是字符串格式,需要转换成字典格式 mode = eval(ReadConfig.get_config(project_path.case_config_path_auto_incre, "MODE", "mode")) # tel = getattr(GetData, "AddTel") # 从GetData中拿到数据 tel = cls.get_tel(project_path.test_case_path, "phone") test_data = [] for key in mode: sheet = wb[key] # 表单名 if mode[key] == "all": for i in range(2, sheet.max_row+1): row_data = {} # 数值类型读出来还是数值,不用使用函数eval转换 row_data["case_id"] = sheet.cell(i, 1).value row_data["url"] = sheet.cell(i, 2).value row_data["method"] = sheet.cell(i, 3).value # row_data["data"] = eval(sheet.cell(i, 4).value) if sheet.cell(i, 4).value.find("${tel_1}") != -1: # 表示在这个单元格的值中如果找到了${tel_1}字符串 row_data["data"] = sheet.cell(i, 4).value.replace("${tel_1}", str(tel)) elif sheet.cell(i, 4).value.find("${tel}") != -1: # 如果找到${tel} row_data["data"] = sheet.cell(i, 4).value.replace("${tel}", str(tel+1)) # 加1是因为要使用不同的手机号 else: # 如果没有找到匹配的字符串 row_data["data"] = sheet.cell(i, 4).value row_data["title"] = sheet.cell(i, 5).value row_data["expected"] = sheet.cell(i, 6).value row_data["sheet_name"] = key # 为了写回测试结果时定位表单 test_data.append(row_data) cls.update_tel(file, "phone", tel+2) # 加2是因为测试用例中已经使用了2个手机号了 else: for case_id in mode[key]: row_data = {} row_data["case_id"] = sheet.cell(case_id+1, 1).value # 注意行号和case_id的关系 row_data["url"] = sheet.cell(case_id+1, 2).value row_data["method"] = sheet.cell(case_id+1, 3).value row_data["data"] = eval(sheet.cell(case_id+1, 4).value) row_data["title"] = sheet.cell(case_id+1, 5).value row_data["expected"] = sheet.cell(case_id+1, 6).value row_data["sheet_name"] = key # 为了写回测试结果时定位表单 test_data.append(row_data) return test_data def write_back(self, file, sheet, i, response, test_result): wb = load_workbook(file) sheet = wb[sheet] # 写入测试结果, value必须是数据或者字符串类型才能被写回,写入数据前必须关闭工作簿 sheet.cell(i, 7).value = response sheet.cell(i, 8).value = test_result # 保存工作簿 wb.save(file) @classmethod def update_tel(cls, file, sheet_name, tel): wb = load_workbook(file) sheet = wb[sheet_name] sheet.cell(2, 1).value = tel wb.save(file) # 不使用反射,写一个获取手机号的函数 @classmethod def get_tel(cls, file, sheet_name): wb = load_workbook(file) sheet = wb[sheet_name] tel = sheet.cell(2, 1).value return tel if __name__ == '__main__': test_data = DoExcel().get_data(project_path.test_case_path) print(test_data) print(len(test_data)) # 获取列表元素个数
配置文件如图:
测试数据如图:
unittest(20)- 自动更新表格中的数据(3)的更多相关文章
- unittest(20)- 自动更新表格中数据(5)
# 1. get_data.py from tools import project_path import pandas as pd class GetData: Cookie = None Add ...
- unittest(20)- 自动更新表格中的测试数据(1)
# 直接给出第一个手机号,而不是从excel中取数据 from openpyxl import load_workbook from tools.read_config import ReadConf ...
- 如何使用免费控件将Word表格中的数据导入到Excel中
我通常使用MS Excel来存储和处理大量数据,但有时候经常会碰到一个问题—我需要的数据存储在word表格中,而不是在Excel中,这样处理起来非常麻烦,尤其是在数据比较庞大的时候, 这时我迫切地需要 ...
- jQuery Ajax遍历表格,填充数据,将表格中的数据一条一条拼成Jason数组
$.ajax({ url: baseURL + "InvoiceSale/OnQuotaInvoiceSale", //点击核销单号时,点击核销时,交互的页面 ...
- 利用java反射机制实现读取excel表格中的数据
如果直接把excel表格中的数据导入数据库,首先应该将excel中的数据读取出来. 为了实现代码重用,所以使用了Object,而最终的结果是要获取一个list如List<User>.Lis ...
- python读取excel表格中的数据
使用python语言实现Excel 表格中的数据读取,需要用到xlrd.py模块,实现程序如下: import xlrd #导入xlrd模块 class ExcelData(): def __init ...
- java读取Excel表格中的数据
1.需求 用java代码读取hello.xls表格中的数据 2.hello.xls表格 3.java代码 package com.test; import java.io.File; import j ...
- ajax异步获取数据后动态向表格中添加数据(行)
因为某些原因,项目中突然需要做自己做个ajax异步获取数据后动态向表格中添加数据的页面,网上找了半天都没有 看到现成的,决定自己写个例子 1.HTML页面 <!doctype html> ...
- 在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的“删除”超链接
查看本章节 查看作业目录 需求说明: 在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的"删除"超链接,使用 DOM 节点的删除操作将对应的 ...
随机推荐
- D - Lis on Circle Gym - 102441D (LIS + 线段树)
There are nn people at the round gaming table. Each of them has a set of cards. Every card contains ...
- pip anaconda 添加国内镜像
源地址 官方默认镜像太慢.换成国内源比较快.几个源的地址: 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun. ...
- ccf201403-3 记录一个神tmwa了的代码 莫非我没看懂题。。。
#include <string.h> #include<cstdio> #include<stdio.h> #include <iostream> # ...
- 使用pycharm遇到问题排查过程
一.安装Python 下载路径:https://www.python.org/downloads/ 二.配置环境变量 安装Python后,配置环境变量,将安装目录添加到Path中: 使用pycharm ...
- 解决 nginx 启动错误 nginx: [emerg] host not found in upstream
解决办法来自于:https://blog.csdn.net/Hreticent/article/details/86074502 感谢这个朋友简单而清晰的解决办法. 在配置nginx支持PHP的时候, ...
- LeetCode——71.简化路径
以 Unix 风格给出一个文件的绝对路径,你需要简化它.或者换句话说,将其转换为规范路径. 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身:此外,两个点 (..) 表示将目录切换到上一级 ...
- Papa开启“点播孙子”模式,新型老年人服务能在国内扎根吗?
"互联网+"对多个行业的全面赋能和渗入,的确让我们的生活与工作处处充满了便利.很多"跑断腿"才能办的事,现在只要在PC.智能手机上滑动鼠标.点击屏幕就能轻松搞定 ...
- iOS之input file调用相册控制器消失跳转到登陆页
最近在做一个app要用到H5,其中有一个需求是要点击H5的的控件弹出系统相册,通过在H5的input file 中定义<input type="file" class=&qu ...
- Oracle不同版本中序列的注意点
<span style="font-size:14px;">create table manager ( userid NUMBER(10), username VAR ...
- AOP实现防止接口重复提交
项目中对于状态变更接口存在重复提交的问题. package com.yxx.survey.foundation.aop; import com.alibaba.fastjson.JSON; impor ...