下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
selenium-数据驱动应⽤(parameterized、DDT)1.parameterizedparameterized是python的⼀个参数化库,同时⽀持unittest、nose、pytest单元测试框架importunittestimporttimefromseleniumimportwebdriverfromparameterizedimportparameterizedclassTestBaidu(unittest.TestCase):#参数化后,要将setup和teardown修改为类⽅法,不然每个参数被认为⼀个测试⽤例,浏览器会随之每次都打开关闭@classmethoddefsetUpClass(cls):cls.driver=webdriver.Chrome()cls.base_url=''defbaidu_search(self,search_key):self.driver.get(self.base_url)self.driver.find_element_by_id('kw').send_keys(search_key)self.driver.find_element_by_id('su').click()time.sleep(3)#通过parameterized实现参数化@parameterized.expand([#每个元组都被认为是⼀条测试⽤例。测试⽤例中,通过参数来取每个元组中的数据('case1','selenium'),('case2','unittest'),('case3','parameterized'),])deftest_search(self,name,search_key):#name对应元组中的第⼀列数据,search_key对应第⼆列self.baidu_search(search_key)self.assertEqual(self.driver.title,search_key+'_百度搜索')@classmethoddeftearDownClass(cls):cls.driver.quit()if__name__=='__main__':unittest.main(verbosity=2)#verbosity设置为2,表⽰输出更详细的⽇志运⾏结果如下:test_search_0_case1(__main__.TestBaidu)...oktest_search_1_case2(__main__.TestBaidu)...oktest_search_2_case3(__main__.TestBaidu)...ok----------------------------------------------------------------------Ran3testsin15.239sOKtest_search是测试⽤例的名称,参数化会⾃动加上0、1、2⽤来区分每条测试⽤例,元组中的case1后缀在名称上2.DDTDDT(data-driventests)是针对unittest单元测试框架设计的扩展库。允许使⽤不同的测试数据来运⾏⼀个测试⽤例,并将其展⽰为多个测试⽤例。fromseleniumimportwebdriverimportunittestimporttimefromddtimportddt,data,file_data,unpack@ddt#测试类需要通过@ddt装饰器进⾏装饰classTestBaidu(unittest.TestCase):@classmethoddefsetUpClass(cls):cls.driver=webdriver.Chrome()defsearch_baidu(self,keyword):self.driver.get('')self.driver.find_element_by_id('kw').send_keys(keyword)self.driver.find_element_by_id('su').click()time.sleep(3)#ddt提供了不同形式的参数化@data(['case1','selenium'],['case2','python'])#列表@unpackdeftest_baidu1(self,name,keyword):print('第⼀组测试⽤例',name)self.search_baidu(keyword)self.assertEqual(self.driver.title,keyword+'_百度搜索')@data(('case1','selenium'),('case2','pyton'))#元组@unpackdeftest_baidu2(self,name,keyword):print('第⼆组测试⽤例',name)self.search_baidu(keyword)self.assertEqual(self.driver.title,keyword+'_百度搜索')@data({'keyword':'selenium'},{'keyword':'python'})#字典@unpackdeftest_baidu3(self,keyword):print('第三组测试⽤例',keyword)self.search_baidu(keyword)self.assertEqual(self.driver.title,keyword+'_百度搜索')@classmethoddeftearDownClass(cls):cls.driver.quit()if__name__=='__main__':unittest.main(verbosity=2)DDT同样⽀持json⽂件的读取,让我们更关注于数据⽂件的内容,及在测试⽤例中的使⽤。⽽不需要关⼼数据⽂件是如何被读取进来的keyword.json使⽤json⽂件参数化测试⽤例@file_data('./data/keyword.json')#读取json⽂件deftest_baidu(self,keyword):self.search_baidu(keyword)self.assertEqual(self.driver.title,keyword+'_百度搜索')测试结果如下:test_baidu_00001_case1(__main__.TestBaidu)test_baidu_00001_case1...oktest_baidu_00002_case2(__main__.TestBaidu)test_baidu_00002_case2...oktest_baidu_00003_case3(__main__.TestBaidu)test_baidu_00003_case3...FAILps:参数化中使⽤全局变量需注意,如果全局变量的赋值和使⽤在同⼀个⽂件中,则不能使⽤原因:代码执⾏顺序执⾏时,先⾛parameterized中的代码,后⾛业务代码,所以全局变量的值在赋值之前已经获取,为空,会报错,如下123为执⾏顺序:classTest_0001(TestBase):deftest_1(self):phone=123set_assistant_phone_id(phone)#2classTest_0011(TestBase):@parameterized.expand([('随机⼿机号',get_assistant_phone_id())#1先执⾏。还未赋值,所以获取不到数据])deftest
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国环保技术市场发展分析及前景趋势与投资机会风险研究报告
- 物流工程师的货物运输计划及优化方案
- 2025中国特种气体行业竞争格局与供需状况研究报告
- 2025中国物联网平台商业化路径与竞争策略研究报告
- 2025中国物流行业市场格局及未来发展路径分析报告
- 金融市场风险控制体系构建方案
- 书记员招考面试技巧集
- 仓库文员岗位说明书职位描述
- 工厂消防安全检查指南
- 安全管理岗面试实操指南
- 2025河南航空港投资集团校园招聘笔试考试参考题库及答案解析
- 2025至2030中国水运行业发展趋势分析与未来投资战略咨询研究报告
- 2025贵州毕节市中医医院招聘暨人才引进编外聘用专业技术人员78人考试笔试备考试题及答案解析
- 2025税务师考试《税法一》冲关速记
- 直播电商职业知识培训课件
- 药学专业个人简历模板
- 全国大学生数学建模竞赛2025年本科组赛题分析试卷
- 轮状病毒疫苗研发进展与接种应用指南
- 生物安全培训海报模板课件
- 云南省国省干线公路养护管理模式优化:基于公路局视角的深度剖析与创新路径
- 英语数字教学课件
评论
0/150
提交评论