分享

使用python学习selenium2--使用unittest进行测试

 Macalist 2016-08-31

目录

unittest可以为webdriver增加setup、teardown、检查应用状态、报告测试结果、数据驱动等功能。主要内容如下:

  • 什么是unittest?
  • 使用unittest来编写硒webDriver测试
  • 基于TestCase类实现测试
  • 理解各种类型的assert方法
  • 创建一组测试为TestSuite
  • 使用unittest扩展生成HTML格式的测试报告

unittest库

此部分后面会与 python模块介绍-unittest:单元测试框架 整合。链接中的地址为准。

主要组成如下:

  • Test Fixture:准备及清理工作。
  • Test Case: 通常是使用assert方法检查动作和输入的响应,一般是基于TestCase类扩充。
  • Test Suite:多个测试的集合。
  • Test Runner:测试执行。
  • Test Report:测试报告。

测试通常由3A组成:

  • Arrange:预置条件、相关配置和依赖等。
  • Act:实际功能。
  • Assert:断言。

其他框架有Pytest和Nose等。

TestCase类

import unittest
from selenium import webdriver
class SearchTests(unittest.TestCase):
	def setUp(self):
		# create a new Firefox session
		self.driver = webdriver.Firefox()
		self.driver.implicitly_wait(30)
		self.driver.maximize_window()
		# navigate to the application home page
		self.driver.get("http://demo./")
	def test_search_by_category(self):
		# get the search textbox
		self.search_field = self.driver.find_element_by_name("q")
		self.search_field.clear()
		# enter search keyword and submit
		self.search_field.send_keys("phones")
		self.search_field.submit()
		# get all the anchor elements which have product names displayed
		# currently on result page using find_elements_by_xpath method
		products = self.driver			.find_elements_by_xpath("//h2[@class='product-name']/a")
		self.assertEqual(2, len(products))
	def test_search_by_name(self):
		# get the search textbox
		self.search_field = self.driver.find_element_by_name("q")
		self.search_field.clear()
		# enter search keyword and submit
		self.search_field.send_keys("salt shaker")
		self.search_field.submit()
		# get all the anchor elements which have product names displayed
		# currently on result page using find_elements_by_xpath method
		products = self.driver.			find_elements_by_xpath("//h2[@class='product-name']/a")
		self.assertEqual(1, len(products))
	def tearDown(self):
		# close the browser window
		self.driver.quit()
if __name__ == '__main__':
	unittest.main(verbosity=2)

需要选择一个合适IDE,要求如下:

  • 代码完成和智能提示的图形化代码编辑器
  • 函数和类的代码浏览器
  • 语法高亮
  • 项目管理
  • 代码模板
  • 单元测试和调试
  • 源代码控制支持

推荐:WingIDE,PyCharm,PyDev Eclipse plugin,PyScripter。相关下载地址如下:

本文地址

参考资料

  • 作者:Unmesh Gundecha
  • 评审:Adil Imroz:alam.adil12#gmail.com Twitter at @adilimroz
  • 评审: Walt Stoneburner: wls#wwco.com Walt.Stoneburner#gmail.com    

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多