一、下面是it.py 脚本,把浏览器前置和后置条件分离了

"""套件公用测试类可进行分离"""

import unittest
from selenium import webdriver

class Init(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(30)
self.driver.get("Http://www.baidu.com")

def tearDown(self):
self.driver.quit()

二、BaiduLink 继承 Init的类
"""套件分离测试"""
import unittest
from unittest_1.it import Init

class BaiduLink(Init):

def test_baidu_news(self):
self.driver.find_element_by_link_text('新闻').click()

def test_002(self):
self.driver.find_element_by_link_text('地图').click()

# 静态方法,直接调用suite方法
@staticmethod
def suite():
suite = unittest.TestSuite(unittest.makeSuite(BaiduLink))
return suite

if __name__ == '__main__':
unittest.TextTestRunner(verbosity=2).run(BaiduLink.suite())

三、小牛试刀,结合浏览器对百度业务进行单元测试
from unittest_1.it import *
import unittest
class BaiduLink(Init):
def test_baidu_shouye(self):
"""百度业务,测试百度的title是否正确"""
self.assertEqual(self.driver.title,"百度一下,你就知道")
# self.assertEqual(self.driver.title,"百度一下,你就知道".encode("gdk"))

def test_baidu_title(self):
if self.driver.title == "百度一下,你就知道":
print("pass")
else:
print("Fail")

def test_baidu_title(self):
try:
self.assertEqual(self.driver.title,"百度一下,你就知道")
except Exception as e:
print("Fail info:{0}".format(e.args))

def test_baidu_login(self):
"""断言so 是否为真,返回的为 bool 型"""
so= self.driver.find_element_by_id("kw")
self.assertTrue(so.is_enabled())

def test_baidu_title(self):
"""断言百度是否再title里面"""
self.assertIn("百度",self.driver.title)

if __name__ == '__main__':
#把BaiduLink模块类加载到测试套件中,然后执行测试用例操作
suite = unittest.TestLoader().loadTestsFromModule(BaiduLink)
unittest.TextTestRunner(verbosity=2).run(suite)

四、测试执行
import unittest
from selenium import webdriver

class BaiduLink(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(30)
self.driver.get("Http://www.baidu.com")

def tearDown(self):
self.driver.quit()

def test_baidu_news(self):
self.driver.find_element_by_link_text("新闻").click()

def test_baidu_map(self):
self.driver.find_element_by_link_text("地图").click()

class BaiduSo(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(30)
self.driver.get("Http://www.baidu.com")

def tearDown(self):
self.driver.quit()

def test_baidu_so(self):
self.driver.find_element_by_id("kw").send_keys("webdriver")
self.driver.find_element_by_id("su").click()

if __name__ == '__main__':
"""执行F7中所有的用例,TestLoader加载测试类"""
suite = unittest.TestLoader().loadTestsFromModule("test_runnrt.py")
unittest.TextTestRunner(verbosity=2).run(suite)

Unittest方法 -- 测试分离的更多相关文章

  1. Unittest方法 -- 测试套件

    TestSuite 测试固件 一. import unittestclass F6(unittest.TestCase): def setUp(self): pass def tearDown(sel ...

  2. Unittest方法 -- 测试断言

    """断言详解"""from unittest_1.it import *def add(a,b): return a - bclass B ...

  3. Unittest方法 -- 测试固件(TestFixture)

    前置和后置 1.setUp:在写测试用例的时候,每次操作其实都是基于打开浏览器输入对应网址这些操作,这个就是执行用例的前置条件.2.tearDown:执行完用例后,为了不影响下一次用例的执行,一般有个 ...

  4. Unittest方法 -- 以test开头实例

    此篇是以下面的test作为实战的 : Unittest方法 -- 项目实现自动发送邮件 1.test_01 import unittestfrom selenium import webdriverc ...

  5. 七中滤波方法测试matlab实现

    http://blog.163.com/xiaheng0804@126/blog/static/1205282120132129471816/ 创建两个混合信号,便于更好测试滤波器效果.同时用七中滤波 ...

  6. JavaScript回调函数及数组方法测试

    JavaScript回调函数及数组方法测试 具体代码如下: <!DOCTYPE html> <html lang="en"> <head> &l ...

  7. Pycharm取消默认的右击运行unittest方法

    Pycharm取消默认的右击运行unittest方法:File-> Settings -> Tools -> Python Integrated Tools -> Defaul ...

  8. PyCharm鼠标右键不显示Run unittest方法

    PyCharm鼠标右键不显示Run unittest方法 PyCharm是一个用来写python代码的IDE,很好用.在其中建立了unittest类后,鼠标点击某个test方法后,菜单中会显示Run ...

  9. 【转】Unity3D Transform中有关旋转的属性和方法测试

    Transform有关旋转个属性和方法测试 一,属性 1,var eulerAngles : Vector3 public float yRotation = 5.0F; void Update()  ...

随机推荐

  1. JavaScript 中精度问题以及解决方案

    JavaScript 中的数字按照 IEEE 754 的标准,使用 64 位双精度浮点型来表示.其中符号位 S,指数位 E,尾数位M分别占了 1,11,52 位,并且在 ES5 规范 中指出了指数位E ...

  2. [源码解析] 深度学习分布式训练框架 horovod (2) --- 从使用者角度切入

    [源码解析] 深度学习分布式训练框架 horovod (2) --- 从使用者角度切入 目录 [源码解析] 深度学习分布式训练框架 horovod (2) --- 从使用者角度切入 0x00 摘要 0 ...

  3. Python基础_python的数据类型

    一.Python 的标准数据类型 二.以下单个实际举例分析数据类型 2.1 python的数字类型 Int:整型,Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python ...

  4. OpenFeign远程调用原理

    之前对OpenFeign 了解到只用在接口上面打个注解,然后就可以通过内部调用去调用远程地址.研究完Feign生成对象以及代理对象的作用过程之后发现这个过程用到了Spring的好多东西,在之后的过程中 ...

  5. HashMap源码解析和设计解读

    HashMap源码解析 ​ 想要理解HashMap底层数据的存储形式,底层原理,最好的形式就是读它的源码,但是说实话,源码的注释说明全是英文,英文不是非常好的朋友读起来真的非常吃力,我基本上看了差不多 ...

  6. 性能分析之CPU分析-从CPU调用高到具体代码行(C/C++)

    今天在培训的过程中,也提到了分析要具体到代码的事情,如果思路方向是正确的,对java应用和C/C++应用来说,也是几个命令就可以跳到代码行了.前提是要能看得懂堆栈信息.所以一直以来我在讲课的过程中都有 ...

  7. ES6中的新数据类型——Symbol

    今天小编和大家来聊一聊es6中新增的一个原始数据类型Symbol.在es5中原始数据类型(基本数据类型)有以下六种:Undefind.Null.Bool. String.Number.Object.今 ...

  8. 广州某小公司:ThreadLocal面试

    <对线面试官>系列目前已经连载24篇啦!有深度风趣的系列! [对线面试官]Java注解 [对线面试官]Java泛型 [对线面试官] Java NIO [对线面试官]Java反射 & ...

  9. RobotFramework + Python 自动化入门 四 (Web进阶)

    在<RobotFramwork + Python 自动化入门 一>中,完成了一个Robot环境搭建及测试脚本的创建和执行. 在<RobotFramwork + Python 自动化入 ...

  10. 使⽤Swagger2构建强⼤的RESTful API⽂档

    使⽤Swagger2构建强⼤的RESTful API⽂档 导语: 由于Spring Boot能够快速开发.便捷部署等特性,相信有很⼤⼀部分Spring Boot的⽤户会⽤来构建RESTful API. ...