PART 3: 使用 Unittest编写测试单元(WebDriver + unittest)
1. Unittest
unittest单元测试框架:
一般也称为PyUnit,是从Java程序开发中广泛应用的JUnit启发而来的;我们可以使用unittest为任何项目创建全面的测试套件;
unittest使我们具备创建测试用例、测试套件、测试夹具的能力;
unittest组件:
1)Test Fixture(测试夹具):
使用测试夹具,可以定义在单个或多个测试执行之前的准备工作和测试执行之后的清理工作;
2)Test Case(测试用例):
unittest中执行测试的最小单元,通过验证unittest提供的assert方法来验证一组特定的操作和输入以后得到的响应;
unittest提供了一个名为TestCase的基础类,可以用来创建测试用例;
3)Test Suit(测试套件):
一个测试套件是多个测试或测试用例的集合,是针对被测程序的对应的功能和模块创建的一组测试,一个测试套件内的测试用例将一起执行;
4)Test Runner(测试执行器):
测试执行器负责测试执行调度并且生成测试结果给用户;
测试执行器可以使用图形界面、文本界面或者特定的返回值来展示测试执行结果;
5)Test Report(测试报告):
测试报告展示所有执行用例的成功或者失败状态的汇总;包括失败的测试步骤的预期结果和实际结果,还有整体运行状况和运行时间的汇总;
原文链接:https://blog.csdn.net/baby_hua/article/details/80571109
一般测试分为3个部分,一个初始化前置条件,一个执行功能操作,一个断言用来校验实际结果与预期结果是否一致。
2. 用一个Test case类实现一个简单的测试用例
2.1 新建一个Python unit file
2.2 把下面的code复制到文件里面。
# -*- coding:utf-8 -*-
import unittest
from selenium import webdriver
class SearchTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(15)
self.driver.maximize_window()
self.driver.get('http://www.baidu.com')
def test_search_by_category1(self):
self.search_field = self.driver.find_element_by_id("kw")
self.search_field.clear()
self.search_field.send_keys('selenium2')
self.search_field.submit()
products = self.driver.find_elements_by_xpath("//div[contains(@class, 'c-abstract')]")
self.assertEq