Time will tell.

1、Test Suite测试套件

一个测试套件是多个测试或测试用例的集合,是针对被测程序的对应的功能和模块创建的一组测试,一个测试套件内的测试用例将一起执行。

应用 Unittest 的 TestSuites 特性,可以将不同的测试组成一个逻辑组,然后设置统一的测试套件,并通过一个命令来执行测试。这都是通过 TestSuitesTestLoaderTestRunn类来实现的。

2、类级别的setUp()方法和tearDown()方法

使用setUpClass()方法和tearDownClass()方法及@classmethod标识来实现各个测试方法共享初始化数据。看下面代码:

searchtest.py

import unittest
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChainsimport timeclass SearchTest(unittest.TestCase):'''通过setUpClass()和@classmethod标识,实现在类级别初始化数据,所有测试方法共享这些初始化数据.不使用这个的话,每个测试方法都会单独创建一个实例'''@classmethoddef setUpClass(cls):cls.driver = webdriver.Firefox()cls.driver.implicitly_wait(10)cls.driver.maximize_window()cls.driver.get("https://www.cnblogs.com/")def test_search_by_category(self):#读取category.txt文件,返回一个字典with open('data/category.txt', encoding='UTF-8') as category_file:category_dict = dict()category_data = category_file.readline().strip().split(',')the_class = category_data.pop(0)category_dict[the_class] = category_data#定位首页网站分类中的编程语言self.search_class = self.driver.find_element_by_xpath('//li/a[@href="/cate/2/"]')#光标悬停在“编程语言”上ActionChains(self.driver).move_to_element(self.search_class).perform()# 以列表形式返回编程语言下的所有小类self.search_small = self.driver.find_elements_by_xpath('//div[@id="cate_content_block_2"]/div[@class="cate_content_block"]/ul/li')#休眠3秒time.sleep(3)small_cate = []for s in self.search_small:#去掉小类最后面的(0),并添加到列表small_cate中small = str(s.text).split('(')small_cate.append(small[0])#检查表达式是否为true(此处检查编程语言下的小类是否与预期结果一致)self.assertTrue(small_cate == category_dict["编程语言"])# self.assertEqual(small_cate,category_dict["编程语言"])def test_search_by_look(self):self.seach_class = self.driver.find_element_by_xpath('//li/a[@href="/cate/2/"]')#定位编程语言下的小类Pythonself.seach_small =self.driver.find_element_by_xpath('//li/a[@href="/cate/python/"]')ActionChains(self.driver).move_to_element(self.seach_class).perform()self.seach_small.click()#检查打开的网页标题是不是 Python - 网站分类 - 博客园# assert "Python - 网站分类 - 博客园" in self.driver.titleself.assertEqual(self.driver.title,"Python - 网站分类 - 博客园" )'''通过tearDownClass()和@classmethod标识,实现在类级别初始化数据,所有测试方法共享这些初始化数据'''@classmethoddef tearDownClass(cls):cls.driver.quit()#加上下面2句,可以通过命令行运行测试,不加的话不影响通过IDE运行测试if __name__ == '__main__':#加verbosity=2参数,在命令行中显示具体的测试方法unittest.main(verbosity=2)

homepagetest.py

import  unittest
from selenium import  webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import Byclass HomePageTest(unittest.TestCase):'''通过setUpClass()和@classmethod标识,实现在类级别初始化数据,所有测试方法共享这些初始化数据.不使用这个的话,每个测试方法都会单独创建一个实例'''@classmethoddef setUpClass(cls):cls.driver = webdriver.Firefox()cls.driver.implicitly_wait(10)cls.driver.maximize_window()cls.driver.get("https://www.cnblogs.com/")def test_search_field(self):#通过by,检查博客园首页有没有搜索框,is_element_present()是自定义的方法self.assertTrue(self.is_element_present(By.ID,"zzk_q"))def test_search_btn(self):# 通过by,检查博客园首页有没有找找看按钮self.assertTrue(self.is_element_present(By.CLASS_NAME,"search_btn"))def test_menu(self):#该方法检查博客园首页菜单栏信息是否与预期一致#读取menu.txt文件数据with open('data/menu.txt',encoding='UTF-8') as menu_file:menu_data = menu_file.readline().strip().split(',')#以列表形式返回博客园首页菜单栏信息self.check_menu = self.driver.find_elements_by_xpath('//div[@id="nav_menu"]/a')the_menu = []for c in self.check_menu:#将博客园首页的菜单名称和URL添加到列表the_menuthe_menu.append(c.text + c.get_attribute('href'))#检查2个列表是否一致(检查博客园首页的菜单名称及URL是否和预期一致)self.assertListEqual(the_menu,menu_data)def is_element_present(self,how,what):#找到元素,返回True,否则返回Falsetry:self.driver.find_element(by=how,value = what)except NoSuchElementException as e:return Falsereturn True@classmethoddef tearDownClass(cls):cls.driver.quit()# 加上下面2句,可以通过命令行运行测试,不加的话不影响通过IDE运行测试if __name__ == '__main__':# 加verbosity=2参数,在命令行中显示具体的测试方法unittest.main(verbosity=2)

smoketests.py (测试套件)

import unittest
from searchtest import SearchTest
from homepagetest import HomePageTest#获取SearchTest类 和 HomePageTest类中的所有测试方法search_test = unittest.TestLoader().loadTestsFromTestCase(SearchTest)home_page_test = unittest.TestLoader().loadTestsFromTestCase(HomePageTest)#创建一个包括SearchTest和HomePageTest的测试套件smoke_tests = unittest.TestSuite([home_page_test,search_test])#运行测试套件unittest.TextTestRunner(verbosity=2).run(smoke_tests)

3、其他说明

# 另外一个文件在上一篇中已经说明

要完全使用上面的代码,需要创建一个文件menu.txt,输入以下数据:

园子https://home.cnblogs.com/,新闻https://news.cnblogs.com/,博问https://q.cnblogs.com/,闪存https://ing.cnblogs.com/,小组https://group.cnblogs.com/,收藏https://wz.cnblogs.com/,招聘https://job.cnblogs.com/,班级https://edu.cnblogs.com/,找找看http://zzk.cnblogs.com/


运行smoketests.py

好喽,内容就到这里,如果你对Python自动化软件测试更多内容感兴趣,在这里推荐一个学习资料分享群:175317069。有各项已整理好的测试学习资源,也有行业深潜多年的技术人分析讲解。

作为测试工程师,不断提升自己工作能力是提高薪资待遇最重要的基础。另外也要注重学习, IT 行业是个不断发展、更新迭代相对较快的行业,技术具有明显的时代特征,所以紧跟时代技术的发展才能让自己不掉队,在职场当中具有足够的竞争力。

测试工程师职业发展路线:
功能测试 — 接口测试 — 自动化测试 — 测试开发 — 测试架构师

最后希望看到这里的你终成为一名极具竞争力的高级测试工程师。

觉得还不错就【点赞】、【评论】、【关注】吧~

Time will tell.(时间会说明一切)

Python Selenium自动化测试框架 Test Suite测试套件相关推荐

  1. Python selenium自动化测试框架入门--登录测试实例

    本文为Python自动化测试框架基础入门篇,主要帮助会写基本selenium测试代码又没有规划的同仁. 本文应用到POM模型.selenium.unittest框架.configparser配置文件. ...

  2. 自动化测试python selenium案例_Python selenium自动化测试框架实战--登录测试案例

    本文为主要帮助会写基本selenium测试代码又没有规划的同仁. 本文应用到POM模型.selenium.unittest框架.configparser配置文件.smtplib邮件发送.HTMLTes ...

  3. python自动化框架2019_《一头扎进》系列之Python+Selenium自动化测试框架实战篇6 - 价值好几K的框架,呦!这个框架还真牛叉哦!!!...

    1. 简介 本文开始介绍如何通过unittest来管理和执行测试用例,这一篇主要是介绍unittest下addTest()方法来加载测试用例到测试套件中去.用addTest()方法来加载我们测试用例到 ...

  4. Python+selenium自动化测试框架

    分为四层 1.基础层(通用层) 将通用,重复性比较高得代码封装到这里,写通用得代码的 其他3层想要的话就直接调用. 例如: 读取测试数据的代码,读取配置信息的代码:截图的代码的,定位元素的代码等等 2 ...

  5. 搭建python selenium 自动化测试框架_Python3+Selenium2完整的自动化测试框架实现(二):IE和Chrome浏览器驱动配置...

    上一篇写了自动化测试需要的最基础环境配置,地址:https://www.cnblogs.com/tdp0108/p/10412073.html 当前市面上很多公司开发的应用软件都是BS架构,即基于浏览 ...

  6. python+selenium自动化测试框架详解,我就讲一遍

    目录 前言 1.测试框架分层设计 2.测试框架目录结构 3.编写用例方法 4.测试结果展示 前言 本文整理归纳以往的工作中用到的东西,现汇总成基础测试框架提供分享. 框架采用python3 + sel ...

  7. 搭建python selenium 自动化测试框架_Selenium3与Python3实战 Web自动化测试框架(一)...

    一.环境搭建 1.selenium环境搭建 Client: pycharm python3.6 Driver: Chrome → ChromeDriver Firefox → FirefoxDrive ...

  8. python写界面输入测试脚本,python+Selenium自动化测试——输入,点击操作

    这是我的第一个真正意思上的自动化脚本. 1.练习的测试用例为: 打开百度首页,搜索"胡歌",然后检索列表,有无"胡歌的新浪微博"这个链接 2.在写脚本之前,需要 ...

  9. 自从掌握了Selenium自动化测试框架设计,我在公司都横着走!

    测试工作对技术的要求不低,测试工程师更是高技能职位.但有很多新入行的伙伴认为,测试工作就是钟"点"工,用鼠标在软件点里点~点~点~就能做测试.这种思维是很可怕的,这会对测试人的职业 ...

  10. python appium自动化测试框架unittest_Appium基于Python unittest自动化测试 自动化测试框架 -- PO并生成html测试报告...

    基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: #利用unittest并生成测试报告 class Appium_test(unitt ...

最新文章

  1. Android 屏幕截图
  2. 设置Exchange 2010附件大小限制原则
  3. java svnkit_java svnkit实现svn提交,更新等操作
  4. struts2中dtd失效,代码不提示问题
  5. alsa声音编程介绍
  6. 微信多开txt_电脑版微信怎么双开、多开
  7. 在jsp页面里动态生成EL表达式的key
  8. 【django】三、常用的模板标签和过滤器
  9. hdu-5673 Robot(默次金数)
  10. java遍历d盘所有文件夹_java遍历指定盘符的所有文件和文件夹
  11. 智慧城市数字政府建设【转】
  12. AWS硬盘扩容过程记录
  13. 如何用csdn上传资源
  14. HTML5实现点击触发灯泡开关
  15. PPT文件没有密码解除限制编辑
  16. Aspose.Words 将Word(DOC / DOCX)转换为HTML教程
  17. 【聊聊Java】Java中HashMap常见问题 -- 扩容、树化、死链问题
  18. 如何用大数据进行甜品店选址要素分析
  19. 教你5分钟做成一个ASP论坛
  20. 最全知乎专栏合集:编程、python、爬虫、数据分析、挖掘、ML、NLP、DL...

热门文章

  1. python rsa模块学习笔记
  2. am57xx Damo根文件加载过程
  3. Excel如何输入负数
  4. Kalman滤波器参数分析
  5. 【笔记】2017电信大数据普惠金融应用案例
  6. 做个优秀的时间管理者
  7. mysql的sid_修改数据库的SID
  8. Python自然语言处理——nltk库入门之文本分词(英文)
  9. 关于STM32F103x系列ISP烧写出现“程序文件不是0x8000000和0x20000000区域的”解决办法。
  10. Hive虚拟内存溢出报错:2.9GB of 2.1GB virtual memory used. Killing container.解决办法