Selenium WebDriver基于Python - 使用unittest编写单元测试(二)

Selenium WebDriver是一个浏览器自动化测试的API集合。它提供了很多与浏览器自动化交互的特性,并且这些API主要是用于测试Web程序。如果仅仅使用Selenium Driver,我们无法实现执行测试前置条件、测试后置条件,对比预期结果和实际结果,检查程序的状态,生成测试报告,创建数据驱动的测试等功能。在此,我们总结一下如何使用unittest来创建基于Python的Selenium WebDriver测试脚本。

unittest单元测试框架

unittest(一般称为PyUnit)是从Java程序开发中广泛应用的JUnit启发而来的。我们可以使用unittest为任何项目创建全面的测试套件。unittest也是Python中用来测试各种标准类库模块的,甚至包括unittest自己。可以在以下网址查看unittest的文档:https://docs.python.org/2/library/unittest.html,unittest使我们具备创建测试用例、测试套件、测试夹具的能力。

Test Fixture(测试夹具):通过使用测试夹具,可以定义在单个或多个测试执行之前的准备工作和测试执行之后的清理工作。

Test Case(测试用例):一个测试用例实在unittest提供的assert方法来验证一组特定的操作和输入以后得到的具体响应。unittest提供了一个名称为TestCase的基础类,可以用来创建测试用例。

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

Test Runner(测试执行器):测试执行器负责测试执行调度并且生成测试结果给用户。测试执行器可以使用图形界面、文本界面或者特定的返回值来展示测试执行结果。

Test Report(测试报告):测试报告用来展示所有执行用例的成功或者失败状态的汇总,执行失败的测试步骤的预期结果与实际结果,还有整体运行状况和运行时间的汇总。


通过与unittest类似的xUnite测试框架创建的测试杯拆分为3部分,即3A's,具体如下:

Arrange:是用来初始化测试的前置条件,包含初始化被测试的对象、相关配置和依赖。

Act:用来执行功能操作。

Assert:用来检验实际与预期结果是否一致。


TestCase类

我们可以通过继承TestCase类并且在测试类中为每一个测试添加测试方法来创建单个测试或者一组测试。

为了创建测试,我们需要使用TestCase类中的assert或者其中的一种assert方法。

每个测试最重要的任务是调用assertEqual()来检验预期结果,调用assertTrue()来验证条件,或者调用assertRaises()来验证预期的异常。

除了添加测试,我们可以添加测试夹具 - - setUp()方法和tearDown()方法,创建或处置测试用例所需要的任何对象和条件。

setUp():一个测试用例是从setUp()方法开始执行的,我们可以用这个方法在每个测试开始前去执行一些初始化的任务。可以是这样的初始化准备:比如创建浏览器实例,访问URL,加载测试数据和打开日志文件等。

此方法没有参数,而且不返回任何值。当定义了一个setUp()方法,测试执行器在每次执行测试方法之前优先执行该方法。


测试方法命名是以test开头的。这种命名约定通知test runner 哪个方法代表测试方法。

对于test runner能找到的每个测试方法,都会在执行测试方法之前先执行setUp()方法。这样做有助于确保每个测试方法都能够依赖相同的环境,无论类中有多少测试方法。我们将使用简单的assertEqual()方法来验证用程序搜索该术语返回的结果是否和预期结果相匹配。


tearDown()方法:代码清理。类似于setUp()方法在每个测试方法之前被调用,TestCase类也会在测试执行完成之后调用tearDown()方法来清理所有的初始化值。

一旦测试被执行,在setUp()方法中定义的值将不再需要,所以最好的做法实在测试执行完成时清理掉由setUp()方法初始化的数值。

-*- coding:utf-8 -*-

import unittest

from selenium import webdriver


class TestUnittest(unittest.TestCase):
    # 一个测试用例从setUp()方法开始执行
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值