首页 技术 正文
技术 2022年11月19日
0 收藏 742 点赞 4,472 浏览 1876 个字
# 直接给出第一个手机号,而不是从excel中取数据from openpyxl import load_workbookfrom tools.read_config import ReadConfigfrom tools import project_pathclass 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)- 自动更新表格中的测试数据(1)

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,556
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,406
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898