selenium pyunit单元测试框架

#PyUnit框架
#coding = utf - 8
#将要被测试的类
class Widget: def __int__(self,size = (40,40)):
self._size = size def getSize(self):
return self._size def resize(self,width,height):
if width<0 or height < 0:
raise ValueError,"illegal size"
self._size = (width,height) def dispose(self):
pass
#auto.py 测试类
#coding = utf-8 from widget import Widget
import unittest #执行测试的类
class WidgetTestCase(unittest.TestCase):
def setUp(self):
self.widget = Widget() #测试getsize()方法的测试用例
def testSize(self):
self.assertEqual(self.widget.getSize(),(40,40)) #测试resize()方法的测试用例
def testResize(self):
self.widget.resize(100,100)
self.assertEqual(self.wiget.getSize(),(100,100)) def tearDown(self):
self.widget = None #构造测试集
def suite():
suite = unittest.TestSuite()
suite.addTest(WidgetTestCase("testSize"))
return suite

 

实例:

#coding = utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import unittest,time,re class Baidu(unittest.TestCase): def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url = "https://www.baidu.com"
self.verificationErrors = []
self.accept_next_alert= True #百度搜索用例
def test_baidu_search(self):
driver = self.driver
driver.get(self.base_url + "/")
driver.find_element_by_id("kw").send_keys("selenium webdriver")
driver.find_element_by_id("su").click()
time.sleep(2)
driver.close()
#百度设置用例
def test_baidu_set(self):
driver = self.driver
#进入搜索设置页面
driver.get(self.base_url + "/gaoji/preferences.html") #设置每页搜索结果为100条
m = driver.find_element_by_name("NR")
m.find_element_by_xpath("//option[@value = '100']").click()
time.sleep(2)
#保存设置的信息
driver.find_element_by_xpath("//[@value = '保存设置']").click()
time.sleep(2)
driver.switch_to.alert().accept() #切换到alert弹窗;Python2用法:switch_to_alert();Python3用法:switch_to.alert() #目前接触到的switch_to的用法包括以下几种:
driver.switch_to.window(window_name)#切换到制定的window_name页面
driver.switch_to.alert()#切换到alert弹窗
driver.switch_to.active_element()#切换到当前聚焦的元素上
driver.switch_to.default_content()#切换到最上层页面(主文档?)
driver.switch_to.frame(frame_reference)#通过id、name、element(定位的某个元素)、索引来切换到某个frame
driver.switch_to.parent_frame()#这是switch_to中独有的方法,可以切换到上一层的frame,对于层层嵌套的frame很有用 def tearDown(self):
self.driver.quit()
self.assertEqual([],self.verificationErrors)

  

selenium pyunit单元测试框架的更多相关文章

  1. Python+Selenium ----unittest单元测试框架

    unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做“PyUnit”,是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java ...

  2. Python+Selenium框架设计篇之-简单介绍unittest单元测试框架

    前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest.       unit ...

  3. [译]PyUnit—Python单元测试框架(1)

    1. 原文及参考资料 原文链接:http://docs.python.org/2/library/unittest.html# 参考文档: http://pyunit.sourceforge.net/ ...

  4. Selenium+Python ---- 免登录、等待、unittest单元测试框架、PO模型

    1.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...

  5. Selenium自动化测试-unittest单元测试框架

    一.Pyhon工作原理-- 核心概念:test case, testsuite, TestLoder,TextTestRunner,TextTestResult, test fixture TestC ...

  6. Selenium自动化测试-unittest单元测试框架使用

    一.什么是unittest 这里我们将要用的unittest是python的单元测试框架,它的官网是 https://docs.python.org/2/library/unittest.html,在 ...

  7. Python+selenium之简单介绍unittest单元测试框架

    Python+selenium之简单介绍unittest单元测试框架 一.unittest简单介绍 unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是 ...

  8. python单元测试框架 pyunit

    概况 系统要求 使用PyUnit构建自己的测试 安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代码的放置位 ...

  9. Selenium基于Python web自动化基础二 -- 免登录、等待及unittest单元测试框架

    一.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...

随机推荐

  1. 手把手带你了解消息中间件(2)——RabbitMQ

    RabbitMQ官网: http://www.rabbitmq.com/ Erlang官网:https://www.erlang.org 友情提示:RabbitMQ基于Erlang语言开发的,要想使用 ...

  2. Markdown 复杂公式&常用符号

    公式格式 行内公式 行内公式(不会换行)使用 $ 作为起止符,例如:$a + b = c$, 效果为:\(a + b = c\) 块级公式 块级公式(单独一行)使用 $$ 作为起止符,例如:$$a + ...

  3. Java面向对象之异常详解

    目录 Java面向对象之异常[一] Java面向对象之异常[二] 捕获异常的规则 访问异常信息 异常对方法重写的影响 finally详解 Java面向对象之异常[一] Java面向对象之异常[二] 往 ...

  4. VMware下Hadoop 2.4.1完全分布式集群平台安装与设置

    1 VM下Ubuntu安装和配置 1.1 安装Ubuntu系统  这个就不说了,不知道的可以去看看其他的博文.   1.2 集群配置     搭建一个由3台机器组成的集群: IP user/passw ...

  5. vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多

    一.思路分析和效果图 用vue来实现一个瀑布流效果,加载网络图片,同时有下拉刷新和上拉加载更多功能效果.然后针对这几个效果的实现,捋下思路: 根据加载数据的顺序,依次追加标签展示效果: 选择哪种方式实 ...

  6. 代码注释规范-IDEA 配置 Java 类方法注释模板

    1. 引言     团队开发时,业务模块分配的越清晰,代码注释管理越完善,越有利于后面维护,后面再管理也方便不少.另外也起着"文字砖"的作用,你懂的.注释不需要很详细,把代码块方法 ...

  7. kuangbin专题 专题九 连通图 POJ 3694 Network

    题目链接:https://vjudge.net/problem/POJ-3694 题目:给定一个连通图,求桥的个数,每次查询,加入一条边,问加入这条边后还有多少个桥. 思路:tarjan + 并查集 ...

  8. 3次方的期望dp

    osu 是一款群众喜闻乐见的休闲软件.     我们可以把osu的规则简化与改编成以下的样子:     一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的 ...

  9. python+opencv中最近出现的一些变化( OpenCV 官方的 Python tutorial目前好像还没有改过来?) 记一次全景图像的拼接

    最近在学习过程中发现opencv有了很多变动, OpenCV 官方的 Python tutorial目前好像还没有改过来,导致大家在学习上面都出现了一些问题,现在做一个小小的罗列,希望对大家有用 做的 ...

  10. python 栈

    栈的特点:先进后出 class Stack: def __init__(self): self.data = [] def push(self, val): self.data.append(val) ...