【自动化测试】脚本与参数分离之脚本读取excel随机值问题
上次建议在excel表里面来取随机值,然后由脚本读取excel表里面的值,然而接踵而来的问题就是无论我在excel写的随机函数,通过脚本读取是无法成功随机。例如我的手机号码在excel表显示18011112222,脚本第一次读取也是18011112222;但是,当我第二次运行脚本的时候,脚本仍旧读取18011112222。查找了原因是excellibrary仅做了读取,并未对其excel实际上的操作。然后我们调用excellibrary的保存,意图通过保存同一份文件的方式实现其操作,然而并不能,原因是保存这段代码存在问题。于是便自己来写。
其中调用excel的随机函数为:
这是我写的方法,分成三步:1新增一个活动来读取excel;2.读取excel的值;3.保存源文件并关闭excel(这一步就是为了重复第一步的时候,打开excel随机值会刷新)注意:只需要安装xlwings即可。【该类还存在小bug(不影响使用,例如现在要求把excel表处于关闭状态),和完善该类其他内容(例如其他需求问题)】
目前使用的python3.x以上的修改:链接:https://pan.baidu.com/s/1lI3S58yAcvkHEpvqijlZxg 提取码:y1se 复制这段内容后打开百度网盘手机App,操作更方便哦
调用LinswLibrary/TestEexcel皆可。
源码:
1 #coding=utf-8 2 3 import xlwings as xw 4 5 class TestExcel: 6 """ 7 Example: 8 | Library | LinswLibrary | 9 10 """ 11 def __init__(self): 12 self.wb = None 13 self.app = None 14 self.wsheet = None 15 self.nsheet = None 16 self.list1 = None 17 self.danyuanvalue = None 18 pass 19 20 def OpenExcel(self,url): 21 """ 22 打开excel表 23 Author linsw 24 25 参数:文件路径+文件名 26 27 Example: 28 | *Keywords* | 29 | open excel | C:\\TEST\\1.xls | 30 31 """ 32 self.app = xw.App(visible = True, add_book = False) 33 self.wb = self.app.books.open(url) 34 35 def ReadSheet(self,sheetname,shuju): 36 """ 37 读取excel中表内数据 38 Author linsw 39 40 参数:表名,单元格(A1 或者 A1:B3) 41 42 Example: 43 | *Keywords* | 44 | read sheet | Sheet1 | A1:B3 | 45 46 """ 47 self.wsheet = self.wb.sheets(sheetname) 48 self.list1 = [] 49 self.list1 = self.wsheet.range(shuju).value 50 return self.list1 51 52 def NewSheet(self,sheetname): 53 """ 54 新增表并引用该活动的表 55 Author linsw 56 57 参数:表名 58 59 Example: 60 | *Keywords* | 61 | new sheet | Sheet12 | 62 63 """ 64 self.nsheet = self.wb.sheets.add(sheetname,before=None,after=None) 65 self.wb.sheets.active 66 67 def SaveCloseExcel(self): 68 """ 69 保存excel在原路径并关闭excel活动 70 Author linsw 71 72 无参数 73 74 Example: 75 | *Keywords* | 76 | save close excel | 77 78 """ 79 self.wb.save() 80 self.wb.close() 81 self.app.quit() 82 83 def NewSheetValue(self,sheetname,shuju,danyuanvalue): 84 """ 85 在excel的单元格赋值 86 Author linsw 87 88 参数:表名,单元格,值 89 90 Example: 91 | *Keywords* | 92 | new sheet value | Sheet1 | A1 | test | 93 94 """ 95 self.danyuanvalue = danyuanvalue 96 self.wb.sheets[sheetname].range(shuju).value = self.danyuanvalue 97 98 def SaveOtherExcel(self,url): 99 """ 100 另存文件 101 Author linsw 102 103 参数:文件路径+新文件名 104 105 Example: 106 | *Keywords* | 107 | save other excel | C:\\TEST\\2.xls | 108 109 """ 110 self.wb.save(url) 111 self.wb.close() 112 self.app.quit() 113 114 def CloseExcel(self): 115 """ 116 关闭excel 117 Author linsw 118 119 无参数 120 121 Example: 122 | *Keywords* | 123 | close excel | 124 125 """ 126 self.wb.close() 127 self.app.quit()
一切博文基本原创,谢谢