unittest(20)- 自动更新表格中的测试数据(1)
# 直接给出第一个手机号,而不是从excel中取数据 from openpyxl import load_workbook from tools.read_config import ReadConfig from tools import project_path class DoExcel: def get_data(self, file): wb = load_workbook(file) # 读出来的配置项是字符串格式,需要转换成字典格式 mode = eval(ReadConfig.get_config(project_path.case_config_path_auto_incre, "MODE", "mode")) tel = 15546355882 # 假设是从excel中拿到的手机号 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) 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) if __name__ == '__main__': test_data = DoExcel().get_data(project_path.test_case_path) print(test_data) print(len(test_data)) # 获取列表元素个数
配置文件如图:
用例数据如图:
unittest(20)- 自动更新表格中的测试数据(1)的更多相关文章
- unittest(20)- 自动更新表格中的数据(3)
通过函数获取表格中的手机号 # 1. get_data.py from tools import project_path import pandas as pd class GetData: Coo ...
- unittest(20)- 自动更新表格中数据(5)
# 1. get_data.py from tools import project_path import pandas as pd class GetData: Cookie = None Add ...
- Jenkins和Gitlab CI/CD自动更新k8s中pod使用的镜像说明
Jenkins 使用Jenkins的话,完成的工作主要有如下步骤: 1.从Gogs或Gitlab仓库上拉取代码 2.使用Maven编译代码,打包成jar文件 3.根据jar文件使用相对应的Docker ...
- odoo自动更新表中数据
这是追踪信息用的查询语句,__init__方法初始化作用 _order = ctx = dict(context or {}, mail_create_nolog=True) new_id = sup ...
- 自动更新Aria2中的bt-trackers选项
#!/bin/bash /usr/sbin/service aria2 stop list=`wget -qO- https://raw.githubusercontent.com/ngosang/t ...
- android使用友盟第三方自动更新/手动更新
最近项目用到自动更新,发现一个方便快捷的第三方组件非常好用,只需要几行代码搞定,非常适合新手使用.分享给大家一起学习. 本文档帮助您以最快速最简洁的方式集成使用自动更新组件. 一.申请友盟开发者账号创 ...
- 安卓程序代写 网上程序代写[原]Android应用的自动更新模块
软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很 ...
- [转]Android应用的自动更新
软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很 ...
- 【Android 应用开发】Android应用的自动更新模块
. 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 软件的自动更新一般都与Splash界 ...
随机推荐
- spring学习之第一个spring程序
spring的入门程序 1.在Eclipse中创建Java项目,并将spring的四个核心包和依赖包添加到src里,发布到类路劲下,项目如图所示: 2.UserDao程序如下: package com ...
- List和Map集合详细分析
1.Java集合主要三种类型(两部分): 第一部分:Collection(存单个数据,只能存取引用类型) (1).List :是一个有序集合,可以放重复的数据:(存顺序和取顺序相同) (2).Set ...
- UML-迭代1-基础
1.原则 1).拆分成多个按时间定量.风险驱动的迭代(细化1.细化2.细化3.细化4) 2).在多个迭代中,对同一用例增量开发. 2.最佳实践 设计人员:对架构的核心和风险做适当设计.实现和测试 研发 ...
- js等于符号的详解
JavaScript == 与 === 区别 1.对于 string.number 等基础类型,== 和 === 是有区别的 a)不同类型间比较,== 之比较 "转化成同一类型后的值&quo ...
- Python3.7离线安装Requests无法正常使用问题
继续搬砖...... 春节前,克服了网络受限的情况下离线安装Python库文件问题,传送门如下: https://www.cnblogs.com/mrgavin/p/12202214.html htt ...
- 洛谷 P2622 关灯问题II【状压DP】
传送门:https://www.luogu.org/problemnew/show/P2622 题面: 题目描述 现有n盏灯,以及m个按钮.每个按钮可以同时控制这n盏灯--按下了第i个按钮,对于所有的 ...
- 搭建solr8
这里记录linux上的安装过程 一.下载安装包 https://lucene.apache.org/solr/downloads.html 二.解压安装 这里我放倒了/usr/local/solr目录 ...
- EmailService
package me.zhengjie.tools.service; import me.zhengjie.tools.domain.EmailConfig; import me.zhengjie.t ...
- 定义变量|dirname|basename|printf
$ basename /xxxx/test test $ dirname /xxxx/test /xxx $ dirname /xxx/test|while read p;do sp=$p" ...
- iOS 仿看了吗应用、指南针测网速等常用工具、自定义弹出视图框架、图片裁剪、内容扩展等源码
iOS精选源码 扩展内容的cell - folding-cell 一个近乎完整的可识别中国身份证信息的Demo 可自动快速... JPImageresizerView 仿微信的图片裁剪 带年月和至今以 ...