【自动化测试】脚本与参数分离之脚本读取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()

 

posted @ 2020-11-12 11:19  Xiao世  阅读(256)  评论(0编辑  收藏  举报