专栏首页开源优测基于unittest集成你的selenium2测试

基于unittest集成你的selenium2测试

前言

python单元测试框架(The Python Unit Testing Framework)简称PyUnit,是JUnit的python版本,自python2.1版本后,PyUnit已经成为了Python的标准库。下面我们就如何把unitest应用到python selenium2自动化测试中进行分享。

测试用例

单元测试是由一系列的测试用例(Test Cases)构成。测试用例是被设置用来检测独立场景的集合。在PyUnit中,unittest模块中的TestCase类代表测试用例。

TestCase类的实例是可以完全运行所有的方法和可选的初始化(setUp)及清理(tearDown)方法的对象。

TestCase实例的测试代码必须是包含一个或多个测试方法,简单说,它可以单独运行或与其他任意数量的用例共同运行

简单示例

# 将以下代码保存到first_webdriver.py中
#-*- coding:utf-8 -*-

__author__ = u'苦叶子'

from selenium import webdriver
import unittest import HTMLTestRunner  
import sys
from time import sleep

reload(sys)
sys.setdefaultencoding("utf-8")

class BaiduTest(unittest.TestCase):
    """百度首页搜索测试用例"""
    def setUp(self):
        self.driver = webdriver.Ie()
        self.driver.implicitly_wait(30)
        self.base_url = u"http://www.baidu.com"
        
    def test_baidu_search(self):
        driver = self.driver        
        print u"开始[case_0001]百度搜索"
        driver.get(self.base_url)        
        # 验证标题
        self.assertEqual(driver.title, u"百度一下,你就知道")
        driver.find_element_by_id("kw").clear()
        driver.find_element_by_id("kw").send_keys(u"开源优测")
        driver.find_element_by_id("su").click()
        sleep(3)        
        # 验证搜索结果标题
        self.assertEqual(driver.title, u"开源优测_百度搜索")  
      
    def tearDown(self):
        self.driver.quit()        
      if __name__ == '__main__':
    ‍testunit = unittest.TestSuite()
    testunit.addTest(BaiduTest('test_baidu_search'))    
    # 定义报告输出路径
    htmlPath = u"testReport.html"
    fp = file(htmlPath, "wb")
    
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp, ‍
           title=u"百度测试", 
           description=u"测试用例结果")
    
    runner.run(testunit)
    
    fp.close()

关键代码说明

  1. 在上例代码中,我们的测试用例BaiduTest继承了unittest.TestCase。
  2. 在初始化方法setUp中,初始化了webdriver示例和隐性等待设置,并初始化了百度首页url。该方法自动执行。
  3. 在清理方法中tearDown中,退出了webdriver。该方法自动执行。
  4. test_baidu_search方法是我们主要的测试方法,在该方法中进行了一下动作。

主入口说

  1. 先定义一个测试套件集,然后将用例集添加至套件中。
  2. 我们使用了unittest第三方测试报告模块HTMLTestRunner(该模块不是标准库,需要自己去下载,请参考前面几篇的文章),用以自动生产HTML格式的测试报告。

如何运行上述代码

# 将上述代码保存至first_unit_test.py中
# 在命令行中输入以下命令

python first_unit_test.py

代码组织说明

总结

今天我们就unittest怎么和selenium测试进行结合做了初步的分享,请大家深入理解该示例,并实际动手练习代码。

本文分享自微信公众号 - 开源优测(DeepTest),作者:苦叶子

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python selenium2示例 - 生成 HTMLTestRunner 测试报告

    前言 在python selenium2自动化测试过程中,一个合适的报告是必须的,而HTMLTestRunner模块为我们提供了一个很好的报告生成功能。 什么是...

    苦叶子
  • 创建你的第一个webdriver python代码

    前言 今天我们开始我们的第一个python webdriver自动化测试脚本。并就测试脚本进行一一解释说明。 webdriver python代码 本示例代码演...

    苦叶子
  • Python Selenium设计模式-POM

    前言 本文就python selenium自动化测试实践中所需要的POM设计模式进行分享,以便大家在实践中对POM的特点、应用场景和核心思想有一定的理解和掌握。...

    苦叶子
  • 用python实现接口测试(八、Unittest测试框架)

    不论对于开发还是测试,都离不开单元测试框架,对于开发而言使用单元测试框架,可以编写测试代码来验证验证自己编写的功能是否正确,对于测试而言,使用单元测试框架,可以...

    用户6367961
  • 低多边形(Low-Poly)简介及相关素材分享下载

    最近一直缺乏原创文章,只因被各种琐事所累,难以静下心来写文章。这篇文章也非原创,分享下我知道的一些低多边形(Low-Poly)的素材。低多边形(Low-Poly...

    Jeff
  • Azure内容审查器之羞羞图审查

    上一篇 Azure 内容审查器之文本审查我们已经介绍了如果使用Azure进行文字内容的审核。对于社区内容,上传的图片是否含有羞羞内容也是需要过虑的。但是最为一般...

    kklldog
  • RTSP播放器网页web互联网直播流媒体音视频播放器EasyPlayer-RTSP-iOS的核心代码打包成动态库

    EasyPlayer是一个RTSP流媒体播放器,在GitHub上开源大部分源码,需要商用授权。其主要功能有播放、抓图、录制视频、实时静音/取消静音。

    EasyNVR
  • 空间向量模型和tf-idf向量空间模型tf-idf

    向量空间模型 向量空间模型是一个把文本文件表示为标识符(比如索引)向量的代数模型,它应用于信息过滤、信息检索、索引以及相关排序。 1 定义 文档和查询都用向量来...

    致Great
  • Python + Selenium 自动发布文章(二):简书

      本篇介绍用Python+Selenium 自动发布简书文章,一些必要的前置准备说明在上篇文章里面有提到,这里就不再重复了。

    happyJared
  • 智慧水务管理平台-助力生态

    智慧水务管理平台基于智能视频分析,有效地进行水资源的保护和综合利用,当发现异常情况时以最快、最佳的方式进行预警,真正做到事前预警,事中常态检测,事后规范管理。

    倍特威视

扫码关注云+社区

领取腾讯云代金券