前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于unittest集成你的selenium2测试

基于unittest集成你的selenium2测试

作者头像
苦叶子
发布2018-04-04 16:06:46
6830
发布2018-04-04 16:06:46
举报
文章被收录于专栏:开源优测开源优测
前言

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

简单示例

代码语言:javascript
复制
# 将以下代码保存到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格式的测试报告。

如何运行上述代码

代码语言:javascript
复制
# 将上述代码保存至first_unit_test.py中
# 在命令行中输入以下命令

python first_unit_test.py

代码组织说明

总结

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 测试用例
  • 简单示例
  • 关键代码说明
  • 主入口说
  • 代码组织说明
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档