一、下面是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. GPU加速计算

    GPU加速计算 NVIDIA A100 Tensor Core GPU 可针对 AI.数据分析和高性能计算 (HPC),在各种规模上实现出色的加速,应对极其严峻的计算挑战.作为 NVIDIA 数据中心 ...

  2. Node.js使用本地依赖

    最近项目组写了几个模块,打算采用依赖的方式来使用它们. 因为敏感性问题,不打算发布到npm官方仓库:自行搭建一个npm仓库成本也大. 所以最后决定采用本地安装. 即在package.json中填写如下 ...

  3. 【NX二次开发】拉伸的偏置方向猜想与验证

    结论:偏置的方向为曲线方向与拉伸方向的向量叉乘. 在UF_MODL_create_extrusion帮助中有这么一句话:Note that the offset direction is determ ...

  4. 4.6 Python3 进阶 - 递归函数

    >>返回主目录 源码 # 定义及特性 # 简单递归思维练习,求和:1+2+3+-+100 # 思路:sum(100) = sum(99) + 100 # sum(99) = sum(98) ...

  5. 使用Azure WebJob的一点心得

    Azure WebApp Service 是非常适合中小型项目的云服务. 从我实际使用的感受来看, 有如下几个优点: 1 部署方便, 可以从VS一键发布 2 缩放方便, scale in / scal ...

  6. HTTP Cookies知识-查看、发送、获取、返回

    我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 简介 HTTP Cookies是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求 ...

  7. 学习Qt Charts - Qt Charts的坐标轴

    这次来学学Qt chart 的坐标轴 有这么一组数据: 这是深圳市2019年6月份的天气预报(来自中国天气网:深圳),里面有每天的最高温度,把这最高温度做成个数组,如下: int daily_temp ...

  8. 一、JavaSE语言基础之关键字与标示符

    1.关键字   所谓关键字指Java中被赋予了特殊含义的单词或字符,Java中常见的关键字共53个,不需要进行记忆,在写代码的过程中会逐渐接触. 2.标示符   标示符,简单来说就是名字:其最大的作用 ...

  9. Kubernetes隔离pod的网络

    本章介绍如何通过限制pod可以与其他哪些pod通信,来确保pod之间的网络安全. 是否可以进行这些配置取决于集群中使用的容器网络插件.如果网络插件支持,可以通过NetworkPolicy资源配置网络隔 ...

  10. 温故知新,使用ASP.NET Core创建Web API,永远第一次

    ASP.NET Core简介 ASP.NET Core是一个跨平台的高性能开源框架,用于生成启用云且连接Internet的新式应用. 使用ASP.NET Core,您可以: 生成Web应用和服务.物联 ...