失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python ui自动化测试仪器_python UI自动化测试

python ui自动化测试仪器_python UI自动化测试

时间:2024-02-29 23:57:20

相关推荐

python ui自动化测试仪器_python UI自动化测试

为了减小维护成本:

1.UI自动化测试需要有较为稳定的环境

2.代码设计合理,那么我们就需要面向对象的设计一个框架,将重复的代码模块化

一、首先总结一下 UI自动化大概要哪些模块

1.config(配置文件):用来存放配置文件(YML,XML,HTML。。。)

2.data(数据文件):存放测试数据等

3.drivers(驱动):Chromedriver,IEdriver

4.log(日志文件):打印测试log

5.report(报告):生成HTML测试报告

6.test(测试用例):写TestCase调用其他模块中的方法

7.utils(公共方法):写调用config、data、log、report等其他模块的方法

8.后续可自己增加其他模块,比如针对某类型元素的获取,page中元素的定位等

二、结合起来运用

首先如果我们没有框架的话, 写一个testcase可以直接写到一个class中,甚至不用class,甚至连def都可以不用就实现了一个case;

但是,万一下次又用到了同样的功能,需要写同样的内容怎么办呢???甚至它和之前的case只有一点点不一样的话呢???我们需要不断的复制粘贴并且修改;

那么我们这里需要用到class来实现不同模块之间的调用

1、我们需要在utils方法中写入一些基本方法,实现对其他模块的调用

1)、file_reader.py(读取文件):我们上面描述的框架中包含了config中的YML文件(或者其他)、data中的Excel文件,

config---YML:

1 importos2

3 classYamlReader(object):4 def __init__(self,yaml):5 #有yaml文件就返回文件,没有就报异常

6 ifos.path.exists(yaml):7 self.yaml =yaml8 else:9 raise FileNotFoundError("yaml文件不存在!")10 self._data =None11

12 @property #这里需要了解yaml返回的内容格式等信息

13 def data(self): #调用yaml文件中的内容data

14 if notself._data:15 with open(self.yaml,'rb') as f:16 self._data =list(yaml.safe_load_all(f))17 return self._data

data--Excel:

1 importos2 importxlrd3

4 classExcelReader(object):5 #title_line =True 判断是否有标题,为True时有标题

6 def __init__(self,excel,sheet=0,title_line=True):7 ifos.path.exists(excel):8 self.excel =excel9 else:10 raise FileNotFoundError("Excel文件不存在!")11

12 self.sheet =sheet13 self.title_line =title_line14 self._data =list()15

16 @property17 defdata(self):18 if notself.data:19 workbook =open_workbook(self.excel)20 #获取sheet

21 if type(self.sheet) not in[int,str]:22 raise SheetTypeError('Please pass in or not {}'.format(type(self.sheet)))23 elif type(self.sheet)==int:24 sheet =workbook.sheet_by_index(self.sheet)25 elif type(self.sheet)==str:26 sheet =workbook.sheet_by_name(self.sheet)27

28 if self.title_line: #获取data值,有title为dict,没有title为list

29 title = sheet.row_value() #第一行定义为title

30 for col in range(1,sheet.nrows):31 self._data.append(dict(zip(title,sheet.row_values(col))))32 else:33 for col inrange(0,sheet.nrows):34 self._data.append(sheet.row_values(col))35 return self._data

未完待续。。。。。

如果觉得《python ui自动化测试仪器_python UI自动化测试》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。